提交修改
This commit is contained in:
parent
57ef857d7e
commit
a626661ee5
@ -7,9 +7,9 @@ package com.heyu.api.data.dao.vv;
|
||||
* @author quyixiao
|
||||
* @since 2025-08-23
|
||||
*/
|
||||
import com.heyu.api.data.entity.vv.VvLoginLogEntity;
|
||||
|
||||
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.Param;
|
||||
@Mapper
|
||||
@ -34,6 +34,6 @@ public interface VvLoginLogDao extends BaseMapper<VvLoginLogEntity> {
|
||||
int deleteVvLoginLogById(@Param("id")Long id);
|
||||
|
||||
|
||||
@Realy
|
||||
|
||||
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;
|
||||
|
||||
/***
|
||||
* 登录用户id
|
||||
*/
|
||||
private Long adminId;
|
||||
}
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
package com.heyu.api.data.entity.vv;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import com.lz.mybatis.plugin.annotations.AS;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;import java.util.Date;
|
||||
import java.util.Date;
|
||||
/**
|
||||
*买家信息
|
||||
* @author quyixiao
|
||||
@ -103,6 +103,7 @@ private static final long serialVersionUID = 1L;
|
||||
private String sessionKey;
|
||||
//微信open_id
|
||||
private String openid;
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
package com.heyu.api.alibaba.request.mm.order;
|
||||
|
||||
|
||||
import com.heyu.api.alibaba.request.mm.AdminBaseDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class VVOrderRequest {
|
||||
public class VVOrderRequest extends AdminBaseDTO {
|
||||
/**
|
||||
* 订单id
|
||||
*/
|
||||
|
||||
@ -6,6 +6,7 @@ import com.heyu.api.common.LogAspect;
|
||||
import com.heyu.api.data.constants.ApiConstants;
|
||||
import com.heyu.api.data.dto.BuyerDTO;
|
||||
import com.heyu.api.data.dto.VVRequestLogDTO;
|
||||
import com.heyu.api.data.dto.vv.VVAdminDTO;
|
||||
import com.heyu.api.data.utils.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
@ -97,66 +98,79 @@ public class ZhenZhenLogAop {
|
||||
|
||||
describe = AnnotationUtils.getAnnotationValueByMethod(method, "Describe", "value");
|
||||
|
||||
|
||||
Class clazz = point.getTarget().getClass();
|
||||
className = clazz.getName();
|
||||
|
||||
token = attributes.getRequest().getHeader("token");
|
||||
Object[] argArrs = point.getArgs();
|
||||
if (uri.startsWith("/app/")) {
|
||||
Object[] argArrs = point.getArgs();
|
||||
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();
|
||||
}
|
||||
}
|
||||
token = attributes.getRequest().getHeader("token");
|
||||
|
||||
|
||||
// 参数封装
|
||||
if (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 (m.getName().startsWith("get")) {
|
||||
String mName = m.getName().substring(3);
|
||||
if ("buyerId".equalsIgnoreCase(mName)) {
|
||||
m.setAccessible(true);
|
||||
|
||||
Object getBuyerId = m.invoke(argArr);
|
||||
if (buyerId == null && getBuyerId != null) {
|
||||
buyerId = NumberUtil.objToLongDefault(getBuyerId, -1L);
|
||||
}
|
||||
if ("getBuyerId".equalsIgnoreCase(m.getName())) {
|
||||
m.setAccessible(true);
|
||||
Object getBuyerId = m.invoke(argArr);
|
||||
if (buyerId == null && getBuyerId != null) {
|
||||
buyerId = NumberUtil.objToLongDefault(getBuyerId, -1L);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (Method m : methods) {
|
||||
if (m.getName().startsWith("set")) {
|
||||
String mName = m.getName().substring(3);
|
||||
//if("buyerId".equalsIgnoreCase(mName)) {
|
||||
// m.setAccessible(true);
|
||||
|
||||
// m.invoke(argArr, new Object[]{buyerId});
|
||||
//}
|
||||
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();
|
||||
}
|
||||
}
|
||||
for (Method m : methods) {
|
||||
//if("buyerId".equalsIgnoreCase(mName)) {
|
||||
// m.setAccessible(true);
|
||||
// m.invoke(argArr, new Object[]{buyerId});
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (uri.startsWith("/mm/")) {
|
||||
token = attributes.getRequest().getHeader("mmToken");
|
||||
Object tokenValue = redisUtils.get(token);
|
||||
// 登录不拦截
|
||||
if (!"/mm/admin/login".equals(uri)) {
|
||||
Object tokenValue = redisUtils.get(token);
|
||||
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;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.heyu.api.alibaba.request.mm.VVAdminRequest;
|
||||
import com.heyu.api.data.constants.RedisConstans;
|
||||
import com.heyu.api.data.dao.vv.VvAdminDao;
|
||||
@ -53,19 +54,21 @@ public class AdminLoginController {
|
||||
// admin123 != '1' or 1 = 1
|
||||
if (vvAdminEntity.getPassword().equals(vvAdminRequest.getPassword())) {
|
||||
String token = MD5Utils.getMD5(System.currentTimeMillis() + vvAdminRequest.getUsername());
|
||||
|
||||
vvAdminDTO.setToken(token);
|
||||
vvAdminDTO.setUsername(vvAdminRequest.getUsername());
|
||||
vvAdminDTO.setExpireTime(DateUtils.addDays(new Date(), 7).getTime());
|
||||
vvAdminDTO.setAdminId(vvAdminEntity.getId());
|
||||
|
||||
VvLoginLogEntity vvLoginLogEntity = new VvLoginLogEntity();
|
||||
vvLoginLogDao.deleteVvLoginLogRealByUserName(vvAdminRequest.getUsername());
|
||||
|
||||
vvLoginLogEntity.setUsername(vvAdminRequest.getUsername());
|
||||
redisUtils.set(token, vvAdminRequest.getUsername(), RedisConstans.SECOND_OF_ONE_7_DAY);
|
||||
|
||||
vvLoginLogEntity.setToken(token);
|
||||
vvLoginLogDao.insertOrUpdateVvLoginLog(vvLoginLogEntity);
|
||||
|
||||
redisUtils.set(token, JSON.toJSONString(vvAdminDTO), RedisConstans.SECOND_OF_ONE_7_DAY);
|
||||
|
||||
return R.ok().setData(vvAdminDTO);
|
||||
}
|
||||
return R.ok("密码错误");
|
||||
|
||||
@ -166,7 +166,6 @@ public class AdminReverseController {
|
||||
vvReverseOrderEntity.setCloseUser(vvApproveRequest.getUserName());
|
||||
vvReverseOrderEntity.setCloseReason(vvApproveRequest.getReason());
|
||||
}
|
||||
|
||||
List<VvReverseOrderLineEntity> vvReverseOrderLineEntities = vvReverseOrderLineDao.selectVvReverseOrderLineByReverseOrderId(vvApproveRequest.getReverseOrderId());
|
||||
List<Long> tradeOrderLineIds = SanUtils.list2FieldList(vvReverseOrderLineEntities, VvReverseOrderLineEntity::getTradeOrderLineId);
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByIds(tradeOrderLineIds);
|
||||
|
||||
@ -38,7 +38,6 @@ public class AppUserLoginController {
|
||||
private WeChatUtils weChatUtils;
|
||||
|
||||
|
||||
|
||||
// http://localhost:8888/app/user/login
|
||||
@RequestMapping("/login")
|
||||
@Describe("微信用户登录")
|
||||
@ -58,14 +57,10 @@ public class AppUserLoginController {
|
||||
|
||||
target.setSessionKey(weiChatLoginDTO.getSessionKey());
|
||||
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 小时
|
||||
redisUtils.set(token, JSON.toJSONString(buyerDTO), RedisUtils.DEFAULT_EXPIRE);
|
||||
BuyerDTO buyerDTO = buildBuyerLoginInfoCacheRedisDB(target, RedisUtils.DEFAULT_EXPIRE);
|
||||
|
||||
return R.ok().put("buyer", buyerDTO);
|
||||
}
|
||||
|
||||
@ -80,12 +75,15 @@ public class AppUserLoginController {
|
||||
log.info("anonymous value:{}", JSON.toJSONString(request));
|
||||
return R.error("设备号不对");
|
||||
}
|
||||
BuyerDTO buyerDTO = new BuyerDTO();
|
||||
buyerDTO.setFlag(UserLoginFlagEnums.anonymous_user.getFlag());
|
||||
Random random = new Random(1000000L);
|
||||
|
||||
Random random = new Random(100000000L);
|
||||
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);
|
||||
}
|
||||
|
||||
@ -102,27 +100,35 @@ public class AppUserLoginController {
|
||||
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.setBuyerId(target.getId());
|
||||
buyerDTO.setBuyerName(target.getBuyerName());
|
||||
buyerDTO.setFlag(target.getIsTest());
|
||||
buyerDTO.setAvatar(target.getAvatar());
|
||||
buyerDTO.setBuyerPhone(target.getBuyerPhone());
|
||||
buyerDTO.setBuyerWeixin(target.getBuyerWeixin());
|
||||
String token = TokenUtils.generateToken(target.getId());
|
||||
redisUtils.set(token, JSON.toJSONString(buyerDTO), expireTime);
|
||||
buyerDTO.setToken(token);
|
||||
// 默认24 小时
|
||||
redisUtils.set(token, JSON.toJSONString(buyerDTO), RedisUtils.DEFAULT_EXPIRE);
|
||||
return R.ok().put("buyer", buyerDTO);
|
||||
return buyerDTO;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/getPhoneNumber")
|
||||
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())); // 解密获取手机号信息
|
||||
// String phoneNumber = phoneInfo.getString("phoneNumber");
|
||||
// JSONObject phoneInfo = JSONObject.parseObject(WxMaCryptUtils.decrypt(sessionKey, request.getEncryptedData(), request.getIv())); // 解密获取手机号信息
|
||||
// String phoneNumber = phoneInfo.getString("phoneNumber");
|
||||
// 更新用户信息并存储到数据库
|
||||
|
||||
// 返回给前端的手机号信息
|
||||
@ -132,5 +138,4 @@ public class AppUserLoginController {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user