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; private static final Long expired = 60 * 60 * 24L;
@Value("${trtc.sdkAppId}")
private Long sdkAppId;
@Value("${trtc.secretKey}")
private String key;
/** /**
* 生成 userSig 用于进入会议 * 生成 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 * 详见 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); return tlsSigAPIv2.genUserSig(userId, expiredTime);
} }
public String genUserSig(String userId) { public static void main(String[] args) {
TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, key); System.out.println(genUserSig(1600026212L, "e036b654c665f649f053a01ff6f5652a826980027be298d4d49949f6e26434a5", "6488aeaefa7246de9af141c6c6fdd2c7"));
return tlsSigAPIv2.genUserSig(userId, expired);
} }
} }

View File

@@ -130,14 +130,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
} }
} }
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
LineInfoDO lineInfoDO = lineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); fillLineInfo(userInfoVO, 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());
}
} }
userInfoVO.setOpenid(openid); userInfoVO.setOpenid(openid);
userInfoVO.setUnionId(unionId); userInfoVO.setUnionId(unionId);
@@ -160,14 +153,7 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
if(hyPartnerUserInfoDO != null){ if(hyPartnerUserInfoDO != null){
userInfoVO = new PartnerUserInfoVO(); userInfoVO = new PartnerUserInfoVO();
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
LineInfoDO lineInfoDO = lineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); fillLineInfo(userInfoVO, 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());
}
} }
return userInfoVO; return userInfoVO;
} }
@@ -229,14 +215,22 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea())); HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", " ").trim()); userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", " ").trim());
} }
/*HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); fillLineInfo(userInfoVO, hyPartnerUserInfoDO.getPartnerId());
if (lineInfoDO != null){
userInfoVO.setPartnerLineId(lineInfoDO.getId());
}*/
} }
return userInfoVO; 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 @Override
public String getMiniAppUrl() { public String getMiniAppUrl() {
MiniAppUrlLinkReqDTO miniAppUrlLinkReqDTO = new MiniAppUrlLinkReqDTO(); 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.constants.CommonConstants;
import com.cool.store.context.PartnerUserHolder; import com.cool.store.context.PartnerUserHolder;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.service.WechatMiniAppService; import com.cool.store.service.WechatMiniAppService;
import com.cool.store.utils.AESDecryptor; import com.cool.store.utils.*;
import com.cool.store.utils.Md5Utils; import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.Sha1Utils;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.PartnerUserInfoVO;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -48,10 +47,10 @@ public class SignValidateFilter implements Filter {
private static List<String> patternList = private static List<String> patternList =
Lists.newArrayList("/web/check/ok","/check/ok", Lists.newArrayList("/web/check/ok","/check/ok",
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**", "/xfsg/doc.html","/xfsg/favicon.ico","/xfsg/v2/api-docs","/**/test/**",
"/partner/mini/program/oss/getUploadFileConfig", "/xfsg/mini/program/oss/getUploadFileConfig",
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo", "/xfsg/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
"/**/swagger*/**", "/**/webjars/**","/partner/mini/program/v1/partnerManage/openArea/areaApplyQuery"); "/**/swagger*/**", "/**/webjars/**","/xfsg/mini/program/v1/partnerManage/openArea/areaApplyQuery");
/** /**
@@ -77,11 +76,16 @@ public class SignValidateFilter implements Filter {
@Override @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 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; HttpServletRequest request = (HttpServletRequest) servletRequest;
CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request;
String uri = request.getRequestURI(); 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 method = request.getMethod();
String userStr = ""; String userStr = "";
boolean isInWhiteList = excludePath(uri); boolean isInWhiteList = excludePath(uri);
@@ -99,6 +103,9 @@ public class SignValidateFilter implements Filter {
String timestamp = request.getHeader("TIMESTAMP"); String timestamp = request.getHeader("TIMESTAMP");
String aesPhone = request.getHeader("PHONE"); String aesPhone = request.getHeader("PHONE");
String openid = request.getHeader("OPENID"); 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); log.info("aesPhone:{}, signKey:{}", aesPhone, signKey);
String phone = AESDecryptor.decrypt(aesPhone, signKey); String phone = AESDecryptor.decrypt(aesPhone, signKey);
String plaintextOpenid = AESDecryptor.decrypt(openid, signKey); String plaintextOpenid = AESDecryptor.decrypt(openid, signKey);
@@ -120,9 +127,9 @@ public class SignValidateFilter implements Filter {
userStr = JSONObject.toJSONString(partnerUserInfoVO); userStr = JSONObject.toJSONString(partnerUserInfoVO);
log.info("url:{}, userStr:{}", uri, userStr); log.info("url:{}, userStr:{}", uri, userStr);
} }
}*/ }
try { try {
//PartnerUserHolder.setUser(userStr); PartnerUserHolder.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} finally { } finally {
PartnerUserHolder.removeUser(); PartnerUserHolder.removeUser();

View File

@@ -44,19 +44,12 @@ public class TokenValidateFilter implements Filter {
private static List<String> patternList = private static List<String> patternList =
Lists.newArrayList("/web/check/ok","/check/ok", 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/**", "/**/swagger*/**", "/**/webjars/**",
//腾讯音视频回调,单独做验签 //腾讯音视频回调,单独做验签
"/partner/pc/video/**", "/xfsg/pc/video/**",
//800回调地址暂时不做验证 //800回调地址暂时不做验证
"/partner/pc/flow/qualificationReview/callback", "/xfsg/pc/flow/qualificationReview/callback");
"/**/ecSync/ecToApplet/**",
"/**/ecSync/labelInfo/**",
"/**/ecSync/getCrmCreateTime/**",
"/**/ecSync/historyLine/**",
"/**/ecSync/historyLineTrajectory/**",
"/partner/pc/websocket/**",
"/partner/pc/call/**");
/** /**
* @param uri * @param uri
@@ -81,52 +74,55 @@ public class TokenValidateFilter implements Filter {
@Override @Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
// MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); HttpServletRequest reqs = (HttpServletRequest) servletRequest;
// HttpServletResponse response = (HttpServletResponse) servletResponse; String uri = reqs.getRequestURI();
// HttpServletRequest reqs = (HttpServletRequest) servletRequest; if(uri.startsWith("/xfsg/mini")){
// 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);
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
// } finally { return;
// CurrentUserHolder.removeUser(); }
// MDC.clear(); MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
// } HttpServletResponse response = (HttpServletResponse) servletResponse;
//filterChain.doFilter(servletRequest, 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 @Override

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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