* @date 2020-01-29 10:15:03 */ declare(strict_types=1); namespace Modules\Manage\Controllers; use App\Model\InviteRuleModel; use Hyperf\Validation\Contract\ValidatorFactoryInterface; class InviteRuleController extends BaseController { public function lists(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = [ 'page' => 'required|int', 'page_size' => 'required|int', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $result = InviteRuleModel::query()->paginate($inputData['page_size'], ['*'], 'page', $inputData['page']); return json_success($result); } public function store(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = [ 'person' => 'required|int', 'day' => 'required|int', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $result = InviteRuleModel::query()->create($inputData); // 操作日志. $logSubject = '保存邀请规则'; $logSvalue = ''; $logDbData = [ 'after_items' => [], 'before_items' => [], ]; $this->log($logSubject, $logSvalue, $logDbData); return json_success($result); } public function detail(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = [ 'rule_id' => 'required|int', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $result = InviteRuleModel::query()->find($inputData['rule_id']); return json_success($result); } public function update(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = [ 'rule_id' => 'required|int', 'person' => 'required|int', 'day' => 'required|int', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $old_items = InviteRuleModel::query() ->where('id', $inputData['rule_id']) ->first(); $result = InviteRuleModel::query() ->where('id', $inputData['rule_id']) ->update( [ 'person' => $inputData['person'], 'day' => $inputData['day'] ] ); $new_items = InviteRuleModel::query() ->where('id', $inputData['rule_id']) ->first(); // 操作日志. $logSubject = '更改邀请规则'; $logSvalue = $inputData['rule_id']; $logDbData = [ 'after_items' => [ $new_items->toArray(), ], 'before_items' => [ $old_items->toArray(), ], ]; $this->log($logSubject, $logSvalue, $logDbData); return json_success($result); } public function delete(ValidatorFactoryInterface $validatorFactory) { $inputData = $this->getJsonData(); $rules = [ 'rule_id' => 'required|int', ]; $validator = $validatorFactory->make($inputData, $rules); if ($validator->fails()) { // 如果有错误(可能是多个信息),这里只取第一个错误信息返回. return json_fail($validator->errors()->first()); } $old_info = InviteRuleModel::query() ->where('id', $inputData['rule_id']) ->first(); $result = InviteRuleModel::query() ->where('id', $inputData['rule_id']) ->delete(); // 操作日志. $old_items = clone $old_info; $logSubject = '删除邀请规则'; $logSvalue = $inputData['rule_id']; $logDbData = [ 'after_items' => [ ], 'before_items' => [ $old_items->toArray(), ], ]; $this->log($logSubject, $logSvalue, $logDbData); return json_success($result); } }