package com.huimv.farm.damsubsidy.controller; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper; import com.huimv.farm.damsubsidy.common.token.TokenSign; import com.huimv.farm.damsubsidy.common.utils.Result; import com.huimv.farm.damsubsidy.common.utils.ResultCode; import com.huimv.farm.damsubsidy.common.utils.UploadImage; import com.huimv.farm.damsubsidy.config.CharacterEncodingFilter; import com.huimv.farm.damsubsidy.entity.AccessToken; import com.huimv.farm.damsubsidy.entity.SysUser; import com.huimv.farm.damsubsidy.service.ISysUserService; import org.apache.poi.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 前端控制器 *

* * @author author * @since 2023-04-26 */ @RestController @RequestMapping("/sys-user") @CrossOrigin public class SysUserController { @Autowired private ISysUserService iSysUserService; @PostMapping(value = "/login") public Result loginMultilevel(HttpServletRequest req, @RequestBody Map map) { String remoteHost = req.getRemoteHost(); Result result = iSysUserService.loginMultilevel(req, map); AccessToken accessToken = new AccessToken(); if (result.getCode() == 10000) { SysUser user = (SysUser) result.getData(); if (user.getUserType() == 4 && user.getPermit() == null) { accessToken.setPermit(1); } else { accessToken.setPermit(0);//不需要 } accessToken.setAccountName(user.getUserName()); accessToken.setCreated(new Date()); accessToken.setType(user.getUserType()); accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId())); accessToken.setCode(result.getCode()); accessToken.setMessage(result.getMessage()); accessToken.setUserId(user.getId()); accessToken.setPhone(user.getPhone()); accessToken.setLoginIp(remoteHost); accessToken.setUser(user); } if (result.getCode() == 10004) { accessToken.setAccountName("游客"); accessToken.setCreated(new Date()); accessToken.setToken(TokenSign.sign("游客", map.get("phone"),null)); accessToken.setLoginIp(""); accessToken.setCode(result.getCode()); accessToken.setMessage(result.getMessage()); accessToken.setLoginIp(remoteHost); } if (result.getCode() == 10001) { return iSysUserService.loginMultilevel(req, map); } return new Result(ResultCode.SUCCESS, accessToken); } //TODO @PostMapping(value = "/loginClient") public Result loginClient(HttpServletRequest req, @RequestBody Map map) { String accountName = map.get("accountName"); String password = map.get("password"); String loginType = map.get("loginType"); String remoteHost = req.getRemoteHost(); //手机登录 if ("1".equals(loginType)){ String phone = map.get("phone"); if (StringUtils.isEmpty(phone)){ return new Result(ResultCode.FAIL, "请输入手机号"); } Result result = iSysUserService.loginMultilevel(req, map); if ( result.getCode() == 10000) { SysUser sysUser = (SysUser) result.getData(); if (sysUser.getUserType() != 0 && sysUser.getUserType() != 4){ return new Result(ResultCode.FAIL, "该用户未授权"); } } return result; } if ("2".equals(loginType)){ // 未对密码加密 Result result = iSysUserService.loginMultilevelClient(accountName, password); if(result.getCode() == 10000){ SysUser accountEntity = (SysUser) result.getData(); Long id = accountEntity.getId(); AccessToken accessToken = new AccessToken(); accessToken.setCreated(new Date()); accessToken.setAccountName(accountName); accessToken.setCode(result.getCode()); accessToken.setMessage(result.getMessage()); String token = TokenSign.sign(accountName,accountEntity.getPhone(),accountEntity.getId()); accessToken.setToken(token); accessToken.setUserName(accountEntity.getUserName()); accessToken.setUserId(accountEntity.getId()); accessToken.setPhone(accountEntity.getPhone()); accessToken.setLoginIp(remoteHost); return new Result(ResultCode.SUCCESS,accessToken); } return result; } return new Result(ResultCode.FAIL, "登录方式有误"); } @PostMapping(value = "/add") public Result add(HttpServletRequest req,@RequestParam("idCordFrontUrl") MultipartFile idCordFrontUrl, @RequestParam("idCordBackUrl") MultipartFile idCordBackUrl, @RequestParam("type") String type, @RequestParam("userName") String userName, @RequestParam("idCord") String idCord, @RequestParam("phone") String phone, @RequestParam("farmName") String farmName, @RequestParam("veterId") String veterId, @RequestParam("detailedAdressCode") String detailedAdressCode, @RequestParam("permitImg") MultipartFile permitImg) throws UnsupportedEncodingException { req.setCharacterEncoding("UTF-8"); System.out.println(userName); String imgname = "成功"; String originalFilename = idCordFrontUrl.getOriginalFilename(); String filenameExtension = StringUtils.getFilenameExtension(originalFilename); String path = DateUtil.format(new Date(), "yyyy-MM"); try { InputStream inputStream = idCordFrontUrl.getInputStream(); BufferedInputStream in = new BufferedInputStream(inputStream); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); byte[] temp = new byte[1024]; int size = 0; while ((size = in.read(temp)) != -1) { out.write(temp, 0, size); } in.close(); byte[] content = out.toByteArray(); imgname = UUID.randomUUID() + "." + filenameExtension; UploadImage.sshSftp(content, path, imgname); } catch (Exception e) { e.printStackTrace(); } String content = "https://img.ifarmcloud.com/images/" + path + "/" + imgname; String imgname2 = "成功"; String originalFilename2 = idCordBackUrl.getOriginalFilename(); String filenameExtension2 = StringUtils.getFilenameExtension(originalFilename2); String path2 = DateUtil.format(new Date(), "yyyy-MM"); try { InputStream inputStream = idCordBackUrl.getInputStream(); BufferedInputStream in = new BufferedInputStream(inputStream); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); byte[] temp = new byte[1024]; int size = 0; while ((size = in.read(temp)) != -1) { out.write(temp, 0, size); } in.close(); byte[] content2 = out.toByteArray(); imgname2 = UUID.randomUUID() + "." + filenameExtension2; UploadImage.sshSftp(content2, path2, imgname2); } catch (Exception e) { e.printStackTrace(); } String content2 = "https://img.ifarmcloud.com/images/" + path2 + "/" + imgname2; // String imgname3 = "成功"; // String originalFilename3 = permitImg.getOriginalFilename(); // String filenameExtension3 = StringUtils.getFilenameExtension(originalFilename3); // String path3 = DateUtil.format(new Date(), "yyyy-MM"); // try { // InputStream inputStream = permitImg.getInputStream(); // BufferedInputStream in = new BufferedInputStream(inputStream); // ByteArrayOutputStream out = new ByteArrayOutputStream(1024); // byte[] temp = new byte[1024]; // int size = 0; // while ((size = in.read(temp)) != -1) { // out.write(temp, 0, size); // } // in.close(); // byte[] content3 = out.toByteArray(); // imgname3 = UUID.randomUUID() + "." + filenameExtension3; // UploadImage.sshSftp(content3, path3, imgname3); // } catch (Exception e) { // e.printStackTrace(); // } // String content3 = "https://img.ifarmcloud.com/images/" + path3 + "/" + imgname3; Map map = new HashMap<>(); map.put("idCordFrontUrl", content); map.put("idCordBackUrl", content2); map.put("type", type); CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(); map.put("userName", userName); map.put("idCord", idCord); map.put("phone", phone); map.put("veterId", veterId); map.put("detailedAdressCode", detailedAdressCode); map.put("farmName", farmName); // map.put("permitImg", content3); Result result = iSysUserService.add(req, map); if (result.getCode() == 10000) { SysUser user = (SysUser) result.getData(); AccessToken accessToken = new AccessToken(); accessToken.setAccountName(user.getUserName()); accessToken.setCreated(new Date()); accessToken.setLoginIp(user.getLastIp()); accessToken.setType(user.getUserType()); accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId())); return new Result(ResultCode.SUCCESS, accessToken); } else if (result.getCode() == 10002) { return new Result(ResultCode.UNAUTHENTICATED, "待审核"); } else { return new Result(ResultCode.FAIL, "用户已实名"); } } @PostMapping(value = "/addTest") public void addTest( @RequestParam("userName") String userName) { System.out.println(userName); } @PostMapping(value = "/edit") public Result edit(HttpServletRequest req, @RequestBody SysUser user) { return iSysUserService.edit(req, user); } @PostMapping(value = "/list") public Result list(HttpServletRequest req, @RequestBody Map map) { return iSysUserService.list(req, map); } @PostMapping(value = "/findPhone") public Result findPhone(HttpServletRequest req, @RequestBody Map map) { return iSysUserService.findPhone(req, map); } //pc端 @PostMapping(value = "/listPc") public Result listPc(HttpServletRequest req, @RequestBody Map map) { return iSysUserService.listPc(req, map); } @PostMapping(value = "/listPc2") public Result listPc2(HttpServletRequest req, @RequestBody Map map) { return new Result(ResultCode.SUCCESS, iSysUserService.listPc2(req, map)); } @PostMapping(value = "/editState") public Result editState(HttpServletRequest req, @RequestBody Map paramsMap) { return new Result(ResultCode.SUCCESS, iSysUserService.editState(req, paramsMap)); } //测试-token @PostMapping(value = "/getToken") public String getToken(HttpServletRequest req) { String token = TokenSign.sign("养殖户测试", "13112341236",6L); return token; } @PostMapping("/listSubordinate") public Result listSubordinate(@RequestBody Map map , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); Integer pageNum = (Integer) map.get("pageNum"); Integer pageSize = (Integer) map.get("pageSize"); if (StringUtils.isEmpty(pageNum)){ pageNum =1; } if (StringUtils.isEmpty(pageSize)){ pageSize =10; } String searchStr = (String) map.get("searchStr"); return iSysUserService.listSubordinate(searchStr,pageNum,pageSize,userId); } @PostMapping("/addXiang") public Result addXiang(@RequestBody SysUser sysUser , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); return iSysUserService.addXiang(sysUser,userId); } @PostMapping("/remove") public Result remove(@RequestBody SysUser sysUser , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); return iSysUserService.remove(sysUser,userId); } @PostMapping("/update") public Result update(@RequestBody SysUser sysUser , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); return iSysUserService.updateUser(sysUser,userId); } @PostMapping("/getUser") public Result getUser(){ List sysUsers = iSysUserService.list(new QueryWrapper().in("user_type", 2, 3)); if (ObjectUtil.isEmpty(sysUsers)){ return new Result(ResultCode.SUCCESS,null); }else { return new Result(ResultCode.SUCCESS,sysUsers); } } }