| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660 |
- <?php
- namespace addons\MembersCard\backend\controllers;
- use Yii;
- use common\controllers\AddonsController;
- use addons\MembersCard\common\enums\MembersCardEnum;
- use common\models\user\UserLevel;
- use addons\MembersCard\common\models\MembersCard;
- use addons\MembersCard\common\models\MembersCardGive;
- use addons\MembersCard\common\models\MembersCardUsedLog;
- use addons\MembersCard\common\models\CommissionLog;
- use common\enums\StatusEnum;
- use common\models\user\User;
- use common\models\order\Order;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreCashierOrder;
- use common\models\order\OrderDetail;
- /**
- * 默认控制器
- *
- * Class DefaultController
- * @package addons\MembersCard\backend\controllers
- */
- class DefaultController extends BaseController
- {
- public $enableCsrfValidation = false;
- /**
- * 首页
- *
- * @return string
- */
- public function actionIndex()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
-
- if(!empty($get['keyword'])){
- $params['where'][] = ['like','name',$get['keyword']];
- }
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED]];
- $params['limit'] = 10;
- $params['order'] = 'created_at desc';
- try{
- $pageData = MembersCard::listPage($params, false);
- }catch(\Exception $e){
- return $this->fail('获取数据失败');
- }
- if ($pageData === false) return $this->error(MembersCard::getStaticError());
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('index');
- }
- /**
- * 亲友卡编辑
- *
- * @return string
- */
- public function actionEdit()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- // 反显商品信息
- $get = Yii::$app->request->get();
- $res = Yii::$app->services->validate->validate($get, [[['id'], 'integer']]);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $detail = [];
- if($get['id']){
- $membersCard = MembersCard::find()->where(['id'=>$get['id']])->asArray()->one();
- if($membersCard){
- $membersCard['member_limit'] = json_decode($membersCard['member_limit'],true) ?? [];
- }
- $detail = $membersCard;
- }
-
- $levels = UserLevel::getUserLevel([['mall_id' => $this->mall_id],['status'=>StatusEnum::ENABLED]], [], true, 'id,level,name');
- return $this->success('操作成功',compact('detail', 'levels'));
- } else {
- // 编辑商品
- $form = \Yii::$app->request->post('form');
- $id = \Yii::$app->request->post('id');
- $form['mall_id'] = $this->mall['id'];
- if($id){
- $form['id'] = $id;
- }
- $form['member_limit'] = $form['member_limit'] ? json_encode($form['member_limit']) : '';
- $res = MembersCard::setData($form);
- if ($res === false) return $this->error(MembersCard::getStaticError());
- return $this->success('操作成功');
- }
- }
-
- return $this->render($this->action->id);
- }
- public function actionList()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
-
- if (!empty($get['keyword'])) {
- $card_list = MembersCard::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'name', $get['keyword']]
- ]], 'select' => 'id']);
- $card_ids = array_column($card_list, 'id');
- $params['where'][] = ['in', 'card_id', $card_ids];
- }
- if (!empty($get['keyword2'])) {
- $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['=', 'id', $get['keyword2']],
- ['like', 'username', $get['keyword2']],
- ['like', 'nickname', $get['keyword2']],
- ['like', 'mobile', $get['keyword2']]
- ]], 'select' => 'id']);
- $user_ids = array_column($user_list, 'id');
- $params['where'][] = ['in', 'user_id', $user_ids];
- }
- if(!empty($get['type'])){
- if($get['type'] == 1){
- $params['where'][] = ['=', 'parent_card_id', 0];
- }elseif($get['type'] == 2){
- $params['where'][] = ['!=', 'parent_card_id', 0];
- }
- }
- if (!empty($get['start'])) $params['where'][] = ['>=', 'created_at', strtotime($get['start'] . ' 00:00:00')];
- if (!empty($get['end'])) $params['where'][] = ['<', 'created_at', strtotime($get['end'] . ' 00:00:00')];
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED]];
- $params['limit'] = 10;
- $params['order'] = 'created_at desc';
- try{
- $pageData = MembersCardGive::listPage($params, false);
- }catch(\Exception $e){
- return $this->fail('获取数据失败');
- }
- if ($pageData === false) return $this->error(MembersCard::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id_arr = array_column($pageData['list'], 'user_id');
- $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']);
- $user_arr = [];
- foreach ($user_list as $item) {
- $user_arr[$item['id']] = $item;
- }
- $card_ids = array_column($pageData['list'], 'card_id');
- $card_list = MembersCard::lists(['where' => [['id' => $card_ids]], 'select' => 'id,name,background_url','index'=>'id']);
- foreach ($pageData['list'] as &$v) {
- $v['nickname'] = $v['avatar_url'] = $v['parent_id'] = $v['parent_name'] = $v['mobile'] = '';
- if (isset($user_arr[$v['user_id']])) {
- $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
- $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
- $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
- }
- $v['background_url'] = $v['name'] = '';
- if(isset($card_list[$v['card_id']])){
- $v['name'] = $card_list[$v['card_id']]['name'];
- $v['background_url'] = $card_list[$v['card_id']]['background_url'];
- }
- }
- }
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('list',[
- ]);
- }
- public function actionIncomeList()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
-
- if (!empty($get['keyword'])) {
- $order_list = Order::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['=', 'order_no', $get['keyword']]
- ]], 'select' => 'id']);
- $order_ids = array_column($order_list, 'id');
- $params['where'][] = ['in', 'order_id', $order_ids];
- }
- if (!empty($get['keyword2'])) {
- $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['=', 'id', $get['keyword2']],
- ['like', 'username', $get['keyword2']],
- ['like', 'nickname', $get['keyword2']],
- ['like', 'mobile', $get['keyword2']]
- ]], 'select' => 'id']);
- $user_ids = array_column($user_list, 'id');
- $params['where'][] = ['in', 'user_id', $user_ids];
- }
- if (!empty($get['keyword3'])) {
- $store_list = Store::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'store_name', $get['keyword3']]
- ]], 'select' => 'id']);
- $store_ids = array_column($store_list, 'id');
- $params['where'][] = ['in', 'store_id', $store_ids];
- }
- if(!empty($get['type'])){
- if($get['type'] == 1){
- $params['where'][] = ['=', 'is_frozen', 0];
- }elseif($get['type'] == 2){
- $params['where'][] = ['=', 'is_frozen', 1];
- }
- }
- if (!empty($get['start'])) $params['where'][] = ['>=', 'created_at', strtotime($get['start'] . ' 00:00:00')];
- if (!empty($get['end'])) $params['where'][] = ['<', 'created_at', strtotime($get['end'] . ' 00:00:00')];
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED]];
- $params['limit'] = 10;
- $params['order'] = 'created_at desc';
- try{
- $pageData = CommissionLog::listPage($params, false);
- }catch(\Exception $e){
- return $this->fail('获取数据失败');
- }
- if ($pageData === false) return $this->error(MembersCard::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id_arr = array_column($pageData['list'], 'user_id');
- $user_id_arrs = array_column($pageData['list'], 'reward_user_id');
- $user_id_arr = array_merge($user_id_arr,$user_id_arrs);
- $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']);
- $user_arr = [];
- foreach ($user_list as $item) {
- $user_arr[$item['id']] = $item;
- }
- foreach ($pageData['list'] as &$v) {
- $v['nickname'] = $v['avatar_url'] = $v['nickname'] = '';
- $v['reward_nickname'] = $v['reward_avatar_url'] = $v['reward_nickname'] = '';
- if (isset($user_arr[$v['user_id']])) {
- $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
- $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
- $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
- }
- if (isset($user_arr[$v['reward_user_id']])) {
- $v['reward_mobile'] = $user_arr[$v['reward_user_id']]['mobile'];
- $v['reward_nickname'] = $user_arr[$v['reward_user_id']]['nickname'];
- $v['reward_avatar_url'] = $user_arr[$v['reward_user_id']]['avatar_url'];
- }
- if($v['store_id']){
- $store = Store::findOne(['id'=>$v['store_id']]);
- $v['store_name'] = $store['store_name'];
- }
- if(!$v['is_cashier']){
- $order = Order::findOne(['id'=>$v['order_id']]);
- $order_detail = OrderDetail::findOne(['id'=>$v['order_detail_id']]);
- $v['order_money'] = $order_detail['price'];
- }else{
- $order = StoreCashierOrder::findOne(['id'=>$v['order_id']]);
- $v['order_money'] = $order['money'];
- }
- $v['order_no'] = $order['order_no'];
- if($v['is_frozen']){
- $v['desc'] = '未结算';
- }else{
- $v['desc'] = '已结算';
- }
- }
- }
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('income-list',[
- ]);
- }
- /**
- * 基础配置
- *
- * @return string
- */
- public function actionSetting()
- {
- $retuest = Yii::$app->request;
- if ($retuest->isAjax) {
- if ($retuest->isPost) {
- $params = Yii::$app->request->post();
- $res = Yii::$app->services->validate->validate($params,[
- [['is_enable','settlement_method','is_remind','remind_days'], 'integer'],
- [['description'], 'string'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- // 保存配置
- $config = Yii::$app->services->setting->addons->set($this->mall_id, MembersCardEnum::ADDONS_NAME, ['basic' => $params]);
- $this->success('保存成功', $config);
- } else {
- // 获取配置
- $config = Yii::$app->services->setting->addons->get($this->mall_id, MembersCardEnum::ADDONS_NAME, 'basic');
- $this->success('获取成功', $config);
- }
- }
- return $this->render($this->action->id);
- }
- /*
- *更改状态
- */
- public function actionUpdateStatus()
- {
- $params = Yii::$app->request->post();
- if (!in_array($params['is_enable'], [StatusEnum::ENABLED, StatusEnum::DISABLED])) {
- return $this->error('参数不对');
- }
- $params['mall_id'] = $this->mall_id;
- $res = MembersCard::setData($params);
- if ($res === false) return $this->error(MembersCard::getStaticError());
- return $this->success('操作成功');
- }
- /**
- * 删除卡片
- * @Author bing
- * @DateTime 2021-08-20 14:49:55
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @return void
- */
- public function actionLabel()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isPost) {
- $form = Yii::$app->request->post();
- $rules = [[['id'], 'required'], [['id'], 'integer']];
- $type = $form['type'];
- switch ($form['type']) {
- case 'sort':
- $rules[] = [['sort'], 'required'];
- break;
- case 'destroy':
- $form['status'] = StatusEnum::DELETE;
- $rules[] = [['status'], 'required'];
- break;
- }
- $res = Yii::$app->services->validate->validate($form, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $form['mall_id'] = $this->mall['id'];
- $res = MembersCard::setData($form);
- if ($res === false) return $this->error(MembersCard::getStaticError());
- if($type == 'destroy'){
- MembersCardGive::updateAll(['status' => StatusEnum::DELETE],['status' => StatusEnum::ENABLED,'card_id' => $res['id']]);
- }
- return $this->success('操作成功',$form);
- }
- }
- return $this->render($this->action->id);
- }
- /**
- * 删除卡片
- * @Author bing
- * @DateTime 2021-08-20 14:49:55
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @return void
- */
- public function actionListLabel()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isPost) {
- $form = Yii::$app->request->post();
- $rules = [[['id'], 'required'], [['id'], 'integer']];
- $type = $form['type'];
- switch ($form['type']) {
- case 'sort':
- $rules[] = [['child_num'], 'required'];
- $members_card_give_num = MembersCardGive::find()->where(['mall_id'=>$this->mall_id,'status'=>StatusEnum::ENABLED,'parent_card_id'=>$form['id']])->count();
- if($members_card_give_num > $form['child_num']){
- return $this->error('已赠送子卡数量大于要设置的子卡数量');
- }
- break;
- case 'destroy':
- $form['status'] = StatusEnum::DELETE;
- $rules[] = [['status'], 'required'];
- break;
- }
- $res = Yii::$app->services->validate->validate($form, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $form['mall_id'] = $this->mall['id'];
- $res = MembersCardGive::setData($form);
- if ($res === false) return $this->error(MembersCardGive::getStaticError());
- if($type == 'destroy'){
- MembersCardGive::updateAll(['status' => StatusEnum::DELETE],['status' => StatusEnum::ENABLED,'parent_card_id' => $res['id']]);
- }
- return $this->success('操作成功',$form);
- }
- }
- return $this->render($this->action->id);
- }
- public function actionChildList()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
- if(!empty($get['id'])){
- $params['where'][] = ['in', 'parent_card_id', $get['id']];
- }
- if (!empty($get['keyword'])) {
- $card_list = MembersCard::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'name', $get['keyword']]
- ]], 'select' => 'id']);
- $card_ids = array_column($card_list, 'id');
- $params['where'][] = ['in', 'card_id', $card_ids];
- }
- if (!empty($get['keyword2'])) {
- $user_list = User::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['=', 'id', $get['keyword2']],
- ['like', 'username', $get['keyword2']],
- ['like', 'nickname', $get['keyword2']],
- ['like', 'mobile', $get['keyword2']]
- ]], 'select' => 'id']);
- $user_ids = array_column($user_list, 'id');
- $params['where'][] = ['in', 'user_id', $user_ids];
- }
- // if(!empty($get['type'])){
- // if($get['type'] == 1){
- // $params['where'][] = ['=', 'parent_card_id', 0];
- // }elseif($get['type'] == 2){
- // $params['where'][] = ['!=', 'parent_card_id', 0];
- // }
- // }
- if (!empty($get['start'])) $params['where'][] = ['>=', 'created_at', strtotime($get['start'] . ' 00:00:00')];
- if (!empty($get['end'])) $params['where'][] = ['<', 'created_at', strtotime($get['end'] . ' 00:00:00')];
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED]];
- $params['limit'] = 10;
- $params['order'] = 'created_at desc';
- try{
- $pageData = MembersCardGive::listPage($params, false);
- }catch(\Exception $e){
- return $this->fail('获取数据失败');
- }
- if ($pageData === false) return $this->error(MembersCard::getStaticError());
- if (!empty($pageData['list'])) {
- $user_id_arr = array_column($pageData['list'], 'user_id');
- $user_list = User::lists(['where' => [['id' => $user_id_arr]], 'select' => 'id,nickname,avatar_url,mobile,parent_id']);
- $user_arr = [];
- foreach ($user_list as $item) {
- $user_arr[$item['id']] = $item;
- }
- $card_ids = array_column($pageData['list'], 'card_id');
- $card_list = MembersCard::lists(['where' => [['id' => $card_ids]], 'select' => 'id,name,background_url','index'=>'id']);
- foreach ($pageData['list'] as &$v) {
- $v['nickname'] = $v['avatar_url'] = $v['parent_id'] = $v['parent_name'] = $v['mobile'] = '';
- if (isset($user_arr[$v['user_id']])) {
- $v['mobile'] = $user_arr[$v['user_id']]['mobile'];
- $v['nickname'] = $user_arr[$v['user_id']]['nickname'];
- $v['avatar_url'] = $user_arr[$v['user_id']]['avatar_url'];
- }
- $v['background_url'] = $v['name'] = '';
- if(isset($card_list[$v['card_id']])){
- $v['name'] = $card_list[$v['card_id']]['name'];
- $v['background_url'] = $card_list[$v['card_id']]['background_url'];
- }
- }
- }
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('child-list',[
- ]);
- }
- /**
- * 删除卡片
- * @Author bing
- * @DateTime 2021-08-20 14:49:55
- * @copyright: Copyright (c) 2020 广东七件事集团
- * @return void
- */
- public function actionChildLabel()
- {
- if (Yii::$app->request->isAjax) {
- if (Yii::$app->request->isPost) {
- $form = Yii::$app->request->post();
- $rules = [[['id'], 'required'], [['id'], 'integer']];
- switch ($form['type']) {
- case 'sort':
- $rules[] = [['sort'], 'required'];
- break;
- case 'destroy':
- $form['is_recycle'] = 1;
- $form['recycle_at'] = time();
- $form['status'] = StatusEnum::DISABLED;
- $rules[] = [['is_recycle','recycle_at','status'], 'required'];
- break;
- }
- $res = Yii::$app->services->validate->validate($form, $rules);
- if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $form['mall_id'] = $this->mall['id'];
- $res = MembersCardGive::setData($form);
- if ($res === false) return $this->error(MembersCardGive::getStaticError());
- return $this->success('操作成功',$form);
- }
- }
- return $this->render($this->action->id);
- }
- public function actionUsedList()
- {
- if (\Yii::$app->request->isAjax) {
- if (\Yii::$app->request->isGet) {
- $get = \Yii::$app->request->get();
- $get['mall_id'] = $this->mall_id;
- $params = [];
-
- if(!empty($get['id'])){
- $params['where'][] = ['=', 'card_give_id', $get['id']];
- }
- if (!empty($get['keyword'])) {
- $store_list = Store::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'store_name', $get['keyword']]
- ]], 'select' => 'id']);
- $store_ids = array_column($store_list, 'id');
- $params['where'][] = ['in', 'store_id', $store_ids];
- }
- if (!empty($get['keyword1'])) {
- $order_detail_list = OrderDetail::lists(['where' => [['mall_id' => $this->mall_id], [
- 'or',
- ['like', 'goods_name', $get['keyword1']],
- ]], 'select' => 'id']);
- $order_detail_ids = array_column($order_detail_list, 'id');
- $params['where'][] = ['in', 'order_detail_id', $order_detail_ids];
- }
- $params['where'][] = ['=', 'mall_id', $this->mall_id];
- $params['where'][] = ['in', 'status', [StatusEnum::ENABLED]];
- $params['limit'] = 10;
- $params['order'] = 'created_at desc';
- try{
- $pageData = MembersCardUsedLog::listPage($params, false);
- }catch(\Exception $e){
- return $this->fail('获取数据失败');
- }
- if ($pageData === false) return $this->error(MembersCard::getStaticError());
- if (!empty($pageData['list'])) {
- foreach ($pageData['list'] as &$v) {
- if($v['store_id']){
- $store = Store::findOne(['id'=>$v['store_id']]);
- $v['store_name'] = $store['store_name'];
- }
- if(!$v['is_cashier']){
- $order = Order::findOne(['id'=>$v['order_id']]);
- $order_detail = OrderDetail::findOne(['id'=>$v['order_detail_id']]);
- $v['order_money'] = $order_detail['price'];
- $v['goods_name'] = $order_detail['goods_name'];
- }else{
- $order = StoreCashierOrder::findOne(['id'=>$v['order_id']]);
- $v['order_money'] = $order['money'];
- $v['goods_name'] = '扫码付款';
- }
- $v['order_no'] = $order['order_no'];
- }
- }
- return $this->success('操作成功', $pageData);
- }
- }
- return $this->render('used-list',[
- ]);
- }
- //不用验证权限
- public function actionSearchUser()
- {
- if (\Yii::$app->request->isAjax) {
- $keyword = \Yii::$app->request->get('keyword', '');
- $list['list'] = User::searchUser(['keyword' => $keyword, 'mall_id' => $this->mall_id]);
- return $this->success('操作成功', $list);
- }
- return $this->error();
- }
- public function actionSearchCard()
- {
- if (\Yii::$app->request->isAjax) {
- $keyword = \Yii::$app->request->get('keyword', '');
- $list['list'] = MembersCard::search(['keyword' => $keyword, 'mall_id' => $this->mall_id]);
- return $this->success('操作成功', $list);
- }
- return $this->error();
- }
- public function actionCardEdit()
- {
- if (\Yii::$app->request->isAjax) {
- $params = \Yii::$app->request->post();
- if(!$params['user_id'] || !$params['card_give_id'] || !$params['expired_days']){
- return $this->error('参数错误');
- }
- $card = MembersCard::findOne(['id'=>$params['card_give_id']]);
- if(!$card){
- return $this->error('亲友卡不存在');
- }
- $give = MembersCardGive::findOne(['status'=>StatusEnum::ENABLED,'user_id'=>$params['user_id'],'card_id'=>$params['card_give_id']]);
- if($give){
- return $this->error('该用户已拥有该亲友卡');
- }
- $card_no = MembersCardGive::find()
- ->where(['mall_id'=>$this->mall_id])
- ->andWhere(['>','card_no',0])
- ->andWhere(['=','parent_card_id',0])
- ->orderBy('created_at desc')
- ->one();
- if($card_no){
- $no = $card_no['card_no'] + 1;
- }else{
- $no = 40001;
- }
- $where = [];
- $where['mall_id'] = $this->mall_id;
- $where['user_id'] = $params['user_id'];
- $where['discount'] = $card['discount'];
- $where['child_discount'] = $card['child_discount'];
- $where['child_num'] = $card['child_num'];
- $where['child_expired_days'] = $card['child_expired_days'];
- $where['card_id'] = $card['id'];
- $where['card_no'] = $no;
- $where['expired_at'] = strtotime("+".$params['expired_days']." day");
- $res = MembersCardGive::setData($where);
- if(!$res){
- return $this->error('亲友卡新增失败');
- }
- return $this->success('请求成功');
- }
- return $this->error();
- }
- }
|