MemberLevelController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace hd\controllers;
  3. use bizHd\member\classes\MemberLevelClass;
  4. use bizHd\member\classes\MemberWealClass;
  5. use bizHd\shop\classes\ShopClass;
  6. use common\components\dict;
  7. use common\components\util;
  8. use Yii;
  9. class MemberLevelController extends BaseController
  10. {
  11. public $guestAccess = [];
  12. //初始化数据 ssh 20250831
  13. public function actionGetInitData()
  14. {
  15. $shop = $this->shop;
  16. $reduceDay = $shop->reduceDay ?? 30;
  17. $memberLevelSet = $shop->memberLevelSet ?? 0;
  18. $shopId = $this->shopId;
  19. if ($memberLevelSet == 1) {
  20. $list = MemberLevelClass::getAllByCondition(['shopId' => $shopId], 'level ASC', '*', null);
  21. $member = [];
  22. if (!empty($list)) {
  23. foreach ($list as $k => $val) {
  24. $name = $val['name'] ?? '普通会员';
  25. $levelSn = $val['levelSn'] ?? 'general';
  26. $level = $val['level'] ?? 1;
  27. $amount = $val['amount'] ?? 0;
  28. $amount = floatval($amount);
  29. $it = [
  30. 'name' => $name,
  31. 'levelSn' => $levelSn,
  32. 'level' => $level,
  33. 'amount' => $amount,
  34. ];
  35. $member[] = $it;
  36. }
  37. }
  38. } else {
  39. $member = dict::getDict('memberLevelMap');
  40. }
  41. util::success(['member' => $member, 'reduceDay' => $reduceDay, 'memberLevelSet' => $memberLevelSet]);
  42. }
  43. public function actionModify()
  44. {
  45. $post = Yii::$app->request->post();
  46. $shopId = $this->shopId;
  47. $mainId = $this->mainId;
  48. $shop = $this->shop;
  49. if ($shop->memberLevelSet == 1) {
  50. util::fail('已经设置过');
  51. }
  52. $connection = Yii::$app->db;
  53. $transaction = $connection->beginTransaction();
  54. try {
  55. $reduceDay = $post['reduceDay'] ?? 0;
  56. ShopClass::updateById($shopId, ['reduceDay' => $reduceDay]);
  57. $data = $post['data'] ?? [];
  58. if (empty($data)) {
  59. util::fail('请填写会员信息');
  60. }
  61. // 验证值递增
  62. $prevAmount = -1;
  63. foreach ($data as $item) {
  64. $currentAmount = floatval($item['amount'] ?? 0);
  65. if ($currentAmount <= $prevAmount) {
  66. util::fail('消费金额必须递增');
  67. }
  68. $prevAmount = $currentAmount;
  69. }
  70. foreach ($data as $k => $v) {
  71. $levelSn = $v['levelSn'] ?? 'general';
  72. $level = $v['level'] ?? 1;
  73. $name = $v['name'] ?? '普通会员';
  74. $amount = $v['amount'] ?? 0;
  75. $it = [
  76. 'mainId' => $mainId,
  77. 'shopId' => $shopId,
  78. 'level' => $level,
  79. 'levelSn' => $levelSn,
  80. 'name' => $name,
  81. 'amount' => $amount,
  82. ];
  83. $has = MemberLevelClass::getByCondition(['mainId' => $mainId, 'level' => $level], true);
  84. if (!empty($has)) {
  85. $has->amount = $amount;
  86. $has->save();
  87. } else {
  88. MemberLevelClass::add($it, true);
  89. }
  90. }
  91. $shop->memberLevelSet = 1;
  92. $shop->save();
  93. $transaction->commit();
  94. util::complete('设置成功');
  95. } catch (\Exception $e) {
  96. $transaction->rollBack();
  97. Yii::info("失败原因:" . $e->getMessage());
  98. util::fail('设置失败');
  99. }
  100. }
  101. }