IntegralMgr.php 6.8 KB

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