IntegralMgr.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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["active"]) {
  52. return json(["msg" => "请设置启用状态"]);
  53. }
  54. if (IntegralProjectApi::chkExist($params["name"], $params["type"], $params["projectType"], $params["id"]))
  55. return json(["msg" => "项目名称已经被使用"]);
  56. $resultStr = $params["id"] ? "编辑" : "添加";
  57. if (IntegralProjectApi::edit($params))
  58. return json(["code" => 200, "msg" => "{$resultStr}积分项目成功"]);
  59. return json(["msg" => "{$resultStr}积分项目失败"]);
  60. }
  61. /**
  62. * 删除积分项目
  63. * @return type
  64. */
  65. public function delete() {
  66. if ($this->request->isPost()) {
  67. $id = $this->request->param("id");
  68. if (IntegralProjectApi::delete($id))
  69. return json(["code" => 200, "msg" => "删除积分项目成功"]);
  70. return json(["msg" => "删除积分项目失败"]);
  71. }
  72. }
  73. public function items() {
  74. return view(["items"]);
  75. }
  76. public function itemList() {
  77. return json(IntegralItemApi::getList($this->request->param()));
  78. }
  79. public function addItem() {
  80. if ($this->request->isPost()) {
  81. $params = $this->request->param();
  82. return $this->doItemSave($params);
  83. }
  84. return view("save_item");
  85. }
  86. public function editItem() {
  87. $params = $this->request->param();
  88. if ($this->request->isPost()) {
  89. return $this->doItemSave($params);
  90. }
  91. $row = IntegralItemApi::getOne($params["id"]);
  92. return view("save_item", ["row" => $row]);
  93. }
  94. private function doItemSave($params) {
  95. if (!$params["projectId"]) {
  96. return json(["msg" => "请选择积分项目"]);
  97. }
  98. if (!$params["name"]) {
  99. return json(["msg" => "请输入标准名称"]);
  100. }
  101. if (!$params["plan"]) {
  102. return json(["msg" => "请选择积分方案"]);
  103. }
  104. if (!$params["unit"]) {
  105. return json(["msg" => "请输入计量单位"]);
  106. }
  107. if (!$params["fstNeedAmount"]) {
  108. return json(["msg" => "请输入首次达成量"]);
  109. }
  110. if (!$params["fstGainPoints"]) {
  111. return json(["msg" => "请输入首次获得积分"]);
  112. }
  113. if ($params["plan"] == 2) {
  114. if (!$params["stepNeedAmount"]) {
  115. return json(["msg" => "请输入每新增量"]);
  116. }
  117. if (!$params["stepGainPoints"]) {
  118. return json(["msg" => "请输入每新增获得积分"]);
  119. }
  120. if (!$params["maxGainPoints"]) {
  121. return json(["msg" => "请输入积分上限"]);
  122. }
  123. if (!$params["yearly"]) {
  124. return json(["msg" => "请选择累计积分方案"]);
  125. }
  126. }
  127. if (IntegralItemApi::chkExist($params["name"], $params["projectId"], $params["id"]))
  128. return json(["msg" => "名称已经被使用"]);
  129. $resultStr = $params["id"] ? "编辑" : "添加";
  130. if (IntegralItemApi::edit($params))
  131. return json(["code" => 200, "msg" => "{$resultStr}积分标准成功"]);
  132. return json(["msg" => "{$resultStr}积分标准失败"]);
  133. }
  134. public function deleteItem() {
  135. if ($this->request->isPost()) {
  136. $id = $this->request->param("id");
  137. if (IntegralItemApi::delete($id))
  138. return json(["code" => 200, "msg" => "删除积分标准成功"]);
  139. return json(["msg" => "删除积分标准失败"]);
  140. }
  141. }
  142. public function getProjectsByType() {
  143. $type = $this->request->param("type") ?: 0;
  144. $where[] = ["type", "=", $type];
  145. $where[] = ["active", "=", 1];
  146. $list = IntegralProjectApi::getAll($where);
  147. return json($list);
  148. }
  149. public function getFilesByType() {
  150. $type = $this->request->param("type") ?: 0;
  151. $where[] = ["type", "=", $type];
  152. $where[] = ["project", "=", 20];
  153. $where[] = ["active", "=", 1];
  154. $list = \app\common\api\FileTypeApi::getAll($where);
  155. return json($list);
  156. }
  157. public function getItemsByProject() {
  158. $projectId = $this->request->param("projectId") ?: 0;
  159. $where[] = ["projectId", "=", $projectId];
  160. $where[] = ["active", "=", 1];
  161. $list = IntegralItemApi::getAll($where);
  162. return json($list);
  163. }
  164. }