Upgrade.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace addon\mall\app\upgrade\v010;
  3. use addon\mall\app\dict\init\InitDataDict;
  4. use addon\mall\app\model\delivery\ElectronicSheet;
  5. use addon\mall\app\model\goods\Label;
  6. use addon\mall\app\service\core\delivery\CoreCompanyService;
  7. use addon\mall\app\service\core\delivery\CoreElectronicSheetService;
  8. use app\model\site\Site;
  9. use app\model\sys\Poster;
  10. use app\service\core\diy\CoreDiyService;
  11. use app\service\core\poster\CorePosterService;
  12. class Upgrade
  13. {
  14. public function handle()
  15. {
  16. $this->handleData();
  17. }
  18. /**
  19. * 处理商品数据
  20. */
  21. private function handleData()
  22. {
  23. $mall_data = InitDataDict::getInitData(['site_id' => 0]);
  24. $poster = new CorePosterService();
  25. $poster_model = new Poster();
  26. $shop_goods_poster = $poster_model->where([
  27. ['site_id', '=', 0],
  28. ['type', '=', 'shop_goods'],
  29. ['is_default', '=', 1],
  30. ['addon', '=', 'mall']
  31. ])->count();
  32. if ($shop_goods_poster == 0) {
  33. // 创建默认商品海报
  34. $template = $poster->getTemplateList('mall', 'shop_goods')[ 0 ];
  35. $poster->add(0, 'mall', [
  36. 'name' => $template[ 'name' ],
  37. 'type' => $template[ 'type' ],
  38. 'value' => $template[ 'data' ],
  39. 'status' => 1,
  40. 'is_default' => 1
  41. ]);
  42. }
  43. // 添加商品标签
  44. $label_model = new Label();
  45. $label_model->insertAll($mall_data['label_list']);
  46. // 创建物流公司
  47. $company_service = new CoreCompanyService();
  48. foreach ($mall_data['company_list'] as $k => $v) {
  49. $company_info = $company_service->getInfo([['company_name', '=', $v['company_name']]], 'company_id');
  50. if (!empty($company_info)){
  51. $company_service->edit(['company_id' => $company_info['company_id']],$v);
  52. unset($mall_data['company_list'][$k]);
  53. }
  54. }
  55. $mall_data['company_list'] = array_values($mall_data['company_list']);
  56. $company_service->addAll($mall_data['company_list']);
  57. // 创建默认主题风格颜色
  58. ( new CoreDiyService() )->initDefaultDiyTheme();
  59. // 创建电子面单
  60. $company_service = new CoreCompanyService();
  61. $company_list_for_print = $company_service->getList([
  62. [ 'site_id', '=', 0 ],
  63. [ 'express_no_electronic_sheet', 'in', [ 'EMS', 'YZPY', 'SF' ] ],
  64. [ 'electronic_sheet_switch', '=', 1 ],
  65. ], 'company_id,company_name,express_no_electronic_sheet,print_style,exp_type');
  66. $site_model = new Site();
  67. $site_ids = $site_model->where([ [ 'site_id', '>', 0 ] ])->column('site_id');
  68. if (!empty($site_ids) && !empty($company_list_for_print)) {
  69. foreach ($site_ids as $item_site_id) {
  70. $electronic_sheet_list = [];
  71. foreach ($company_list_for_print as $k => $v) {
  72. $electronic_sheet_list[] = [
  73. 'site_id' => $item_site_id,
  74. 'template_name' => $v['company_name'] . ' ' . $v['print_style'][0]['template_name'],
  75. 'express_company_id' => $v['company_id'],
  76. 'customer_name' => '电子面单账号',
  77. 'customer_pwd' => '电子面单密码',
  78. 'send_site' => '',
  79. 'send_staff' => '',
  80. 'month_code' => '',
  81. 'pay_type' => 1,
  82. 'is_notice' => 0,
  83. 'status' => 1,
  84. 'exp_type' => $v['exp_type'][0]['value'],
  85. 'print_style' => $v['print_style'][0]['template_size'],
  86. 'is_default' => $k == 0 ? 1 : 0,
  87. 'create_time' => time()
  88. ];
  89. }
  90. $electronic_sheet_count = ( new ElectronicSheet() )->where([
  91. ['site_id', '=', $item_site_id ],
  92. ['is_default', '=', 1 ]
  93. ])->count();
  94. if (!empty($electronic_sheet_list) && $electronic_sheet_count == 0) {
  95. $electronic_sheet_service = new CoreElectronicSheetService();
  96. $electronic_sheet_service->addAll($electronic_sheet_list);
  97. }
  98. }
  99. }
  100. }
  101. }