EnterpriseChangeRecord.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\common\AdminController;
  4. use app\common\api\ChuanglanSmsApi;
  5. use app\common\api\CompanyApi;
  6. use app\common\api\DictApi;
  7. use app\common\api\EnterpriseApi;
  8. use app\common\api\TalentState;
  9. use app\common\model\CurrentcyFileType;
  10. use app\common\model\MessageRecord;
  11. use app\common\model\TalentChecklog;
  12. use app\common\model\TalentCommonFile;
  13. class EnterpriseChangeRecord extends AdminController {
  14. public function gotoEnterpriseChangeRecordPage() {
  15. $talentTypeList = DictApi::findChildDictByCode("enterprise_tag");
  16. $industryFieldNewList = DictApi::findChildDictByCode("industry_field");
  17. $streetList = DictApi::findChildDictByCode("street");
  18. return view("", ['enterprise_tag' => $talentTypeList, 'industryFieldNew' => $industryFieldNewList, 'street' => $streetList]);
  19. }
  20. public function findEnterpriseChangeRecordByPage() {
  21. $res = EnterpriseApi::getRecordList($this->request);
  22. return json($res);
  23. }
  24. public function gotoEnterpriseChangeDetailPage() {
  25. $id = trim($this->request['id']);
  26. if (!$id) {
  27. return json(["msg" => 'ID不能为空!']);
  28. }
  29. $ecr = EnterpriseApi::getOneRecord($id);
  30. $ep = EnterpriseApi::getOne($ecr['mainId']);
  31. if (\StrUtil::isNotEmpAndNull($ecr['oldStreet']) || \StrUtil::isNotEmpAndNull($ecr['newStreet'])) {
  32. $streetList = DictApi::selectByParentCode("street");
  33. if (\StrUtil::isNotEmpAndNull($ecr['oldStreet'])) {
  34. $ecr['oldStreetName'] = $streetList[$ecr['oldStreet']];
  35. }
  36. if (\StrUtil::isNotEmpAndNull($ecr['newStreet'])) {
  37. $ecr['newStreetName'] = $streetList[$ecr['newStreet']];
  38. }
  39. }
  40. switch ($ecr['checkState']) {
  41. case 1:
  42. $ecr['checkStateName'] = '保存未提交';
  43. break;
  44. case 2:
  45. $ecr['checkStateName'] = '待审核';
  46. break;
  47. case 3:
  48. $ecr['checkStateName'] = '审核驳回';
  49. break;
  50. case 4:
  51. $ecr['checkStateName'] = '审核通过';
  52. break;
  53. case 5:
  54. $ecr['checkStateName'] = '重新提交';
  55. break;
  56. default:
  57. $ecr['checkStateName'] = '';
  58. break;
  59. }
  60. $where = [];
  61. $where[] = ['tcf.mainId', '=', $id];
  62. $files = TalentCommonFile::alias("tcf")->field("tcf.*,cft.api")->leftJoin("new_currency_filetype cft", "cft.id=tcf.typeId")->where($where)->select();
  63. $_files = [];
  64. foreach ($files as $k => $v) {
  65. $v["ext"] = pathinfo($v["url"])["extension"];
  66. $v['url'] = getStoragePath($v['url']);
  67. $_files[$v["api"]][] = $v;
  68. }
  69. switch ($ep->special) {
  70. case 0:
  71. if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseTag']) || \StrUtil::isNotEmpAndNull($ecr['newEnterpriseTag'])) {
  72. $talentTypeList = DictApi::selectByParentCode("enterprise_tag");
  73. if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseTag'])) {
  74. $ecr['oldEnterpriseTagName'] = $talentTypeList[$ecr['oldEnterpriseTag']];
  75. }
  76. if (\StrUtil::isNotEmpAndNull($ecr['newEnterpriseTag'])) {
  77. $ecr['newEnterpriseTagName'] = $talentTypeList[$ecr['newEnterpriseTag']];
  78. }
  79. }
  80. if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldNew']) || \StrUtil::isNotEmpAndNull($ecr['newIndustryFieldNew'])) {
  81. $industryFieldNewList = DictApi::selectByParentCode("industry_field");
  82. if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldNew'])) {
  83. $ecr['oldIndustryFieldNewName'] = $industryFieldNewList[$ecr['oldIndustryFieldNew']];
  84. }
  85. if (\StrUtil::isNotEmpAndNull($ecr['newIndustryFieldNew'])) {
  86. $ecr['newIndustryFieldNewName'] = $industryFieldNewList[$ecr['newIndustryFieldNew']];
  87. }
  88. }
  89. if (\StrUtil::isNotEmpAndNull($ecr['oldIndustryFieldOld'])) {
  90. $industry = DictApi::findDictByCode($ecr['oldIndustryFieldOld']);
  91. $ecr['oldIndustryFieldOldName'] = $industry['name'];
  92. }
  93. if (\StrUtil::isNotEmpAndNull($ecr['newIndustryFieldOld'])) {
  94. $industry = DictApi::findDictByCode($ecr['newIndustryFieldOld']);
  95. $ecr['newIndustryFieldOldName'] = $industry['name'];
  96. }
  97. if (\StrUtil::isNotEmpAndNull($ecr['oldEnterpriseType'])) {
  98. $industry = DictApi::findDictByCode($ecr['oldEnterpriseType']);
  99. $ecr['oldEnterpriseTypeName'] = $industry['name'];
  100. }
  101. if (\StrUtil::isNotEmpAndNull($ecr['newEnterpriseType'])) {
  102. $industry = DictApi::findDictByCode($ecr['newEnterpriseType']);
  103. $ecr['newEnterpriseTypeName'] = $industry['name'];
  104. }
  105. return view("", ['ecr' => $ecr, 'files' => $_files]);
  106. break;
  107. case 1:
  108. return view("", ['ecr' => $ecr, 'files' => $_files]);
  109. break;
  110. default:
  111. break;
  112. }
  113. }
  114. public function gotoEnterpriseChangeExaminePage() {
  115. $id = trim($this->request['id']);
  116. if (!$id) {
  117. return json(["msg" => 'ID不能为空!']);
  118. }
  119. $ecr = EnterpriseApi::getOneRecord($id);
  120. return view("", ['ecr' => $ecr]);
  121. }
  122. public function doExamine() {
  123. $id = trim($this->request['id']);
  124. if (!$id) {
  125. return json(["msg" => 'ID不能为空!', 'code' => 500]);
  126. }
  127. $ecr = EnterpriseApi::getOneRecord($id);
  128. if (!$ecr) {
  129. return json(["msg" => '原始数据不存在!', 'code' => 500]);
  130. }
  131. $checkState = trim($this->request['checkState']);
  132. if ($checkState == null || ($checkState != 4 && $checkState != 3)) {
  133. return json(["msg" => '请选择审核状态!', 'code' => 500]);
  134. }
  135. $checkMsg = trim($this->request['checkMsg']);
  136. //如果审核状态为 审核驳回, 需要填写审核意见
  137. if ($checkState == 3 && \StrUtil::isEmpOrNull($checkMsg)) {
  138. return json(["msg" => '审核驳回时,需要填写审核意见!', 'code' => 500]);
  139. }
  140. if (\StrUtil::isNotEmpAndNull($checkMsg) && strlen($checkMsg) > 200) {
  141. return json(["msg" => '审核意见最多200个字符!', 'code' => 500]);
  142. }
  143. if ($ecr['checkState'] != 2 && $ecr['checkState'] != 3 && $ecr['checkState'] != 5) {
  144. return json(["msg" => '不在审核范围内!', 'code' => 500]);
  145. }
  146. //如果为审核驳回,更新表中的审核状态 和 审核意见, 直接返回结果
  147. if ($checkState == 3) {
  148. $ecr->checkState = 3;
  149. $ecr->checkMsg = $checkMsg;
  150. $ecr->updateUser = session('user')['uid'];
  151. $ecr->updateTime = date("Y-m-d H:i:s");
  152. $ecr->save();
  153. //发送短信
  154. $record_data = [
  155. 'id' => getStringId(),
  156. 'bizId' => getStringId(),
  157. 'userId' => $ecr['mainId'],
  158. 'type' => 2,
  159. 'smsType' => 2,
  160. 'name' => $ecr['newName'],
  161. 'phone' => $ecr['newAgentPhone'],
  162. 'templateCode' => "【晋江市人才服务平台】您好!您提交申请的优秀人才{$checkMsg}因信息填写错误或上传不完整已被退回,请及时登录申报系统查看审核意见并重新提交。",
  163. 'params' => '机构信息变更',
  164. 'state' => 1,
  165. 'sendingDate' => date("Y-m-d H:i:s", time()),
  166. 'createTime' => date("Y-m-d H:i:s", time())
  167. ];
  168. $smsapi = new ChuanglanSmsApi();
  169. $result = $smsapi->sendSMS($ecr['newAgentPhone'], $record_data['templateCode']);
  170. MessageRecord::create($record_data);
  171. $company = CompanyApi::getOne(session('user')['companyId']);
  172. TalentChecklog::create([
  173. 'id' => getStringId(),
  174. 'category' => 'enterprise_change',
  175. 'mainId' => $ecr['id'],
  176. 'type' => 10,
  177. 'typeField' => null,
  178. 'active' => 1,
  179. 'state' => 3,
  180. 'step' => 101,
  181. 'stateChange' => "<span class='label label-info'>审核驳回</span>",
  182. 'description' => $checkMsg,
  183. 'createTime' => date("Y-m-d H:i:s", time()),
  184. 'createUser' => session('user')['name'] . "({$company['name']})"
  185. ]);
  186. return json(["msg" => '操作成功!', "code" => 200]);
  187. } else {
  188. $ecr->checkState = 4;
  189. $ecr->checkMsg = $checkMsg;
  190. $ecr->updateUser = session('user')['uid'];
  191. $ecr->updateTime = date("Y-m-d H:i:s");
  192. $ecr->save();
  193. $ep = EnterpriseApi::getOne($ecr['mainId']);
  194. $ep->name = $ecr['newName'];
  195. $ep->idCard = $ecr['newIdCard'];
  196. $ep->enterpriseTag = $ecr['newEnterpriseTag'];
  197. $ep->street = $ecr['newStreet'];
  198. $ep->address = $ecr['newAddress'];
  199. $ep->legal = $ecr['newLegal'];
  200. $ep->ephone = $ecr['newEphone'];
  201. $ep->agentName = $ecr['newAgentName'];
  202. $ep->agentEmail = $ecr['newAgentEmail'];
  203. $ep->agentPhone = $ecr['newAgentPhone'];
  204. $ep->industryFieldNew = $ecr['newIndustryFieldNew'];
  205. $ep->industryFieldOld = $ecr['newIndustryFieldOld'];
  206. $ep->enterpriseType = $ecr['newEnterpriseType'];
  207. $ep->bankCard = $ecr['newBankCard'];
  208. $ep->bankNetwork = $ecr['newBankNetwork'];
  209. $ep->bank = $ecr['newBank'];
  210. $ep->updateUser = session('user')['uid'];
  211. $ep->updateTime = date("Y-m-d H:i:s");
  212. //查询此次上传的文件
  213. $list = TalentCommonFile::where('mainId', $ecr['id'])->select()->toArray();
  214. if (count($list) > 0) {
  215. foreach ($list as $k => $v) {
  216. $fileInfo = CurrentcyFileType::where('id', $v['typeId'])->select()->toArray();
  217. if (count($fileInfo) > 0) {
  218. foreach ($fileInfo as $item) {
  219. switch ($item['api']) {
  220. case 'businessLicense':
  221. $ep->imgurl = $v['url'];
  222. break;
  223. case 'businessBank':
  224. $ep->bankImg = $v['url'];
  225. break;
  226. case 'businessDomain':
  227. $ep->domainImg = $v['url'];
  228. break;
  229. case 'businessBeian':
  230. $ep->beian = $v['url'];
  231. break;
  232. }
  233. }
  234. }
  235. }
  236. }
  237. //同步人才库与津贴库 TODO
  238. $ep->save();
  239. //发送短信
  240. $record_data = [
  241. 'id' => getStringId(),
  242. 'bizId' => getStringId(),
  243. 'userId' => $ecr['mainId'],
  244. 'type' => 2,
  245. 'smsType' => 2,
  246. 'name' => $ecr['newName'],
  247. 'phone' => $ecr['newAgentPhone'],
  248. 'templateCode' => "【晋江市人才服务平台】您好!您提交申请的优秀人才{$checkMsg}已审核通过,可登录申报系统做相关事宜申报。",
  249. 'params' => '机构信息变更',
  250. 'state' => 1,
  251. 'sendingDate' => date("Y-m-d H:i:s", time()),
  252. 'createTime' => date("Y-m-d H:i:s", time())
  253. ];
  254. $smsapi = new ChuanglanSmsApi();
  255. $result = $smsapi->sendSMS($ecr['newAgentPhone'], $record_data['templateCode']);
  256. MessageRecord::create($record_data);
  257. $company = CompanyApi::getOne(session('user')['companyId']);
  258. TalentChecklog::create([
  259. 'id' => getStringId(),
  260. 'category' => 'enterprise_change',
  261. 'mainId' => $ecr['id'],
  262. 'type' => 10,
  263. 'typeField' => null,
  264. 'active' => 1,
  265. 'state' => 4,
  266. 'step' => 101,
  267. 'stateChange' => "<span class='label label-info'>审核通过</span>",
  268. 'description' => $checkMsg,
  269. 'createTime' => date("Y-m-d H:i:s", time()),
  270. 'createUser' => session('user')['name'] . "({$company['name']})"
  271. ]);
  272. return json(["msg" => '操作成功!', "code" => 200]);
  273. }
  274. }
  275. }