Enterprise.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\common\AdminController;
  4. use app\common\api\ChuanglanSmsApi;
  5. use app\common\api\DictApi;
  6. use app\common\api\EnterpriseApi;
  7. use app\common\model\MessageRecord;
  8. use app\common\model\TalentChecklog;
  9. use app\common\api\TalentState;
  10. use app\common\api\CompanyApi;
  11. use think\facade\Db;
  12. class Enterprise extends AdminController {
  13. public function gotoEnterprisePage() {
  14. return view("", []);
  15. }
  16. public function findEnterpriseByPage() {
  17. $res = EnterpriseApi::getList($this->request);
  18. return json($res);
  19. }
  20. public function gotoEnterpriseDetailPage() {
  21. $id = trim($this->request['id']);
  22. $ep = EnterpriseApi::getOne($id);
  23. if (!$ep) {
  24. return "无此企业";
  25. }
  26. //--------设置 审核状态---------------------------------------------------
  27. switch ($ep['checkState']) {
  28. case 1:
  29. $ep['checkStateName'] = "待审核";
  30. break;
  31. case 2:
  32. $ep['checkStateName'] = "审核驳回";
  33. break;
  34. case 3:
  35. $ep['checkStateName'] = "审核通过";
  36. break;
  37. case 4:
  38. $ep['checkStateName'] = "重新提交";
  39. break;
  40. }
  41. //-------设置账号状态----------------------------------------------------
  42. switch ($ep['active']) {
  43. case 1:
  44. $ep['activeName'] = "账号有效";
  45. break;
  46. case 2:
  47. $ep['activeName'] = "冻结/拉黑";
  48. break;
  49. }
  50. //---------设置 街道-----------------------------------------------------
  51. if (\StrUtil::isNotEmpAndNull($ep['street'])) {
  52. $street_info = DictApi::findByParentCodeAndCode('street', $ep['street']);
  53. if ($street_info != null) {
  54. $ep['streetName'] = $street_info['name'];
  55. }
  56. }
  57. if (\StrUtil::isNotEmpAndNull($ep['agencyType'])) {
  58. $agencyType = DictApi::findByParentCodeAndCode('agency_type', $ep['agencyType']);
  59. $ep["agencyTypeName"] = $agencyType["name"];
  60. }
  61. //---------设置产业领域 --------------------------------------------------
  62. if (\StrUtil::isNotEmpAndNull($ep['industryFieldNew'])) {
  63. $industryFieldNew = DictApi::findByParentCodeAndCode('industry_field', $ep['industryFieldNew']);
  64. if ($industryFieldNew != null) {
  65. $ep['industryFieldNewName'] = $industryFieldNew['name'];
  66. }
  67. }
  68. //---------设置行业领域 --------------------------------------------------
  69. if (\StrUtil::isNotEmpAndNull($ep['industryFieldOld'])) {
  70. $industryFieldOld = DictApi::findByParentCodeAndCode($ep['industryFieldNew'] . "_field", $ep['industryFieldOld']);
  71. if ($industryFieldOld != null) {
  72. $ep['industryFieldOldName'] = $industryFieldOld['name'];
  73. }
  74. }
  75. //---------设置单位标签 --------------------------------------------------
  76. if (\StrUtil::isNotEmpAndNull($ep['enterpriseTag'])) {
  77. $enterpriseTag = DictApi::findByParentCodeAndCode("enterprise_tag", $ep['enterpriseTag']);
  78. if ($enterpriseTag != null) {
  79. $ep['enterpriseTagName'] = $enterpriseTag['name'];
  80. }
  81. }
  82. //---------设置机构标签 --------------------------------------------------
  83. if (\StrUtil::isNotEmpAndNull($ep['organizationTag'])) {
  84. $organizationTag = DictApi::findByParentCodeAndCode("organization_tag", $ep['organizationTag']);
  85. if ($organizationTag != null) {
  86. $ep['organizationTagName'] = $organizationTag['name'];
  87. }
  88. }
  89. //---------设置事业单位标签 --------------------------------------------------
  90. if (\StrUtil::isNotEmpAndNull($ep['institutionTag'])) {
  91. $institutionTag = DictApi::findByParentCodeAndCode("institution_tag", $ep['institutionTag']);
  92. if ($institutionTag != null) {
  93. $ep['institutionTagName'] = $institutionTag['name'];
  94. }
  95. }
  96. //---------设置单位类型 --------------------------------------------------
  97. if (\StrUtil::isNotEmpAndNull($ep['enterpriseType'])) {
  98. $enterpriseType = DictApi::findByParentCodeAndCode("enterprise_type", $ep['enterpriseType']);
  99. if ($enterpriseType != null) {
  100. $ep['enterpriseTypeName'] = $enterpriseType['name'];
  101. }
  102. }
  103. $imgurl_info = pathinfo($ep['imgurl']);
  104. if (in_array($imgurl_info['extension'], ["jpeg", "jpg", "png", "gif"])) {
  105. $ep['imgurl_is_img'] = 1;
  106. } else {
  107. $ep['imgurl_is_img'] = 0;
  108. }
  109. $bankImg_info = pathinfo($ep['bankImg']);
  110. if (in_array($bankImg_info['extension'], ["jpeg", "jpg", "png", "gif"])) {
  111. $ep['bankImg_is_img'] = 1;
  112. } else {
  113. $ep['bankImg_is_img'] = 0;
  114. }
  115. $domainImg_info = pathinfo($ep['domainImg']);
  116. if (in_array($domainImg_info['extension'], ["jpeg", "jpg", "png", "gif"])) {
  117. $ep['domainImg_is_img'] = 1;
  118. } else {
  119. $ep['domainImg_is_img'] = 0;
  120. }
  121. $typeImg_info = pathinfo($ep['typeImg']);
  122. if (in_array($typeImg_info['extension'], ["jpeg", "jpg", "png", "gif"])) {
  123. $ep['typeImg_is_img'] = 1;
  124. } else {
  125. $ep['typeImg_is_img'] = 0;
  126. }
  127. $beian_info = pathinfo($ep['beian']);
  128. if (in_array($beian_info['extension'], ["jpeg", "jpg", "png", "gif"])) {
  129. $ep['beian_is_img'] = 1;
  130. } else {
  131. $ep['beian_is_img'] = 0;
  132. }
  133. return view("", ['ep' => $ep]);
  134. }
  135. public function gotoExaminePage() {
  136. $id = trim($this->request['id']);
  137. $ep = EnterpriseApi::getOne($id);
  138. if (!$ep) {
  139. return "无此企业";
  140. }
  141. //---------设置产业领域 --------------------------------------------------
  142. if (\StrUtil::isNotEmpAndNull($ep['industryFieldNew'])) {
  143. $industryFieldNew = DictApi::findByParentCodeAndCode('industry_field', $ep['industryFieldNew']);
  144. if ($industryFieldNew != null) {
  145. $ep['industryFieldNewName'] = $industryFieldNew['name'];
  146. }
  147. }
  148. if ($ep->special == 0) {
  149. $fields = ["name" => "企业名称", "idCard" => "统一社会信用代码", "legal" => "法人代表", "address" => "企业地址", "street" => "所属街道", "ephone" => "企业电话", "bankCard" => "企业银行账号", "bank" => "企业开户银行", "bankNetwork" => "企业开户银行网点",
  150. "agencyType" => "机构类型", "industryFieldNew" => "产业领域", "industryFieldOld" => "行业领域", "enterpriseTag" => "企业标签", "enterpriseType" => "企业类型",
  151. "agentName" => "人才联络员姓名", "agentPhone" => "人才联络员电话", "agentEmail" => "人才联络员邮箱"];
  152. $files = ["imgurl" => "企业营业执照", "bankImg" => "开户许可证/基本存款账户信息", "domainImg" => "行业领域佐证材料", "beian" => "人才联络员信息备案表", "typeImg" => "规上、高新技术、专精特新企业上传材料"];
  153. } else {
  154. $fields = ["name" => "单位名称", "idCard" => "统一社会信用代码", "legal" => "法人代表", "address" => "单位地址", "street" => "所属街道", "ephone" => "单位电话", "bankCard" => "单位银行账号", "bank" => "单位开户银行", "bankNetwork" => "单位开户银行网点",
  155. "agentName" => "人才联络员姓名", "agentPhone" => "人才联络员电话", "agentEmail" => "人才联络员邮箱"];
  156. if ($ep->special == 1) {
  157. $fields["institutionTag"] = "单位标签";
  158. }
  159. if ($ep->special == 3) {
  160. $fields["organizationTag"] = "机构标签";
  161. }
  162. $files = ["imgurl" => "法人证或批文", "bankImg" => "开户许可证/基本存款账户信息", "beian" => "人才联络员备案表"];
  163. }
  164. $modify_fields = [];
  165. $modify_files = [];
  166. $_modify_fields = explode(",", $ep["modify_fields"]);
  167. foreach ($fields as $key => $value) {
  168. $checked = in_array($key, $_modify_fields);
  169. $modify_fields[$key] = ["field" => $key, "name" => $value, "checked" => $checked];
  170. }
  171. $_modify_files = explode(",", $ep["modify_files"]);
  172. foreach ($files as $key => $value) {
  173. $checked = in_array($key, $_modify_files);
  174. $modify_files[$key] = ["field" => $key, "name" => $value, "checked" => $checked];
  175. }
  176. return view("", ['ep' => $ep, 'checkUser' => session('user')['name'], 'fields' => $modify_fields, "files" => $modify_files]);
  177. }
  178. public function doExamine() {
  179. $id = trim($this->request['id']);
  180. if (!$id) {
  181. return json(["msg" => 'ID不能为空!']);
  182. }
  183. $ep = EnterpriseApi::getOne($id);
  184. if (!$ep) {
  185. return json(["msg" => '无此企业!']);
  186. }
  187. $checkState = $this->request['checkState'];
  188. if ($checkState == null || ($checkState != 2 && $checkState != 3)) {
  189. return json(["msg" => '请选择审核状态!']);
  190. }
  191. $checkMsg = $this->request['checkMsg'];
  192. $fields = $this->request['fields'];
  193. $files = $this->request['files'];
  194. if ($checkState == 2) {
  195. if (\StrUtil::isEmpOrNull($checkMsg)) {
  196. return json(["msg" => '请填写审核意见!']);
  197. }
  198. if (strlen($checkMsg) > 1000) {
  199. return json(["msg" => '审核意见最多1000个字符!']);
  200. }
  201. if (!$fields && !$files) {
  202. return json(["msg" => '请选择驳回修改的字段或者附件!']);
  203. }
  204. }
  205. try {
  206. $checkData = [
  207. 'id' => $id,
  208. 'checkState' => $checkState,
  209. 'checkMsg' => $checkMsg,
  210. 'modify_fields' => $fields ? implode(",", $fields) : null,
  211. 'modify_files' => $files ? implode(",", $files) : null,
  212. 'checkUser' => session('user')['name'],
  213. 'updateUser' => session('user')['uid'],
  214. 'updateTime' => date("Y-m-d H:i:s")
  215. ];
  216. $res = EnterpriseApi::updateById($checkData);
  217. //短信入库数据
  218. $record_data = [
  219. 'id' => getStringId(),
  220. 'bizId' => getStringId(),
  221. 'userId' => $id,
  222. 'type' => 2,
  223. 'smsType' => 2,
  224. 'name' => $ep['name'],
  225. 'phone' => $ep['agentPhone'],
  226. 'params' => '机构注册信息',
  227. 'state' => 1,
  228. 'sendingDate' => date("Y-m-d H:i:s", time()),
  229. 'createTime' => date("Y-m-d H:i:s", time())
  230. ];
  231. if ($checkState == 2) {
  232. $record_data['templateCode'] = "【晋江市人才服务平台】您好!您提交的晋江市现代产业体系人才机构注册信息因信息填写错误或上传不完整已被退回,请及时登录“晋江市人才综合服务申报平台”根据审核意见修改并重新提交。退订回复TD。";
  233. }
  234. if ($checkState == 3) {
  235. $record_data['templateCode'] = "【晋江市人才服务平台】您好!您提交的晋江市现代产业体系人才机构注册信息已审核通过,可登录“晋江市人才综合服务申报平台”做相关事宜申报。退订回复TD。";
  236. }
  237. $smsapi = new ChuanglanSmsApi();
  238. $result = $smsapi->sendSMS($ep['agentPhone'], $record_data['templateCode']);
  239. MessageRecord::create($record_data);
  240. $company = CompanyApi::getOne(session('user')['companyId']);
  241. TalentChecklog::create([
  242. 'id' => getStringId(),
  243. 'mainId' => $id,
  244. 'type' => 10,
  245. 'typeField' => null,
  246. 'active' => 1,
  247. 'state' => $checkState,
  248. 'step' => 101,
  249. 'stateChange' => TalentState::stateEnum($checkState),
  250. 'description' => $checkMsg,
  251. 'createTime' => date("Y-m-d H:i:s", time()),
  252. 'createUser' => session('user')['name'] . "({$company['name']})"
  253. ]);
  254. return json(["msg" => '操作成功!', "code" => 200]);
  255. } catch (\Exception $e) {
  256. return json(["msg" => $e->getMessage()]);
  257. }
  258. }
  259. public function GotoActivePage() {
  260. $id = trim($this->request['id']);
  261. $ep = EnterpriseApi::getOne($id);
  262. return view("", ['ep' => $ep]);
  263. }
  264. public function setActive() {
  265. if (!$id = trim($this->request['id'])) {
  266. return json(["msg" => 'ID不能为空!', "code" => 500]);
  267. }
  268. $ep = EnterpriseApi::getOne($id);
  269. $active = $this->request['active'];
  270. if ($ep['active'] == null || ($ep['active'] != 1 && $ep['active'] != 2)) {
  271. return json(["msg" => '状态有误!', "code" => 500]);
  272. }
  273. if ($ep['active'] == 2) {
  274. $msg = trim($this->request['activeMsg']);
  275. if (empty($msg)) {
  276. return json(["msg" => '请填写拉黑/冻结原因!', "code" => 500]);
  277. }
  278. if (strlen($msg) > 100) {
  279. return json(["msg" => '拉黑/冻结原因 最多100个字符!', "code" => 500]);
  280. }
  281. }
  282. $company = CompanyApi::getOne(session('user')['companyId']);
  283. $ep->active = $active;
  284. $ep->activeMsg = $msg;
  285. $ep->updateUser = session('user')['uid'] . "";
  286. $ep->updateTime = date('y-m-d H:i:s');
  287. try {
  288. $ep->save();
  289. //添加日志
  290. TalentChecklog::create([
  291. 'id' => getStringId(),
  292. 'mainId' => $ep['id'],
  293. 'type' => 10,
  294. 'typeField' => null,
  295. 'active' => 1,
  296. 'state' => TalentState::RCRD_BASEIC_FROZEN,
  297. 'step' => 102,
  298. 'stateChange' => TalentState::stateEnum(10),
  299. 'description' => $msg,
  300. 'createTime' => date("Y-m-d H:i:s", time()),
  301. 'createUser' => session('user')['name'] . "({$company['name']})"
  302. ]);
  303. return json(["msg" => '操作成功!', "code" => 200]);
  304. } catch (\Exception $e) {
  305. return json(["msg" => $e->getMessage()]);
  306. }
  307. }
  308. public function resetPassword() {
  309. if (!$id = trim($this->request['id'])) {
  310. return json(["msg" => 'ID不能为空!', "code" => 500]);
  311. }
  312. $ep = EnterpriseApi::getOne($id);
  313. if (!$ep) {
  314. return json(["msg" => '找不到该用户!', "code" => 500]);
  315. }
  316. $ep->password = hash("md5", 'JJrc@123'); //默认密码
  317. $ep->updateUser = session('user')['uid'] . "";
  318. $ep->updateTime = date("Y-m-d H:i:s");
  319. $ep->save();
  320. $company = CompanyApi::getOne(session('user')['companyId']);
  321. TalentChecklog::create([
  322. 'id' => getStringId(),
  323. 'mainId' => $ep['id'],
  324. 'type' => 10,
  325. 'typeField' => null,
  326. 'active' => 1,
  327. 'state' => null,
  328. 'step' => 103,
  329. 'stateChange' => '重置密码',
  330. 'description' => '重置密码',
  331. 'createTime' => date("Y-m-d H:i:s", time()),
  332. 'createUser' => session('user')['name'] . "({$company['name']})"
  333. ]);
  334. return json(["msg" => '重置密码成功!', "code" => 200]);
  335. }
  336. public function export() {
  337. $res = EnterpriseApi::getList($this->request, true);
  338. $rows = $res["rows"];
  339. $columns = ["单位名称", " 统一社会信用代码", "产业领域", "单位标签", " 所属街道", "单位地址", " 法人代表", " 单位电话", "人才联络员", "人才联络员电话", "人才联络员邮箱", "审核状态", "账号状态", "注册时间", "备注"];
  340. $exportDatas = [];
  341. if ($res["rows"]) {
  342. $stateMaps = [1 => "未审核", 2 => "审核驳回", 3 => "审核通过", 4 => "重新提交"];
  343. $activeMaps = [1 => "账号有效", 2 => "拉黑/冻结"];
  344. foreach ($rows as $row) {
  345. $exportDatas[] = [
  346. $row['name'],
  347. $row['idCard'],
  348. $row['industryFieldNewName'],
  349. $row['enterpriseTagName'],
  350. $row['streetName'],
  351. $row['address'],
  352. $row['legal'],
  353. $row['ephone'],
  354. $row['agentName'],
  355. $row['agentPhone'],
  356. $row['agentEmail'],
  357. $stateMaps[$row["checkState"]],
  358. $activeMaps[$row["active"]],
  359. $row['createTime'],
  360. $row['description']
  361. ];
  362. }
  363. export($columns, $exportDatas, "企业用户信息");
  364. exit();
  365. }
  366. return json(["msg" => "没有可以导出的内容"]);
  367. }
  368. }