From abc7c206c43718c94ee356e0fc2c438f3e236838 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 9 Apr 2025 10:04:35 +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/ErrorCodeEnum.java | 4 + .../com/cool/store/enums/OpenStatusEnum.java | 3 + .../com/cool/store/enums/ShopAccountEnum.java | 8 +- .../com/cool/store/utils/PasswordUtil.java | 4 +- .../com/cool/store/dao/ShopAccountDAO.java | 14 ++- .../cool/store/mapper/ShopAccountMapper.java | 6 + .../resources/mapper/ShopAccountMapper.xml | 7 ++ .../com/cool/store/dto/AccountAuditDTO.java | 29 +++++ .../store/dto/AccountEntryStatusAuditDTO.java | 26 ++++ .../com/cool/store/dto/StatusRefreshDTO.java | 1 - .../dto/yun/AccountEntryStatusChangeDTO.java | 29 +++++ .../store/service/ShopAccountService.java | 52 ++++++++ .../service/impl/OpenApiServiceImpl.java | 3 +- .../service/impl/PreparationServiceImpl.java | 4 +- .../service/impl/ShopAccountServiceImpl.java | 117 ++++++++++++++++-- .../controller/webb/PCTestController.java | 15 +++ .../webb/ShopAccountController.java | 43 ++++++- .../webc/MiniShopAccountController.java | 43 +++++++ .../com/cool/store/job/XxlJobHandler.java | 42 +++++++ 19 files changed, 425 insertions(+), 25 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/AccountAuditDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/AccountEntryStatusAuditDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/yun/AccountEntryStatusChangeDTO.java create mode 100644 coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopAccountController.java 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 3060f392e..e3fcc66e9 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 @@ -243,6 +243,10 @@ public enum ErrorCodeEnum { THIRD_API_ERROR(151001,"第三方服务异常->{0}",null), THIRD_API_SIGN_ERROR(151002,"签名失败->{0}",null), THIRD_API_TIME_IS_NULL(151003,"单据⽇期不能为空",null), + + SYSTEM_DATA_ERROR(151004,"平台账号不能为空",null), + CURRENT_STATUS_NOT_OPERATION(151005,"平台账号当前非审核状态!不能提交审核",null), + CURRENT_ENTRY_STATUS_NOT_OPERATION(151006,"进件状态未审核!不能执行该操作",null), ; 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 index 9281d7ed5..7e1fd94ac 100644 --- 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 @@ -27,6 +27,9 @@ public enum OpenStatusEnum { private String name; + public static List getSpecialList(){ + return Arrays.asList(OPENSTATUSENUM_4.getCode(),OPENSTATUSENUM_5.getCode(),OPENSTATUSENUM_6.getCode()); + } OpenStatusEnum(Integer code,String name){ this.code = code; 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 index dfb6a1c59..9a57b14d6 100644 --- 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 @@ -10,7 +10,7 @@ import java.util.List; */ public enum ShopAccountEnum { - HuoMa("火码POS",OpenStatusEnum.OPENSTATUSENUM_1), + HUOMA("火码POS",OpenStatusEnum.OPENSTATUSENUM_1), YLS("云流水",OpenStatusEnum.OPENSTATUSENUM_1), XZG("新掌柜",OpenStatusEnum.OPENSTATUSENUM_1), MTTG("美团团购",OpenStatusEnum.OPENSTATUSENUM_1), @@ -23,7 +23,11 @@ public enum ShopAccountEnum { public static List getSpecialList(){ - return Arrays.asList(HuoMa.getSystemName(),YLS.getSystemName(),XZG.getSystemName()); + return Arrays.asList(HUOMA.getSystemName(),YLS.getSystemName(),XZG.getSystemName()); + } + + public static List getSpecialEnumList(){ + return Arrays.asList(HUOMA,YLS,XZG); } private String systemName; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PasswordUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PasswordUtil.java index 56f76f069..98cce2d4d 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PasswordUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PasswordUtil.java @@ -44,7 +44,7 @@ public class PasswordUtil { } /** - * 使用 SHA-256 加密密码 + * 使用 MD5 加密密码 * * @param plainPassword 明文密码 * @param salt 盐值 @@ -52,7 +52,7 @@ public class PasswordUtil { */ public static String encryptPassword(String plainPassword, byte[] salt) { try { - MessageDigest messageDigest = MessageDigest.getInstance("SHA-256"); + MessageDigest messageDigest = MessageDigest.getInstance("MD5"); // 将盐值和明文密码拼接后进行哈希计算 messageDigest.update(salt); byte[] hashedBytes = messageDigest.digest(plainPassword.getBytes()); 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 index 7f7b52ddc..352177ec4 100644 --- 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 @@ -36,10 +36,13 @@ public class ShopAccountDAO { shopAccountDO.setShopId(shopId); shopAccountDO.setSystemName(shopAccountEnum.getSystemName()); shopAccountDO.setBoundPhone(partnerUserInfoDO.getMobile()); - shopAccountDO.setPasswordSalt(partnerUserInfoDO.getDownstreamSystemSalting()); - shopAccountDO.setPassword(partnerUserInfoDO.getDownstreamSystemPassword()); + //其他账户不使用统一密码 + if (ShopAccountEnum.getSpecialEnumList().contains(shopAccountEnum)){ + shopAccountDO.setPasswordSalt(partnerUserInfoDO.getDownstreamSystemSalting()); + shopAccountDO.setPassword(partnerUserInfoDO.getDownstreamSystemPassword()); + } shopAccountDO.setStatus(shopAccountEnum.getInitStatus().getCode()); - if (ShopAccountEnum.HuoMa.equals(shopAccountEnum)){ + if (ShopAccountEnum.HUOMA.equals(shopAccountEnum)){ shopAccountDO.setEntryStatus(CommonConstants.ONE); } shopAccountDOS.add(shopAccountDO); @@ -116,5 +119,10 @@ public class ShopAccountDAO { } + public List getALlFail(){ + return shopAccountMapper.getALlFail(); + } + + } 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 index af361293c..37b5693f1 100644 --- 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 @@ -69,6 +69,12 @@ public interface ShopAccountMapper extends Mapper { ); + /** + * 查询云流水、新掌柜 POS失败的数据 重新推数据 + * @return + */ + List getALlFail(); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml index 92d107f80..b8882e2c8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/ShopAccountMapper.xml @@ -126,4 +126,11 @@ #{shopId} + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountAuditDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountAuditDTO.java new file mode 100644 index 000000000..1c2daa0e9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountAuditDTO.java @@ -0,0 +1,29 @@ +package com.cool.store.dto; + +import com.cool.store.enums.ShopAccountEnum; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Author suzhuhong + * @Date 2025/4/8 20:32 + * @Version 1.0 + */ +@Data +public class AccountAuditDTO { + + @ApiModelProperty("门店ID") + @NotNull(message = "门店ID不能为空") + private Long shopId; + + @ApiModelProperty("审核标识 1-通过 2-拒绝") + private Integer auditFlag; + + @ApiModelProperty("HUOMA-火码 YLS-云流水 XZG-新掌柜") + private ShopAccountEnum shopAccountEnum; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountEntryStatusAuditDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountEntryStatusAuditDTO.java new file mode 100644 index 000000000..1e3434700 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/AccountEntryStatusAuditDTO.java @@ -0,0 +1,26 @@ +package com.cool.store.dto; + +import com.cool.store.enums.ShopAccountEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @Author suzhuhong + * @Date 2025/4/8 21:13 + * @Version 1.0 + */ +@Data +public class AccountEntryStatusAuditDTO { + + @ApiModelProperty("门店ID") + @NotNull(message = "门店ID不能为空") + private Long shopId; + + @ApiModelProperty("审核标识 1-通过 2-拒绝") + private Integer auditFlag; + + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/StatusRefreshDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/StatusRefreshDTO.java index 2b0e0d69b..b77f3356d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/StatusRefreshDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/StatusRefreshDTO.java @@ -3,7 +3,6 @@ package com.cool.store.dto; import lombok.Data; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; /** * @Author suzhuhong diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/yun/AccountEntryStatusChangeDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/yun/AccountEntryStatusChangeDTO.java new file mode 100644 index 000000000..ef849ff69 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/yun/AccountEntryStatusChangeDTO.java @@ -0,0 +1,29 @@ +package com.cool.store.dto.yun; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; + +/** + * @Author suzhuhong + * @Date 2025/4/8 21:15 + * @Version 1.0 + */ +@Data +public class AccountEntryStatusChangeDTO { + + + @ApiModelProperty("门店ID") + @NotNull(message = "门店ID不能为空") + private Long shopId; + + @ApiModelProperty("进件状态 5-进件成功 6-进件失败") + @Max(6) + @Min(5) + private Integer entryStatus; + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java index 6286d9e25..a484ac1b3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopAccountService.java @@ -1,6 +1,12 @@ package com.cool.store.service; +import com.cool.store.dto.AccountAuditDTO; +import com.cool.store.dto.AccountEntryStatusAuditDTO; +import com.cool.store.dto.ModifyPasswordDTO; import com.cool.store.dto.ShopAccount.ShopAccountDTO; +import com.cool.store.dto.yun.AccountEntryStatusChangeDTO; +import com.cool.store.enums.DownSystemTypeEnum; +import com.cool.store.request.ZxjpApiRequest; import java.util.List; @@ -19,6 +25,52 @@ public interface ShopAccountService { */ List getShopAccountByShopId(Long shopId); + /** + * modifyPassword + * @param modifyPasswordDTO + * @return + */ + Boolean modifyPassword(ModifyPasswordDTO modifyPasswordDTO); + + + /** + * getData + * @param shopId + * @param systemType + * @return + */ + ZxjpApiRequest getData(Long shopId, DownSystemTypeEnum systemType); + + /** + * 审核平台账号 + * @param accountAuditDTO + * @return + */ + Boolean auditAccount(AccountAuditDTO accountAuditDTO); + + /** + * 进件审核 + * @param accountEntryStatusAuditDTO + * @return + */ + Boolean accountEntryStatusAudit(AccountEntryStatusAuditDTO accountEntryStatusAuditDTO); + + /** + * 进件状态修改 + * @param accountEntryStatusChangeDTO + * @return + */ + Boolean accountEntryStatusChange(AccountEntryStatusChangeDTO accountEntryStatusChangeDTO); + + /** + * 推送数据 + * @param accountAuditDTO + * @return + */ + Boolean pushData(AccountAuditDTO accountAuditDTO); + + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenApiServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenApiServiceImpl.java index a121f21ae..0f1122a76 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenApiServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/OpenApiServiceImpl.java @@ -8,7 +8,6 @@ import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.OpenStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.service.OpenApiService; -import com.google.common.collect.Lists; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -40,7 +39,7 @@ public class OpenApiServiceImpl implements OpenApiService { Integer openStatus = statusRefreshDTO.getOpenStatus()?OpenStatusEnum.OPENSTATUSENUM_5.getCode():OpenStatusEnum.OPENSTATUSENUM_6.getCode(); accountDAO.updateStatusByShopIdAndSystemName(shopInfoDO.getId(), Arrays.asList(statusRefreshDTO.getSystemSource()), openStatus); - //订货系统开通完成 + //订货系统开通完成 todo suzhuhong_ return Boolean.TRUE; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java index 44c385d72..fe648d9f7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java @@ -318,7 +318,7 @@ public class PreparationServiceImpl implements PreparationService { log.info("buildStoreAndDecorationComplete flag1->{} flag2->{} flag3->{}",flag1,flag2,flag3); //都完成了 进件状态修改 if (flag1 && flag2 && flag3) { - shopAccountDAO.updateEntryStatusByShopIdAndSystemName(shopId, Arrays.asList(ShopAccountEnum.HuoMa.getSystemName()), OpenStatusEnum.OPENSTATUSENUM_2.getCode()); + shopAccountDAO.updateEntryStatusByShopIdAndSystemName(shopId, Arrays.asList(ShopAccountEnum.HUOMA.getSystemName()), OpenStatusEnum.OPENSTATUSENUM_2.getCode()); } } return Boolean.TRUE; @@ -337,7 +337,7 @@ public class PreparationServiceImpl implements PreparationService { log.info("selectSiteAndBuildStoreComplete flag2->{} flag3->{}",flag2,flag3); //都完成了 进件状态修改 if (flag2 && flag3) { - shopAccountDAO.updateStatusByShopIdAndSystemName(shopId, Arrays.asList(ShopAccountEnum.HuoMa.getSystemName()), OpenStatusEnum.OPENSTATUSENUM_2.getCode()); + shopAccountDAO.updateStatusByShopIdAndSystemName(shopId, Arrays.asList(ShopAccountEnum.HUOMA.getSystemName()), OpenStatusEnum.OPENSTATUSENUM_2.getCode()); } } return Boolean.TRUE; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java index b98e3a18f..5cd2270c0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopAccountServiceImpl.java @@ -1,26 +1,32 @@ package com.cool.store.service.impl; +import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dao.ShopAccountDAO; import com.cool.store.dao.ShopInfoDAO; +import com.cool.store.dto.AccountAuditDTO; +import com.cool.store.dto.AccountEntryStatusAuditDTO; import com.cool.store.dto.ModifyPasswordDTO; import com.cool.store.dto.ShopAccount.ShopAccountDTO; +import com.cool.store.dto.yun.AccountEntryStatusChangeDTO; +import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.entity.ShopAccountDO; import com.cool.store.entity.ShopInfoDO; +import com.cool.store.enums.DownSystemTypeEnum; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.OpenStatusEnum; import com.cool.store.enums.ShopAccountEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.ShopAccountMapper; +import com.cool.store.request.ZxjpApiRequest; import com.cool.store.response.MiniShopsResponse; import com.cool.store.service.ShopAccountService; import com.cool.store.service.ShopService; +import com.cool.store.service.SyncDataService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -37,6 +43,10 @@ public class ShopAccountServiceImpl implements ShopAccountService { ShopInfoDAO shopInfoDAO; @Resource ShopService shopService; + @Resource + HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + SyncDataService syncDataService; @Override public List getShopAccountByShopId(Long shopId) { @@ -73,32 +83,121 @@ public class ShopAccountServiceImpl implements ShopAccountService { } - Boolean modifyPasswordDTO(ModifyPasswordDTO modifyPasswordDTO){ + @Override + public Boolean modifyPassword(ModifyPasswordDTO modifyPasswordDTO){ //查询 ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(modifyPasswordDTO.getShopId()); if (Objects.isNull(shopInfo)){ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); } + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(shopInfo.getPartnerId()); + hyPartnerUserInfoDO.setDownstreamSystemPassword(modifyPasswordDTO.getPassword()); + hyPartnerUserInfoDO.setDownstreamSystemSalting(modifyPasswordDTO.getPasswordSalt()); + hyPartnerUserInfoDO.setUpdateTime(new Date()); + hyPartnerUserInfoDAO.updatePasswordByPartnerId(hyPartnerUserInfoDO); + List shopListSuccessOpen = shopService.getShopListSuccessOpen(shopInfo.getLineId()); //修改数据 List shopIdList = shopListSuccessOpen.stream().map(MiniShopsResponse::getShopId).collect(Collectors.toList()); - shopAccountDAO.batchUpdatePasswordByShopIds(shopIdList,modifyPasswordDTO.getPassword(),modifyPasswordDTO.getPasswordSalt(),new Date()); + //批量修改密码 密码盐 + shopAccountDAO.batchUpdatePasswordByShopIds(shopIdList,modifyPasswordDTO.getPassword(),modifyPasswordDTO.getPasswordSalt(),new Date()); //当前加盟商所有开店成功的CODE List shopCodeList = shopListSuccessOpen.stream().map(MiniShopsResponse::getShopCode).collect(Collectors.toList()); //推送下游系统 - - - //火码实时该状态 + // TODO: 2025/4/8 suzhuhong_ return Boolean.TRUE; } + @Override + public ZxjpApiRequest getData(Long shopId, DownSystemTypeEnum systemType){ + return syncDataService.getData(shopId,systemType); + } + @Override + public Boolean auditAccount(AccountAuditDTO accountAuditDTO) { + if (accountAuditDTO.getShopId()==null||accountAuditDTO.getAuditFlag()==null||accountAuditDTO.getShopAccountEnum()==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + List accountDOS = shopAccountDAO.selectByShopId(accountAuditDTO.getShopId()); + if (CollectionUtils.isEmpty(accountDOS)){ + throw new ServiceException(ErrorCodeEnum.SYSTEM_DATA_ERROR); + } + Map map = accountDOS.stream().collect(Collectors.toMap(ShopAccountDO::getSystemName, data -> data)); + ShopAccountDO shopAccountDO = map.get(accountAuditDTO.getShopAccountEnum().getSystemName()); + if (Objects.isNull(shopAccountDO)){ + throw new ServiceException(ErrorCodeEnum.SYSTEM_DATA_ERROR); + } + if (!OpenStatusEnum.OPENSTATUSENUM_2.getCode().equals(shopAccountDO.getStatus())){ + throw new ServiceException(ErrorCodeEnum.CURRENT_STATUS_NOT_OPERATION); + } + OpenStatusEnum openStatusEnum = accountAuditDTO.getAuditFlag() == 1 ? OpenStatusEnum.OPENSTATUSENUM_4 : OpenStatusEnum.OPENSTATUSENUM_3; + shopAccountDAO.updateStatusByShopIdAndSystemName(accountAuditDTO.getShopId(),Arrays.asList(shopAccountDO.getSystemName()),openStatusEnum.getCode()); + return Boolean.TRUE; + } + + @Override + public Boolean accountEntryStatusAudit(AccountEntryStatusAuditDTO dto) { + if (dto.getShopId()==null||dto.getAuditFlag()==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + List accountDOS = shopAccountDAO.selectByShopId(dto.getShopId()); + if (CollectionUtils.isEmpty(accountDOS)){ + return Boolean.FALSE; + } + Map map = accountDOS.stream().collect(Collectors.toMap(ShopAccountDO::getSystemName, data -> data)); + ShopAccountDO shopAccountDO = map.get(ShopAccountEnum.HUOMA.getSystemName()); + if (Objects.isNull(shopAccountDO)){ + throw new ServiceException(ErrorCodeEnum.SYSTEM_DATA_ERROR); + } + if (!OpenStatusEnum.OPENSTATUSENUM_2.getCode().equals(shopAccountDO.getEntryStatus())){ + throw new ServiceException(ErrorCodeEnum.CURRENT_STATUS_NOT_OPERATION); + } + OpenStatusEnum openStatusEnum = dto.getAuditFlag() == 1 ? OpenStatusEnum.OPENSTATUSENUM_4 : OpenStatusEnum.OPENSTATUSENUM_3; + //修改进件状态 + shopAccountDAO.updateEntryStatusByShopIdAndSystemName(dto.getShopId(),Arrays.asList(shopAccountDO.getSystemName()),openStatusEnum.getCode()); + return Boolean.TRUE; + } + + @Override + public Boolean accountEntryStatusChange(AccountEntryStatusChangeDTO dto) { + if (dto.getShopId()==null||dto.getEntryStatus()==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + List accountDOS = shopAccountDAO.selectByShopId(dto.getShopId()); + if (CollectionUtils.isEmpty(accountDOS)){ + return Boolean.FALSE; + } + Map map = accountDOS.stream().collect(Collectors.toMap(ShopAccountDO::getSystemName, data -> data)); + ShopAccountDO shopAccountDO = map.get(ShopAccountEnum.HUOMA.getSystemName()); + if (Objects.isNull(shopAccountDO)){ + throw new ServiceException(ErrorCodeEnum.SYSTEM_DATA_ERROR); + } + //不是审核中 已进件 进件失败状态不支持修改 + if (!OpenStatusEnum.getSpecialList().contains(shopAccountDO.getEntryStatus())){ + throw new ServiceException(ErrorCodeEnum.CURRENT_ENTRY_STATUS_NOT_OPERATION); + } + //修改进件状态 + shopAccountDAO.updateEntryStatusByShopIdAndSystemName(dto.getShopId(),Arrays.asList(shopAccountDO.getSystemName()),dto.getEntryStatus()); + return Boolean.TRUE; + } + + @Override + public Boolean pushData(AccountAuditDTO accountAuditDTO) { + if (accountAuditDTO.getShopId()==null||accountAuditDTO.getShopAccountEnum()==null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + + // TODO: 2025/4/8 suzhuhong_ + + + return null; + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java index 5f4096678..c892a6d37 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCTestController.java @@ -243,4 +243,19 @@ public class PCTestController { return ResponseResult.success(syncDataService.getData(shopId, DownSystemTypeEnum.getByCode(type))); } + + @Resource + ShopAccountDAO shopAccountDAO; + @Resource + HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @GetMapping("/initShopAccount") + @ApiOperation("初始化门店账号") + public ResponseResult initShopAccount(@RequestParam(value = "partnerId", required = true) String partnerId, + @RequestParam(value = "shopId", required = true) Long shopId) { + // 调用第三方接口 + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + return ResponseResult.success(shopAccountDAO.initShopAccount(hyPartnerUserInfoDO,Arrays.asList(shopId))); + } + + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopAccountController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopAccountController.java index 430f4c944..87b062a61 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopAccountController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/ShopAccountController.java @@ -1,15 +1,18 @@ package com.cool.store.controller.webb; +import com.cool.store.dto.AccountAuditDTO; +import com.cool.store.dto.AccountEntryStatusAuditDTO; import com.cool.store.dto.ShopAccount.ShopAccountDTO; +import com.cool.store.dto.yun.AccountEntryStatusChangeDTO; +import com.cool.store.enums.DownSystemTypeEnum; +import com.cool.store.request.ZxjpApiRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ShopAccountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -35,5 +38,37 @@ public class ShopAccountController { return ResponseResult.success(accountService.getShopAccountByShopId(shopId)); } + @ApiOperation("根据门店shopId与平台名称查询数据") + @GetMapping("/getData") + public ResponseResult getData(@RequestParam(value = "shopId", required = true) Long shopId, + @RequestParam(value = "shopId", required = true) DownSystemTypeEnum systemName) { + return ResponseResult.success(accountService.getData(shopId,systemName)); + } + + @ApiOperation("开通状态审核") + @PostMapping("/auditAccount") + public ResponseResult getData(@RequestBody @Validated AccountAuditDTO accountAuditDTO) { + return ResponseResult.success(accountService.auditAccount(accountAuditDTO)); + } + + @ApiOperation("推送数据") + @PostMapping("/pushData") + public ResponseResult pushData(@RequestBody @Validated AccountAuditDTO accountAuditDTO) { + return ResponseResult.success(accountService.pushData(accountAuditDTO)); + } + + @ApiOperation("进件状态审核") + @PostMapping("/accountEntryStatusAudit") + public ResponseResult getDaa(@RequestBody @Validated AccountEntryStatusAuditDTO dto) { + return ResponseResult.success(accountService.accountEntryStatusAudit(dto)); + } + + @ApiOperation("进件状态修改") + @PostMapping("/accountEntryStatusChange") + public ResponseResult accountEntryStatusChange(@RequestBody @Validated AccountEntryStatusChangeDTO dto) { + return ResponseResult.success(accountService.accountEntryStatusChange(dto)); + } + + } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopAccountController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopAccountController.java new file mode 100644 index 000000000..daf22e8d7 --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopAccountController.java @@ -0,0 +1,43 @@ +package com.cool.store.controller.webc; + +import com.cool.store.dto.ModifyPasswordDTO; +import com.cool.store.dto.ShopAccount.ShopAccountDTO; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.ShopAccountService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/4/8 16:17 + * @Version 1.0 + */ +@RestController +@Api(tags ="小程序账号管理") +@RequestMapping({"/mini/account"}) +public class MiniShopAccountController { + + + @Resource + ShopAccountService accountService; + + + @ApiOperation("根据门店shopId查询平台账号") + @GetMapping("/getShopAccountByShopId") + public ResponseResult> getShopAccountByShopId(@RequestParam(value = "shopId", required = true) Long shopId) { + return ResponseResult.success(accountService.getShopAccountByShopId(shopId)); + } + + + @ApiOperation("修改密码") + @GetMapping("/modifyPassword") + public ResponseResult modifyPassword(@RequestBody ModifyPasswordDTO request) { + return ResponseResult.success(accountService.modifyPassword(request)); + } + + +} diff --git a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java index 87ac3df71..a979d3889 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java @@ -101,6 +101,8 @@ public class XxlJobHandler { ApplyLicenseMapper applyLicenseMapper; @Resource private TallyBookService tallyBookService; + @Resource + ShopAccountDAO accountDAO; @@ -337,5 +339,45 @@ public class XxlJobHandler { } } + @XxlJob("rePush") + public void rePush() { + log.info("------start rePush------"); + boolean hasNext = true; + int pageNum = 1; + int pageSize = 10; + List shopIdList = new ArrayList<>(); + while (hasNext) { + PageHelper.startPage(pageNum, pageSize); + //获取成功开店的门店 + List accountDOS = accountDAO.getALlFail(); + + if (CollectionUtils.isEmpty(accountDOS)) { + log.info("------rePush is empty------"); + break; + } + for (ShopAccountDO accountDO : accountDOS){ + try { + // TODO: 2025/4/8 suzhuhong_ + //推送数据 如果云流水或者新掌柜其中一个失败了 还要不要推送数据 + + //如果是POS推送成功 修改状态 还要修改阶段数据 + + //云流水 新掌柜 等待回调 + + }catch (Exception e){ + + } + } + if (accountDOS.size() < pageSize){ + hasNext = false; + } + pageNum++; + } + } + + + + + }