From b50c961c49851d140d77d549db34a9f6400dadd4 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 19 八月 2025 19:03:10 +0800
Subject: [PATCH] 跨城推广
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 210 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 157 insertions(+), 53 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..9583a0c 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,34 @@
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.shiro.ShiroKit;
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.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.model.*;
+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.util.qianyuntong.UserUtil;
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 +38,37 @@
@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 IRegionService regionService;
+
+ @Autowired
private HttpServletRequest request;
+
+ private String salt = "&a.s";
-
-
+ @Autowired
+ private TDriverPromotionActivityService driverPromotionActivityService;
+
+
/**
* 获取短信验证码
* @param phone
@@ -353,6 +335,67 @@
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()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
+ System.out.println("111232"+tDriverPromotionActivity);
+ if(tDriverPromotionActivity!=null){
+ System.out.println("11111");
+ if(userInfo.getBindDriverId()==null || userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
+ System.out.println("222222");
+ Integer bindingDays = tDriverPromotionActivity.getBindingDays();
+ // 当前时间+绑定天数
+ Date endTime = DateUtils.addDays(new Date(), bindingDays);
+ userInfo.setBindDriverId(driverId);
+ userInfo.setBindExpireDate(endTime);
+ userInfo.setBindDate(new Date());
+ userInfoService.updateById(userInfo);
+ }
+ }else {
+ Region code = regionService.selectOne(new EntityWrapper<Region>().eq("code", userInfo.getRegistAreaCode()));
+ Region region = regionService.selectById(code.getParentId());
+ TDriverPromotionActivity tDriverPromotionActivity1 = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("cityCode", region.getCode()).le("startTime", new Date()).ge("endTime", new Date()).last(" limit 1"));
+ if(tDriverPromotionActivity1!=null) {
+ if (userInfo.getBindDriverId() == null || userInfo.getBindExpireDate().getTime() <= System.currentTimeMillis()) {
+ Integer bindingDays = tDriverPromotionActivity1.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();
+ }
+ }
@Autowired
@@ -373,6 +416,12 @@
Integer uid = userInfoService.getUserIdFormRedis(request);
if(null == uid){
return ResultUtil.tokenErr();
+ }
+ UserInfo userInfo = userInfoService.selectById(uid);
+ if(ToolUtil.isEmpty(userInfo.getOnconUUID())){
+ String onconUUIDByMobile = UserUtil.getOnconUUIDByMobile("15828353127");
+ userInfo.setOnconUUID(onconUUIDByMobile);
+ userInfoService.updateById(userInfo);
}
Map<String, Object> map = userInfoService.queryUserInfo(uid);
UserWithdrawal userWithdrawal1 = userWithdrawalService.selectOne(new EntityWrapper<UserWithdrawal>()
@@ -659,9 +708,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 +738,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 +769,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){
@@ -841,4 +890,59 @@
return ResultUtil.runErr();
}
}
+
+
+ /**
+ * 代驾系统添加用户接口
+ * @param phone
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/base/user/addAppUser")
+ public String addAppUser(String phone, String code, String areaCode){
+ try {
+ return userInfoService.addAppUser(phone, code, areaCode);
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ /**
+ * 代驾系统验证短信验证码
+ * @param phone
+ * @param code
+ * @param request
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/base/user/checkCaptcha")
+ public Boolean checkCaptcha1(String phone, String code, HttpServletRequest request){
+ try {
+ String device = request.getHeader("device");
+ if(ToolUtil.isEmpty(device)){
+ return false;
+ }
+ boolean b = userInfoService.checkCaptcha(phone, code);
+ return b;
+ }catch (Exception e){
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ /**
+ * 代驾系统验根据用户id获取电话号码
+ * @param id
+ * @return
+ */
+ @ResponseBody
+ @GetMapping("/base/user/getUserPhone/{id}")
+ public String getUserPhone(@PathVariable("id") Integer id){
+ UserInfo userInfo = userInfoService.selectById(id);
+ if(null != userInfo){
+ return userInfo.getPhone();
+ }
+ return null;
+ }
}
--
Gitblit v1.7.1