IntegralItemApi.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\common\api;
  3. use app\common\model\IntegralItem;
  4. class IntegralItemApi {
  5. public static function getOne($id) {
  6. return IntegralItem::alias("i")->leftJoin("new_integral_project p", "p.id=i.projectId")->field("i.*,p.type,if(stepNeedAmount > 0,if(stepIsYear=1,3,2),1) as plan")->findOrEmpty($id);
  7. }
  8. public static function getList($params) {
  9. $order = $params["order"] ?: "desc";
  10. $offset = $params["offset"] ?: 0;
  11. $limit = $params["limit"] ?: 10;
  12. $where[] = ["i.delete", "=", 0];
  13. if ($params["type"]) {
  14. $where[] = ["p.type", "=", $params["type"]];
  15. }
  16. if ($params["name"]) {
  17. $where[] = ["i.name", "like", "%{$params["name"]}%"];
  18. }
  19. if ($params["projectType"]) {
  20. $where[] = ["p.projectType", "=", $params["projectType"]];
  21. }
  22. if ($params["active"]) {
  23. $where[] = ["i.active", "=", $params["active"]];
  24. }
  25. $count = IntegralItem::alias("i")->leftJoin("new_integral_project p", "p.id=i.projectId")->where($where)->count();
  26. $list = IntegralItem::alias("i")->leftJoin("new_integral_project p", "p.id=i.projectId")->where($where)
  27. ->field("i.*,p.type,p.name as projectName,p.projectType,if(i.updateTime is null,i.createTime,i.updateTime) as orderTime")
  28. ->limit($offset, $limit)->order("orderTime desc")->select()->toArray();
  29. return ["total" => $count, "rows" => $list];
  30. }
  31. public static function getAll($where = []) {
  32. $where[] = ["delete", "=", 0];
  33. $list = IntegralItem::where($where)->field("*,if(updateTime is null,createTime,updateTime) as orderTime")->order("orderTime desc")->select()->toArray();
  34. return $list;
  35. }
  36. public static function edit($params) {
  37. $model = new IntegralItem();
  38. $data["projectId"] = $params["projectId"];
  39. $data["name"] = $params["name"];
  40. $data["unit"] = $params["unit"];
  41. $data["fstNeedAmount"] = $params["fstNeedAmount"];
  42. $data["fstGainPoints"] = $params["fstGainPoints"];
  43. $data["fileTypeId"] = $params["fileTypeId"] ? implode(",", $params["fileTypeId"]) : null;
  44. $data["active"] = $params["active"];
  45. $data["stepIsYear"] = 0; //通用,可以当作较上次新增
  46. if (in_array($params["plan"], [2, 3])) {
  47. $data["stepNeedAmount"] = $params["stepNeedAmount"];
  48. $data["stepGainPoints"] = $params["stepGainPoints"];
  49. if ($params["plan"] == 3) {
  50. $data["stepIsYear"] = 1; //较上年度新增
  51. }
  52. } else {
  53. $data["stepNeedAmount"] = 0;
  54. $data["stepGainPoints"] = 0;
  55. }
  56. $data["limit"] = $params["limit"];
  57. if ($data["limit"] == 1) {
  58. $data["yearly"] = $params["yearly"];
  59. $data["max"] = $params["max"];
  60. } else {
  61. $data["yearly"] = 0;
  62. $data["max"] = 0;
  63. }
  64. if ($params["id"]) {
  65. $item = $model->find($params["id"]);
  66. $data["updateTime"] = date("Y-m-d H:i:s");
  67. $data["updateUser"] = session("user")["uid"];
  68. return $item->save($data);
  69. } else {
  70. $data["createTime"] = date("Y-m-d H:i:s");
  71. $data["createUser"] = session("user")["uid"];
  72. return $model->save($data);
  73. }
  74. }
  75. public static function delete($id) {
  76. $data["id"] = $id;
  77. $data["delete"] = 1;
  78. $data["updateUser"] = session("user")["uid"];
  79. $data["updateTime"] = date("Y-m-d H:i:s");
  80. return IntegralItem::update($data);
  81. }
  82. public static function chkExist($name, $projectId, $id = 0) {
  83. $where = [];
  84. $where[] = ["projectId", "=", $projectId];
  85. $where[] = ["name", "=", $name];
  86. $where[] = ["delete", "=", 0];
  87. if ($id) {
  88. $where[] = ["id", "<>", $id];
  89. }
  90. return IntegralItem::where($where)->find();
  91. }
  92. }