MemberLevelService.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2017~2021 LARAVEL研发中心
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://www.laravel.cn
  8. // +----------------------------------------------------------------------
  9. // | Author: laravel开发员 <laravel.qq.com>
  10. // +----------------------------------------------------------------------
  11. namespace App\Services\Common;
  12. use App\Models\GoodsCategoryModel;
  13. use App\Models\MemberLevelModel;
  14. use App\Services\BaseService;
  15. /**
  16. * 用户等级管理-服务类
  17. * @author laravel开发员
  18. * @since 2020/11/11
  19. * @package App\Services\Common
  20. */
  21. class MemberLevelService extends BaseService
  22. {
  23. /**
  24. * 构造函数
  25. * @author laravel开发员
  26. * @since 2020/11/11
  27. */
  28. public function __construct()
  29. {
  30. $this->model = new MemberLevelModel();
  31. }
  32. /**
  33. * 获取数据列表
  34. * @param array $params
  35. * @param int $pageSize
  36. * @return array
  37. */
  38. public function getDataList($params, $pageSize = 15)
  39. {
  40. // 分页查询
  41. $list = $this->model->orderBy('id', 'asc')
  42. ->where('mark', 1)
  43. ->where(function ($query) use ($params) {
  44. // 分类名称
  45. if (isset($params['name']) && $params['name']) {
  46. $query->where('name', 'like', "%{$params['name']}%");
  47. }
  48. // 状态筛选
  49. if (isset($params['status']) && $params['status'] !== null && $params['status'] !== '') {
  50. $query->where('status', intval($params['status']));
  51. }
  52. })
  53. ->orderBy('id', 'asc')
  54. ->paginate($pageSize > 0 ? $pageSize : 9999999);
  55. $list = $list->toArray();
  56. return [
  57. 'msg' => '操作成功',
  58. 'code' => 0,
  59. 'data' => $list['data'],
  60. 'count' => $list['total']
  61. ];
  62. }
  63. /**
  64. * 添加或编辑
  65. * @return array
  66. * @since 2020/11/11
  67. * @author laravel开发员
  68. */
  69. public function edit()
  70. {
  71. // 参数
  72. $param = request()->all();
  73. // 验证分类名称
  74. if (empty($param['name'])) {
  75. $this->error = '等级名称不能为空';
  76. return false;
  77. }
  78. if (empty($param['upper_count'])) {
  79. $this->error = '升级所需直推人数不为空';
  80. return false;
  81. }
  82. if (empty($param['bonus'])) {
  83. $this->error = '等级分红奖励金额不为空';
  84. return false;
  85. }
  86. // 设置默认值
  87. if (!isset($param['status'])) {
  88. $param['status'] = 1; // 默认有效
  89. }
  90. if (!isset($param['remark'])) {
  91. $param['remark'] = ''; // 默认备注为空
  92. }
  93. // 保存数据
  94. $result = $this->model->edit($param);
  95. if (!$result) {
  96. $this->error = '操作失败';
  97. return false;
  98. }
  99. return true;
  100. }
  101. /**
  102. * 设置状态
  103. * @param array $params
  104. * @return bool
  105. */
  106. public function setStatus($params)
  107. {
  108. $id = isset($params['id']) ? intval($params['id']) : 0;
  109. $status = isset($params['status']) ? intval($params['status']) : 1;
  110. if (!$id) {
  111. $this->error = '等级ID不能为空';
  112. return false;
  113. }
  114. $info = $this->model->where(['id' => $id, 'mark' => 1])->first();
  115. if (!$info) {
  116. $this->error = '等级信息不存在';
  117. return false;
  118. }
  119. // 更新状态
  120. $this->model->where('id', $id)->update([
  121. 'status' => $status,
  122. 'update_time' => time()
  123. ]);
  124. $this->error = $status == 1 ? '启用成功' : '禁用成功';
  125. return true;
  126. }
  127. /**
  128. * 删除(重写父类方法)
  129. * @return array
  130. */
  131. public function delete()
  132. {
  133. // 参数
  134. $param = request()->all();
  135. // 记录ID
  136. $id = getter($param, "id");
  137. if (empty($id)) {
  138. return message("ID不能为空", false);
  139. }
  140. $info = $this->model->where(['id' => $id, 'mark' => 1])->first();
  141. if (!$info) {
  142. return message("信息不存在", false);
  143. }
  144. // 删除(软删除)
  145. $this->model->where('id', $id)->update([
  146. 'mark' => 0,
  147. 'update_time' => time()
  148. ]);
  149. return message("删除成功", true);
  150. }
  151. /**
  152. * 获取选项(用于下拉选择)
  153. * @return array
  154. */
  155. public function options()
  156. {
  157. $map = [['mark', '=', 1], ['status', '=', 1]];
  158. $list = $this->model->where($map)
  159. ->orderBy('id', 'asc')
  160. ->select(['id', 'name', 'upper_count','bonus', 'icon'])
  161. ->get()
  162. ->toArray();
  163. return message(MESSAGE_OK, true, $list);
  164. }
  165. }