LoginController.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537
  1. package com.huimv.receive.controller;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import cn.hutool.http.HttpUtil;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.huimv.receive.common.exception.ExceptionEnum;
  8. import com.huimv.receive.common.exception.MiException;
  9. import com.huimv.receive.common.token.TokenSign;
  10. import com.huimv.receive.common.utils.*;
  11. import com.huimv.receive.entity.BillGate;
  12. import com.huimv.receive.entity.SysAccountMultilevel;
  13. import com.huimv.receive.entity.dto.WeCahtVo;
  14. import com.huimv.receive.mapper.BillGateMapper;
  15. import com.huimv.receive.service.IBaseJobService;
  16. import com.huimv.receive.service.ILoginService;
  17. import com.huimv.receive.service.ISysAccountMultilevelService;
  18. import com.huimv.receive.session.AccessToken;
  19. import com.huimv.receive.timer.test.TestWeight;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.data.redis.core.RedisTemplate;
  22. import org.springframework.http.ResponseEntity;
  23. import org.springframework.web.bind.annotation.*;
  24. import org.springframework.web.client.RestTemplate;
  25. import org.springframework.web.multipart.MultipartFile;
  26. import javax.imageio.ImageIO;
  27. import javax.servlet.http.HttpServletRequest;
  28. import javax.servlet.http.HttpServletResponse;
  29. import java.awt.image.BufferedImage;
  30. import java.io.File;
  31. import java.io.IOException;
  32. import java.util.Date;
  33. import java.util.HashMap;
  34. import java.util.List;
  35. import java.util.Map;
  36. import java.util.concurrent.TimeUnit;
  37. @RestController
  38. @RequestMapping(value = "/admin/my")
  39. @CrossOrigin
  40. public class LoginController {
  41. @Autowired
  42. ILoginService iLoginService;
  43. @Autowired
  44. private ISysAccountMultilevelService accountMultilevelService;
  45. @Autowired
  46. private IBaseJobService baseJobService;
  47. @Autowired
  48. private UploadImage uploadImage;
  49. @Autowired
  50. private BillGateMapper billGateMapper;
  51. @PostMapping("/saveDiBang")
  52. public String logout(@RequestBody Map<String, List<TestWeight>> map ) {
  53. List<TestWeight> dibang = map.get("dibang");
  54. for (TestWeight testWeight : dibang) {
  55. System.out.println(testWeight);
  56. BillGate billGate = billGateMapper.selectOne(new QueryWrapper<BillGate>().eq("stdno",testWeight.getFStdNo()));
  57. if (ObjectUtil.isEmpty(billGate)) {
  58. List<BillGate> billGate1 = billGateMapper.selectList(new QueryWrapper<BillGate>().eq("car_num", testWeight.getFCarNo())
  59. .between("check_date", testWeight.getBeginTime(), testWeight.getEndTime()).eq("check_location",testWeight.getDeviceCode()));
  60. if (ObjectUtil.isNotEmpty(billGate1)) {
  61. billGate = billGate1.get(0);
  62. billGate.setGross(testWeight.getGross() + "");
  63. billGate.setTare(testWeight.getMoney() + "");
  64. billGate.setNet(testWeight.getNet() + "");
  65. billGate.setStdno(testWeight.getFStdNo());
  66. billGateMapper.insert(billGate);
  67. }
  68. }
  69. }
  70. return "";
  71. }
  72. @RequestMapping("/logout")
  73. public Result logout(@RequestParam(name = "accountName", required = true) String accountName, @RequestParam(name = "password", required = true) String password) {
  74. return iLoginService.logout();
  75. }
  76. @PostMapping("/test")
  77. public Result test(@RequestParam(name = "picture1")MultipartFile picture1 ) throws IOException {
  78. uploadImage.getVideoCom(picture1);
  79. return iLoginService.logout();
  80. }
  81. @Autowired
  82. private RedisTemplate<String, String> redisTemplate;
  83. @GetMapping("/send")
  84. public void createImg(HttpServletRequest request, HttpServletResponse response) {
  85. try {
  86. //设置响应类型,告诉浏览器输出的内容为图片
  87. response.setContentType("image/jpeg");
  88. //设置响应头信息,告诉浏览器不要缓存此内容
  89. response.setHeader("Pragma", "No-cache");
  90. response.setHeader("Cache-Control", "no-cache");
  91. response.setDateHeader("Expire", 0);
  92. VerifyUtil randomValidateCode = new VerifyUtil();
  93. //输出验证码图片
  94. String code = randomValidateCode.getRandcode(request, response);
  95. System.out.println(code);
  96. //将生成的随机验证码存放到redis中
  97. String remoteHost = request.getRemoteHost();
  98. redisTemplate.opsForValue().set(remoteHost, code, 300, TimeUnit.SECONDS);
  99. } catch (Exception e) {
  100. System.out.println("获取验证码异常:" + e);
  101. throw new MiException(ExceptionEnum.VERIFCATION_FAID);
  102. }
  103. }
  104. //登录-多牧场
  105. @PostMapping(value = "/loginMultilevel")
  106. public Result loginMultilevel(HttpServletRequest req, @RequestBody Map<String, String> map) {
  107. String accountName = map.get("accountName");
  108. String password = map.get("password");
  109. // String code = map.get("code");
  110. String remoteHost = req.getRemoteHost();
  111. // String redisCode = redisTemplate.opsForValue().get(remoteHost);
  112. // if (redisCode == null) {
  113. // return new Result(10005,"验证码过期,点击刷新",false);
  114. // }
  115. // if (!redisCode.equals(code.toUpperCase())) {
  116. // return new Result(10006,"验证码错误,登录失败",false);
  117. // }
  118. // 未对密码加密
  119. Result result = iLoginService.loginMultilevel(accountName, password);
  120. if (result.getCode() == 10000) {
  121. SysAccountMultilevel accountEntity = (SysAccountMultilevel) result.getData();
  122. Integer id = accountEntity.getId();
  123. IpTools.getRemoteHost(req);
  124. AccessToken accessToken = new AccessToken();
  125. accessToken.setCreated(new Date());
  126. accessToken.setAccountName(accountName);
  127. accessToken.setFarmId(accountEntity.getFarmIds());
  128. String token = TokenSign.sign(accountName, id, accountEntity.getLastFarmId().toString(), null, null);
  129. accessToken.setToken(token);
  130. accessToken.setId(id);
  131. accessToken.setLoginIp(remoteHost);
  132. accessToken.setType(accountEntity.getType());
  133. Integer lastFarmId = accountEntity.getLastFarmId();
  134. if (ObjectUtil.isEmpty(lastFarmId)) {
  135. lastFarmId = Integer.parseInt(accountEntity.getFarmIds().split(",")[0]);
  136. }
  137. accessToken.setLastFarmId(lastFarmId);
  138. accessToken.setUserName(accountEntity.getUserName());
  139. return new Result(ResultCode.SUCCESS, accessToken);
  140. }
  141. return result;
  142. }
  143. @PostMapping(value = "/switchUserType")
  144. public Result switchUserType(HttpServletRequest req, @RequestBody Map<String, String> map) {
  145. Integer userId = TokenSign.getMemberIdByJwtToken(req);
  146. String type = map.get("type");
  147. String remoteHost = req.getRemoteHost();
  148. // 未对密码加密
  149. SysAccountMultilevel accountEntity = accountMultilevelService.getById(userId);
  150. accountEntity.setType(Integer.parseInt(type));
  151. accountMultilevelService.updateById(accountEntity);
  152. accountEntity.setJobName(baseJobService.getById(type).getJobName());
  153. Integer id = accountEntity.getId();
  154. IpTools.getRemoteHost(req);
  155. AccessToken accessToken = new AccessToken();
  156. accessToken.setCreated(new Date());
  157. accessToken.setAccountName(accountEntity.getAccount());
  158. accessToken.setFarmId(accountEntity.getFarmIds());
  159. String token = TokenSign.sign(accountEntity.getUserName(), id, accountEntity.getFarmIds(), accountEntity.getWorkLocationType()+"", accountEntity.getType());
  160. accessToken.setToken(token);
  161. accessToken.setId(id);
  162. accessToken.setLoginIp(remoteHost);
  163. accessToken.setType(accountEntity.getType());
  164. Integer lastFarmId = accountEntity.getLastFarmId();
  165. if (ObjectUtil.isEmpty(lastFarmId)) {
  166. lastFarmId = Integer.parseInt(accountEntity.getFarmIds().split(",")[0]);
  167. }
  168. accessToken.setLastFarmId(lastFarmId);
  169. accessToken.setUserName(accountEntity.getUserName());
  170. accessToken.setSysAccountMultilevel(accountEntity);
  171. return new Result(ResultCode.SUCCESS, accessToken);
  172. }
  173. //测试-token
  174. @PostMapping(value = "/getToken")
  175. public String getToken(HttpServletRequest req) {
  176. String token = TokenSign.sign("superadmin", 1, null, null, null);
  177. return token;
  178. }
  179. @PostMapping(value = "/loginMultilevelClent")
  180. public Result loginMultilevelClent(HttpServletRequest req, @RequestBody Map<String, String> map) {
  181. String accountName = map.get("accountName");
  182. String password = map.get("password");
  183. // String code = map.get("code");
  184. String remoteHost = req.getRemoteHost();
  185. // String redisCode = redisTemplate.opsForValue().get(remoteHost);
  186. // if (redisCode == null) {
  187. // return new Result(10005,"验证码过期,点击刷新",false);
  188. // }
  189. // if (!redisCode.equals(code.toUpperCase())) {
  190. // return new Result(10006,"验证码错误,登录失败",false);
  191. // }
  192. // 未对密码加密
  193. Result result = iLoginService.loginMultilevelClient(accountName, password);
  194. if (result.getCode() == 10000) {
  195. SysAccountMultilevel accountEntity = (SysAccountMultilevel) result.getData();
  196. Integer id = accountEntity.getId();
  197. IpTools.getRemoteHost(req);
  198. AccessToken accessToken = new AccessToken();
  199. accessToken.setCreated(new Date());
  200. accessToken.setAccountName(accountName);
  201. accessToken.setFarmId(accountEntity.getFarmIds());
  202. Integer lastFarmId1 = accountEntity.getLastFarmId();
  203. if (ObjectUtil.isEmpty(lastFarmId1)){
  204. lastFarmId1 = accountEntity.getFarmId();
  205. }
  206. String token = TokenSign.sign(accountName, id,lastFarmId1.toString() , accountEntity.getWorkLocationType(),accountEntity.getType());
  207. accessToken.setToken(token);
  208. accessToken.setId(id);
  209. accessToken.setLoginIp(remoteHost);
  210. accessToken.setType(accountEntity.getType());
  211. Integer lastFarmId = accountEntity.getLastFarmId();
  212. if (ObjectUtil.isEmpty(lastFarmId)) {
  213. lastFarmId = Integer.parseInt(accountEntity.getFarmIds().split(",")[0]);
  214. }
  215. accessToken.setLastFarmId(lastFarmId);
  216. accessToken.setUserName(accountEntity.getUserName());
  217. return new Result(ResultCode.SUCCESS, accessToken);
  218. }
  219. return result;
  220. }
  221. @RequestMapping("/logoutClient")
  222. public Result logoutClient(HttpServletRequest req, @RequestBody Map<String, String> map) {
  223. String accountName = map.get("accountName");
  224. String password = map.get("password");
  225. String remoteHost = req.getRemoteHost();
  226. Result result = iLoginService.loginMultilevel(accountName, password);
  227. if (result.getCode() == 10000) {
  228. SysAccountMultilevel data = (SysAccountMultilevel) result.getData();
  229. AccessToken accessToken = new AccessToken();
  230. accessToken.setSysAccountMultilevel(data);
  231. accessToken.setAccountName(accountName);
  232. accessToken.setUserName(data.getUserName());
  233. accessToken.setFarmId(data.getFarmIds());
  234. accessToken.setType(data.getType());
  235. accessToken.setId(data.getId());
  236. String token = TokenSign.sign(data.getUserName(), data.getId(), data.getLastFarmId().toString(), data.getWorkLocationType()+"", data.getType());
  237. accessToken.setToken(token);
  238. Integer lastFarmId = data.getLastFarmId();
  239. if (ObjectUtil.isEmpty(lastFarmId)) {
  240. lastFarmId = Integer.parseInt(data.getFarmIds().split(",")[0]);
  241. }
  242. accessToken.setLastFarmId(lastFarmId);
  243. accessToken.setLoginIp(remoteHost);
  244. return new Result(ResultCode.SUCCESS, accessToken);
  245. } else {
  246. return result;
  247. }
  248. }
  249. /* @RequestMapping("/logoutWeChat")
  250. public Result logoutWeChat(HttpServletRequest req, @RequestBody Map<String, String> map) {
  251. String remark = map.get("remark");
  252. QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
  253. queryWrapper.eq("account", remark);
  254. SysAccountMultilevel one = accountMultilevelService.getOne(queryWrapper);
  255. AccessToken accessToken = new AccessToken();
  256. if (ObjectUtil.isEmpty(one)) {
  257. SysAccountMultilevel accountMultilevel = new SysAccountMultilevel();
  258. accountMultilevel.setAccount(remark);
  259. accountMultilevel.setFarmIds("25");
  260. accountMultilevel.setColor("");
  261. accountMultilevel.setMode(true);
  262. accountMultilevel.setUserName("访客");
  263. accountMultilevel.setType(7);
  264. accountMultilevelService.save(accountMultilevel);
  265. QueryWrapper<SysAccountMultilevel> queryWrapper1 = new QueryWrapper<>();
  266. queryWrapper1.eq("account", remark);
  267. SysAccountMultilevel one1 = accountMultilevelService.getOne(queryWrapper1);
  268. accessToken.setAccountName(remark);
  269. accessToken.setUserName("访客");
  270. accessToken.setFarmId("25");
  271. accessToken.setType(7);
  272. accessToken.setId(one1.getId());
  273. String token = TokenSign.sign(remark, one1.getId(), one1.getFarmIds(), null,7);
  274. accessToken.setToken(token);
  275. } else {
  276. accessToken.setAccountName(one.getUserName());
  277. accessToken.setUserName("访客");
  278. accessToken.setFarmId("25");
  279. accessToken.setType(7);
  280. accessToken.setId(one.getId());
  281. String token = TokenSign.sign(remark, one.getId(), one.getFarmIds(), one.getWorkLocationId(),7);
  282. accessToken.setToken(token);
  283. }
  284. return new Result(ResultCode.SUCCESS,accessToken);
  285. * String accountName = map.get("accountName");
  286. String password = map.get("password");
  287. String remoteHost = req.getRemoteHost();
  288. Result result = iLoginService.loginMultilevel(accountName, password);
  289. if (result.getCode() == 10000) {
  290. SysAccountMultilevel data = (SysAccountMultilevel) result.getData();
  291. AccessToken accessToken = new AccessToken();
  292. accessToken.setAccountName(accountName);
  293. accessToken.setUserName(data.getUserName());
  294. accessToken.setFarmId(data.getFarmIds());
  295. accessToken.setType(data.getType());
  296. accessToken.setId(data.getId());
  297. String token = TokenSign.sign(accountName,data.getId(),data.getFarmIds(),data.getWorkLocationId());
  298. accessToken.setToken(token);
  299. Integer lastFarmId = data.getLastFarmId();
  300. if (ObjectUtil.isEmpty(lastFarmId)){
  301. lastFarmId = Integer.parseInt(data.getFarmIds().split(",")[0]);
  302. }
  303. accessToken.setLastFarmId(lastFarmId);
  304. accessToken.setLoginIp(remoteHost);
  305. return new Result(ResultCode.SUCCESS,accessToken);
  306. } else {
  307. return result;
  308. }*//*
  309. }*/
  310. @GetMapping("/logoutWeChat")
  311. public Result logoutWeChat(HttpServletRequest req, @RequestParam String jsCode,@RequestParam String phone) {
  312. String remoteHost = req.getRemoteHost();
  313. Map<String, Object> paramsMap = new HashMap<>();
  314. paramsMap.put("appid", "wx221c66f51278c05f");
  315. paramsMap.put("secret", "b553cf2e2de240ac93db6b6c8d135f55");
  316. paramsMap.put("js_code", jsCode);
  317. paramsMap.put("grant_type", "authorization_code");
  318. String result = HttpUtil.get("https://api.weixin.qq.com/sns/jscode2session", paramsMap);
  319. System.out.println(result);
  320. JSONObject jsonObject = JSON.parseObject(result);
  321. System.out.println(jsonObject);
  322. String openid = (String) jsonObject.get("openid");
  323. String sessionKey = (String) jsonObject.get("session_key");
  324. System.out.println("拿到了openid" + openid);
  325. System.out.println("拿到了sessionKey" + sessionKey);
  326. QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
  327. queryWrapper.eq("wechat_id", openid);
  328. SysAccountMultilevel data = accountMultilevelService.getOne(queryWrapper);
  329. WeCahtVo weCahtVo = new WeCahtVo();
  330. weCahtVo.setOpenId(openid);
  331. weCahtVo.setSessionKey(sessionKey);
  332. if (ObjectUtil.isEmpty(data)) {
  333. QueryWrapper<SysAccountMultilevel> queryWrapper1 = new QueryWrapper<>();
  334. queryWrapper1.eq("phone", phone);
  335. SysAccountMultilevel data1 = accountMultilevelService.getOne(queryWrapper1);
  336. if (ObjectUtil.isEmpty(data1)) {
  337. return new Result(ResultCode.FAIL, weCahtVo);
  338. } else {
  339. if ("".equals(data1.getWechatId()) || null == data1.getWechatId()) {
  340. //手机号已经代注册
  341. data1.setWechatId(openid);
  342. accountMultilevelService.updateById(data1);
  343. AccessToken accessToken = new AccessToken();
  344. if (data1.getType() == 7) {
  345. accessToken.setIsAdmin(0);
  346. } else {
  347. accessToken.setIsAdmin(1);
  348. }
  349. data1.setType(7);
  350. accessToken.setSysAccountMultilevel(data1);
  351. accessToken.setAccountName(data1.getAccount());
  352. accessToken.setUserName(data1.getUserName());
  353. accessToken.setFarmId(data1.getFarmIds());
  354. accessToken.setType(7);
  355. accessToken.setId(data1.getId());
  356. String token = TokenSign.sign(data1.getUserName(), data1.getId(), data1.getLastFarmId().toString(), data1.getWorkLocationType()+"", 7);
  357. accessToken.setToken(token);
  358. Integer lastFarmId = data1.getLastFarmId();
  359. if (ObjectUtil.isEmpty(lastFarmId)) {
  360. lastFarmId = Integer.parseInt(data1.getFarmIds().split(",")[0]);
  361. }
  362. accessToken.setLastFarmId(lastFarmId);
  363. accessToken.setLoginIp(remoteHost);
  364. return new Result(ResultCode.SUCCESS, accessToken);
  365. } else {
  366. //返回错误,输入的手机号已经进行过微信登录
  367. return new Result(ResultCode.UNAUTHENTICATED, "输入的手机号已被他人进行过微信登录!");
  368. }
  369. }
  370. } else {
  371. if (phone.equals(data.getPhone())) {
  372. AccessToken accessToken = new AccessToken();
  373. if (data.getType() == 7) {
  374. accessToken.setIsAdmin(0);
  375. } else {
  376. accessToken.setIsAdmin(1);
  377. }
  378. data.setType(7);
  379. accessToken.setSysAccountMultilevel(data);
  380. accessToken.setAccountName(data.getAccount());
  381. accessToken.setUserName(data.getUserName());
  382. accessToken.setFarmId(data.getFarmIds());
  383. accessToken.setType(7);
  384. accessToken.setId(data.getId());
  385. String token = TokenSign.sign(data.getUserName(), data.getId(), data.getLastFarmId().toString(), data.getWorkLocationType()+"", 7);
  386. accessToken.setToken(token);
  387. Integer lastFarmId = data.getLastFarmId();
  388. if (ObjectUtil.isEmpty(lastFarmId)) {
  389. lastFarmId = Integer.parseInt(data.getFarmIds().split(",")[0]);
  390. }
  391. accessToken.setLastFarmId(lastFarmId);
  392. accessToken.setLoginIp(remoteHost);
  393. return new Result(ResultCode.SUCCESS, accessToken);
  394. }else {
  395. return new Result(ResultCode.UNAUTHENTICATED, "输入的手机号已被他人进行过微信登录!");
  396. }
  397. }
  398. }
  399. @GetMapping("/logWeChatGetPhone")
  400. public Result logWeChatGetPhone(HttpServletRequest req, @RequestParam String jsCode) {
  401. String access_token ="";
  402. if ( !redisTemplate.hasKey("weChatGetPhone") || redisTemplate.getExpire("weChatGetPhone") ==null || redisTemplate.getExpire("weChatGetPhone") <=0){
  403. String result = HttpUtil.get("https://api.weixin.qq.com/cgi-bin/token?appid=wx221c66f51278c05f&secret=b553cf2e2de240ac93db6b6c8d135f55&grant_type=client_credential");
  404. System.out.println(result);
  405. JSONObject jsonObject = JSON.parseObject(result);
  406. access_token = (String) jsonObject.get("access_token");
  407. redisTemplate.opsForValue().set("weChatGetPhone",access_token);
  408. redisTemplate.expire("weChatGetPhone",7200,TimeUnit.SECONDS);
  409. }else {
  410. access_token = redisTemplate.opsForValue().get("weChatGetPhone");
  411. }
  412. RestTemplate restTemplate = new RestTemplate();
  413. Map<String, Object> paramsMap = new HashMap<>();
  414. paramsMap.put("code", jsCode);
  415. ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + access_token, paramsMap, String.class);
  416. System.out.println(stringResponseEntity.getBody());
  417. return new Result(ResultCode.SUCCESS,JSON.parseObject(stringResponseEntity.getBody()));
  418. }
  419. @PostMapping("/register2")
  420. public String register2( @RequestParam(value = "video", required = false) MultipartFile video) throws IOException {
  421. return uploadImage.getVideoCom(video);
  422. }
  423. @PostMapping("/register")
  424. public Result addAdmission(HttpServletRequest req, @RequestParam("userName") String userName,
  425. @RequestParam("phone") String phone,
  426. @RequestParam("workName") String workName,
  427. @RequestParam("papersType") String papersType,
  428. @RequestParam("papersCode") String papersCode,
  429. @RequestParam(value = "imgUrl", required = false) MultipartFile imgUrl,
  430. @RequestParam("openId") String openId) throws IOException {
  431. String remoteHost = req.getRemoteHost();
  432. MultipartFile multipartFile = ImageSizeUtil.byte2Base64StringFun(imgUrl);
  433. boolean result = uploadImage.checkFileSize(multipartFile.getSize(), 200, "K");
  434. if (!result) {
  435. return new Result(10001, "上传个人照片太大,请重新上传", false);
  436. }
  437. QueryWrapper<SysAccountMultilevel> queryWrapper = new QueryWrapper<>();
  438. queryWrapper.eq("type",7).and(i->i.eq("phone", phone).or().eq("papers_code", papersCode));
  439. if (ObjectUtil.isNotEmpty(accountMultilevelService.getOne(queryWrapper))) {
  440. return new Result(10001, "该手机号或身份证号已被使用!", false);
  441. }
  442. if (!PhoneNumberValidator.isValidPhoneNumber(phone)) {
  443. return new Result(10001, "手机号格式错误!", false);
  444. }
  445. if (papersType.equals("0")) {
  446. // if (!IDCardValidator.isValidIDCard(papersCode)) {
  447. // return new Result(10001, "身份证号格式错误!", false);
  448. // }
  449. }
  450. SysAccountMultilevel sysAccountMultilevel = new SysAccountMultilevel();
  451. sysAccountMultilevel.setUserName(userName);
  452. sysAccountMultilevel.setPapersCode(papersCode);
  453. sysAccountMultilevel.setPhone(phone);
  454. sysAccountMultilevel.setAccount(phone);
  455. sysAccountMultilevel.setPid(0);
  456. sysAccountMultilevel.setPids("0");
  457. sysAccountMultilevel.setPassword("123456");
  458. sysAccountMultilevel.setWorkName(workName);
  459. sysAccountMultilevel.setAccountStatus(1);
  460. sysAccountMultilevel.setFarmIds("25");
  461. sysAccountMultilevel.setLastFarmId(25);
  462. sysAccountMultilevel.setPapersType(papersType);
  463. sysAccountMultilevel.setWechatId(openId);
  464. sysAccountMultilevel.setType(7);
  465. String imageCom = uploadImage.getImageCom(multipartFile);
  466. if (imageCom.equals("上传失败")) {
  467. return new Result(10001, "图片上传失败!", false);
  468. }
  469. sysAccountMultilevel.setImgUrl(imageCom);
  470. accountMultilevelService.save(sysAccountMultilevel);
  471. AccessToken accessToken = new AccessToken();
  472. accessToken.setSysAccountMultilevel(sysAccountMultilevel);
  473. accessToken.setAccountName(sysAccountMultilevel.getAccount());
  474. accessToken.setUserName(sysAccountMultilevel.getUserName());
  475. accessToken.setFarmId(sysAccountMultilevel.getFarmIds());
  476. accessToken.setType(sysAccountMultilevel.getType());
  477. accessToken.setId(sysAccountMultilevel.getId());
  478. String token = TokenSign.sign(sysAccountMultilevel.getUserName(), sysAccountMultilevel.getId(), sysAccountMultilevel.getLastFarmId().toString(), sysAccountMultilevel.getWorkLocationType()+"", sysAccountMultilevel.getType());
  479. accessToken.setToken(token);
  480. Integer lastFarmId = sysAccountMultilevel.getLastFarmId();
  481. if (ObjectUtil.isEmpty(lastFarmId)) {
  482. lastFarmId = Integer.parseInt(sysAccountMultilevel.getFarmIds().split(",")[0]);
  483. }
  484. accessToken.setLastFarmId(lastFarmId);
  485. accessToken.setLoginIp(remoteHost);
  486. return new Result(ResultCode.SUCCESS, accessToken);
  487. }
  488. }