InviteRuleController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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. public function lists(ValidatorFactoryInterface $validatorFactory)
  15. {
  16. $inputData = $this->getJsonData();
  17. $rules = [
  18. 'page' => 'required|int',
  19. 'page_size' => 'required|int',
  20. ];
  21. $validator = $validatorFactory->make($inputData, $rules);
  22. if ($validator->fails()) {
  23. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  24. return json_fail($validator->errors()->first());
  25. }
  26. $result = InviteRuleModel::query()->paginate($inputData['page_size'], ['*'], 'page', $inputData['page']);
  27. return json_success($result);
  28. }
  29. public function store(ValidatorFactoryInterface $validatorFactory)
  30. {
  31. $inputData = $this->getJsonData();
  32. $rules = [
  33. 'person' => 'required|int',
  34. 'day' => 'required|int',
  35. ];
  36. $validator = $validatorFactory->make($inputData, $rules);
  37. if ($validator->fails()) {
  38. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  39. return json_fail($validator->errors()->first());
  40. }
  41. $result = InviteRuleModel::query()->create($inputData);
  42. // 操作日志.
  43. $logSubject = '保存邀请规则';
  44. $logSvalue = '';
  45. $logDbData = [
  46. 'after_items' => [],
  47. 'before_items' => [],
  48. ];
  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 = [
  56. 'rule_id' => 'required|int',
  57. ];
  58. $validator = $validatorFactory->make($inputData, $rules);
  59. if ($validator->fails()) {
  60. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  61. return json_fail($validator->errors()->first());
  62. }
  63. $result = InviteRuleModel::query()->find($inputData['rule_id']);
  64. return json_success($result);
  65. }
  66. public function update(ValidatorFactoryInterface $validatorFactory)
  67. {
  68. $inputData = $this->getJsonData();
  69. $rules = [
  70. 'rule_id' => 'required|int',
  71. 'person' => 'required|int',
  72. 'day' => 'required|int',
  73. ];
  74. $validator = $validatorFactory->make($inputData, $rules);
  75. if ($validator->fails()) {
  76. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  77. return json_fail($validator->errors()->first());
  78. }
  79. $old_items = InviteRuleModel::query()
  80. ->where('id', $inputData['rule_id'])
  81. ->first();
  82. $result = InviteRuleModel::query()
  83. ->where('id', $inputData['rule_id'])
  84. ->update(
  85. [
  86. 'person' => $inputData['person'],
  87. 'day' => $inputData['day']
  88. ]
  89. );
  90. $new_items = InviteRuleModel::query()
  91. ->where('id', $inputData['rule_id'])
  92. ->first();
  93. // 操作日志.
  94. $logSubject = '更改邀请规则';
  95. $logSvalue = $inputData['rule_id'];
  96. $logDbData = [
  97. 'after_items' => [
  98. $new_items->toArray(),
  99. ],
  100. 'before_items' => [
  101. $old_items->toArray(),
  102. ],
  103. ];
  104. $this->log($logSubject, $logSvalue, $logDbData);
  105. return json_success($result);
  106. }
  107. public function delete(ValidatorFactoryInterface $validatorFactory)
  108. {
  109. $inputData = $this->getJsonData();
  110. $rules = [
  111. 'rule_id' => 'required|int',
  112. ];
  113. $validator = $validatorFactory->make($inputData, $rules);
  114. if ($validator->fails()) {
  115. // 如果有错误(可能是多个信息),这里只取第一个错误信息返回.
  116. return json_fail($validator->errors()->first());
  117. }
  118. $old_info = InviteRuleModel::query()
  119. ->where('id', $inputData['rule_id'])
  120. ->first();
  121. $result = InviteRuleModel::query()
  122. ->where('id', $inputData['rule_id'])
  123. ->delete();
  124. // 操作日志.
  125. $old_items = clone $old_info;
  126. $logSubject = '删除邀请规则';
  127. $logSvalue = $inputData['rule_id'];
  128. $logDbData = [
  129. 'after_items' => [
  130. ],
  131. 'before_items' => [
  132. $old_items->toArray(),
  133. ],
  134. ];
  135. $this->log($logSubject, $logSvalue, $logDbData);
  136. return json_success($result);
  137. }
  138. }