FixController.php 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095
  1. <?php
  2. namespace console\controllers;
  3. use addons\Agent\common\models\Agent;
  4. use addons\CloudStock\common\models\CloudStockFillOrder;
  5. use addons\Course\common\models\AddonsCourse;
  6. use addons\Course\common\models\AddonsCourseOrders;
  7. use addons\Distribution\common\models\Distribution;
  8. use addons\Mch\common\models\Mch;
  9. use addons\Mch\common\models\MchCommission;
  10. use addons\Mch\common\models\MchUser;
  11. use addons\PointUpperLimit\common\models\PointUpperLimitScoreLog;
  12. use addons\PointUpperLimit\common\service\ScoreLogService;
  13. use addons\ShortVideo\common\models\ShortVideoCommissionItemSetting;
  14. use addons\Store\common\models\Store;
  15. use addons\Store\common\models\StoreCommission;
  16. use addons\Store\common\models\StoreOrder;
  17. use addons\Store\common\models\StoreUser;
  18. use common\enums\AddonsEnum;
  19. use common\enums\GoodsTypeEnum;
  20. use common\enums\OrderStatusEnum;
  21. use common\enums\PayTypeEnum;
  22. use common\enums\RedisKeyEnum;
  23. use common\enums\StatusEnum;
  24. use common\listeners\user\UserUpgradeListener;
  25. use common\models\common\Addons;
  26. use common\models\common\AddonsInvoker;
  27. use common\models\common\CapitalLog;
  28. use common\models\common\CommissionLog;
  29. use common\models\common\PaymentTrade;
  30. use common\models\common\PaymentTradeOrder;
  31. use common\models\common\Region;
  32. use common\models\goods\Goods;
  33. use common\models\mall\Mall;
  34. use common\models\order\Order;
  35. use common\models\order\OrderDetail;
  36. use common\models\order\OrderRefund;
  37. use common\models\statistics\UserStatisticsTotal;
  38. use common\models\user\User;
  39. use common\models\user\UserActionRecord;
  40. use common\models\user\UserPartitionRelationship;
  41. use common\models\user\UserWallet;
  42. use common\models\user\UserWithdrawLog;
  43. use services\common\UserWalletService;
  44. use yii\console\Controller;
  45. use yii\console\ExitCode;
  46. use yii\db\Exception;
  47. use function GuzzleHttp\Psr7\try_fopen;
  48. class FixController extends Controller
  49. {
  50. public function actionOutOrder(){
  51. $key='fix_out_order_xxssss';
  52. $res = \Yii::$app->redis->get($key);
  53. if(!empty($res)) return '';
  54. $offset = 1;
  55. $limit = 1000;
  56. while ($list = Order::lists(['where'=>[
  57. ['pay_status'=>1]
  58. ], 'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  59. foreach ($list as $item){
  60. $order_no = $item['order_no'];
  61. $result = PaymentTradeOrder::findOne(['order_no'=>$order_no,'is_pay'=>1]);
  62. if(!empty($result)){
  63. $trade = PaymentTrade::findOne(['id'=>$result['trade_id']]);
  64. if($trade){
  65. if($item->out_trade_no!=$trade->out_trade_no){
  66. $item->out_trade_no = $trade->out_trade_no;
  67. $res = $item->save();
  68. var_dump($res);
  69. }
  70. }
  71. }
  72. }
  73. $offset++;
  74. }
  75. \Yii::$app->redis->set($key,1);
  76. }
  77. //修复,冻结佣金字段
  78. public function actionUserWalletFroCom(){
  79. $wallet_type = 'commission';
  80. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  81. $offset = 1;
  82. $limit = 1000;
  83. while ($list = UserWallet::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  84. foreach ($list as $item){
  85. $user_id = $item['user_id'];
  86. $frozen_commission = CapitalLog::find()->where(['user_id'=>$user_id,'status'=>0])->sum('change_num');
  87. $item->frozen_commission = $frozen_commission??0;
  88. $res = $item->save();
  89. var_dump($res);
  90. }
  91. $offset++;
  92. }
  93. }
  94. //修复,总佣金字段
  95. public function actionUserWalletTotalCom(){
  96. $wallet_type = 'commission';
  97. CapitalLog::$capitalType = "{$wallet_type}";
  98. $offset = 1;
  99. $limit = 1000;
  100. $no_change_field = ['transfer_out_rejected', 'withdrawal_refund', 'withdrawal_decr'];
  101. while ($list = UserWallet::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  102. foreach ($list as $item){
  103. $user_id = $item['user_id'];
  104. $query = CapitalLog::find();
  105. $total_commission = $query->where(['user_id'=>$user_id,'change_type'=>'add'])->andWhere(['not in', 'capital_type', $no_change_field])->sum('change_num');
  106. $item->total_commission = $total_commission??0;
  107. $res = $item->save();
  108. echo sprintf(
  109. '当前用户: %s, 修复后: %s, 修复结果: %s',
  110. $user_id,
  111. $total_commission,
  112. $res
  113. );
  114. echo "\n";
  115. }
  116. $offset++;
  117. }
  118. }
  119. /**
  120. * 修复钱包已提现佣金字段
  121. *
  122. * @return void
  123. */
  124. public function actionUserWalletCommissionWithdrawal()
  125. {
  126. $offset = 1;
  127. $limit = 1000;
  128. while ($list = UserWallet::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  129. foreach ($list as $item){
  130. $user_id = $item['user_id'];
  131. $query = UserWithdrawLog::find();
  132. $where = [
  133. 'user_id' => $user_id,
  134. 'status' => UserWithdrawLog::STATUS_ALREADY_TRANS,
  135. ];
  136. $commission_withdrawal = $query->where($where)->sum('num');
  137. $item->commission_withdrawal = $commission_withdrawal??0;
  138. $res = $item->save();
  139. echo sprintf(
  140. '当前用户: %s, 修复后: %s, 修复结果: %s',
  141. $user_id,
  142. $commission_withdrawal,
  143. $res
  144. );
  145. echo "\n";
  146. }
  147. $offset++;
  148. }
  149. }
  150. /**
  151. * 修复钱包blance字段
  152. *
  153. * @return void
  154. */
  155. public function actionUserWalletTotalBln()
  156. {
  157. $wallet_type = 'balance';
  158. CapitalLog::$capitalType = "{$wallet_type}";
  159. $offset = 1;
  160. $limit = 1000;
  161. while ($list = UserWallet::lists(['where' => [['status' => 1]], 'limit' => $limit, 'offset' => ($offset - 1) * $limit], false)) {
  162. foreach ($list as $item) {
  163. $user_id = $item['user_id'];
  164. $total_balance = CapitalLog::find()->where(['user_id' => $user_id, 'change_type' => 'add'])->sum('change_num');
  165. $bf = $item->total_balance;
  166. $af = $total_balance ?? 0;
  167. $item->total_balance = $af;
  168. $res = $item->save();
  169. echo sprintf(
  170. '当前用户: %s, 修复前: %s, 修复后: %s, 修复结果: %s',
  171. $user_id,
  172. $bf,
  173. $af,
  174. $res
  175. );
  176. echo "\n";
  177. }
  178. $offset++;
  179. }
  180. return ExitCode::OK;
  181. }
  182. //修复,commission_log表current_num字段,和user_wallet表commission可用佣金字段
  183. public function actionUserWalletCommission(){
  184. $wallet_type = 'commission';
  185. CapitalLog::$capitalType = "{$wallet_type}";
  186. $offset = 1;
  187. $limit = 1000;
  188. while ($list = UserWallet::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  189. foreach ($list as $item){
  190. $user_id = $item['user_id'];
  191. $commission_list = CapitalLog::find()->where(['user_id' => $user_id])->orderBy('id asc')->all();
  192. $total = 0;
  193. foreach ($commission_list as $k => $value) {
  194. if ($value['change_type'] == 'sub') {
  195. $total -= $value['change_num'];
  196. } else {
  197. $total += $value['change_num'];
  198. }
  199. if (isset($commission_list[$k + 1])) {
  200. if($commission_list[$k + 1]->current_num!=$total){
  201. $commission_list[$k + 1]->current_num = $total;
  202. $rs = $commission_list[$k + 1]->save();
  203. }
  204. }
  205. }
  206. if($total!= $item->commission){
  207. $item->commission = $total;
  208. $res = $item->save();
  209. var_dump($res);
  210. }
  211. }
  212. $offset++;
  213. }
  214. }
  215. //检查
  216. public function actionCheckUserWalletCommission(){
  217. $list = UserWallet::lists(['where'=>[
  218. ['status'=>1],
  219. ]],false);
  220. $wallet_type = 'commission';
  221. CapitalLog::$capitalType = "{$wallet_type}";
  222. foreach ($list as $item){
  223. $user_id = $item['user_id'];
  224. $add = CapitalLog::find()->where(['user_id'=>$user_id,'change_type'=>'add'])->sum('change_num');
  225. $sub = CapitalLog::find()->where(['user_id'=>$user_id,'change_type'=>'sub'])->sum('change_num');
  226. $cha = $add-$sub;
  227. if(bcmul($cha,1,2)!=bcmul($item['commission'],1,2)){
  228. var_dump($item['user_id'].':'.$item['commission'].':'.$cha);
  229. }
  230. }
  231. }
  232. public function actionIndex()
  233. {
  234. $wallet_type = 'commission';
  235. $this->doHandle($wallet_type, false);
  236. $this->doHandle($wallet_type, true);
  237. $wallet_type = 'score';
  238. $this->doHandle($wallet_type, false);
  239. $this->doHandle($wallet_type, true);
  240. $wallet_type = 'balance';
  241. $this->doHandle($wallet_type, false);
  242. $this->doHandle($wallet_type, true);
  243. }
  244. public function actionStoreUserNums(){
  245. $list = StoreUser::find()->select('store_id,count(*) as user_nums')->groupBy('store_id')->asArray()->all();
  246. foreach ($list as $item){
  247. $res = Store::updateAll(['user_nums'=>$item['user_nums']],['id'=>$item['store_id']]);
  248. var_dump($res);
  249. }
  250. }
  251. public function actionMchUserNums(){
  252. $list = MchUser::find()->select('mch_id,count(*) as user_nums')->groupBy('mch_id')->asArray()->all();
  253. foreach ($list as $item){
  254. $res = Mch::updateAll(['user_nums'=>$item['user_nums']],['id'=>$item['mch_id']]);
  255. var_dump($res);
  256. }
  257. }
  258. protected function doHandle($wallet_type, $is_frozen = true)
  259. {
  260. $offset = 1;
  261. $limit = 1000;
  262. if ($is_frozen) {
  263. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  264. } else {
  265. CapitalLog::$capitalType = "{$wallet_type}";
  266. }
  267. while ($list = CapitalLog::find()->select('*')->offset(($offset - 1) * $limit)->limit($limit)->all()) {
  268. foreach ($list as $val) {
  269. if (strpos($val['source_table'], 'addons_course_orders') !== false) {
  270. $order = AddonsCourseOrders::findOne(['id' => $val['source_table_id']]);
  271. if (!empty($order)) {
  272. $course = AddonsCourse::findOne(['id'=>$order->course_id]);
  273. $val->contributor_name = $course['name'];
  274. $val->order_no = $order['order_no'];
  275. $val->contributor_money = $order['pay_money'];
  276. $val->contributor_id = $order['user_id'];
  277. $res = $val->save();
  278. var_dump($val['id'].':视频课程订单:' . $res);
  279. }
  280. } elseif (strpos($val['source_table'], 'order_detail') !== false) {
  281. $order_detail = OrderDetail::findOne(['id' => $val['source_table_id']]);
  282. if (!empty($order_detail)) {
  283. $order = Order::findOne(['id' => $order_detail['order_id']]);
  284. if ($order) {
  285. $val->contributor_name = $order_detail['goods_name'];
  286. $val->order_no = $order['order_no'];
  287. $val->contributor_money = $order_detail['goods_price'];
  288. $val->contributor_id = $order['user_id'];
  289. $res = $val->save();
  290. var_dump($val['id'].':主商城订单:' . $res);
  291. }
  292. }
  293. } elseif (strpos($val['source_table'], 'addons_cloud_stock_fill_order') !== false) {
  294. $order = CloudStockFillOrder::findOne(['id' => $val['source_table_id']]);
  295. if ($order) {
  296. $goods = Goods::findOne(['id'=>$order->goods_id]);
  297. $val->contributor_name = $goods['goods_name']??'';
  298. $val->order_no = $order['order_no'];
  299. $val->contributor_money = $order['pay_money'];
  300. $val->contributor_id = $order['user_id'];
  301. $res = $val->save();
  302. var_dump($val['id'].':补货订单:' . $res);
  303. }
  304. }
  305. }
  306. $offset++;
  307. }
  308. }
  309. public function actionUpdateAddons(){
  310. $dir = __DIR__;
  311. $file = $dir.'/aaaaaa.csv';
  312. $cvsFile = fopen($file, 'r'); //开始读取csv文件数据
  313. while ($fileData = fgetcsv($cvsFile)) {
  314. $str1 = iconv('GBK','UTF-8', $fileData[0]);
  315. $str2 = iconv('GBK','UTF-8', $fileData[1]);
  316. $addons = Addons::findOne(['title'=>trim($str1)]);
  317. if($addons){
  318. $addons->brief_introduction = $str2;
  319. $res = $addons->save();
  320. var_dump($res);
  321. }
  322. }
  323. }
  324. public function actionClearInvoker($invoke_id=null,$addons_name=null){
  325. if(!empty($invoke_id)&&!empty($addons_name)){
  326. $redis = \Yii::$app->redis;
  327. $redis_key = RedisKeyEnum::suffix(RedisKeyEnum::GLOBAL_INVOKE, '',true) .':'. $invoke_id;
  328. $redis->del($redis_key);
  329. AddonsInvoker::updateAll(['status'=>StatusEnum::DELETE],['invoker_id'=>$invoke_id,'addons_name'=>$addons_name]);
  330. }
  331. }
  332. public function actionSettlement()
  333. {
  334. $order_detail_list = OrderDetail::lists([
  335. 'where' => [['order_status' => 4]],
  336. 'order'=>'id desc',
  337. 'limit'=>10000,
  338. ]);
  339. $goods_ids = array_unique(array_column($order_detail_list,'goods_id'));
  340. $goods_list = Goods::lists(['where'=>[['id'=>$goods_ids],['goods_type'=>GoodsTypeEnum::GoodsTypeVirtual]],'select'=>'id']);
  341. $virtual_goods_ids = array_column($goods_list,'id');
  342. foreach ($order_detail_list as $order_detail) {
  343. $order_detail_id = $order_detail['id'];
  344. $goods_id = $order_detail['goods_id'];
  345. if(!in_array($goods_id,$virtual_goods_ids))continue;
  346. $where = [];
  347. $where[]['source_table'] = 'order_detail';
  348. $where[]['source_table_id'] = $order_detail_id;
  349. $where[]['status'] = StatusEnum::DISABLED;
  350. $wallet_type = 'score';
  351. $this->updateCap($where,$wallet_type);
  352. $wallet_type = 'commission';
  353. $this->updateCap($where,$wallet_type);
  354. $wallet_type = 'balance';
  355. $this->updateCap($where,$wallet_type);
  356. }
  357. }
  358. protected function updateCap($where,$wallet_type){
  359. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  360. $capital_list = CapitalLog::lists(['where'=>$where]);
  361. foreach ($capital_list as $capital){
  362. $res = UserWalletService::unfrozen($capital['id'], $wallet_type);
  363. var_dump($wallet_type.':capital:id:'.$capital['id'].':'.$res);
  364. }
  365. }
  366. //因退款,而导致经销商累计分佣有误的修复
  367. public function actionFixAgentCommission(){
  368. $wallet_type = 'commission';
  369. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  370. $list = CapitalLog::find()->where(['status'=>-1])->select('user_id')->groupBy('user_id')->limit(10000)->all();
  371. $user_ids = array_column($list,'user_id');
  372. $arr = ['commission','score'];
  373. foreach ($arr as $wallet_type){
  374. foreach ($user_ids as $user_id){
  375. CapitalLog::$capitalType = "{$wallet_type}";
  376. $total_change_num = CapitalLog::find()->where(['user_id'=>$user_id,'from_type'=>AddonsEnum::ADDONS_NAME_AGENT])->sum('change_num');
  377. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  378. $total_change_num_frozen = CapitalLog::find()->where(['user_id'=>$user_id,'status'=>0,'from_type'=>AddonsEnum::ADDONS_NAME_AGENT])->sum('change_num');
  379. $total_commission = bcadd($total_change_num,$total_change_num_frozen,2);
  380. $field = "total_{$wallet_type}";
  381. $res = Agent::updateAll([$field=>$total_commission],['user_id'=>$user_id]);
  382. var_dump($res);
  383. }
  384. }
  385. }
  386. //因退款,而导致分销商累计分佣有误的修复
  387. public function actionFixDiCommission(){
  388. $wallet_type = 'commission';
  389. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  390. $list = CapitalLog::find()->where(['status'=>-1])->select('user_id')->groupBy('user_id')->all();
  391. $user_ids = array_column($list,'user_id');
  392. $arr = ['commission','score'];
  393. foreach ($arr as $wallet_type){
  394. foreach ($user_ids as $user_id){
  395. CapitalLog::$capitalType = "{$wallet_type}";
  396. $total_change_num = CapitalLog::find()->where(['user_id'=>$user_id,'from_type'=>AddonsEnum::ADDONS_NAME_DISTRIBUTION])->sum('change_num');
  397. CapitalLog::$capitalType = "{$wallet_type}_frozen";
  398. $total_change_num_frozen = CapitalLog::find()->where(['user_id'=>$user_id,'status'=>0,'from_type'=>AddonsEnum::ADDONS_NAME_DISTRIBUTION])->sum('change_num');
  399. $total_commission = bcadd($total_change_num,$total_change_num_frozen,2);
  400. $field = "total_{$wallet_type}";
  401. $res = Distribution::updateAll([$field=>$total_commission],['user_id'=>$user_id]);
  402. var_dump($res);
  403. }
  404. }
  405. }
  406. //因提现而导致用户钱包表的累计总佣金有误的修复
  407. public function actionTotalCommission(){
  408. $mall_list = Mall::getEnableMallList(true);
  409. foreach ($mall_list as $mall) {
  410. $mall_id = $mall['id'];
  411. $params = [
  412. 'where'=>[
  413. ['change_type' => 'add'],
  414. [ 'mall_id' => $mall_id],
  415. ],
  416. 'group'=>'user_id',
  417. 'select'=>'user_id, sum(change_num) as change_num'
  418. ];
  419. $list = CommissionLog::lists($params);
  420. foreach ($list as $item){
  421. $obj = UserWallet::findOne(['user_id'=>$item['user_id']]);
  422. if(!empty($obj)){
  423. if($obj->total_commission!=$item['change_num']){
  424. $obj->total_commission = $item['change_num'];
  425. $res = $obj->save();
  426. var_dump($res);
  427. }
  428. }
  429. }
  430. }
  431. }
  432. //修复,总佣金字段
  433. public function actionUserLastPay(){
  434. $offset = 1;
  435. $limit = 1000;
  436. while ($list = User::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  437. foreach ($list as $item){
  438. $user_id = $item['id'];
  439. $order = Order::find()->where(['user_id'=>$user_id,'pay_status'=>1])->orderBy('pay_time asc')->one();
  440. $first_time = 0;
  441. if(!empty($order)){
  442. $last_pay_at = $order['pay_time'];
  443. $first_time = $last_pay_at;
  444. $model = UserActionRecord::findOne(['user_id'=>$user_id]);
  445. if(empty($model['first_pay_at'])){
  446. $res = UserActionRecord::setData($order['mall_id'],$user_id,['last_pay_at'=>$last_pay_at]);
  447. var_dump($res);
  448. }
  449. }
  450. $order = Order::find()->where(['user_id'=>$user_id,'pay_status'=>1])->orderBy('pay_time desc')->one();
  451. if(!empty($order)){
  452. $last_pay_at = $order['pay_time'];
  453. if($first_time!=$last_pay_at){
  454. $res = UserActionRecord::setData($order['mall_id'],$user_id,['last_pay_at'=>$last_pay_at]);
  455. var_dump($res);
  456. }
  457. }
  458. }
  459. $offset++;
  460. }
  461. }
  462. //去掉短视频商品独立模式,重复item_id,因为之前添加时没有加入commission_type,导致某些商品的item_id重复
  463. public function actionVideo(){
  464. $sql="
  465. SELECT * FROM (SELECT count(*) as counts,item_id FROM qimall_addons_short_video_commission_item_setting GROUP BY item_id) t where t.counts>1
  466. ";
  467. $list = \Yii::$app->db->createCommand($sql)->queryAll();
  468. if(!empty($list)){
  469. foreach ($list as $item){
  470. $res = ShortVideoCommissionItemSetting::getOne([['item_id'=>$item['item_id']]],false);
  471. $res->delete();
  472. }
  473. }
  474. }
  475. //修复门店已完成订单,但是收入明细还未结算
  476. //原因是虚拟商品
  477. public function actionStoreOrderSettlement(){
  478. $t = \Yii::$app->db->beginTransaction();
  479. try {
  480. $list = StoreCommission::lists([
  481. 'where'=>[
  482. ['type'=>1],
  483. ['is_settlement'=>0],
  484. ['status'=>StatusEnum::ENABLED],
  485. ],
  486. ],false);
  487. foreach ($list as $item){
  488. $store_order = StoreOrder::findOne(['order_no'=>$item['order_no'],'order_status'=>OrderStatusEnum::ACCOMPLISH]);
  489. if(empty($store_order)) continue;
  490. Store::settlementStoreCommission($store_order['id'], $store_order['store_id'], $store_order['order_no']);//结算货款
  491. }
  492. $t->commit();
  493. var_dump('修复完成');
  494. }catch (Exception $e){
  495. $t->rollBack();
  496. var_dump($e->getMessage());
  497. }
  498. }
  499. //修复多商户已完成订单,但是收入明细还未结算
  500. //原因是虚拟商品
  501. public function actionMchOrderSettlement(){
  502. $t = \Yii::$app->db->beginTransaction();
  503. try {
  504. $list = MchCommission::lists([
  505. 'where'=>[
  506. ['type'=>1],
  507. ['is_settlement'=>0],
  508. ['status'=>StatusEnum::ENABLED],
  509. ],
  510. ],false);
  511. foreach ($list as $item){
  512. $order = Order::findOne(['order_no'=>$item['order_no'],'order_status'=>OrderStatusEnum::ACCOMPLISH]);
  513. if(empty($order)) continue;
  514. Mch::settlementStoreCommission($order['id'], $order['store_id'], $order['order_no']);//结算货款
  515. }
  516. $t->commit();
  517. var_dump('修复完成');
  518. }catch (Exception $e){
  519. $t->rollBack();
  520. var_dump($e->getMessage());
  521. }
  522. }
  523. public function actionUserSt(){
  524. $offset = 1;
  525. $limit = 1000;
  526. while ($list = User::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  527. foreach ($list as $item){
  528. $user_id = $item['id'];
  529. $order_num = Order::find()->where(['user_id'=>$user_id])->count();
  530. $order_money = Order::find()->where(['user_id'=>$user_id])->sum('pay_money');
  531. $pay_num = Order::find()->where(['user_id'=>$user_id,'pay_status'=>1])->count();
  532. $pay_money = Order::find()->where(['user_id'=>$user_id,'pay_status'=>1])->sum('pay_money');
  533. $pay_goods_num = OrderDetail::find()->where(['user_id'=>$user_id])
  534. ->andWhere(['<>','order_status',0])
  535. ->sum('num');
  536. $average_money = 0;
  537. if($pay_num>0){
  538. $average_money = bcdiv($pay_money, $pay_num, 2);
  539. }
  540. $finish_order_num = Order::find()->where(['user_id'=>$user_id,'order_status'=>4])->count();
  541. $finish_order_money = Order::find()->where(['user_id'=>$user_id,'order_status'=>4])->sum('pay_money');
  542. $finish_goods_num = OrderDetail::find()->where(['user_id'=>$user_id])
  543. ->andWhere(['order_status'=>4])
  544. ->sum('num');
  545. $refund_order_num = Order::find()->where(['user_id'=>$user_id,'is_feedback'=>[1,2]])->count();
  546. $refund_order_money = Order::find()->where(['user_id'=>$user_id,'is_feedback'=>[1,2]])->sum('pay_money');
  547. $refund_goods_num = OrderDetail::find()->where(['user_id'=>$user_id,'is_feedback'=>[1,2]])
  548. ->sum('num');
  549. $cancel_order_num = Order::find()->where(['user_id'=>$user_id,'order_status'=>-4])->count();
  550. $cancel_order_money = Order::find()->where(['user_id'=>$user_id,'order_status'=>-4])->sum('pay_money');
  551. $cancel_goods_num = OrderDetail::find()->where(['user_id'=>$user_id])
  552. ->andWhere(['order_status'=>-4])
  553. ->sum('num');
  554. $balance_pay = Order::find()->where(['user_id'=>$user_id,'payment_type'=>PayTypeEnum::BALANCE])->sum('pay_money');
  555. $wechat_pay = Order::find()->where(['user_id'=>$user_id,'payment_type'=>PayTypeEnum::WECHAT])->sum('pay_money');
  556. $ali_pay = Order::find()->where(['user_id'=>$user_id,'payment_type'=>PayTypeEnum::ALI])->sum('pay_money');
  557. $obj = UserStatisticsTotal::findOne(['user_id'=>$user_id]);
  558. if(empty($obj)){
  559. $obj = new UserStatisticsTotal();
  560. $obj->loadDefaultValues();
  561. $obj->user_id = $user_id;
  562. $obj->mall_id = $item['mall_id'];
  563. }
  564. $obj->order_num = $order_num??0;
  565. $obj->order_money = $order_money??0;
  566. $obj->pay_num = $pay_num??0;
  567. $obj->pay_money = $pay_money??0;
  568. $obj->pay_goods_num = $pay_goods_num??0;
  569. $obj->average_money = $average_money??0;
  570. $obj->finish_order_num = $finish_order_num??0;
  571. $obj->finish_order_money = $finish_order_money??0;
  572. $obj->finish_goods_num = $finish_goods_num??0;
  573. $obj->refund_order_num = $refund_order_num??0;
  574. $obj->refund_order_money = $refund_order_money??0;
  575. $obj->refund_goods_num = $refund_goods_num??0;
  576. $obj->cancel_order_num = $cancel_order_num??0;
  577. $obj->cancel_order_money = $cancel_order_money??0;
  578. $obj->cancel_goods_num = $cancel_goods_num??0;
  579. $obj->balance_pay = $balance_pay??0;
  580. $obj->wechat_pay = $wechat_pay??0;
  581. $obj->ali_pay = $ali_pay??0;
  582. $obj->save();
  583. }
  584. $offset++;
  585. }
  586. }
  587. public function actionFixDesc(){
  588. (new CapitalLog())->FDesc();
  589. }
  590. /**
  591. * 卸载所有应用
  592. * @return void
  593. */
  594. public function actionUninstallAddons()
  595. {
  596. $addons = Addons::find()->asArray()->all();
  597. foreach ($addons as $addon) {
  598. Addons::uninstall($addon['name']);
  599. }
  600. }
  601. public function actionUpper()
  602. {
  603. $order = \common\models\order\Order::getOne([
  604. ['id' => 10008]
  605. ], true, ['detail']);
  606. \addons\DoubleCopy\common\logic\DoubleCopyLogic::handle($order, 4);
  607. // (new \addons\Agent\common\listeners\order\OrderPayRewardListener)->reward($order);
  608. // (new \addons\PointUpperLimit\common\service\ScoreLogService())->decFreezeQuota(10057);
  609. // try {
  610. // $where = [['source_table_id' => [10108]], ['status' => CapitalLog::STATUS_WAIT_SEND]];
  611. // $logs = PointUpperLimitScoreLog::lists([
  612. // 'where' => $where,
  613. // ]);
  614. // var_dump($logs);
  615. // (new ScoreLogService())->batchUnfrozen($where);
  616. // } catch (\Exception $e) {
  617. // var_dump($e->getMessage(), $e->getLine(), $e->getFile());
  618. // }
  619. }
  620. public function actionFixS()
  621. {
  622. $order_ids = [
  623. ];
  624. $orders = \common\models\order\Order::lists(['where' => [['id' => $order_ids]]]);
  625. $user_ids = '';
  626. foreach ($orders as $order) {
  627. $user_ids.=$order['user_id'].',';
  628. $order_list = \common\models\order\Order::lists([
  629. 'where' => [
  630. ['user_id' => $order['user_id']],
  631. ['>=', 'created_at', strtotime('2023-09-24 11:50:47')],
  632. ],
  633. 'with' => ['detail']
  634. ]);
  635. $data = [];
  636. foreach ($order_list as $order) {
  637. $payGoodsNum = 0;
  638. foreach ($order['detail'] as $detail) {
  639. $payGoodsNum += $detail['num'];
  640. }
  641. $temp = [
  642. 'pay_num' => 1,
  643. 'pay_money' => $order['pay_money'] - $order['shipping_money'],
  644. 'original_order_money' => $order['original_goods_price'],
  645. 'pay_goods_num' => $payGoodsNum,
  646. 'balance_pay' => $order['payment_type'] == PayTypeEnum::BALANCE ? $order['pay_money'] : 0,
  647. 'wechat_pay' => $order['payment_type'] == PayTypeEnum::WECHAT ? $order['pay_money'] : 0,
  648. 'ali_pay' => $order['payment_type'] == PayTypeEnum::ALI ? $order['pay_money'] : 0,
  649. ];
  650. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_num'])) {
  651. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_num'] += $temp['pay_num'];
  652. } else {
  653. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_num'] = $temp['pay_num'];
  654. }
  655. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_money'])) {
  656. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_money'] += $temp['pay_money'];
  657. } else {
  658. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_money'] = $temp['pay_money'];
  659. }
  660. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['original_order_money'])) {
  661. $data[$order['user_id']][date('Ymd', $order['created_at'])]['original_order_money'] += $temp['original_order_money'];
  662. } else {
  663. $data[$order['user_id']][date('Ymd', $order['created_at'])]['original_order_money'] = $temp['original_order_money'];
  664. }
  665. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_goods_num'])) {
  666. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_goods_num'] += $temp['pay_goods_num'];
  667. } else {
  668. $data[$order['user_id']][date('Ymd', $order['created_at'])]['pay_goods_num'] = $temp['pay_goods_num'];
  669. }
  670. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['balance_pay'])) {
  671. $data[$order['user_id']][date('Ymd', $order['created_at'])]['balance_pay'] += $temp['balance_pay'];
  672. } else {
  673. $data[$order['user_id']][date('Ymd', $order['created_at'])]['balance_pay'] = $temp['balance_pay'];
  674. }
  675. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['wechat_pay'])) {
  676. $data[$order['user_id']][date('Ymd', $order['created_at'])]['wechat_pay'] += $temp['wechat_pay'];
  677. } else {
  678. $data[$order['user_id']][date('Ymd', $order['created_at'])]['wechat_pay'] = $temp['wechat_pay'];
  679. }
  680. if (isset($data[$order['user_id']][date('Ymd', $order['created_at'])]['ali_pay'])) {
  681. $data[$order['user_id']][date('Ymd', $order['created_at'])]['ali_pay'] += $temp['ali_pay'];
  682. } else {
  683. $data[$order['user_id']][date('Ymd', $order['created_at'])]['ali_pay'] = $temp['ali_pay'];
  684. }
  685. foreach ($data as $user_id => $item) {
  686. foreach ($item as $date=>$val){
  687. $update = [
  688. 'pay_num'=>$val['pay_num'],
  689. 'pay_money'=>$val['pay_money'],
  690. 'original_order_money'=>$val['original_order_money'],
  691. 'pay_goods_num'=>$val['pay_goods_num'],
  692. 'balance_pay'=>$val['balance_pay'],
  693. 'wechat_pay'=>$val['wechat_pay'],
  694. 'ali_pay'=>$val['ali_pay'],
  695. ];
  696. if($val['pay_num']>0){
  697. $update['average_money']=bcdiv($val['pay_money'], $val['pay_num'], 2);
  698. }
  699. \common\models\statistics\UserStatistics::updateAll($update,['user_id'=>$user_id,'date'=>$date]);
  700. }
  701. }
  702. }
  703. }
  704. echo $user_ids;
  705. }
  706. public function actionFut(){
  707. $offset = 1;
  708. $limit = 1000;
  709. while ($list = User::lists(['where'=>[['status'=>1]],'limit'=>$limit,'offset'=>($offset - 1) * $limit],false)) {
  710. foreach ($list as $item){
  711. $user_id = $item['id'];
  712. $order_num = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('order_num');
  713. if(!isset($order_num)) $order_num = 0;
  714. \common\models\statistics\UserStatisticsTotal::updateAll(['order_num'=>$order_num],['user_id'=>$user_id]);
  715. $order_money = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('order_money');
  716. if(!isset($order_money)) $order_money = 0;
  717. \common\models\statistics\UserStatisticsTotal::updateAll(['order_money'=>$order_money],['user_id'=>$user_id]);
  718. $pay_num = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('pay_num');
  719. if(!isset($pay_num)) $pay_num = 0;
  720. \common\models\statistics\UserStatisticsTotal::updateAll(['pay_num'=>$pay_num],['user_id'=>$user_id]);
  721. $pay_money = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('pay_money');
  722. if(!isset($pay_money)) $pay_money = 0;
  723. \common\models\statistics\UserStatisticsTotal::updateAll(['pay_money'=>$pay_money],['user_id'=>$user_id]);
  724. $pay_goods_num = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('pay_goods_num');
  725. if(!isset($pay_goods_num)) $pay_goods_num = 0;
  726. \common\models\statistics\UserStatisticsTotal::updateAll(['pay_goods_num'=>$pay_goods_num],['user_id'=>$user_id]);
  727. $average_money = 0;
  728. if($order_num>0) $average_money = bcdiv($order_money,$order_num,2);
  729. \common\models\statistics\UserStatisticsTotal::updateAll(['average_money'=>$average_money],['user_id'=>$user_id]);
  730. $original_order_money = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('original_order_money');
  731. if(!isset($original_order_money)) $original_order_money = 0;
  732. \common\models\statistics\UserStatisticsTotal::updateAll(['original_order_money'=>$original_order_money],['user_id'=>$user_id]);
  733. $balance_pay = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('balance_pay');
  734. if(!isset($balance_pay)) $balance_pay = 0;
  735. \common\models\statistics\UserStatisticsTotal::updateAll(['balance_pay'=>$balance_pay],['user_id'=>$user_id]);
  736. $wechat_pay = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('wechat_pay');
  737. if(!isset($wechat_pay)) $wechat_pay = 0;
  738. \common\models\statistics\UserStatisticsTotal::updateAll(['wechat_pay'=>$wechat_pay],['user_id'=>$user_id]);
  739. $ali_pay = \common\models\statistics\UserStatistics::find()->where(['user_id'=>$user_id,'status'=>1])->sum('ali_pay');
  740. if(!isset($ali_pay)) $ali_pay = 0;
  741. \common\models\statistics\UserStatisticsTotal::updateAll(['ali_pay'=>$ali_pay],['user_id'=>$user_id]);
  742. }
  743. $offset++;
  744. }
  745. }
  746. public function actionFixRb()
  747. {
  748. $sql = "
  749. SELECT t.mall_id,sum(t.change_num) as change_num,t.month FROM(
  750. SELECT mall_id,change_num,FROM_UNIXTIME(created_at,'%Y-%m') as month FROM qimall_balance_log
  751. where change_type = 'add' and from_type = 'recharge'
  752. ) t GROUP BY t.mall_id,t.month
  753. ";
  754. $list = \Yii::$app->db->createCommand($sql)->queryAll();
  755. foreach ($list as $item) {
  756. $redis = \Yii::$app->redis;
  757. $month = $item['month'];
  758. $mall_id = $item['mall_id'];
  759. $key = RedisKeyEnum::CENSUS_MALL_SINGLE_MONTH . ':' . $mall_id . ':' . $month;
  760. $redis_key = RedisKeyEnum::suffix($key, '', true);
  761. $result = $item['change_num'];
  762. $redis->hset($redis_key, 'total_recharge_money', $result);
  763. $obj = \common\models\census\CensusMallSingleMonth::findOne(['mall_id' => $mall_id, 'month' => $month]);
  764. if (empty($obj)) {
  765. $obj = new CensusMallSingleMonth();
  766. $obj->loadDefaultValues();
  767. $obj->mall_id = $mall_id;
  768. $obj->month = $month;
  769. }
  770. $obj->total_recharge_money = $result;
  771. $obj->save();
  772. }
  773. }
  774. public function actionAgent()
  775. {
  776. $symbols = [
  777. 'commission',
  778. 'score'
  779. ];
  780. foreach ($symbols as $symbol) {
  781. CapitalLog::$capitalType = $symbol;
  782. foreach (\common\models\user\User::find()->select('id')->where(['status' => \common\enums\StatusEnum::ENABLED])->each() as $user) {
  783. $user_id = $user->id;
  784. /**
  785. * @var $agent \addons\Agent\common\models\Agent
  786. */
  787. $agent = \addons\Agent\common\models\Agent::getOne([
  788. ['user_id' => $user_id]
  789. ]);
  790. if (!empty($agent)) {
  791. $where = ['user_id' => $user_id, 'from_type' => \common\enums\AddonsEnum::ADDONS_NAME_AGENT];
  792. $query = CapitalLog::find();
  793. $total_price = $query->where($where)->sum('change_num');
  794. $agent["total_$symbol"] = $total_price;
  795. if (!$agent->save()) var_dump($agent->getErrorMessage());
  796. }
  797. }
  798. }
  799. }
  800. public function actionWang()
  801. {
  802. $order_ids = \common\models\order\Order::find()->where(['pay_status' => 1])
  803. ->andWhere(['order_status' => 1])->select('id')->column();
  804. foreach ($order_ids as $order_id) {
  805. try {
  806. (new \addons\WangDianTong\common\listeners\OrderPaidListener())->async_handle(['id' => $order_id, 'mall_id' => 1]);
  807. } catch (\Exception $e) {
  808. var_dump($e->getMessage(), $e->getLine(), $e->getFile(), $order_id);
  809. }
  810. }
  811. }
  812. public function actionC()
  813. {
  814. $t = \Yii::$app->db->beginTransaction();
  815. try {
  816. /**
  817. * @var $each \common\models\order\Order
  818. */
  819. foreach (\common\models\order\Order::find()->where(['is_feedback' => 0])->andWhere(['id' => 8459])->andWhere(['consign_time' => 0])
  820. ->andWhere(['>', 'sign_time', 0])->each() as $each) {
  821. // 必须是自提订单
  822. // {"head_id":12,"contact_phone":"14465656868","contact_name":"1","business_card":{"id":"21"},"user_form_id":"undefined"}
  823. var_dump($each->id);
  824. if (!empty($each->extra_info)) {
  825. try {
  826. $extra_info = json_decode($each->extra_info, true);
  827. if (!empty($extra_info['head_id'])) {
  828. \common\listeners\order\OrderFinishListener::uploadShippingInfo($each);
  829. }
  830. } catch (\Exception $e) {
  831. echo "{$e->getMessage()}, {$e->getFile()}, {$e->getLine()}";
  832. throw new \Exception($e->getMessage());
  833. }
  834. }
  835. }
  836. $t->commit();
  837. } catch (\Exception $e) {
  838. $t->rollBack();
  839. var_dump($e->getMessage());
  840. }
  841. }
  842. public function actionE()
  843. {
  844. try {
  845. $event = new \common\events\order\OrderDeliveryEvent(3);
  846. $data['id'] = 393;
  847. $data['operator_id'] = 172069;
  848. $data['operator_name'] = '平邑丽娃(繁华里店)';
  849. \Yii::$app->services->events->dispatch($event, $data, $event->listeners);
  850. } catch (\Exception $e) {
  851. var_dump($e->getMessage());
  852. }
  853. }
  854. public function actionR()
  855. {
  856. try {
  857. (new \addons\Community\common\listeners\OrderSignRewardListener())->handleSync(['id' => 462]);
  858. (new \addons\Community\common\listeners\OrderSignRewardListener())->handleSync(['id' => 463]);
  859. } catch (\Exception $e) {
  860. var_dump($e->getMessage(), $e->getFile(), $e->getLine());
  861. }
  862. }
  863. public function actionAiSkinAudit()
  864. {
  865. foreach (\addons\AiSkinAudit\common\models\AiSkinAuditRecord::find()->each() as $each) {
  866. (new \addons\AiSkinAudit\common\service\OrderService())->handleSync(['id' => $each->id, 'mall_id' => $each->mall_id]);
  867. }
  868. }
  869. public function actionMch()
  870. {
  871. \addons\Mch\common\listeners\order\OrderFinishListener::async_handle(['id' => 10444]);
  872. }
  873. public function actionDistrict()
  874. {
  875. // 取省份
  876. /**
  877. * @var $p Region
  878. */
  879. // foreach (Region::find()->where(['level' => 1])->each() as $p) {
  880. // }
  881. $sql = "SELECT id,parent_id,`name` FROM qimall_region WHERE `level` = 3 AND `name` IN (SELECT `name` as count from qimall_region WHERE `level` = 3 group BY `name` having COUNT(1)>1);";
  882. $list = Region::find()->createCommand()->setRawSql($sql)->queryAll();
  883. $t_arr = [];
  884. $sqls = [];
  885. foreach ($list as $item) {
  886. if (empty($t_arr["{$item['parent_id']}_{$item['name']}"])) {
  887. $t_arr["{$item['parent_id']}_{$item['name']}"] = $item['id'];
  888. } else {
  889. // 订单
  890. $sqls[] = "UPDATE qimall_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  891. // 收货地址
  892. $sqls[] = "UPDATE qimall_user_address SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  893. // 地区
  894. $sqls[] = "DELETE FROM qimall_region WHERE id = {$item['id']};";
  895. // 预约服务
  896. $sqls[] = "UPDATE qimall_order_reserve SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  897. // 门店
  898. $sqls[] = "UPDATE qimall_addons_store_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  899. // 砍价
  900. $sqls[] = "UPDATE qimall_addons_bargain_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  901. // 蛋糕
  902. $sqls[] = "UPDATE qimall_addons_cake_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  903. // 拼团
  904. $sqls[] = "UPDATE qimall_addons_deposit_presale_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  905. // 拼团
  906. $sqls[] = "UPDATE qimall_addons_deposit_presale_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  907. // 拼团
  908. $sqls[] = "UPDATE qimall_addons_group_buy_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  909. // 拼团三返一
  910. $sqls[] = "UPDATE qimall_addons_group_buy_rebate_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  911. // 拼团订单
  912. $sqls[] = "UPDATE qimall_addons_group_rush_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  913. // 竞拍记录
  914. $sqls[] = "UPDATE qimall_addons_mini_mall_auction SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  915. $sqls[] = "UPDATE qimall_addons_mini_mall_order SET `area` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `area` = {$item['id']};";
  916. // 渠道分红
  917. $sqls[] = "UPDATE qimall_addons_area_agent SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  918. // 区代申请记录
  919. $sqls[] = "UPDATE qimall_addons_area_apply SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  920. // 社区团购
  921. $sqls[] = "UPDATE qimall_addons_area_community SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  922. // 代理商信息
  923. $sqls[] = "UPDATE qimall_addons_area_management_agent SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  924. $sqls[] = "UPDATE qimall_addons_area_management_apply SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  925. // 小区
  926. $sqls[] = "UPDATE qimall_addons_area_management_community SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  927. // 代理信息
  928. $sqls[] = "UPDATE qimall_addons_area_management_user SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  929. // card订单
  930. $sqls[] = "UPDATE qimall_addons_card_coupons_sales_order SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  931. // 云库存订单
  932. $sqls[] = "UPDATE qimall_addons_cloud_stock_agent_order SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  933. //
  934. $sqls[] = "UPDATE qimall_addons_cloud_stock_two_agent_order SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  935. // 社区团购
  936. $sqls[] = "UPDATE qimall_addons_community_head SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  937. $sqls[] = "UPDATE qimall_addons_community_head_apply SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  938. // 商户
  939. $sqls[] = "UPDATE qimall_addons_mch SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  940. // minimall
  941. $sqls[] = "UPDATE qimall_addons_mini_mall_seller_address SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  942. // 申请记录
  943. $sqls[] = "UPDATE qimall_addons_operation_center_apply_list SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  944. $sqls[] = "UPDATE qimall_addons_operation_center_user_center SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  945. // 企叮咚
  946. $sqls[] = "UPDATE qimall_addons_qi_ding_dong_region SET `local_district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `local_district_id` = {$item['id']};";
  947. $sqls[] = "UPDATE qimall_addons_qi_shang_tong_region SET `local_district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `local_district_id` = {$item['id']};";
  948. //
  949. $sqls[] = "UPDATE qimall_addons_regional_cooperation_user_apply SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  950. // 区域分红
  951. $sqls[] = "UPDATE qimall_addons_regional_dividend_commission SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  952. $sqls[] = "UPDATE qimall_addons_regional_dividend_proxy SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  953. $sqls[] = "UPDATE qimall_addons_regional_dividend_statistics SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  954. //
  955. $sqls[] = "UPDATE qimall_addons_register_info_user SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  956. // 服务点预约
  957. $sqls[] = "UPDATE qimall_addons_service_point SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  958. // 门店
  959. $sqls[] = "UPDATE qimall_addons_store SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  960. $sqls[] = "UPDATE qimall_addons_store_goods_reserve SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  961. $sqls[] = "UPDATE qimall_addons_store_order_reserve SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  962. //
  963. $sqls[] = "UPDATE qimall_addons_water_purifier_order SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  964. // 微信视频号小店
  965. $sqls[] = "UPDATE qimall_addons_wechat_video_shop SET `local_three_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `id` = {$item['id']};";
  966. // 商品预约
  967. $sqls[] = "UPDATE qimall_goods_reserve SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  968. $sqls[] = "UPDATE qimall_order_reserve SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  969. $sqls[] = "UPDATE qimall_town SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  970. // 商品搜索
  971. $sqls[] = "UPDATE qimall_goods_search_address SET `district_id` = {$t_arr["{$item['parent_id']}_{$item['name']}"]} WHERE `district_id` = {$item['id']};";
  972. }
  973. // 收货地址
  974. // 订单数据
  975. }
  976. var_dump($sqls);
  977. }
  978. }