ExpressElectronicsheet.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\electronicsheet\model;
  11. use app\model\express\ExpressCompanyTemplate;
  12. use app\model\system\Config;
  13. use app\model\BaseModel;
  14. class ExpressElectronicsheet extends BaseModel
  15. {
  16. /************************************ 电子面单设置 start **********************************************************/
  17. /**
  18. * 电子面单设置
  19. * @param $data
  20. * @return array
  21. */
  22. public function setElectronicsheetConfig($data)
  23. {
  24. $config = new Config();
  25. $res = $config->setConfig($data, '电子面单设置', 1, [ [ 'site_id', '=', $data[ 'site_id' ] ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'ELECTRONICSHEET_CONFIG' ] ]);
  26. return $this->success($res);
  27. }
  28. /**
  29. * 获取电子面单设置
  30. * @return array
  31. */
  32. public function getElectronicsheetConfig($site_id)
  33. {
  34. $config = new Config();
  35. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'ELECTRONICSHEET_CONFIG' ] ]);
  36. if (empty($res[ 'data' ][ 'value' ])) {
  37. $res[ 'data' ][ 'value' ] = [
  38. 'type' => 'kdniao',
  39. 'kdniao_user_id' => '',
  40. 'kdniao_api_key' => '',
  41. 'kdniao_port' => '',
  42. 'cainiao_token' => '',
  43. 'cainiao_ip' => ''
  44. ];
  45. }
  46. return $res;
  47. }
  48. /************************************ 电子面单设置 end **********************************************************/
  49. /**
  50. * 添加电子面单
  51. * @param $data
  52. * @return array
  53. */
  54. public function addExpressElectronicsheet($data)
  55. {
  56. //判断模板名称是否重复
  57. $count = model('express_electronicsheet')->getCount(
  58. [
  59. [ 'site_id', '=', $data[ 'site_id' ] ],
  60. [ 'template_name', '=', $data[ 'template_name' ] ]
  61. ]);
  62. if ($count > 0) {
  63. return $this->error('', '该电子面单名称已存在');
  64. }
  65. $express_company_model = new ExpressCompanyTemplate();
  66. $express_company_info = $express_company_model->getExpressCompanyTemplateInfo([ [ 'company_id', '=', $data[ 'company_id' ] ] ], 'company_id,company_name,express_no');
  67. if (empty($express_company_info)) {
  68. return $this->error('', '快递公司不存在');
  69. }
  70. if (empty($express_company_info[ 'data' ][ 'express_no' ]) || empty($express_company_info[ 'data' ][ 'company_name' ])) {
  71. return $this->error('', '快递公司名称或者快递鸟编码为空');
  72. }
  73. $data[ 'express_no' ] = $express_company_info[ 'data' ][ 'express_no' ];
  74. $data[ 'company_name' ] = $express_company_info[ 'data' ][ 'company_name' ];
  75. $data[ 'create_time' ] = time();
  76. model('express_electronicsheet')->startTrans();
  77. try {
  78. if ($data[ 'is_default' ] == 1) {
  79. $this->setExpressElectronicsheetDefault([ [ 'site_id', '=', $data[ 'site_id' ] ], [ 'is_default', '=', 1 ] ], 0);
  80. }
  81. model('express_electronicsheet')->add($data);
  82. model('express_electronicsheet')->commit();
  83. return $this->success();
  84. } catch (\Exception $e) {
  85. model('express_electronicsheet')->rollback();
  86. return $this->error('', $e->getMessage());
  87. }
  88. }
  89. /**
  90. * 编辑电子面单
  91. * @param $data
  92. * @return array
  93. */
  94. public function editExpressElectronicsheet($data)
  95. {
  96. //判断模板名称是否重复
  97. $count = model('express_electronicsheet')->getCount(
  98. [
  99. [ 'site_id', '=', $data[ 'site_id' ] ],
  100. [ 'id', '<>', $data[ 'id' ] ],
  101. [ 'template_name', '=', $data[ 'template_name' ] ]
  102. ]);
  103. if ($count > 0) {
  104. return $this->error('', '该电子面单名称已存在');
  105. }
  106. $express_company_model = new ExpressCompanyTemplate();
  107. $express_company_info = $express_company_model->getExpressCompanyTemplateInfo([ [ 'company_id', '=', $data[ 'company_id' ] ] ], 'company_id,company_name,express_no');
  108. if (empty($express_company_info)) {
  109. return $this->error('', '快递公司不存在');
  110. }
  111. if (empty($express_company_info[ 'data' ][ 'express_no' ]) || empty($express_company_info[ 'data' ][ 'company_name' ])) {
  112. return $this->error('', '快递公司名称或者快递鸟编码为空');
  113. }
  114. $data[ 'express_no' ] = $express_company_info[ 'data' ][ 'express_no' ];
  115. $data[ 'company_name' ] = $express_company_info[ 'data' ][ 'company_name' ];
  116. $data[ 'update_time' ] = time();
  117. model('express_electronicsheet')->startTrans();
  118. try {
  119. if ($data[ 'is_default' ] == 1) {
  120. $this->setExpressElectronicsheetDefault([ [ 'site_id', '=', $data[ 'site_id' ] ], [ 'id', '<>', $data[ 'id' ] ], [ 'is_default', '=', 1 ] ], 0);
  121. }
  122. model('express_electronicsheet')->update($data, [ [ 'id', '=', $data[ 'id' ] ], [ 'site_id', '=', $data[ 'site_id' ] ] ]);
  123. model('express_electronicsheet')->commit();
  124. return $this->success();
  125. } catch (\Exception $e) {
  126. model('express_electronicsheet')->rollback();
  127. return $this->error('', $e->getMessage());
  128. }
  129. }
  130. /**
  131. * 设置默认状态
  132. * @param array $condition
  133. * @param $is_default
  134. * @return int
  135. */
  136. public function setExpressElectronicsheetDefault($condition, $is_default)
  137. {
  138. $res = model('express_electronicsheet')->update([ 'is_default' => $is_default ], $condition);
  139. return $this->success($res);
  140. }
  141. /**
  142. * 删除
  143. * @param $condition
  144. * @return array
  145. */
  146. public function deleteExpressElectronicsheet($condition)
  147. {
  148. $res = model('express_electronicsheet')->delete($condition);
  149. return $this->success($res);
  150. }
  151. /**
  152. * 获取电子面单信息
  153. * @param array $condition
  154. * @param string $field
  155. * @return array
  156. */
  157. public function getExpressElectronicsheetInfo($condition = [], $field = '*')
  158. {
  159. $res = model('express_electronicsheet')->getInfo($condition, $field);
  160. return $this->success($res);
  161. }
  162. /**
  163. * 获取电子面单列表
  164. * @param array $condition
  165. * @param string $field
  166. * @param string $order
  167. * @param string $limit
  168. */
  169. public function getExpressElectronicsheetList($condition = [], $field = '*', $order = '', $limit = null)
  170. {
  171. $list = model('express_electronicsheet')->getList($condition, $field, $order, '', '', '', $limit);
  172. return $this->success($list);
  173. }
  174. /**
  175. * 获取电子面单分页列表
  176. * @param array $condition
  177. * @param number $page
  178. * @param string $page_size
  179. * @param string $order
  180. * @param string $field
  181. */
  182. public function getExpressElectronicsheetPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = '', $field = '*')
  183. {
  184. $list = model('express_electronicsheet')->pageList($condition, $field, $order, $page, $page_size);
  185. return $this->success($list);
  186. }
  187. }