IntegralMgr.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\common\AdminController;
  4. use app\common\api\IntegralProjectApi;
  5. use app\common\api\IntegralItemApi;
  6. /**
  7. * Description of IntegralMgr
  8. * 积分管理
  9. * @author sgq
  10. */
  11. class IntegralMgr extends AdminController {
  12. public function index() {
  13. return view();
  14. }
  15. public function list() {
  16. return json(IntegralProjectApi::getList($this->request->param()));
  17. }
  18. /**
  19. * 添加积分项目
  20. * @return type
  21. */
  22. public function add() {
  23. if ($this->request->isPost()) {
  24. $params = $this->request->param();
  25. return $this->doSave($params);
  26. }
  27. return view("save");
  28. }
  29. /**
  30. * 编辑积分项目
  31. * @return type
  32. */
  33. public function edit() {
  34. $params = $this->request->param();
  35. if ($this->request->isPost()) {
  36. return $this->doSave($params);
  37. }
  38. $row = IntegralProjectApi::getOne($params["id"]);
  39. return view("save", ["row" => $row]);
  40. }
  41. private function doSave($params) {
  42. if (!$params["type"]) {
  43. return json(["msg" => "请选择人才类别"]);
  44. }
  45. if (!$params["name"]) {
  46. return json(["msg" => "请输入项目名称"]);
  47. }
  48. if (!$params["projectType"]) {
  49. return json(["msg" => "请选择项目类别"]);
  50. }
  51. if (!$params["limit"]) {
  52. return json(["msg" => "请选择是否上限"]);
  53. }
  54. if ($params["limit"] == 1) {
  55. if (!$params["yearly"]) {
  56. return json(["msg" => "请选择上限方案"]);
  57. }
  58. if (!$params["max"]) {
  59. return json(["msg" => "请填写积分上限"]);
  60. }
  61. if (!is_numeric($params["max"]) || $params["max"] < 1 || $params["max"] != floor($params["max"])) {
  62. return json(["msg" => "积分上限必需是大于0的整数"]);
  63. }
  64. }
  65. if (!$params["active"]) {
  66. return json(["msg" => "请设置启用状态"]);
  67. }
  68. if (IntegralProjectApi::chkExist($params["name"], $params["type"], $params["projectType"], $params["id"]))
  69. return json(["msg" => "项目名称已经被使用"]);
  70. $resultStr = $params["id"] ? "编辑" : "添加";
  71. if (IntegralProjectApi::edit($params))
  72. return json(["code" => 200, "msg" => "{$resultStr}积分项目成功"]);
  73. return json(["msg" => "{$resultStr}积分项目失败"]);
  74. }
  75. /**
  76. * 删除积分项目
  77. * @return type
  78. */
  79. public function delete() {
  80. if ($this->request->isPost()) {
  81. $id = $this->request->param("id");
  82. if (IntegralProjectApi::delete($id))
  83. return json(["code" => 200, "msg" => "删除积分项目成功"]);
  84. return json(["msg" => "删除积分项目失败"]);
  85. }
  86. }
  87. public function items() {
  88. return view("items");
  89. }
  90. public function itemList() {
  91. return json(IntegralItemApi::getList($this->request->param()));
  92. }
  93. public function addItem() {
  94. if ($this->request->isPost()) {
  95. $params = $this->request->param();
  96. return $this->doItemSave($params);
  97. }
  98. return view("save_item");
  99. }
  100. public function editItem() {
  101. $params = $this->request->param();
  102. if ($this->request->isPost()) {
  103. return $this->doItemSave($params);
  104. }
  105. $row = IntegralItemApi::getOne($params["id"]);
  106. return view("save_item", ["row" => $row]);
  107. }
  108. private function doItemSave($params) {
  109. if (!$params["projectId"]) {
  110. return json(["msg" => "请选择积分项目"]);
  111. }
  112. if (!$params["name"]) {
  113. return json(["msg" => "请输入标准名称"]);
  114. }
  115. if (!$params["plan"]) {
  116. return json(["msg" => "请选择积分方案"]);
  117. }
  118. if (!$params["unit"]) {
  119. return json(["msg" => "请输入计量单位"]);
  120. }
  121. if (!$params["fstNeedAmount"]) {
  122. return json(["msg" => "请输入首次达成量"]);
  123. }
  124. if (!$params["fstGainPoints"]) {
  125. return json(["msg" => "请输入首次获得积分"]);
  126. }
  127. if ($params["plan"] == 2) {
  128. if (!$params["stepNeedAmount"]) {
  129. return json(["msg" => "请输入每新增量"]);
  130. }
  131. if (!$params["stepGainPoints"]) {
  132. return json(["msg" => "请输入每新增获得积分"]);
  133. }
  134. }
  135. if (IntegralItemApi::chkExist($params["name"], $params["projectId"], $params["id"]))
  136. return json(["msg" => "名称已经被使用"]);
  137. $resultStr = $params["id"] ? "编辑" : "添加";
  138. if (IntegralItemApi::edit($params))
  139. return json(["code" => 200, "msg" => "{$resultStr}积分标准成功"]);
  140. return json(["msg" => "{$resultStr}积分标准失败"]);
  141. }
  142. public function deleteItem() {
  143. if ($this->request->isPost()) {
  144. $id = $this->request->param("id");
  145. if (IntegralItemApi::delete($id))
  146. return json(["code" => 200, "msg" => "删除积分标准成功"]);
  147. return json(["msg" => "删除积分标准失败"]);
  148. }
  149. }
  150. public function getProjectsByType() {
  151. $type = $this->request->param("type") ?: 0;
  152. $where[] = ["type", "=", $type];
  153. $where[] = ["active", "=", 1];
  154. $list = IntegralProjectApi::getAll($where);
  155. return json($list);
  156. }
  157. public function getFilesByType() {
  158. $type = $this->request->param("type") ?: 0;
  159. $where[] = ["type", "=", $type];
  160. $where[] = ["project", "=", 20];
  161. $where[] = ["active", "=", 1];
  162. $list = \app\common\api\FileTypeApi::getAll($where);
  163. return json($list);
  164. }
  165. public function getItemsByProject() {
  166. $projectId = $this->request->param("projectId") ?: 0;
  167. $where[] = ["projectId", "=", $projectId];
  168. $where[] = ["active", "=", 1];
  169. $list = IntegralItemApi::getAll($where);
  170. return json($list);
  171. }
  172. }