DictApi.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <?php
  2. namespace app\common\api;
  3. use app\common\model\Dict;
  4. use think\Facade\Db;
  5. /**
  6. * Description of DictApi
  7. *
  8. * @author sgq
  9. */
  10. class DictApi {
  11. public static function create($params) {
  12. $data["code"] = $params["dictCode"];
  13. $data["name"] = $params["dictName"];
  14. $data["tips"] = $params["dictTips"];
  15. $data["pid"] = 0;
  16. $values = $params["dictValues"];
  17. if (self::isExistByCode($data["code"]))
  18. return ["msg" => sprintf("编码[%s]已经存在", $data["code"])];
  19. $items = array_filter(explode(";", $values));
  20. $id = Dict::insertGetId($data);
  21. $childs = [];
  22. for ($i = 0; $i < count($items); $i++) {
  23. $fields = array_filter(explode(":", $items[$i]));
  24. $childs[] = ["pid" => $id, "code" => $fields[0], "name" => $fields[1], "num" => $fields[2]];
  25. }
  26. Dict::insertAll($childs);
  27. return ["code" => 200, "msg" => "成功"];
  28. }
  29. public static function update($params) {
  30. $data["id"] = $params["dictId"];
  31. $data["code"] = $params["dictCode"];
  32. $data["name"] = $params["dictName"];
  33. $data["tips"] = $params["dictTips"];
  34. $data["pid"] = 0;
  35. $values = $params["dictValues"];
  36. if (self::isExistByCode($data["code"], $params["dictId"]))
  37. return ["msg" => sprintf("编码[%s]已经存在", $data["code"])];
  38. $items = array_filter(explode(";", $values));
  39. $id = Dict::table('sys_dict')->save($data);
  40. //删除原来的子项
  41. Dict::where(["pid" => $params["dictId"]])->delete();
  42. $childs = [];
  43. for ($i = 0; $i < count($items); $i++) {
  44. $fields = array_filter(explode(":", $items[$i]));
  45. $childs[] = ["pid" => $params["dictId"], "code" => $fields[0], "name" => $fields[1], "num" => $fields[2]];
  46. }
  47. Dict::insertAll($childs);
  48. return ["code" => 200, "msg" => "成功"];
  49. }
  50. public static function delete($id) {
  51. Dict::where(["id" => $id])->delete();
  52. Dict::where(["pid" => $id])->delete();
  53. return ["code" => 200, "msg" => "成功"];
  54. }
  55. public static function isExistByCode($code, $id = 0) {
  56. $where = [];
  57. if ($id > 0) {
  58. $where[] = ["id", "<>", $id];
  59. }
  60. $where[] = ["code", "=", $code];
  61. $dict = Dict::where($where)->findOrEmpty()->toArray();
  62. return $dict;
  63. }
  64. /**
  65. * 获取一条
  66. * @param type $id
  67. * @return type
  68. */
  69. public static function getOne($id) {
  70. $info = Dict::where("id", $id)->findOrEmpty()->toArray();
  71. if ($info) {
  72. $items = Dict::where("pid", "=", $id)->select()->toArray();
  73. $info["children"] = $items;
  74. }
  75. return $info;
  76. }
  77. /**
  78. * 获取列表
  79. * @param type $request
  80. * @return type
  81. */
  82. public static function getList($request) {
  83. $order = trim($request->param("order")) ?: "desc";
  84. $offset = trim($request->param("offset")) ?: 0;
  85. $limit = trim($request->param("limit")) ?: 10;
  86. $name = trim($request->param("condition"));
  87. $where = [];
  88. $where[] = ["pid", "=", "0"];
  89. if ($name) {
  90. $where[] = ["name", "like", "%" . $name . "%"];
  91. }
  92. $count = Dict::where($where)->count();
  93. $list = Dict::where($where)->limit($offset, $limit)->order("id " . $order)->select()->toArray();
  94. foreach ($list as &$item) {
  95. $items = Dict::where("pid", "=", $item["id"])->column("name");
  96. $item["detail"] = implode(",", $items);
  97. }
  98. return ["total" => $count, "rows" => $list];
  99. }
  100. /**
  101. *
  102. * @param type $code
  103. * @return type
  104. */
  105. public static function selectByParentCode($code) {
  106. $parent = Dict::where("code", $code)->findOrEmpty()->toArray();
  107. $dictList = Dict::where("pid", $parent["id"])->select()->toArray();
  108. $tmp = [];
  109. foreach ($dictList as $dict) {
  110. $tmp[$dict["code"]] = $dict["name"];
  111. }
  112. return $tmp;
  113. }
  114. /**
  115. *
  116. * @param type $code
  117. * @return type
  118. */
  119. public static function findChildDictByCode($code) {
  120. $parent = Dict::where("code", $code)->findOrEmpty()->toArray();
  121. $dictList = Dict::where("pid", $parent["id"])->select()->toArray();
  122. return $dictList;
  123. }
  124. public static function findDictByCode($code) {
  125. $dict = Dict::where("code", $code)->findOrEmpty();
  126. return $dict;
  127. }
  128. public static function getTalentFields($step) {
  129. $dict1 = [
  130. "talent_type" => "人才类型",
  131. "tax_insurance_month" => "在我市缴交社会保险或个人所得税月份",
  132. "labor_contract_rangetime" => "劳动合同起止时间",
  133. "name" => "姓名",
  134. "card_type" => "证件类型",
  135. "card_number" => "证件号码",
  136. "sex" => "性别",
  137. "birthday" => "出生日期",
  138. "nationality" => "国籍/地区",
  139. "province" => "籍贯省",
  140. "city" => "籍贯市",
  141. "county" => "籍贯县",
  142. "nation" => "民族",
  143. "politics" => "政治面貌"
  144. ];
  145. $dict2 = [
  146. "talent_arrange" => "人才层次",
  147. "talent_condition" => "认定条件",
  148. "highest_degree" => "最高学历",
  149. "graduate_school" => "毕业院校",
  150. "major" => "专业",
  151. "professional" => "专业技术职称",
  152. "bank" => "开户银行",
  153. "bank_number" => "银行行号",
  154. "bank_branch_name" => "开户银行网点",
  155. "bank_account" => "银行账号",
  156. "study_abroad" => "是否有留学经历",
  157. "abroad_school" => "留学毕业院校",
  158. "abroad_major" => "留学专业",
  159. "phone" => "手机号码",
  160. "email" => "电子邮箱",
  161. "apply_year" => "申报年度",
  162. "import_way" => "引进方式",
  163. "fst_work_time" => "首次来晋工作时间",
  164. "cur_entry_time" => "本单位入职时间",
  165. "position" => "本单位现任职务",
  166. "source" => "申报来源",
  167. "source_city" => "入选来源地级市",
  168. "source_county" => "入选来源县市区",
  169. "source_batch" => "入选名单批次",
  170. "fujian_highcert_pubtime" => "福建省高层次人才证书发证日期",
  171. "fujian_highcert_exptime" => "福建省高层次人才证书有效期",
  172. "quanzhou_highcert_pubtime" => "泉州高层次人才证书发证日期",
  173. "quanzhou_highcert_exptime" => "泉州高层次人才证书有效期"
  174. ];
  175. if ($step == 1) {
  176. return $dict1;
  177. }
  178. if ($step == 2) {
  179. return $dict2;
  180. }
  181. return array_merge($dict1, $dict2);
  182. }
  183. // 1保存未提交 2已提交未审核 3已审核 4驳回 5保存补充材料未提交 6提交补充材料进入初审 7初审通过 8初审驳回 9部门审核通过 10部门审核驳回 11复核通过 12复核驳回 13复核失败
  184. public static function getTalentInfoStepByState($state) {
  185. $stepName = "";
  186. switch ($state) {
  187. case 3:
  188. case 4:
  189. $stepName = '<span class="label">"基本条件判定"</span>';
  190. break;
  191. case 7:
  192. case 8:
  193. $stepName = '<span class="label label-primary">初级审核</span>';
  194. break;
  195. case 9:
  196. case 10:
  197. $stepName = '<span class="label label-primary">部门审核</span>';
  198. break;
  199. case 11:
  200. case 12:
  201. $stepName = '<span class="label label-danger">复核</span>';
  202. break;
  203. case 13:
  204. $stepName = '<span class="label label-danger">审核不通过</span>';
  205. break;
  206. default:
  207. $stepName = '<span class="label">用户操作</span>';
  208. break;
  209. }
  210. return $stepName;
  211. }
  212. public static function getTalentInfoStateName($state) {
  213. $str = "";
  214. switch ($state) {
  215. case 1:
  216. $str = '<span class="label">待提交基本资料</span>';
  217. break;
  218. case 2:
  219. $str = '<span class="label label-success">待审核</span>';
  220. break;
  221. case 3:
  222. $str = '<span class="label">待提交认定资料</span>';
  223. break;
  224. case 4:
  225. $str = '<span class="label label-danger">初审驳回</span>';
  226. break;
  227. case 5:
  228. $str = '<span class="label">待提交</span>';
  229. break;
  230. case 6:
  231. $str = '<span class="label label-success">待初审</span>';
  232. break;
  233. case 7:
  234. $str = '<span class="label label-success">待复核</span>';
  235. break;
  236. case 8:
  237. $str = '<span class="label label-success">待初审</span>';
  238. break;
  239. case 9:
  240. $str = '<span class="label label-success">待复核</span>';
  241. break;
  242. case 10:
  243. $str = '<span class="label label-success">待初审</span>';
  244. break;
  245. case 11:
  246. $str = '<span class="label label-primary">复核通过</span>';
  247. break;
  248. case 12:
  249. $str = '<span class="label label-danger">待重新审核</span>';
  250. break;
  251. case 13:
  252. $str = '<span class="label label-danger">审核不通过</span>';
  253. break;
  254. }
  255. return $str;
  256. }
  257. }