提交修改

This commit is contained in:
quyixiao 2025-11-18 09:38:45 +08:00
parent 57ef857d7e
commit a626661ee5
9 changed files with 100 additions and 69 deletions

View File

@ -7,9 +7,9 @@ package com.heyu.api.data.dao.vv;
* @author quyixiao * @author quyixiao
* @since 2025-08-23 * @since 2025-08-23
*/ */
import com.heyu.api.data.entity.vv.VvLoginLogEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lz.mybatis.plugin.annotations.Realy; import com.heyu.api.data.entity.vv.VvLoginLogEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@Mapper @Mapper
@ -34,6 +34,6 @@ public interface VvLoginLogDao extends BaseMapper<VvLoginLogEntity> {
int deleteVvLoginLogById(@Param("id")Long id); int deleteVvLoginLogById(@Param("id")Long id);
@Realy
int deleteVvLoginLogRealByUserName(String username); int deleteVvLoginLogRealByUserName(String username);
} }

View File

@ -35,4 +35,9 @@ public class BuyerDTO {
//买家微信
private String buyerWeixin;
//买家手机号
private String buyerPhone;
} }

View File

@ -16,5 +16,8 @@ public class VVAdminDTO {
* 过期时间 * 过期时间
*/ */
private Long expireTime; private Long expireTime;
/***
* 登录用户id
*/
private Long adminId;
} }

View File

@ -1,12 +1,12 @@
package com.heyu.api.data.entity.vv; package com.heyu.api.data.entity.vv;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import com.lz.mybatis.plugin.annotations.AS;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;import java.util.Date; import java.util.Date;
/** /**
*买家信息 *买家信息
* @author quyixiao * @author quyixiao
@ -103,6 +103,7 @@ private static final long serialVersionUID = 1L;
private String sessionKey; private String sessionKey;
//微信open_id //微信open_id
private String openid; private String openid;
/** /**
* *
* @return * @return

View File

@ -1,13 +1,14 @@
package com.heyu.api.alibaba.request.mm.order; package com.heyu.api.alibaba.request.mm.order;
import com.heyu.api.alibaba.request.mm.AdminBaseDTO;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@Data @Data
public class VVOrderRequest { public class VVOrderRequest extends AdminBaseDTO {
/** /**
* 订单id * 订单id
*/ */

View File

