提交修改
This commit is contained in:
parent
57ef857d7e
commit
a626661ee5
@ -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);
|
||||||
}
|
}
|
||||||
@ -35,4 +35,9 @@ public class BuyerDTO {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//买家微信
|
||||||
|
private String buyerWeixin;
|
||||||
|
//买家手机号
|
||||||
|
private String buyerPhone;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,5 +16,8 @@ public class VVAdminDTO {
|
|||||||
* 过期时间
|
* 过期时间
|
||||||
*/
|
*/
|
||||||
private Long expireTime;
|
private Long expireTime;
|
||||||
|
/***
|
||||||
|
* 登录用户id
|
||||||
|
*/
|
||||||
|
private Long adminId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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("密码错误");
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user