Merge remote-tracking branch 'origin/cc_partner_init' into cc_partner_init

This commit is contained in:
guohb
2024-03-22 15:03:11 +08:00
11 changed files with 94 additions and 105 deletions

View File

@@ -16,12 +16,6 @@ public class TRTCUtils {
*/
private static final Long expired = 60 * 60 * 24L;
@Value("${trtc.sdkAppId}")
private Long sdkAppId;
@Value("${trtc.secretKey}")
private String key;
/**
* 生成 userSig 用于进入会议
* 详见 https://cloud.tencent.com/document/product/647/17275#.E8.B0.83.E8.AF.95.E8.B7.91.E9.80.9A.E9.98.B6.E6.AE.B5.E5.A6.82.E4.BD.95.E8.AE.A1.E7.AE.97-UserSig.EF.BC.9F
@@ -36,9 +30,7 @@ public class TRTCUtils {
return tlsSigAPIv2.genUserSig(userId, expiredTime);
}
public String genUserSig(String userId) {
TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, key);
return tlsSigAPIv2.genUserSig(userId, expired);
public static void main(String[] args) {
System.out.println(genUserSig(1600026212L, "e036b654c665f649f053a01ff6f5652a826980027be298d4d49949f6e26434a5", "6488aeaefa7246de9af141c6c6fdd2c7"));
}
}

View File

@@ -130,14 +130,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
}
}
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
LineInfoDO lineInfoDO = lineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){
userInfoVO.setLineId(lineInfoDO.getId());
userInfoVO.setWorkflowStage(lineInfoDO.getWorkflowStage());
userInfoVO.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage());
userInfoVO.setWorkflowSubStageStatus(lineInfoDO.getWorkflowSubStageStatus());
userInfoVO.setLineStatus(lineInfoDO.getLineStatus());
}
fillLineInfo(userInfoVO, hyPartnerUserInfoDO.getPartnerId());
}
userInfoVO.setOpenid(openid);
userInfoVO.setUnionId(unionId);
@@ -160,14 +153,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
if(hyPartnerUserInfoDO != null){
userInfoVO = new PartnerUserInfoVO();
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
LineInfoDO lineInfoDO = lineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){
userInfoVO.setLineId(lineInfoDO.getId());
userInfoVO.setWorkflowStage(lineInfoDO.getWorkflowStage());
userInfoVO.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage());
userInfoVO.setWorkflowSubStageStatus(lineInfoDO.getWorkflowSubStageStatus());
userInfoVO.setLineStatus(lineInfoDO.getLineStatus());
}
fillLineInfo(userInfoVO, hyPartnerUserInfoDO.getPartnerId());
}
return userInfoVO;
}
@@ -229,14 +215,22 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", " ").trim());
}
/*HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){
userInfoVO.setPartnerLineId(lineInfoDO.getId());
}*/
fillLineInfo(userInfoVO, hyPartnerUserInfoDO.getPartnerId());
}
return userInfoVO;
}
private void fillLineInfo(PartnerUserInfoVO userInfoVO, String partnerId) {
LineInfoDO lineInfoDO = lineInfoDAO.getByPartnerId(partnerId);
if (lineInfoDO != null){
userInfoVO.setLineId(lineInfoDO.getId());
userInfoVO.setWorkflowStage(lineInfoDO.getWorkflowStage());
userInfoVO.setWorkflowSubStage(lineInfoDO.getWorkflowSubStage());
userInfoVO.setWorkflowSubStageStatus(lineInfoDO.getWorkflowSubStageStatus());
userInfoVO.setLineStatus(lineInfoDO.getLineStatus());
}
}
@Override
public String getMiniAppUrl() {
MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO = new MiniAppUrlLinkReqDTO();

View File

@@ -5,12 +5,11 @@ import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.WechatMiniAppService;
import com.cool.store.utils.AESDecryptor;
import com.cool.store.utils.Md5Utils;
import com.cool.store.utils.Sha1Utils;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.utils.*;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.vo.PartnerUserInfoVO;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
@@ -48,10 +47,10 @@ public class SignValidateFilter implements Filter {
private static List<String> patternList =
Lists.newArrayList("/web/check/ok","/check/ok",
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
"/partner/mini/program/oss/getUploadFileConfig",
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
"/**/swagger*/**", "/**/webjars/**","/partner/mini/program/v1/partnerManage/openArea/areaApplyQuery");
"/xfsg/doc.html","/xfsg/favicon.ico","/xfsg/v2/api-docs","/**/test/**",
"/xfsg/mini/program/oss/getUploadFileConfig",
"/xfsg/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
"/**/swagger*/**", "/**/webjars/**","/xfsg/mini/program/v1/partnerManage/openArea/areaApplyQuery");
/**
@@ -77,11 +76,16 @@ public class SignValidateFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
/*HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpServletRequest request = (HttpServletRequest) servletRequest;
CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request;
String uri = request.getRequestURI();
if(uri.startsWith("/xfsg/pc")){
filterChain.doFilter(servletRequest, servletResponse);
return;
}
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
HttpServletResponse response = (HttpServletResponse) servletResponse;
CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request;
String method = request.getMethod();
String userStr = "";
boolean isInWhiteList = excludePath(uri);
@@ -99,6 +103,9 @@ public class SignValidateFilter implements Filter {
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);
@@ -120,9 +127,9 @@ public class SignValidateFilter implements Filter {
userStr = JSONObject.toJSONString(partnerUserInfoVO);
log.info("url:{}, userStr:{}", uri, userStr);
}
}*/
}
try {
//PartnerUserHolder.setUser(userStr);
PartnerUserHolder.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse);
} finally {
PartnerUserHolder.removeUser();

View File

@@ -44,19 +44,12 @@ public class TokenValidateFilter implements Filter {
private static List<String> patternList =
Lists.newArrayList("/web/check/ok","/check/ok",
"/partner/pc/doc.html","/partner/pc/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig",
"/xfsg/doc.html","/xfsg/v2/api-docs","/xfsg/favicon.ico","/**/test/**","/xfsg/pc/feiShuLogin","/xfsg/pc/oss/getUploadFileConfig",
"/**/swagger*/**", "/**/webjars/**",
//腾讯音视频回调,单独做验签
"/partner/pc/video/**",
"/xfsg/pc/video/**",
//800回调地址暂时不做验证
"/partner/pc/flow/qualificationReview/callback",
"/**/ecSync/ecToApplet/**",
"/**/ecSync/labelInfo/**",
"/**/ecSync/getCrmCreateTime/**",
"/**/ecSync/historyLine/**",
"/**/ecSync/historyLineTrajectory/**",
"/partner/pc/websocket/**",
"/partner/pc/call/**");
"/xfsg/pc/flow/qualificationReview/callback");
/**
* @param uri
@@ -81,52 +74,55 @@ public class TokenValidateFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
// HttpServletResponse response = (HttpServletResponse) servletResponse;
// HttpServletRequest reqs = (HttpServletRequest) servletRequest;
// String uri = reqs.getRequestURI();
// String method = reqs.getMethod();
// String userStr = "";
// LoginUserInfo currentUser = null;
// boolean isInWhiteList = excludePath(uri);
// String accessToken = reqs.getHeader("accessToken");
// String key = MessageFormat.format(CommonConstants.ACCESS_TOKEN_KEY, accessToken);
// if(StringUtils.isNotBlank(accessToken)){
// userStr = redisUtilPool.getString(key);
// if(StringUtils.isNotBlank(userStr)){
// currentUser = JSON.parseObject(userStr, LoginUserInfo.class);
// }
// }
// log.info("url:{}", uri);
// if ( !isInWhiteList && !method.equals("OPTIONS")) {
// if (StringUtils.isEmpty(accessToken)) {
// response.setStatus(HttpStatus.OK.value());
// response.getWriter().write(JSON.toJSONString(
// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
// return;
// }
// if (Objects.isNull(currentUser)) {
// response.setStatus(HttpStatus.OK.value());
// response.getWriter().write(JSON.toJSONString(
// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
// return;
// }
// log.info("url:{}, access_token:{}, userId:{}, username:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName());
// }
// if(StringUtils.isBlank(userStr) && !isInWhiteList){
// response.setStatus(HttpStatus.OK.value());
// response.getWriter().write(JSON.toJSONString(
// ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
// return;
// }
// try {
// CurrentUserHolder.setUser(userStr);
HttpServletRequest reqs = (HttpServletRequest) servletRequest;
String uri = reqs.getRequestURI();
if(uri.startsWith("/xfsg/mini")){
filterChain.doFilter(servletRequest, servletResponse);
// } finally {
// CurrentUserHolder.removeUser();
// MDC.clear();
// }
//filterChain.doFilter(servletRequest, servletResponse);
return;
}
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
HttpServletResponse response = (HttpServletResponse) servletResponse;
String method = reqs.getMethod();
String userStr = "";
LoginUserInfo currentUser = null;
boolean isInWhiteList = excludePath(uri);
String accessToken = "1d1c34451b51e7180445b74c49b7ab09";//reqs.getHeader("accessToken");
String key = MessageFormat.format(CommonConstants.ACCESS_TOKEN_KEY, accessToken);
if(StringUtils.isNotBlank(accessToken)){
userStr = redisUtilPool.getString(key);
if(StringUtils.isNotBlank(userStr)){
currentUser = JSON.parseObject(userStr, LoginUserInfo.class);
}
}
log.info("url:{}", uri);
if ( !isInWhiteList && !method.equals("OPTIONS")) {
if (StringUtils.isEmpty(accessToken)) {
response.setStatus(HttpStatus.OK.value());
response.getWriter().write(JSON.toJSONString(
ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
return;
}
if (Objects.isNull(currentUser)) {
response.setStatus(HttpStatus.OK.value());
response.getWriter().write(JSON.toJSONString(
ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
return;
}
log.info("url:{}, access_token:{}, userId:{}, username:{}", uri, accessToken, currentUser.getUserId(), currentUser.getName());
}
if(StringUtils.isBlank(userStr) && !isInWhiteList){
response.setStatus(HttpStatus.OK.value());
response.getWriter().write(JSON.toJSONString(
ResponseResult.fail(ErrorCodeEnum.ACCESS_TOKEN_INVALID)));
return;
}
try {
CurrentUserHolder.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse);
} finally {
CurrentUserHolder.removeUser();
MDC.clear();
}
}
@Override

View File

@@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("news")
@RequestMapping("pc/news")
@Api(tags = "PC动态")
@Slf4j
public class ContentController {

View File

@@ -24,7 +24,7 @@ import java.util.List;
*/
@Api(tags = "标签管理")
@RestController
@RequestMapping("/label")
@RequestMapping("pc/label")
public class LabelController {
@Autowired

View File

@@ -26,7 +26,7 @@ import java.util.List;
*/
@Api(tags = {"标签组管理"})
@RestController
@RequestMapping({"/labelGroup"})
@RequestMapping({"pc/labelGroup"})
public class LabelGroupController {
@Autowired
private LabelGroupService labelGroupService;

View File

@@ -28,7 +28,7 @@ import javax.annotation.Resource;
*/
@Api(tags = "线索审核")
@RestController
@RequestMapping({"/audit"})
@RequestMapping({"pc/audit"})
public class LineAuditController {
@Resource

View File

@@ -23,7 +23,7 @@ import java.util.List;
* @Version 1.0
*/
@RestController
@RequestMapping("/openArea")
@RequestMapping("pc/openArea")
@Api(tags = "PC开放城市")
public class OpenAreaController {

View File

@@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/video")
@RequestMapping("pc/video")
@Api(tags = "腾讯音视频接口")
@Slf4j
public class VideoController {

View File

@@ -29,7 +29,7 @@ import java.util.List;
* @date 2024-03-15 16:04
*/
@RestController
@RequestMapping("/interview")
@RequestMapping("/mini/interview")
@Api(tags = "加盟商端-面试&面谈")
@Slf4j
public class LineInterviewController {