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.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.entity.AccessToken; import com.huimv.farm.damsubsidy.entity.SysUser; import com.huimv.farm.damsubsidy.service.ISysUserService; 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.util.Date; import java.util.HashMap; 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) { Result result = iSysUserService.loginMultilevel(req, map); AccessToken accessToken = new AccessToken(); if (result.getCode() == 10000) { SysUser user = (SysUser) result.getData(); 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())); } if (result.getCode() == 10004) { accessToken.setAccountName("游客"); accessToken.setCreated(new Date()); accessToken.setToken(TokenSign.sign("游客", map.get("phone"),null)); accessToken.setLoginIp(""); } 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)){ return iSysUserService.loginMultilevel(req,map); } 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.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) { 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; Map map = new HashMap<>(); map.put("idCordFrontUrl", content); map.put("idCordBackUrl", content2); map.put("type", type); map.put("userName", userName); map.put("idCord", idCord); map.put("phone", phone); 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.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId())); JSONObject jsonObject = new JSONObject(); jsonObject.put("newToken", accessToken); jsonObject.put("user", user); return new Result(ResultCode.SUCCESS, jsonObject); } else { return new Result(ResultCode.FAIL,"用户已实名"); } } @PostMapping(value = "/edit") public Result edit(HttpServletRequest req, @RequestBody SysUser user) { return new Result(ResultCode.SUCCESS, iSysUserService.edit(req, user)); } @PostMapping(value = "/list") public Result list(HttpServletRequest req, @RequestBody Map map) { return new Result(ResultCode.SUCCESS, iSysUserService.list(req, map)); } @PostMapping(value = "/findPhone") public Result findPhone(HttpServletRequest req, @RequestBody Map map) { return new Result(ResultCode.SUCCESS, iSysUserService.findPhone(req, map)); } //pc端 @PostMapping(value = "/listPc") public Result listPc(HttpServletRequest req, @RequestBody Map map) { return new Result(ResultCode.SUCCESS, 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 SysUser user) { return new Result(ResultCode.SUCCESS, iSysUserService.editState(req, user)); } //测试-token @PostMapping(value = "/getToken") public String getToken(HttpServletRequest req) { String token = TokenSign.sign("superadmin", "123456789",1L); return token; } @PostMapping("/listSubordinate") public Result listSubordinate(@RequestBody Map map , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); int pageNum = (Integer) map.get("pageNum"); int pageSize = (Integer) map.get("pageSize"); String searchStr = (String) map.get("searchStr"); // return iSysUserService.listSubordinate(searchStr,pageNum,pageSize,userId); return null; } }