diff --git a/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts b/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts new file mode 100644 index 0000000..e3fda88 --- /dev/null +++ b/saiadmin-artd/src/views/plugin/dice/api/play_record/index.ts @@ -0,0 +1,65 @@ +import request from '@/utils/http' + +/** + * 玩家抽奖记录 API接口 + */ +export default { + /** + * 获取数据列表 + * @param params 搜索参数 + * @returns 数据列表 + */ + list(params: Record) { + return request.get({ + url: '/dice/play_record/DicePlayRecord/index', + params + }) + }, + + /** + * 读取数据 + * @param id 数据ID + * @returns 数据详情 + */ + read(id: number | string) { + return request.get({ + url: '/dice/play_record/DicePlayRecord/read?id=' + id + }) + }, + + /** + * 创建数据 + * @param params 数据参数 + * @returns 执行结果 + */ + save(params: Record) { + return request.post({ + url: '/dice/play_record/DicePlayRecord/save', + data: params + }) + }, + + /** + * 更新数据 + * @param params 数据参数 + * @returns 执行结果 + */ + update(params: Record) { + return request.put({ + url: '/dice/play_record/DicePlayRecord/update', + data: params + }) + }, + + /** + * 删除数据 + * @param id 数据ID + * @returns 执行结果 + */ + delete(params: Record) { + return request.del({ + url: '/dice/play_record/DicePlayRecord/destroy', + data: params + }) + } +} diff --git a/saiadmin-artd/src/views/plugin/dice/play_record/index/index.vue b/saiadmin-artd/src/views/plugin/dice/play_record/index/index.vue new file mode 100644 index 0000000..09932aa --- /dev/null +++ b/saiadmin-artd/src/views/plugin/dice/play_record/index/index.vue @@ -0,0 +1,137 @@ + + + diff --git a/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/edit-dialog.vue b/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/edit-dialog.vue new file mode 100644 index 0000000..7548f15 --- /dev/null +++ b/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/edit-dialog.vue @@ -0,0 +1,177 @@ + + + diff --git a/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/table-search.vue b/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/table-search.vue new file mode 100644 index 0000000..4fe0021 --- /dev/null +++ b/saiadmin-artd/src/views/plugin/dice/play_record/index/modules/table-search.vue @@ -0,0 +1,72 @@ + + + diff --git a/server/app/dice/controller/play_record/DicePlayRecordController.php b/server/app/dice/controller/play_record/DicePlayRecordController.php new file mode 100644 index 0000000..1e7cc54 --- /dev/null +++ b/server/app/dice/controller/play_record/DicePlayRecordController.php @@ -0,0 +1,127 @@ +logic = new DicePlayRecordLogic(); + $this->validate = new DicePlayRecordValidate; + parent::__construct(); + } + + /** + * 数据列表 + * @param Request $request + * @return Response + */ + #[Permission('玩家抽奖记录列表', 'dice:play_record:index:index')] + public function index(Request $request): Response + { + $where = $request->more([ + ['lottery_type', ''], + ['lottery_name', ''], + ]); + $query = $this->logic->search($where); + $query->with([ + 'dicePlayer', + 'diceRewardConfig', + 'diceLotteryConfig', + ]); + $data = $this->logic->getList($query); + return $this->success($data); + } + + /** + * 读取数据 + * @param Request $request + * @return Response + */ + #[Permission('玩家抽奖记录读取', 'dice:play_record:index:read')] + public function read(Request $request): Response + { + $id = $request->input('id', ''); + $model = $this->logic->read($id); + if ($model) { + $data = is_array($model) ? $model : $model->toArray(); + return $this->success($data); + } else { + return $this->fail('未查找到信息'); + } + } + + /** + * 保存数据 + * @param Request $request + * @return Response + */ + #[Permission('玩家抽奖记录添加', 'dice:play_record:index:save')] + public function save(Request $request): Response + { + $data = $request->post(); + $this->validate('save', $data); + $result = $this->logic->add($data); + if ($result) { + return $this->success('添加成功'); + } else { + return $this->fail('添加失败'); + } + } + + /** + * 更新数据 + * @param Request $request + * @return Response + */ + #[Permission('玩家抽奖记录修改', 'dice:play_record:index:update')] + public function update(Request $request): Response + { + $data = $request->post(); + $this->validate('update', $data); + $result = $this->logic->edit($data['id'], $data); + if ($result) { + return $this->success('修改成功'); + } else { + return $this->fail('修改失败'); + } + } + + /** + * 删除数据 + * @param Request $request + * @return Response + */ + #[Permission('玩家抽奖记录删除', 'dice:play_record:index:destroy')] + public function destroy(Request $request): Response + { + $ids = $request->post('ids', ''); + if (empty($ids)) { + return $this->fail('请选择要删除的数据'); + } + $result = $this->logic->destroy($ids); + if ($result) { + return $this->success('删除成功'); + } else { + return $this->fail('删除失败'); + } + } + +} diff --git a/server/app/dice/logic/play_record/DicePlayRecordLogic.php b/server/app/dice/logic/play_record/DicePlayRecordLogic.php new file mode 100644 index 0000000..af9e23d --- /dev/null +++ b/server/app/dice/logic/play_record/DicePlayRecordLogic.php @@ -0,0 +1,27 @@ +model = new DicePlayRecord(); + } + +} diff --git a/server/app/dice/model/play_record/DicePlayRecord.php b/server/app/dice/model/play_record/DicePlayRecord.php new file mode 100644 index 0000000..86d12a2 --- /dev/null +++ b/server/app/dice/model/play_record/DicePlayRecord.php @@ -0,0 +1,78 @@ +where('lottery_name', 'like', '%'.$value.'%'); + } + + /** + * 关联模型 dicePlayer + */ + public function dicePlayer(): BelongsTo + { + return $this->belongsTo(DicePlayer::class, 'player_id', 'id'); + } + + /** + * 关联模型 diceRewardConfig + */ + public function diceRewardConfig(): BelongsTo + { + return $this->belongsTo(DiceRewardConfig::class, 'reward_config_id', 'id'); + } + + /** + * 关联模型 diceLotteryConfig + */ + public function diceLotteryConfig(): BelongsTo + { + return $this->belongsTo(DiceLotteryConfig::class, 'lottery_config_id', 'id'); + } + +} diff --git a/server/app/dice/validate/play_record/DicePlayRecordValidate.php b/server/app/dice/validate/play_record/DicePlayRecordValidate.php new file mode 100644 index 0000000..f7b1695 --- /dev/null +++ b/server/app/dice/validate/play_record/DicePlayRecordValidate.php @@ -0,0 +1,70 @@ + 'require', + 'lottery_config_id' => 'require', + 'lottery_type' => 'require', + 'is_win' => 'require', + 'win_coin' => 'require', + 'reward_config_id' => 'require', + 'lottery_id' => 'require', + 'lottery_name' => 'require', + ]; + + /** + * 定义错误信息 + */ + protected $message = [ + 'player_id' => '玩家id必须填写', + 'lottery_config_id' => '彩金池配置必须填写', + 'lottery_type' => '抽奖类型必须填写', + 'is_win' => '中奖必须填写', + 'win_coin' => '赢取平台币必须填写', + 'reward_config_id' => '奖励配置id必须填写', + 'lottery_id' => '奖池必须填写', + 'lottery_name' => '奖池名必须填写', + ]; + + /** + * 定义场景 + */ + protected $scene = [ + 'save' => [ + 'player_id', + 'lottery_config_id', + 'lottery_type', + 'is_win', + 'win_coin', + 'reward_config_id', + 'lottery_id', + 'lottery_name', + ], + 'update' => [ + 'player_id', + 'lottery_config_id', + 'lottery_type', + 'is_win', + 'win_coin', + 'reward_config_id', + 'lottery_id', + 'lottery_name', + ], + ]; + +}