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.SmsUtils; 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.BaseUserBank; import com.huimv.farm.damsubsidy.entity.SysUser; import com.huimv.farm.damsubsidy.service.IBaseUserBankService; import com.huimv.farm.damsubsidy.service.ISysUserService; import org.apache.poi.util.StringUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; 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.*; import java.util.*; import java.util.concurrent.TimeUnit; /** *

* 前端控制器 *

* * @author author * @since 2023-04-26 */ @RestController @RequestMapping("/sys-user") @CrossOrigin public class SysUserController { @Autowired private ISysUserService iSysUserService; @Autowired private RedisTemplate redisTemplate; @Autowired private IBaseUserBankService bankService; @Autowired private UploadImage uploadImage; @PostMapping("/sendCode") public Result senCode(@RequestBody Map paramsMap) throws Exception { String phone = paramsMap.get("phone"); System.out.println(phone); String code = generateRandomCode(); //模板id String templateId = "e683346d84234fc1a0816791587a4335"; //模板里的参数,可多个 String[] params = {code}; // 调用发送短信的接口 JSONObject success = SmsUtils.sendSms(templateId,phone, params); Boolean success1 = (Boolean)success.get("success"); if (success1) { // 如果发送成功,将手机号和验证码保存 redisTemplate.opsForValue().set("xumu:"+phone,code,5L, TimeUnit.MINUTES); System.out.println("发送成功"); // phoneCodeMap.put(phoneNumber, code); } else { // do something } System.out.println(success); return new Result(ResultCode.SUCCESS,success); } private static String generateRandomCode() { Random random = new Random(); String code = ""; for (int i = 0; i < 6; i++) { code += random.nextInt(10); } return code; } @PostMapping("/loginOne") public Result loginOne() { AccessToken accessToken = new AccessToken(); Result result = iSysUserService.loginOne(); SysUser user = (SysUser) result.getData(); accessToken.setAccountName(user.getUserName()); accessToken.setCreated(new Date()); accessToken.setType(user.getUserType()); accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId(),user.getBriefAddressCode(),user.getUserType())); accessToken.setCode(result.getCode()); accessToken.setMessage(result.getMessage()); accessToken.setUserId(user.getId()); accessToken.setPhone(user.getPhone()); accessToken.setUser(user); return new Result(ResultCode.SUCCESS,accessToken); } @PostMapping(value = "/login") public Result loginMultilevel(HttpServletRequest req, @RequestBody Map map) { String remoteHost = req.getRemoteHost(); Result result = iSysUserService.loginMultilevel(req, map,remoteHost); AccessToken accessToken = new AccessToken(); if (result.getCode() == 10000) { SysUser user = (SysUser) result.getData(); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("user_id", user.getId()); List banks = bankService.list(queryWrapper); if (user.getUserType() == 4 && user.getPermit() == null) { accessToken.setPermit(1); } else { accessToken.setPermit(0);//不需要 } accessToken.setBanks(banks); accessToken.setAccountName(user.getUserName()); accessToken.setCreated(new Date()); accessToken.setType(user.getUserType()); accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(),user.getId(),user.getBriefAddressCode(),user.getUserType())); 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,"",10)); accessToken.setLoginIp(""); accessToken.setCode(result.getCode()); accessToken.setMessage(result.getMessage()); accessToken.setLoginIp(remoteHost); } if (result.getCode() == 10001) { return result; } return new Result(ResultCode.SUCCESS, accessToken); } // @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(10001, "请输入手机号",false); } Result result = iSysUserService.loginMultilevel(req, map,remoteHost); if ( result.getCode() == 10000) { SysUser sysUser = (SysUser) result.getData(); if (sysUser.getUserType() != 0 && sysUser.getUserType() != 4){ return new Result(10001, "该用户未授权",false); } } return result; } if ("2".equals(loginType)){ // 未对密码加密 Result result = iSysUserService.loginMultilevelClient(accountName, password,remoteHost); 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(),accountEntity.getBriefAddressCode(),accountEntity.getUserType()); accessToken.setToken(token); accessToken.setUserName(accountEntity.getUserName()); accessToken.setUserId(accountEntity.getId()); accessToken.setPhone(accountEntity.getPhone()); SysUser user = (SysUser) result.getData(); accessToken.setUser(user); accessToken.setLoginIp(remoteHost); return new Result(ResultCode.SUCCESS,accessToken); } return result; } return new Result(10001, "登录方式有误",false); } @PostMapping(value = "/add") public Result add(HttpServletRequest req,@RequestParam(name = "idCordFrontUrl") MultipartFile idCordFrontUrl, @RequestParam(name ="idCordBackUrl",required = false) MultipartFile idCordBackUrl, @RequestParam(name ="type") String type, @RequestParam(name ="userName") String userName, @RequestParam(name = "idCord",required = false) String idCord, @RequestParam(value = "phone",required = false) String phone, @RequestParam(name = "farmName",required = false) String farmName, @RequestParam(name = "veterId",required = false) String veterId, @RequestParam(name = "address",required = false) String address,//身份证地址 @RequestParam(name = "detailedAddress") String detailedAddress,//详细地址 @RequestParam(name = "detailedAdressCode") String detailedAdressCode//地址行政码 ) throws IOException { req.setCharacterEncoding("UTF-8"); System.out.println(userName); String content = uploadImage.getImageCom(idCordFrontUrl); String content2 ="" ; if (!"2".equals(type)){ content2 = uploadImage.getImageCom(idCordBackUrl); } 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("address", address); map.put("detailedAddress", detailedAddress); 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(),user.getBriefAddressCode(),user.getUserType())); accessToken.setPhone(user.getPhone()); accessToken.setUser(user); accessToken.setUserName(user.getUserName()); accessToken.setUserId(user.getId()); accessToken.setMessage(result.getMessage()); return new Result(ResultCode.SUCCESS, accessToken); } else if (result.getCode() == 10004) { return new Result(10004, "待审核",false); } else { return iSysUserService.add(req,map); } } @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,"",10); 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); } @GetMapping("/getTest") public void getTest( HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); System.out.println(userId); } //删除 /* @GetMapping("/remove") public Result remove(@RequestParam("userIds")String userIds , HttpServletRequest request) { Long userId = TokenSign.getMemberIdByJwtToken(request); return iSysUserService.remove(userIds,userId); }*/ @GetMapping("/removeById") public Result removeById(@RequestParam("id") Integer id) { iSysUserService.removeById(id); return new Result(10000,"删除成功",true); } @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); } } @PostMapping("/addImg") public Result addImg(HttpServletRequest httpServletRequest,@RequestParam("permitImg") MultipartFile permitImg, @RequestParam("id") String id) throws IOException { String content3 = uploadImage.getImageCom(permitImg); Map map = new HashMap<>(); map.put("id", id); map.put("permitImg", content3); return iSysUserService.addImg(httpServletRequest, map); } @PostMapping("/removeByIds") public Result remove(@RequestBody Map paramsMap ) { return iSysUserService.removeByIds(paramsMap); } @PostMapping("/login2") public Result login2(@RequestBody Map paramsMap) { Result result = iSysUserService.login2(paramsMap); SysUser user = (SysUser) result.getData(); if (result.getCode() == 10000) { AccessToken accessToken = new AccessToken(); accessToken.setUser(user); accessToken.setUserId(user.getId()); accessToken.setToken(TokenSign.sign(user.getUserName(), user.getPhone(), user.getId(),user.getBriefAddressCode(),user.getUserType())); accessToken.setAccountName(user.getUserName()); accessToken.setCreated(new Date()); accessToken.setLoginIp(user.getLastIp()); accessToken.setType(user.getUserType()); accessToken.setMessage(result.getMessage()); return new Result(ResultCode.SUCCESS, accessToken); } else { return result; } } @PostMapping("/listFarmer") public Result listFarmer(HttpServletRequest httpServletRequest,@RequestBody Map paramsMap){ return iSysUserService.listFarmer(httpServletRequest,paramsMap); } }