diff --git a/control/callback.php b/control/callback.php index 4c8a724..c87bd63 100644 --- a/control/callback.php +++ b/control/callback.php @@ -25,12 +25,9 @@ class callback extends publicBase { $sobj = new mShop(); $shopinfo = $sobj->addShop($name, $access_token, $expire_time, $uid); -var_dump($shopinfo); $_SESSION['app_uid'] = $shopinfo['uid']; $_SESSION['app_name'] = $shopinfo['name']; -var_dump($_SESSION); -exit(); header('Location: /'); exit; diff --git a/index.php b/index.php index 3dce6ca..e44a919 100644 --- a/index.php +++ b/index.php @@ -17,12 +17,12 @@ class run extends publicBase { private function checkpara() { $argv = trim(trim($_GET['argv']),'/'); if(empty($argv)) { - $this->control_name = 'agent'; - $this->control_func = 'demand_list'; + $this->control_name = 'index'; + $this->control_func = 'home'; } else { $array = explode('/', $argv); - $this->control_name = $array[0] == '' ? 'agent' : $array[0]; - $this->control_func = $array[1] == '' ? 'demand_list' : $array[1]; + $this->control_name = $array[0] == '' ? 'index' : $array[0]; + $this->control_func = $array[1] == '' ? 'home' : $array[1]; } // 还原GET @@ -60,14 +60,14 @@ class run extends publicBase { //代理登陆检查 if (empty($app_uid) || empty($app_name)) { - header('Location:/login/login'); + header('Location:/'); exit; } $sobj = new mShop(); $shopinfo = $sobj->getShopByName($app_name); if (empty($shopinfo)) { - header('Location:/login/login'); + header('Location:/'); exit; } @@ -75,7 +75,7 @@ class run extends publicBase { } private function action() { - $control_func = empty($this->control_func) ? 'admin' : $this->control_func; + $control_func = empty($this->control_func) ? 'index' : $this->control_func; // 判断控制层文件是否存在 $control_path = dirname(__FILE__).'/control/'.$this->control_name.'.php'; diff --git a/library/pinduoduo/pdd_api.php b/library/pinduoduo/pdd_api.php index 1f254f4..da14f7e 100644 --- a/library/pinduoduo/pdd_api.php +++ b/library/pinduoduo/pdd_api.php @@ -170,7 +170,7 @@ class PDD { * {"error_response":{"error_msg":"access_token已过期","sub_msg":"access_token已过期","sub_code":"10019","error_code":10019,"request_id":"16570185181360686"}} * {"order_list_get_response":{"total_count":1,"has_next":false,"order_list":[{"support_nationwide_warranty":0,"country":"中国","group_status":1,"free_sf":0,"discount_amount":0.0,"platform_discount":0.0,"return_freight_payer":0,"order_status":1,"id_card_num":"","risk_control_status":0,"province":"","town_id":0,"item_list":[{"goods_name":"checkpass论文查重无限次数低价免注册查重","outer_goods_id":"","goods_price":2.0,"goods_id":329073007863,"sku_id":1115504481445,"goods_count":1,"goods_spec":"千字符","outer_id":"","goods_img":"https://img.pddpic.com/mms-material-img/2022-03-28/0c075d33-b036-46f7-a0bf-d40774f68190.png.a.jpeg"}],"pay_no":"","last_ship_time":"2022-07-07 18:59:01","delivery_one_day":0,"created_time":"2022-07-05 18:58:41","card_info_list":[],"refund_status":1,"town":"","is_stock_out":0,"receiver_address_mask":"","receive_time":"","pay_time":"2022-07-05 18:59:01","gift_list":[],"capital_free_discount":0.0,"receiver_phone_mask":"13*******67","country_id":0,"city_id":0,"invoice_status":0,"service_fee_detail":[],"city":"","order_tag_list":[{"name":"delivery_one_day","value":0},{"name":"no_trace_delivery","value":0},{"name":"self_contained","value":0},{"name":"return_freight_payer","value":0},{"name":"free_sf","value":0},{"name":"duoduo_wholesale","value":0},{"name":"support_nationwide_warranty","value":0},{"name":"only_support_replace","value":0},{"name":"oversea_tracing","value":0},{"name":"distributional_sale","value":0},{"name":"open_in_festival","value":0},{"name":"same_city_distribution","value":0},{"name":"region_black_delay_shipping","value":0},{"name":"has_subsidy_postage","value":0},{"name":"has_sf_express_service","value":0},{"name":"community_group","value":0},{"name":"has_ship_additional","value":0},{"name":"ship_additional_order","value":0},{"name":"conso_order","value":0}],"is_lucky_flag":1,"yyps_time":"","mkt_biz_type":0,"shipping_type":0,"remark":"","pre_sale_time":"","inner_transaction_id":"","order_change_amount":0.0,"only_support_replace":0,"logistics_id":0,"updated_at":"2022-07-05 18:59:11","street":"","receiver_name_mask":"","receiver_name":"","tracking_number":"","pay_type":"","duoduo_wholesale":0,"buyer_memo":"","is_pre_sale":0,"shipping_time":"","home_delivery_type":0,"after_sales_status":0,"address":"","id_card_name":"","self_contained":0,"goods_amount":2.0,"pay_amount":2.0,"seller_discount":0.0,"address_mask":"","yyps_date":"","confirm_status":1,"confirm_time":"2022-07-05 18:59:01","stock_out_handle_status":-1,"postage":0.0,"province_id":0,"cat_id_3":9056,"cat_id_4":0,"cat_id_1":8726,"receiver_address":"","cat_id_2":8786,"trade_type":0,"urge_shipping_time":"","receiver_phone":"$u9upNmQ5775n$AgAAAAGFtKUGQpF/UwCIGc9XLGYcE0AFeoGvJNLo1wk=$0$$","order_sn":"220705-189933833112661"}],"request_id":"16570188342965892"}} */ - public function getOrderList($start_confirm_at, $end_confirm_at, $order_status, $refund_status, $page, $page_size, $trade_type=-1, $use_has_next=true) { + public function getOrderList($start_confirm_at, $end_confirm_at, $order_status, $refund_status, $page, $page_size, $trade_type=-1, $use_has_next='true') { $params = $this->getPublicParams(); @@ -207,7 +207,7 @@ class PDD { * {"error_response":{"error_msg":"access_token已过期","sub_msg":"access_token已过期","sub_code":"10019","error_code":10019,"request_id":"16570185181360686"}} * {"order_list_get_response":{"total_count":1,"has_next":false,"order_list":[{"support_nationwide_warranty":0,"country":"中国","group_status":1,"free_sf":0,"discount_amount":0.0,"platform_discount":0.0,"return_freight_payer":0,"order_status":1,"id_card_num":"","risk_control_status":0,"province":"","town_id":0,"item_list":[{"goods_name":"checkpass论文查重无限次数低价免注册查重","outer_goods_id":"","goods_price":2.0,"goods_id":329073007863,"sku_id":1115504481445,"goods_count":1,"goods_spec":"千字符","outer_id":"","goods_img":"https://img.pddpic.com/mms-material-img/2022-03-28/0c075d33-b036-46f7-a0bf-d40774f68190.png.a.jpeg"}],"pay_no":"","last_ship_time":"2022-07-07 18:59:01","delivery_one_day":0,"created_time":"2022-07-05 18:58:41","card_info_list":[],"refund_status":1,"town":"","is_stock_out":0,"receiver_address_mask":"","receive_time":"","pay_time":"2022-07-05 18:59:01","gift_list":[],"capital_free_discount":0.0,"receiver_phone_mask":"13*******67","country_id":0,"city_id":0,"invoice_status":0,"service_fee_detail":[],"city":"","order_tag_list":[{"name":"delivery_one_day","value":0},{"name":"no_trace_delivery","value":0},{"name":"self_contained","value":0},{"name":"return_freight_payer","value":0},{"name":"free_sf","value":0},{"name":"duoduo_wholesale","value":0},{"name":"support_nationwide_warranty","value":0},{"name":"only_support_replace","value":0},{"name":"oversea_tracing","value":0},{"name":"distributional_sale","value":0},{"name":"open_in_festival","value":0},{"name":"same_city_distribution","value":0},{"name":"region_black_delay_shipping","value":0},{"name":"has_subsidy_postage","value":0},{"name":"has_sf_express_service","value":0},{"name":"community_group","value":0},{"name":"has_ship_additional","value":0},{"name":"ship_additional_order","value":0},{"name":"conso_order","value":0}],"is_lucky_flag":1,"yyps_time":"","mkt_biz_type":0,"shipping_type":0,"remark":"","pre_sale_time":"","inner_transaction_id":"","order_change_amount":0.0,"only_support_replace":0,"logistics_id":0,"updated_at":"2022-07-05 18:59:11","street":"","receiver_name_mask":"","receiver_name":"","tracking_number":"","pay_type":"","duoduo_wholesale":0,"buyer_memo":"","is_pre_sale":0,"shipping_time":"","home_delivery_type":0,"after_sales_status":0,"address":"","id_card_name":"","self_contained":0,"goods_amount":2.0,"pay_amount":2.0,"seller_discount":0.0,"address_mask":"","yyps_date":"","confirm_status":1,"confirm_time":"2022-07-05 18:59:01","stock_out_handle_status":-1,"postage":0.0,"province_id":0,"cat_id_3":9056,"cat_id_4":0,"cat_id_1":8726,"receiver_address":"","cat_id_2":8786,"trade_type":0,"urge_shipping_time":"","receiver_phone":"$u9upNmQ5775n$AgAAAAGFtKUGQpF/UwCIGc9XLGYcE0AFeoGvJNLo1wk=$0$$","order_sn":"220705-189933833112661"}],"request_id":"16570188342965892"}} */ - public function getIncrementOrderNumberList($start_updated_at, $end_updated_at, $order_status, $refund_status, $page, $page_size, $is_lucky_flag=0, $trade_type=-1, $use_has_next=true) { + public function getIncrementOrderNumberList($start_updated_at, $end_updated_at, $order_status, $refund_status, $page, $page_size, $is_lucky_flag=0, $trade_type=-1, $use_has_next='true') { $params = $this->getPublicParams(); diff --git a/model/mGoods.php b/model/mGoods.php index f123325..2ab7b2c 100644 --- a/model/mGoods.php +++ b/model/mGoods.php @@ -7,7 +7,7 @@ include_once(SERVER_ROOT."/model/mBase.php"); class mGoods extends mBase { private $obj; - private $dataoods; + private $goods; public function __construct() { $this->obj = new dGoods(); @@ -16,16 +16,29 @@ class mGoods extends mBase { public function addGoods($goods_id, $goods_name, $goods_price, $sku_id, $sku_name, $shop_id, $uid) { $data = array(); - - $data['goods_id'] = $goods_id; $data['goods_name'] = $goods_name; $data['goods_price'] = $goods_price; - $data['sku_id'] = $sku_id; $data['sku_name'] = $sku_name; + + $info = $this->getGoods($uid, $shop_id, $goods_id, $sku_id); + if ($info) { + return $this->updateGoodsById($info['id'], $data); + } + + $data['goods_id'] = $goods_id; + $data['sku_id'] = $sku_id; $data['shop_id'] = $shop_id; $data['uid'] = $uid; return $this->obj->insert($this->goods, $data); } + public function getGoods($uid, $shop_id, $goods_id, $sku_id) { + return $this->obj->select($this->goods, array('sql'=>'`uid`=? and `shop_id`=? and `goods_id`=? and `sku_id`=?', 'vals'=>array($uid, $shop_id, $goods_id, $sku_id))); + } + + public function updateGoodsById($id, $data) { + return $this->obj->update($this->goods, $data, array('sql'=>'`id`=?', 'vals'=>array($id))); + } + } \ No newline at end of file diff --git a/model/mShop.php b/model/mShop.php index 06f6f0f..0701154 100644 --- a/model/mShop.php +++ b/model/mShop.php @@ -68,7 +68,7 @@ var_dump($uid); // 同步增量订单开始时间 if ($date == date("Y-m-d")) { - $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, json_encode(array('name'=>$name, 'start_date'=>date("Y-m-d H:i:s")))); + $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, json_encode(array('name'=>$name, 'start_date'=>date("Y-m-d H:i:s"), 'end_date'=>date("Y-m-d H:i:s", strtotime("+30 minute"))))); } } diff --git a/queue/config/daemonconf.php b/queue/config/daemonconf.php index a55e55d..b930927 100644 --- a/queue/config/daemonconf.php +++ b/queue/config/daemonconf.php @@ -12,6 +12,6 @@ $GLOBALS['DAEMON_LIST'] = array( $GLOBALS['DAEMON_NUMLIMIT'] = array( DAEMON_SYNC_HISTORICAL_ORDERS => 10, - DAEMON_SYNC_INCREMENT_ORDERS => 2, + DAEMON_SYNC_INCREMENT_ORDERS => 1, DAEMON_SYNC_ORDERS_STATUS => 1, ); \ No newline at end of file diff --git a/queue/deal/sync_historical_orders.php b/queue/deal/sync_historical_orders.php index 0b96c74..bf829d8 100644 --- a/queue/deal/sync_historical_orders.php +++ b/queue/deal/sync_historical_orders.php @@ -3,7 +3,7 @@ /** * 同步历史订单 */ -include_once dirname(dirname(dirname(__FILE__))).'/base/dealBase.php'; +include_once dirname(dirname(__FILE__)).'/base/dealBase.php'; class syncHistoricalOrders extends dealBase { @@ -29,11 +29,15 @@ class syncHistoricalOrders extends dealBase { $pobj = new mPdd(); for ($page=1;;$page++) { - $trades = $pobj->getPddOrderList($name, $start_date, $start_date.' 23:59:59', ORDER_STATUS_FULL, REFUND_STATUS_FULL, $page, 100); + $trades = $pobj->getPddOrderList($name, $start_date.' 00:00:00', $start_date.' 23:59:59', ORDER_STATUS_FULL, REFUND_STATUS_FULL, $page, 100); if (!$trades) break; - if ($trades['has_next'] != true) break; + if (empty($trades['order_list'])) break; $obj->addOrders($trades['order_list'], $shopinfo['id'], $shopinfo['uid']); + + if ($trades['has_next'] != true) break; + + } } diff --git a/queue/deal/sync_increment_orders.php b/queue/deal/sync_increment_orders.php index 64a1b91..628603e 100644 --- a/queue/deal/sync_increment_orders.php +++ b/queue/deal/sync_increment_orders.php @@ -3,7 +3,7 @@ /** * 同步增量订单 */ -include_once dirname(dirname(dirname(__FILE__))).'/base/dealBase.php'; +include_once dirname(dirname(__FILE__)).'/base/dealBase.php'; class syncIncrementOrders extends dealBase { @@ -20,7 +20,14 @@ class syncIncrementOrders extends dealBase { $data = json_decode($jsondata, true); + if (time() < strtotime($data['end_date'])) { + sleep(10); + $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, $jsondata); + return true; + } + $start_date = $data['start_date']; + $end_date = $data['end_date']; $name = $data['name']; $sobj = new mShop(); @@ -29,13 +36,18 @@ class syncIncrementOrders extends dealBase { $pobj = new mPdd(); for ($page=1;;$page++) { - $trades = $pobj->getPddIncrOrderList($name, $start_date, $start_date.' 23:59:59', ORDER_STATUS_FULL, REFUND_STATUS_FULL, $page, 100); + $trades = $pobj->getPddIncrOrderList($name, $start_date, $end_date, ORDER_STATUS_FULL, REFUND_STATUS_FULL, $page, 100); if (!$trades) break; + if (empty($trades['order_sn_list'])) break; + + $obj->addOrders($trades['order_sn_list'], $shopinfo['id'], $shopinfo['uid']); + if ($trades['has_next'] != true) break; - $obj->addOrders($trades['order_list'], $shopinfo['id'], $shopinfo['uid']); } + $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, json_encode(array('name'=>$name, 'start_date'=>$end_date, 'end_date'=>date("Y-m-d H:i:s", strtotime($end_date." +30 minute"))))); + } } diff --git a/queue/deal/sync_orders_status.php b/queue/deal/sync_orders_status.php index cd74dec..2649bf0 100644 --- a/queue/deal/sync_orders_status.php +++ b/queue/deal/sync_orders_status.php @@ -3,9 +3,9 @@ /** * 同步历史订单 */ -include_once dirname(dirname(dirname(__FILE__))).'/base/dealBase.php'; +include_once dirname(dirname(__FILE__)).'/base/dealBase.php'; -class syncHistoricalOrders extends dealBase { +class syncOrdersStatus extends dealBase { public function setPara() { $this->processnum = $GLOBALS['DAEMON_NUMLIMIT'][DAEMON_SYNC_ORDERS_STATUS]; @@ -40,4 +40,4 @@ class syncHistoricalOrders extends dealBase { } -new syncHistoricalOrders(); \ No newline at end of file +new syncOrdersStatus(); \ No newline at end of file