@ -6,6 +6,7 @@ import com.heyu.api.common.LogAspect;
import com.heyu.api.data.constants.ApiConstants; import com.heyu.api.data.constants.ApiConstants;
import com.heyu.api.data.dto.BuyerDTO; import com.heyu.api.data.dto.BuyerDTO;
import com.heyu.api.data.dto.VVRequestLogDTO; import com.heyu.api.data.dto.VVRequestLogDTO;
import com.heyu.api.data.dto.vv.VVAdminDTO;
import com.heyu.api.data.utils.*; import com.heyu.api.data.utils.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
@ -97,66 +98,79 @@ public class ZhenZhenLogAop {
describe = AnnotationUtils.getAnnotationValueByMethod(method, "Describe", "value"); describe = AnnotationUtils.getAnnotationValueByMethod(method, "Describe", "value");
Class clazz = point.getTarget().getClass(); Class clazz = point.getTarget().getClass();
className = clazz.getName(); className = clazz.getName();
token = attributes.getRequest().getHeader("token"); Object[] argArrs = point.getArgs();
if (uri.startsWith("/app/")) { if (uri.startsWith("/app/")) {
Object[] argArrs = point.getArgs(); token = attributes.getRequest().getHeader("token");
if (argArrs != null && argArrs.length > 0) {
/***
*
*/
if (StringUtils.isNotBlank(token)) {
Object tokenValue = redisUtils.get(token);
if (tokenValue != null) {
String tokenStr = tokenValue.toString();
BuyerDTO buyerDTO = JSONObject.parseObject(tokenStr, BuyerDTO.class);
buyerId = buyerDTO.getBuyerId();
}
}
// 参数封装
if (argArrs != null && argArrs.length > 0) {
for (Object argArr : argArrs) { for (Object argArr : argArrs) {
argArr.getClass().getDeclaredMethods(); argArr.getClass().getDeclaredMethods();
List<Method> methods = new ArrayList<>(); List<Method> methods = new ArrayList<>();
getClassDeclaredMethods(argArr.getClass(), methods); getClassDeclaredMethods(argArr.getClass(), methods);
for (Method m : methods) { for (Method m : methods) {
if (m.getName().startsWith("get")) { if ("getBuyerId".equalsIgnoreCase(m.getName())) {
String mName = m.getName().substring(3); m.setAccessible(true);
if ("buyerId".equalsIgnoreCase(mName)) { Object getBuyerId = m.invoke(argArr);
m.setAccessible(true); if (buyerId == null && getBuyerId != null) {
buyerId = NumberUtil.objToLongDefault(getBuyerId, -1L);
Object getBuyerId = m.invoke(argArr);
if (buyerId == null && getBuyerId != null) {
buyerId = NumberUtil.objToLongDefault(getBuyerId, -1L);
}
} }
} }
} }
if (StringUtils.isNotBlank(token)) {
Object tokenValue = redisUtils.get(token);
for (Method m : methods) { if (tokenValue != null) {
if (m.getName().startsWith("set")) { String tokenStr = tokenValue.toString();
String mName = m.getName().substring(3); BuyerDTO buyerDTO = JSONObject.parseObject(tokenStr, BuyerDTO.class);
//if("buyerId".equalsIgnoreCase(mName)) { buyerId = buyerDTO.getBuyerId();
// m.setAccessible(true);
// m.invoke(argArr, new Object[]{buyerId});
//}
} }
} }
for (Method m : methods) {
//if("buyerId".equalsIgnoreCase(mName)) {
// m.setAccessible(true);
// m.invoke(argArr, new Object[]{buyerId});
//}
}
} }
} }
} else if (uri.startsWith("/mm/")) { } else if (uri.startsWith("/mm/")) {
token = attributes.getRequest().getHeader("mmToken");
Object tokenValue = redisUtils.get(token);
// 登录不拦截 // 登录不拦截
if (!"/mm/admin/login".equals(uri)) { if (!"/mm/admin/login".equals(uri)) {
Object tokenValue = redisUtils.get(token);
if (tokenValue == null) { if (tokenValue == null) {
// return R.error("请登录"); return R.error("请登录");
}
}
if (tokenValue != null) {
try {
VVAdminDTO vvAdminDTO = JSONObject.parseObject(tokenValue + "", VVAdminDTO.class);
if (vvAdminDTO != null && argArrs != null && argArrs.length > 0) {
for (Object argArr : argArrs) {
argArr.getClass().getDeclaredMethods();
List<Method> methods = new ArrayList<>();
getClassDeclaredMethods(argArr.getClass(), methods);
for (Method m : methods) {
if ("setUserName".equalsIgnoreCase(m.getName())) {
m.setAccessible(true);
m.invoke(argArr, new Object[]{vvAdminDTO.getUsername()});
}
if ("setAdminId".equals(m.getName())) {
m.setAccessible(true);
m.invoke(argArr, new Object[]{vvAdminDTO.getAdminId()});
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
} }
} }
} }

View File

@ -1,6 +1,7 @@
package com.heyu.api.controller.mm; package com.heyu.api.controller.mm;
import com.alibaba.fastjson.JSON;
import com.heyu.api.alibaba.request.mm.VVAdminRequest; import com.heyu.api.alibaba.request.mm.VVAdminRequest;
import com.heyu.api.data.constants.RedisConstans; import com.heyu.api.data.constants.RedisConstans;
import com.heyu.api.data.dao.vv.VvAdminDao; import com.heyu.api.data.dao.vv.VvAdminDao;
@ -53,19 +54,21 @@ public class AdminLoginController {
// admin123 != '1' or 1 = 1 // admin123 != '1' or 1 = 1
if (vvAdminEntity.getPassword().equals(vvAdminRequest.getPassword())) { if (vvAdminEntity.getPassword().equals(vvAdminRequest.getPassword())) {
String token = MD5Utils.getMD5(System.currentTimeMillis() + vvAdminRequest.getUsername()); String token = MD5Utils.getMD5(System.currentTimeMillis() + vvAdminRequest.getUsername());
vvAdminDTO.setToken(token); vvAdminDTO.setToken(token);
vvAdminDTO.setUsername(vvAdminRequest.getUsername()); vvAdminDTO.setUsername(vvAdminRequest.getUsername());
vvAdminDTO.setExpireTime(DateUtils.addDays(new Date(), 7).getTime()); vvAdminDTO.setExpireTime(DateUtils.addDays(new Date(), 7).getTime());
vvAdminDTO.setAdminId(vvAdminEntity.getId());
VvLoginLogEntity vvLoginLogEntity = new VvLoginLogEntity(); VvLoginLogEntity vvLoginLogEntity = new VvLoginLogEntity();
vvLoginLogDao.deleteVvLoginLogRealByUserName(vvAdminRequest.getUsername()); vvLoginLogDao.deleteVvLoginLogRealByUserName(vvAdminRequest.getUsername());
vvLoginLogEntity.setUsername(vvAdminRequest.getUsername()); vvLoginLogEntity.setUsername(vvAdminRequest.getUsername());
redisUtils.set(token, vvAdminRequest.getUsername(), RedisConstans.SECOND_OF_ONE_7_DAY);
vvLoginLogEntity.setToken(token); vvLoginLogEntity.setToken(token);
vvLoginLogDao.insertOrUpdateVvLoginLog(vvLoginLogEntity); vvLoginLogDao.insertOrUpdateVvLoginLog(vvLoginLogEntity);
redisUtils.set(token, JSON.toJSONString(vvAdminDTO), RedisConstans.SECOND_OF_ONE_7_DAY);
return R.ok().setData(vvAdminDTO); return R.ok().setData(vvAdminDTO);
} }
return R.ok("密码错误"); return R.ok("密码错误");

View File

@ -166,7 +166,6 @@ public class AdminReverseController {
vvReverseOrderEntity.setCloseUser(vvApproveRequest.getUserName()); vvReverseOrderEntity.setCloseUser(vvApproveRequest.getUserName());
vvReverseOrderEntity.setCloseReason(vvApproveRequest.getReason()); vvReverseOrderEntity.setCloseReason(vvApproveRequest.getReason());
} }
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvApproveRequest.getReverseOrderId()); List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvApproveRequest.getReverseOrderId());
List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId); List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds); List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);

