SysUserController.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. package com.huimv.farm.damsubsidy.controller;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.lang.UUID;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
  8. import com.huimv.farm.damsubsidy.common.token.TokenSign;
  9. import com.huimv.farm.damsubsidy.common.utils.Result;
  10. import com.huimv.farm.damsubsidy.common.utils.ResultCode;
  11. import com.huimv.farm.damsubsidy.common.utils.UploadImage;
  12. import com.huimv.farm.damsubsidy.config.CharacterEncodingFilter;
  13. import com.huimv.farm.damsubsidy.entity.AccessToken;
  14. import com.huimv.farm.damsubsidy.entity.SysUser;
  15. import com.huimv.farm.damsubsidy.service.ISysUserService;
  16. import org.apache.poi.util.StringUtil;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.util.StringUtils;
  19. import org.springframework.web.bind.annotation.*;
  20. import org.springframework.web.multipart.MultipartFile;
  21. import javax.servlet.http.HttpServletRequest;
  22. import java.io.BufferedInputStream;
  23. import java.io.ByteArrayOutputStream;
  24. import java.io.InputStream;
  25. import java.io.UnsupportedEncodingException;
  26. import java.util.Date;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. import java.util.Map;
  30. /**
  31. * <p>
  32. * 前端控制器
  33. * </p>
  34. *
  35. * @author author
  36. * @since 2023-04-26
  37. */
  38. @RestController
  39. @RequestMapping("/sys-user")
  40. @CrossOrigin
  41. public class SysUserController {
  42. @Autowired
  43. private ISysUserService iSysUserService;
  44. @PostMapping(value = "/login")
  45. public Result loginMultilevel(HttpServletRequest req, @RequestBody Map<String, String> map) {
  46. String remoteHost = req.getRemoteHost();
  47. Result result = iSysUserService.loginMultilevel(req, map);
  48. AccessToken accessToken = new AccessToken();
  49. if (result.getCode() == 10000) {
  50. SysUser user = (SysUser) result.getData();
  51. if (user.getUserType() == 4 && user.getPermit() == null) {
  52. accessToken.setPermit(1);
  53. } else {
  54. accessToken.setPermit(0);//不需要
  55. }
  56. accessToken.setAccountName(user.getUserName());
  57. accessToken.setCreated(new Date());
  58. accessToken.setType(user.getUserType());
  59. accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId()));
  60. accessToken.setCode(result.getCode());
  61. accessToken.setMessage(result.getMessage());
  62. accessToken.setUserId(user.getId());
  63. accessToken.setPhone(user.getPhone());
  64. accessToken.setLoginIp(remoteHost);
  65. accessToken.setUser(user);
  66. }
  67. if (result.getCode() == 10004) {
  68. accessToken.setAccountName("游客");
  69. accessToken.setCreated(new Date());
  70. accessToken.setToken(TokenSign.sign("游客", map.get("phone"),null));
  71. accessToken.setLoginIp("");
  72. accessToken.setCode(result.getCode());
  73. accessToken.setMessage(result.getMessage());
  74. accessToken.setLoginIp(remoteHost);
  75. }
  76. if (result.getCode() == 10001) {
  77. return iSysUserService.loginMultilevel(req, map);
  78. }
  79. return new Result(ResultCode.SUCCESS, accessToken);
  80. }
  81. //TODO
  82. @PostMapping(value = "/loginClient")
  83. public Result loginClient(HttpServletRequest req, @RequestBody Map<String, String> map) {
  84. String accountName = map.get("accountName");
  85. String password = map.get("password");
  86. String loginType = map.get("loginType");
  87. String remoteHost = req.getRemoteHost();
  88. //手机登录
  89. if ("1".equals(loginType)){
  90. String phone = map.get("phone");
  91. if (StringUtils.isEmpty(phone)){
  92. return new Result(ResultCode.FAIL, "请输入手机号");
  93. }
  94. Result result = iSysUserService.loginMultilevel(req, map);
  95. if ( result.getCode() == 10000) {
  96. SysUser sysUser = (SysUser) result.getData();
  97. if (sysUser.getUserType() != 0 && sysUser.getUserType() != 4){
  98. return new Result(ResultCode.FAIL, "该用户未授权");
  99. }
  100. }
  101. return result;
  102. }
  103. if ("2".equals(loginType)){
  104. // 未对密码加密
  105. Result result = iSysUserService.loginMultilevelClient(accountName, password);
  106. if(result.getCode() == 10000){
  107. SysUser accountEntity = (SysUser) result.getData();
  108. Long id = accountEntity.getId();
  109. AccessToken accessToken = new AccessToken();
  110. accessToken.setCreated(new Date());
  111. accessToken.setAccountName(accountName);
  112. accessToken.setCode(result.getCode());
  113. accessToken.setMessage(result.getMessage());
  114. String token = TokenSign.sign(accountName,accountEntity.getPhone(),accountEntity.getId());
  115. accessToken.setToken(token);
  116. accessToken.setUserName(accountEntity.getUserName());
  117. accessToken.setUserId(accountEntity.getId());
  118. accessToken.setPhone(accountEntity.getPhone());
  119. accessToken.setLoginIp(remoteHost);
  120. return new Result(ResultCode.SUCCESS,accessToken);
  121. }
  122. return result;
  123. }
  124. return new Result(ResultCode.FAIL, "登录方式有误");
  125. }
  126. @PostMapping(value = "/add")
  127. public Result add(HttpServletRequest req,@RequestParam("idCordFrontUrl") MultipartFile idCordFrontUrl,
  128. @RequestParam("idCordBackUrl") MultipartFile idCordBackUrl,
  129. @RequestParam("type") String type,
  130. @RequestParam("userName") String userName,
  131. @RequestParam("idCord") String idCord,
  132. @RequestParam("phone") String phone,
  133. @RequestParam("farmName") String farmName,
  134. @RequestParam("veterId") String veterId,
  135. @RequestParam("detailedAdressCode") String detailedAdressCode,
  136. @RequestParam("permitImg") MultipartFile permitImg) throws UnsupportedEncodingException {
  137. req.setCharacterEncoding("UTF-8");
  138. System.out.println(userName);
  139. String imgname = "成功";
  140. String originalFilename = idCordFrontUrl.getOriginalFilename();
  141. String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
  142. String path = DateUtil.format(new Date(), "yyyy-MM");
  143. try {
  144. InputStream inputStream = idCordFrontUrl.getInputStream();
  145. BufferedInputStream in = new BufferedInputStream(inputStream);
  146. ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
  147. byte[] temp = new byte[1024];
  148. int size = 0;
  149. while ((size = in.read(temp)) != -1) {
  150. out.write(temp, 0, size);
  151. }
  152. in.close();
  153. byte[] content = out.toByteArray();
  154. imgname = UUID.randomUUID() + "." + filenameExtension;
  155. UploadImage.sshSftp(content, path, imgname);
  156. } catch (Exception e) {
  157. e.printStackTrace();
  158. }
  159. String content = "https://img.ifarmcloud.com/images/" + path + "/" + imgname;
  160. String imgname2 = "成功";
  161. String originalFilename2 = idCordBackUrl.getOriginalFilename();
  162. String filenameExtension2 = StringUtils.getFilenameExtension(originalFilename2);
  163. String path2 = DateUtil.format(new Date(), "yyyy-MM");
  164. try {
  165. InputStream inputStream = idCordBackUrl.getInputStream();
  166. BufferedInputStream in = new BufferedInputStream(inputStream);
  167. ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
  168. byte[] temp = new byte[1024];
  169. int size = 0;
  170. while ((size = in.read(temp)) != -1) {
  171. out.write(temp, 0, size);
  172. }
  173. in.close();
  174. byte[] content2 = out.toByteArray();
  175. imgname2 = UUID.randomUUID() + "." + filenameExtension2;
  176. UploadImage.sshSftp(content2, path2, imgname2);
  177. } catch (Exception e) {
  178. e.printStackTrace();
  179. }
  180. String content2 = "https://img.ifarmcloud.com/images/" + path2 + "/" + imgname2;
  181. // String imgname3 = "成功";
  182. // String originalFilename3 = permitImg.getOriginalFilename();
  183. // String filenameExtension3 = StringUtils.getFilenameExtension(originalFilename3);
  184. // String path3 = DateUtil.format(new Date(), "yyyy-MM");
  185. // try {
  186. // InputStream inputStream = permitImg.getInputStream();
  187. // BufferedInputStream in = new BufferedInputStream(inputStream);
  188. // ByteArrayOutputStream out = new ByteArrayOutputStream(1024);
  189. // byte[] temp = new byte[1024];
  190. // int size = 0;
  191. // while ((size = in.read(temp)) != -1) {
  192. // out.write(temp, 0, size);
  193. // }
  194. // in.close();
  195. // byte[] content3 = out.toByteArray();
  196. // imgname3 = UUID.randomUUID() + "." + filenameExtension3;
  197. // UploadImage.sshSftp(content3, path3, imgname3);
  198. // } catch (Exception e) {
  199. // e.printStackTrace();
  200. // }
  201. // String content3 = "https://img.ifarmcloud.com/images/" + path3 + "/" + imgname3;
  202. Map<String, String> map = new HashMap<>();
  203. map.put("idCordFrontUrl", content);
  204. map.put("idCordBackUrl", content2);
  205. map.put("type", type);
  206. CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
  207. map.put("userName", userName);
  208. map.put("idCord", idCord);
  209. map.put("phone", phone);
  210. map.put("veterId", veterId);
  211. map.put("detailedAdressCode", detailedAdressCode);
  212. map.put("farmName", farmName);
  213. // map.put("permitImg", content3);
  214. Result result = iSysUserService.add(req, map);
  215. if (result.getCode() == 10000) {
  216. SysUser user = (SysUser) result.getData();
  217. AccessToken accessToken = new AccessToken();
  218. accessToken.setAccountName(user.getUserName());
  219. accessToken.setCreated(new Date());
  220. accessToken.setLoginIp(user.getLastIp());
  221. accessToken.setType(user.getUserType());
  222. accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId()));
  223. return new Result(ResultCode.SUCCESS, accessToken);
  224. } else if (result.getCode() == 10002) {
  225. return new Result(ResultCode.UNAUTHENTICATED, "待审核");
  226. } else {
  227. return new Result(ResultCode.FAIL, "用户已实名");
  228. }
  229. }
  230. @PostMapping(value = "/addTest")
  231. public void addTest( @RequestParam("userName") String userName) {
  232. System.out.println(userName);
  233. }
  234. @PostMapping(value = "/edit")
  235. public Result edit(HttpServletRequest req, @RequestBody SysUser user) {
  236. return iSysUserService.edit(req, user);
  237. }
  238. @PostMapping(value = "/list")
  239. public Result list(HttpServletRequest req, @RequestBody Map<String, String> map) {
  240. return iSysUserService.list(req, map);
  241. }
  242. @PostMapping(value = "/findPhone")
  243. public Result findPhone(HttpServletRequest req, @RequestBody Map<String, String> map) {
  244. return iSysUserService.findPhone(req, map);
  245. }
  246. //pc端
  247. @PostMapping(value = "/listPc")
  248. public Result listPc(HttpServletRequest req, @RequestBody Map<String, String> map) {
  249. return iSysUserService.listPc(req, map);
  250. }
  251. @PostMapping(value = "/listPc2")
  252. public Result listPc2(HttpServletRequest req, @RequestBody Map<String, String> map) {
  253. return new Result(ResultCode.SUCCESS, iSysUserService.listPc2(req, map));
  254. }
  255. @PostMapping(value = "/editState")
  256. public Result editState(HttpServletRequest req, @RequestBody Map<String,String> paramsMap) {
  257. return new Result(ResultCode.SUCCESS, iSysUserService.editState(req, paramsMap));
  258. }
  259. //测试-token
  260. @PostMapping(value = "/getToken")
  261. public String getToken(HttpServletRequest req) {
  262. String token = TokenSign.sign("养殖户测试", "13112341236",6L);
  263. return token;
  264. }
  265. @PostMapping("/listSubordinate")
  266. public Result listSubordinate(@RequestBody Map map , HttpServletRequest request) {
  267. Long userId = TokenSign.getMemberIdByJwtToken(request);
  268. Integer pageNum = (Integer) map.get("pageNum");
  269. Integer pageSize = (Integer) map.get("pageSize");
  270. if (StringUtils.isEmpty(pageNum)){
  271. pageNum =1;
  272. }
  273. if (StringUtils.isEmpty(pageSize)){
  274. pageSize =10;
  275. }
  276. String searchStr = (String) map.get("searchStr");
  277. return iSysUserService.listSubordinate(searchStr,pageNum,pageSize,userId);
  278. }
  279. @PostMapping("/addXiang")
  280. public Result addXiang(@RequestBody SysUser sysUser , HttpServletRequest request) {
  281. Long userId = TokenSign.getMemberIdByJwtToken(request);
  282. return iSysUserService.addXiang(sysUser,userId);
  283. }
  284. @PostMapping("/remove")
  285. public Result remove(@RequestBody SysUser sysUser , HttpServletRequest request) {
  286. Long userId = TokenSign.getMemberIdByJwtToken(request);
  287. return iSysUserService.remove(sysUser,userId);
  288. }
  289. @PostMapping("/update")
  290. public Result update(@RequestBody SysUser sysUser , HttpServletRequest request) {
  291. Long userId = TokenSign.getMemberIdByJwtToken(request);
  292. return iSysUserService.updateUser(sysUser,userId);
  293. }
  294. @PostMapping("/getUser")
  295. public Result getUser(){
  296. List<SysUser> sysUsers = iSysUserService.list(new QueryWrapper<SysUser>().in("user_type", 2, 3));
  297. if (ObjectUtil.isEmpty(sysUsers)){
  298. return new Result(ResultCode.SUCCESS,null);
  299. }else {
  300. return new Result(ResultCode.SUCCESS,sysUsers);
  301. }
  302. }
  303. }