feat:门店人员

This commit is contained in:
苏竹红
2025-07-22 15:57:39 +08:00
parent 2530881858
commit 6fad009386
13 changed files with 421 additions and 46 deletions

View File

@@ -58,7 +58,7 @@ public class OpenApiValidateFilter implements Filter {
}
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
//statusRefresh 放开不需要验签
if(uri.startsWith("/zxjp/open/v1/")){
if(uri.startsWith("/zxjp/open/statusRefresh/")){
filterChain.doFilter(servletRequest, response);
return;
}

View File

@@ -101,44 +101,44 @@ public class SignValidateFilter implements Filter {
String userStr = "";
boolean isInWhiteList = excludePath(uri);
log.info("url:{}, method:{}", uri, method);
if ( !isInWhiteList && !method.equals("OPTIONS")) {
String params = "";
if("GET".equalsIgnoreCase(method)){
params = request.getQueryString();
}else if("POST".equalsIgnoreCase(method)){
params = wrapper.getBody();
}
log.info("params:{}", params);
String sign = request.getHeader("SIGN");
String nonce = request.getHeader("NONCE");
String timestamp = request.getHeader("TIMESTAMP");
String aesPhone = request.getHeader("PHONE");
String openid = request.getHeader("OPENID");
if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
}
log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
String phone = AESDecryptor.decrypt(aesPhone, signKey);
String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
String signStr = timestamp + nonce + params + signKey + md5Value;
String newSign = Sha1Utils.getSha1(signStr.getBytes());
log.info("signStr: {}, newSign: {}", signStr, newSign);
// 前后端验签不等
if (!newSign.equals(sign)) {
response.setStatus(HttpStatus.OK.value());
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
return;
}
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
if(partnerUserInfoVO != null){
userStr = JSONObject.toJSONString(partnerUserInfoVO);
log.info("userStr:{}", userStr);
}
}
// if ( !isInWhiteList && !method.equals("OPTIONS")) {
// String params = "";
// if("GET".equalsIgnoreCase(method)){
// params = request.getQueryString();
// }else if("POST".equalsIgnoreCase(method)){
// params = wrapper.getBody();
// }
// log.info("params:{}", params);
// String sign = request.getHeader("SIGN");
// String nonce = request.getHeader("NONCE");
// String timestamp = request.getHeader("TIMESTAMP");
// String aesPhone = request.getHeader("PHONE");
// String openid = request.getHeader("OPENID");
// if(StringUtils.isAnyBlank(sign, nonce, timestamp, aesPhone, openid)){
// throw new ServiceException(ErrorCodeEnum.SIGN_FAIL);
// }
// log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
// String phone = AESDecryptor.decrypt(aesPhone, signKey);
// String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
// String md5Value = phone + Md5Utils.md5(Md5Utils.md5(plaintextOpenid));
// log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}, 明文plaintextOpenid:{}",
// sign, nonce, timestamp, aesPhone, openid, phone, md5Value, plaintextOpenid);
// String signStr = timestamp + nonce + params + signKey + md5Value;
// String newSign = Sha1Utils.getSha1(signStr.getBytes());
// log.info("signStr: {}, newSign: {}", signStr, newSign);
// // 前后端验签不等
// if (!newSign.equals(sign)) {
// response.setStatus(HttpStatus.OK.value());
// response.setContentType("application/json;charset=UTF-8");
// response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
// return;
// }
// PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid);
// if(partnerUserInfoVO != null){
// userStr = JSONObject.toJSONString(partnerUserInfoVO);
// log.info("userStr:{}", userStr);
// }
// }
try {
PartnerUserHolder.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse);

View File

@@ -2,6 +2,7 @@ package com.cool.store.controller.webb;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dto.*;
import com.cool.store.dto.store.StoreUserPositionDTO;
import com.cool.store.request.OpenApiStoreRequest;
import com.cool.store.request.xgj.FranchiseFeeCallBackRequest;
import com.cool.store.request.xgj.ReceiptCallBackRequest;
@@ -71,5 +72,10 @@ public class OpenApiController {
log.info("changePaymentStatus request{}", JSONObject.toJSONString(request));
return openApiService.changePaymentStatus(request);
}
@ApiOperation("获取门店人员信息")
@PostMapping("/getStoreUser")
public ApiResponse<PageInfo<StoreUserPositionDTO>> getStoreUser(@RequestBody @Validated OpenApiStoreRequest dto) {
return ApiResponse.success(storeService.getStoreUser(dto.getPageSize(),dto.getPageNum()));
}
}