ExpressForm.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\models;
  8. use app\models\Delivery;
  9. use app\models\PostageRules;
  10. use app\models\Sender;
  11. use yii\base\Model;
  12. use yii\helpers\Json;
  13. class ExpressForm extends Model
  14. {
  15. public $id;
  16. public $express_id;
  17. public $name;
  18. public $customer_name;
  19. public $customer_pwd;
  20. public $month_code;
  21. public $send_site;
  22. public $send_name;
  23. public $template_size;
  24. public $company;
  25. public $tel;
  26. public $mobile;
  27. public $post_code;
  28. public $address;
  29. public $province;
  30. public $city;
  31. public $exp_area;
  32. /**
  33. * @return array
  34. */
  35. public function rules()
  36. {
  37. return [
  38. [['express_id', 'name'], 'required'],
  39. [['express_id', 'id'], 'integer'],
  40. [['customer_name', 'customer_pwd', 'month_code', 'send_site', 'send_name', 'template_size', 'company',
  41. 'name', 'tel', 'mobile', 'post_code', 'address', 'province', 'city', 'exp_area'], 'string', 'max' => 255],
  42. ];
  43. }
  44. public function attributeLabels()
  45. {
  46. return [
  47. 'customer_name' => '电子面单客户账号',
  48. 'customer_pwd' => '电子面单密码',
  49. 'month_code' => '月结密码',
  50. 'send_site' => '网点编码',
  51. 'send_name' => '网点名称',
  52. 'template_size' => '面单模板规格',
  53. 'company' => '发件人公司',
  54. 'name' => '发件人名称',
  55. 'tel' => '电话',
  56. 'mobile' => '手机号',
  57. 'post_code' => '发件人邮编',
  58. 'address' => '详细地址',
  59. 'province' => '省',
  60. 'city' => '市',
  61. 'exp_area' => '区'
  62. ];
  63. }
  64. /**
  65. * 保存运费规则
  66. * @return array
  67. */
  68. public function save()
  69. {
  70. if(!$this->validate()) {
  71. return [
  72. 'code' => 1,
  73. 'msg' => $this->getErrorSummary(false)[0],
  74. ];
  75. }
  76. $t = \Yii::$app->db->beginTransaction();
  77. $delivery = Delivery::findOne($this->id)?: new Delivery();
  78. if (get_supplier_id()) {
  79. $delivery->store_id = 0;
  80. $delivery->type = 1;
  81. $delivery->supplier_id = get_supplier_id();
  82. } else {
  83. $delivery->store_id = get_store_id();
  84. $delivery->type = 0;
  85. }
  86. $delivery->express_id = $this->express_id;
  87. $delivery->customer_name = $this->customer_name ?: '';
  88. $delivery->customer_pwd = $this->customer_pwd ?: '';
  89. $delivery->month_code = $this->month_code ?: '';
  90. $delivery->send_site = $this->send_site ?: '';
  91. $delivery->send_name = $this->send_name ?: '';
  92. $delivery->template_size = $this->template_size ?: '';
  93. if ($delivery->save()) {
  94. $sender = Sender::findOne(['delivery_id' => $delivery->id])?: new Sender();
  95. if (get_supplier_id()) {
  96. $sender->store_id = 0;
  97. $sender->supplier_id = get_supplier_id();
  98. } else {
  99. $sender->store_id = get_store_id();
  100. }
  101. $sender->company = $this->company ?: '';
  102. $sender->name = $this->name ?: '';
  103. $sender->tel = $this->tel ?: '';
  104. $sender->mobile = $this->mobile ?: '';
  105. $sender->post_code = $this->post_code ?: '';
  106. $sender->province = $this->province ?: '';
  107. $sender->city = $this->city ?: '';
  108. $sender->exp_area = $this->exp_area ?: '';
  109. $sender->address = $this->address ?: '';
  110. $sender->delivery_id = $delivery->id ?: 0;
  111. if ($sender->save()) {
  112. $t->commit();
  113. return [
  114. 'code' => 0,
  115. 'msg' => '保存成功'
  116. ];
  117. } else {
  118. $t->rollBack();
  119. return [
  120. 'code' => 1,
  121. 'msg' => '保存失败'
  122. ];
  123. }
  124. } else {
  125. $t->rollBack();
  126. return [
  127. 'code' => 1,
  128. 'msg' => '保存失败'
  129. ];
  130. }
  131. }
  132. public static function del($id)
  133. {
  134. $delivery = Delivery::findOne(['id' => $id, 'store_id' => get_store_id()]);
  135. $t = \Yii::$app->db->beginTransaction();
  136. if (empty($delivery)) {
  137. return ['code' => 1, 'msg' => '参数错误'];
  138. } else {
  139. $delivery->is_delete = 1;
  140. $sender = Sender::findOne(['delivery_id' => $id]);
  141. if ($delivery->save()) {
  142. if ($sender) {
  143. $sender->is_delete = 1;
  144. if ($sender->save()) {
  145. $t->commit();
  146. return [
  147. 'code' => 0,
  148. 'msg' => '保存成功'
  149. ];
  150. } else {
  151. $t->rollBack();
  152. return [
  153. 'code' => 1,
  154. 'msg' => '保存失败'
  155. ];
  156. }
  157. } else {
  158. $t->commit();
  159. return [
  160. 'code' => 0,
  161. 'msg' => '删除成功'
  162. ];
  163. }
  164. } else {
  165. $t->rollBack();
  166. return [
  167. 'code' => 1,
  168. 'msg' => '删除失败'
  169. ];
  170. }
  171. }
  172. }
  173. }