View File

@ -38,7 +38,6 @@ public class AppUserLoginController {
private WeChatUtils weChatUtils; private WeChatUtils weChatUtils;
// http://localhost:8888/app/user/login // http://localhost:8888/app/user/login
@RequestMapping("/login") @RequestMapping("/login")
@Describe("微信用户登录") @Describe("微信用户登录")
@ -58,14 +57,10 @@ public class AppUserLoginController {
target.setSessionKey(weiChatLoginDTO.getSessionKey()); target.setSessionKey(weiChatLoginDTO.getSessionKey());
vvBuyerDao.insertOrUpdateVvBuyer(target); vvBuyerDao.insertOrUpdateVvBuyer(target);
BuyerDTO buyerDTO = new BuyerDTO();
buyerDTO.setBuyerId(target.getId());
buyerDTO.setBuyerName(target.getBuyerName());
buyerDTO.setFlag(target.getIsTest());
String token = TokenUtils.generateToken(target.getId());
buyerDTO.setToken(token);
// 默认24 小时 // 默认24 小时
redisUtils.set(token, JSON.toJSONString(buyerDTO), RedisUtils.DEFAULT_EXPIRE); BuyerDTO buyerDTO = buildBuyerLoginInfoCacheRedisDB(target, RedisUtils.DEFAULT_EXPIRE);
return R.ok().put("buyer", buyerDTO); return R.ok().put("buyer", buyerDTO);
} }
@ -80,12 +75,15 @@ public class AppUserLoginController {
log.info("anonymous value:{}", JSON.toJSONString(request)); log.info("anonymous value:{}", JSON.toJSONString(request));
return R.error("设备号不对"); return R.error("设备号不对");
} }
BuyerDTO buyerDTO = new BuyerDTO();
buyerDTO.setFlag(UserLoginFlagEnums.anonymous_user.getFlag()); Random random = new Random(100000000L);
Random random = new Random(1000000L);
String token = TokenUtils.generateToken(random.nextLong()); String token = TokenUtils.generateToken(random.nextLong());
buyerDTO.setToken(token);
redisUtils.set(token, JSON.toJSONString(buyerDTO), RedisUtils.thirty_minute); VvBuyerEntity target = new VvBuyerEntity();
target.setIsTest(UserLoginFlagEnums.anonymous_user.getFlag());
target.setId(random.nextLong());
BuyerDTO buyerDTO = buildBuyerLoginInfoCacheRedisDB(target, RedisUtils.thirty_minute);
return R.ok().put("buyer", buyerDTO); return R.ok().put("buyer", buyerDTO);
} }
@ -102,27 +100,35 @@ public class AppUserLoginController {
request.getTargetBuyer(), request.getTargetBuyer(),
request.getTargetBuyer()); request.getTargetBuyer());
// 默认24 小时
BuyerDTO buyerDTO = buildBuyerLoginInfoCacheRedisDB(target, RedisUtils.DEFAULT_EXPIRE);
return R.ok().put("buyer", buyerDTO);
}
public BuyerDTO buildBuyerLoginInfoCacheRedisDB(VvBuyerEntity target, Long expireTime) {
BuyerDTO buyerDTO = new BuyerDTO(); BuyerDTO buyerDTO = new BuyerDTO();
buyerDTO.setBuyerId(target.getId()); buyerDTO.setBuyerId(target.getId());
buyerDTO.setBuyerName(target.getBuyerName()); buyerDTO.setBuyerName(target.getBuyerName());
buyerDTO.setFlag(target.getIsTest()); buyerDTO.setFlag(target.getIsTest());
buyerDTO.setAvatar(target.getAvatar());
buyerDTO.setBuyerPhone(target.getBuyerPhone());
buyerDTO.setBuyerWeixin(target.getBuyerWeixin());
String token = TokenUtils.generateToken(target.getId()); String token = TokenUtils.generateToken(target.getId());
redisUtils.set(token, JSON.toJSONString(buyerDTO), expireTime);
buyerDTO.setToken(token); buyerDTO.setToken(token);
// 默认24 小时 return buyerDTO;
redisUtils.set(token, JSON.toJSONString(buyerDTO), RedisUtils.DEFAULT_EXPIRE);
return R.ok().put("buyer", buyerDTO);
} }
@RequestMapping("/getPhoneNumber") @RequestMapping("/getPhoneNumber")
public Object getPhoneNumber(@RequestBody VvAppLoginRequest request) { public Object getPhoneNumber(@RequestBody VvAppLoginRequest request) {
// String sessionKey = userRepository.findByOpenId(request.getOpenId()).getSessionKey(); // 从数据库中获取 sessionKey // String sessionKey = userRepository.findByOpenId(request.getOpenId()).getSessionKey(); // 从数据库中获取 sessionKey
// JSONObject phoneInfo = JSONObject.parseObject(WxMaCryptUtils.decrypt(sessionKey, request.getEncryptedData(), request.getIv())); // 解密获取手机号信息 // JSONObject phoneInfo = JSONObject.parseObject(WxMaCryptUtils.decrypt(sessionKey, request.getEncryptedData(), request.getIv())); // 解密获取手机号信息
// String phoneNumber = phoneInfo.getString("phoneNumber"); // String phoneNumber = phoneInfo.getString("phoneNumber");
// 更新用户信息并存储到数据库 // 更新用户信息并存储到数据库
// 返回给前端的手机号信息 // 返回给前端的手机号信息
@ -132,5 +138,4 @@ public class AppUserLoginController {
} }
} }