| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace hd\controllers;
- use bizHd\member\classes\MemberLevelClass;
- use bizHd\member\classes\MemberWealClass;
- use bizHd\shop\classes\ShopClass;
- use common\components\dict;
- use common\components\util;
- use Yii;
- class MemberLevelController extends BaseController
- {
- public $guestAccess = [];
- //初始化数据 ssh 20250831
- public function actionGetInitData()
- {
- $shop = $this->shop;
- $reduceDay = $shop->reduceDay ?? 30;
- $memberLevelSet = $shop->memberLevelSet ?? 0;
- $shopId = $this->shopId;
- if ($memberLevelSet == 1) {
- $list = MemberLevelClass::getAllByCondition(['shopId' => $shopId], 'level ASC', '*', null);
- $member = [];
- if (!empty($list)) {
- foreach ($list as $k => $val) {
- $name = $val['name'] ?? '普通会员';
- $levelSn = $val['levelSn'] ?? 'general';
- $level = $val['level'] ?? 1;
- $amount = $val['amount'] ?? 0;
- $amount = floatval($amount);
- $it = [
- 'name' => $name,
- 'levelSn' => $levelSn,
- 'level' => $level,
- 'amount' => $amount,
- ];
- $member[] = $it;
- }
- }
- } else {
- $member = dict::getDict('memberLevelMap');
- }
- util::success(['member' => $member, 'reduceDay' => $reduceDay, 'memberLevelSet' => $memberLevelSet]);
- }
- public function actionModify()
- {
- $post = Yii::$app->request->post();
- $shopId = $this->shopId;
- $mainId = $this->mainId;
- $shop = $this->shop;
- if ($shop->memberLevelSet == 1) {
- util::fail('已经设置过');
- }
- $connection = Yii::$app->db;
- $transaction = $connection->beginTransaction();
- try {
- $reduceDay = $post['reduceDay'] ?? 0;
- ShopClass::updateById($shopId, ['reduceDay' => $reduceDay]);
- $data = $post['data'] ?? [];
- if (empty($data)) {
- util::fail('请填写会员信息');
- }
- // 验证值递增
- $prevAmount = -1;
- foreach ($data as $item) {
- $currentAmount = floatval($item['amount'] ?? 0);
- if ($currentAmount <= $prevAmount) {
- util::fail('消费金额必须递增');
- }
- $prevAmount = $currentAmount;
- }
- foreach ($data as $k => $v) {
- $levelSn = $v['levelSn'] ?? 'general';
- $level = $v['level'] ?? 1;
- $name = $v['name'] ?? '普通会员';
- $amount = $v['amount'] ?? 0;
- $it = [
- 'mainId' => $mainId,
- 'shopId' => $shopId,
- 'level' => $level,
- 'levelSn' => $levelSn,
- 'name' => $name,
- 'amount' => $amount,
- ];
- $has = MemberLevelClass::getByCondition(['mainId' => $mainId, 'level' => $level], true);
- if (!empty($has)) {
- $has->amount = $amount;
- $has->save();
- } else {
- MemberLevelClass::add($it, true);
- }
- }
- $shop->memberLevelSet = 1;
- $shop->save();
- $transaction->commit();
- util::complete('设置成功');
- } catch (\Exception $e) {
- $transaction->rollBack();
- Yii::info("失败原因:" . $e->getMessage());
- util::fail('设置失败');
- }
- }
- }
|