diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 81350a0e3..e6650568f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -57,6 +57,10 @@ public enum ErrorCodeEnum { ZONE_NOT_EXIST(500004, "战区不存在!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), + + SIGN_FAIL(600000, "验签失败", null), + GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null), + NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java new file mode 100644 index 000000000..c8867b97f --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserPlatformTypeEnum.java @@ -0,0 +1,43 @@ +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: UserPlatformTypeEnum + * @Description: 用户平台类型 + * @date 2023-06-13 17:12 + */ +public enum UserPlatformTypeEnum { + + WECHAT("wechat", "微信"), + DOUYIN("douyin", "抖音"), + WEIBO("weibo", "微博"); + + private String code; + + private String msg; + + protected static final Map map = Arrays.stream(values()).collect( + Collectors.toMap(UserPlatformTypeEnum::getCode, Function.identity())); + + UserPlatformTypeEnum(String code, String msg) { + this.code = code; + this.msg = msg; + } + + public String getCode() { + return code; + } + + public String getMsg() { + return msg; + } + + public static UserPlatformTypeEnum getByCode(String code) { + return map.get(code); + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java index 79217d723..d21df697f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStageEnum.java @@ -30,8 +30,8 @@ public enum WorkflowStageEnum { public static final HashMap getWorkflowStageMap(){ HashMap result = new HashMap<>(); result.put(INTENT.getCode(),WorkflowStatusEnum.INTENT_3.getCode()); - result.put(RESERVATION.getCode(),WorkflowStatusEnum.RESERVATION_6.getCode()); - result.put(INTERVIEW.getCode(),WorkflowStatusEnum.INTERVIEW_6.getCode()); + result.put(RESERVATION.getCode(),WorkflowStatusEnum.RESERVATION_7.getCode()); + result.put(INTERVIEW.getCode(),WorkflowStatusEnum.INTERVIEW_7.getCode()); return result; } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java index e83971fdf..19979dd45 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/WorkflowStatusEnum.java @@ -14,16 +14,17 @@ public enum WorkflowStatusEnum { //预约面试阶段 RESERVATION_0("0","待预约"), - RESERVATION_6("6","到期未预约"), + RESERVATION_1("1","待审核"), + RESERVATION_7("7","到期未预约"), //合格资格面试 - INTERVIEW_1("1","待面试"), - INTERVIEW_2("2","已开始"), - INTERVIEW_3("3","待审核"), - INTERVIEW_4("4","审核中"), - INTERVIEW_5("5","审核通过"), - INTERVIEW_6("6","拒绝"), + INTERVIEW_2("2","待面试"), + INTERVIEW_3("3","已开始"), + INTERVIEW_4("4","待审核"), + INTERVIEW_5("5","审核中"), + INTERVIEW_6("6","审核通过"), + INTERVIEW_7("7","拒绝"), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java new file mode 100644 index 000000000..1eecf8582 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/Md5Utils.java @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.cool.store.utils; + +import com.cool.store.exception.ServiceException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * The type Md5 utils. + */ +public class Md5Utils { + /** + * logger. + */ + private static final Logger LOG = LoggerFactory.getLogger(Md5Utils.class); + + /** + * Md 5 string. + * + * @param src the src + * @param charset the charset + * + * @return the string + */ + private static String md5(final String src, final String charset) { + MessageDigest md5; + StringBuilder hexValue = new StringBuilder(32); + try { + md5 = MessageDigest.getInstance("MD5"); + } catch (NoSuchAlgorithmException e) { + throw new ServiceException(e.getMessage()); + } + byte[] byteArray = new byte[0]; + try { + byteArray = src.getBytes(charset); + } catch (UnsupportedEncodingException e) { + LOG.error(e.getMessage(), e); + } + byte[] md5Bytes = md5.digest(byteArray); + for (byte md5Byte : md5Bytes) { + int val = ((int) md5Byte) & 0xff; + if (val < 16) { + hexValue.append("0"); + } + hexValue.append(Integer.toHexString(val)); + } + return hexValue.toString(); + } + + /** + * Md 5 string. + * + * @param src the src + * @return the string + */ + public static String md5(final String src) { + return md5(src, StandardCharsets.UTF_8.name()); + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/Sha1Utils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/Sha1Utils.java new file mode 100644 index 000000000..95637a8fa --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/Sha1Utils.java @@ -0,0 +1,22 @@ +package com.cool.store.utils; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class Sha1Utils { + + public static String getSha1(byte[] input) { + try { + MessageDigest mDigest = MessageDigest.getInstance("SHA1"); + byte[] result = mDigest.digest(input); + StringBuffer sb = new StringBuffer(); + for (byte b : result) { + sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1)); + } + return sb.toString(); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + return ""; + } + } +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyAdvancedSettingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyAdvancedSettingDAO.java new file mode 100644 index 000000000..2cafa8ee2 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyAdvancedSettingDAO.java @@ -0,0 +1,37 @@ +package com.cool.store.dao; + +import com.cool.store.entity.HyAdvancedSettingDO; +import com.cool.store.mapper.HyAdvancedSettingMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2023/6/14 20:33 + * @Version 1.0 + */ +@Repository +public class HyAdvancedSettingDAO { + + + @Resource + HyAdvancedSettingMapper hyAdvancedSettingMapper; + + + public int insertSelective(HyAdvancedSettingDO record){ + return hyAdvancedSettingMapper.insertSelective(record); + } + + public int updateByPrimaryKeySelective( HyAdvancedSettingDO record){ + return hyAdvancedSettingMapper.updateByPrimaryKeySelective(record); + } + + + public HyAdvancedSettingDO selectAdvanceSetting(){ + return hyAdvancedSettingMapper.selectAdvanceSetting(); + } + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java new file mode 100644 index 000000000..5edcb6f2e --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java @@ -0,0 +1,34 @@ +package com.cool.store.dao; + +import com.cool.store.entity.HyPartnerClerkDO; +import com.cool.store.mapper.HyPartnerClerkMapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/15 10:09 + * @Version 1.0 + */ +@Repository +public class HyPartnerClerkDAO { + + @Resource + HyPartnerClerkMapper hyPartnerClerkMapper; + + public int insertSelective( HyPartnerClerkDO record){ + return hyPartnerClerkMapper.insertSelective(record); + } + + public int updateByPrimaryKeySelective(HyPartnerClerkDO record){ + return hyPartnerClerkMapper.updateByPrimaryKeySelective(record); + } + + public List getHyPartnerClerkList(Long lineId){ + return hyPartnerClerkMapper.getHyPartnerClerkList(lineId); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java index 21fe496d5..ec703675d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java @@ -5,7 +5,6 @@ import com.cool.store.mapper.HyPartnerUserInfoMapper; 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; import javax.annotation.Resource; @@ -41,6 +40,18 @@ public class HyPartnerUserInfoDAO { return hyPartnerUserInfoMapper.selectByPartnerId(partnerId); } + /** + * 根据mobile查询用户 + * @param mobile + * @return + */ + public HyPartnerUserInfoDO selectByMobile(String mobile){ + if (StringUtils.isEmpty(mobile)){ + return null; + } + return hyPartnerUserInfoMapper.selectByMobile(mobile); + } + /** * 根据PartnerIds批量查询用户 * @param partnerIds @@ -53,4 +64,9 @@ public class HyPartnerUserInfoDAO { return hyPartnerUserInfoMapper.selectByPartnerIds(partnerIds); } + public int insertSelective( HyPartnerUserInfoDO record){ + return hyPartnerUserInfoMapper.insertSelective(record); + } + + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserPlatformBindDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserPlatformBindDAO.java new file mode 100644 index 000000000..9bb48047b --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserPlatformBindDAO.java @@ -0,0 +1,43 @@ +package com.cool.store.dao; + +import com.cool.store.entity.HyPartnerUserPlatformBindDO; +import com.cool.store.mapper.HyPartnerUserPlatformBindMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @Author wxp + * @Date 2023/6/13 19:41 + * @Version 1.0 + */ +@Repository +public class HyPartnerUserPlatformBindDAO { + + + @Resource + HyPartnerUserPlatformBindMapper hyPartnerUserPlatformBindMapper; + + public int insertSelective( HyPartnerUserPlatformBindDO record){ + return hyPartnerUserPlatformBindMapper.insertSelective(record); + } + + public int updateByPrimaryKeySelective(HyPartnerUserPlatformBindDO record){ + return hyPartnerUserPlatformBindMapper.updateByPrimaryKeySelective(record); + } + + public HyPartnerUserPlatformBindDO getByPlatformTypeAndUserId(String platformType, String platformUserId){ + if(StringUtils.isAnyBlank(platformType, platformUserId)){ + return null; + } + return hyPartnerUserPlatformBindMapper.getByPlatformTypeAndUserId(platformType, platformUserId); + } + + public HyPartnerUserPlatformBindDO getByPartnerId(String partnerId){ + if (StringUtils.isEmpty(partnerId)){ + return null; + } + return hyPartnerUserPlatformBindMapper.getByPartnerId(partnerId); + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyAdvancedSettingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyAdvancedSettingMapper.java index 9e2beea92..48519bc5b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyAdvancedSettingMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyAdvancedSettingMapper.java @@ -22,4 +22,10 @@ public interface HyAdvancedSettingMapper { * dateTime:2023-05-29 03:49 */ int updateByPrimaryKeySelective(@Param("record") HyAdvancedSettingDO record); + + /** + * 查询高级设置 + * @return + */ + HyAdvancedSettingDO selectAdvanceSetting(); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java index d428722d2..c463c7bce 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.entity.HyPartnerClerkDO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author zhangchenbiao * @date 2023-05-29 03:51 @@ -22,4 +24,7 @@ public interface HyPartnerClerkMapper { * dateTime:2023-05-29 03:51 */ int updateByPrimaryKeySelective(@Param("record") HyPartnerClerkDO record); + + List getHyPartnerClerkList(@Param("lineId") Long lineId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java index 3c0b9be58..124d573f6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java @@ -32,6 +32,8 @@ public interface HyPartnerUserInfoMapper { */ HyPartnerUserInfoDO selectByPartnerId(@Param("partnerId") String partnerId); + HyPartnerUserInfoDO selectByMobile(@Param("mobile") String mobile); + /** * 根据partnerIDs批量查询用户信息 * @param partnerIdList diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserPlatformBindMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserPlatformBindMapper.java index 253bf461d..66f04e7f1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserPlatformBindMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserPlatformBindMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.entity.HyPartnerUserPlatformBindDO; import org.apache.ibatis.annotations.Param; @@ -22,4 +23,9 @@ public interface HyPartnerUserPlatformBindMapper { * dateTime:2023-05-29 03:53 */ int updateByPrimaryKeySelective(@Param("record") HyPartnerUserPlatformBindDO record); + + HyPartnerUserPlatformBindDO getByPlatformTypeAndUserId(@Param("platformType") String platformType, @Param("platformUserId") String platformUserId); + + HyPartnerUserPlatformBindDO getByPartnerId(@Param("partnerId") String partnerId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml index 490ff459f..e070f52e1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyAdvancedSettingMapper.xml @@ -16,6 +16,13 @@ id, partner_url, allocation_roles, tencent_video_account, tencent_video_key, create_time, update_time, create_user_id, update_user_id + + + insert into hy_advanced_setting @@ -73,32 +80,11 @@ update hy_advanced_setting - - + set partner_url = #{record.partnerUrl}, - - - allocation_roles = #{record.allocationRoles}, - - tencent_video_account = #{record.tencentVideoAccount}, - - tencent_video_key = #{record.tencentVideoKey}, - - - create_time = #{record.createTime}, - - - update_time = #{record.updateTime}, - - - create_user_id = #{record.createUserId}, - - update_user_id = #{record.updateUserId}, - - where id = #{record.id} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml index 3d8f19b42..508288dec 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml @@ -101,4 +101,11 @@ where id = #{record.id} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml index c0e32f713..053fa7474 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -25,6 +25,13 @@ where partner_id = #{partnerId} + + + select + + from + hy_partner_user_platform_bind + where platform_type = #{platformType} and platform_user_id = #{platformUserId} + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java index 704744652..94932f671 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java @@ -13,12 +13,12 @@ import javax.validation.constraints.NotBlank; @Data public class MiniProgramLoginDTO { - @NotBlank(message = "appid不能为空") - private String appid; - @NotBlank(message = "jsCode不能为空") private String jsCode; + @NotBlank(message = "手机号code不能为空") + private String mobileCode; + @NotBlank(message = "用户encryptedData不能为空") private String encryptedData; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/PhoneInfoDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/PhoneInfoDTO.java new file mode 100644 index 000000000..a424549e9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/PhoneInfoDTO.java @@ -0,0 +1,36 @@ +package com.cool.store.dto.wx; + +import com.alibaba.fastjson.annotation.JSONField; +import lombok.Data; + +/** + * @author wxp + * @FileName: PhoneInfoDTO + * @Description: + * @date 2023-06-14 14:28 + */ +@Data +public class PhoneInfoDTO extends WXBaseResultDTO{ + + @JSONField(name = "phone_info") + private PhoneInfo phoneInfo; + + @Data + public static class PhoneInfo{ + /** + * 用户绑定的手机号(国外手机号会有区号) + */ + private String phoneNumber; + + /** + * 没有区号的手机号 + */ + private String purePhoneNumber; + + /** + * 区号 + */ + private String countryCode; + + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AdvancedSettingRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AdvancedSettingRequest.java index c96394dab..b7b89ef75 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/AdvancedSettingRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AdvancedSettingRequest.java @@ -22,6 +22,4 @@ public class AdvancedSettingRequest { private String tencentVideoKey; - private List roleIdList; - } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/MobileUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/MobileUpdateRequest.java new file mode 100644 index 000000000..57b92a74b --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/MobileUpdateRequest.java @@ -0,0 +1,23 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author wxp + * @Date 2023/5/31 11:01 + * @Version 1.0 + */ +@Data +@ApiModel +public class MobileUpdateRequest { + + + @NotBlank(message = "手机号code不能为空") + @ApiModelProperty("手机号code") + private String mobileCode; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/AdvancedSettingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/AdvancedSettingVO.java index bb0da6115..3fd74f2ae 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/AdvancedSettingVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/AdvancedSettingVO.java @@ -22,6 +22,4 @@ public class AdvancedSettingVO { private String tencentVideoKey; - private List roleIdList; - } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/OrganizationVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/OrganizationVO.java index bb5e727a6..b77fc62f9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/OrganizationVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/OrganizationVO.java @@ -14,7 +14,7 @@ import lombok.Data; public class OrganizationVO { @ApiModelProperty("id") - private Long id; + private String id; @ApiModelProperty("组织机构名称") private String name; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java index eb1a9df8f..f520cd576 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerUserInfoVO.java @@ -3,6 +3,9 @@ package com.cool.store.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.commons.lang3.StringUtils; + +import java.util.Objects; /** * @Author suzhuhong @@ -16,6 +19,9 @@ public class PartnerUserInfoVO { @ApiModelProperty("ID") private Long id; + @ApiModelProperty("hy_partner_user_info.partner_id") + private String partnerId; + @ApiModelProperty("手机号") private String mobile; @@ -37,4 +43,22 @@ public class PartnerUserInfoVO { @ApiModelProperty("邀请码") private String inviteCode; + @ApiModelProperty("openid") + private String openid; + + @ApiModelProperty("unionid") + private String unionId; + + @ApiModelProperty("是否需要提交意向信息") + private Boolean isNeedSubmitWantInfo; + + public Boolean getNeedSubmitWantInfo() { + if(StringUtils.isBlank(username) + || StringUtils.isBlank(mobile) + || StringUtils.isBlank(liveArea) + || StringUtils.isBlank(wantShopArea)){ + return true; + } + return false; + } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/wx/CodeSessionVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/wx/CodeSessionVO.java index f182dad81..b47148d61 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/wx/CodeSessionVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/wx/CodeSessionVO.java @@ -1,5 +1,6 @@ package com.cool.store.vo.wx; +import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -15,4 +16,8 @@ public class CodeSessionVO { private String openid; private String unionId; + + private String partnerId; + + private String mobile; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/context/PartnerUserHolder.java b/coolstore-partner-service/src/main/java/com/cool/store/context/PartnerUserHolder.java new file mode 100644 index 000000000..f0562e041 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/context/PartnerUserHolder.java @@ -0,0 +1,34 @@ +package com.cool.store.context; + +import com.alibaba.fastjson.JSON; +import com.cool.store.vo.PartnerUserInfoVO; +import org.apache.commons.lang3.StringUtils; + +/** + * C端登录用户信息 + */ +public class PartnerUserHolder { + + private static final ThreadLocal contextHolder = new ThreadLocal(); + + public static PartnerUserInfoVO getUser() { + String userStr = contextHolder.get(); + if (StringUtils.isNotBlank(userStr)) { + return JSON.parseObject(userStr, PartnerUserInfoVO.class); + } + return new PartnerUserInfoVO(); + } + + public static void setUser(String user) { + contextHolder.set(user); + } + + public static void removeUser(){ + contextHolder.remove(); + } + + + +} + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/WechatRest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/WechatRest.java index 5a1a04981..d9435dbbb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/WechatRest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/WechatRest.java @@ -1,16 +1,20 @@ package com.cool.store.http; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dto.response.ResultDTO; import com.cool.store.dto.wx.CodeSessionDTO; +import com.cool.store.dto.wx.PhoneInfoDTO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; -import com.cool.store.utils.RestTemplateUtil; +import com.cool.store.mq.util.HttpRestTemplateService; +import com.cool.store.utils.RedisUtilPool; import lombok.extern.slf4j.Slf4j; -import org.springframework.http.ResponseEntity; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.HashMap; -import java.util.Map; import java.util.Objects; /** @@ -23,24 +27,81 @@ import java.util.Objects; @Service public class WechatRest { + @Resource + private RedisUtilPool redisUtilPool; + + @Resource + private HttpRestTemplateService httpRestTemplateService; + + /** + * 小程序Token 地址 + */ + String ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; + /** + * 获取手机号码 地址 + */ + String GET_USERPHONENUMBER = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=%s"; + + public CodeSessionDTO miniProgramJsCodeSession(String appId, String secret, String jsCode){ String url = "https://api.weixin.qq.com/sns/jscode2session"; - Map requestMap = new HashMap(); - requestMap.put("appId", appId); + HashMap requestMap = new HashMap(); + requestMap.put("appid", appId); requestMap.put("secret", secret); - requestMap.put("jsCode", jsCode); - ResponseEntity responseEntity = null; + requestMap.put("js_code", jsCode); + requestMap.put("grant_type","authorization_code"); + ResultDTO responseEntity = null; try { - responseEntity = RestTemplateUtil.get(url, CodeSessionDTO.class); - log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); - if(Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()){ - return responseEntity.getBody(); + responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap); + log.info("WechatRest#miniProgramJsCodeSession, url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), CodeSessionDTO.class); } } catch (Exception e) { - log.info("调用微信服务异常{}", e); - throw new ServiceException(ErrorCodeEnum.WX_SERVICE_ERROR); + log.error("调用微信服务异常", e); } return null; } + public String getAccessToken(String appId, String secret) { + String cacheAccessToken = "mini_" + appId; + String accessToken = redisUtilPool.getString(cacheAccessToken); + if (StringUtils.isNotBlank(accessToken)) { + return accessToken; + } + String reqUrl = String.format(ACCESS_TOKEN, appId, secret); + ResultDTO responseEntity = null; + try { + responseEntity = httpRestTemplateService.getForObject(reqUrl, ResultDTO.class, null); + log.info("WechatRest#getAccessToken, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(responseEntity)); + if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){ + JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(responseEntity.getData())); + String token = jsonObject.getString("access_token"); + if (StringUtils.isBlank(token)) { + throw new ServiceException(ErrorCodeEnum.GET_ACCESSTOKEN_ERROR); + } + redisUtilPool.setString(cacheAccessToken, token, 7000); + accessToken = token; + } + } catch (Exception e) { + log.error("获取微信小程序token异常", e); + } + return accessToken; + } + + + public PhoneInfoDTO getUserPhoneNumber(String code, String accessToken){ + String reqUrl = String.format(GET_USERPHONENUMBER, accessToken); + HashMap requestMap = new HashMap(); + requestMap.put("code", code); + PhoneInfoDTO phoneInfoDTO = null; + try { + phoneInfoDTO = httpRestTemplateService.postForObject(reqUrl, requestMap, PhoneInfoDTO.class); + log.info("WechatRest#getUserPhoneNumber, reqUrl:{}, response:{}", reqUrl, JSONObject.toJSONString(phoneInfoDTO)); + } catch (Exception e) { + log.error("获取手机号异常", e); + } + return phoneInfoDTO; + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AdvanceSettingService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AdvanceSettingService.java new file mode 100644 index 000000000..6b57aece8 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AdvanceSettingService.java @@ -0,0 +1,33 @@ +package com.cool.store.service; + +import com.cool.store.request.AdvancedSettingRequest; +import com.cool.store.vo.AdvancedSettingVO; + +/** + * @Author suzhuhong + * @Date 2023/6/14 20:31 + * @Version 1.0 + */ +public interface AdvanceSettingService { + + + /** + * addAdvanceSetting + * @param userId + * @param advancedSettingRequest + * @return + */ + Boolean addOrUpdateAdvanceSetting(String userId, AdvancedSettingRequest advancedSettingRequest); + + + + /** + * 查询高级设置详情 + * @return + */ + AdvancedSettingVO getAdvancedSettingDetail(); + + + + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/DeskService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java similarity index 96% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/DeskService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java index f245f0bab..c95b5b7e2 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/DeskService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java @@ -1,4 +1,4 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.vo.InterviewPlanVO; import com.cool.store.vo.InterviewScheduleInfoVO; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java similarity index 90% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java index 9a6a870eb..d399e597a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerBaseInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java @@ -1,4 +1,4 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.request.AddTagsRequest; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java new file mode 100644 index 000000000..eeeddc963 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java @@ -0,0 +1,25 @@ +package com.cool.store.service; + +import com.cool.store.vo.PartnerClerkVO; + +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/15 11:05 + * @Version 1.0 + */ +public interface HyPartnerClerkService { + + + /** + * 通过线索ID查询店员信息 + * @param lineId + * @return + */ + List getPartnerClerkList(Long lineId); + + + + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java similarity index 96% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java index fcdd9ca82..47a14455b 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java @@ -1,4 +1,4 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerInterviewPlanService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java similarity index 85% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerInterviewPlanService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java index f037111bb..e2f85b6f1 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerInterviewPlanService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java @@ -1,12 +1,9 @@ -package com.cool.store.Service; +package com.cool.store.service; -import com.cool.store.entity.HyPartnerInterviewPlanDO; import com.cool.store.vo.InterviewDetailInfoVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.github.pagehelper.PageInfo; -import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; import java.util.List; /** diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java similarity index 98% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java index 194ef9f71..244fbf860 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/HyPartnerLineInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java @@ -1,4 +1,4 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java similarity index 53% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java index 30bebec4a..7f497aa28 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/OpenAreaService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenAreaService.java @@ -1,8 +1,10 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.request.OpenAreaRequest; import com.cool.store.vo.OpenAreaTreeVO; import com.cool.store.vo.OpenAreaVO; +import com.cool.store.vo.OpenProvinceVO; +import com.github.pagehelper.PageInfo; import java.util.List; @@ -19,7 +21,16 @@ public interface OpenAreaService { * @param keyword * @return */ - List queryByKeyword(String keyword); + List queryByKeyword(String keyword,Boolean flag); + + + /** + * 查询所有的开放区域 城市树 + * @param keyword + * @param flag + * @return + */ + List queryAllOpenAreaByKeyword(String keyword,Boolean flag); /** @@ -38,4 +49,17 @@ public interface OpenAreaService { */ Boolean batchUpdate(String userId, OpenAreaRequest openAreaRequest); + + PageInfo queryKeyOpenAreaList(Integer pageSize, Integer pageNumber); + + + + + /** + * 查询可申请区域 可预约区域 + * @return + */ + OpenProvinceVO getOpenProvince(); + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java new file mode 100644 index 000000000..778cfd105 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java @@ -0,0 +1,5 @@ +package com.cool.store.service; + +public interface PartnerUserInfoService { + +} 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 ef81ba5f9..086a9992d 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 @@ -1,10 +1,8 @@ package com.cool.store.service; import com.cool.store.dto.wx.MiniProgramLoginDTO; -import com.cool.store.dto.wx.MiniProgramMsgDTO; -import com.cool.store.vo.wx.CodeSessionVO; -import com.cool.store.vo.wx.MiniProgramUserVO; - +import com.cool.store.request.MobileUpdateRequest; +import com.cool.store.vo.PartnerUserInfoVO; /** * @author zhangchenbiao * @FileName: WechatMiniAppService @@ -14,9 +12,9 @@ import com.cool.store.vo.wx.MiniProgramUserVO; public interface WechatMiniAppService { - CodeSessionVO miniProgramLogin(MiniProgramLoginDTO param); + PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param); - CodeSessionVO getUserPhoneNumber(MiniProgramLoginDTO param); + Boolean updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO); - CodeSessionVO queryMiniProgramUser(MiniProgramMsgDTO param); + PartnerUserInfoVO getUserInfo(String mobile, String openId); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/ZoneService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java similarity index 95% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/ZoneService.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java index c83a1c205..8526bccfd 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/ZoneService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java @@ -1,10 +1,9 @@ -package com.cool.store.Service; +package com.cool.store.service; import com.cool.store.request.IntentAreaSettingRequest; import com.cool.store.vo.ZoneCheckVO; import com.cool.store.vo.ZoneVO; import com.github.pagehelper.PageInfo; -import io.swagger.models.auth.In; import java.util.List; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java new file mode 100644 index 000000000..2ab4301ac --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AdvanceSettingServiceImpl.java @@ -0,0 +1,63 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.HyAdvancedSettingDAO; +import com.cool.store.entity.HyAdvancedSettingDO; +import com.cool.store.request.AdvancedSettingRequest; +import com.cool.store.service.AdvanceSettingService; +import com.cool.store.vo.AdvancedSettingVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2023/6/14 20:31 + * @Version 1.0 + */ +@Service +public class AdvanceSettingServiceImpl implements AdvanceSettingService { + + @Resource + HyAdvancedSettingDAO hyAdvancedSettingDAO; + + + @Override + public Boolean addOrUpdateAdvanceSetting(String userId, AdvancedSettingRequest advancedSettingRequest) { + if (advancedSettingRequest.getId()!=null){ + //修改 + updateAdvanceSetting(userId,advancedSettingRequest); + } + HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO(); + hyAdvancedSettingDO.setCreateUserId(userId); + hyAdvancedSettingDO.setPartnerUrl(advancedSettingRequest.getPartnerUrl()); + hyAdvancedSettingDO.setTencentVideoAccount(advancedSettingRequest.getTencentVideoAccount()); + hyAdvancedSettingDO.setTencentVideoKey(advancedSettingRequest.getTencentVideoKey()); + hyAdvancedSettingDAO.insertSelective(hyAdvancedSettingDO); + return Boolean.TRUE; + } + + private Boolean updateAdvanceSetting(String userId, AdvancedSettingRequest advancedSettingRequest) { + HyAdvancedSettingDO hyAdvancedSettingDO = new HyAdvancedSettingDO(); + hyAdvancedSettingDO.setCreateUserId(userId); + hyAdvancedSettingDO.setId(advancedSettingRequest.getId()); + hyAdvancedSettingDO.setPartnerUrl(advancedSettingRequest.getPartnerUrl()); + hyAdvancedSettingDO.setTencentVideoAccount(advancedSettingRequest.getTencentVideoAccount()); + hyAdvancedSettingDO.setTencentVideoKey(advancedSettingRequest.getTencentVideoKey()); + hyAdvancedSettingDAO.updateByPrimaryKeySelective(hyAdvancedSettingDO); + return Boolean.TRUE; + } + + @Override + public AdvancedSettingVO getAdvancedSettingDetail() { + HyAdvancedSettingDO hyAdvancedSettingDO = hyAdvancedSettingDAO.selectAdvanceSetting(); + if (hyAdvancedSettingDO==null){ + return null; + } + AdvancedSettingVO advancedSettingVO = new AdvancedSettingVO(); + advancedSettingVO.setId(hyAdvancedSettingDO.getId()); + advancedSettingVO.setPartnerUrl(hyAdvancedSettingDO.getPartnerUrl()); + advancedSettingVO.setTencentVideoAccount(hyAdvancedSettingDO.getTencentVideoAccount()); + advancedSettingVO.setTencentVideoKey(hyAdvancedSettingDO.getTencentVideoKey()); + return advancedSettingVO; + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java similarity index 92% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/DeskServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index c769b8c78..e33bd2651 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -1,23 +1,21 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; -import com.cool.store.Service.DeskService; -import com.cool.store.Service.HyPartnerInterviewPlanService; -import com.cool.store.Service.HyPartnerLineInfoService; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerInterviewPlanDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO; -import com.cool.store.entity.HyPartnerInterviewPlanDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; +import com.cool.store.service.DeskService; +import com.cool.store.service.HyPartnerInterviewPlanService; +import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.vo.InterviewDetailInfoVO; import com.cool.store.vo.InterviewPlanVO; import com.cool.store.vo.InterviewScheduleInfoVO; import com.cool.store.vo.StageCountVO; import org.apache.commons.lang3.StringUtils; -import org.apache.http.client.utils.DateUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java similarity index 89% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java index 587b0ec83..af7181b85 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerBaseInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java @@ -1,15 +1,14 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; -import com.cool.store.Service.HyPartnerBaseInfoService; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.entity.HyPartnerBaseInfoDO; import com.cool.store.request.AddTagsRequest; +import com.cool.store.service.HyPartnerBaseInfoService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Collection; /** * @Author suzhuhong diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java new file mode 100644 index 000000000..26b945c7a --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java @@ -0,0 +1,41 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.HyPartnerClerkDAO; +import com.cool.store.entity.HyPartnerClerkDO; +import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.vo.PartnerClerkVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/15 11:05 + * @Version 1.0 + */ +@Service +public class HyPartnerClerkImpl implements HyPartnerClerkService { + + @Resource + HyPartnerClerkDAO hyPartnerClerkDAO; + + + @Override + public List getPartnerClerkList(Long lineId) { + List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); + List result= new ArrayList<>(); + hyPartnerClerkList.forEach(x->{ + PartnerClerkVO partnerClerkVO = new PartnerClerkVO(); + partnerClerkVO.setPartnerId(x.getPartnerId()); + partnerClerkVO.setPartnerLineId(x.getPartnerLineId()); + partnerClerkVO.setAge(x.getAge()); + partnerClerkVO.setChooseReason(x.getChooseReason()); + partnerClerkVO.setUsername(x.getUsername()); + partnerClerkVO.setRelationship(x.getRelationship()); + result.add(partnerClerkVO); + }); + return result; + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java similarity index 95% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index 80f35d7ae..b3c43a44e 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -1,21 +1,18 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; -import com.cool.store.Service.HyPartnerIntentInfoService; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; -import com.cool.store.entity.HyPartnerIntentInfoDO; -import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; -import com.cool.store.mapper.HyPartnerBaseInfoMapper; import com.cool.store.request.BaseUserInfoRequest; +import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -53,7 +50,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic workflowStatus = WorkflowStatusEnum.RESERVATION_0.getCode(); } if (CommonConstants.FOLLOW.equals(type)) { - workflowStatus = WorkflowStatusEnum.INTERVIEW_4.getCode(); + workflowStatus = WorkflowStatusEnum.INTERVIEW_5.getCode(); } PageHelper.startPage(pageNumber,pageSize); PageInfo partnerIntentApplyInfo = hyPartnerIntentInfoDAO.selectPartnerIntentApplyInfoList(userId, WorkflowStageEnum.INTENT.getCode(), workflowStatus); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java similarity index 96% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerInterviewPlanServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index fac20b4c9..2e5a6e6f7 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -1,7 +1,6 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; -import com.cool.store.Service.HyPartnerInterviewPlanService; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerInterviewPlanDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; @@ -10,6 +9,7 @@ import com.cool.store.entity.HyPartnerInterviewPlanDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.service.HyPartnerInterviewPlanService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.vo.InterviewDetailInfoVO; import com.cool.store.vo.PartnerInterviewInfoVO; @@ -20,7 +20,10 @@ import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -81,10 +84,10 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan public PageInfo getQualifiedInterviewList(String userId, String type, Integer pageSize, Integer pageNumber) { String workflowStatus = ""; if (CommonConstants.PENDING.equals(type)) { - workflowStatus = WorkflowStatusEnum.INTERVIEW_3.getCode(); + workflowStatus = WorkflowStatusEnum.INTERVIEW_4.getCode(); } if (CommonConstants.FOLLOW.equals(type)) { - workflowStatus = WorkflowStatusEnum.INTERVIEW_4.getCode(); + workflowStatus = WorkflowStatusEnum.INTERVIEW_5.getCode(); } PageHelper.startPage(pageNumber,pageSize); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java similarity index 97% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 691775d96..10ec43267 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -1,9 +1,7 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.JSONPObject; -import com.cool.store.Service.HyPartnerLineInfoService; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dto.partner.PartnerBlackListDTO; @@ -18,6 +16,7 @@ import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; +import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.StringUtil; import com.cool.store.vo.BlackListVO; @@ -26,16 +25,11 @@ import com.cool.store.vo.PartnerLineInfoVO; import com.cool.store.vo.StageCountVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.google.gson.JsonObject; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java similarity index 80% rename from coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java index 22022bdcd..5fb5b549e 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/service/Impl/OpenAreaServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenAreaServiceImpl.java @@ -1,10 +1,11 @@ -package com.cool.store.service.Impl; +package com.cool.store.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.HyOpenAreaInfoDAO; import com.cool.store.dto.partner.ApplyReservationProvinceDTO; import com.cool.store.entity.HyOpenAreaInfoDO; +import com.cool.store.request.OpenAreaRequest; import com.cool.store.service.OpenAreaService; import com.cool.store.vo.OpenAreaTreeVO; import com.cool.store.vo.OpenAreaVO; @@ -20,61 +21,50 @@ import java.util.stream.Collectors; /** * @Author suzhuhong - * @Date 2023/6/6 14:28 + * @Date 2023/6/13 22:11 * @Version 1.0 */ @Service public class OpenAreaServiceImpl implements OpenAreaService { - @Resource HyOpenAreaInfoDAO hyOpenAreaInfoDAO; @Override - public PageInfo queryKeyOpenAreaList(Integer pageSize, Integer pageNumber) { - PageHelper.startPage(pageNumber,pageSize); - PageInfo hyOpenAreaInfoDOPageInfo = hyOpenAreaInfoDAO.queryKeyOpenArea(); - if (hyOpenAreaInfoDOPageInfo==null){ - return new PageInfo<>(); - } - List list = new ArrayList<>(); - List hyOpenAreaInfoDOList = hyOpenAreaInfoDOPageInfo.getList(); - hyOpenAreaInfoDOList.stream().forEach(x->{ - list.add(convertDoToVo(x)); - }); - hyOpenAreaInfoDOPageInfo.setList(list); - return hyOpenAreaInfoDOPageInfo; - } - - - /** - * List DO->VO - * @param hyOpenAreaInfoDO - * @return - */ - private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){ - OpenAreaVO openAreaVO = new OpenAreaVO(); - openAreaVO.setId(hyOpenAreaInfoDO.getId()); - openAreaVO.setAreaName(hyOpenAreaInfoDO.getAreaName()); - openAreaVO.setParentId(hyOpenAreaInfoDO.getParentId()); - openAreaVO.setAreaPath(hyOpenAreaInfoDO.getAreaPath()); - openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus()); - openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner()); - openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner()); - return openAreaVO; - } - - - - @Override - public List queryByKeyword(String keyword) { + public List queryByKeyword(String keyword,Boolean flag) { //先查出所有的一级菜单 List openArea = hyOpenAreaInfoDAO.queryFirstLevel(); Map longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); //查询关键字下所有的数据 原始的数据 - List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.FALSE); + List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,flag); + Set longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet()); + + hyOpenAreaInfoDOS.stream().forEach(x->{ + Long parentId = x.getParentId(); + + if (parentId!=null&&!longSet.contains(parentId)){ + //添加到集合中 + longSet.add(x.getParentId()); + HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId); + hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO); + } + }); + + JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" ); + List openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class); + return openAreaTreeVOS; + } + + @Override + public List queryAllOpenAreaByKeyword(String keyword, Boolean flag) { + //先查出所有的一级菜单 + List openArea = hyOpenAreaInfoDAO.queryFirstLevel(); + Map longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); + + //查询关键字下所有的数据 原始的数据 + List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,flag); Map hyMap = hyOpenAreaInfoDOS.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); @@ -114,6 +104,43 @@ public class OpenAreaServiceImpl implements OpenAreaService { return openAreaTreeVOS; } + @Override + public List getChildrenList(String type, Long parentId) { + List childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId); + List result = new ArrayList<>(); + childrenList.stream().forEach(x->{ + OpenAreaVO openAreaVO = convertDoToVo(x); + result.add(openAreaVO); + }); + return result; + } + + @Override + public Boolean batchUpdate(String userId, OpenAreaRequest request) { + //修改选择的区域 + hyOpenAreaInfoDAO.batchUpdateById(request.getBackgroundBanner(),request.getDetailBanner(),request.getStatus(),userId,request.getIdList()); + //修改选择区域的子区域 + hyOpenAreaInfoDAO.batchUpdateByParentId(request.getBackgroundBanner(),request.getDetailBanner(),request.getStatus(),userId,request.getIdList()); + + return Boolean.TRUE; + } + + @Override + public PageInfo queryKeyOpenAreaList(Integer pageSize, Integer pageNumber) { + PageHelper.startPage(pageNumber,pageSize); + PageInfo hyOpenAreaInfoDOPageInfo = hyOpenAreaInfoDAO.queryKeyOpenArea(); + if (hyOpenAreaInfoDOPageInfo==null){ + return new PageInfo<>(); + } + List list = new ArrayList<>(); + List hyOpenAreaInfoDOList = hyOpenAreaInfoDOPageInfo.getList(); + hyOpenAreaInfoDOList.stream().forEach(x->{ + list.add(convertDoToVo(x)); + }); + hyOpenAreaInfoDOPageInfo.setList(list); + return hyOpenAreaInfoDOPageInfo; + } + @Override public OpenProvinceVO getOpenProvince() { //先查出所有的一级菜单 @@ -139,20 +166,21 @@ public class OpenAreaServiceImpl implements OpenAreaService { return openProvinceVO; } - @Override - public List getChildrenList(String type, Long parentId) { - List childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId); - List result = new ArrayList<>(); - childrenList.stream().forEach(x->{ - OpenAreaVO openAreaVO = convertDoToVo(x); - result.add(openAreaVO); - }); - return result; + private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){ + OpenAreaVO openAreaVO = new OpenAreaVO(); + openAreaVO.setId(hyOpenAreaInfoDO.getId()); + openAreaVO.setAreaName(hyOpenAreaInfoDO.getAreaName()); + openAreaVO.setParentId(hyOpenAreaInfoDO.getParentId()); + openAreaVO.setAreaPath(hyOpenAreaInfoDO.getAreaPath()); + openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus()); + openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner()); + openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner()); + return openAreaVO; } /** - * 组装城市树 + * 构建树 * @param arr * @param id * @param pid diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java new file mode 100644 index 000000000..e7ee84666 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -0,0 +1,14 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.service.PartnerUserInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { + + @Autowired + private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + +} 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 24f7d9884..4ba5554b6 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 @@ -1,24 +1,36 @@ package com.cool.store.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSON; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.HyPartnerLineInfoDAO; +import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.dao.HyPartnerUserPlatformBindDAO; import com.cool.store.dto.wx.CodeSessionDTO; import com.cool.store.dto.wx.MiniProgramLoginDTO; -import com.cool.store.dto.wx.MiniProgramMsgDTO; +import com.cool.store.dto.wx.PhoneInfoDTO; +import com.cool.store.entity.HyPartnerLineInfoDO; +import com.cool.store.entity.HyPartnerUserInfoDO; +import com.cool.store.entity.HyPartnerUserPlatformBindDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.UserPlatformTypeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.http.WechatRest; +import com.cool.store.request.MobileUpdateRequest; import com.cool.store.service.WechatMiniAppService; import com.cool.store.utils.AesUtil; import com.cool.store.utils.RedisUtilPool; -import com.cool.store.vo.wx.CodeSessionVO; +import com.cool.store.utils.UUIDUtils; +import com.cool.store.vo.PartnerUserInfoVO; import com.cool.store.vo.wx.MiniProgramUserVO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.MessageFormat; +import java.util.Date; import java.util.Objects; /** @@ -35,49 +47,105 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { private RedisUtilPool redisUtilPool; @Resource private WechatRest wechatRest; + @Resource + private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + private HyPartnerUserPlatformBindDAO hyPartnerUserPlatformBindDAO; + @Resource + private HyPartnerLineInfoDAO hyPartnerLineInfoDAO; + + @Value("${weixin.appId}") + private String wxAppId; + @Value("${weixin.appSecret}") + private String wxAppSecret; + @Override - public CodeSessionVO miniProgramLogin(MiniProgramLoginDTO param) { + public PartnerUserInfoVO miniProgramLogin(MiniProgramLoginDTO param) { + PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO(); String jsCode = param.getJsCode(); - String lockKey = "codeSession:" + param.getAppid() + CommonConstants.MOSAICS + jsCode; + String lockKey = "codeSession:" + wxAppId + CommonConstants.MOSAICS + jsCode; boolean lock = redisUtilPool.lock(lockKey); if (!lock) { throw new ServiceException(ErrorCodeEnum.OPERATION_OVER_TIME); } - String appid = param.getAppid(); - String secret = redisUtilPool.getString(MessageFormat.format(CommonConstants.WX_APP_SECRET_KEY, appid)); - if(StringUtils.isBlank(secret)){ - throw new ServiceException(ErrorCodeEnum.GET_APP_SECRET_ERROR); - } - CodeSessionDTO codeSession = wechatRest.miniProgramJsCodeSession(appid, secret, jsCode); + CodeSessionDTO codeSession = wechatRest.miniProgramJsCodeSession(wxAppId, wxAppSecret, jsCode); String openid = codeSession.getOpenid(); - String sessionCacheKey = MessageFormat.format(CommonConstants.MINI_PROGRAM_SESSION_KEY, appid, openid); + String sessionCacheKey = MessageFormat.format(CommonConstants.MINI_PROGRAM_SESSION_KEY, wxAppId, openid); redisUtilPool.setString(sessionCacheKey, codeSession.getSessionKey(), CommonConstants.THREE_DAY_SECONDS); String unionId = codeSession.getUnionId(); log.info("小程序登录:{}", unionId); - //todo 保存授权信息 判断是否第一次授权 - return CodeSessionVO.builder().openid(openid).unionId(unionId).build(); - } - - @Override - public CodeSessionVO getUserPhoneNumber(MiniProgramLoginDTO param) { - return null; - } - - @Override - public CodeSessionVO queryMiniProgramUser(MiniProgramMsgDTO param) { - String sessionCacheKey = MessageFormat.format(CommonConstants.MINI_PROGRAM_SESSION_KEY, param.getAppid(), param.getOpenid()); - String sessionKey = redisUtilPool.getString(sessionCacheKey); - if (StringUtils.isBlank(sessionKey)) { - throw new ServiceException(ErrorCodeEnum.SESSION_KEY_ERROR); - } - log.info("sessionKey {}", sessionKey); - String decryptUser = AesUtil.decryptWechat(sessionKey, param.getEncryptedData(), param.getIvStr()); + log.info("sessionKey {}", codeSession.getSessionKey()); + String decryptUser = AesUtil.decryptWechat(codeSession.getSessionKey(), param.getEncryptedData(), param.getIvStr()); log.info("解密用户信息:{}", decryptUser); MiniProgramUserVO miniProgramUser = JSON.parseObject(decryptUser, MiniProgramUserVO.class); if (Objects.isNull(miniProgramUser)) { throw new ServiceException(ErrorCodeEnum.GET_WECHAT_USER_INFO_FAIL); } - return new CodeSessionVO(); + // 获取小程序token + String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret); + // 获取手机号码 + PhoneInfoDTO phoneInfoDTO = wechatRest.getUserPhoneNumber(param.getMobileCode(), accessToken); + if(phoneInfoDTO != null && phoneInfoDTO.getPhoneInfo() != null && StringUtils.isNotBlank(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){ + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + if(hyPartnerUserInfoDO == null){ + hyPartnerUserInfoDO = new HyPartnerUserInfoDO(); + hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + hyPartnerUserInfoDO.setUsername(miniProgramUser.getNickName()); + hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID()); + hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO); + // 生成一条线索 + HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); + hyPartnerLineInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); + hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO); + } + HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPlatformTypeAndUserId(UserPlatformTypeEnum.WECHAT.getCode(), openid); + if(hyPartnerUserPlatformBindDO == null){ + hyPartnerUserPlatformBindDO = new HyPartnerUserPlatformBindDO(); + hyPartnerUserPlatformBindDO.setPlatformType(UserPlatformTypeEnum.WECHAT.getCode()); + hyPartnerUserPlatformBindDO.setPlatformUserId(openid); + hyPartnerUserPlatformBindDO.setBindTime(new Date()); + hyPartnerUserPlatformBindDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); + hyPartnerUserPlatformBindDAO.insertSelective(hyPartnerUserPlatformBindDO); + } + userInfoVO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); + userInfoVO.setMobile(hyPartnerUserInfoDO.getMobile()); + userInfoVO.setUsername(hyPartnerUserInfoDO.getUsername()); + } + userInfoVO.setOpenid(openid); + userInfoVO.setUnionId(unionId); + return userInfoVO; } + + @Override + public Boolean updateUserPhoneNumber(MobileUpdateRequest request, PartnerUserInfoVO userInfoVO) { + HyPartnerUserInfoDO oldUserInfo = hyPartnerUserInfoDAO.selectByMobile(userInfoVO.getMobile()); + if (oldUserInfo == null) { + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + // 获取小程序token + String accessToken = wechatRest.getAccessToken(wxAppId, wxAppSecret); + // 获取手机号码 + 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()); + if (newUserInfo != null) { + throw new ServiceException(ErrorCodeEnum.NEW_MOBILE_HAS_EXIST); + } + oldUserInfo.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + hyPartnerUserInfoDAO.updateByPrimaryKeySelective(oldUserInfo); + } + return true; + } + + @Override + public PartnerUserInfoVO getUserInfo(String mobile, String openId) { + PartnerUserInfoVO userInfoVO = new PartnerUserInfoVO(); + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(mobile); + BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); + HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + userInfoVO.setOpenid(hyPartnerUserPlatformBindDO.getPlatformUserId()); + return userInfoVO; + } + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/ZoneServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java similarity index 72% rename from coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/ZoneServiceImpl.java rename to coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java index 75a130652..52aae654d 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/ZoneServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java @@ -1,11 +1,7 @@ -package com.cool.store.Service.impl; +package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; -import com.cool.store.Service.ZoneService; -import com.cool.store.dao.EnterpriseUserDAO; -import com.cool.store.dao.HyIntendDevMappingDAO; -import com.cool.store.dao.HyIntendDevZoneInfoDAO; -import com.cool.store.dao.HyOpenAreaInfoDAO; +import com.cool.store.dao.*; import com.cool.store.dto.partner.ZoneCheckDTO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.HyIntendDevZoneInfoDO; @@ -13,22 +9,20 @@ import com.cool.store.entity.HyIntendDevelopementMappingDO; import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; -import com.cool.store.mapper.HyIntendDevelopementMappingMapper; import com.cool.store.request.IntentAreaSettingRequest; +import com.cool.store.service.ZoneService; +import com.cool.store.utils.StringUtil; +import com.cool.store.vo.OpenAreaSingleVO; +import com.cool.store.vo.OrganizationVO; import com.cool.store.vo.ZoneCheckVO; import com.cool.store.vo.ZoneVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -50,6 +44,8 @@ public class ZoneServiceImpl implements ZoneService { HyOpenAreaInfoDAO openAreaInfoDAO; @Resource EnterpriseUserDAO enterpriseUserDAO; + @Resource + RegionDAO regionDAO; @@ -119,14 +115,19 @@ public class ZoneServiceImpl implements ZoneService { List updateUserIdList = list.stream().map(HyIntendDevZoneInfoDO::getUpdateUserId).collect(Collectors.toList()); List updateUserList = enterpriseUserDAO.getUserInfoByUserIds(updateUserIdList); Map updateUserNameMap = updateUserList.stream().collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getName)); - list.forEach(x->{ - ZoneVO zoneVO = new ZoneVO(); - zoneVO.setZoneName(x.getZoneName()); - zoneVO.setId(x.getId()); - zoneVO.setUpdateTime(x.getUpdateTime()); - zoneVO.setUpdateUserId(x.getUpdateUserId()); + Set regionSet = new HashSet<>(); + list.stream().forEach(x->{ + if (StringUtil.isNotEmpty(x.getAssociatedRegionId())){ + List regionIds = JSONObject.parseArray(x.getAssociatedRegionId(), String.class); + regionSet.addAll(regionIds); + } + }); + Map regionMap = regionDAO.getRegionMap(new ArrayList<>(regionSet)); + list.forEach(x->{ + ZoneVO zoneVO = handleZoneVO(regionMap, x); zoneVO.setUpdateUserName(updateUserNameMap.get(x.getUpdateUserId())); + result.add(zoneVO); }); hyIntendDevZoneInfoList.setList(result); return hyIntendDevZoneInfoList; @@ -138,8 +139,44 @@ public class ZoneServiceImpl implements ZoneService { if (hyIntendDevZoneInfoDO==null){ throw new ServiceException(ErrorCodeEnum.ZONE_NOT_EXIST); } + ZoneVO zoneVO = null; + EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoById(hyIntendDevZoneInfoDO.getUpdateUserId()); + if (StringUtil.isNotEmpty(hyIntendDevZoneInfoDO.getAssociatedRegionId())){ + List regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class); + Map regionMap = regionDAO.getRegionMap(regionIds); + zoneVO = handleZoneVO(regionMap, hyIntendDevZoneInfoDO); + zoneVO.setUpdateUserName(enterpriseUserDO.getName()); + } + List zoneCheckDTOS = hyIntendDevMappingDAO.selectByMappingIdList(Arrays.asList(zoneId)); + List openAreaVOS = new ArrayList<>(); + zoneCheckDTOS.forEach(x->{ + OpenAreaSingleVO openAreaSingleVO = new OpenAreaSingleVO(); + openAreaSingleVO.setId(x.getOpenAreaMappingId()); + openAreaVOS.add(openAreaSingleVO); + }); + zoneVO.setOpenAreaVOS(openAreaVOS); + return zoneVO; + } - return null; + + private ZoneVO handleZoneVO(Map regionMap,HyIntendDevZoneInfoDO hyIntendDevZoneInfoDO){ + ZoneVO zoneVO = new ZoneVO(); + zoneVO.setZoneName(hyIntendDevZoneInfoDO.getZoneName()); + zoneVO.setId(hyIntendDevZoneInfoDO.getId()); + zoneVO.setUpdateTime(hyIntendDevZoneInfoDO.getUpdateTime()); + List organizationVOS = new ArrayList<>(); + if (StringUtil.isNotEmpty(hyIntendDevZoneInfoDO.getAssociatedRegionId())){ + List regionIds = JSONObject.parseArray(hyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class); + regionIds.forEach(regionId->{ + OrganizationVO organizationVO = new OrganizationVO(); + organizationVO.setId(regionId); + organizationVO.setName(regionMap.get(regionId)); + organizationVOS.add(organizationVO); + }); + } + zoneVO.setOrgVos(organizationVOS); + zoneVO.setUpdateUserId(hyIntendDevZoneInfoDO.getUpdateUserId()); + return zoneVO; } @Override diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java b/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java deleted file mode 100644 index 736956e48..000000000 --- a/coolstore-partner-webb/src/main/java/com/cool/store/Service/impl/OpenAreaServiceImpl.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.cool.store.Service.impl; - -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.cool.store.Service.OpenAreaService; -import com.cool.store.dao.HyOpenAreaInfoDAO; -import com.cool.store.entity.HyOpenAreaInfoDO; -import com.cool.store.request.OpenAreaRequest; -import com.cool.store.vo.OpenAreaTreeVO; -import com.cool.store.vo.OpenAreaVO; -import org.apache.commons.collections4.CollectionUtils; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @Author suzhuhong - * @Date 2023/6/13 22:11 - * @Version 1.0 - */ -@Service -public class OpenAreaServiceImpl implements OpenAreaService { - - @Resource - HyOpenAreaInfoDAO hyOpenAreaInfoDAO; - - - @Override - public List queryByKeyword(String keyword) { - //先查出所有的一级菜单 - List openArea = hyOpenAreaInfoDAO.queryFirstLevel(); - Map longHyOpenAreaInfoDOMap = openArea.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, x -> x)); - - //查询关键字下所有的数据 原始的数据 - List hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(keyword,Boolean.TRUE); - Set longSet = hyOpenAreaInfoDOS.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toSet()); - - hyOpenAreaInfoDOS.stream().forEach(x->{ - Long parentId = x.getParentId(); - - if (parentId!=null&&!longSet.contains(parentId)){ - //添加到集合中 - longSet.add(x.getParentId()); - HyOpenAreaInfoDO hyOpenAreaInfoDO = longHyOpenAreaInfoDOMap.get(parentId); - hyOpenAreaInfoDOS.add(hyOpenAreaInfoDO); - } - }); - - JSONArray objects = buildTree(JSONArray.parseArray(JSONObject.toJSONString(hyOpenAreaInfoDOS)), "id", "parentId","childNode" ); - List openAreaTreeVOS = JSONObject.parseArray(objects.toJSONString(), OpenAreaTreeVO.class); - return openAreaTreeVOS; - } - - @Override - public List getChildrenList(String type, Long parentId) { - List childrenList = hyOpenAreaInfoDAO.getChildrenList(type, parentId); - List result = new ArrayList<>(); - childrenList.stream().forEach(x->{ - OpenAreaVO openAreaVO = convertDoToVo(x); - result.add(openAreaVO); - }); - return result; - } - - @Override - public Boolean batchUpdate(String userId, OpenAreaRequest request) { - //修改选择的区域 - hyOpenAreaInfoDAO.batchUpdateById(request.getBackgroundBanner(),request.getDetailBanner(),request.getStatus(),userId,request.getIdList()); - //修改选择区域的子区域 - hyOpenAreaInfoDAO.batchUpdateByParentId(request.getBackgroundBanner(),request.getDetailBanner(),request.getStatus(),userId,request.getIdList()); - - return Boolean.TRUE; - } - - private OpenAreaVO convertDoToVo(HyOpenAreaInfoDO hyOpenAreaInfoDO){ - OpenAreaVO openAreaVO = new OpenAreaVO(); - openAreaVO.setId(hyOpenAreaInfoDO.getId()); - openAreaVO.setAreaName(hyOpenAreaInfoDO.getAreaName()); - openAreaVO.setParentId(hyOpenAreaInfoDO.getParentId()); - openAreaVO.setAreaPath(hyOpenAreaInfoDO.getAreaPath()); - openAreaVO.setAreaStatus(hyOpenAreaInfoDO.getAreaStatus()); - openAreaVO.setBackgroundBanner(hyOpenAreaInfoDO.getBackgroundBanner()); - openAreaVO.setDetailBanner(hyOpenAreaInfoDO.getDetailBanner()); - return openAreaVO; - } - - - /** - * 构建树 - * @param arr - * @param id - * @param pid - * @param child - * @return - */ - public static JSONArray buildTree(JSONArray arr, String id, String pid, String child) { - //新建一个JSONArray来接收组装成树形结构的返回值 - JSONArray jsonArray = new JSONArray(); - //新建一个JSONObject对象 - JSONObject hash = new JSONObject(); - //将数组转换为object格式 - for (int i = 0; i < arr.size(); i++) { - //获取当前的JSON对象 - JSONObject json = (JSONObject) arr.get(i); - //把当前id作为键,当前JSON对象作为值 put回hash这个Object对象中 - //这里的put方法类似于map的put方法 - hash.put(json.getString(id), json); - } - //遍历结果集 - for (int j = 0; j < arr.size(); j++) { - //单条记录 - JSONObject aVal = (JSONObject) arr.get(j); - //在hash中取出key为单条记录中pid的值 - String pidStr = ""; - //如果父级id不等于null - if (aVal.get(pid) != null) { - pidStr = aVal.get(pid).toString(); - } - //从hash这个对象中获取父级对象 parent - JSONObject hashParent = (JSONObject) hash.get(pidStr); - //如果记录的pid存在,则说明它有父节点,将她添加到孩子节点的集合中 - if (hashParent != null) { - //检查是否有child属性 - if (hashParent.get(child) != null) { - //有子节点 则先将子节点取出 - JSONArray children = (JSONArray) hashParent.get(child); - //然后把当前这个对象放进子节点之中 - children.add(aVal); - //最后把子节点在放回父节点之中 - hashParent.put(child, children); - } else { - //无子节点 则新建一个子节点 - JSONArray children = new JSONArray(); - //然后再把当前对象放进去 - children.add(aVal); - //最后在放回父节点之中 - hashParent.put(child, children); - } - } else { - jsonArray.add(aVal); - } - } - return jsonArray; - - } -} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/AdvanceSettingController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/AdvanceSettingController.java new file mode 100644 index 000000000..400623cc7 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/AdvanceSettingController.java @@ -0,0 +1,45 @@ +package com.cool.store.controller; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.dao.HyAdvancedSettingDAO; +import com.cool.store.request.AdvancedSettingRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.AdvanceSettingService; +import com.cool.store.vo.AdvancedSettingVO; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * @Author suzhuhong + * @Date 2023/6/14 20:48 + * @Version 1.0 + */ +@RestController +@Slf4j +public class AdvanceSettingController { + + @Resource + AdvanceSettingService advanceSettingService; + + @GetMapping(path = "/getAdvanceSetting") + @ApiOperation("查询企业高级设置") + public ResponseResult getAdvanceSetting(){ + return ResponseResult.success(advanceSettingService.getAdvancedSettingDetail()); + } + + @GetMapping(path = "/changeAdvanceSetting") + @ApiOperation("新增或者修改高级设置") + public ResponseResult getAdvanceSetting(@RequestBody AdvancedSettingRequest advancedSettingRequest){ + return ResponseResult.success(advanceSettingService.addOrUpdateAdvanceSetting(CurrentUserHolder.getUserId(),advancedSettingRequest)); + } + + + + + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ClerkController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ClerkController.java new file mode 100644 index 000000000..c2378f68b --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ClerkController.java @@ -0,0 +1,41 @@ +package com.cool.store.controller; + +import com.cool.store.response.ResponseResult; +import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.vo.PartnerClerkVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/15 11:13 + * @Version 1.0 + */ +@RestController +@Slf4j +public class ClerkController { + + @Resource + HyPartnerClerkService hyPartnerClerkService; + + + @GetMapping(path = "/queryPartnerClerkInfoList") + @ApiOperation("根据线索ID 查询店员列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), + }) + public ResponseResult> queryPartnerClerkInfoList(@RequestParam(value = "lineId",required = false)Long lineId){ + return ResponseResult.success(hyPartnerClerkService.getPartnerClerkList(lineId)); + } + + + +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index d44b67456..3fa03560e 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -1,9 +1,10 @@ package com.cool.store.controller; -import com.cool.store.Service.*; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.enums.LineStatusEnum; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; +import com.cool.store.service.*; import com.cool.store.vo.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; @@ -35,15 +36,14 @@ public class DeskController { HyPartnerLineInfoService hyPartnerLineInfoService; @Resource HyPartnerBaseInfoService hyPartnerBaseInfoService; - @Resource - OpenAreaService openAreaService; + @GetMapping(path = "/interviewSchedule") @ApiOperation("面试日程信息 面试信息有限 不做分页") - public ResponseResult interviewSchedule(@RequestParam(value = "userId",required = false) String userId, - @RequestParam(value = "selectedData",required = false) Date selectedData){ + public ResponseResult interviewSchedule(@RequestParam(value = "selectedData",required = false) Date selectedData){ + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(deskService.interviewSchedule(userId,selectedData)); } @@ -60,10 +60,8 @@ public class DeskController { @GetMapping(path = "/queryInterviewPlan") @ApiOperation("是否有面试与临期线索") - @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "招商经理ID", required = false), - }) - public ResponseResult queryInterviewPlanVO(@RequestParam(value = "userId",required = false)String userId){ + public ResponseResult queryInterviewPlanVO(){ + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(deskService.getInterviewPlan(userId)); } @@ -78,7 +76,7 @@ public class DeskController { public ResponseResult> queryIntentApplyList(@RequestParam(value = "type",required = false)String type, @RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ - String userId = ""; + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(hyPartnerIntentInfoService.getPartnerIntentApplyList(userId,type,pageSize,pageNumber)); } @@ -88,7 +86,7 @@ public class DeskController { public ResponseResult> querySubscribeInterviewTimeList(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ - String userId = ""; + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(hyPartnerInterviewPlanService.getPartnerInterviewInfoList(userId,pageSize,pageNumber)); } @@ -100,7 +98,7 @@ public class DeskController { public ResponseResult> queryQualifiedInterviewList(@RequestParam(value = "type",required = false)String type, @RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ - String userId = ""; + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(hyPartnerInterviewPlanService.getQualifiedInterviewList(userId,type,pageSize,pageNumber)); } @@ -158,7 +156,7 @@ public class DeskController { public ResponseResult> lastMonthCloseLine(@RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ - String userId = ""; + String userId = CurrentUserHolder.getUserId(); return ResponseResult.success(hyPartnerLineInfoService.lastMonthCloseLine(userId,pageSize,pageNumber)); } @@ -242,74 +240,4 @@ public class DeskController { return ResponseResult.success(hyPartnerBaseInfoService.addTags(addTagsRequest)); } - - // TODO: 2023/6/13 添加根据线索查询店员接口列表接口 -// @GetMapping(path = "/queryPartnerIntentApplyInfo") -// @ApiOperation("查看意向审核信息") -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), -// }) -// public ResponseResult queryPartnerIntentApplyInfo(@RequestParam(value = "lineId",required = false)Long lineId){ -// -// return ResponseResult.success(); -// } - - - - @GetMapping(path = "/getOpenAreaTree") - @ApiOperation("开放城市树-搜索城市") - @ApiImplicitParams({ - @ApiImplicitParam(name = "keyWord", value = "搜索关键字", required = false) - }) - public ResponseResult> getOpenAreaTree(@RequestParam(value = "keyWord",required = false)String keyWord){ - - return ResponseResult.success(openAreaService.queryByKeyword(keyWord)); - } - - - @GetMapping(path = "/getOpenAreaList") - @ApiOperation("开放城市树-子列表") - @ApiImplicitParams({ - @ApiImplicitParam(name = "parentId", value = "父区域名称", required = false), - @ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false) - }) - public ResponseResult> getOpenAreaList(@RequestParam(value = "parentId",required = false)Long parentId, - @RequestParam(value = "type",required = false)String type){ - return ResponseResult.success(openAreaService.getChildrenList(type,parentId)); - } - - - - @PostMapping(path = "/changeOpenAreaStatus") - @ApiOperation("变更开放区域状态") - public ResponseResult changeOpenAreaStatus(@RequestBody OpenAreaRequest openAreaRequest){ - - String userId = ""; - return ResponseResult.success(openAreaService.batchUpdate( userId, openAreaRequest)); - } - - - - @GetMapping(path = "/getAdvanceSetting") - @ApiOperation("查询企业高级设置") - public ResponseResult getAdvanceSetting(){ - - - return ResponseResult.success(); - } - - @GetMapping(path = "/changeAdvanceSetting") - @ApiOperation("新增或者修改高级设置") - public ResponseResult getAdvanceSetting(@RequestBody AdvancedSettingRequest advancedSettingRequest){ - - - return ResponseResult.success(); - } - - - - - - - } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/OpenAreaController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/OpenAreaController.java new file mode 100644 index 000000000..f9c1a7e09 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/OpenAreaController.java @@ -0,0 +1,67 @@ +package com.cool.store.controller; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.OpenAreaRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.OpenAreaService; +import com.cool.store.vo.OpenAreaTreeVO; +import com.cool.store.vo.OpenAreaVO; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2023/6/15 9:49 + * @Version 1.0 + */ +@RestController +public class OpenAreaController { + + @Resource + OpenAreaService openAreaService; + + @GetMapping(path = "/getOpenAreaTree") + @ApiOperation("开放城市树-搜索城市 到第二节点") + @ApiImplicitParams({ + @ApiImplicitParam(name = "keyword", value = "搜索关键字", required = false) + }) + public ResponseResult> getOpenAreaTree(@RequestParam(value = "keyword",required = false)String keyword){ + return ResponseResult.success(openAreaService.queryByKeyword(keyword,Boolean.TRUE)); + } + + + @GetMapping(path = "/getAllOpenAreaTree") + @ApiOperation("开放城市树-所有节点") + @ApiImplicitParams({ + @ApiImplicitParam(name = "keyword", value = "搜索关键字", required = false) + }) + public ResponseResult> getAllOpenAreaTree(@RequestParam(value = "keyword",required = false)String keyword){ + return ResponseResult.success(openAreaService.queryAllOpenAreaByKeyword(keyword,Boolean.FALSE)); + } + + + @GetMapping(path = "/getOpenAreaList") + @ApiOperation("开放城市树-子列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "parentId", value = "父区域名称", required = false), + @ApiImplicitParam(name = "type", value = "可预约-reservation 可申请-apply ", required = false) + }) + public ResponseResult> getOpenAreaList(@RequestParam(value = "parentId",required = false)Long parentId, + @RequestParam(value = "type",required = false)String type){ + return ResponseResult.success(openAreaService.getChildrenList(type,parentId)); + } + + + + @PostMapping(path = "/changeOpenAreaStatus") + @ApiOperation("变更开放区域状态") + public ResponseResult changeOpenAreaStatus(@RequestBody OpenAreaRequest openAreaRequest){ + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(openAreaService.batchUpdate( userId, openAreaRequest)); + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java index 642f215c6..a3e150335 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java @@ -1,7 +1,9 @@ package com.cool.store.controller; +import com.cool.store.context.CurrentUserHolder; import com.cool.store.request.IntentAreaSettingRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.ZoneService; import com.cool.store.vo.ZoneVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; @@ -10,6 +12,8 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; + /** * @Author suzhuhong * @Date 2023/6/14 11:40 @@ -19,19 +23,20 @@ import org.springframework.web.bind.annotation.*; @Slf4j public class ZoneController { + @Resource + ZoneService zoneService; @PostMapping(path = "/addZone") @ApiOperation("新建意向战区/开发战区") public ResponseResult addZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ - - return ResponseResult.success(); + return ResponseResult.success(zoneService.addZone( CurrentUserHolder.getUserId(),intentAreaSettingRequest)); } @PostMapping(path = "/updateZone") @ApiOperation("编辑意向战区/开发战区") public ResponseResult updateZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ - return ResponseResult.success(); + return ResponseResult.success(zoneService.updateZone(CurrentUserHolder.getUserId(),intentAreaSettingRequest)); } @GetMapping(path = "/getZoneList") @@ -42,7 +47,7 @@ public class ZoneController { public ResponseResult> getZoneList(@RequestParam(value = "type",required = false)String type, @RequestParam(value = "pageNumber",required = false,defaultValue = "1")Integer pageNumber, @RequestParam(value = "pageSize",required = false,defaultValue = "10")Integer pageSize){ - return ResponseResult.success(); + return ResponseResult.success(zoneService.getZoneList(type,pageSize,pageNumber)); } @@ -52,6 +57,15 @@ public class ZoneController { @ApiImplicitParam(name = "id", value = "id", required = false), }) public ResponseResult deletedZoneList(@RequestParam(value = "id",required = false)Long id){ - return ResponseResult.success(); + return ResponseResult.success(zoneService.deletedZone(id)); + } + + @GetMapping(path = "/zoneDetail") + @ApiOperation("战区详情") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "id", required = false), + }) + public ResponseResult zoneDetail(@RequestParam(value = "id",required = false)Long id){ + return ResponseResult.success(zoneService.zoneDetail(id)); } } diff --git a/coolstore-partner-webb/src/main/resources/application-ab.properties b/coolstore-partner-webb/src/main/resources/application-ab.properties index a03cc5c07..00252356c 100644 --- a/coolstore-partner-webb/src/main/resources/application-ab.properties +++ b/coolstore-partner-webb/src/main/resources/application-ab.properties @@ -56,6 +56,11 @@ cdn.url=https://testhsaypic.coolstore.cn trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 + #xxljob配置 xxl.job.admin.addresses = http://10.7.53.224:10001/xxl-job-admin xxl.job.executor.appname = ${spring.application.name} diff --git a/coolstore-partner-webb/src/main/resources/application-dev.properties b/coolstore-partner-webb/src/main/resources/application-dev.properties index 14ecbbb60..03b7ea307 100644 --- a/coolstore-partner-webb/src/main/resources/application-dev.properties +++ b/coolstore-partner-webb/src/main/resources/application-dev.properties @@ -53,6 +53,11 @@ corp.id = 171cddee76471740 trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 + #xxljob配置 xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin xxl.job.executor.appname = ${spring.application.name} diff --git a/coolstore-partner-webb/src/main/resources/application-hd.properties b/coolstore-partner-webb/src/main/resources/application-hd.properties index 4151b74e7..0ca8ebeba 100644 --- a/coolstore-partner-webb/src/main/resources/application-hd.properties +++ b/coolstore-partner-webb/src/main/resources/application-hd.properties @@ -51,4 +51,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index e049a073d..33d502d30 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -59,6 +59,11 @@ cdn.url=https://testhsaypic.coolstore.cn trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 + xxl.job.admin.addresses = xxl.job.executor.appname = ${spring.application.name} xxl.job.executor.ip = diff --git a/coolstore-partner-webb/src/main/resources/application-online.properties b/coolstore-partner-webb/src/main/resources/application-online.properties index 0da916d40..b055f644a 100644 --- a/coolstore-partner-webb/src/main/resources/application-online.properties +++ b/coolstore-partner-webb/src/main/resources/application-online.properties @@ -51,4 +51,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-pre.properties b/coolstore-partner-webb/src/main/resources/application-pre.properties index 0da916d40..b055f644a 100644 --- a/coolstore-partner-webb/src/main/resources/application-pre.properties +++ b/coolstore-partner-webb/src/main/resources/application-pre.properties @@ -51,4 +51,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webb/src/main/resources/application-test.properties b/coolstore-partner-webb/src/main/resources/application-test.properties index 6439240e0..d06b97aa7 100644 --- a/coolstore-partner-webb/src/main/resources/application-test.properties +++ b/coolstore-partner-webb/src/main/resources/application-test.properties @@ -51,4 +51,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 \ 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 new file mode 100644 index 000000000..46b913743 --- /dev/null +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -0,0 +1,126 @@ +package com.cool.store.config; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +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.vo.PartnerUserInfoVO; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.annotation.Order; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; + +import javax.annotation.Resource; +import javax.servlet.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * @author ydw + * @Description 权限校验 + * @date 2020/1/15 + */ +@Component +@Order(3) +@Slf4j +public class SignValidateFilter implements Filter { + + @Resource + private WechatMiniAppService wechatMiniAppService; + + @Value("${signKey}") + private String signKey; + + private static AntPathMatcher matcher = new AntPathMatcher(); + + private static List patternList = + Lists.newArrayList("/web/check/ok","/check/ok", + "/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/pc/feiShuLogin","/partner/pc/oss/getUploadFileConfig", + "/**/swagger*/**", "/**/webjars/**"); + + + /** + * @param uri + * @return boolean + * @throws + * @Title excludePath + * @Description 是否是放行的请求 + */ + private boolean excludePath(String uri) { + for (String pattern : patternList) { + if (matcher.match(pattern, uri)) { + return true; + } + } + return false; + } + + @Override + public void init(FilterConfig filterConfig) throws ServletException { + + } + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + HttpServletResponse response = (HttpServletResponse) servletResponse; + HttpServletRequest request = (HttpServletRequest) servletRequest; + 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(); + 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 signStr = timestamp + nonce + params + signKey + md5Value; + String newSign = Sha1Utils.getSha1(signStr.getBytes()); + log.info("newSign: {}", 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); + if(partnerUserInfoVO != null){ + userStr = JSONObject.toJSONString(partnerUserInfoVO); + log.info("url:{}, userStr:{}", uri, userStr); + } + } + try { + PartnerUserHolder.setUser(userStr); + filterChain.doFilter(servletRequest, servletResponse); + } finally { + PartnerUserHolder.removeUser(); + } + } + + @Override + public void destroy() { + + } +} 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 3e579f680..46f85bc2a 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 @@ -1,11 +1,12 @@ package com.cool.store.controller; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.wx.MiniProgramLoginDTO; -import com.cool.store.dto.wx.MiniProgramMsgDTO; +import com.cool.store.request.MobileUpdateRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.WechatMiniAppService; -import com.cool.store.vo.wx.CodeSessionVO; +import com.cool.store.vo.PartnerUserInfoVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @@ -29,23 +30,24 @@ public class MiniProgramAppController { private WechatMiniAppService wechatMiniAppService; @ApiOperation("小程序登录") - @PostMapping("/code/login") - public ResponseResult login(@RequestBody @Valid MiniProgramLoginDTO param) { - CodeSessionVO codeSessionVO = wechatMiniAppService.miniProgramLogin(param); - return ResponseResult.success(codeSessionVO); + @PostMapping("/login") + public ResponseResult login(@RequestBody @Valid MiniProgramLoginDTO param) { + PartnerUserInfoVO userInfoVO = wechatMiniAppService.miniProgramLogin(param); + return ResponseResult.success(userInfoVO); } - @ApiOperation("获取手机号") - @PostMapping("/code/getUserPhoneNumber") - public ResponseResult getUserPhoneNumber(@RequestBody @Valid MiniProgramLoginDTO param) { - CodeSessionVO codeSessionVO = wechatMiniAppService.getUserPhoneNumber(param); - return ResponseResult.success(codeSessionVO); + @ApiOperation("更新手机号") + @PostMapping("/updateUserPhoneNumber") + public ResponseResult updateUserPhoneNumber(@RequestBody @Valid MobileUpdateRequest request) { + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(wechatMiniAppService.updateUserPhoneNumber(request, userInfoVO)); } - @ApiOperation("获取小程序用户信息") - @PostMapping("/user") - public ResponseResult queryMiniProgramUser(@RequestBody @Valid MiniProgramMsgDTO param) { - CodeSessionVO codeSessionVO = wechatMiniAppService.queryMiniProgramUser(param); - return ResponseResult.success(codeSessionVO); + @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); + return ResponseResult.success(userInfoVO); } } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/OpenAreaController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/OpenAreaController.java index f1793d9c6..5090d56c5 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/OpenAreaController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/OpenAreaController.java @@ -1,11 +1,7 @@ package com.cool.store.controller; -import com.alibaba.fastjson.JSONArray; -import com.aliyun.openservices.shade.com.alibaba.rocketmq.common.filter.impl.Op; -import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.response.ResponseResult; import com.cool.store.service.OpenAreaService; -import com.cool.store.utils.UUIDUtils; import com.cool.store.vo.OpenAreaTreeVO; import com.cool.store.vo.OpenAreaVO; import com.cool.store.vo.OpenProvinceVO; @@ -55,7 +51,7 @@ public class OpenAreaController { @ApiImplicitParam(name = "keyword", value = "搜索关键字", required = false), }) public ResponseResult> getOpenAreaList(@RequestParam(value = "keyword",required = false)String keyword){ - List openAreaTreeVOS = openAreaService.queryByKeyword(keyword); + List openAreaTreeVOS = openAreaService.queryAllOpenAreaByKeyword(keyword,Boolean.FALSE); return ResponseResult.success(openAreaTreeVOS); } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java index bc6c18863..d589d8732 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java @@ -5,6 +5,8 @@ import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.HyPartnerIntentInfoService; +import com.cool.store.service.PartnerUserInfoService; import com.cool.store.vo.*; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; @@ -14,6 +16,7 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.List; /** @@ -27,13 +30,16 @@ import java.util.List; @Api(tags = "加盟商信息") public class PartnerController { + @Resource + private PartnerUserInfoService partnerUserInfoService; + @Resource + HyPartnerIntentInfoService hyPartnerIntentInfoService; @PostMapping(path = "/applyBaseInfo") @ApiOperation("提交基本信息") public ResponseResult applyBaseInfo(@RequestBody BaseUserInfoRequest baseUserInfoRequest){ - - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.updatePartnerIntentInfo(baseUserInfoRequest)); } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/service/OpenAreaService.java b/coolstore-partner-webc/src/main/java/com/cool/store/service/OpenAreaService.java deleted file mode 100644 index 687e5d780..000000000 --- a/coolstore-partner-webc/src/main/java/com/cool/store/service/OpenAreaService.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.cool.store.service; - -import com.alibaba.fastjson.JSONArray; -import com.cool.store.vo.OpenAreaTreeVO; -import com.cool.store.vo.OpenAreaVO; -import com.cool.store.vo.OpenProvinceVO; -import com.github.pagehelper.PageInfo; - -import java.util.List; - -/** - * @Author suzhuhong - * @Date 2023/6/6 14:27 - * @Version 1.0 - */ -public interface OpenAreaService { - - /** - * 重点城市 - * @param pageSize - * @param pageNumber - * @return - */ - PageInfo queryKeyOpenAreaList(Integer pageSize,Integer pageNumber); - - - /** - * 查询全部 - * @return - */ - List queryByKeyword(String keyword); - - - /** - * 查询可申请区域 可预约区域 - * @return - */ - OpenProvinceVO getOpenProvince(); - - - /** - * 查询子列表 - * @param type - * @param parentId - * @return - */ - List getChildrenList(String type,Long parentId); - - -} diff --git a/coolstore-partner-webc/src/main/resources/application-ab.properties b/coolstore-partner-webc/src/main/resources/application-ab.properties index 1ee547534..133fdf130 100644 --- a/coolstore-partner-webc/src/main/resources/application-ab.properties +++ b/coolstore-partner-webc/src/main/resources/application-ab.properties @@ -54,4 +54,9 @@ cdn.url=https://testhsaypic.coolstore.cn #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-dev.properties b/coolstore-partner-webc/src/main/resources/application-dev.properties index 95a66781d..f2f3901b5 100644 --- a/coolstore-partner-webc/src/main/resources/application-dev.properties +++ b/coolstore-partner-webc/src/main/resources/application-dev.properties @@ -51,4 +51,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-hd.properties b/coolstore-partner-webc/src/main/resources/application-hd.properties index 1dda2b926..768cb6c5d 100644 --- a/coolstore-partner-webc/src/main/resources/application-hd.properties +++ b/coolstore-partner-webc/src/main/resources/application-hd.properties @@ -49,4 +49,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-local.properties b/coolstore-partner-webc/src/main/resources/application-local.properties index f9ee22dbf..9c6cf31de 100644 --- a/coolstore-partner-webc/src/main/resources/application-local.properties +++ b/coolstore-partner-webc/src/main/resources/application-local.properties @@ -59,3 +59,8 @@ cdn.url=https://testhsaypic.coolstore.cn #TRTC trtc.sdkAppId=1400811820 trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-online.properties b/coolstore-partner-webc/src/main/resources/application-online.properties index 1dda2b926..768cb6c5d 100644 --- a/coolstore-partner-webc/src/main/resources/application-online.properties +++ b/coolstore-partner-webc/src/main/resources/application-online.properties @@ -49,4 +49,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-pre.properties b/coolstore-partner-webc/src/main/resources/application-pre.properties index 1dda2b926..768cb6c5d 100644 --- a/coolstore-partner-webc/src/main/resources/application-pre.properties +++ b/coolstore-partner-webc/src/main/resources/application-pre.properties @@ -49,4 +49,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=d851f2a9ac90474abecdc2fbb148d4d7 \ No newline at end of file diff --git a/coolstore-partner-webc/src/main/resources/application-test.properties b/coolstore-partner-webc/src/main/resources/application-test.properties index a365a8df7..819fd92eb 100644 --- a/coolstore-partner-webc/src/main/resources/application-test.properties +++ b/coolstore-partner-webc/src/main/resources/application-test.properties @@ -49,4 +49,9 @@ corp.id = 171cddee76471740 #TRTC trtc.sdkAppId=1400811820 -trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 \ No newline at end of file +trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 + +weixin.appId=wx6f984e535e571818 +weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 + +signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file