From f5c58632e3810408f0cabf92dc1606828de1ce61 Mon Sep 17 00:00:00 2001 From: pserimal Date: Mon, 19 Jun 2023 16:54:05 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=A7=A3=E6=9E=90=E9=9D=A2=E8=AF=95?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E4=BF=A1=E6=81=AFprocessInfoList->vedioList?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/vo/interview/InterviewVO.java | 2 +- .../cool/store/service/impl/InterviewServiceImpl.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java index 55c79cb9e..0c1bbc152 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java @@ -82,7 +82,7 @@ public class InterviewVO { private Integer status; @ApiModelProperty(value = "面试过程信息视频URL数组", required = true) - private List processInfoList; + private List vedioList; @ApiModelProperty(value = "面试过程信息未解析String", required = false) private String processInfo; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java index 7e055b7d1..6348b591d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import java.util.Arrays; import java.util.Date; @@ -74,9 +75,11 @@ public class InterviewServiceImpl implements InterviewService { public InterviewVO getInterviewInfo(String interviewPlanId) { InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId); //将 processInfo 解析为 List - List split = Arrays.asList(vo.getProcessInfo().split(",")); - vo.setProcessInfoList(split); - vo.setProcessInfo(""); + if (!StringUtils.isEmpty(vo.getProcessInfo())) { + List split = Arrays.asList(vo.getProcessInfo().split(",")); + vo.setVedioList(split); + vo.setProcessInfo(""); + } //查询面试官和记录人信息 EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId()); vo.setInterviewerName(interviewerInfo.getName()); From a17da035a6dc198adb04478ad6d8dec656363e21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Mon, 19 Jun 2023 17:04:36 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BF=99=E9=97=B2?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/service/impl/FeiShuServiceImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java index c10af2681..30ef5c972 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java @@ -96,9 +96,8 @@ public class FeiShuServiceImpl implements FeiShuService { long endTimeLong = DateUtil.parse(endStr).getTime(); for (UserFreeBusyInfoDTO userFreeBusyInfoDTO : UserFreeBusyInfoList) { - //如果查询结果中的开始时间和结束时间在时间段内,则设置为忙碌 - if (( userFreeBusyInfoDTO.getStartTime()>startTimeLong && userFreeBusyInfoDTO.getStartTime() < endTimeLong) - || (userFreeBusyInfoDTO.getEndTime() > startTimeLong && userFreeBusyInfoDTO.getEndTime() < endTimeLong)) { + //比较两个时间段是否有重叠 + if(!(endTimeLong <= userFreeBusyInfoDTO.getStartTime() || startTimeLong >= userFreeBusyInfoDTO.getEndTime())){ freeBusyInfo.setFree(false); break; } From dd7b77e3aeb7e562a2d61c6b45dc94a44fff18dd Mon Sep 17 00:00:00 2001 From: pserimal Date: Mon, 19 Jun 2023 18:42:01 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=B5=84=E8=B4=A8=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E4=BF=A1=E6=81=AF=E5=9B=9E=E8=B0=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/utils/PassLetterUtils.java | 8 +- .../HyPartnerCertificationInfoMapper.java | 7 ++ .../mapper/HyPartnerInterviewMapper.java | 7 ++ .../mapper/HyPartnerInterviewPlanMapper.java | 2 +- .../HyPartnerCertificationInfoMapper.xml | 23 +++- .../mapper/HyPartnerInterviewMapper.xml | 43 +++++-- .../mapper/HyPartnerInterviewPlanMapper.xml | 25 ++-- .../com/cool/store/dto/mdm/CallbackDto.java | 49 ++++++++ .../entity/HyPartnerCertificationInfoDO.java | 6 + .../store/entity/HyPartnerInterviewDO.java | 14 ++- .../store/request/GetFreeBusyListReq.java | 4 +- .../request/QualificationCallbackReq.java | 23 ++++ .../com/cool/store/service/FlowService.java | 3 + .../store/service/impl/FlowServiceImpl.java | 112 +++++++++++++++++- .../impl/PartnerInterviewServiceImpl.java | 58 +-------- .../store/controller/ContentController.java | 2 + .../cool/store/controller/FlowController.java | 6 +- .../store/controller/ContentController.java | 42 +++++++ 18 files changed, 341 insertions(+), 93 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/mdm/CallbackDto.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/QualificationCallbackReq.java create mode 100644 coolstore-partner-webc/src/main/java/com/cool/store/controller/ContentController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java index 264061202..dc60e93b1 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java @@ -2,7 +2,6 @@ package com.cool.store.utils; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import com.lowagie.text.Document; import com.lowagie.text.Image; @@ -12,8 +11,7 @@ import com.lowagie.text.pdf.PdfWriter; import java.awt.*; import java.io.*; -import java.nio.file.Files; -import java.nio.file.Paths; +import java.util.Date; //生成资格面试通过函的工具 public class PassLetterUtils { @@ -26,7 +24,7 @@ public class PassLetterUtils { * @param passCode 通过函编码 * @param passTime 审批通过时间 */ - public static ByteArrayOutputStream genPassLetter(String partnerName, String passCode, String verifyCity, DateTime passTime) { + public static ByteArrayOutputStream genPassLetter(String partnerName, String passCode, String verifyCity, Date passTime) { String passTimeStr = DateUtil.format(passTime, "yyyy年MM月dd日"); Document document = new Document(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); @@ -65,7 +63,7 @@ public class PassLetterUtils { * 生成 passCode 的方法,拆分出来方便单独获取 passCode * @return */ - public static String genPassCode(DateTime passTime) { + public static String genPassCode(Date passTime) { String randomNum = RandomUtil.randomNumbers(5); String passCode = "HSAY" + DateUtil.format(passTime, "yyMMdd") + "-" + randomNum; return passCode; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java index 426e1a742..ae1c3a009 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerCertificationInfoMapper.java @@ -22,4 +22,11 @@ public interface HyPartnerCertificationInfoMapper { * dateTime:2023-05-29 03:51 */ int updateByPrimaryKeySelective(@Param("record") HyPartnerCertificationInfoDO record); + + /** + * 根据资质审核流程 id 获取面试会议 id + * @param qualifyVerifyId 资质审核流程 id + * @return 面试会议 id + */ + String getInterviewIdByQualifyVerifyId(@Param("qualifyVerifyId") String qualifyVerifyId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index 5b60798b3..3738bedd1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -79,4 +79,11 @@ public interface HyPartnerInterviewMapper { * 根据面试 id 查询面试信息 */ HyPartnerInterviewDO selectByPrimaryKeySelective(String interviewId); + + /** + * 根据面试 id 获取意向区域 + * @param interviewId + * @return + */ + String getVerifyCityByInterviewId(@Param("interviewId") String interviewId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java index 4e29260e9..bb5f45482 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java @@ -84,7 +84,7 @@ public interface HyPartnerInterviewPlanMapper { /** * 查询面试详情 * - * @param interviewId + * @param interviewPlanId * @return */ InterviewVO getInterviewInfo(String interviewPlanId); diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml index 9d77fcaee..3e9bc528c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml @@ -169,6 +169,12 @@ partnership = #{record.partnership}, + + qualify_verify_id = #{record.qualifyVerifyId}, + + + intention_contract_no = #{record.intentionContractNo}, + want_sign_time = #{record.wantSignTime}, @@ -215,6 +221,21 @@ update_time = #{record.updateTime}, - where id = #{record.id} + + 1 = 0 + + or id = #{record.id} + + + or partner_id_line_id = #{record.partnerLineId} + + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 584bebc81..949f878b6 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -220,8 +220,17 @@ auth_code = #{authCode}, - - pass_file_url = #{passFileUrl}, + + pass_code = #{passCode}, + + + pass_pdf_url = #{passPdfUrl}, + + + pass_image_url = #{passImageUrl}, + + + pass_time = #{passTime}, expiry_date = #{expiryDate}, @@ -250,11 +259,16 @@ interviewer_enter_time = #{interviewerEnterTime}, - - qualify_verify_id = #{qualifyVerifyId}, - - where id = #{id} + + 1 = 0 + + or id = #{id} + + + or interview_plan_id = #{interviewPlanId} + + @@ -338,7 +352,7 @@ select from - hy_partner_intent_info + hy_partner_interview where id = #{interviewId} @@ -364,4 +378,19 @@ WHERE id = #{interviewId} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml index 64c657998..4f8569509 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml @@ -247,41 +247,44 @@ select hpip.id as interviewPlanId, hpi.id as interviewId, - hpi.qualify_verify_id as qualifyVerifyId, + hpci.qualify_verify_id as qualifyVerifyId, + hpci.intention_contract_no as intentionContractNo, hpi.pass_time as passTime, hpi.pass_reason as passReason, hpi.recorder as recorderId, @@ -317,6 +321,7 @@ left join hy_partner_line_info hpll on hpip.partner_line_id = hpll.id left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id left join hy_partner_interview hpi on hpip.id = hpi.interview_plan_id + left join hy_partner_certification_info hpci on hpci.partner_interview_id = hpi.id where hpip.id = #{interviewPlanId} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java index 086a9992d..ed21b250c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/WechatMiniAppService.java @@ -14,7 +14,7 @@ public interface WechatMiniAppService { PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param); - Boolean updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO); + String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO); PartnerUserInfoVO getUserInfo(String mobile, String openId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index 2652e3f63..09cd8136a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -120,7 +120,8 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { } @Override - public Boolean updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO) { + public String updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO) { + String newMobile = ""; HyPartnerUserInfoDO oldUserInfo = hyPartnerUserInfoDAO.selectByMobile(userInfoVO.getMobile()); if (oldUserInfo == null) { throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); @@ -130,19 +131,26 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { // 获取手机号码 PhoneInfoDTO phoneInfoDTO = wechatRest.getUserPhoneNumber(request.getMobileCode(), accessToken); if(phoneInfoDTO != null && phoneInfoDTO.getPhoneInfo() != null && StringUtils.isNotBlank(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){ - HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + newMobile = phoneInfoDTO.getPhoneInfo().getPhoneNumber(); + HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(newMobile); if (newUserInfo != null) { throw new ServiceException(ErrorCodeEnum.NEW_MOBILE_HAS_EXIST); } - oldUserInfo.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + oldUserInfo.setMobile(newMobile); hyPartnerUserInfoDAO.updateByPrimaryKeySelective(oldUserInfo); } - return true; + return newMobile; } @Override public PartnerUserInfoVO getUserInfo(String mobile, String openId) { PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO(); + if(CommonConstants.FIX_MOBILE_OPENID_TEST.equals(mobile) || CommonConstants.FIX_MOBILE_OPENID_ONLINE.equals(mobile) ){ + userInfoVO.setMobile(mobile); + userInfoVO.setOpenid(mobile); + userInfoVO.setPartnerId(""); + return userInfoVO; + } HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(mobile); BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/BodyWrapperFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/BodyWrapperFilter.java new file mode 100644 index 000000000..8f5f063e2 --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/BodyWrapperFilter.java @@ -0,0 +1,26 @@ +package com.cool.store.config; + +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + + +/** + * @Author: JCccc + * @Date: 2022-6-12 10:35 + * @Description: + */ +public class BodyWrapperFilter implements Filter { + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + ServletRequest requestWrapper = null; + if(servletRequest instanceof HttpServletRequest) { + requestWrapper = new CustomHttpServletRequestWrapper((HttpServletRequest) servletRequest); + } + if(requestWrapper == null) { + filterChain.doFilter(servletRequest, servletResponse); + } else { + filterChain.doFilter(requestWrapper, servletResponse); + } + } +} \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/CustomHttpServletRequestWrapper.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/CustomHttpServletRequestWrapper.java new file mode 100644 index 000000000..39bdc210f --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/CustomHttpServletRequestWrapper.java @@ -0,0 +1,60 @@ +package com.cool.store.config; + +import javax.servlet.ReadListener; +import javax.servlet.ServletInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.io.*; +import java.nio.charset.StandardCharsets; + +/** + * @Author: JCccc + * @Date: 2022-6-12 10:36 + * @Description: 重写一个自己的 RequestWrapper 拿出body给自己用 + */ + +public class CustomHttpServletRequestWrapper extends HttpServletRequestWrapper { + private byte[] body; + public CustomHttpServletRequestWrapper(HttpServletRequest request) throws IOException { + super(request); + BufferedReader reader = request.getReader(); + try (StringWriter writer = new StringWriter()) { + int read; + char[] buf = new char[1024 * 8]; + while ((read = reader.read(buf)) != -1) { + writer.write(buf, 0, read); + } + this.body = writer.getBuffer().toString().getBytes(); + } + } + public String getBody(){ + return new String(body, StandardCharsets.UTF_8); + } + @Override + public ServletInputStream getInputStream() { + final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(body); + return new ServletInputStream() { + @Override + public boolean isFinished() { + return false; + } + @Override + public boolean isReady() { + return false; + } + + @Override + public void setReadListener(ReadListener readListener) { + } + + @Override + public int read() { + return byteArrayInputStream.read(); + } + }; + } + @Override + public BufferedReader getReader() { + return new BufferedReader(new InputStreamReader(this.getInputStream())); + } +} \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 929dd3298..5b95485a7 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -7,10 +7,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.response.ResponseResult; import com.cool.store.service.WechatMiniAppService; -import com.cool.store.utils.AesUtil; -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.vo.PartnerUserInfoVO; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; @@ -26,8 +23,10 @@ import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @author ydw @@ -81,41 +80,51 @@ public class SignValidateFilter implements Filter { MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID()); HttpServletResponse response = (HttpServletResponse) servletResponse; HttpServletRequest request = (HttpServletRequest) servletRequest; + CustomHttpServletRequestWrapper wrapper = (CustomHttpServletRequestWrapper) request; String uri = request.getRequestURI(); String method = request.getMethod(); String userStr = ""; boolean isInWhiteList = excludePath(uri); log.info("url:{}", uri); - /* if ( !isInWhiteList && !method.equals("OPTIONS")) { - Map parameterMap = request.getParameterMap(); - String jsonStr = JSONObject.toJSONString(parameterMap); - JSONObject obj = JSONObject.parseObject(jsonStr); - log.info("params:{}", obj.toJSONString()); - String params = obj.toJSONString(); + if ( !isInWhiteList && !method.equals("OPTIONS")) { + String params = ""; + if("GET".equalsIgnoreCase(method)){ + Map parameterMap = new HashMap(); + Map requestMap = request.getParameterMap(); + for(String key : requestMap.keySet()){ + parameterMap.put(key, requestMap.get(key)[0]); + } + params = JSONObject.toJSONString(parameterMap); + }else if("POST".equalsIgnoreCase(method)){ + params = wrapper.getBody(); + // params = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); + } + 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"); - String phone = AesUtil.decrypt(aesPhone, signKey); - String md5Value = phone + Md5Utils.md5(Md5Utils.md5(openid)); - log.info("sign:{}, nonce:{}, timestamp:{},aesPhone:{}, openid:{}, 解密后的手机号:{}, md5Value:{}", - sign, nonce, timestamp, aesPhone, openid, phone, md5Value); + 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("newSign: {}", newSign); + log.info("signStr: {}, newSign: {}", signStr, newSign); // 前后端验签不等 if (!newSign.equals(sign)) { response.setStatus(HttpStatus.OK.value()); response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL))); return; } - PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, openid); + PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, plaintextOpenid); if(partnerUserInfoVO != null){ userStr = JSONObject.toJSONString(partnerUserInfoVO); log.info("url:{}, userStr:{}", uri, userStr); } - }*/ + } try { PartnerUserHolder.setUser(userStr); filterChain.doFilter(servletRequest, servletResponse); diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/WebApplicationConfig.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/WebApplicationConfig.java new file mode 100644 index 000000000..890aedcd4 --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/WebApplicationConfig.java @@ -0,0 +1,29 @@ +package com.cool.store.config; + +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @Author: JCccc + * @Date: 2022-6-23 10:52 + * @Description: + */ +@Configuration +public class WebApplicationConfig { + + @Bean + BodyWrapperFilter getBodyWrapperFilter(){ + return new BodyWrapperFilter(); + } + @Bean("bodyWrapperFilter") + public FilterRegistrationBean checkUserFilter(BodyWrapperFilter bodyWrapperFilter) { + FilterRegistrationBean registrationBean = new FilterRegistrationBean(); + registrationBean.setFilter(bodyWrapperFilter); + registrationBean.addUrlPatterns("/*"); + registrationBean.setOrder(1); + registrationBean.setAsyncSupported(true); + return registrationBean; + } + +} \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java index 46f85bc2a..5a155a1ac 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/MiniProgramAppController.java @@ -38,16 +38,15 @@ public class MiniProgramAppController { @ApiOperation("更新手机号") @PostMapping("/updateUserPhoneNumber") - public ResponseResult updateUserPhoneNumber(@RequestBody @Valid MobileUpdateRequest request) { + public ResponseResult updateUserPhoneNumber(@RequestBody @Valid MobileUpdateRequest request) { PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); return ResponseResult.success(wechatMiniAppService.updateUserPhoneNumber(request, userInfoVO)); } @ApiOperation("根据mobile和openId获取用户信息") - @PostMapping("/getUserInfo") - public ResponseResult getUserInfo(@RequestParam(value = "mobile",required = false) String mobile, - @RequestParam(value = "openId",required = false) String openId){ - PartnerUserInfoVO userInfoVO = wechatMiniAppService.getUserInfo(mobile, openId); + @GetMapping("/getUserInfo") + public ResponseResult getUserInfo(){ + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); return ResponseResult.success(userInfoVO); } } From 3c8b298706fcc148339e31bec2bc2f27f07d18d6 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Mon, 19 Jun 2023 19:54:46 +0800 Subject: [PATCH 5/5] add interface --- .../coolstore-partner-common.iml | 7 +- .../com/cool/store/enums/AppTypeEnum.java | 213 ------------------ .../com/cool/store/enums/AuthRoleEnum.java | 58 ----- .../store/enums/EnterpriseStatusEnum.java | 52 ----- .../com/cool/store/enums/RegionTypeEnum.java | 39 ---- .../java/com/cool/store/enums/RoleEnum.java | 115 ---------- .../cool/store/enums/StoreIsDeleteEnum.java | 35 --- .../store/enums/SubordinateSourceEnum.java | 42 ---- .../store/enums/UserAuthMappingTypeEnum.java | 44 ---- .../cool/store/enums/UserPositionEnum.java | 33 +++ .../cool/store/enums/UserSelectRangeEnum.java | 43 ---- .../coolstore-partner-dao.iml | 7 +- .../com/cool/store/dao/EnterpriseUserDAO.java | 19 ++ .../store/dao/HyIntendDevZoneInfoDAO.java | 14 ++ .../java/com/cool/store/dao/RegionDAO.java | 12 + .../cool/store/dao/UserRegionMappingDAO.java | 12 + .../store/mapper/EnterpriseUserMapper.java | 16 ++ .../mapper/HyIntendDevZoneInfoMapper.java | 7 + .../com/cool/store/mapper/RegionMapper.java | 7 + .../store/mapper/UserRegionMappingMapper.java | 7 + .../resources/mapper/EnterpriseUserMapper.xml | 8 + .../mapper/HyIntendDevZoneInfoMapper.xml | 9 + .../main/resources/mapper/RegionMapper.xml | 4 + .../mapper/UserRegionMappingMapper.xml | 4 + .../coolstore-partner-model.iml | 7 +- .../buser/UserPositionAndUserScopeDTO.java | 23 ++ .../store/service/EnterpriseUserService.java | 16 +- .../impl/EnterpriseSyncServiceImpl.java | 13 +- .../impl/EnterpriseUserServiceImpl.java | 67 +++++- .../coolstore-partner-webb.iml | 7 +- .../cool/store/controller/TestController.java | 6 + .../coolstore-partner-webc.iml | 7 +- 32 files changed, 291 insertions(+), 662 deletions(-) delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java delete mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java diff --git a/coolstore-partner-common/coolstore-partner-common.iml b/coolstore-partner-common/coolstore-partner-common.iml index c7be161ce..39193cf02 100644 --- a/coolstore-partner-common/coolstore-partner-common.iml +++ b/coolstore-partner-common/coolstore-partner-common.iml @@ -87,8 +87,6 @@ - - @@ -109,5 +107,10 @@ + + + + + \ No newline at end of file diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java deleted file mode 100644 index 7da0779c0..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/AppTypeEnum.java +++ /dev/null @@ -1,213 +0,0 @@ -package com.cool.store.enums; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * 应用类型 - */ -public enum AppTypeEnum { - // 数智门店-钉钉 - DING_DING("dingding","数智门店-钉钉"), - - //酷店掌-钉钉 - DING_DING2("dingding2","酷店掌-钉钉"), - - // 企业微信-数智门店 - WX_APP("qw","数智门店-企业微信"), - - // 企业微信-酷店掌 - WX_APP2("qw2","酷店掌-企业微信"), - - //用户自己添加 独立app - APP("app","数智门店-客户端"), - - /** - * 酷店掌-自建企业微信 - */ - WX_SELF_APP("qw_self", "酷店掌-自建企业微信"), - - /** - * 酷店掌-自建企业微信代开发 - */ - WX_SELF_DKF("qw_self_dkf", "酷店掌--自建企业微信代开发"), - - /** - * 酷店掌-企业微信私服 - */ - WX_PRIVATE_APP("qw_private", "酷店掌-企业微信私服"), - - WX_PRIVATE_ZHOU("qw_private_zdf","酷店掌-企业微信私服-周大福"), - - /** - * 门店通应用 - */ - ONE_PARTY_APP("one_party", "门店通-钉钉"), - - /** - * 飞书 - */ - FEI_SHU("fei_shu", "飞书") - - ; - private String value; - - private String message; - - private static final Map map = Arrays.stream(values()).collect(Collectors.toMap(AppTypeEnum::getValue, Function.identity())); - - AppTypeEnum(String value, String message) { - this.value = value; - this.message = message; - } - - public String getValue() { - return value; - } - - public String getMessage() { - return message; - } - - public static String getMessage(String value){ - if(StringUtils.isBlank(value)){ - return ""; - } - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.value.equals(value)){ - return appTypeEnum.message; - } - } - return ""; - } - - public static AppTypeEnum getAppType(String appType){ - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.value.equals(appType)){ - return appTypeEnum; - } - } - if(appType.startsWith(WX_SELF_APP.getValue())) { - return WX_SELF_APP; - } - if(appType.startsWith(WX_PRIVATE_APP.getValue())) { - return WX_PRIVATE_APP; - } - return null; - } - - /** - * 判断是否是钉钉平台 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isDingType(String value) { - if (DING_DING.getValue().equals(value) || DING_DING2.getValue().equals(value) || ONE_PARTY_APP.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是企业微信平台 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isQwType(String value) { - if (WX_APP.getValue().equals(value) || WX_APP2.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是飞书 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isFsType(String value) { - if (FEI_SHU.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是酷店掌 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isCoolStore(String value) { - if (WX_APP2.getValue().equals(value) || DING_DING2.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 判断是否是数智门店 - * @param value - * @author: xugangkun - * @return java.lang.Boolean - * @date: 2021/10/26 15:03 - */ - public static Boolean isCoolCollege(String value) { - if (WX_APP.getValue().equals(value) || DING_DING.getValue().equals(value)) { - return true; - } - return false; - } - - /** - * 是否是企微自建应用或者企微私服 - * @param appType - * @return - */ - public static boolean isWxSelfAndPrivateType(String appType) { - if(StringUtils.isBlank(appType)){ - return false; - } - return appType.startsWith(AppTypeEnum.WX_SELF_APP.getValue()) - || appType.startsWith(AppTypeEnum.WX_PRIVATE_APP.getValue()); - } - - public static boolean qwIsGetUserName(String appType){ - if(StringUtils.isBlank(appType) || isDingType(appType)){ - return false; - } - return appType.startsWith(AppTypeEnum.WX_SELF_APP.getValue()) || appType.startsWith(AppTypeEnum.WX_PRIVATE_APP.getValue()) - || appType.startsWith(AppTypeEnum.WX_SELF_DKF.getValue()) || appType.startsWith(AppTypeEnum.WX_PRIVATE_ZHOU.getValue()); - } - - public static String getCode(String value){ - if(StringUtils.isBlank(value)){ - return ""; - } - for (AppTypeEnum appTypeEnum : AppTypeEnum.values()) { - if(appTypeEnum.message.equals(value)){ - return appTypeEnum.value; - } - } - return ""; - } - - public static AppTypeEnum parseValue(String value) { - return map.get(value); - } - - - - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java deleted file mode 100644 index f2507fce6..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuthRoleEnum.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * describe: - * - * @author zhouyiping - * @date 2020/10/13 - */ -public enum AuthRoleEnum { - /** - * 全企业数据 - */ - ALL("all", "全企业数据"), - - /** - * 所在组织架构包含下级 - */ - INCLUDE_SUBORDINATE("include_subordinate","所在组织架构包含下级"), - - -// /** -// * 所在的组织架构不包含下级 -// */ - NOT_INCLUDE_SUBORDINATE("not_include_subordinate","所在的组织架构不包含下级"), - - /** - * 仅自己的数据 - */ - PERSONAL("personal","仅自己的数据"); - - private String code; - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(AuthRoleEnum::getCode, Function.identity())); - - AuthRoleEnum(String code, String msg){ - this.code=code; - this.msg=msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - public static AuthRoleEnum getByCode(String code) { - return map.get(code); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java deleted file mode 100644 index f94b7cd1f..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/EnterpriseStatusEnum.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.cool.store.enums; - -import java.util.Objects; - -/** - * @author zhangchenbiao - * @FileName: EnterpriseStatusEnum - * @Description: - * @date 2021-09-17 15:53 - */ -public enum EnterpriseStatusEnum { - - /** - * 状态-1 已删除 0初始 1正常 100冻结 88创建失败 - */ - - DELETED(-1,"已删除"), - INIT(0,"初始"), - NORMAL(1,"正常"), - FREEZE(100,"冻结"), - CREATE_FAIL(88,"创建失败"), - ; - - - private int code; - private String message; - - EnterpriseStatusEnum(int code, String message) { - this.code = code; - this.message = message; - } - - public int getCode() { - return code; - } - - public String getMessage() { - return message; - } - - public static String getMessage(Integer code){ - if(Objects.isNull(code)){ - return ""; - } - for (EnterpriseStatusEnum value : EnterpriseStatusEnum.values()) { - if(code.equals(value.code)){ - return value.message; - } - } - return ""; - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java deleted file mode 100644 index b4b3b1c0b..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RegionTypeEnum.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.cool.store.enums; - -/** - * @author Aaron - * @Description 业务统一返回码 - * @date 2019/12/20 - */ -public enum RegionTypeEnum { - /** - * - */ - ROOT("root", "根节点"), - - - PATH("path", "区域"), - - - STORE("store", "门店"); - - - private String type; - - - private String desc; - - RegionTypeEnum(String type, String desc) { - this.type = type; - this.desc = desc; - } - - public String getType() { - return type; - } - - public String getDesc() { - return desc; - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java deleted file mode 100644 index 3301410c2..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RoleEnum.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.cool.store.enums; - -import lombok.Getter; -import lombok.Setter; - -import javax.management.relation.Role; -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -public enum RoleEnum { - - /** - * 管理员 - */ - MASTER("20000000", "管理员", 1,"master"), - /** - * 子管理员 - */ - SUB_MASTER("80000000", "子管理员", 2,"sub_master"), - /** - * 普通员工 - */ - EMPLOYEE("30000000", "未分配", 99999999,"employee"), - /** - * 部门负责人 - */ - DEPT_LEADER("40000000", "部门负责人", 10,"dept_leader"), - /** - * 店长 - */ - SHOPOWNER("50000000", "店长", 3,"shopowner"), - /** - * 运营 - */ - OPERATOR("60000000", "运营", 4,"operator"), - /** - * 店员 - */ - CLERK("70000000", "店员", 5,"clerk"); - - - private static final Map MAP = Arrays.stream(values()).collect( - Collectors.toMap(RoleEnum::getRoleEnum, Function.identity())); - - private static final Map ROLE_ID_MAP = Arrays.stream(values()).collect( - Collectors.toMap(RoleEnum::getId, Function.identity())); - - private String id; - private String name; - @Getter - @Setter - private Integer priority; - - private String roleEnum; - - - RoleEnum(String id, String name, Integer priority, String roleEnum) { - this.id = id; - this.name = name; - this.priority = priority; - this.roleEnum=roleEnum; - } - - public String getId() { - return id; - } - - public String getName() { - return name; - } - - public String getRoleEnum() { - return roleEnum; - } - - public static RoleEnum getByCode(String code) { - return MAP.get(code); - } - - /** - * 是否是管理员 及 子管理员 - * @param code - * @return - */ - public static boolean isAdmin(String code){ - if(MASTER.getRoleEnum().equals(code) || SUB_MASTER.getRoleEnum().equals(code)){ - return true; - } - return false; - } - - /** - * 根据id 判断 是否是管理员 及 子管理员 - * @param id - * @return - */ - public static boolean isAdminById(String id){ - if(MASTER.getId().equals(id) || SUB_MASTER.getId().equals(id)){ - return true; - } - return false; - } - - /** - * 是否包含角色id - * @param roleId - * @return - */ - public static boolean isContainsRoleId(String roleId){ - return ROLE_ID_MAP.containsKey(roleId); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java deleted file mode 100644 index 28d189e8c..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreIsDeleteEnum.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * 门店删除状态枚举 - */ -public enum StoreIsDeleteEnum { - EFFECTIVE("effective"),//有效 - - INVALID("invalid"),//无效 - - IGNORED("ignored"), //忽略 - - UN_SYNC("unSync"); // 未同步 - - private final String value; - - private static final Map map = Arrays.stream(values()).collect(Collectors.toMap(StoreIsDeleteEnum::getValue, Function.identity())); - - StoreIsDeleteEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - public static StoreIsDeleteEnum parse(int value) { - return map.get(value); - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java deleted file mode 100644 index 201e55727..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/SubordinateSourceEnum.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author wxp - * @FileName: SubordinateSourceEnum - * @Description: auto自动关联 select手动选择 - * @date 2022-12-30 17:12 - */ -public enum SubordinateSourceEnum { - - AUTO("auto", "关联区域门店权限"), - SELECT("select", "手动选择"); - - private String code; - - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(SubordinateSourceEnum::getCode, Function.identity())); - - SubordinateSourceEnum(String code, String msg) { - this.code = code; - this.msg = msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - - public static SubordinateSourceEnum getByCode(String code) { - return map.get(code); - } -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java deleted file mode 100644 index 7623ef611..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserAuthMappingTypeEnum.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.cool.store.enums; - - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author zyp - */ -public enum UserAuthMappingTypeEnum { - /** - * 区域 - */ - REGION("region","区域"), - /** - * 门店 - */ - STORE("store","门店"); - - private String code; - private String desc; - public static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(UserAuthMappingTypeEnum::getCode, Function.identity())); - - UserAuthMappingTypeEnum(String code, String desc) { - this.code = code; - this.desc = desc; - } - - public String getCode() { - return code; - } - - public String getDesc() { - return desc; - } - - public static UserAuthMappingTypeEnum getByCode(String code) { - return map.get(code); - } - -} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java new file mode 100644 index 000000000..b119a5300 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPositionEnum.java @@ -0,0 +1,33 @@ +package com.cool.store.enums; + +/** + * @author zhangchenbiao + * @FileName: UserPositionEnum + * @Description:用户身份 + * @date 2023-06-19 16:37 + */ +public enum UserPositionEnum { + + INVESTMENT_MANAGER("investment_manager", "招商经理"), + INVESTMENT_LEADER("investment_leader", "招商负责人"), + DEVELOPMENT_DIRECTOR("development_director", "开发主管"), + DEVELOPMENT_MANAGER("development_manager", "开发经理"), + ; + + private String code; + + private String message; + + UserPositionEnum(String code, String message) { + this.code = code; + this.message = message; + } + + public String getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java deleted file mode 100644 index 66b24ac64..000000000 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserSelectRangeEnum.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.cool.store.enums; - -import java.util.Arrays; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; - -/** - * @author wxp - * @FileName: UserSelectRangeEnum - * @Description: 用户选取范围 共同编辑人范围:self-仅自己,all-全部人员,define-自定义 - * @date 2022-12-30 17:12 - */ -public enum UserSelectRangeEnum { - - SELF("self", "仅自己"), - ALL("all", "全部人员"), - DEFINE("define", "自定义"); - - private String code; - - private String msg; - - protected static final Map map = Arrays.stream(values()).collect( - Collectors.toMap(UserSelectRangeEnum::getCode, Function.identity())); - - UserSelectRangeEnum(String code, String msg) { - this.code = code; - this.msg = msg; - } - - public String getCode() { - return code; - } - - public String getMsg() { - return msg; - } - - public static UserSelectRangeEnum getByCode(String code) { - return map.get(code); - } -} diff --git a/coolstore-partner-dao/coolstore-partner-dao.iml b/coolstore-partner-dao/coolstore-partner-dao.iml index 048685afd..40cb9800b 100644 --- a/coolstore-partner-dao/coolstore-partner-dao.iml +++ b/coolstore-partner-dao/coolstore-partner-dao.iml @@ -110,8 +110,6 @@ - - @@ -131,6 +129,11 @@ + + + + + diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 35df62fe0..c2b568388 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -64,4 +64,23 @@ public class EnterpriseUserDAO { public List searchUserByRegionIdsAndKeyword(List regionIds, String keyword, boolean isLeader){ return enterpriseUserMapper.searchUserByRegionIdsAndKeyword(regionIds, keyword, isLeader); } + + public boolean isExistDeptUser(String regionId){ + if(StringUtils.isBlank(regionId)){ + return false; + } + return enterpriseUserMapper.getUserCountByRegionId(regionId) > CommonConstants.ZERO; + } + + /** + * 获取部门负责人 + * @param regionId + * @return + */ + public List getUserListByDeptLeader(String regionId){ + if(StringUtils.isBlank(regionId)){ + return Lists.newArrayList(); + } + return enterpriseUserMapper.getUserListByDeptLeader(regionId); + } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java index f37b1d57a..674ef6629 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java @@ -5,6 +5,8 @@ import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.mapper.HyIntendDevZoneInfoMapper; import com.cool.store.mapper.HyOpenAreaInfoMapper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -48,4 +50,16 @@ public class HyIntendDevZoneInfoDAO { return hyIntendDevZoneInfoMapper.getHyIntendDevZoneInfoList(type); } + /** + * 根据组织架构获取配置信息 + * @param regionIds + * @return + */ + public List getZoneInfoByRegionIds(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Lists.newArrayList(); + } + return hyIntendDevZoneInfoMapper.getZoneInfoByRegionIds(regionIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java index 4e0b2b782..60f3eaa21 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java @@ -96,4 +96,16 @@ public class RegionDAO { return regionMapper.deleteRegionByRegionId(regionId); } + /** + * 获取所有的子节点 + * @param leadDeptIds + */ + public List getSubRegionIds(List leadDeptIds) { + if(CollectionUtils.isEmpty(leadDeptIds)){ + return Lists.newArrayList(); + } + List regionList = getRegionByRegionIds(leadDeptIds); + List regionPathList = regionList.stream().map(RegionDO::getRegionPath).collect(Collectors.toList()); + return regionMapper.getSubRegionIds(regionPathList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java index 953411d2b..fc8cd9f6f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/UserRegionMappingDAO.java @@ -84,4 +84,16 @@ public class UserRegionMappingDAO { return userRegionMappingMapper.getRegionIdsByUserId(userId); } + /** + * 获取用户列表 + * @param regionIds + * @return + */ + public List getUserListByRegionIds(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Lists.newArrayList(); + } + return userRegionMappingMapper.getUserListByRegionIds(regionIds); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index bb043adb0..81a4bd25b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -61,4 +61,20 @@ public interface EnterpriseUserMapper { * @return */ List searchUserByRegionIdsAndKeyword(@Param("regionIds") List regionIds, @Param("keyword") String keyword, @Param("isLeader") boolean isLeader); + + /** + * 获取部门用户数 + * @param regionId + * @return + */ + Integer getUserCountByRegionId(@Param("regionId") String regionId); + + + /** + * 获取部门负责人用户列表 + * @param regionId + * @return + */ + List getUserListByDeptLeader(String regionId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java index 9358f6e1c..c8d688481 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyIntendDevZoneInfoMapper.java @@ -39,4 +39,11 @@ public interface HyIntendDevZoneInfoMapper { * @return */ List getHyIntendDevZoneInfoList(String type); + + /** + * 根据组织架构获取配置信息 + * @param regionIds + * @return + */ + List getZoneInfoByRegionIds(@Param("regionIds") List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index d3ce3ebd2..21e3dedb4 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -71,4 +71,11 @@ public interface RegionMapper { * @return */ Integer deleteRegionByRegionId(@Param("regionId") String regionId); + + /** + * 获取子节点 + * @param regionPathList + * @return + */ + List getSubRegionIds(@Param("regionPathList") List regionPathList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java index afd2ce57d..acdcc490b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/UserRegionMappingMapper.java @@ -68,4 +68,11 @@ public interface UserRegionMappingMapper { * @return */ List getRegionIdsByUserId(@Param("userId") String userId); + + /** + * 获取用户列表 + * @param regionIds + * @return + */ + List getUserListByRegionIds(@Param("regionIds") List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 7b89849c0..05e6c11b8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -280,4 +280,12 @@ + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml index ec0b55d4a..3158fef7d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyIntendDevZoneInfoMapper.xml @@ -128,4 +128,13 @@ where type = #{type} and deleted = 0 + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index c6f5aeb70..384477ea1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -204,4 +204,8 @@ update region set deleted = 1 where region_id = #{regionId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml index 4560fc962..73df66fb5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/UserRegionMappingMapper.xml @@ -131,4 +131,8 @@ select region_id from user_region_mapping where user_id = #{userId} + + \ No newline at end of file diff --git a/coolstore-partner-model/coolstore-partner-model.iml b/coolstore-partner-model/coolstore-partner-model.iml index 6b15b2012..d570c914c 100644 --- a/coolstore-partner-model/coolstore-partner-model.iml +++ b/coolstore-partner-model/coolstore-partner-model.iml @@ -88,8 +88,6 @@ - - @@ -110,6 +108,11 @@ + + + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java new file mode 100644 index 000000000..74ea3cad7 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/buser/UserPositionAndUserScopeDTO.java @@ -0,0 +1,23 @@ +package com.cool.store.dto.buser; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zhangchenbiao + * @FileName: UserPositionAndUserScopeDTO + * @Description: 员工角色&获取线索范围 + * @date 2023-06-19 16:33 + */ +@Data +public class UserPositionAndUserScopeDTO { + + @ApiModelProperty("招商经理用户ids") + private List investmentUserIds; + + @ApiModelProperty("开发经理用户ids") + private List developmentUserIds; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java index ced52a735..675b05ba2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java @@ -1,11 +1,9 @@ package com.cool.store.service; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.entity.EnterpriseUserDO; -import com.cool.store.request.EnterpriseUserRequest; import com.cool.store.vo.EnterpriseUserSingleInfoVO; -import com.cool.store.vo.buser.EnterpriseUserPageVO; import java.util.List; -import java.util.Map; /** * @author zhangchenbiao @@ -25,4 +23,16 @@ public interface EnterpriseUserService { */ List getInvestmentManagerList(String type,String userId,String keyword); + + /** + * 获取用户角色已用户管辖的员工范围 + * @param userId + * @return + */ + UserPositionAndUserScopeDTO getUserIdsByScope(String userId); + + + + List getDevelopmentDirectorList(String wantShopArea); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java index 450fb20fe..b90cc309a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java @@ -243,9 +243,20 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService { break; case DEPARTMENT_DELETED: boolean leafNode = regionDAO.isLeafNode(departmentDetail.getId()); - if(leafNode){ + boolean isExistUser = enterpriseUserDAO.isExistDeptUser(departmentDetail.getId()); + if(leafNode && !isExistUser){ //叶子节点的时候会删除部门 regionDAO.deleteRegionByRegionId(departmentDetail.getId()); + //清除负责人信息 + List leaderUserList = enterpriseUserDAO.getUserListByDeptLeader(departmentDetail.getId()); + for (EnterpriseUserDO enterpriseUser : leaderUserList) { + List existDeptIds = JSONObject.parseArray(enterpriseUser.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(existDeptIds)){ + existDeptIds.remove(departmentDetail.getId()); + } + enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(existDeptIds)); + } + enterpriseUserDAO.batchInsertOrUpdate(leaderUserList); }else{ syncAll(); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java index f362583ed..f30d0cd05 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java @@ -1,8 +1,13 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.entity.*; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.UserPositionEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.ZoneService; import com.cool.store.vo.EnterpriseUserSingleInfoVO; @@ -10,10 +15,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * @author zhangchenbiao @@ -31,11 +34,13 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { @Resource private EnterpriseUserRoleDAO enterpriseUserRoleDAO; @Resource - ZoneService zoneService; + private ZoneService zoneService; @Resource - RegionDAO regionDAO; + private RegionDAO regionDAO; @Resource - UserRegionMappingDAO userRegionMappingDAO; + private UserRegionMappingDAO userRegionMappingDAO; + @Resource + private HyIntendDevZoneInfoDAO hyIntendDevZoneInfoDAO; @@ -87,4 +92,52 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { }); return enterpriseUserSingleInfoVOS; } + + @Override + public UserPositionAndUserScopeDTO getUserIdsByScope(String userId) { + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + if(Objects.isNull(userInfo)){ + throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST); + } + UserPositionAndUserScopeDTO result = new UserPositionAndUserScopeDTO(); + if(!userInfo.getIsLeader()){ + result.setDevelopmentUserIds(Arrays.asList(userId)); + result.setInvestmentUserIds(Arrays.asList(userId)); + return result; + } + List leadDeptIds = JSONObject.parseArray(userInfo.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList()); + //获取这些区域的子节点 + List subRegionIds = regionDAO.getSubRegionIds(leadDeptIds); + //这些部门是否关联了意向区域 + List zoneInfoList = hyIntendDevZoneInfoDAO.getZoneInfoByRegionIds(subRegionIds); + if(CollectionUtils.isEmpty(zoneInfoList)){ + result.setDevelopmentUserIds(Arrays.asList(userId)); + result.setInvestmentUserIds(Arrays.asList(userId)); + return result; + } + //意向区域 + List intendList = zoneInfoList.stream().filter(o -> "intent".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(intendList)){ + //获取负责的区域 + intendList.retainAll(subRegionIds); + List userList = userRegionMappingDAO.getUserListByRegionIds(intendList); + userList.add(userId); + result.setInvestmentUserIds(userList); + } + //开发区域 + List developementList = zoneInfoList.stream().filter(o -> "developement".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(developementList)){ + //获取负责的区域 + developementList.retainAll(subRegionIds); + List userList = userRegionMappingDAO.getUserListByRegionIds(developementList); + userList.add(userId); + result.setDevelopmentUserIds(userList); + } + return result; + } + + @Override + public List getDevelopmentDirectorList(String wantShopArea) { + return null; + } } diff --git a/coolstore-partner-webb/coolstore-partner-webb.iml b/coolstore-partner-webb/coolstore-partner-webb.iml index a2e227e0b..753dcbc15 100644 --- a/coolstore-partner-webb/coolstore-partner-webb.iml +++ b/coolstore-partner-webb/coolstore-partner-webb.iml @@ -51,6 +51,11 @@ + + + + + @@ -88,8 +93,6 @@ - - diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java index 8a6c7d9c4..81bdfcdbb 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java @@ -2,6 +2,7 @@ package com.cool.store.controller; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dto.buser.UserPositionAndUserScopeDTO; import com.cool.store.dto.calendar.CreateCalendarEventDTO; import com.cool.store.dto.calendar.DeleteCalendarEventDTO; import com.cool.store.dto.calendar.UpdateCalendarEventDTO; @@ -223,4 +224,9 @@ public class TestController { } } + @GetMapping("getUserIdsByScope") + public ResponseResult getUserIdsByScope(@RequestParam("userId") String userId){ + return ResponseResult.success(enterpriseUserService.getUserIdsByScope(userId)); + } + } diff --git a/coolstore-partner-webc/coolstore-partner-webc.iml b/coolstore-partner-webc/coolstore-partner-webc.iml index f6dc12615..ede671b45 100644 --- a/coolstore-partner-webc/coolstore-partner-webc.iml +++ b/coolstore-partner-webc/coolstore-partner-webc.iml @@ -51,6 +51,11 @@ + + + + + @@ -88,8 +93,6 @@ - -