|
|
@@ -0,0 +1,115 @@
|
|
|
+<?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 = $codeUserModel->where('user_id', $this->auth->id)->where('level', $level)->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, $row->level, $params['code_no']);
|
|
|
+
|
|
|
+ //扣除激活剩余数量
|
|
|
+ CodeUserModel::reduceCodeUser($row->user_id, $row->level);
|
|
|
+
|
|
|
+ $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);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|