From c08905399c22b4bb92db5667d50ab8afbe065abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 8 Apr 2025 15:22:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=B9=B3=E5=8F=B0=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/OpenStatusEnum.java | 51 +++ .../cool/store/enums/PlatformBuildEnum.java | 12 +- .../com/cool/store/enums/ShopAccountEnum.java | 54 ++++ .../com/cool/store/dao/ShopAccountDAO.java | 120 +++++++ .../java/com/cool/store/dao/ShopInfoDAO.java | 7 + .../cool/store/mapper/ShopAccountMapper.java | 74 +++++ .../store/mapper/ShopAccountMapper.java.1 | 7 + .../com/cool/store/mapper/ShopInfoMapper.java | 2 + .../resources/mapper/ShopAccountMapper.xml | 129 ++++++++ .../main/resources/mapper/ShopInfoMapper.xml | 6 + .../com/cool/store/dto/ModifyPasswordDTO.java | 22 ++ .../store/dto/ShopAccount/ShopAccountDTO.java | 57 ++++ .../com/cool/store/dto/StatusRefreshDTO.java | 25 ++ .../com/cool/store/entity/ShopAccountDO.java | 80 +++++ .../cool/store/entity/ShopAccountDO.java.1 | 292 ++++++++++++++++++ .../cool/store/service/OpenApiService.java | 21 ++ .../store/service/PreparationService.java | 27 ++ .../store/service/ShopAccountService.java | 25 ++ .../service/impl/ApplyLicenseServiceImpl.java | 1 + .../service/impl/DecorationServiceImpl.java | 1 + .../service/impl/OpenApiServiceImpl.java | 47 +++ .../service/impl/OrderSysInfoServiceImpl.java | 4 + .../impl/PlatformBuildServiceImpl.java | 5 + .../store/service/impl/PointServiceImpl.java | 2 + .../service/impl/PreparationServiceImpl.java | 77 ++++- .../service/impl/ShopAccountServiceImpl.java | 104 +++++++ .../store/service/impl/ShopServiceImpl.java | 11 +- .../controller/webb/OpenApiController.java | 11 +- .../webb/ShopAccountController.java | 39 +++ 29 files changed, 1294 insertions(+), 19 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/OpenStatusEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAccountEnum.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 create mode 100644 coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/ModifyPasswordDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/ShopAccount/ShopAccountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/StatusRefreshDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/ShopAccountDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/ShopAccountDO.java.1 create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenApiServiceImpl.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopAccountController.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OpenStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpenStatusEnum.java new file mode 100644 index 000000000..9281d7ed5 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OpenStatusEnum.java @@ -0,0 +1,51 @@ +package com.cool.store.enums; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/4/7 15:01 + * @Version 1.0 + */ +public enum OpenStatusEnum { + + + OPENSTATUSENUM_1(1,"开通资料收集中"), + OPENSTATUSENUM_2(2,"资料审核中"), + OPENSTATUSENUM_3(3,"资料审核失败"), + OPENSTATUSENUM_4(4,"开通中"), + OPENSTATUSENUM_5(5,"开通成功"), + OPENSTATUSENUM_6(6,"开通失败"), + ; + + + private Integer code; + + private String name; + + + + OpenStatusEnum(Integer code,String name){ + this.code = code; + this.name = name; + } + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatformBuildEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatformBuildEnum.java index a66b0171f..64df096db 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatformBuildEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/PlatformBuildEnum.java @@ -7,8 +7,8 @@ package com.cool.store.enums; * @注释: */ public enum PlatformBuildEnum { - DOU_YIN(1,"抖音"), - KUAI_SHOU(2,"快手"), + DOU_YIN(1,"抖音团购"), + KUAI_SHOU(2,"快手团购"), MEI_TUAN_TUAN_GOU(3,"美团团购"), E_LE_ME(4,"饿了么"), MEI_TUAN_WAI_MAI(5,"美团外卖"), @@ -26,5 +26,13 @@ public enum PlatformBuildEnum { return message; } + public static String getMessageByCode(Integer code) { + for (PlatformBuildEnum value : PlatformBuildEnum.values()) { + if (value.getCode().equals(code)) { + return value.getMessage(); + } + } + return null; // 或者抛出异常 + } } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAccountEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAccountEnum.java new file mode 100644 index 000000000..dfb6a1c59 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ShopAccountEnum.java @@ -0,0 +1,54 @@ +package com.cool.store.enums; + +import java.util.Arrays; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/4/7 14:57 + * @Version 1.0 + */ +public enum ShopAccountEnum { + + HuoMa("火码POS",OpenStatusEnum.OPENSTATUSENUM_1), + YLS("云流水",OpenStatusEnum.OPENSTATUSENUM_1), + XZG("新掌柜",OpenStatusEnum.OPENSTATUSENUM_1), + MTTG("美团团购",OpenStatusEnum.OPENSTATUSENUM_1), + DY("抖音团购",OpenStatusEnum.OPENSTATUSENUM_1), + KS("快手团购",OpenStatusEnum.OPENSTATUSENUM_1), + MT("美团外卖",OpenStatusEnum.OPENSTATUSENUM_1), + ELM("饿了么外卖",OpenStatusEnum.OPENSTATUSENUM_1), + + ; + + + public static List getSpecialList(){ + return Arrays.asList(HuoMa.getSystemName(),YLS.getSystemName(),XZG.getSystemName()); + } + + private String systemName; + + private OpenStatusEnum initStatus; + + ShopAccountEnum(String systemName,OpenStatusEnum initStatus){ + this.systemName = systemName; + this.initStatus = initStatus; + + } + + public String getSystemName() { + return systemName; + } + + public void setSystemName(String systemName) { + this.systemName = systemName; + } + + public OpenStatusEnum getInitStatus() { + return initStatus; + } + + public void setInitStatus(OpenStatusEnum initStatus) { + this.initStatus = initStatus; + } +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java new file mode 100644 index 000000000..7f7b52ddc --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopAccountDAO.java @@ -0,0 +1,120 @@ +package com.cool.store.dao; + +import com.cool.store.constants.CommonConstants; +import com.cool.store.entity.HyPartnerUserInfoDO; +import com.cool.store.entity.ShopAccountDO; +import com.cool.store.enums.OpenStatusEnum; +import com.cool.store.enums.PlatformBuildEnum; +import com.cool.store.enums.ShopAccountEnum; +import com.cool.store.mapper.ShopAccountMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Objects; + +/** + * @Author suzhuhong + * @Date 2025/4/7 14:26 + * @Version 1.0 + */ +@Component +public class ShopAccountDAO { + + @Resource + ShopAccountMapper shopAccountMapper; + + public Integer initShopAccount(HyPartnerUserInfoDO partnerUserInfoDO, List shopIds){ + List shopAccountDOS = new ArrayList<>(); + for (Long shopId : shopIds) { + for (ShopAccountEnum shopAccountEnum: ShopAccountEnum.values()) { + ShopAccountDO shopAccountDO = new ShopAccountDO(); + shopAccountDO.setShopId(shopId); + shopAccountDO.setSystemName(shopAccountEnum.getSystemName()); + shopAccountDO.setBoundPhone(partnerUserInfoDO.getMobile()); + shopAccountDO.setPasswordSalt(partnerUserInfoDO.getDownstreamSystemSalting()); + shopAccountDO.setPassword(partnerUserInfoDO.getDownstreamSystemPassword()); + shopAccountDO.setStatus(shopAccountEnum.getInitStatus().getCode()); + if (ShopAccountEnum.HuoMa.equals(shopAccountEnum)){ + shopAccountDO.setEntryStatus(CommonConstants.ONE); + } + shopAccountDOS.add(shopAccountDO); + } + } + return shopAccountMapper.batchInsert(shopAccountDOS); + } + + + int batchInsert(List list){ + if (CollectionUtils.isEmpty(list)){ + return CommonConstants.ZERO; + } + return shopAccountMapper.batchInsert(list); + } + + /** + * 根据shopId查询多条数据 + * @param shopId 店铺ID + * @return 店铺账号列表 + */ + public List selectByShopId(Long shopId){ + return shopAccountMapper.selectByShopId(shopId); + } + + /** + * 根据shopId与system_name修改status + * @param shopId 店铺ID + * @param systemName 系统名称 + * @param status 状态 + * @return 影响的行数 + */ + public int updateStatusByShopIdAndSystemName(Long shopId, List systemNameList, Integer status){ + return shopAccountMapper.updateStatusByShopIdAndSystemName(shopId,systemNameList,status); + } + + public int updateEntryStatusByShopIdAndSystemName(Long shopId, List systemNameList, Integer status){ + return shopAccountMapper.updateEntryStatusByShopIdAndSystemName(shopId,systemNameList,status); + } + + /** + * changeStatus + * @param shopId + * @param type + * @param account + * @param password + * @param resultType + * @return + */ + public Boolean changeStatus(Long shopId,Integer type,String account ,String password,Integer resultType){ + if (Objects.isNull(shopId)||Objects.isNull(resultType)){ + return Boolean.FALSE; + } + Integer openStatus = resultType == 1 ? OpenStatusEnum.OPENSTATUSENUM_6.getCode() : OpenStatusEnum.OPENSTATUSENUM_5.getCode(); + String systemName = PlatformBuildEnum.getMessageByCode(type); + shopAccountMapper.updateAccountByShopIdAndSystemName(shopId,systemName,account,password,openStatus); + return Boolean.TRUE; + + } + + + /** + * 只修改 POS 云流水 新掌柜 + * @param shopIds + * @param password + * @param passwordSalt + * @param lastSyncTime + * @return + */ + public int batchUpdatePasswordByShopIds( List shopIds, String password, String passwordSalt, Date lastSyncTime){ + return shopAccountMapper.batchUpdatePasswordByShopIds( + shopIds, password, passwordSalt, lastSyncTime + ); + } + + + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java index b00f2cc2e..16fef6bb1 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopInfoDAO.java @@ -186,6 +186,13 @@ public class ShopInfoDAO { return shopInfoMapper.selectByStoreNum(storeNum); } + public ShopInfoDO selectByStoreCode(String storeCode){ + if (StringUtils.isBlank(storeCode)) { + return null; + } + return shopInfoMapper.selectByStoreCode(storeCode); + } + public List selectByIdOrSelectAll(Long shopId){ return shopInfoMapper.selectByIdOrSelectAll(shopId); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java new file mode 100644 index 000000000..af361293c --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java @@ -0,0 +1,74 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.ShopAccountDO; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; +import tk.mybatis.mapper.common.Mapper; + +import java.util.Date; +import java.util.List; + +public interface ShopAccountMapper extends Mapper { + + /** + * 批量新增店铺账号 + * @param list 店铺账号列表 + * @return 影响的行数 + */ + int batchInsert(List list); + + /** + * 根据shopId查询多条数据 + * @param shopId 店铺ID + * @return 店铺账号列表 + */ + List selectByShopId(Long shopId); + + /** + * 根据shopId与system_name修改status + * @param shopId 店铺ID + * @param systemName 系统名称 + * @param status 状态 + * @param lastSyncTime 最后同步时间 + * @return 影响的行数 + */ + int updateStatusByShopIdAndSystemName( + @Param("shopId") Long shopId, + @Param("systemNameList") List systemNameList, + @Param("status") Integer status + ); + + int updateEntryStatusByShopIdAndSystemName( + @Param("shopId") Long shopId, + @Param("systemNameList") List systemNameList, + @Param("entryStatus") Integer entryStatus + ); + + int updateAccountByShopIdAndSystemName( + @Param("shopId") Long shopId, + @Param("systemName") String systemName, + @Param("account") String account, + @Param("password") String password, + @Param("status") Integer status + ); + + + /** + * 批量修改密码和密码盐 + * @param shopIds 店铺ID列表 + * @param password 新密码 + * @param passwordSalt 新密码盐 + * @param lastSyncTime 最后同步时间 + * @return 影响的行数 + */ + int batchUpdatePasswordByShopIds( + @Param("shopIds") List shopIds, + @Param("password") String password, + @Param("passwordSalt") String passwordSalt, + @Param("lastSyncTime") Date lastSyncTime + ); + + + + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 new file mode 100644 index 000000000..1bbdba602 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopAccountMapper.java.1 @@ -0,0 +1,7 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.ShopAccountDO; +import tk.mybatis.mapper.common.Mapper; + +public interface ShopAccountMapper extends Mapper { +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java index e6e4b26f2..6178c5954 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/ShopInfoMapper.java @@ -92,6 +92,8 @@ public interface ShopInfoMapper extends Mapper { Long getRegionIdByid(@Param("shopId") Long shopId); ShopInfoDO selectByStoreNum(@Param("storeNum") String storeNum); + + ShopInfoDO selectByStoreCode(@Param("storeNum") String storeCode); /** * @Auther: wangshuo * @Date: 2024/5/3 diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml new file mode 100644 index 000000000..92d107f80 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + INSERT INTO xfsg_shop_account ( + shop_id, + system_name, + account, + bound_phone, + password_salt, + password, + status, + entry_status, + last_sync_time, + remark + ) VALUES + + ( + #{item.shopId}, + #{item.systemName}, + #{item.account}, + #{item.boundPhone}, + #{item.passwordSalt}, + #{item.password}, + #{item.status}, + #{item.entryStatus}, + #{item.lastSyncTime}, + #{item.remark} + ) + + + + + + + + + UPDATE + xfsg_shop_account + SET + status = #{status,jdbcType=BIT} + WHERE + shop_id = #{shopId} + and system_name in + + #{systemName} + + + + + UPDATE + xfsg_shop_account + SET + entry_status = #{entryStatus,jdbcType=BIT} + WHERE + shop_id = #{shopId} + and system_name in + + #{systemName} + + + + + + UPDATE + xfsg_shop_account + SET + account = #{account}, + password = #{password}, + status = #{status}, + WHERE + shop_id = #{shopId} + AND system_name = #{systemName} + + + + + + UPDATE + xfsg_shop_account + SET + password = #{password}, + password_salt = #{passwordSalt}, + last_sync_time = #{lastSyncTime,jdbcType=TIMESTAMP} + WHERE + system_name in ('火码POS','云流水','新掌柜') + and shop_id IN + + #{shopId} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml index 49c1b212e..134a9c9c1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml @@ -173,6 +173,12 @@ from xfsg_shop_info where store_num = #{storeNum} +