Data.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. <?php
  2. namespace app\common\controller;
  3. use app\BaseController;
  4. use app\admin\model\Enterprise;
  5. use app\common\api\CompanyApi;
  6. use app\common\api\TalentConditionApi;
  7. use app\common\api\TalentLogApi;
  8. use app\common\api\TalentState;
  9. use app\common\model\TalentChecklog;
  10. use app\common\state\IntegralState;
  11. use app\common\state\ProjectState;
  12. use app\enterprise\api\TalentApi;
  13. use app\enterprise\model\Talent;
  14. use app\common\api\DictApi;
  15. use think\facade\Db;
  16. /**
  17. * 需要权限的公共方法放这
  18. * Description of Tool
  19. *
  20. * @author sgq
  21. */
  22. class Data extends BaseController {
  23. //protected $middleware = [ApiEncrypt::class];
  24. public function __construct(\think\App $app) {
  25. parent::__construct($app);
  26. }
  27. public function getEnterprise(\think\Request $request){
  28. $pageSize = $request->param('pageSize',20);
  29. $page = $request->param('page',1);
  30. $where[] = ["delete", "=", 0];
  31. $where[] = ['type','=',1];
  32. $list = Enterprise::where($where)->limit(($page-1)*$pageSize, $page*$pageSize)->order("createTime", 'desc')->field('id,industryFieldNew,enterpriseTag,organizationTag,institutionTag,enterpriseType,name,idCard,street,address,legal,ephone,agentName,agentPhone,username,password,bankCard,bankNetwork,bank,agentEmail,imgurl,bankImg,domainImg,typeImg,beian,checkState,checkMsg,checkUser,active,activeMsg,createTime,updateUser,updateTime,modify_fields,modify_files')->select()->toArray();
  33. $json = [
  34. 'code' => 200,
  35. 'msg' => '查询成功',
  36. 'data' => $list
  37. ];
  38. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  39. return $ret;
  40. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  41. }
  42. public function getTalent(\think\Request $request){
  43. $pageSize = $request->param('pageSize',20);
  44. $page = $request->param('page',1);
  45. $enterprise_id = $request->param('enterprise_id',0);
  46. if(empty($enterprise_id)){
  47. $json = [
  48. 'code' => 0,
  49. 'msg' => '企业ID不能为空',
  50. ];
  51. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  52. return $ret;
  53. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  54. }
  55. $where[] = ["delete", "=", 0];
  56. $where[] = ["enterprise_id",'=',$enterprise_id];
  57. $field = 'id,salary_pay_way,salary_pay_month,tax_insurance_month,labor_contract_rangetime,pre_import_type,enterprise_id,name,headimgurl,card_type,card_number,sex,birthday,nationality,province,city,county,nation,politics,talent_arrange,talent_condition,fj_talent_condition_text,qz_talent_condition_text,highest_degree,graduate_school,major,professional,pro_qua,bank,bank_number,bank_account,study_abroad,abroad_school,abroad_major,phone,email,apply_year,import_way,return,fst_work_time,cur_entry_time,cur_quit_time,position,source,source_batch,source_city,source_county,fujian_highcert_pubtime,fujian_highcert_exptime,quanzhou_highcert_pubtime,quanzhou_highcert_exptime,createTime,updateTime,modify_fields,modify_files,first_submit_time,new_submit_time,first_dept_check_time,pass_dept_check,checkState,highProcess,isEffect,publicBatch,certificateGetTime,certificateExpireTime,certificateNo,experience,education,annual_salary,break_faith,identifyGetTime,identifyConditionName,title,check_companys,re_check_companys,isImport,fjImport,qzImport,qz_talent_level,fj_talent_level,qz_talent_info,fj_talent_info,isMatchZhiren,active,identifyMonth,fst_city_work_time';
  58. $list = Talent::where($where)->limit(($page-1)*$pageSize, $page*$pageSize)->field($field)->select()->toArray();
  59. $json = [
  60. 'code' => 200,
  61. 'msg' => '查询成功',
  62. 'data' => $list
  63. ];
  64. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  65. return $ret;
  66. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  67. }
  68. public function getDict(\think\Request $request){
  69. $code = $request->param('code');
  70. if(empty($code)){
  71. $json = [
  72. 'code' => 0,
  73. 'msg' => '字典值不能为空',
  74. ];
  75. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  76. //$ret1 = $this->curlPost("http://sm4.jinjianghc.com/sm4_decbc.php",['data' => $ret,'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']);
  77. //dump($ret1);die;
  78. return $ret;
  79. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  80. }
  81. $dict_self = DictApi::findDictByCode($code);
  82. if(!$dict_self){
  83. $json = [
  84. 'code' => 200,
  85. 'msg' => '查询成功,无此字典',
  86. 'data' => null
  87. ];
  88. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  89. return $ret;
  90. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  91. }
  92. $child_dict = DictApi::findChildDictByCode($code);
  93. if(count($child_dict) > 0){
  94. $res = array_merge([$dict_self->toArray()],$child_dict);
  95. }else{
  96. $res = $dict_self;
  97. }
  98. $json = [
  99. 'code' => 200,
  100. 'msg' => '查询成功',
  101. 'data' => $res
  102. ];
  103. $ret = base64_encode($this->curlPost("http://sm4.jinjianghc.com/sm4_cbc.php",['data' => json_encode($json),'key' => '3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ','iv' => 'jKihG4wF622ocb8z']));
  104. return $ret;
  105. //return openssl_encrypt(json_encode($json),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  106. }
  107. public function getCheckLog(\think\Request $request){
  108. $mainId = $request->param('mainId');
  109. $enterpriseId = $request->param("enterpriseId");
  110. $category = $request->param("category");
  111. $type = $request->param("type");
  112. $list = [];
  113. switch ($type) {
  114. case 1:
  115. $talentInfo = TalentApi::getOne($mainId);
  116. $talent_condition = TalentConditionApi::getOne($talentInfo["talent_condition"]);
  117. case 2:
  118. case 3:
  119. case 4:
  120. case 6:
  121. case 7:
  122. case 8:
  123. case 9:
  124. case 19:
  125. case 20:
  126. $list = TalentLogApi::getList($type, $mainId);
  127. break;
  128. case 10:
  129. if ($enterpriseId) {
  130. $where[] = ["mainId", "=", $enterpriseId];
  131. $ids = \app\enterprise\model\EnterpriseRecord::where($where)->column("id");
  132. $ids[] = $enterpriseId;
  133. $where = [];
  134. $where[] = ["type", "=", $type];
  135. $where[] = ["active", "=", 1];
  136. $where[] = ["mainId", "in", $ids];
  137. $list = TalentChecklog::where($where)->order("createTime desc")->select();
  138. } else {
  139. $list = TalentLogApi::getList($type, $mainId);
  140. }
  141. break;
  142. }
  143. $new_list = [];
  144. foreach ($list as $key => $item) {
  145. $new_item["description"] = $item["description"];
  146. switch ($item['type']) {
  147. case 2:
  148. case 3:
  149. case 4:
  150. case 6:
  151. case 7:
  152. case 8:
  153. case 9:
  154. case 19:
  155. $new_item["stateName"] = \app\common\state\LivingAllowanceState::getStateName($item["state"]);
  156. $new_item["stepName"] = \app\common\state\LivingAllowanceState::getStepName($item["step"]);
  157. $new_item["stateChange"] = $item["stateChange"];
  158. break;
  159. case 20:
  160. $new_item["stepName"] = IntegralState::getLogStepName($item["state"]);
  161. $new_item["stateName"] = IntegralState::getLogStateName($item["state"], $item["last_state"]);
  162. if ($item["last_state"] && $item["new_state"]) {
  163. $new_item["stateChange"] = sprintf("%s -> %s", IntegralState::getLogChangeName($item["last_state"]), IntegralState::getLogChangeName($item["new_state"], $item["last_state"]));
  164. } else {
  165. $new_item["stateChange"] = "";
  166. }
  167. break;
  168. case 10:
  169. if ($item["category"] == "enterprise_change") {
  170. switch ($item['step']) {
  171. case 100:
  172. $new_item["stepName"] = "<span class='label'>用户操作</span>";
  173. break;
  174. case 101:
  175. $new_item["stepName"] = "<span class='label label-primary'>审核</span>";
  176. break;
  177. case 102:
  178. $new_item["stepName"] = "<span class='label label-danger'>设置冻结</span>";
  179. break;
  180. case 103:
  181. $new_item["stepName"] = "<span class='label label-info'>重置密码</span>";
  182. break;
  183. }
  184. if ($category == "close_account") {
  185. $new_item["stateName"] = \app\common\state\MainState::getStateName($item['state']);
  186. } else {
  187. switch ($item['state']) {
  188. case 1:
  189. if ($item["stateChange"]) {
  190. $new_item["stateName"] = "<span class='label label-success'>待提交</span>";
  191. } else {
  192. $item['stateChange'] = "修改密码";
  193. }
  194. break;
  195. case 2:
  196. $new_item["stateName"] = "<span class='label label-success'>待审核</span>";
  197. break;
  198. case 3:
  199. $new_item["stateName"] = "<span class='label label-danger'>审核驳回</span>";
  200. break;
  201. case 4:
  202. $new_item["stateName"] = "<span class='label label-primary'>审核通过</span>";
  203. break;
  204. case 5:
  205. $new_item["stateName"] = "<span class='label label-warm'>重新提交</span>";
  206. break;
  207. case 6:
  208. $new_item["stateName"] = "<span class='label label-danger'>初审驳回</span>";
  209. break;
  210. case 7:
  211. $new_item["stateName"] = "<span class='label label-primary'>初审通过</span>";
  212. break;
  213. }
  214. }
  215. $new_item["stateChange"] = $item['stateChange'];
  216. } else {
  217. switch ($item['step']) {
  218. case 100:
  219. $new_item["stepName"] = "<span class='label'>用户操作</span>";
  220. break;
  221. case 101:
  222. $new_item["stepName"] = "<span class='label label-primary'>注册审核</span>";
  223. break;
  224. case 102:
  225. $new_item["stepName"] = "<span class='label label-danger'>设置冻结</span>";
  226. break;
  227. case 103:
  228. $new_item["stepName"] = "<span class='label label-info'>重置密码</span>";
  229. break;
  230. }
  231. switch ($item['state']) {
  232. case 1:
  233. $new_item["stateName"] = "<span class='label label-success'>待审核</span>";
  234. break;
  235. case 2:
  236. $new_item["stateName"] = "<span class='label label-danger'>审核驳回</span>";
  237. break;
  238. case 3:
  239. $new_item["stateName"] = "<span class='label label-primary'>审核通过</span>";
  240. break;
  241. case 4:
  242. $new_item["stateName"] = "<span class='label label-primary'>重新提交</span>";
  243. break;
  244. case 5:
  245. $new_item["stateName"] = "<span class='label label-danger'>初审驳回</span>";
  246. break;
  247. case 6:
  248. $new_item["stateName"] = "<span class='label label-primary'>初审通过</span>";
  249. break;
  250. default:
  251. break;
  252. }
  253. $new_item["stateChange"] = $item['stateChange'];
  254. }
  255. break;
  256. case 1:
  257. if ($item["step"] && $item["step"] != 3) {
  258. $new_item["stepName"] = \app\common\state\LivingAllowanceState::getStepName($item["step"]);
  259. } else {
  260. $new_item["stepName"] = DictApi::getCheckLogStepName($item["state"], $item["step"]);
  261. }
  262. if (in_array($item["state"], [TalentState::REVERIFY_FAIL, TalentState::ZX_FAIL, TalentState::ANNOUNCED_REVERIFY_FAIL, TalentState::PUBLISH_FAIL])) {
  263. $new_item["stateName"] = '<span class="label label-danger">审核不通过</span>';
  264. } else if (in_array($item["state"], [TalentState::BASE_VERIFY_PASS, TalentState::BASE_REVERIFY_PASS, TalentState::FST_VERIFY_PASS, TalentState::DEPT_VERIFY_PASS, TalentState::REVERIFY_PASS])) {
  265. if ($item["step"] == 3) {
  266. if ($item["new_state"] == TalentState::SCND_SUBMIT) {
  267. $new_item["stateName"] = '<span class="label label-danger">审核驳回</span>';
  268. } else if ($item["new_state"] == TalentState::DEPT_VERIFY_PASS) {
  269. $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
  270. } else {
  271. $new_item["stateName"] = '<span class="label label-success">待审核</span>';
  272. }
  273. if ($item["active"] === 0 && !in_array($item["companyId"], explode(",", $talent_condition["companyIds"]))) {
  274. $new_item["stateName"] = '<span class="label">已废弃</span>';
  275. }
  276. } else {
  277. $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
  278. }
  279. } else if (in_array($item["state"], [TalentState::BASE_REJECT, TalentState::BASE_REVERIFY_REJECT, TalentState::FST_VERIFY_REJECT, TalentState::DEPT_VERIFY_REJECT, TalentState::REVERIFY_REJECT])) {
  280. $new_item["stateName"] = '<span class="label label-danger">审核驳回</span>';
  281. } else if (in_array($item["state"], [TalentState::ZX_PASS, TalentState::ANNOUNCED, TalentState::ANNOUNCED_REVERIFY_PASS, TalentState::PUBLISH_PASS, TalentState::CERTIFICATED])) {
  282. $new_item["stateName"] = '<span class="label label-primary">审核通过</span>';
  283. } else if (in_array($item["state"], [TalentState::FST_SAVE, TalentState::SCND_SAVE])) {
  284. $new_item["stateName"] = '<span class="label">保存未提交</span>';
  285. } else if (in_array($item["state"], [TalentState::REVERIFY_CANCEL])) {
  286. $new_item["stateName"] = '<span class="label label-primary">撤销审核</span>';
  287. } else if (!$item["state"]) {
  288. if ($item["typeFileId"]) {
  289. $new_item["stateName"] = '<span class="label">添加附件</span>';
  290. }
  291. } else {
  292. if (($item["last_state"] == TalentState::BASE_REJECT && $item["state"] == TalentState::FST_SUBMIT) || ($item["last_state"] == TalentState::FST_VERIFY_REJECT && $item["state"] == TalentState::SCND_SUBMIT)) {
  293. $new_item["stateName"] = '<span class="label label-success">待审核(重新提交)</span>';
  294. } else {
  295. $new_item["stateName"] = '<span class="label label-success">待审核</span>';
  296. }
  297. }
  298. if ($item["step"] == 3) {
  299. $company = CompanyApi::getOne($item["companyId"]);
  300. if ($item["active"] == 0) {
  301. $new_item["description"] = "等待部门审核";
  302. $new_item["stateChange"] = str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["state"], $item["step"]));
  303. } else {
  304. $new_item["stateChange"] = sprintf("%s -> %s", str_replace("部门", '"' . $company["name"] . '"', DictApi::getTalentInfoStateName($item["state"], $item["step"])), DictApi::getTalentInfoStateName($item["new_state"], $item["step"]));
  305. }
  306. } else {
  307. if ($item["last_state"] && $item["new_state"]) {
  308. $new_item["stateChange"] = sprintf("%s -> %s", DictApi::getTalentInfoStateName($item["last_state"], $list[$key + 1]["step"]), DictApi::getTalentInfoStateName($item["new_state"], $list[$key - 1]["step"], $item["last_state"]));
  309. } else {
  310. $new_item["stateChange"] = $item["stateChange"] ?: "";
  311. }
  312. }
  313. break;
  314. }
  315. $new_item["createUser"] = $item["updateUser"] && strpos($item["updateUser"], "企业用户") === false ? $item["updateUser"] : $item["createUser"]; //$item["updateUser"] ?: $item["createUser"];
  316. if ($new_item["createUser"] != "用户") {
  317. list($name, $company) = explode("(", $new_item["createUser"]);
  318. $where = [];
  319. $where[] = ["name", "=", $name];
  320. $user = \app\admin\model\User::where($where)->find();
  321. if ($user) {
  322. $new_item["createUser"] = implode("(", [$user["account"], $company]);
  323. }
  324. }
  325. $new_item["createTime"] = $item["updateTime"] ?: $item["createTime"];
  326. $new_list[] = $new_item;
  327. }
  328. if ($type == ProjectState::TALENT) {
  329. if ($talentInfo["oldId"]) {
  330. $where = [];
  331. $where[] = ["mainId", "=", $talentInfo["oldId"]];
  332. $where[] = ["type", "=", ProjectState::TALENT];
  333. $before_list = Db::table("un_talent_checklog")->where($where)->order("createTime desc")->select();
  334. foreach ($before_list as $before_item) {
  335. $new_list[] = [
  336. "stepName" => DictApi::getOldStepNameByStep($before_item["step"]),
  337. "stateName" => DictApi::getOldStateNameByState($before_item["state"]),
  338. "stateChange" => $before_item["stateChange"],
  339. "description" => $before_item["description"],
  340. "createUser" => $before_item["createUser"],
  341. "createTime" => $before_item["createTime"]
  342. ];
  343. }
  344. }
  345. }
  346. if ($type == ProjectState::LEVELCHANGE) {
  347. $where = [];
  348. $where[] = ["mainId", "=", $mainId];
  349. $where[] = ["type", "=", ProjectState::LEVELCHANGE];
  350. $before_list = Db::table("un_talent_checklog")->where($where)->order("createTime desc")->select();
  351. foreach ($before_list as $before_item) {
  352. $new_list[] = [
  353. "stepName" => DictApi::getOldStepNameByStep($before_item["step"]),
  354. "stateName" => DictApi::getOldStateNameByState($before_item["state"]),
  355. "stateChange" => $before_item["stateChange"],
  356. "description" => $before_item["description"],
  357. "createUser" => $before_item["createUser"],
  358. "createTime" => $before_item["createTime"]
  359. ];
  360. }
  361. }
  362. return json(["rows" => $new_list]);
  363. }
  364. public function test(){
  365. $str = "Hello World!";
  366. //$encrypt = openssl_encrypt(json_encode($str),'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  367. $json = [
  368. 'code' => 0,
  369. 'msg' => '字典值不能为空',
  370. ];
  371. $encrypt = $this->curlPost("http://report.com/common/data/getDict",[]);
  372. $decrypt = openssl_decrypt($encrypt,'sm4-cbc','3eh2rxdtkULT2zpkDdRiRGH8PL5J0LsZ',OPENSSL_RAW_DATA,'jKihG4wF622ocb8z');
  373. //$decrypt = $this->curlPost("http://sm4.jinjianghc.com/decode.php",['data' => $encrypt]);
  374. dump($decrypt);
  375. }
  376. private function curlPost($url, $postFields) {
  377. $ch = curl_init();
  378. curl_setopt($ch, CURLOPT_URL, $url);
  379. curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); //若果报错 name lookup timed out 报错时添加这一行代码
  380. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  381. curl_setopt($ch, CURLOPT_POST, 1);
  382. curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
  383. curl_setopt($ch, CURLOPT_TIMEOUT, 60);
  384. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  385. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  386. $ret = curl_exec($ch);
  387. if (false == $ret) {
  388. $result = curl_error($ch);
  389. } else {
  390. $rsp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  391. if (200 != $rsp) {
  392. $result = "请求状态 " . $rsp . " " . curl_error($ch);
  393. } else {
  394. $result = $ret;
  395. }
  396. }
  397. curl_close($ch);
  398. return $result;
  399. }
  400. }