Modules_Manage_Controllers_InviteRuleController.proxy.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. /**
  3. * 邀请规则.
  4. *
  5. * @author jim <jim458734573@gmail.com>
  6. * @date 2020-01-29 10:15:03
  7. */
  8. declare (strict_types=1);
  9. namespace Modules\Manage\Controllers;
  10. use App\Model\InviteRuleModel;
  11. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  12. class InviteRuleController extends BaseController
  13. {
  14. use \Hyperf\Di\Aop\ProxyTrait;
  15. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  16. function __construct()
  17. {
  18. if (method_exists(parent::class, '__construct')) {
  19. parent::__construct(...func_get_args());
  20. }
  21. $this->__handlePropertyHandler(__CLASS__);
  22. }
  23. public function lists(ValidatorFactoryInterface $validatorFactory)
  24. {
  25. $inputData = $this->getJsonData();
  26. $rules = ['page' => 'required|int', 'page_size' => 'required|int'];
  27. $validator = $validatorFactory->make($inputData, $rules);
  28. if ($validator->fails()) {
  29. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  30. return json_fail($validator->errors()->first());
  31. }
  32. $result = InviteRuleModel::query()->paginate($inputData['page_size'], ['*'], 'page', $inputData['page']);
  33. return json_success($result);
  34. }
  35. public function store(ValidatorFactoryInterface $validatorFactory)
  36. {
  37. $inputData = $this->getJsonData();
  38. $rules = ['person' => 'required|int', 'day' => 'required|int'];
  39. $validator = $validatorFactory->make($inputData, $rules);
  40. if ($validator->fails()) {
  41. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  42. return json_fail($validator->errors()->first());
  43. }
  44. $result = InviteRuleModel::query()->create($inputData);
  45. // 操作日志.
  46. $logSubject = '保存邀请规则';
  47. $logSvalue = '';
  48. $logDbData = ['after_items' => [], 'before_items' => []];
  49. $this->log($logSubject, $logSvalue, $logDbData);
  50. return json_success($result);
  51. }
  52. public function detail(ValidatorFactoryInterface $validatorFactory)
  53. {
  54. $inputData = $this->getJsonData();
  55. $rules = ['rule_id' => 'required|int'];
  56. $validator = $validatorFactory->make($inputData, $rules);
  57. if ($validator->fails()) {
  58. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  59. return json_fail($validator->errors()->first());
  60. }
  61. $result = InviteRuleModel::query()->find($inputData['rule_id']);
  62. return json_success($result);
  63. }
  64. public function update(ValidatorFactoryInterface $validatorFactory)
  65. {
  66. $inputData = $this->getJsonData();
  67. $rules = ['rule_id' => 'required|int', 'person' => 'required|int', 'day' => 'required|int'];
  68. $validator = $validatorFactory->make($inputData, $rules);
  69. if ($validator->fails()) {
  70. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  71. return json_fail($validator->errors()->first());
  72. }
  73. $old_items = InviteRuleModel::query()->where('id', $inputData['rule_id'])->first();
  74. $result = InviteRuleModel::query()->where('id', $inputData['rule_id'])->update(['person' => $inputData['person'], 'day' => $inputData['day']]);
  75. $new_items = InviteRuleModel::query()->where('id', $inputData['rule_id'])->first();
  76. // 操作日志.
  77. $logSubject = '更改邀请规则';
  78. $logSvalue = $inputData['rule_id'];
  79. $logDbData = ['after_items' => [$new_items->toArray()], 'before_items' => [$old_items->toArray()]];
  80. $this->log($logSubject, $logSvalue, $logDbData);
  81. return json_success($result);
  82. }
  83. public function delete(ValidatorFactoryInterface $validatorFactory)
  84. {
  85. $inputData = $this->getJsonData();
  86. $rules = ['rule_id' => 'required|int'];
  87. $validator = $validatorFactory->make($inputData, $rules);
  88. if ($validator->fails()) {
  89. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  90. return json_fail($validator->errors()->first());
  91. }
  92. $old_info = InviteRuleModel::query()->where('id', $inputData['rule_id'])->first();
  93. $result = InviteRuleModel::query()->where('id', $inputData['rule_id'])->delete();
  94. // 操作日志.
  95. $old_items = clone $old_info;
  96. $logSubject = '删除邀请规则';
  97. $logSvalue = $inputData['rule_id'];
  98. $logDbData = ['after_items' => [], 'before_items' => [$old_items->toArray()]];
  99. $this->log($logSubject, $logSvalue, $logDbData);
  100. return json_success($result);
  101. }
  102. }