MdSettingForm.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. /**
  3. * MdSettingForm.php
  4. * todo 文件描述
  5. * Created on 2024/3/18 14:35
  6. * @author: hankaige
  7. */
  8. namespace app\modules\admin\models;
  9. use app\models\MdSetting;
  10. use app\models\Store;
  11. use yii\base\Model;
  12. use yii\helpers\ArrayHelper;
  13. use yii\helpers\Json;
  14. class MdSettingForm extends Model
  15. {
  16. public $store_id;
  17. public $change_shop = 1;
  18. public $pay_wechat = 1;
  19. public $pay_alipay = 0;
  20. public $pay_bank = 0;
  21. public $pay_lg = 0;
  22. public $pay_remaining = 0;
  23. public $min_money = 0;
  24. public $cash_max_day = 0;
  25. public $cash_max_single_day = 0;
  26. public $cash_service_charge = 0;
  27. public $member_price_clerk_commission = 1;
  28. public $single_md_goods_risk = 0;
  29. public $md_banner;
  30. public $md_agreement;
  31. public function rules()
  32. {
  33. return [
  34. [
  35. ['store_id'],
  36. 'required',
  37. 'on' => 'save'
  38. ],
  39. [
  40. [
  41. 'store_id',
  42. 'change_shop',
  43. 'pay_wechat',
  44. 'pay_alipay',
  45. 'pay_bank',
  46. 'pay_lg',
  47. 'pay_remaining',
  48. 'member_price_clerk_commission',
  49. 'single_md_goods_risk'
  50. ],
  51. 'integer',
  52. 'on' => 'save'
  53. ],
  54. [
  55. [
  56. 'min_money',
  57. 'cash_max_day',
  58. 'cash_max_single_day',
  59. 'cash_service_charge'
  60. ],
  61. 'number',
  62. 'on' => 'save'
  63. ],
  64. [
  65. [
  66. 'md_banner',
  67. 'md_agreement'
  68. ],
  69. 'safe',
  70. 'on' => 'save'
  71. ]
  72. ];
  73. }
  74. /**
  75. * 获取门店设置信息
  76. * @return MdSetting|array|\yii\db\ActiveRecord|null
  77. * @author: hankaige
  78. * @Time: 2024/3/18 14:36
  79. */
  80. public function getSetting()
  81. {
  82. $store = Store::findOne($this->store_id);
  83. $pics = $store->md_banner ? Json::decode($store->md_banner) : [];
  84. $model = MdSetting::find()->where(['store_id' => $this->store_id])->one();
  85. if (!$model) {
  86. $model = new MdSetting();
  87. $model->store_id = $this->store_id;
  88. $model->save();
  89. }
  90. $model = ArrayHelper::toArray($model);
  91. $model['md_agreement'] = $store->md_agreement;
  92. $model['md_banner'] = $pics;
  93. $model['single_md_goods_risk'] = intval($model['single_md_goods_risk']);
  94. $model['member_price_clerk_commission'] = intval($model['member_price_clerk_commission']) ?? 1;
  95. return $model;
  96. }
  97. /**
  98. * 保存配置信息
  99. * @return array
  100. * @author: hankaige
  101. * @Time: 2024/3/19 09:38
  102. */
  103. public function saveSetting()
  104. {
  105. if (!$this->validate()) {
  106. return [
  107. 'code' => 1,
  108. "msg" => $this->getErrorSummary(FALSE)[0]
  109. ];
  110. }
  111. $t = \Yii::$app->db->beginTransaction();
  112. $store = Store::findOne($this->store_id);
  113. try {
  114. $store->md_banner = Json::encode($this->md_banner);
  115. $store->md_agreement = $this->md_agreement;
  116. if (!$store->save()) {
  117. $t->rollBack();
  118. return [
  119. 'code' => 1,
  120. 'msg' => '保存配置信息失败'
  121. ];
  122. }
  123. $model = MdSetting::findOne(['store_id' => $this->store_id]);
  124. $model->change_shop = $this->change_shop;
  125. $model->pay_wechat = $this->pay_wechat;
  126. $model->pay_alipay = $this->pay_alipay;
  127. $model->pay_bank = $this->pay_bank;
  128. $model->pay_lg = $this->pay_lg;
  129. $model->pay_remaining = $this->pay_remaining;
  130. $model->min_money = $this->min_money;
  131. $model->cash_max_day = $this->cash_max_day;
  132. $model->cash_max_single_day = $this->cash_max_single_day;
  133. $model->cash_service_charge = $this->cash_service_charge;
  134. //会员价产品是否计算核销佣金
  135. $model->member_price_clerk_commission = $this->member_price_clerk_commission ?? 1;
  136. $model->single_md_goods_risk = $this->single_md_goods_risk ?? 0;
  137. if (!$model->save()) {
  138. $t->rollBack();
  139. return [
  140. 'code' => 1,
  141. 'msg' => '保存配置信息失败'
  142. ];
  143. }
  144. $t->commit();
  145. return [
  146. 'code' => 0,
  147. 'msg' => '设置成功'
  148. ];
  149. } catch (\Throwable $e) {
  150. $t->rollBack();
  151. return [
  152. 'code' => 1,
  153. 'msg' => $e->getMessage()
  154. ];
  155. }
  156. }
  157. }