| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use app\api\logic\CodenoLogic;
- use app\common\model\CodeUserModel;
- use app\common\model\LedgerTokenChangeModel;
- use app\common\model\LedgerWalletModel;
- use think\Log;
- use fast\Asset;
- use Exception;
- use app\common\model\UserModel;
- use think\Db;
- use app\common\model\CodeNoModel;
- use app\common\model\CodeUserLogModel;
- use think\Env;
- //激活码Api
- class Codeno extends Api
- {
-
- protected array $noNeedLogin = [''];
- //激活码记录
- public function list(CodeNoModel $codeUserModel)
- {
- $level = $this->request->post('level/d', 0);
- $list['used'] = $codeUserModel->where('user_id', $this->auth->id)->where('level', $level)->where('status', CodeNoModel::STATUS_USED)->field('id,code_no')->select();
- $list['normal'] = $codeUserModel->where('user_id', $this->auth->id)->where('level', $level)->where('status', CodeNoModel::STATUS_NORMAL)->field('id,code_no')->select();
- $this->success('ok', $list);
- }
- /*
- * 激活
- */
- public function activate(CodeNoModel $codeNoModel, CodeUserLogModel $codeUserLogModel)
- {
- $params = $this->request->post();
- $validate = \think\Loader::validate('CodeNo');
- if(!$validate->scene('add')->check($params)) $this->error($validate->getError());
- //激活码是否存在
- $row = $codeNoModel->where('code_no', $params['code_no'])->where('status', CodeNoModel::STATUS_NORMAL)->find();
- if(!$row) $this->error('激活码不存在或已被使用');
- //判断用户是否是自己激活自己
- if($row->user_id == $this->auth->id) $this->error('不能使用激活自己');
- //不能重复激活相同等级
- if($codeUserLogModel::where('user_id', $this->auth->id)->where('level', $row->level)->count()) $this->error('不能重复激活相同等级');
- Db::startTrans();
- try {
- //发放激活礼包
- CodenoLogic::setActivate($this->auth->id, $this->auth->parent_id, $row->level, $params['code_no']);
-
- $row->status = CodeNoModel::STATUS_USED;
- $row->save();
- // 提交事务
- Db::commit();
- } catch (Exception $e) {
- // 回滚事务
- Db::rollback();
- $this->error($e->getMessage());
- }
- $this->success('ok');
- }
- //生成激活码
- public function generate(CodeUserModel $codeUserModel, CodeNoModel $codeNoModel)
- {
- $params = $this->request->post();
- $validate = \think\Loader::validate('CodeNo');
- if(!$validate->scene('gen')->check($params)) $this->error($validate->getError());
-
- //判断等级是否存在
- $key = CodeUserModel::$LevelKey[$params['level']];
- if(!isset($key)) $this->error('等级不存在');
- //判断等级剩余激活数量
- $row = $codeUserModel::where('user_id', $this->auth->id)->find();
- if(empty($row->{'level_'.$key})) $this->error('等级'.$key.'剩余激活数量不足');
- Db::startTrans();
- try {
- //添加激活码
- $codeNoModel::setActivate($this->auth->id, $params['level']);
-
- //扣除激活剩余数量
- $row->{'level_'.$key}--;
- $row->save();
- // 提交事务
- Db::commit();
- } catch (Exception $e) {
- // 回滚事务
- Db::rollback();
- $this->error($e->getMessage());
- }
- $this->success('ok');
- }
- //剩余激活数量
- public function remaining(CodeUserModel $codeUserModel)
- {
- $row = $codeUserModel::where('user_id', $this->auth->id)->find();
- $this->success('ok', $row);
- }
-
- //统计直推等级人数
- public function count(CodeUserLogModel $codeUserLogModel)
- {
- $count = $codeUserLogModel::where('parent_id', '=',$this->auth->id)
- ->field('level,count(*) as num')
- ->group('level')
- ->having('level >0')
- ->select();
- $this->success('ok', $count);
- }
-
- }
|