Api.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438
  1. <?php
  2. namespace app\enterprise\controller;
  3. use app\admin\model\Enterprise;
  4. use app\common\api\DictApi;
  5. use app\common\api\EnterpriseApi;
  6. use app\common\model\CurrentcyFileType;
  7. use app\common\model\TalentChecklog;
  8. use app\common\model\TalentCommonFile;
  9. use app\enterprise\model\EnterpriseRecord;
  10. use app\enterprise\common\EnterpriseController;
  11. use app\Request;
  12. use think\exception\ValidateException;
  13. class Api extends EnterpriseController {
  14. public function findEnterpriseChangeByPage() {
  15. $order = trim($this->request->param("order")) ?: "desc";
  16. $offset = trim($this->request->param("offset")) ?: 0;
  17. $limit = trim($this->request->param("limit")) ?: 10;
  18. $list = EnterpriseRecord::where('mainId', session("user")["uid"])->limit($offset, $limit)->order('createTime ' . $order)->select()->toArray();
  19. $count = count($list);
  20. if ($count > 0) {
  21. $streetList = DictApi::selectByParentCode('street');
  22. $typeList = DictApi::selectByParentCode('enterprise_type');
  23. $industryFieldNew = DictApi::selectByParentCode('industry_field');
  24. foreach ($list as $k => &$v) {
  25. $v['newIndustryFieldNewName'] = $industryFieldNew[$v['newIndustryFieldNew']];
  26. $v['newEnterpriseType'] = $typeList[$v['newEnterpriseType']];
  27. $v['newStreetName'] = $streetList[$v['newStreet']];
  28. }
  29. }
  30. return json(["total" => $count, "rows" => $list]);
  31. }
  32. public function findUnfinishedChangeRecord() {
  33. return EnterpriseRecord::where('mainId', session("user")["uid"])->where('checkState', '<>', 4)->select()->toArray();
  34. }
  35. public function toAdd() {
  36. $ep = Enterprise::where('id', session("user")["uid"])->find();
  37. $ecr = [
  38. 'enterprise_id' => $ep['id'],
  39. 'newName' => $ep['name'],
  40. 'newIdCard' => $ep['idCard'],
  41. 'newStreet' => $ep['street'],
  42. 'newAddress' => $ep['address'],
  43. 'newLegal' => $ep['legal'],
  44. 'newEphone' => $ep['ephone'],
  45. 'newAgentName' => $ep['agentName'],
  46. 'newAgentEmail' => $ep['agentEmail'],
  47. 'newAgentPhone' => $ep['agentPhone'],
  48. 'type' => $ep['type'],
  49. 'newEnterpriseTag' => $ep['enterpriseTag'],
  50. 'newEnterpriseType' => $ep['enterpriseType'],
  51. 'newIndustryFieldNew' => $ep['industryFieldNew'],
  52. 'newIndustryFieldOld' => $ep['industryFieldOld'],
  53. 'newBankCard' => $ep['bankCard'],
  54. 'newBank' => $ep['bank'],
  55. 'newBankNetwork' => $ep['bankNetwork']
  56. ];
  57. if ($ep["imgurl"]) {
  58. $ecr["imgurl"] = $ep["imgurl"];
  59. $extension = pathinfo($ep["imgurl"])["extension"];
  60. if (in_array($extension, ["jpeg", "jpg", "png", "gif"])) {
  61. $ecr["imgurl_is_img"] = 1;
  62. }
  63. }
  64. if ($ep["bankImg"]) {
  65. $ecr["bankImg"] = $ep["bankImg"];
  66. $extension = pathinfo($ep["bankImg"])["extension"];
  67. if (in_array($extension, ["jpeg", "jpg", "png", "gif"])) {
  68. $ecr["bankImg_is_img"] = 1;
  69. }
  70. }
  71. if ($ep["domainImg"]) {
  72. $ecr["domainImg"] = $ep["domainImg"];
  73. $extension = pathinfo($ep["domainImg"])["extension"];
  74. if (in_array($extension, ["jpeg", "jpg", "png", "gif"])) {
  75. $ecr["domainImg_is_img"] = 1;
  76. }
  77. }
  78. if ($ep["beian"]) {
  79. $ecr["beian"] = $ep["beian"];
  80. $extension = pathinfo($ep["beian"])["extension"];
  81. if (in_array($extension, ["jpeg", "jpg", "png", "gif"])) {
  82. $ecr["beian_is_img"] = 1;
  83. }
  84. }
  85. switch ($ep['checkState']) {
  86. case 1:
  87. $ecr['checkStateName'] = '保存未提交审核';
  88. break;
  89. case 2:
  90. $ecr['checkStateName'] = '待审核';
  91. break;
  92. case 3:
  93. $ecr['checkStateName'] = '审核驳回';
  94. break;
  95. case 4:
  96. $ecr['checkStateName'] = '审核通过';
  97. break;
  98. case 5:
  99. $ecr['checkStateName'] = '重新提交';
  100. break;
  101. default:
  102. $ecr['checkStateName'] = '';
  103. }
  104. //20220918增加根据不同的企业类型显示不同的信息变更界面
  105. switch ($ep->special) {
  106. case 0:
  107. return view("", ['ecr' => $ecr]);
  108. break;
  109. case 1:
  110. return view("to_add1", ['ecr' => $ecr]);
  111. break;
  112. default:
  113. break;
  114. }
  115. }
  116. public function upsert() {
  117. $data = [
  118. 'id' => \StrUtil::getRequestDecodeParam($this->request, 'enterprise_id'),
  119. 'name' => \StrUtil::getRequestDecodeParam($this->request, 'newName'), //单位名称
  120. 'idCard' => \StrUtil::getRequestDecodeParam($this->request, 'newIdCard'), //统一社会信用代码
  121. 'agentName' => \StrUtil::getRequestDecodeParam($this->request, 'newAgentName'), //人才联络员
  122. 'agentPhone' => \StrUtil::getRequestDecodeParam($this->request, 'newAgentPhone'), //人才联络员电话
  123. 'legal' => \StrUtil::getRequestDecodeParam($this->request, 'newLegal'), //法人
  124. 'street' => \StrUtil::getRequestDecodeParam($this->request, 'newStreet'), //镇街
  125. 'address' => \StrUtil::getRequestDecodeParam($this->request, 'newAddress'), //地址
  126. 'type' => intval($this->request['type']),
  127. 'enterpriseTag' => \StrUtil::getRequestDecodeParam($this->request, 'newEnterpriseTag'), //单位标签
  128. 'enterpriseType' => \StrUtil::getRequestDecodeParam($this->request, 'newEnterpriseType'), //单位类型
  129. 'agentEmail' => \StrUtil::getRequestDecodeParam($this->request, 'newAgentEmail'), //邮箱
  130. 'ephone' => \StrUtil::getRequestDecodeParam($this->request, 'newEphone'), //单位电话
  131. 'industryFieldNew' => \StrUtil::getRequestDecodeParam($this->request, 'newIndustryFieldNew'), //产业领域
  132. 'industryFieldOld' => \StrUtil::getRequestDecodeParam($this->request, 'newIndustryFieldOld'), //行业领域
  133. 'bankCard' => \StrUtil::getRequestDecodeParam($this->request, 'newBankCard'), //银行
  134. 'bank' => \StrUtil::getRequestDecodeParam($this->request, 'newBank'), //开户行
  135. 'bankNetwork' => \StrUtil::getRequestDecodeParam($this->request, 'newBankNetwork')//网点
  136. ];
  137. try {
  138. if (stripos($data['name'], "(")) {
  139. $data['name'] = str_replace('(', '(', $data['name']);
  140. }
  141. if (stripos($data['name'], ")")) {
  142. $data['name'] = str_replace(')', ')', $data['name']);
  143. }
  144. $ep = Enterprise::where('id', session("user")["uid"])->find();
  145. switch ($ep->special) {
  146. case 0:
  147. validate(\app\common\validate\Enterprise::class)->batch(true)->scene('change')->check($data);
  148. break;
  149. case 1:
  150. validate(\app\common\validate\Enterprise::class)->batch(true)->scene('sy_change')->check($data);
  151. break;
  152. default:
  153. break;
  154. }
  155. $record_id = \StrUtil::getRequestDecodeParam($this->request, 'id');
  156. if (!$record_id) {
  157. $record_data = [
  158. 'id' => getStringId(),
  159. 'mainId' => $data['id'],
  160. 'type' => $data['type'],
  161. 'oldName' => $ep['name'],
  162. 'oldIdCard' => $ep['idCard'],
  163. 'oldIndustryFieldNew' => $ep['industryFieldNew'],
  164. 'oldIndustryFieldOld' => $ep['industryFieldOld'],
  165. 'oldStreet' => $ep['street'],
  166. 'oldAddress' => $ep['address'],
  167. 'oldLegal' => $ep['legal'],
  168. 'oldEphone' => $ep['ephone'],
  169. 'oldAgentName' => $ep['agentName'],
  170. 'oldAgentEmail' => $ep['agentEmail'],
  171. 'oldAgentPhone' => $ep['agentPhone'],
  172. 'oldEnterpriseTag' => $ep['enterpriseTag'],
  173. 'oldEnterpriseType' => $ep['enterpriseType'],
  174. 'oldBankCard' => $ep['bankCard'],
  175. 'oldBank' => $ep['bank'],
  176. 'oldBankNetwork' => $ep['bankNetwork'],
  177. 'newName' => htmlspecialchars($data['name']),
  178. 'newIdCard' => htmlspecialchars($data['idCard']),
  179. 'newIndustryFieldNew' => $data['industryFieldNew'],
  180. 'newIndustryFieldOld' => $data['industryFieldOld'],
  181. 'newStreet' => $data['street'],
  182. 'newAddress' => $data['address'],
  183. 'newLegal' => $data['legal'],
  184. 'newEphone' => $data['ephone'],
  185. 'newAgentName' => $data['agentName'],
  186. 'newAgentEmail' => $data['agentEmail'],
  187. 'newAgentPhone' => $data['agentPhone'],
  188. 'newEnterpriseTag' => $data['enterpriseTag'],
  189. 'newEnterpriseType' => $data['enterpriseType'],
  190. 'newBankCard' => $data['bankCard'],
  191. 'newBank' => $data['bank'],
  192. 'newBankNetwork' => $data['bankNetwork'],
  193. 'checkState' => 1,
  194. 'createTime' => date("Y-m-d H:i:s", time()),
  195. 'createUser' => session("user")["uid"]
  196. ];
  197. EnterpriseRecord::create($record_data);
  198. $log = [
  199. 'id' => getStringId(),
  200. 'mainId' => $record_data['id'],
  201. 'category' => 'enterprise_change',
  202. 'type' => 10,
  203. 'active' => 1,
  204. 'state' => 1,
  205. 'step' => 100,
  206. 'stateChange' => '保存未提交',
  207. 'description' => '机构信息变更记录添加成功',
  208. 'createTime' => date("Y-m-d H:i:s", time()),
  209. 'createUser' => '用户'
  210. ];
  211. $res = ['msg' => '添加成功', 'code' => 200, 'obj' => $record_data];
  212. } else {
  213. $record = EnterpriseRecord::find($record_id);
  214. $ep = Enterprise::where('id', session("user")["uid"])->find();
  215. $record->oldName = $ep['name'];
  216. $record->oldIdCard = $ep['idCard'];
  217. $record->oldIndustryFieldNew = $ep['industryFieldNew'];
  218. $record->oldIndustryFieldOld = $ep['industryFieldOld'];
  219. $record->oldStreet = $ep['street'];
  220. $record->oldAddress = $ep['address'];
  221. $record->oldLegal = $ep['legal'];
  222. $record->oldEphone = $ep['ephone'];
  223. $record->oldAgentName = $ep['agentName'];
  224. $record->oldAgentEmail = $ep['agentEmail'];
  225. $record->oldAgentPhone = $ep['agentPhone'];
  226. $record->oldEnterpriseTag = $ep['enterpriseTag'];
  227. $record->oldEnterpriseType = $ep['enterpriseType'];
  228. $record->oldBankCard = $ep['bankCard'];
  229. $record->oldBank = $ep['bank'];
  230. $record->oldBankNetwork = $ep['bankNetwork'];
  231. if ($record->checkState == 1) {
  232. $record->newName = htmlspecialchars($data['name']);
  233. $record->newIdCard = htmlspecialchars($data['idCard']);
  234. $record->newIndustryFieldNew = $data['industryFieldNew'];
  235. $record->newIndustryFieldOld = $data['industryFieldOld'];
  236. $record->newStreet = $data['street'];
  237. $record->newAddress = $data['address'];
  238. $record->newLegal = $data['legal'];
  239. $record->newEphone = $data['ephone'];
  240. $record->newAgentName = $data['agentName'];
  241. $record->newAgentEmail = $data['agentEmail'];
  242. $record->newAgentPhone = $data['agentPhone'];
  243. $record->newEnterpriseTag = $data['enterpriseTag'];
  244. $record->newEnterpriseType = $data['enterpriseType'];
  245. $record->newBankCard = $data['bankCard'];
  246. $record->newBank = $data['bank'];
  247. $record->newBankNetwork = $data['bankNetwork'];
  248. } else {
  249. $fields = array_filter(explode(",", $record->modify_fields));
  250. for ($i = 0; $i < count($fields); $i++) {
  251. $key = lcfirst(substr($fields[$i], 3));
  252. $record[$fields[$i]] = $data[$key]; //仅可修改选择的字段
  253. }
  254. }
  255. $record->updateTime = date("Y-m-d H:i:s");
  256. $record->updateUser = session("user")["uid"];
  257. $record->save();
  258. $log = [
  259. 'id' => getStringId(),
  260. 'category' => 'enterprise_change',
  261. 'mainId' => '',
  262. 'type' => 10,
  263. 'active' => 1,
  264. 'state' => 1,
  265. 'step' => 100,
  266. 'stateChange' => '保存未提交',
  267. 'description' => '机构信息变更记录修改成功',
  268. 'createTime' => date("Y-m-d H:i:s", time()),
  269. 'createUser' => '用户'
  270. ];
  271. $res = ['msg' => '修改成功', 'code' => 200, 'obj' => $record];
  272. }
  273. TalentChecklog::create($log);
  274. return json($res);
  275. } catch (ValidateException $e) {
  276. $error = $e->getError();
  277. return json(["msg" => array_pop($error), 'code' => 500]);
  278. }
  279. }
  280. public function toUpdate() {
  281. $id = trim($this->request['id']);
  282. $ecr = EnterpriseRecord::findOrEmpty($id);
  283. $ep = Enterprise::where('id', $ecr->mainId)->find();
  284. switch ($ep->special) {
  285. case 0:
  286. return view("", ['ecr' => $ecr]);
  287. break;
  288. case 1:
  289. return view("to_update1", ['ecr' => $ecr]);
  290. break;
  291. default:
  292. break;
  293. }
  294. }
  295. public function submitToCheck() {
  296. $id = trim($this->request->post('id'));
  297. if (!$id) {
  298. return json(['msg' => '记录为空', 'code' => 500]);
  299. }
  300. $obj = EnterpriseRecord::find($id);
  301. if (!$obj) {
  302. return json(['msg' => '提交审核失败,请先填写基础信息', 'code' => 500]);
  303. }
  304. if ($obj['checkState'] != 1 && $obj['checkState'] != 3) {
  305. return json(['msg' => '不能重复提交审核', 'code' => 500]);
  306. }
  307. $ep = EnterpriseApi::getOne($obj->mainId);
  308. //20220918增加根据不同的企业类型显示不同的信息变更界面
  309. switch ($ep->special) {
  310. case 0:
  311. $org_type = 'enterpriseChange';
  312. break;
  313. case 1:
  314. $org_type = 'governmentChange';
  315. break;
  316. default:
  317. break;
  318. }
  319. $list = CurrentcyFileType::where('type', $org_type)->where('active', 1)->select();
  320. if (!$list || count($list) <= 0) {
  321. return json(['msg' => '缺少附件', 'code' => 500]);
  322. }
  323. $error_msg = "";
  324. foreach ($list as $k => $v) {
  325. if ($v['must'] == 1) {
  326. $count = TalentCommonFile::where('mainId', $id)->where('typeId', $v['id'])->count();
  327. if ($count == 0) {
  328. if (strlen($error_msg) == 0) {
  329. $error_msg = "以下为必传附件:";
  330. }
  331. $error_msg .= $v['name'] . ";";
  332. }
  333. }
  334. }
  335. if (strlen($error_msg) > 0) {
  336. return json(['msg' => $error_msg, 'code' => 500]);
  337. }
  338. if ($obj['checkState'] == 3) {
  339. $obj['checkState'] = 5;
  340. $state = 5;
  341. } else {
  342. $obj['checkState'] = 2;
  343. $state = 2;
  344. }
  345. $obj->save();
  346. $log = [
  347. 'id' => getStringId(),
  348. 'category' => 'enterprise_change',
  349. 'mainId' => $id,
  350. 'type' => 10,
  351. 'active' => 1,
  352. 'state' => $state,
  353. 'step' => 100,
  354. 'stateChange' => "<span class='label'>待提交</span>-><span class='label label-success'>待审核</span>",
  355. 'description' => '提交审核',
  356. 'createTime' => date("Y-m-d H:i:s", time()),
  357. 'createUser' => '用户'
  358. ];
  359. TalentChecklog::create($log);
  360. return json(['msg' => '提交审核成功', 'code' => 200, 'obj' => 1]);
  361. }
  362. public function toDetail() {
  363. $id = trim($this->request['id']);
  364. if (!$id) {
  365. return json(['msg' => '记录为空', 'code' => 500]);
  366. }
  367. $ecr = EnterpriseRecord::find($id);
  368. $ep = EnterpriseApi::getOne($ecr['mainId']);
  369. $streetList = DictApi::selectByParentCode('street');
  370. $ecr['oldStreetName'] = $streetList[$ecr['oldStreet']];
  371. $ecr['newStreetName'] = $streetList[$ecr['newStreet']];
  372. //20220918增加根据不同的企业类型显示不同的信息变更界面
  373. switch ($ep->special) {
  374. case 0:
  375. $tagList = DictApi::selectByParentCode('enterprise_tag');
  376. $typeList = DictApi::selectByParentCode('enterprise_type');
  377. $industryFieldNew = DictApi::selectByParentCode('industry_field');
  378. $industry = DictApi::findDictByCode($ecr['oldIndustryFieldOld']);
  379. $ecr['oldIndustryFieldOldName'] = $industry['name'];
  380. $industry = DictApi::findDictByCode($ecr['newIndustryFieldOld']);
  381. $ecr['newIndustryFieldOldName'] = $industry['name'];
  382. $ecr['oldEnterpriseTagName'] = $tagList[$ecr['oldEnterpriseTag']];
  383. $ecr['newEnterpriseTagName'] = $tagList[$ecr['newEnterpriseTag']];
  384. $ecr['oldEnterpriseTypeName'] = $typeList[$ecr['oldEnterpriseType']];
  385. $ecr['newEnterpriseTypeName'] = $typeList[$ecr['newEnterpriseType']];
  386. $ecr['oldIndustryFieldNewName'] = $industryFieldNew[$ecr['oldIndustryFieldNew']];
  387. $ecr['newIndustryFieldNewName'] = $industryFieldNew[$ecr['newIndustryFieldNew']];
  388. return view("", ['ecr' => $ecr]);
  389. break;
  390. case 1:
  391. return view("to_detail1", ['ecr' => $ecr]);
  392. break;
  393. default:
  394. break;
  395. }
  396. }
  397. }