From 81f6d10bb745825437e0145c6d27bc3468ee281c Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 31 七月 2025 17:59:56 +0800 Subject: [PATCH] 修改后台需要功能 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 121 +++++++++++++++++++++++----------------- 1 files changed, 70 insertions(+), 51 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java index af7399d..0a28538 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java @@ -1,59 +1,35 @@ package com.stylefeng.guns.modular.api; -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.common.constant.JwtConstants; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.account.server.UserWithdrawalService; import com.stylefeng.guns.modular.account.util.OssUploadUtil; -import com.stylefeng.guns.modular.cloudPayment.example.DepositExample; -import com.stylefeng.guns.modular.cloudPayment.req.DepositReq; -import com.stylefeng.guns.modular.enums.PaymentTypeEnum; import com.stylefeng.guns.modular.system.model.Driver; -import com.stylefeng.guns.modular.system.model.DriverService; +import com.stylefeng.guns.modular.system.model.TDriverPromotionActivity; import com.stylefeng.guns.modular.system.model.UserInfo; import com.stylefeng.guns.modular.system.model.UserWithdrawal; -import com.stylefeng.guns.modular.system.service.IDriverService; -import com.stylefeng.guns.modular.system.service.ISmsrecordService; -import com.stylefeng.guns.modular.system.service.IUserInfoService; -import com.stylefeng.guns.modular.system.service.IVerifiedService; -import com.stylefeng.guns.modular.system.util.RedisUtil; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ResultUtil; import com.stylefeng.guns.modular.system.util.WeChatUtil; import com.stylefeng.guns.modular.system.warpper.LoginWarpper; import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper; import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper; -import com.unionpay.upyzt.exception.UpyztException; -import com.unionpay.upyzt.resp.DepositResp; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.shiro.codec.Base64; +import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.io.*; -import java.net.URL; -import java.net.URLConnection; -import java.security.InvalidAlgorithmParameterException; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.spec.AlgorithmParameterSpec; -import java.text.SimpleDateFormat; +import java.io.InputStream; import java.util.Date; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -63,30 +39,32 @@ @RestController @RequestMapping("") public class UserInfoController { - + @Autowired private IUserInfoService userInfoService; - + @Autowired private IVerifiedService verifiedService; - + @Autowired private ISmsrecordService smsrecordService; - - @Autowired - private RedisUtil redisUtil; - + + @Resource + private RedisTemplate<String, Object> redisTemplate; + @Autowired private WeChatUtil weChatUtil; - + @Autowired private IDriverService driverService; - + @Autowired private HttpServletRequest request; - - + @Autowired + private TDriverPromotionActivityService driverPromotionActivityService; + + /** * 获取短信验证码 * @param phone @@ -348,6 +326,47 @@ return ResultUtil.tokenErr(); } return userInfoService.bindingPhone(uid, phone, code,loginType); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + /** + * 设置绑定司机 + * @param driverId + * @param request + * @return + */ + @ResponseBody + @PostMapping("/api/user/bindingDriver") + @ApiOperation(value = "绑定司机", tags = {"用户端-登录"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<LoginWarpper> bindingDriver(Integer driverId,HttpServletRequest request){ + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if(null == uid){ + return ResultUtil.tokenErr(); + } + UserInfo userInfo = userInfoService.selectById(uid); + + // 是否需要绑定司机 + TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", userInfo.getRegistAreaCode()).ge("startTime", new Date()).lt("endTime", new Date()).last(" limit 1")); + if(tDriverPromotionActivity!=null){ + if(userInfo.getBindDriverId()==null || userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){ + Integer bindingDays = tDriverPromotionActivity.getBindingDays(); + // 当前时间+绑定天数 + Date endTime = DateUtils.addDays(new Date(), bindingDays); + userInfo.setBindDriverId(driverId); + userInfo.setBindExpireDate(endTime); + userInfo.setBindDate(new Date()); + userInfoService.updateById(userInfo); + } + + } + return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -659,9 +678,9 @@ public ResultUtil freeze(Integer uid){ try { UserInfo userInfo = userInfoService.selectById(uid); - String value = redisUtil.getValue(userInfo.getPhone()); - redisUtil.remove(value); - redisUtil.remove(userInfo.getPhone()); + String value = (String) redisTemplate.opsForValue().get(userInfo.getPhone()); + redisTemplate.delete(value); + redisTemplate.delete(userInfo.getPhone()); return ResultUtil.success(); }catch (Exception e){ e.printStackTrace(); @@ -689,7 +708,7 @@ } String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER); requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1); - String value = redisUtil.getValue("USER_" + uid); + String value = (String) redisTemplate.opsForValue().get("USER_" + uid); Map<String, Object> map = new HashMap<>(); map.put("match", requestHeader.equals(value) ? 1 : 2); return ResultUtil.success(map); @@ -720,13 +739,13 @@ userInfo.setState(2); userInfoService.updateById(userInfo); //开始验证当前账号是否在别处登录 - String value = redisUtil.getValue("USER_" + uid); - if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线 + String value = (String) redisTemplate.opsForValue().get("USER_" + uid); + if(ToolUtil.isNotEmpty(value)) {//将另外设备上的强迫下线 //开始清除redis中无效的数据 - String key = redisUtil.getValue("USER_" + userInfo.getPhone()); - redisUtil.remove(key);//删除个人信息数据 - redisUtil.remove("USER_" + userInfo.getPhone());//删除后台冻结相关缓存 - redisUtil.remove("USER_" + uid);//清除存储的token + String key = (String) redisTemplate.opsForValue().get("USER_" + userInfo.getPhone()); + redisTemplate.delete(key);//删除个人信息数据 + redisTemplate.delete("USER_" + userInfo.getPhone());//删除后台冻结相关缓存 + redisTemplate.delete("USER_" + uid);//清除存储的token } return ResultUtil.success(); }catch (Exception e){ -- Gitblit v1.7.1