From 1e323efe7cf8991acb8828a8a1c7f2da726660a0 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 29 May 2025 13:36:24 +0800 Subject: [PATCH 01/35] =?UTF-8?q?=E5=8A=A0=E7=9B=9F=E8=B4=B9=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/point/PayTypeEnum.java | 4 ++- .../enums/point/ShopSubStageStatusEnum.java | 2 +- .../main/resources/mapper/LinePayMapper.xml | 5 ++- .../com/cool/store/entity/FranchiseFeeDO.java | 13 ++++++++ .../java/com/cool/store/entity/LinePayDO.java | 15 +++++++++ .../store/request/LinePaySubmitRequest.java | 5 ++- .../service/impl/LinePayServiceImpl.java | 32 ++----------------- 7 files changed, 42 insertions(+), 34 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java index 36b5967a2..ee61a5a26 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/PayTypeEnum.java @@ -8,7 +8,9 @@ package com.cool.store.enums.point; */ public enum PayTypeEnum { WX_PAY(1,"微信支付"), - BANK_PAY(2,"银行转账"); + BANK_PAY(2,"银行转账"), + ONLINE_PAY(3,"线上支付"), + OFFLINE_PAY(4,"线下支付"); private Integer code; private String desc; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java index 70fc96b96..2d4393148 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java @@ -39,7 +39,7 @@ public enum ShopSubStageStatusEnum { //缴纳加盟费/保证金 SHOP_SUB_STAGE_STATUS_70(ShopSubStageEnum.SHOP_STAGE_7, 700, "待内勤发布账单", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_71(ShopSubStageEnum.SHOP_STAGE_7, 710, "待加盟商缴费", Boolean.FALSE), - SHOP_SUB_STAGE_STATUS_72(ShopSubStageEnum.SHOP_STAGE_7, 720, "待内勤审核", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_72(ShopSubStageEnum.SHOP_STAGE_7, 720, "对账确认中", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_73(ShopSubStageEnum.SHOP_STAGE_7, 730, "已缴费", Boolean.TRUE), SHOP_SUB_STAGE_STATUS_74(ShopSubStageEnum.SHOP_STAGE_7, 740, "审核不通过", Boolean.FALSE), diff --git a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml index 43bee5bf8..dc6f5fb79 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml @@ -25,11 +25,14 @@ + + + id,shop_id, partner_id, line_id, pay_status, pay_type, pay_user_name, pay_account, bank_code, bank_name, branch_bank_code, branch_bank_name, pay_time, pay_pic, promise_pic, create_time, - update_time, create_user_id, update_user_id, deleted,pay_business_type,amount,combined_field + update_time, create_user_id, update_user_id, deleted,pay_business_type,amount,combined_field,xgj_claim_status,payment_receipt_code,pay_serial_number select from xfsg_line_pay - where id = #{id,jdbcType=BIGINT} + where id = #{id,jdbcType=BIGINT} and deleted = 0 delete @@ -114,6 +116,18 @@ combined_field, + + xgj_claim_status, + + + payment_receipt_code, + + + pay_serial_number, + + + remark + @@ -178,6 +192,18 @@ #{combinedField,jdbcType=VARCHAR}, + + #{xgjClaimStatus,jdbcType=TINYINT}, + + + #{paymentReceiptCode,jdbcType=VARCHAR}, + + + #{paySerialNumber,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR} + @@ -240,6 +266,18 @@ combined_field = #{combinedField,jdbcType=VARCHAR}, + + xgj_claim_status = #{xgjClaimStatus,jdbcType=TINYINT}, + + + payment_receipt_code = #{paymentReceiptCode,jdbcType=VARCHAR}, + + + pay_serial_number = #{paySerialNumber,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} @@ -349,4 +387,10 @@ + + + update xfsg_line_pay set deleted = 1 ,update_time = now(),update_user_id = #{userId} where id = #{id} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LinePayDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LinePayDO.java index 97ba895a9..8376a28b1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LinePayDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LinePayDO.java @@ -37,7 +37,7 @@ public class LinePayDO implements Serializable { @ApiModelProperty("支付状态 45:待缴费 50:已缴费 55缴费失败") private Integer payStatus; - @ApiModelProperty("支付方式 1微信 2银行转账") + @ApiModelProperty("支付方式 1微信 2银行转账 3-线下支付,4-线上支付") private Integer payType; @ApiModelProperty("付款人姓名") @@ -102,4 +102,7 @@ public class LinePayDO implements Serializable { @ApiModelProperty("交易流水号") private String paySerialNumber; + @Column(name = "remark") + private String remark; + } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java index 3195c8269..c2901fdbb 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java @@ -1,17 +1,26 @@ package com.cool.store.request; +import com.cool.store.entity.LinePayDO; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.apache.tika.utils.DateUtils; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Objects; + +import static com.cool.store.enums.WorkflowSubStageStatusEnum.PAY_DEPOSIT_50; @Data public class LinePaySubmitRequest { + private Long id; + @ApiModelProperty("xfsg_user_info.partner_id") private String partnerId; @@ -42,7 +51,6 @@ public class LinePaySubmitRequest { @ApiModelProperty("支行名称") private String branchBankName; - //正新缴纳加盟费后续:payTime,payPic废弃使用combinedField @ApiModelProperty("缴纳时间") private String payTime; @@ -52,15 +60,49 @@ public class LinePaySubmitRequest { @ApiModelProperty("承诺书图片") private String promisePic; - @ApiModelProperty("支付类型 0-缴纳意向金 1-缴纳加盟费 2-装修款") + @ApiModelProperty("支付类型 1-缴纳加盟费") private Integer payBusinessType; @ApiModelProperty("铺位id") private Long shopId; @ApiModelProperty("缴费金额") private BigDecimal amount; + //废弃 @ApiModelProperty("组合字段:缴费时间+付款截图,数组") private String combinedField; @ApiModelProperty("交易流水号") private String paySerialNumber; + + @ApiModelProperty("备注") + private String remark; + + /** + * @Auther: wangshuo + * @Date: 2025/5/30 + * @description:加盟费使用 + */ + public static LinePayDO convertFranchiseFee(LinePaySubmitRequest request) { + LinePayDO linePayDO = new LinePayDO(); + linePayDO.setId(request.getId()); + linePayDO.setPartnerId(request.getPartnerId()); + linePayDO.setLineId(request.getLineId()); + linePayDO.setPayStatus(PAY_DEPOSIT_50.getCode()); + linePayDO.setPayType(request.getPayType()); + linePayDO.setPayUserName(request.getPayUserName()); + linePayDO.setPayAccount(request.getPayAccount()); + linePayDO.setBankCode(request.getBankCode()); + linePayDO.setBankName(request.getBankName()); + linePayDO.setBranchBankCode(request.getBranchBankCode()); + linePayDO.setBranchBankName(request.getBranchBankName()); + try { + linePayDO.setPayTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(request.getPayTime())); + } catch (ParseException e) { + throw new RuntimeException(e); + } + linePayDO.setPayPic(request.getPayPic()); + linePayDO.setPaySerialNumber(request.getPaySerialNumber()); + linePayDO.setPayBusinessType(request.getPayBusinessType()); + linePayDO.setRemark(request.getRemark()); + return linePayDO; + } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java new file mode 100644 index 000000000..36da1059f --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java @@ -0,0 +1,71 @@ +package com.cool.store.response; + +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author: WangShuo + * @Date: 2025/05/30/16:51 + * @Version 1.0 + * @注释: + */ +@Data +public class FranchiseFeePayInfoResponse { + private Long id; + + private String partnerName; + @ApiModelProperty("xfsg_user_info.partner_id") + private String partnerId; + + @ApiModelProperty("line_info.id") + private Long lineId; + + @ApiModelProperty("铺位id") + private Long shopId; + + @ApiModelProperty("支付方式 1微信 2银行转账,3-线上支付,4-线下支持") + private Integer payType; + + @ApiModelProperty("付款人姓名/加盟商姓名") + private String payUserName; + + @ApiModelProperty("付款账号") + private String payAccount; + + @ApiModelProperty("开户行code") + private String bankCode; + + @ApiModelProperty("开户行名称") + private String bankName; + + @ApiModelProperty("支行code") + private String branchBankCode; + + @ApiModelProperty("支行名称") + private String branchBankName; + + @ApiModelProperty("缴纳时间") + private String payTime; + + @ApiModelProperty("付款截图") + private String payPic; + + @ApiModelProperty("缴费金额") + private BigDecimal amount; + + @ApiModelProperty("交易流水号") + private String paySerialNumber; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("提交时间") + private Date createTime; + + @ApiModelProperty("认领状态 0-待认领 1-已认领") + private Integer xgjClaimStatus; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java index 8d60dfa10..0decbfc60 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java @@ -6,12 +6,13 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.persistence.*; +import java.math.BigDecimal; import java.util.Date; @Data public class FranchiseFeeResponse { private Long id; - @ApiModelProperty("shopId") + @ApiModelProperty("shopId门店id") private Long shopId; @ApiModelProperty("payId") private Long payId; @@ -53,6 +54,17 @@ public class FranchiseFeeResponse { @ApiModelProperty("铺位面积") private String pointArea; + @ApiModelProperty("收款状态 0-待缴费 1-部分缴款 2-已完成") + private Integer xgjCollectionStatus; + + @ApiModelProperty("剩余待缴金额") + private BigDecimal xgjRemainderPayableAmount; + + @ApiModelProperty("新管家已缴金额") + private BigDecimal xgjFeesPaid; + + + @Data public static class LinePay{ @ApiModelProperty("") @@ -185,6 +197,9 @@ public class FranchiseFeeResponse { franchiseFeeResponse.setUpdateTime(franchiseFeeDO.getUpdateTime()); franchiseFeeResponse.setFirstYearManageFee(franchiseFeeDO.getFirstYearManageFee()); franchiseFeeResponse.setDiscountReason(franchiseFeeDO.getDiscountReason()); + franchiseFeeResponse.setXgjCollectionStatus(franchiseFeeDO.getXgjCollectionStatus()); + franchiseFeeResponse.setXgjRemainderPayableAmount(franchiseFeeDO.getXgjRemainderPayableAmount()); + franchiseFeeResponse.setXgjFeesPaid(franchiseFeeDO.getXgjFeesPaid()); return franchiseFeeResponse; } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java index 39cc77ff2..d5c966c87 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java @@ -4,9 +4,12 @@ import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.LoginUserInfo; import com.cool.store.dto.AmountDTO; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.response.FranchiseFeePayInfoResponse; import com.cool.store.vo.LinePayVO; import com.cool.store.vo.PartnerUserInfoVO; +import java.util.List; + /** * @Author wxp * @Date 2024/3/25 13:45 @@ -27,5 +30,9 @@ public interface LinePayService { Long submitPayInfo(LinePaySubmitRequest followLog, PartnerUserInfoVO partnerUser); + Long submitFranchiseFeePayInfo(LinePaySubmitRequest request, String userId); + List getFranchiseFeePayInfoList(Long shopId); + + Boolean deleteFranchiseFeePayInfo(Long id,String userId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 93c9c638f..fb4b92e16 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -103,22 +103,6 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { return new FranchiseFeeResponse(); } FranchiseFeeResponse resp = FranchiseFeeResponse.from(result); - LinePayDO linePayDO = linePayMapper.selectByPrimaryKey(result.getPayId()); - if (Objects.nonNull(linePayDO)) { - FranchiseFeeResponse.LinePay linePayResult = FranchiseFeeResponse.LinePay.from(linePayDO); - if (Objects.nonNull(linePayDO.getLineId())){ - LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(linePayDO.getLineId()); - linePayResult.setPartnerName(lineInfoDO.getUsername()); - } - linePayResult.setAmount(new BigDecimal(result.getPerformanceBond()).add(new BigDecimal(result.getFirstYearFee())).add(new BigDecimal(result.getFirstYearManageFee())) - .add(new BigDecimal(result.getYearFranchiseFee())).add(new BigDecimal(result.getLoanMargin())).toString()); - if (Objects.nonNull(result.getAuditId())) { - ShopAuditInfoDO shopAuditInfoDO = shopAuditInfoMapper.selectByPrimaryKey(result.getAuditId()); - linePayResult.setStatus(shopAuditInfoDO.getResultType()); - linePayResult.setResult(shopAuditInfoDO.getResultType() == 0 ? shopAuditInfoDO.getPassReason() : shopAuditInfoDO.getRejectReason()); - } - resp.setLinePayDO(linePayResult); - } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); if (shopInfoDO.getPointId() != null ){ PointInfoDO pointInfoDO = pointInfoDAO.getPointInfoById(shopInfoDO.getPointId()); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 609cbcaba..827de6128 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -14,21 +14,25 @@ import com.cool.store.entity.*; import com.cool.store.enums.*; import com.cool.store.enums.point.PayBusinessTypeEnum; import com.cool.store.enums.point.PayTypeEnum; +import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.FranchiseFeeMapper; import com.cool.store.mapper.LineInfoMapper; import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.response.FranchiseFeePayInfoResponse; import com.cool.store.service.LinePayService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.RedisUtilPool; +import com.cool.store.utils.UUIDUtils; import com.cool.store.utils.poi.DateUtils; import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.constant.Constants; import com.cool.store.vo.LinePayVO; import com.cool.store.vo.PartnerUserInfoVO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -132,6 +136,122 @@ public class LinePayServiceImpl implements LinePayService { return Boolean.TRUE; } + @Override + @Transactional(rollbackFor = Exception.class) + public Long submitFranchiseFeePayInfo(LinePaySubmitRequest request, String userId) { + log.info("submitPayInfo request:{},userId:{}", JSONObject.toJSONString(request), JSONObject.toJSONString(userId)); + if (!checkSubmitFranchiseFeePayRequest(request)) { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + if (StringUtils.isBlank(userId)){ + throw new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID); + } + //判断付款人最多2人(可重复) + List list = linePayDAO.getFranchiseFeePayInfoByShopId(request.getShopId()); + Set payUserList = list.stream().map(LinePayDO::getPayUserName).collect(Collectors.toSet()); + if (!payUserList.contains(request.getPayUserName())&&payUserList.size()>=2){ + throw new ServiceException(ErrorCodeEnum.PAY_USER_NAME_ERROR); + } + if (request.getId() != null) { + LinePayDO linePayById = linePayDAO.getById(request.getId()); + if (linePayById == null) { + throw new ServiceException(ErrorCodeEnum.UPDATE_ERROR); + } + if (linePayById.getXgjClaimStatus().equals(ClaimStatusEnum.Claimed.getCode())) { + throw new ServiceException(ErrorCodeEnum.CLAIM_STATUS_ERROR); + } + } + ShopStageInfoDO shopSubStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); + if (!shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()) + && !shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) { + throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + } + String lockKey = "submitFranchiseFeePayInfo:lineId" + request.getLineId() + "shopId" + request.getShopId(); + //流水 + String lockValue = UUID.randomUUID().toString(); + boolean acquired = false; + try { + //10s过期 + acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.TEN_SECONDS); + if (Boolean.TRUE.equals(acquired)) { + LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); + LinePayDO linePayDO = LinePaySubmitRequest.convertFranchiseFee(request); + linePayDO.setPartnerId(lineInfo.getPartnerId()); + linePayDO.setCreateUserId(userId); + linePayDO.setCreateTime(new Date()); + if (linePayDO.getId() != null) { + linePayDAO.updateLinePay(linePayDO); + } else { + linePayDO.setPaymentReceiptCode(UUIDUtils.generateCustomUUID()); + linePayDAO.addLinePay(linePayDO); + } + if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) + { + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); + } + //todo 苏竹红推送数据 + return linePayDO.getId(); + } else { + throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); + } + } finally { + if (Boolean.TRUE.equals(acquired)) { + String currentValue = redisUtilPool.getString(lockKey); + if (lockValue.equals(currentValue)) { + redisUtilPool.delKey(lockKey); + } + } + } + } + + @Override + public List getFranchiseFeePayInfoList(Long shopId) { + List list = linePayDAO.getFranchiseFeePayInfoByShopId(shopId); + List result = new ArrayList<>(); + if (CollectionUtils.isEmpty(list)){ + return result; + } + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); + LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfoDO.getLineId()); + String username = lineInfoDO.getUsername(); + for (LinePayDO linePayDO : list){ + FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); + BeanUtil.copyProperties(linePayDO, response); + response.setPartnerName(username); + result.add(response); + } + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean deleteFranchiseFeePayInfo(Long id,String userId) { + LinePayDO linePay = linePayDAO.getById(id); + if (linePay == null){ + throw new ServiceException(ErrorCodeEnum.DELETE_ERROR); + } + if (linePay.getXgjClaimStatus().equals(ClaimStatusEnum.Claimed.getCode())) { + throw new ServiceException(ErrorCodeEnum.CLAIM_STATUS_ERROR); + } + linePayDAO.deleteById(id,userId); + //todo 苏竹红推送数据 + return Boolean.TRUE; + } + + private Boolean checkSubmitFranchiseFeePayRequest(LinePaySubmitRequest request) { + if (StringUtils.isAnyBlank(request.getPayUserName(), request.getPayAccount(), request.getBankName(), request.getBranchBankName(), + request.getPayTime(), request.getPayPic())) { + return Boolean.FALSE; + } + if (Objects.isNull(request.getPayType()) || request.getLineId() == null || request.getShopId() == null) { + return Boolean.FALSE; + } + if (!request.getPayBusinessType().equals(PayBusinessTypeEnum.FRANCHISE_FEE.getCode())) { + return Boolean.FALSE; + } + return Boolean.TRUE; + } + @Override @Transactional(rollbackFor = Exception.class) public Long submitPayInfo(LinePaySubmitRequest request, PartnerUserInfoVO partnerUser) { @@ -139,26 +259,54 @@ public class LinePayServiceImpl implements LinePayService { if (Objects.isNull(request.getPayBusinessType())) { request.setPayBusinessType(Constants.ZERO_INTEGER); } + if (request.getPayBusinessType().equals(PayBusinessTypeEnum.FRANCHISE_FEE.getCode())) { + throw new ServiceException(ErrorCodeEnum.API_CALL_ERROR); + } LineInfoDO lineInfo = new LineInfoDO(); if (request.getLineId() != null) { lineInfo = lineInfoDAO.getLineInfo(request.getLineId()); } -// //缴纳加盟费检验缴费人必须是加盟商 -// if(PayBusinessTypeEnum.FRANCHISE_FEE.getCode().equals(request.getPayBusinessType()) && !lineInfo.getUsername().trim().equals(request.getPayUserName().trim())){ -// throw new ServiceException(ErrorCodeEnum.CHECK_PAYER_ERROR); -// } LinePayDO linePayDO = linePayDAO.getByLineIdAndPayTypeAndShopId(request.getLineId(), request.getPayBusinessType(), request.getShopId()); linePayDO = checkAndFill(linePayDO, request, partnerUser); Long payId = linePayDO.getId(); - if (PayBusinessTypeEnum.FRANCHISE_FEE.getCode().equals(request.getPayBusinessType()) && payId != null) { - FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); - if (Objects.isNull(franchiseFeeDO)) { - throw new ServiceException(ErrorCodeEnum.UNISSUED_STATEMENT); - } - franchiseFeeDO.setPayId(payId); - franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); - shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); - //todo 苏竹红推送数据 +// if (PayBusinessTypeEnum.FRANCHISE_FEE.getCode().equals(request.getPayBusinessType()) && payId != null) { +// FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); +// if (Objects.isNull(franchiseFeeDO)) { +// throw new ServiceException(ErrorCodeEnum.UNISSUED_STATEMENT); +// } +// franchiseFeeDO.setPayId(payId); +// franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); +// shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); +// ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(franchiseFeeDO.getShopId()); +// Set auditFranchiseFeeUsers = new HashSet<>(); +// List branchUser = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.BRANCH_OFFICE, shopInfoDO.getRegionId()); +// if (Objects.nonNull(branchUser)) { +// Set branchUserIds = branchUser.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toSet()); +// auditFranchiseFeeUsers.addAll(branchUserIds); +// } +// List regionUser = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.REGION_OFFICE, shopInfoDO.getRegionId()); +// if (Objects.nonNull(regionUser)) { +// Set regionUserIds = regionUser.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toSet()); +// auditFranchiseFeeUsers.addAll(regionUserIds); +// } +// HashMap map = new HashMap<>(); +// map.put("partnerUsername", lineInfo.getUsername()); +// map.put("partnerMobile", lineInfo.getMobile()); +// map.put("storeName", shopInfoDO.getShopName()); +// commonService.sendQWMessage(new ArrayList<>(auditFranchiseFeeUsers), +// MessageEnum.MESSAGE_18, +// map); +// } + if (PayBusinessTypeEnum.INTENT_MONEY.getCode().equals(request.getPayBusinessType())) { + lineInfo.setWorkflowSubStage(WorkflowSubStageEnum.PAY_DEPOSIT.getCode()); + lineInfo.setWorkflowSubStageStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode()); + lineInfoDAO.insertOrUpdate(lineInfo); + HashMap map = new HashMap<>(); + map.put("partnerUsername", lineInfo.getUsername()); + map.put("partnerMobile", lineInfo.getMobile()); + commonService.sendQWMessage(Collections.singletonList(lineInfo.getInvestmentManager()), + MessageEnum.MESSAGE_5, + map); } return payId == null ? null : payId; } @@ -179,7 +327,6 @@ public class LinePayServiceImpl implements LinePayService { } private void fillLinePay(Boolean isAdd, LinePayDO linePayDO, LinePaySubmitRequest request, PartnerUserInfoVO partnerUser) { - linePayDO.setPaySerialNumber(request.getPaySerialNumber()); linePayDO.setCombinedField(request.getCombinedField()); linePayDO.setPayType(request.getPayType()); linePayDO.setPayUserName(request.getPayUserName()); @@ -190,7 +337,7 @@ public class LinePayServiceImpl implements LinePayService { linePayDO.setBranchBankName(request.getBranchBankName()); if (Objects.nonNull(request.getPayTime())) { linePayDO.setPayTime(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", request.getPayTime())); - }else { + } else { linePayDO.setPayTime(null); } linePayDO.setPayPic(request.getPayPic()); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java index 4b4273c43..dd9fff3af 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java @@ -5,6 +5,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.AmountDTO; import com.cool.store.enums.point.PayBusinessTypeEnum; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.response.FranchiseFeePayInfoResponse; import com.cool.store.response.ResponseResult; import com.cool.store.service.LinePayService; import com.cool.store.vo.LinePayVO; @@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author wxp @@ -44,12 +46,22 @@ public class PCLinePayController { return ResponseResult.success(linePayService.getAmount(lineId)); } - @ApiOperation("缴纳意向金/加盟费") - @PostMapping("/submitPayInfo") - public ResponseResult submitPayInfo(@RequestBody LinePaySubmitRequest request){ - PartnerUserInfoVO partnerUser = PartnerUserHolder.getUser(); - return ResponseResult.success(linePayService.submitPayInfo(request, partnerUser)); + @ApiOperation("加盟费提交缴费信息") + @PostMapping("/submitFranchiseFeePayInfo") + public ResponseResult submitFranchiseFeePayInfo(@RequestBody LinePaySubmitRequest request){ + + return ResponseResult.success(linePayService.submitFranchiseFeePayInfo(request, CurrentUserHolder.getUserId())); + } + @ApiOperation("查询加盟费缴费信息") + @GetMapping("/getFranchiseFeePayInfoList") + public ResponseResult> getFranchiseFeePayInfoList(@RequestParam("shopId") Long shopId) { + return ResponseResult.success(linePayService.getFranchiseFeePayInfoList(shopId)); } + @ApiOperation("删除加盟费缴费信息") + @GetMapping("/deleteFranchiseFeePayInfo") + public ResponseResult deleteFranchiseFeePayInfo(@RequestParam("id") Long id) { + return ResponseResult.success(linePayService.deleteFranchiseFeePayInfo(id, CurrentUserHolder.getUserId())); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java index 34696e69b..23682ef29 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java @@ -5,6 +5,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.dto.AmountDTO; import com.cool.store.enums.point.PayBusinessTypeEnum; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.response.FranchiseFeePayInfoResponse; import com.cool.store.response.ResponseResult; import com.cool.store.service.LinePayService; import com.cool.store.vo.LinePayVO; @@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author wxp @@ -54,4 +56,22 @@ public class LinePayController { return ResponseResult.success(linePayService.getAmount(lineId)); } + @ApiOperation("加盟费提交缴费信息") + @PostMapping("/submitFranchiseFeePayInfo") + public ResponseResult submitFranchiseFeePayInfo(@RequestBody LinePaySubmitRequest request){ + return ResponseResult.success(linePayService.submitFranchiseFeePayInfo(request, PartnerUserHolder.getUser().getPartnerId())); + } + + @ApiOperation("查询加盟费缴费信息") + @GetMapping("/getFranchiseFeePayInfoList") + public ResponseResult> getFranchiseFeePayInfoList(@RequestParam("shopId") Long shopId) { + return ResponseResult.success(linePayService.getFranchiseFeePayInfoList(shopId)); + } + + @ApiOperation("删除加盟费缴费信息") + @GetMapping("/deleteFranchiseFeePayInfo") + public ResponseResult deleteFranchiseFeePayInfo(@RequestParam("id") Long id) { + return ResponseResult.success(linePayService.deleteFranchiseFeePayInfo(id, PartnerUserHolder.getUser().getPartnerId())); + } + } From 08afc93c948a1598ed9fa2551477fb70760633d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 3 Jun 2025 15:08:25 +0800 Subject: [PATCH 03/35] =?UTF-8?q?feat:=E8=AE=A2=E5=8D=95=E7=BC=96=E5=8F=B7?= =?UTF-8?q?=E7=94=9F=E6=88=90=20=E8=AE=A2=E5=8D=95=E7=BC=96=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/constants/RedisConstant.java | 2 ++ .../com/cool/store/utils/CoolDateUtils.java | 9 +++++++ .../cool/store/utils/RedisConstantUtil.java | 6 +++++ .../java/com/cool/store/utils/UUIDUtils.java | 27 +++++++------------ .../response/FranchiseFeePayInfoResponse.java | 6 +++++ .../cool/store/service/LinePayService.java | 2 ++ .../service/impl/LinePayServiceImpl.java | 22 ++++++++++++++- .../controller/webb/PCTestController.java | 17 ++++++++++++ 8 files changed, 73 insertions(+), 18 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java index f4990713b..29f07024f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java @@ -194,6 +194,8 @@ public class RedisConstant { */ public static final String COOLINGPERIOD_FIRSTLOGIN_KEY = "coolingPeriodFirstLoginCache:{0}"; + public static final String REDIS_KEY_PREFIX = "daily_id:{0}"; + /** * 七天 */ diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index 88060a25c..9d11c6883 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -34,6 +34,7 @@ public class CoolDateUtils { public static final String DATE_FORMAT_SEC_5 = "yyyy.MM.dd HH:mm"; public static final String DATE_FORMAT_SEC_6 = "yyyy.MM.dd"; public static final String DATE_FORMAT_SEC_7 = "yyyy/MM/dd HH:mm"; + public static final String DATE_FORMAT_SEC_8 = "yyyyMMdd"; private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @@ -136,6 +137,14 @@ public class CoolDateUtils { return str; } + /** + * 获取当前日期 yyyyMMdd + * @return + */ + public static final String getToday(){ + DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(DATE_FORMAT_SEC_8); + return LocalDate.now().format(DATE_FORMATTER); + } /** * 获取当前日期字符串 (yyyy-MM-dd) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java index 53d63a32f..71152d693 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisConstantUtil.java @@ -6,6 +6,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import java.text.MessageFormat; + /** * redis常量工具类 @@ -113,4 +115,8 @@ public class RedisConstantUtil { return active + "_" + RedisConstant.GET_AI_MODULE + eid; } + public String getPaymentReceiptCode(String today){ + return active + "_" + MessageFormat.format(RedisConstant.REDIS_KEY_PREFIX, today); + } + } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/UUIDUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/UUIDUtils.java index 054c32b24..1594589b7 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/UUIDUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/UUIDUtils.java @@ -1,8 +1,11 @@ package com.cool.store.utils; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import org.apache.commons.lang3.StringUtils; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.Random; /** @@ -14,6 +17,10 @@ import java.util.Random; */ public class UUIDUtils { + private static final String ID_PREFIX = "12"; + + private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(CoolDateUtils.DATE_FORMAT_SEC_8); + /** * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID */ @@ -29,22 +36,8 @@ public class UUIDUtils { return uuid; } // 生成 UUID 方法 - public static String generateCustomUUID() { - // 获取当前时间戳(毫秒) - long timestamp = System.currentTimeMillis(); - - // 生成4位随机数字(0000 - 9999) - int randomNumber = new Random().nextInt(10000); - String randomDigits = String.format("%04d", randomNumber); - - // 生成2个随机大写字母 - String randomLetters = ""; - Random random = new Random(); - for (int i = 0; i < 2; i++) { - char c = (char) ('A' + random.nextInt(26)); - randomLetters += c; - } - - return timestamp + randomDigits + randomLetters; + public static String generateCustomUUID(Integer randomCount) { + String today = LocalDate.now().format(DATE_FORMATTER); + return ID_PREFIX + today + String.format("%04d", randomCount); } } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java index 36da1059f..107da5836 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeePayInfoResponse.java @@ -68,4 +68,10 @@ public class FranchiseFeePayInfoResponse { @ApiModelProperty("认领状态 0-待认领 1-已认领") private Integer xgjClaimStatus; + + @ApiModelProperty("支付状态 45:待缴费 50:已缴费") + private Integer payStatus; + + @ApiModelProperty("付款单编号") + private String paymentReceiptCode; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java index d5c966c87..bb30dfa19 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java @@ -32,6 +32,8 @@ public interface LinePayService { Long submitFranchiseFeePayInfo(LinePaySubmitRequest request, String userId); + String getPaymentReceiptCode(); + List getFranchiseFeePayInfoList(Long shopId); Boolean deleteFranchiseFeePayInfo(Long id,String userId); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 827de6128..41332f829 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; +import com.cool.store.constants.RedisConstant; import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dao.LineInfoDAO; @@ -24,6 +25,8 @@ import com.cool.store.request.LinePaySubmitRequest; import com.cool.store.response.FranchiseFeePayInfoResponse; import com.cool.store.service.LinePayService; import com.cool.store.service.UserAuthMappingService; +import com.cool.store.utils.CoolDateUtils; +import com.cool.store.utils.RedisConstantUtil; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.UUIDUtils; import com.cool.store.utils.poi.DateUtils; @@ -42,6 +45,7 @@ import org.springframework.web.bind.annotation.RequestParam; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.MessageFormat; +import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -54,6 +58,7 @@ import java.util.stream.Collectors; @Slf4j public class LinePayServiceImpl implements LinePayService { + @Value("${mybatis.configuration.variables.enterpriseId}") private String eid; @Resource @@ -77,6 +82,8 @@ public class LinePayServiceImpl implements LinePayService { private RedisUtilPool redisUtilPool; @Resource private UserAuthMappingService userAuthMappingService; + @Resource + RedisConstantUtil redisConstantUtil; @Override public LinePayVO getLinePayInfo(Long lineId, Integer businessType, Long shopId) { @@ -182,7 +189,7 @@ public class LinePayServiceImpl implements LinePayService { if (linePayDO.getId() != null) { linePayDAO.updateLinePay(linePayDO); } else { - linePayDO.setPaymentReceiptCode(UUIDUtils.generateCustomUUID()); + linePayDO.setPaymentReceiptCode(getPaymentReceiptCode()); linePayDAO.addLinePay(linePayDO); } if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) @@ -204,6 +211,19 @@ public class LinePayServiceImpl implements LinePayService { } } + @Override + public String getPaymentReceiptCode(){ + //当前日期 + String today = CoolDateUtils.getToday(); + String redisKey = redisConstantUtil.getPaymentReceiptCode(today); + Long sequence = redisUtilPool.incrby(redisKey, 1); + //第一次设置过期时间 一天 + if (sequence==1){ + redisUtilPool.expire(redisKey,RedisConstant.ONE_DAY_SECONDS); + } + return "12" + today + String.format("%04d", sequence); + } + @Override public List getFranchiseFeePayInfoList(Long shopId) { List list = linePayDAO.getFranchiseFeePayInfoByShopId(shopId); 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 8778e7a33..d800373e5 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 @@ -1,5 +1,6 @@ package com.cool.store.controller.webb; +import com.cool.store.constants.RedisConstant; import com.cool.store.dao.*; import com.cool.store.dto.FoodTokenDTO; import com.cool.store.dto.GetAccessTokenDTO; @@ -25,8 +26,12 @@ import com.cool.store.response.oppty.OpportunityInfoPageResponse; import com.cool.store.service.*; import com.cool.store.service.impl.CommonService; import com.cool.store.service.impl.UserAuthMappingServiceImpl; +import com.cool.store.utils.CoolDateUtils; +import com.cool.store.utils.RedisConstantUtil; +import com.cool.store.utils.RedisUtilPool; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -304,4 +309,16 @@ public class PCTestController { return ResponseResult.success(thirdFoodService.getFoodToken(dto)); } + @Resource + LinePayService linePayService; + @GetMapping("/getToday") + @ApiOperation("getToday") + public ResponseResult getToday() { + for (int i = 0; i < 10; i++) { + System.out.println(linePayService.getPaymentReceiptCode()); + } + return ResponseResult.success(Boolean.TRUE); + } + + } From 51a3da146c7665cffa3b29fe830006a1957ec72e Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 09:40:00 +0800 Subject: [PATCH 04/35] fix --- .../src/main/resources/mapper/LinePayMapper.xml | 2 +- .../java/com/cool/store/request/LinePaySubmitRequest.java | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml index 0b407d47c..069a515d9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml @@ -388,7 +388,7 @@ update xfsg_line_pay set deleted = 1 ,update_time = now(),update_user_id = #{userId} where id = #{id} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java index c2901fdbb..8a5b28833 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java @@ -1,6 +1,7 @@ package com.cool.store.request; import com.cool.store.entity.LinePayDO; +import com.cool.store.enums.ClaimStatusEnum; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -85,8 +86,10 @@ public class LinePaySubmitRequest { LinePayDO linePayDO = new LinePayDO(); linePayDO.setId(request.getId()); linePayDO.setPartnerId(request.getPartnerId()); + linePayDO.setShopId(request.getShopId()); linePayDO.setLineId(request.getLineId()); linePayDO.setPayStatus(PAY_DEPOSIT_50.getCode()); + linePayDO.setXgjClaimStatus(ClaimStatusEnum.TO_BE_CLAIMED.getCode()); linePayDO.setPayType(request.getPayType()); linePayDO.setPayUserName(request.getPayUserName()); linePayDO.setPayAccount(request.getPayAccount()); @@ -101,6 +104,7 @@ public class LinePaySubmitRequest { } linePayDO.setPayPic(request.getPayPic()); linePayDO.setPaySerialNumber(request.getPaySerialNumber()); + linePayDO.setAmount(request.getAmount()); linePayDO.setPayBusinessType(request.getPayBusinessType()); linePayDO.setRemark(request.getRemark()); return linePayDO; From 735e595631e8cf9c3f647ed21c1366b4e906f0aa Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 10:24:41 +0800 Subject: [PATCH 05/35] fix --- .../com/cool/store/service/LinePayService.java | 2 ++ .../store/service/impl/LinePayServiceImpl.java | 14 ++++++++++++++ .../store/controller/webb/PCLinePayController.java | 5 +++++ .../store/controller/webc/LinePayController.java | 5 +++++ 4 files changed, 26 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java index bb30dfa19..1f47f7a90 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java @@ -37,4 +37,6 @@ public interface LinePayService { List getFranchiseFeePayInfoList(Long shopId); Boolean deleteFranchiseFeePayInfo(Long id,String userId); + + FranchiseFeePayInfoResponse getById(Long id); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 41332f829..d35f568a8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -258,6 +258,20 @@ public class LinePayServiceImpl implements LinePayService { return Boolean.TRUE; } + @Override + public FranchiseFeePayInfoResponse getById(Long id) { + if (id == null){ + return null; + } + LinePayDO linePay = linePayDAO.getById(id); + if (linePay == null){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); + BeanUtil.copyProperties(linePay, response); + return response; + } + private Boolean checkSubmitFranchiseFeePayRequest(LinePaySubmitRequest request) { if (StringUtils.isAnyBlank(request.getPayUserName(), request.getPayAccount(), request.getBankName(), request.getBranchBankName(), request.getPayTime(), request.getPayPic())) { diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java index dd9fff3af..b15029133 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCLinePayController.java @@ -63,5 +63,10 @@ public class PCLinePayController { public ResponseResult deleteFranchiseFeePayInfo(@RequestParam("id") Long id) { return ResponseResult.success(linePayService.deleteFranchiseFeePayInfo(id, CurrentUserHolder.getUserId())); } + @ApiOperation("查询缴费信息") + @GetMapping("/getById") + public ResponseResult getById(@RequestParam("id") Long id) { + return ResponseResult.success(linePayService.getById(id)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java index 23682ef29..3c8b06243 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/LinePayController.java @@ -74,4 +74,9 @@ public class LinePayController { return ResponseResult.success(linePayService.deleteFranchiseFeePayInfo(id, PartnerUserHolder.getUser().getPartnerId())); } + @ApiOperation("查询缴费信息") + @GetMapping("/getById") + public ResponseResult getById(@RequestParam("id") Long id) { + return ResponseResult.success(linePayService.getById(id)); + } } From eaf416ad5eea6818a6670c5fa21479b0f6386411 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 11:30:15 +0800 Subject: [PATCH 06/35] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=A7=BB=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/service/OpenApiService.java | 6 ------ .../service/impl/OpenApiServiceImpl.java | 21 ------------------- .../controller/webb/PCShopController.java | 11 ---------- 3 files changed, 38 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java index 5320a7e8a..839ebc632 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java @@ -18,11 +18,5 @@ public interface OpenApiService { */ Boolean statusRefresh(StatusRefreshDTO statusRefreshDTO); - /** - * @Auther: wangshuo - * @Date: 2025/5/23 - * @description:不是对外回调接口,针对于已经在oa走完数据的,我们手动调用接口批量修改数据!!!只做云流水别的别用!!! - */ - Boolean batchStatusRefreshYls(BatchStatusRefreshDTO batchStatusRefreshDTO); } 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 cc1884954..2c42f8107 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 @@ -87,25 +87,4 @@ public class OpenApiServiceImpl implements OpenApiService { return Boolean.TRUE; } - @Override - @Transactional(rollbackFor = Exception.class) - public Boolean batchStatusRefreshYls(BatchStatusRefreshDTO batchStatusRefreshDTO) { - if (CollectionUtils.isEmpty(batchStatusRefreshDTO.getShopCode())){ - log.info("数据处理 门店编码为空"); - return null; - } - for (String shopCode : batchStatusRefreshDTO.getShopCode()){ - StatusRefreshDTO statusRefreshDTO = new StatusRefreshDTO(); - statusRefreshDTO.setShopCode(shopCode); - statusRefreshDTO.setSystemSource(batchStatusRefreshDTO.getSystemSource()); - statusRefreshDTO.setOpenStatus(batchStatusRefreshDTO.getOpenStatus()); - this.statusRefresh(statusRefreshDTO); - } - List shopCodeList = new ArrayList<>(); - for (String shopCode : batchStatusRefreshDTO.getShopCode()){ - shopCodeList.add(StringUtils.substringAfter(shopCode, "_")); - } - posAndOrderInfoDAO.batchUpdateYlsRemarkByShopCode(shopCodeList,batchStatusRefreshDTO.getRemark()); - return true; - } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java index 901d5592b..5c0a07842 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java @@ -159,17 +159,6 @@ public class PCShopController { } - /** - * @Auther: wangshuo - * @Date: 2025/5/23 - * @description:不是对外回调接口,针对于已经在oa走完数据的,我们手动调用接口批量修改数据!!!只做云流水别的别用!!! - */ - @ApiOperation("批量修改门店云流水开通状态") - @PostMapping("/batchStatusRefreshYls") - public ApiResponse batchStatusRefreshYls(@RequestBody @Validated BatchStatusRefreshDTO batchStatusRefreshDTO) { - return ApiResponse.success(openApiService.batchStatusRefreshYls(batchStatusRefreshDTO)); - } - @ApiOperation("获取店铺所属品牌") @GetMapping("/getFranchiseBrandName") From a101a89c21647d445ad251728b0952337d017556 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 11:30:46 +0800 Subject: [PATCH 07/35] =?UTF-8?q?=E6=96=B0=E7=AE=A1=E5=AE=B6=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/enums/XGJCollectionStatusEnum.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/XGJCollectionStatusEnum.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/XGJCollectionStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/XGJCollectionStatusEnum.java new file mode 100644 index 000000000..3c4dfdfbe --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/XGJCollectionStatusEnum.java @@ -0,0 +1,25 @@ +package com.cool.store.enums; + +/** + * @Author: WangShuo + * @Date: 2025/06/04/11:16 + * @Version 1.0 + * @注释: + */ +public enum XGJCollectionStatusEnum { + WAIT_PAY(0, "待缴费"), + PARTIAL_PAYMENT(1, "部分缴款"), + COMPLETED(2, "已完成"); + private Integer code; + private String message; + XGJCollectionStatusEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + public Integer getCode() { + return code; + } + public String getMessage() { + return message; + } +} From 747858b9cfc199a9cecc9c84b971e102868dfa50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 4 Jun 2025 14:29:20 +0800 Subject: [PATCH 08/35] =?UTF-8?q?feat:=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../java/com/cool/store/dao/LinePayDAO.java | 4 + .../com/cool/store/mapper/LinePayMapper.java | 2 + .../main/resources/mapper/LinePayMapper.xml | 7 +- .../store/request/LinePaySubmitRequest.java | 1 + .../xgj/FranchiseFeeCallBackRequest.java | 26 +++++++ .../request/xgj/PushFranchiseFeeRequest.java | 65 ++++++++++++++++ .../request/xgj/ReceiptCallBackRequest.java | 24 ++++++ .../store/request/xgj/ReceiptRequest.java | 77 +++++++++++++++++++ .../store/response/bigdata/ApiResponse.java | 5 ++ .../store/service/FranchiseFeeService.java | 4 + .../cool/store/service/LinePayService.java | 15 ++++ .../cool/store/service/OpenApiService.java | 7 ++ .../com/cool/store/service/PushService.java | 16 ++++ .../service/impl/FranchiseFeeServiceImpl.java | 32 ++++++++ .../service/impl/LinePayServiceImpl.java | 38 ++++++++- .../service/impl/OpenApiServiceImpl.java | 19 +++++ .../store/service/impl/PushServiceImpl.java | 21 ++++- .../controller/webb/OpenApiController.java | 15 +++- .../resources/application-online.properties | 2 +- .../resources/application-test.properties | 2 +- 21 files changed, 375 insertions(+), 9 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.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 dab4b338c..448dbe154 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 @@ -270,6 +270,8 @@ public enum ErrorCodeEnum { CLAIM_STATUS_ERROR(1511023,"当前状态为已认领,不能进行操作",null), PAY_USER_NAME_ERROR(1511024,"付款人最多为2人",null), DELETE_ERROR(1511025,"删除信息失败",null), + RECEIPT_NOT_EXIST(1511026,"收款单不存在或已被删除",null), + XGJ_COLLECTION_STATUS_COMPLETE(1511027,"新管家收费状态已完成,请确认!",null), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java index 6473517bd..ae4d1d0cb 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java @@ -87,4 +87,8 @@ public class LinePayDAO { public Integer deleteById(Long id,String userId) { return linePayMapper.deleteById(id,userId); } + + public LinePayDO selectByPaymentReceiptCode(String paymentReceiptCode) { + return linePayMapper.selectByPaymentReceiptCode(paymentReceiptCode); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java index 7dc71e46f..e8bd3e675 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java @@ -60,4 +60,6 @@ public interface LinePayMapper { ListgetFranchiseFeePayInfoByShopId(@Param("shopId") Long shopId); Integer deleteById(@Param("id") Long id,@Param("userId")String userId); + + LinePayDO selectByPaymentReceiptCode(@Param("paymentReceiptCode") String paymentReceiptCode); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml index 069a515d9..5020ac2c0 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml @@ -393,4 +393,9 @@ update xfsg_line_pay set deleted = 1 ,update_time = now(),update_user_id = #{userId} where id = #{id} - \ No newline at end of file + + + + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java index 8a5b28833..5b7867f41 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java @@ -106,6 +106,7 @@ public class LinePaySubmitRequest { linePayDO.setPaySerialNumber(request.getPaySerialNumber()); linePayDO.setAmount(request.getAmount()); linePayDO.setPayBusinessType(request.getPayBusinessType()); + linePayDO.setXgjClaimStatus(0); linePayDO.setRemark(request.getRemark()); return linePayDO; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java new file mode 100644 index 000000000..d6cedea48 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java @@ -0,0 +1,26 @@ +package com.cool.store.request.xgj; + +import com.cool.store.dto.region.BigRegionDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @Author suzhuhong + * @Date 2025/6/4 11:02 + * @Version 1.0 + */ +@Data +public class FranchiseFeeCallBackRequest { + + @NotNull + private Long shopId; + @NotNull + private BigDecimal payableFee; + @NotNull + private BigDecimal remainingFee; + @NotNull + private Integer paymentStatus; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java new file mode 100644 index 000000000..4ddf3d244 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java @@ -0,0 +1,65 @@ +package com.cool.store.request.xgj; + +import com.cool.store.entity.FranchiseFeeDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/6/3 16:52 + * @Version 1.0 + */ +@Data +public class PushFranchiseFeeRequest { + + @ApiModelProperty( "CRM系统门店ID") + private Long shopId; + + @ApiModelProperty( "加盟商姓名") + private String partnerName; + + @ApiModelProperty( "账单ID") + private Integer billId; + + @ApiModelProperty( "加盟费") + private BigDecimal franchiseFee; + + @ApiModelProperty( "保证金") + private BigDecimal bond; + + @ApiModelProperty( "第一年度管理费") + private BigDecimal firstYearManageFee; + + @ApiModelProperty( "第一年度品牌使用费") + private BigDecimal firstYearFee; + + @ApiModelProperty( "设计费") + private BigDecimal designFee; + + @ApiModelProperty( "应缴费合计金额") + private BigDecimal totalFee; + + @ApiModelProperty( "创建时间") + private Date createTime; + + public PushFranchiseFeeRequest(){} + public PushFranchiseFeeRequest(Long shopId, String partnerName, FranchiseFeeDO franchiseFeeDO){ + this.setShopId(shopId); + this.setPartnerName(partnerName); + this.setBillId(franchiseFeeDO.getId().intValue()); + this.setFranchiseFee(new BigDecimal(franchiseFeeDO.getYearFranchiseFee())); + this.setBond(new BigDecimal(franchiseFeeDO.getLoanMargin())); + this.setFirstYearManageFee(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())); + this.setFirstYearFee(new BigDecimal(franchiseFeeDO.getFirstYearFee())); + this.setDesignFee(new BigDecimal(franchiseFeeDO.getPerformanceBond())); + this.setTotalFee(this.getBond() + .add(this.getFirstYearManageFee()) + .add(this.getFirstYearFee()) + .add(this.getDesignFee())); + this.setCreateTime(franchiseFeeDO.getCreateTime()); + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java new file mode 100644 index 000000000..ffa9291ed --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java @@ -0,0 +1,24 @@ +package com.cool.store.request.xgj; + +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Author suzhuhong + * @Date 2025/6/4 11:01 + * @Version 1.0 + */ +@Data +public class ReceiptCallBackRequest { + + @NotBlank + private String receiptId; + + @Max(1)@Min(0)@NotNull + private Integer claimStatus; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java new file mode 100644 index 000000000..69a1110b7 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java @@ -0,0 +1,77 @@ +package com.cool.store.request.xgj; + +import com.cool.store.entity.FranchiseFeeDO; +import com.cool.store.entity.LinePayDO; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.models.auth.In; +import lombok.Data; + +import javax.validation.constraints.DecimalMin; +import java.math.BigDecimal; + +/** + * @Author suzhuhong + * @Date 2025/6/4 9:33 + * @Version 1.0 + */ +@Data +public class ReceiptRequest { + + @ApiModelProperty( "CRM系统门店ID") + private Long shopId; + + @ApiModelProperty( "账单ID") + private Integer billId; + + @ApiModelProperty( "收款单ID") + private String receiptId; + + @ApiModelProperty( "付款人") + private String payer1; + + @ApiModelProperty("付款金额") + private BigDecimal paymentAmount; + + @ApiModelProperty("交易流水号") + private String transactionNumber; + + @ApiModelProperty( "开户行") + private String bankName; + + @ApiModelProperty( "开户支行") + private String branchBankName; + + @ApiModelProperty( "付款账号") + private String payAccount; + + @ApiModelProperty( "付款凭证") + private String payPic; + + @ApiModelProperty( "付款方式") + private Integer payWay = 0; + + @ApiModelProperty( "认领状态") + private Integer claimStatus = 0; + + @ApiModelProperty( "删除标识") + private Integer deleted = 0; + + public ReceiptRequest() { + } + + public ReceiptRequest(Long shopId, Integer billId, LinePayDO payDO){ + this.setShopId(shopId); + this.setBillId(billId); + this.setReceiptId(payDO.getPaymentReceiptCode()); + this.setPayer1(payDO.getPayUserName()); + this.setPayAccount(payDO.getPayAccount()); + this.setTransactionNumber(payDO.getPaySerialNumber()); + this.setBankName(payDO.getBankName()); + this.setBranchBankName(payDO.getBranchBankName()); + this.setPaymentAmount(payDO.getAmount()); + this.setPayPic(payDO.getPayPic()); + this.setClaimStatus(payDO.getXgjClaimStatus()); + this.setDeleted(payDO.getDeleted()?1:0); + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/bigdata/ApiResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/bigdata/ApiResponse.java index d55b0f33e..96e2f49ff 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/response/bigdata/ApiResponse.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/bigdata/ApiResponse.java @@ -1,6 +1,7 @@ package com.cool.store.response.bigdata; import com.cool.store.constants.CommonConstants; +import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ResponseCodeEnum; import lombok.Data; import org.slf4j.MDC; @@ -29,4 +30,8 @@ public class ApiResponse { public static ApiResponse success(T data) { return new ApiResponse(ResponseCodeEnum.SUCCESS.getCode(), "ok", data); } + + public static ApiResponse error(ErrorCodeEnum errorCodeEnum) { + return new ApiResponse(errorCodeEnum.getCode(), errorCodeEnum.getMessage(), null); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java index 24e0501a3..0dffe970c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java @@ -3,7 +3,9 @@ package com.cool.store.service; import com.cool.store.context.LoginUserInfo; import com.cool.store.request.AuditFranchiseFeeRequest; import com.cool.store.request.FranchiseFeeRequest; +import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; import com.cool.store.response.FranchiseFeeResponse; +import com.cool.store.response.bigdata.ApiResponse; public interface FranchiseFeeService { /** @@ -22,4 +24,6 @@ public interface FranchiseFeeService { FranchiseFeeResponse getDetail(Long shopId); Boolean auditFranchiseFee(AuditFranchiseFeeRequest request, LoginUserInfo user); + + ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java index 1f47f7a90..98d1c581d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LinePayService.java @@ -3,8 +3,11 @@ package com.cool.store.service; import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.LoginUserInfo; import com.cool.store.dto.AmountDTO; +import com.cool.store.entity.LinePayDO; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.request.xgj.ReceiptCallBackRequest; import com.cool.store.response.FranchiseFeePayInfoResponse; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.vo.LinePayVO; import com.cool.store.vo.PartnerUserInfoVO; @@ -39,4 +42,16 @@ public interface LinePayService { Boolean deleteFranchiseFeePayInfo(Long id,String userId); FranchiseFeePayInfoResponse getById(Long id); + + /** + * 推送数据到新管家 + * @param shopId + * @param linePayDO + * @return + */ + Boolean pushPayInfo(Long shopId, LinePayDO linePayDO); + + ApiResponse ReceiptCallBack(ReceiptCallBackRequest request); + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java index 839ebc632..c60ad7e3e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/OpenApiService.java @@ -2,6 +2,9 @@ package com.cool.store.service; import com.cool.store.dto.BatchStatusRefreshDTO; import com.cool.store.dto.StatusRefreshDTO; +import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; +import com.cool.store.request.xgj.ReceiptCallBackRequest; +import com.cool.store.response.bigdata.ApiResponse; /** * @Author suzhuhong @@ -19,4 +22,8 @@ public interface OpenApiService { Boolean statusRefresh(StatusRefreshDTO statusRefreshDTO); + ApiResponse changeReceiptStatus(ReceiptCallBackRequest request); + + ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java index ca9e285ea..31b80a6a7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java @@ -5,6 +5,8 @@ import com.cool.store.dto.ModifyPasswordDTO; import com.cool.store.dto.XgjOrganizationDTO; import com.cool.store.request.AuditRequest; import com.cool.store.request.ZxjpApiRequest; +import com.cool.store.request.xgj.PushFranchiseFeeRequest; +import com.cool.store.request.xgj.ReceiptRequest; import java.util.List; @@ -23,6 +25,20 @@ public interface PushService { */ Boolean pushDataToXGJ(ZxjpApiRequest zxjpApiRequest); + /** + * 推送加盟账单到新管家 + * @param request + * @return + */ + Boolean pushFranchiseFeeToXGJ(PushFranchiseFeeRequest request); + + /** + * 推送收款单到新管家 + * @param receiptRequest + * @return + */ + Boolean pushReceiptToXGJ(ReceiptRequest receiptRequest); + /** * 推送数据到下游系统 POS * @param zxjpApiRequest diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index fb4b92e16..36d96b1d1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -13,8 +13,12 @@ import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; import com.cool.store.request.AuditFranchiseFeeRequest; import com.cool.store.request.FranchiseFeeRequest; +import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; +import com.cool.store.request.xgj.PushFranchiseFeeRequest; import com.cool.store.response.FranchiseFeeResponse; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.FranchiseFeeService; +import com.cool.store.service.PushService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.poi.constant.Constants; import lombok.extern.slf4j.Slf4j; @@ -57,6 +61,8 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { CommonService commonService; @Resource UserAuthMappingService userAuthMappingService; + @Resource + PushService pushService; @Override @Transactional(rollbackFor = Exception.class) @@ -81,6 +87,9 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); commonService.sendSms(lineInfoDO.getMobile(), SMSMsgEnum.PAY_FRANCHISE_FEES); + //推送加盟费信息到新管家 + PushFranchiseFeeRequest feeRequest = new PushFranchiseFeeRequest(shopInfoDO.getId(), lineInfoDO.getUsername(), franchiseFeeDO); + pushService.pushFranchiseFeeToXGJ(feeRequest); return true; } @@ -91,6 +100,12 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { if (Objects.nonNull(franchiseFeeDO1)) { franchiseFeeDO.setId(franchiseFeeDO1.getId()); franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); + //推送数据 + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); + LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); + //推送加盟费信息到新管家 + PushFranchiseFeeRequest feeRequest = new PushFranchiseFeeRequest(shopInfoDO.getId(), lineInfoDO.getUsername(), franchiseFeeDO); + pushService.pushFranchiseFeeToXGJ(feeRequest); return true; } return false; @@ -175,4 +190,21 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { // commonService.sendMessage(Collections.singletonList(lineInfoDO.getInvestmentManager()), MessageEnum.MESSAGE_18, requestMap); return true; } + + @Override + public ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request) { + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); + if (Objects.isNull(shopInfoDO)){ + return ApiResponse.error(ErrorCodeEnum.SHOP_ID_NOT_EXIST); + } + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); + if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(franchiseFeeDO.getXgjCollectionStatus())){ + return ApiResponse.error(ErrorCodeEnum.XGJ_COLLECTION_STATUS_COMPLETE); + } + franchiseFeeDO.setXgjCollectionStatus(request.getPaymentStatus()); + franchiseFeeDO.setXgjRemainderPayableAmount(request.getRemainingFee()); + franchiseFeeDO.setXgjFeesPaid(request.getPayableFee()); + franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); + return ApiResponse.success(Boolean.TRUE); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index d35f568a8..893c3c085 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -22,8 +22,12 @@ import com.cool.store.mapper.FranchiseFeeMapper; import com.cool.store.mapper.LineInfoMapper; import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.request.LinePaySubmitRequest; +import com.cool.store.request.xgj.ReceiptCallBackRequest; +import com.cool.store.request.xgj.ReceiptRequest; import com.cool.store.response.FranchiseFeePayInfoResponse; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.LinePayService; +import com.cool.store.service.PushService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.RedisConstantUtil; @@ -34,6 +38,7 @@ import com.cool.store.utils.poi.StringUtils; import com.cool.store.utils.poi.constant.Constants; import com.cool.store.vo.LinePayVO; import com.cool.store.vo.PartnerUserInfoVO; +import jdk.nashorn.internal.codegen.types.BooleanType; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -84,6 +89,8 @@ public class LinePayServiceImpl implements LinePayService { private UserAuthMappingService userAuthMappingService; @Resource RedisConstantUtil redisConstantUtil; + @Resource + PushService pushService; @Override public LinePayVO getLinePayInfo(Long lineId, Integer businessType, Long shopId) { @@ -196,7 +203,8 @@ public class LinePayServiceImpl implements LinePayService { { shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); } - //todo 苏竹红推送数据 + //推送数据 + this.pushPayInfo(request.getShopId(),linePayDO); return linePayDO.getId(); } else { throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); @@ -254,10 +262,35 @@ public class LinePayServiceImpl implements LinePayService { throw new ServiceException(ErrorCodeEnum.CLAIM_STATUS_ERROR); } linePayDAO.deleteById(id,userId); - //todo 苏竹红推送数据 + //置为删除状态 + linePay.setDeleted(Boolean.TRUE); + //推送数据 + this.pushPayInfo(linePay.getShopId(),linePay); return Boolean.TRUE; } + @Override + public Boolean pushPayInfo(Long shopId, LinePayDO linePayDO) { + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(shopId); + ReceiptRequest receiptRequest = new ReceiptRequest(shopId, franchiseFeeDO.getId().intValue(), linePayDO); + //推送缴费单数据到新管家 + pushService.pushReceiptToXGJ(receiptRequest); + return Boolean.TRUE; + } + + @Override + public ApiResponse ReceiptCallBack(ReceiptCallBackRequest request) { + LinePayDO linePayDO = linePayDAO.selectByPaymentReceiptCode(request.getReceiptId()); + if (Objects.isNull(linePayDO)){ + return ApiResponse.error(ErrorCodeEnum.RECEIPT_NOT_EXIST); + } + linePayDO.setXgjClaimStatus(request.getClaimStatus()); + linePayDAO.updateLinePay(linePayDO); + return ApiResponse.success(Boolean.TRUE); + } + + + @Override public FranchiseFeePayInfoResponse getById(Long id) { if (id == null){ @@ -405,4 +438,5 @@ public class LinePayServiceImpl implements LinePayService { } + } 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 2c42f8107..d8e285b81 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 @@ -15,6 +15,11 @@ import com.cool.store.enums.ShopAccountEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.PostAndOrderRequest; +import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; +import com.cool.store.request.xgj.ReceiptCallBackRequest; +import com.cool.store.response.bigdata.ApiResponse; +import com.cool.store.service.FranchiseFeeService; +import com.cool.store.service.LinePayService; import com.cool.store.service.OpenApiService; import com.cool.store.service.PosAndOrderInfoService; import lombok.extern.slf4j.Slf4j; @@ -49,6 +54,10 @@ public class OpenApiServiceImpl implements OpenApiService { PosAndOrderInfoService posAndOrderInfoService; @Resource PosAndOrderInfoDAO posAndOrderInfoDAO; + @Resource + LinePayService linePayService; + @Resource + FranchiseFeeService franchiseFeeService; @Override @Transactional(rollbackFor = Exception.class) @@ -87,4 +96,14 @@ public class OpenApiServiceImpl implements OpenApiService { return Boolean.TRUE; } + + @Override + public ApiResponse changeReceiptStatus(ReceiptCallBackRequest request) { + return linePayService.ReceiptCallBack(request); + } + + @Override + public ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request) { + return franchiseFeeService.changePaymentStatus(request); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java index 5345de760..567b0ee7a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java @@ -7,6 +7,8 @@ import com.cool.store.dto.XgjOrganizationDTO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.ZxjpApiRequest; +import com.cool.store.request.xgj.PushFranchiseFeeRequest; +import com.cool.store.request.xgj.ReceiptRequest; import com.cool.store.response.XgjBaseResponse; import com.cool.store.response.XgjOrganizationResponse; import com.cool.store.response.huoma.ShopBaseInfoResponse; @@ -92,10 +94,22 @@ public class PushServiceImpl implements PushService { @Override public Boolean pushDataToXGJ(ZxjpApiRequest zxjpApiRequest) { - String apiUrl = xgjUrl + "/open/addStore"; + String apiUrl = xgjUrl + "/dmp/one-id/open/addStore"; return executeApiCall(apiUrl, zxjpApiRequest, Boolean.class, xgjUsername, xgjSecret); } + @Override + public Boolean pushFranchiseFeeToXGJ(PushFranchiseFeeRequest request) { + String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseeBill"; + return executeApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret); + } + + @Override + public Boolean pushReceiptToXGJ(ReceiptRequest request) { + String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseeReceipts"; + return executeApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret); + } + @Override public Boolean pushDataToPOS(ZxjpApiRequest zxjpApiRequest) { String apiUrl = url + "/dzgV1/zxcrm/shop/upsert"; @@ -103,7 +117,7 @@ public class PushServiceImpl implements PushService { } private Boolean modifyXGJPassword(ModifyPasswordDTO dto) { - String apiUrl = xgjUrl + "/open/updateStorePassword"; + String apiUrl = xgjUrl + "/dmp/one-id/open/updateStorePassword"; return executeApiCall(apiUrl, dto, Boolean.class, xgjUsername, xgjSecret); } @@ -113,6 +127,7 @@ public class PushServiceImpl implements PushService { } + @Override public Boolean modifyDownstreamSystem(ModifyPasswordDTO modifyPasswordDTO) { this.modifyPosPassword(modifyPasswordDTO); @@ -145,7 +160,7 @@ public class PushServiceImpl implements PushService { String key = active+"_XgjOrganization_" + eid; String resObject = redisUtilPool.getString(key); if (StringUtils.isBlank(resObject)) { - String apiUrl = xgjUrl + "/open/organization"; + String apiUrl = xgjUrl + "/dmp/one-id/open/organization"; resObject = JSONObject.toJSONString(executeApiGetCall(apiUrl, null, Object.class, xgjUsername, xgjSecret)); redisUtilPool.setNxExpire(key, resObject, 7200000); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java index 7ddc2acb6..8cbb4ab39 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/OpenApiController.java @@ -3,6 +3,8 @@ package com.cool.store.controller.webb; import com.alibaba.fastjson.JSONObject; import com.cool.store.dto.*; import com.cool.store.request.OpenApiStoreRequest; +import com.cool.store.request.xgj.FranchiseFeeCallBackRequest; +import com.cool.store.request.xgj.ReceiptCallBackRequest; import com.cool.store.response.ResponseResult; import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.OpenApiService; @@ -51,12 +53,23 @@ public class OpenApiController { return ApiResponse.success(pushService.getYlsToken(new GetAccessTokenDTO(ylsCode,ylsCode))); } - @ApiOperation("获取门店信息") @PostMapping("/getStoreList") public ApiResponse> getStoreList(@RequestBody @Validated OpenApiStoreRequest dto) { return ApiResponse.success(storeService.getStoreExtendFieldInfo(dto.getPageSize(),dto.getPageNum())); } + @ApiOperation("新管家回调 刷新收款单状态") + @PostMapping("/changeReceiptStatus") + public ApiResponse changeReceiptStatus(@RequestBody @Validated ReceiptCallBackRequest request){ + log.info("changeReceiptStatus request:{}", JSONObject.toJSONString(request)); + return openApiService.changeReceiptStatus(request); + } + @ApiOperation("新管家回调 账单收款状态及缴款金额") + @PostMapping("/changePaymentStatus") + public ApiResponse changePaymentStatus(@RequestBody @Validated FranchiseFeeCallBackRequest request){ + log.info("changePaymentStatus request:{}", JSONObject.toJSONString(request)); + return openApiService.changePaymentStatus(request); + } } diff --git a/coolstore-partner-web/src/main/resources/application-online.properties b/coolstore-partner-web/src/main/resources/application-online.properties index 3092275c6..d3ab0f329 100644 --- a/coolstore-partner-web/src/main/resources/application-online.properties +++ b/coolstore-partner-web/src/main/resources/application-online.properties @@ -94,7 +94,7 @@ api.auth.username=GkqgAhUJ7p9swJo api.auth.secret=NzVrnS3OWiupdDY #xingguanjia -xgj.api.auth.url=https://masterdata.zhengxinfood.com/dmp/one-id +xgj.api.auth.url=https://masterdata.zhengxinfood.com xgj.api.auth.username=6446346061e043e392dd53c9c8d1af0b xgj.api.auth.secret=3ba6e4c5632547b8b2b3acefe08667bb diff --git a/coolstore-partner-web/src/main/resources/application-test.properties b/coolstore-partner-web/src/main/resources/application-test.properties index ef4d1eb1e..80814286c 100644 --- a/coolstore-partner-web/src/main/resources/application-test.properties +++ b/coolstore-partner-web/src/main/resources/application-test.properties @@ -105,7 +105,7 @@ api.auth.username=VA59C0ubfcpcVpl api.auth.secret=H9YKHF6R7N16Fvy #新管家账号 -xgj.api.auth.url=http://117.139.13.24:11180/dmp/one-id +xgj.api.auth.url=http://117.139.13.24:11180 xgj.api.auth.username=6446346061e043e392dd53c9c8d1af0b xgj.api.auth.secret=3ba6e4c5632547b8b2b3acefe08667bb From e14806db306a602fd511b7c9255adecb9d69e2c1 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 14:30:04 +0800 Subject: [PATCH 09/35] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/dao/FranchiseFeeDAO.java | 7 ++ .../java/com/cool/store/dao/LinePayDAO.java | 10 +++ .../com/cool/store/dao/ShopStageInfoDAO.java | 6 ++ .../cool/store/mapper/FranchiseFeeMapper.java | 2 + .../com/cool/store/mapper/LinePayMapper.java | 4 ++ .../resources/mapper/FranchiseFeeMapper.xml | 8 +++ .../main/resources/mapper/LinePayMapper.xml | 4 ++ .../com/cool/store/entity/FranchiseFeeDO.java | 2 +- .../cool/store/service/DataHandlerServer.java | 13 ++++ .../service/impl/DataHandlerServerImpl.java | 64 +++++++++++++++++++ .../service/impl/FranchiseFeeServiceImpl.java | 1 + .../webb/DataHandlerController.java | 14 ++++ 12 files changed, 134 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java index d51f69752..3311e593c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java @@ -26,4 +26,11 @@ public class FranchiseFeeDAO { } return franchiseFeeMapper.updateBill(list); } + + public Integer batchUpdateXgjCollectionStatus(List shopIds,Integer collectionStatus){ + if (CollectionUtils.isEmpty(shopIds)|| collectionStatus==null){ + return 0; + } + return franchiseFeeMapper.batchUpdateXgjCollectionStatus(shopIds,collectionStatus); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java index 6473517bd..55fc34633 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java @@ -87,4 +87,14 @@ public class LinePayDAO { public Integer deleteById(Long id,String userId) { return linePayMapper.deleteById(id,userId); } + //数据处理专用0604,查询加盟费阶段缴费信息 + public List getDateHandler() { + return linePayMapper.getDateHandler(); + } + //数据处理专用0604,处理paytime paypic + public Integer dataUpdateLinePay(List linePayDOList) { + if (CollectionUtils.isEmpty(linePayDOList)){ + return null; + } + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java index 4369f2114..7325aa0ce 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java @@ -466,4 +466,10 @@ public class ShopStageInfoDAO { example.createCriteria().andIn("shopId",shopIds).andEqualTo("shopStage",shopStage); return shopStageInfoMapper.selectByExample(example); } + //查询处于xx状态的数据 + public List getShopStageInfoByShopSubStageStatus(Integer shopSubStageStatus) { + Example example = new Example(ShopStageInfoDO.class); + example.createCriteria().andEqualTo("shopSubStageStatus", shopSubStageStatus); + return shopStageInfoMapper.selectByExample(example); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java index 7c77990e3..c92d34a7b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java @@ -24,4 +24,6 @@ public interface FranchiseFeeMapper extends Mapper { * @description: 数据处理修改账单 */ Integer updateBill(@Param("list") List list); + + Integer batchUpdateXgjCollectionStatus(@Param("shopIds")List shopId, @Param("collectionStatus")Integer collectionStatus); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java index 7dc71e46f..33465619b 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java @@ -60,4 +60,8 @@ public interface LinePayMapper { ListgetFranchiseFeePayInfoByShopId(@Param("shopId") Long shopId); Integer deleteById(@Param("id") Long id,@Param("userId")String userId); + //数据处理专用0604,查询加盟费阶段缴费信息 + List getDateHandler(); + + Integer dataUpdateLinePay(@Param("list") List linePayDOList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml index dea3af847..dbff8f1ea 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml @@ -32,6 +32,14 @@ where shop_id = #{item.shopId} + + update xfsg_franchise_fee + set xgj_collection_status = #{collectionStatus} + where shop_id in + + #{shopId} + + select * from xfsg_line_pay where deleted = 0 and shop_id = #{shopId} and pay_business_type = 1 order by create_time desc + update xfsg_line_pay set deleted = 1 ,update_time = now(),update_user_id = #{userId} where id = #{id} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java index b0544c236..e1bb2f98c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java @@ -61,7 +61,7 @@ public class FranchiseFeeDO { private String discountReason; @Column(name = "xgj_collection_status") - @ApiModelProperty("新管家收款状态 1-部分缴款 2-已完成") + @ApiModelProperty("新管家收款状态 0-待缴费 1-部分缴款 2-已完成") private Integer xgjCollectionStatus; @Column(name = "xgj_remainder_payable_amount") diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java index f12717c35..23d8a1c22 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DataHandlerServer.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.context.LoginUserInfo; +import com.cool.store.dto.BatchStatusRefreshDTO; import com.cool.store.entity.ImportTaskDO; import java.util.List; @@ -36,4 +37,16 @@ public interface DataHandlerServer { //处理测量 设计 施工 验收 完成 Boolean dataHandlerV2025029(List> dataMapList, String originalFilename, LoginUserInfo user, ImportTaskDO task); + //处理加盟费阶段 + Boolean franchiseFeeStageDateHandler(); + + //处理加盟费缴费信息历史数据 + Boolean franchiseFeeDateHandler(Integer pageSize, Integer pageNum); + /** + * @Auther: wangshuo + * @Date: 2025/5/23 + * @description:不是对外回调接口,针对于已经在oa走完数据的,我们手动调用接口批量修改数据!!!只做云流水别的别用!!! + */ + Boolean batchStatusRefreshYls(BatchStatusRefreshDTO batchStatusRefreshDTO); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 8bfec0198..2aec9d12d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -1,5 +1,6 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.context.LoginUserInfo; @@ -14,13 +15,16 @@ import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; import com.cool.store.service.DataHandlerServer; import com.cool.store.service.FranchiseFeeService; +import com.cool.store.service.OpenApiService; import com.cool.store.service.PreparationService; import com.cool.store.utils.StringUtil; import com.cool.store.utils.easyExcel.EasyExcelUtil; import com.cool.store.utils.poi.DateUtils; +import com.github.pagehelper.PageHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -43,6 +47,10 @@ import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD; @Service @Slf4j public class DataHandlerServerImpl implements DataHandlerServer { + @Resource + private OpenApiService openApiService; + @Resource + private LinePayDAO linePayDAO; @Resource private AcceptanceInfoDAO acceptanceInfoDAO; @Resource @@ -1043,6 +1051,62 @@ public class DataHandlerServerImpl implements DataHandlerServer { return null; } + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean franchiseFeeStageDateHandler() { + //处理加盟费阶段待审核(对账中) + List waitAuditStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()); + log.info("waitAuditStageList:{}", JSONObject.toJSONString(waitAuditStageList)); + List waitAuditShopIdList = waitAuditStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + shopStageInfoDAO.dataUpdateStatus(waitAuditShopIdList,ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitAuditShopIdList,XGJCollectionStatusEnum.COMPLETED.getCode()); + //已缴费 修改新管家回调状态 + List isPaidStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus()); + List isPaidShopId = isPaidStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(isPaidShopId,XGJCollectionStatusEnum.COMPLETED.getCode()); + //待加盟商缴费阶段 + List waitPayStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus()); + List waitPayShopIds = waitPayStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitPayShopIds,XGJCollectionStatusEnum.WAIT_PAY.getCode()); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean franchiseFeeDateHandler(Integer pageSize, Integer pageNum) { + + PageHelper.startPage(pageNum, pageSize); + List dateHandler = linePayDAO.getDateHandler(); + for (LinePayDO linePayDO : dateHandler){ + JSONArray jsonArray = JSONObject.parseArray(linePayDO.getCombinedField()); + JSONObject jsonObject = jsonArray.getJSONObject(0); + linePayDO.setPayTime(jsonObject.getDate("payTime")); + linePayDO.setPayPic(jsonObject.getString("payPic")); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean batchStatusRefreshYls(BatchStatusRefreshDTO batchStatusRefreshDTO) { + if (CollectionUtils.isEmpty(batchStatusRefreshDTO.getShopCode())){ + log.info("数据处理 门店编码为空"); + return null; + } + for (String shopCode : batchStatusRefreshDTO.getShopCode()){ + StatusRefreshDTO statusRefreshDTO = new StatusRefreshDTO(); + statusRefreshDTO.setShopCode(shopCode); + statusRefreshDTO.setSystemSource(batchStatusRefreshDTO.getSystemSource()); + statusRefreshDTO.setOpenStatus(batchStatusRefreshDTO.getOpenStatus()); + openApiService.statusRefresh(statusRefreshDTO); + } + List shopCodeList = new ArrayList<>(); + for (String shopCode : batchStatusRefreshDTO.getShopCode()){ + shopCodeList.add(StringUtils.substringAfter(shopCode, "_")); + } + posAndOrderInfoDAO.batchUpdateYlsRemarkByShopCode(shopCodeList,batchStatusRefreshDTO.getRemark()); + return true; + } + private static @NotNull ShopStageInfoDO getShopStageInfoDO(ShopSubStageEnum shopSubStageEnum, ShopStageInfoDO shopStageInfoDO, ShopSubStageStatusEnum shopSubStageStatus) { ShopStageEnum shopStageEnum = shopSubStageEnum.getShopStageEnum(); ShopStageInfoDO shopStageInfo = new ShopStageInfoDO(); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index fb4b92e16..4fb75af48 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -76,6 +76,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { if (Objects.nonNull(isExist)){ throw new ServiceException(ErrorCodeEnum.UNISSUED_STATEMENT_2); } + franchiseFeeDO.setXgjCollectionStatus(XGJCollectionStatusEnum.WAIT_PAY.getCode()); franchiseFeeMapper.insertSelective(franchiseFeeDO); } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java index 7401de132..3cdf5eab2 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java @@ -3,16 +3,19 @@ package com.cool.store.controller.webb; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.dto.BatchStatusRefreshDTO; import com.cool.store.entity.ImportTaskDO; import com.cool.store.enums.FileTypeEnum; import com.cool.store.enums.ImportTaskStatusEnum; import com.cool.store.mapper.ImportTaskMapper; import com.cool.store.response.ResponseResult; +import com.cool.store.response.bigdata.ApiResponse; import com.cool.store.service.DataHandlerServer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -152,4 +155,15 @@ public class DataHandlerController { dataHandlerServer.dataHandlerV2025029(dataMapList, file.getOriginalFilename(), CurrentUserHolder.getUser(), importTaskDO); return ResponseResult.success(true); } + + /** + * @Auther: wangshuo + * @Date: 2025/5/23 + * @description:不是对外回调接口,针对于已经在oa走完数据的,我们手动调用接口批量修改数据!!!只做云流水别的别用!!! + */ + @ApiOperation("批量修改门店云流水开通状态") + @PostMapping("/batchStatusRefreshYls") + public ApiResponse batchStatusRefreshYls(@RequestBody @Validated BatchStatusRefreshDTO batchStatusRefreshDTO) { + return ApiResponse.success(dataHandlerServer.batchStatusRefreshYls(batchStatusRefreshDTO)); + } } From 61ebca6b9239c84b6fcf27d602ed3fdfb0ae1b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 4 Jun 2025 15:14:21 +0800 Subject: [PATCH 10/35] =?UTF-8?q?feat:=E9=98=B6=E6=AE=B5=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FranchiseFeeServiceImpl.java | 4 +++ .../service/impl/LinePayServiceImpl.java | 1 + .../controller/webb/PCTestController.java | 35 +++++++++++++++++-- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 3e9aeaa61..548ebc484 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -193,6 +193,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { } @Override + @Transactional(rollbackFor = Exception.class) public ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request) { ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); if (Objects.isNull(shopInfoDO)){ @@ -206,6 +207,9 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { franchiseFeeDO.setXgjRemainderPayableAmount(request.getRemainingFee()); franchiseFeeDO.setXgjFeesPaid(request.getPayableFee()); franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); + if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(request.getPaymentStatus())){ + shopStageInfoDAO.updateShopStageInfo(request.getShopId(),ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73); + } return ApiResponse.success(Boolean.TRUE); } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 893c3c085..98cf711d8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -279,6 +279,7 @@ public class LinePayServiceImpl implements LinePayService { } @Override + @Transactional(rollbackFor = Exception.class) public ApiResponse ReceiptCallBack(ReceiptCallBackRequest request) { LinePayDO linePayDO = linePayDAO.selectByPaymentReceiptCode(request.getReceiptId()); if (Objects.isNull(linePayDO)){ 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 d800373e5..d10dbba64 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 @@ -10,11 +10,15 @@ import com.cool.store.enums.DownSystemTypeEnum; import com.cool.store.enums.MessageEnum; import com.cool.store.enums.SMSMsgEnum; import com.cool.store.job.XxlJobHandler; +import com.cool.store.mapper.FranchiseFeeMapper; +import com.cool.store.mapper.LineInfoMapper; +import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.mq.util.HttpRestTemplateService; import com.cool.store.request.GetPasswordDTO; import com.cool.store.request.bigdata.ProfitDataRequest; import com.cool.store.request.huoma.ShopBasicInfoRequest; import com.cool.store.request.oppty.*; +import com.cool.store.request.xgj.PushFranchiseFeeRequest; import com.cool.store.response.ResponseResult; import com.cool.store.response.bigdata.ActDataResponse; import com.cool.store.response.bigdata.ProfitDataResponse; @@ -64,6 +68,15 @@ public class PCTestController { private SyncDataService syncDataService; @Resource private HttpRestTemplateService httpRestTemplateService; + @Resource + FranchiseFeeMapper franchiseFeeMapper; + + @Resource + ShopInfoMapper shopInfoMapper; + @Resource + LinePayService linePayService; + @Resource + LinePayDAO linePayDAO; @GetMapping("/sendMessage") public ResponseResult sendMessage(@RequestParam("lineId")Long lineId, @@ -309,8 +322,7 @@ public class PCTestController { return ResponseResult.success(thirdFoodService.getFoodToken(dto)); } - @Resource - LinePayService linePayService; + @GetMapping("/getToday") @ApiOperation("getToday") public ResponseResult getToday() { @@ -320,5 +332,24 @@ public class PCTestController { return ResponseResult.success(Boolean.TRUE); } + @GetMapping("/pushFranchiseFee") + @ApiOperation("推送账单") + public ResponseResult pushFranchiseFee(@RequestParam(value = "shopId", required = true) Long shopId) { + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(shopId); + ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); + LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfoDO.getLineId()); + PushFranchiseFeeRequest feeRequest = new PushFranchiseFeeRequest(shopInfoDO.getId(), lineInfoDO.getUsername(), franchiseFeeDO); + pushService.pushFranchiseFeeToXGJ(feeRequest); + return ResponseResult.success(Boolean.TRUE); + } + + @GetMapping("/pushPay") + @ApiOperation("推送收款单") + public ResponseResult pushPay(@RequestParam(value = "shopId", required = true) Long shopId, + @RequestParam(value = "payId", required = true) Long payId) { + LinePayDO pay = linePayDAO.getById(payId); + linePayService.pushPayInfo(shopId,pay); + return ResponseResult.success(Boolean.TRUE); + } } From 86611d2178b8806caa4a320d5e2101609c3a8b15 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 16:58:16 +0800 Subject: [PATCH 11/35] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/dao/LinePayDAO.java | 8 ++- .../com/cool/store/mapper/LinePayMapper.java | 2 + .../main/resources/mapper/LinePayMapper.xml | 68 ++++++++++++++----- .../service/impl/DataHandlerServerImpl.java | 66 +++++++++++------- .../store/service/impl/DeskServiceImpl.java | 5 +- .../webb/DataHandlerController.java | 11 +++ 6 files changed, 113 insertions(+), 47 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java index 1c65b58fa..a85471f59 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java @@ -96,10 +96,16 @@ public class LinePayDAO { if (CollectionUtils.isEmpty(linePayDOList)){ return null; } - return 0; + return linePayMapper.dataUpdateLinePay(linePayDOList); } public LinePayDO selectByPaymentReceiptCode(String paymentReceiptCode) { return linePayMapper.selectByPaymentReceiptCode(paymentReceiptCode); } + public Integer updateXgjClaimStatus(List shopIds,Integer xgjClaimStatus,Integer payBusinessType){ + if (CollectionUtils.isEmpty(shopIds)){ + return null; + } + return linePayMapper.updateXgjClaimStatus(shopIds,xgjClaimStatus,payBusinessType); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java index fa8067a9f..75c99d824 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java @@ -66,4 +66,6 @@ public interface LinePayMapper { List getDateHandler(); Integer dataUpdateLinePay(@Param("list") List linePayDOList); + + Integer updateXgjClaimStatus(@Param("list") List shopIds,@Param("xgjClaimStatus") Integer xgjClaimStatus,@Param("payBusinessType") Integer payBusinessType); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml index b8684f839..0362abba3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml @@ -32,8 +32,9 @@ id,shop_id, partner_id, line_id, pay_status, pay_type, pay_user_name, pay_account, bank_code, - bank_name, branch_bank_code, branch_bank_name, pay_time, pay_pic, promise_pic, create_time, - update_time, create_user_id, update_user_id, deleted,pay_business_type,amount,combined_field,xgj_claim_status,payment_receipt_code,pay_serial_number, + bank_name, branch_bank_code, branch_bank_name, pay_time, pay_pic, promise_pic, create_time, + update_time, create_user_id, update_user_id, + deleted,pay_business_type,amount,combined_field,xgj_claim_status,payment_receipt_code,pay_serial_number, remark update xfsg_line_pay set deleted = 1 ,update_time = now(),update_user_id = #{userId} where id = #{id} - + + + update xfsg_line_pay + + + pay_time = #{item.payTime}, + + + pay_pic = #{item.payPic}, + + + payment_receipt_code = #{item.paymentReceiptCode}, + + + xgj_claim_status = #{item.xgjClaimStatus} + + + + where id = #{item.id} + + + + update xfsg_line_pay + set + xgj_claim_status = #{xgjClaimStatus}, + update_time = now() + where shop_id in ( + + #{shopId} + + ) and pay_business_type = #{payBusinessType} + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 2aec9d12d..550c2b4e6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -8,15 +8,13 @@ import com.cool.store.dao.*; import com.cool.store.dto.*; import com.cool.store.entity.*; import com.cool.store.enums.*; +import com.cool.store.enums.point.PayBusinessTypeEnum; import com.cool.store.enums.point.ShopStageEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; -import com.cool.store.service.DataHandlerServer; -import com.cool.store.service.FranchiseFeeService; -import com.cool.store.service.OpenApiService; -import com.cool.store.service.PreparationService; +import com.cool.store.service.*; import com.cool.store.utils.StringUtil; import com.cool.store.utils.easyExcel.EasyExcelUtil; import com.cool.store.utils.poi.DateUtils; @@ -48,9 +46,11 @@ import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD; @Slf4j public class DataHandlerServerImpl implements DataHandlerServer { @Resource - private OpenApiService openApiService; + private LinePayService linePayService; @Resource - private LinePayDAO linePayDAO; + private OpenApiService openApiService; + @Resource + private LinePayDAO linePayDAO; @Resource private AcceptanceInfoDAO acceptanceInfoDAO; @Resource @@ -932,7 +932,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { ShopSubStageEnum shopSubStageEnum = ShopSubStageEnum.SHOP_STAGE_25; List shopIds = shopAccountDAO.getShopId(); for (ShopStageInfoDO shopStageInfoDO : subStages) { - if (jdStageShopIds.contains(shopStageInfoDO.getShopId())){ + if (jdStageShopIds.contains(shopStageInfoDO.getShopId())) { continue; } LineInfoDO lineInfoDO = lineMap.get(shopStageInfoDO.getLineId()); @@ -988,12 +988,12 @@ public class DataHandlerServerImpl implements DataHandlerServer { if (CollectionUtils.isEmpty(shopInfoList)) { log.info("导入数据根据shopCode 未找到数据"); } - List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); + List shopIds = shopInfoList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); Map> shopMapByCode = shopInfoList.stream().collect(Collectors.groupingBy(ShopInfoDO::getShopCode)); //装修验收数据 List acceptanceInfoDOList = acceptanceInfoDAO.selectByShopIds(shopIds); Map acceptanceInfoMap = acceptanceInfoDOList.stream().collect(Collectors.toMap(AcceptanceInfoDO::getShopId, item -> item)); - //合同阶段 + //合同阶段 List signFranchiseStageList = shopStageInfoDAO.getSubStageList(shopIds, ShopSubStageEnum.SHOP_STAGE_8.getShopSubStage()); Map signFranchiseStageMap = signFranchiseStageList.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, Function.identity())); //装修阶段需要变更的shopId @@ -1003,23 +1003,23 @@ public class DataHandlerServerImpl implements DataHandlerServer { for (ImportOaOldShopDataDTO dto : list) { String shopCode = dto.getShopCode(); List shopInfoDOS = shopMapByCode.get(shopCode); - if (CollectionUtils.isEmpty(shopInfoDOS)){ + if (CollectionUtils.isEmpty(shopInfoDOS)) { errorList.add(new ImportOaOldShopDataErrorDTO(dto.getShopCode(), "门店编码未找到")); continue; } - if (shopInfoDOS.size() > 1){ + if (shopInfoDOS.size() > 1) { errorList.add(new ImportOaOldShopDataErrorDTO(dto.getShopCode(), "门店编码重复")); continue; } ShopInfoDO shopInfoDO = shopInfoDOS.get(0); Long shopId = shopInfoDO.getId(); ShopStageInfoDO signFranchiseStage = signFranchiseStageMap.get(shopId); - if (!signFranchiseStage.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus())){ + if (!signFranchiseStage.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_84.getShopSubStageStatus())) { errorList.add(new ImportOaOldShopDataErrorDTO(dto.getShopCode(), "合同阶段未完成")); continue; } AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoMap.get(shopId); - if (Objects.isNull(acceptanceInfoDO)){ + if (Objects.isNull(acceptanceInfoDO)) { initFitmentShopIdList.add(shopId); } fitmentFhopIdList.add(shopId); @@ -1029,7 +1029,7 @@ public class DataHandlerServerImpl implements DataHandlerServer { shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91); shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_112); shopStageInfoDAO.dataUpdateStatus(fitmentFhopIdList, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_123); - //装修表初始化 + //装修表初始化 acceptanceInfoDAO.initAcceptanceInfo(initFitmentShopIdList); if (!errorList.isEmpty()) { task.setStatus(ImportTaskStatusEnum.ERROR.getCode()); @@ -1056,43 +1056,57 @@ public class DataHandlerServerImpl implements DataHandlerServer { public Boolean franchiseFeeStageDateHandler() { //处理加盟费阶段待审核(对账中) List waitAuditStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()); - log.info("waitAuditStageList:{}", JSONObject.toJSONString(waitAuditStageList)); + log.info("waitAuditStageList:{}", JSONObject.toJSONString(waitAuditStageList)); List waitAuditShopIdList = waitAuditStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); - shopStageInfoDAO.dataUpdateStatus(waitAuditShopIdList,ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73); - franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitAuditShopIdList,XGJCollectionStatusEnum.COMPLETED.getCode()); +// shopStageInfoDAO.dataUpdateStatus(waitAuditShopIdList,ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitAuditShopIdList, XGJCollectionStatusEnum.WAIT_PAY.getCode()); + linePayDAO.updateXgjClaimStatus(waitAuditShopIdList, ClaimStatusEnum.TO_BE_CLAIMED.getCode(), PayBusinessTypeEnum.FRANCHISE_FEE.getCode()); //已缴费 修改新管家回调状态 List isPaidStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus()); List isPaidShopId = isPaidStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); - franchiseFeeDAO.batchUpdateXgjCollectionStatus(isPaidShopId,XGJCollectionStatusEnum.COMPLETED.getCode()); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(isPaidShopId, XGJCollectionStatusEnum.COMPLETED.getCode()); + linePayDAO.updateXgjClaimStatus(isPaidShopId, ClaimStatusEnum.Claimed.getCode(), PayBusinessTypeEnum.FRANCHISE_FEE.getCode()); //待加盟商缴费阶段 List waitPayStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus()); List waitPayShopIds = waitPayStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); - franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitPayShopIds,XGJCollectionStatusEnum.WAIT_PAY.getCode()); - return true; + franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitPayShopIds, XGJCollectionStatusEnum.WAIT_PAY.getCode()); + return true; } @Override @Transactional(rollbackFor = Exception.class) public Boolean franchiseFeeDateHandler(Integer pageSize, Integer pageNum) { - PageHelper.startPage(pageNum, pageSize); List dateHandler = linePayDAO.getDateHandler(); - for (LinePayDO linePayDO : dateHandler){ + List waitAuditStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()); + log.info("waitAuditStageList:{}", JSONObject.toJSONString(waitAuditStageList)); + List waitAuditShopIdList = waitAuditStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + for (LinePayDO linePayDO : dateHandler) { JSONArray jsonArray = JSONObject.parseArray(linePayDO.getCombinedField()); JSONObject jsonObject = jsonArray.getJSONObject(0); linePayDO.setPayTime(jsonObject.getDate("payTime")); linePayDO.setPayPic(jsonObject.getString("payPic")); + if (waitAuditShopIdList.contains(linePayDO.getShopId())) { + linePayDO.setXgjClaimStatus(ClaimStatusEnum.TO_BE_CLAIMED.getCode()); + if (StringUtils.isBlank(linePayDO.getPaymentReceiptCode())) { + linePayDO.setPaymentReceiptCode(linePayService.getPaymentReceiptCode()); + } + } else { + linePayDO.setXgjClaimStatus(ClaimStatusEnum.Claimed.getCode()); + } } + linePayDAO.dataUpdateLinePay(dateHandler); + return true; } @Override @Transactional(rollbackFor = Exception.class) public Boolean batchStatusRefreshYls(BatchStatusRefreshDTO batchStatusRefreshDTO) { - if (CollectionUtils.isEmpty(batchStatusRefreshDTO.getShopCode())){ + if (CollectionUtils.isEmpty(batchStatusRefreshDTO.getShopCode())) { log.info("数据处理 门店编码为空"); return null; } - for (String shopCode : batchStatusRefreshDTO.getShopCode()){ + for (String shopCode : batchStatusRefreshDTO.getShopCode()) { StatusRefreshDTO statusRefreshDTO = new StatusRefreshDTO(); statusRefreshDTO.setShopCode(shopCode); statusRefreshDTO.setSystemSource(batchStatusRefreshDTO.getSystemSource()); @@ -1100,10 +1114,10 @@ public class DataHandlerServerImpl implements DataHandlerServer { openApiService.statusRefresh(statusRefreshDTO); } List shopCodeList = new ArrayList<>(); - for (String shopCode : batchStatusRefreshDTO.getShopCode()){ + for (String shopCode : batchStatusRefreshDTO.getShopCode()) { shopCodeList.add(StringUtils.substringAfter(shopCode, "_")); } - posAndOrderInfoDAO.batchUpdateYlsRemarkByShopCode(shopCodeList,batchStatusRefreshDTO.getRemark()); + posAndOrderInfoDAO.batchUpdateYlsRemarkByShopCode(shopCodeList, batchStatusRefreshDTO.getRemark()); return true; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index 1041d59c3..459971cad 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -263,14 +263,11 @@ public class DeskServiceImpl implements DeskService { //督导代填 if (userRoleIds.contains(UserRoleEnum.QW_SUPERVISION.getCode()) || userRoleIds.contains(UserRoleEnum.SUPERVISION.getCode())) { pageInfo = commonPendingVOPageInfo(pageNum, pageSize, user, ShopSubStageEnum.SHOP_STAGE_7, - Arrays.asList(SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus(), SHOP_SUB_STAGE_STATUS_74.getShopSubStageStatus()), Boolean.FALSE,keyword); + Arrays.asList(SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus(), SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()), Boolean.FALSE,keyword); } else { if (userRoleIds.contains(UserRoleEnum.JOIN_OFFICE.getCode()) || userRoleIds.contains(UserRoleEnum.REGION_OFFICE.getCode())) { subStageStatusList.add(SHOP_SUB_STAGE_STATUS_70.getShopSubStageStatus()); } - if (userRoleIds.contains(UserRoleEnum.BRANCH_OFFICE.getCode()) || userRoleIds.contains(UserRoleEnum.REGION_OFFICE.getCode())) { - subStageStatusList.add(SHOP_SUB_STAGE_STATUS_72.getShopSubStageStatus()); - } if (!subStageStatusList.isEmpty()) { pageInfo = commonPendingVOPageInfo(pageNum, pageSize, user, ShopSubStageEnum.SHOP_STAGE_7, subStageStatusList, Boolean.TRUE,keyword); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java index 3cdf5eab2..f585dc74b 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DataHandlerController.java @@ -166,4 +166,15 @@ public class DataHandlerController { public ApiResponse batchStatusRefreshYls(@RequestBody @Validated BatchStatusRefreshDTO batchStatusRefreshDTO) { return ApiResponse.success(dataHandlerServer.batchStatusRefreshYls(batchStatusRefreshDTO)); } + + @ApiOperation("处理加盟费阶段") + @GetMapping("/franchiseFeeStageDateHandler") + public ResponseResult franchiseFeeStageDateHandler(){ + return ResponseResult.success(dataHandlerServer.franchiseFeeStageDateHandler()); + } + @ApiOperation("处理加盟费缴费信息历史数据") + @GetMapping("/franchiseFeeDateHandler") + public ResponseResult franchiseFeeDateHandler(@RequestParam("pageSize") Integer pageSize, @RequestParam("pageNum") Integer pageNum){ + return ResponseResult.success(dataHandlerServer.franchiseFeeDateHandler(pageSize,pageNum)); + } } From 2c50b237f88e5f40ceb44aef57b2117fcc3eaed5 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 17:18:31 +0800 Subject: [PATCH 12/35] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BA=97=E9=93=BA=E6=9F=90=E9=98=B6=E6=AE=B5?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/service/ShopService.java | 2 ++ .../cool/store/service/impl/ShopServiceImpl.java | 14 +++++++++++++- .../cool/store/controller/webb/DeskController.java | 3 ++- .../store/controller/webc/MiniShopController.java | 6 ++++++ 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java index 5319f5279..63632a7cb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ShopService.java @@ -132,4 +132,6 @@ public interface ShopService { * @return */ List getSubStageHandle(Long shopId,Integer subStage); + + ShopStageInfoVO getShopStageStatus(Long shopId, Integer subStage); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index fd0e2c6d2..63123867b 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -781,7 +781,7 @@ public class ShopServiceImpl implements ShopService { case SHOP_SUB_STAGE_STATUS_85: return getUsersByRolesAndRegion(Arrays.asList(REGION_OFFICE, JOIN_OFFICE), shopInfo.getRegionId()); - case SHOP_SUB_STAGE_STATUS_72: + // case SHOP_SUB_STAGE_STATUS_72: case SHOP_SUB_STAGE_STATUS_83: return getUsersByRolesAndRegion(Arrays.asList(REGION_OFFICE, BRANCH_OFFICE), shopInfo.getRegionId()); @@ -860,6 +860,18 @@ public class ShopServiceImpl implements ShopService { } } + @Override + public ShopStageInfoVO getShopStageStatus(Long shopId, Integer subStage) { + if(shopId == null|| subStage == null ){ + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + } + ShopStageInfoDO stage = shopStageInfoDAO.getByShopIdAndSubStage(shopId, subStage); + if (stage!=null){ + return new ShopStageInfoVO(stage.getShopStage(), stage.getShopSubStage(), stage.getShopSubStageStatus(),stage.getIsTerminated()); + } + return null; + } + /** * 获取招商经理信息 * @param diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java index 8e73c9f51..a4c34f587 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java @@ -76,7 +76,8 @@ public class DeskController { @ApiOperation("待处理-支付加盟费保证金") @GetMapping("/payFranchiseFeesPendingList") public ResponseResult> payFranchiseFeesPendingList(@RequestParam(value = "pageNumber", required = true, defaultValue = "1") Integer pageNumber, - @RequestParam(value = "pageSize", required = true, defaultValue = "10") Integer pageSize , @RequestParam(value = "keyword") String keyword) { + @RequestParam(value = "pageSize", required = true, defaultValue = "10") Integer pageSize , + @RequestParam(value = "keyword") String keyword) { LoginUserInfo userInfo = CurrentUserHolder.getUser(); return ResponseResult.success(deskService.payFranchiseFeesPendingList(pageNumber, pageSize, userInfo,keyword)); } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java index 389105b27..90c808b14 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniShopController.java @@ -138,4 +138,10 @@ public class MiniShopController { return ResponseResult.success(shopService.getFranchiseBrandName(shopId)); } + @ApiOperation("获取店铺某阶段状态") + @GetMapping("/getShopStageStatus") + public ResponseResult getShopStageStatus(@RequestParam("shopId")Long shopId, @RequestParam("subStage")Integer subStage) { + return ResponseResult.success(shopService.getShopStageStatus(shopId, subStage)); + } + } From 022b91b9fbb18603c613f9c4f747af1e3af20ed6 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 17:43:23 +0800 Subject: [PATCH 13/35] fix --- .../java/com/cool/store/service/impl/LinePayServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 98cf711d8..fd744040a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -197,7 +197,8 @@ public class LinePayServiceImpl implements LinePayService { linePayDAO.updateLinePay(linePayDO); } else { linePayDO.setPaymentReceiptCode(getPaymentReceiptCode()); - linePayDAO.addLinePay(linePayDO); + Long payId = linePayDAO.addLinePay(linePayDO); + linePayDO.setId(payId); } if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) { From bd47f46015bd63437d8301ff4c9eb8001005ac98 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 17:49:30 +0800 Subject: [PATCH 14/35] fix --- .../java/com/cool/store/service/impl/LinePayServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index fd744040a..2fcac4530 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -54,6 +54,8 @@ import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; +import static com.cool.store.utils.poi.DateUtils.SPECIAL_DATE_START; + /** * @Author wxp * @Date 2024/3/28 13:48 @@ -246,6 +248,7 @@ public class LinePayServiceImpl implements LinePayService { for (LinePayDO linePayDO : list){ FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); BeanUtil.copyProperties(linePayDO, response); + response.setPayTime(DateUtils.parseDateToStr(SPECIAL_DATE_START,linePayDO.getPayTime())); response.setPartnerName(username); result.add(response); } From 88865224cc6c54a91925c362c5b37f81cacce116 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 18:40:08 +0800 Subject: [PATCH 15/35] fix --- .../store/request/LinePaySubmitRequest.java | 1 + .../service/impl/LinePayServiceImpl.java | 50 ++++++++++--------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java index 5b7867f41..83bdbf047 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LinePaySubmitRequest.java @@ -108,6 +108,7 @@ public class LinePaySubmitRequest { linePayDO.setPayBusinessType(request.getPayBusinessType()); linePayDO.setXgjClaimStatus(0); linePayDO.setRemark(request.getRemark()); + linePayDO.setDeleted(false); return linePayDO; } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 2fcac4530..42842c377 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -159,13 +159,13 @@ public class LinePayServiceImpl implements LinePayService { if (!checkSubmitFranchiseFeePayRequest(request)) { throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); } - if (StringUtils.isBlank(userId)){ - throw new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID); + if (StringUtils.isBlank(userId)) { + throw new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID); } //判断付款人最多2人(可重复) List list = linePayDAO.getFranchiseFeePayInfoByShopId(request.getShopId()); Set payUserList = list.stream().map(LinePayDO::getPayUserName).collect(Collectors.toSet()); - if (!payUserList.contains(request.getPayUserName())&&payUserList.size()>=2){ + if (!payUserList.contains(request.getPayUserName()) && payUserList.size() >= 2) { throw new ServiceException(ErrorCodeEnum.PAY_USER_NAME_ERROR); } if (request.getId() != null) { @@ -196,18 +196,23 @@ public class LinePayServiceImpl implements LinePayService { linePayDO.setCreateUserId(userId); linePayDO.setCreateTime(new Date()); if (linePayDO.getId() != null) { - linePayDAO.updateLinePay(linePayDO); + LinePayDO linePayById = linePayDAO.getById(linePayDO.getId()); + if (linePayById == null) { + log.info("linePayById is null"); + throw new ServiceException(ErrorCodeEnum.UPDATE_ERROR); + } else { + linePayDAO.updateLinePay(linePayDO); + } } else { linePayDO.setPaymentReceiptCode(getPaymentReceiptCode()); Long payId = linePayDAO.addLinePay(linePayDO); linePayDO.setId(payId); } - if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) - { + if (shopSubStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus())) { shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); } //推送数据 - this.pushPayInfo(request.getShopId(),linePayDO); + this.pushPayInfo(request.getShopId(), linePayDO); return linePayDO.getId(); } else { throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); @@ -223,14 +228,14 @@ public class LinePayServiceImpl implements LinePayService { } @Override - public String getPaymentReceiptCode(){ + public String getPaymentReceiptCode() { //当前日期 String today = CoolDateUtils.getToday(); String redisKey = redisConstantUtil.getPaymentReceiptCode(today); Long sequence = redisUtilPool.incrby(redisKey, 1); //第一次设置过期时间 一天 - if (sequence==1){ - redisUtilPool.expire(redisKey,RedisConstant.ONE_DAY_SECONDS); + if (sequence == 1) { + redisUtilPool.expire(redisKey, RedisConstant.ONE_DAY_SECONDS); } return "12" + today + String.format("%04d", sequence); } @@ -239,16 +244,16 @@ public class LinePayServiceImpl implements LinePayService { public List getFranchiseFeePayInfoList(Long shopId) { List list = linePayDAO.getFranchiseFeePayInfoByShopId(shopId); List result = new ArrayList<>(); - if (CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { return result; } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(shopId); LineInfoDO lineInfoDO = lineInfoDAO.getLineInfo(shopInfoDO.getLineId()); String username = lineInfoDO.getUsername(); - for (LinePayDO linePayDO : list){ + for (LinePayDO linePayDO : list) { FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); BeanUtil.copyProperties(linePayDO, response); - response.setPayTime(DateUtils.parseDateToStr(SPECIAL_DATE_START,linePayDO.getPayTime())); + response.setPayTime(DateUtils.parseDateToStr(SPECIAL_DATE_START, linePayDO.getPayTime())); response.setPartnerName(username); result.add(response); } @@ -257,19 +262,19 @@ public class LinePayServiceImpl implements LinePayService { @Override @Transactional(rollbackFor = Exception.class) - public Boolean deleteFranchiseFeePayInfo(Long id,String userId) { + public Boolean deleteFranchiseFeePayInfo(Long id, String userId) { LinePayDO linePay = linePayDAO.getById(id); - if (linePay == null){ + if (linePay == null) { throw new ServiceException(ErrorCodeEnum.DELETE_ERROR); } if (linePay.getXgjClaimStatus().equals(ClaimStatusEnum.Claimed.getCode())) { throw new ServiceException(ErrorCodeEnum.CLAIM_STATUS_ERROR); } - linePayDAO.deleteById(id,userId); + linePayDAO.deleteById(id, userId); //置为删除状态 linePay.setDeleted(Boolean.TRUE); //推送数据 - this.pushPayInfo(linePay.getShopId(),linePay); + this.pushPayInfo(linePay.getShopId(), linePay); return Boolean.TRUE; } @@ -286,7 +291,7 @@ public class LinePayServiceImpl implements LinePayService { @Transactional(rollbackFor = Exception.class) public ApiResponse ReceiptCallBack(ReceiptCallBackRequest request) { LinePayDO linePayDO = linePayDAO.selectByPaymentReceiptCode(request.getReceiptId()); - if (Objects.isNull(linePayDO)){ + if (Objects.isNull(linePayDO)) { return ApiResponse.error(ErrorCodeEnum.RECEIPT_NOT_EXIST); } linePayDO.setXgjClaimStatus(request.getClaimStatus()); @@ -295,15 +300,14 @@ public class LinePayServiceImpl implements LinePayService { } - @Override public FranchiseFeePayInfoResponse getById(Long id) { - if (id == null){ + if (id == null) { return null; } LinePayDO linePay = linePayDAO.getById(id); - if (linePay == null){ - throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); + if (linePay == null) { + throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); } FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); BeanUtil.copyProperties(linePay, response); @@ -321,7 +325,7 @@ public class LinePayServiceImpl implements LinePayService { if (!request.getPayBusinessType().equals(PayBusinessTypeEnum.FRANCHISE_FEE.getCode())) { return Boolean.FALSE; } - return Boolean.TRUE; + return Boolean.TRUE; } @Override From 9712bf6fb3c691296b724e6637166afd0cd4cea3 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Wed, 4 Jun 2025 19:38:58 +0800 Subject: [PATCH 16/35] fix --- .../java/com/cool/store/service/impl/LinePayServiceImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 42842c377..95a2df1e1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -55,6 +55,7 @@ import java.util.*; import java.util.stream.Collectors; import static com.cool.store.utils.poi.DateUtils.SPECIAL_DATE_START; +import static com.cool.store.utils.poi.DateUtils.YYYY_MM_DD_HH_MM_SS; /** * @Author wxp @@ -253,7 +254,7 @@ public class LinePayServiceImpl implements LinePayService { for (LinePayDO linePayDO : list) { FranchiseFeePayInfoResponse response = new FranchiseFeePayInfoResponse(); BeanUtil.copyProperties(linePayDO, response); - response.setPayTime(DateUtils.parseDateToStr(SPECIAL_DATE_START, linePayDO.getPayTime())); + response.setPayTime(DateUtils.parseDateToStr(YYYY_MM_DD_HH_MM_SS, linePayDO.getPayTime())); response.setPartnerName(username); result.add(response); } From 050fe3f9d5d1dd754dd6c567bc070d322f0cb125 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 5 Jun 2025 09:35:08 +0800 Subject: [PATCH 17/35] =?UTF-8?q?=E8=B4=A6=E5=8D=95=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=8A=A0=E9=98=B6=E6=AE=B5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/service/impl/FranchiseFeeServiceImpl.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 548ebc484..f21cfcebb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -96,6 +96,10 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { @Override public Boolean update(FranchiseFeeRequest request) { + ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); + if (!shopStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){ + throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); + } FranchiseFeeDO franchiseFeeDO = request.toFranchiseFeeDO(); FranchiseFeeDO franchiseFeeDO1 = franchiseFeeMapper.selectByShopId(request.getShopId()); if (Objects.nonNull(franchiseFeeDO1)) { From 8dad6016ec918ffd517a53d173d1eb18412ac14a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 5 Jun 2025 11:30:28 +0800 Subject: [PATCH 18/35] =?UTF-8?q?feat:=E5=8A=A0=E7=9B=9F=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xgj/FranchiseFeeCallBackRequest.java | 2 + .../request/xgj/PushFranchiseFeeRequest.java | 1 + .../store/response/XgjAccessTokenDTO.java | 20 +++++++ .../com/cool/store/service/PushService.java | 7 +++ .../service/impl/FranchiseFeeServiceImpl.java | 2 +- .../store/service/impl/PushServiceImpl.java | 57 +++++++++++++++---- .../controller/webb/PCTestController.java | 6 ++ 7 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/response/XgjAccessTokenDTO.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java index d6cedea48..edff429c9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/FranchiseFeeCallBackRequest.java @@ -20,6 +20,8 @@ public class FranchiseFeeCallBackRequest { @NotNull private BigDecimal payableFee; @NotNull + private BigDecimal paidFees; + @NotNull private BigDecimal remainingFee; @NotNull private Integer paymentStatus; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java index 4ddf3d244..fb150b4e1 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/PushFranchiseFeeRequest.java @@ -56,6 +56,7 @@ public class PushFranchiseFeeRequest { this.setFirstYearFee(new BigDecimal(franchiseFeeDO.getFirstYearFee())); this.setDesignFee(new BigDecimal(franchiseFeeDO.getPerformanceBond())); this.setTotalFee(this.getBond() + .add(this.getFranchiseFee()) .add(this.getFirstYearManageFee()) .add(this.getFirstYearFee()) .add(this.getDesignFee())); diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/XgjAccessTokenDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/response/XgjAccessTokenDTO.java new file mode 100644 index 000000000..67d0421d7 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/response/XgjAccessTokenDTO.java @@ -0,0 +1,20 @@ +package com.cool.store.response; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2025/6/4 19:06 + * @Version 1.0 + */ +@Data +public class XgjAccessTokenDTO { + + private String access_token; + + private String scope; + + private String token_type; + + private Long expires_in; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java index 31b80a6a7..342ac8405 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PushService.java @@ -7,6 +7,7 @@ import com.cool.store.request.AuditRequest; import com.cool.store.request.ZxjpApiRequest; import com.cool.store.request.xgj.PushFranchiseFeeRequest; import com.cool.store.request.xgj.ReceiptRequest; +import com.cool.store.response.XgjAccessTokenDTO; import java.util.List; @@ -78,6 +79,12 @@ public interface PushService { List getXgjOrganization(String parentId); + /** + * 获取新管家token + * @return + */ + XgjAccessTokenDTO getXgjAccessToken(); + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 548ebc484..3df7ca544 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -205,7 +205,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { } franchiseFeeDO.setXgjCollectionStatus(request.getPaymentStatus()); franchiseFeeDO.setXgjRemainderPayableAmount(request.getRemainingFee()); - franchiseFeeDO.setXgjFeesPaid(request.getPayableFee()); + franchiseFeeDO.setXgjFeesPaid(request.getPaidFees()); franchiseFeeMapper.updateByPrimaryKeySelective(franchiseFeeDO); if (XGJCollectionStatusEnum.COMPLETED.getCode().equals(request.getPaymentStatus())){ shopStageInfoDAO.updateShopStageInfo(request.getShopId(),ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java index 567b0ee7a..6600ebd5d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java @@ -9,6 +9,7 @@ import com.cool.store.exception.ServiceException; import com.cool.store.request.ZxjpApiRequest; import com.cool.store.request.xgj.PushFranchiseFeeRequest; import com.cool.store.request.xgj.ReceiptRequest; +import com.cool.store.response.XgjAccessTokenDTO; import com.cool.store.response.XgjBaseResponse; import com.cool.store.response.XgjOrganizationResponse; import com.cool.store.response.huoma.ShopBaseInfoResponse; @@ -28,12 +29,11 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.nio.charset.StandardCharsets; +import java.util.*; import java.util.stream.Collectors; /** @@ -101,13 +101,13 @@ public class PushServiceImpl implements PushService { @Override public Boolean pushFranchiseFeeToXGJ(PushFranchiseFeeRequest request) { String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseeBill"; - return executeApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret); + return executePostApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret,getXgjAccessToken().getAccess_token()); } @Override public Boolean pushReceiptToXGJ(ReceiptRequest request) { String apiUrl = xgjUrl + "/dmp/dmp-join/open/franchiseeReceipts"; - return executeApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret); + return executePostApiCall(apiUrl, request, Boolean.class, xgjUsername, xgjSecret,getXgjAccessToken().getAccess_token()); } @Override @@ -183,13 +183,46 @@ public class PushServiceImpl implements PushService { } + @Override + public XgjAccessTokenDTO getXgjAccessToken() { + String apiUrl = "http://117.139.13.24:29000/oauth2/token?grant_type=client_credentials&scope=server"; + String clientId = "dmp-join"; + String clientSecret = "dmp20250528"; + String auth = clientId + ":" + clientSecret; + String encodedAuth = Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8)); + byte[] bytes = new byte[0]; + Request request = new Request.Builder() + .url(apiUrl) + .post(RequestBody.create(MediaType.parse("application/json; charset=UTF-8"),bytes)) + .header("Authorization", "Basic " + encodedAuth) + .build(); + try (Response response = okHttpClient.newCall(request).execute()) { + if (!response.isSuccessful()) { + throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR, + "HTTP请求失败,状态码: " + response.code()); + } + String responseBody = response.body().string(); + XgjAccessTokenDTO xgjAccessTokenDTO = objectMapper.readValue(responseBody, XgjAccessTokenDTO.class); + return xgjAccessTokenDTO; + } catch (ServiceException e) { + throw e; + } catch (Exception e) { + log.error("API调用异常 - URL: {}, 错误: {}", url, e.getMessage(), e); + throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR, "接口调用异常: " + e.getMessage()); + } + } - private T executeApiCall(String url, Object requestBody, Class responseType, String username, String secret) { + private T executeApiCall(String url, Object requestBody, Class responseType, String username, String secret){ + return executePostApiCall(url,requestBody,responseType,username,secret,null); + } + + + private T executePostApiCall(String url, Object requestBody, Class responseType, String username, String secret,String accessToken) { // 1. 打印请求前日志 logRequest(url, requestBody); try { - Request request = buildRequest(requestBody, url, username, secret); + Request request = buildRequest(requestBody, url, username, secret,accessToken); request.headers().names().forEach(x->{ log.info(x+": {}",request.header(x)); @@ -276,7 +309,7 @@ public class PushServiceImpl implements PushService { } - private Request buildRequest(Object requestBody, String url, String username, String secret) { + private Request buildRequest(Object requestBody, String url, String username, String secret,String accessToken) { try { Map authHeaders = HmacSigner.generateHeaders( @@ -294,9 +327,13 @@ public class PushServiceImpl implements PushService { .addHeader("Accept", "application/json") .addHeader("x-Date", authHeaders.get("x-Date")) .addHeader("Digest", authHeaders.get("Digest")); - if (!url.contains("get-token-byshopcode")){ + if (!url.contains("get-token-byshopcode")&&StringUtils.isEmpty(accessToken)){ builder.addHeader("Authorization", authHeaders.get("Authorization")); } + //新管家特定接口 + if (StringUtils.isNotEmpty(accessToken)){ + builder.addHeader("Authorization", "Bearer "+accessToken); + } return builder.build(); } catch (Exception e) { throw new ServiceException(ErrorCodeEnum.THIRD_API_SIGN_ERROR); 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 d10dbba64..ba9cbfe23 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 @@ -280,6 +280,12 @@ public class PCTestController { return ResponseResult.success(pushService.getXgjOrganization(partnerId)); } + @GetMapping("/getXgjAccessToken") + @ApiOperation("获取新管家token") + public ResponseResult getXgjAccessToken() { + return ResponseResult.success(pushService.getXgjAccessToken()); + } + @Resource ShopAccountService accountService; From 3233e773f2996eff7d86dca93ead2437088bd105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 5 Jun 2025 15:09:14 +0800 Subject: [PATCH 19/35] =?UTF-8?q?feat:=E6=8E=A8=E9=80=81=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/request/ZxjpApiRequest.java | 2 +- .../java/com/cool/store/service/impl/SyncDataServiceImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java index a509802f0..acb8dda8a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ZxjpApiRequest.java @@ -217,7 +217,7 @@ public class ZxjpApiRequest { private Integer storeType; - + private Long shopId; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java index 7e88f54be..9ab1d320c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SyncDataServiceImpl.java @@ -71,6 +71,7 @@ public class SyncDataServiceImpl implements SyncDataService { @Override public ZxjpApiRequest getData(Long shopId, DownSystemTypeEnum systemType) { ZxjpApiRequest request = new ZxjpApiRequest(); + request.setShopId(shopId); ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); if (shopInfo == null) { throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); From dadba558523236f5db13ad88a1678af09dcf1ed4 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 5 Jun 2025 15:48:23 +0800 Subject: [PATCH 20/35] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BC=B4=E8=B4=B9?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/enums/ErrorCodeEnum.java | 1 + .../store/service/impl/LinePayServiceImpl.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) 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 448dbe154..3e1d5a217 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 @@ -272,6 +272,7 @@ public enum ErrorCodeEnum { DELETE_ERROR(1511025,"删除信息失败",null), RECEIPT_NOT_EXIST(1511026,"收款单不存在或已被删除",null), XGJ_COLLECTION_STATUS_COMPLETE(1511027,"新管家收费状态已完成,请确认!",null), + PAY_AMOUNT_ERROR(1511028,"缴费金额不能大于未缴金额",null), ; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 95a2df1e1..275285147 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -163,8 +163,24 @@ public class LinePayServiceImpl implements LinePayService { if (StringUtils.isBlank(userId)) { throw new ServiceException(ErrorCodeEnum.ACCESS_TOKEN_INVALID); } + FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); //判断付款人最多2人(可重复) List list = linePayDAO.getFranchiseFeePayInfoByShopId(request.getShopId()); + //判断缴费金额不能大于未缴费金额 + BigDecimal total = list.stream() + .map(LinePayDO::getAmount) + .reduce(BigDecimal.ZERO, BigDecimal::add); + //应缴金额 + BigDecimal amountDue = new BigDecimal(franchiseFeeDO.getYearFranchiseFee()) + .add(new BigDecimal(franchiseFeeDO.getLoanMargin())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearFee())) + .add(new BigDecimal(franchiseFeeDO.getFirstYearManageFee())) + .add(new BigDecimal(franchiseFeeDO.getPerformanceBond())); + //未缴费金额 + BigDecimal amountUnpaid = amountDue.subtract(total); + if( request.getAmount().compareTo(amountUnpaid) > 0 ){ + throw new ServiceException(ErrorCodeEnum.PAY_AMOUNT_ERROR); + } Set payUserList = list.stream().map(LinePayDO::getPayUserName).collect(Collectors.toSet()); if (!payUserList.contains(request.getPayUserName()) && payUserList.size() >= 2) { throw new ServiceException(ErrorCodeEnum.PAY_USER_NAME_ERROR); From 197e833f90b896b499a7d4d07022f670e551d94a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 5 Jun 2025 15:50:24 +0800 Subject: [PATCH 21/35] =?UTF-8?q?feat:=E7=8E=AF=E5=A2=83=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/service/impl/PushServiceImpl.java | 5 ++++- .../src/main/resources/application-online.properties | 1 + .../src/main/resources/application-test.properties | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java index 6600ebd5d..731430e5e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java @@ -62,6 +62,9 @@ public class PushServiceImpl implements PushService { @Value("${xgj.api.auth.url}") private String xgjUrl; + @Value("${xgj.api.token.url}") + private String xgjTokenUrl; + @Value("${xgj.api.auth.username}") private String xgjUsername; @@ -185,7 +188,7 @@ public class PushServiceImpl implements PushService { @Override public XgjAccessTokenDTO getXgjAccessToken() { - String apiUrl = "http://117.139.13.24:29000/oauth2/token?grant_type=client_credentials&scope=server"; + String apiUrl = xgjTokenUrl + "/oauth2/token?grant_type=client_credentials&scope=server"; String clientId = "dmp-join"; String clientSecret = "dmp20250528"; String auth = clientId + ":" + clientSecret; diff --git a/coolstore-partner-web/src/main/resources/application-online.properties b/coolstore-partner-web/src/main/resources/application-online.properties index d3ab0f329..24c8c53f5 100644 --- a/coolstore-partner-web/src/main/resources/application-online.properties +++ b/coolstore-partner-web/src/main/resources/application-online.properties @@ -97,6 +97,7 @@ api.auth.secret=NzVrnS3OWiupdDY xgj.api.auth.url=https://masterdata.zhengxinfood.com xgj.api.auth.username=6446346061e043e392dd53c9c8d1af0b xgj.api.auth.secret=3ba6e4c5632547b8b2b3acefe08667bb +xgj.api.token.url=http://121.199.29.202:9000 #yunliushui yls.api.auth.url=http://yuanguiwuliu.com diff --git a/coolstore-partner-web/src/main/resources/application-test.properties b/coolstore-partner-web/src/main/resources/application-test.properties index 80814286c..7a19ef419 100644 --- a/coolstore-partner-web/src/main/resources/application-test.properties +++ b/coolstore-partner-web/src/main/resources/application-test.properties @@ -108,6 +108,7 @@ api.auth.secret=H9YKHF6R7N16Fvy xgj.api.auth.url=http://117.139.13.24:11180 xgj.api.auth.username=6446346061e043e392dd53c9c8d1af0b xgj.api.auth.secret=3ba6e4c5632547b8b2b3acefe08667bb +xgj.api.token.url=http://121.199.29.202:9000 #云流水账号 #yls.api.auth.url=http://scm330-test.366ec.net From 423b2b921a31159c8bc4fed05540d6415956cfe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 5 Jun 2025 16:56:22 +0800 Subject: [PATCH 22/35] =?UTF-8?q?feat:=E7=8E=AF=E5=A2=83=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-test.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-web/src/main/resources/application-test.properties b/coolstore-partner-web/src/main/resources/application-test.properties index 7a19ef419..5f744b0d0 100644 --- a/coolstore-partner-web/src/main/resources/application-test.properties +++ b/coolstore-partner-web/src/main/resources/application-test.properties @@ -108,7 +108,7 @@ api.auth.secret=H9YKHF6R7N16Fvy xgj.api.auth.url=http://117.139.13.24:11180 xgj.api.auth.username=6446346061e043e392dd53c9c8d1af0b xgj.api.auth.secret=3ba6e4c5632547b8b2b3acefe08667bb -xgj.api.token.url=http://121.199.29.202:9000 +xgj.api.token.url=http://117.139.13.24:29000 #云流水账号 #yls.api.auth.url=http://scm330-test.366ec.net From b68a4ec386fef64e562aa484b0e71041e1bf8e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 5 Jun 2025 17:08:31 +0800 Subject: [PATCH 23/35] =?UTF-8?q?feat=EF=BC=9A=E5=88=9B=E5=BB=BA=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/service/impl/FranchiseFeeServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 76a0ca9f8..11af91ab4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -83,6 +83,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { throw new ServiceException(ErrorCodeEnum.UNISSUED_STATEMENT_2); } franchiseFeeDO.setXgjCollectionStatus(XGJCollectionStatusEnum.WAIT_PAY.getCode()); + franchiseFeeDO.setCreateTime(new Date()); franchiseFeeMapper.insertSelective(franchiseFeeDO); } ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); @@ -109,6 +110,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { ShopInfoDO shopInfoDO = shopInfoMapper.selectByPrimaryKey(request.getShopId()); LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); //推送加盟费信息到新管家 + franchiseFeeDO.setCreateTime(franchiseFeeDO1.getCreateTime()); PushFranchiseFeeRequest feeRequest = new PushFranchiseFeeRequest(shopInfoDO.getId(), lineInfoDO.getUsername(), franchiseFeeDO); pushService.pushFranchiseFeeToXGJ(feeRequest); return true; From f19507e153cb528767c75d3a1c896650f0448b81 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Thu, 5 Jun 2025 17:22:02 +0800 Subject: [PATCH 24/35] =?UTF-8?q?add=20=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/controller/webb/PCShopController.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java index 5c0a07842..60eaef521 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCShopController.java @@ -165,4 +165,10 @@ public class PCShopController { public ResponseResult getFranchiseBrandName(@RequestParam(name = "shopId")Long shopId) { return ResponseResult.success(shopService.getFranchiseBrandName(shopId)); } + + @ApiOperation("获取店铺某阶段状态") + @GetMapping("/getShopStageStatus") + public ResponseResult getShopStageStatus(@RequestParam("shopId")Long shopId, @RequestParam("subStage")Integer subStage) { + return ResponseResult.success(shopService.getShopStageStatus(shopId, subStage)); + } } From 431929338a9ef0cefa3435042287fe40529d8ef8 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 09:39:42 +0800 Subject: [PATCH 25/35] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=93=E5=82=A8?= =?UTF-8?q?=E6=89=BE=E5=89=AF=E6=80=BB=E8=A3=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/BuildInformationServiceImpl.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java index 4a9ca2637..29cfc0a68 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BuildInformationServiceImpl.java @@ -4,10 +4,7 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.entity.*; -import com.cool.store.enums.ErrorCodeEnum; -import com.cool.store.enums.MessageEnum; -import com.cool.store.enums.OrderSysTypeEnum; -import com.cool.store.enums.UserRoleEnum; +import com.cool.store.enums.*; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; @@ -16,12 +13,14 @@ import com.cool.store.request.BuildInformationRequest; import com.cool.store.response.BuildInformationResponse; import com.cool.store.service.BuildInformationService; import com.cool.store.mapper.BuildInformationMapper; +import com.cool.store.service.EnumInfoService; import com.cool.store.service.PreparationService; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.RedisConstantUtil; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.poi.StringUtils; import io.lettuce.core.ZAddArgs; +import org.apache.commons.collections4.CollectionUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @author EDY @@ -38,7 +38,8 @@ import java.util.stream.Collectors; */ @Service public class BuildInformationServiceImpl implements BuildInformationService { - + @Resource + private EnumInfoService enumInfoService; @Resource private RedisConstantUtil redisConstantUtil; @Resource @@ -116,9 +117,17 @@ public class BuildInformationServiceImpl implements BuildInformationService { response.setDeclareGoodsType(orderSysInfoDO.getDeclareGoodsType()); } if (StringUtils.isBlank(response.getXgjVicePresident())) { - EnterpriseUserDO user = userAuthMappingService.getUserByRoleEnumAndRegionId(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE, shopInfo.getRegionId()); - if (Objects.nonNull(user)) { - response.setXgjVicePresident(user.getName()); + List userList = userAuthMappingService.getAllUserByRoleEnumAndRegionId(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE, shopInfo.getRegionId()); + if (CollectionUtils.isNotEmpty(userList)) { + List xgjVicePresidentList = enumInfoService.getByTypeCode(ZxjpEnum.XGJ_VICE_PRESIDENT.getCode()); + List userNameSet = userList.stream().map(EnterpriseUserDO::getName).collect(Collectors.toList()); + List xgjVicePresidentNameList = xgjVicePresidentList.stream().map(EnumInfoDO::getSysValue).collect(Collectors.toList()); + List resultUserNameList = userNameSet.stream() + .filter(xgjVicePresidentNameList::contains) + .collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(resultUserNameList)){ + response.setXgjVicePresident(resultUserNameList.get(0)); + } } } //根据映射关系默认带出新管家组织 From dd1bd487fc9a274c6152409e47cbdc09147cc968 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 6 Jun 2025 10:12:13 +0800 Subject: [PATCH 26/35] =?UTF-8?q?feat=EF=BC=9A=E9=97=A8=E5=BA=97=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/enums/ExtendFieldTypeEnum.java | 6 +++++- .../src/main/java/com/cool/store/dto/StoreDTO.java | 4 ++++ .../com/cool/store/service/impl/StoreServiceImpl.java | 8 ++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java index 2042c8dd8..d8efe12e4 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java @@ -17,12 +17,16 @@ public enum ExtendFieldTypeEnum { TEST_SIGNATORY_NAME_2("extend_field_1746670671614","签约人2名称"), TEST_SIGNATORY_MOBILE_2("extend_field_1746670686307","签约人2手机号"), TEST_ORDER_NAME("extend_field_1747103227333","订单小程序名称"), + TEST_JOIN_MODE("extend_field_1749175173890","加盟模式"), + TEST_STORE_TYPE("extend_field_1749175177455","门店类型"), ONLINE_STORE_MANAGER_MOBILE("extend_field_1746598536903","店长手机号"), ONLINE_SIGNATORY_NAME_1("extend_field_1746598562255","签约人1名称"), ONLINE_SIGNATORY_MOBILE_1("extend_field_1746598570479","签约人2手机号"), ONLINE_SIGNATORY_NAME_2("extend_field_1746598584139","签约人2名称"), ONLINE_SIGNATORY_MOBILE_2("extend_field_1746598594140","签约人2手机号"), - ONLINE_ORDER_NAME("extend_field_1746599049206","订单小程序名称"),; + ONLINE_ORDER_NAME("extend_field_1746599049206","订单小程序名称"), + ONLINE_JOIN_MODE("extend_field_1748315801670","加盟模式"), + ONLINE_STORE_TYPE("extend_field_1748315809671","门店类型"),; private String key; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java index 184933008..09a5cc5ad 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java @@ -27,5 +27,9 @@ public class StoreDTO { private String signer2Phone; @ApiModelProperty("订单小程序名称") private String orderMiniProgramName; + @ApiModelProperty("加盟模式") + private String joinMode; + @ApiModelProperty("门店类型") + private String storeType; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java index 81ee792d2..5c551f0c2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java @@ -100,6 +100,14 @@ public class StoreServiceImpl implements StoreService { case ONLINE_ORDER_NAME: dto.setOrderMiniProgramName(entry.getValue()); break; + case TEST_JOIN_MODE: + case ONLINE_JOIN_MODE: + dto.setJoinMode(entry.getValue()); + break; + case TEST_STORE_TYPE: + case ONLINE_STORE_TYPE: + dto.setStoreType(entry.getValue()); + break; } } } From b90c325c1ac43f563000fdba41a4b9d98cebe901 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 10:51:58 +0800 Subject: [PATCH 27/35] =?UTF-8?q?fix=20=E7=BC=B4=E8=B4=B9=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/service/impl/LinePayServiceImpl.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 275285147..189216109 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -52,6 +52,7 @@ import java.math.BigDecimal; import java.text.MessageFormat; import java.time.LocalDate; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import static com.cool.store.utils.poi.DateUtils.SPECIAL_DATE_START; @@ -166,8 +167,12 @@ public class LinePayServiceImpl implements LinePayService { FranchiseFeeDO franchiseFeeDO = franchiseFeeMapper.selectByShopId(request.getShopId()); //判断付款人最多2人(可重复) List list = linePayDAO.getFranchiseFeePayInfoByShopId(request.getShopId()); + Map payIdMap = list.stream().collect(Collectors.toMap(LinePayDO::getId, Function.identity())); + if (request.getId()!=null){ + payIdMap.remove(request.getId()); + } //判断缴费金额不能大于未缴费金额 - BigDecimal total = list.stream() + BigDecimal total = payIdMap.values().stream() .map(LinePayDO::getAmount) .reduce(BigDecimal.ZERO, BigDecimal::add); //应缴金额 From 1c8c5085d5f176a58c2f559468f9a738fae1ac63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 6 Jun 2025 10:55:27 +0800 Subject: [PATCH 28/35] =?UTF-8?q?feat=EF=BC=9A=E9=97=A8=E5=BA=97=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/enums/ExtendFieldTypeEnum.java | 4 +++- .../src/main/java/com/cool/store/dto/StoreDTO.java | 2 ++ .../java/com/cool/store/service/impl/StoreServiceImpl.java | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java index d8efe12e4..73e3245ef 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ExtendFieldTypeEnum.java @@ -19,6 +19,7 @@ public enum ExtendFieldTypeEnum { TEST_ORDER_NAME("extend_field_1747103227333","订单小程序名称"), TEST_JOIN_MODE("extend_field_1749175173890","加盟模式"), TEST_STORE_TYPE("extend_field_1749175177455","门店类型"), + TEST_BRAND("extend_field_1749177175079","品牌"), ONLINE_STORE_MANAGER_MOBILE("extend_field_1746598536903","店长手机号"), ONLINE_SIGNATORY_NAME_1("extend_field_1746598562255","签约人1名称"), ONLINE_SIGNATORY_MOBILE_1("extend_field_1746598570479","签约人2手机号"), @@ -26,7 +27,8 @@ public enum ExtendFieldTypeEnum { ONLINE_SIGNATORY_MOBILE_2("extend_field_1746598594140","签约人2手机号"), ONLINE_ORDER_NAME("extend_field_1746599049206","订单小程序名称"), ONLINE_JOIN_MODE("extend_field_1748315801670","加盟模式"), - ONLINE_STORE_TYPE("extend_field_1748315809671","门店类型"),; + ONLINE_STORE_TYPE("extend_field_1748315809671","门店类型"), + ONLINE_BRAND("extend_field_1749176993442","品牌"),; private String key; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java index 09a5cc5ad..876ac8795 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/StoreDTO.java @@ -31,5 +31,7 @@ public class StoreDTO { private String joinMode; @ApiModelProperty("门店类型") private String storeType; + @ApiModelProperty("品牌") + private String brand; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java index 5c551f0c2..e9af16bac 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/StoreServiceImpl.java @@ -108,6 +108,10 @@ public class StoreServiceImpl implements StoreService { case ONLINE_STORE_TYPE: dto.setStoreType(entry.getValue()); break; + case TEST_BRAND: + case ONLINE_BRAND: + dto.setBrand(entry.getValue()); + break; } } } From d6051898c05806539ba91d1ab97238e0037038ec Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 10:59:29 +0800 Subject: [PATCH 29/35] fix --- .../java/com/cool/store/service/impl/LinePayServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java index 189216109..322967fdb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LinePayServiceImpl.java @@ -225,6 +225,7 @@ public class LinePayServiceImpl implements LinePayService { } else { linePayDAO.updateLinePay(linePayDO); } + linePayDO.setPaymentReceiptCode(linePayById.getPaymentReceiptCode()); } else { linePayDO.setPaymentReceiptCode(getPaymentReceiptCode()); Long payId = linePayDAO.addLinePay(linePayDO); @@ -234,6 +235,7 @@ public class LinePayServiceImpl implements LinePayService { shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72); } //推送数据 + this.pushPayInfo(request.getShopId(), linePayDO); return linePayDO.getId(); } else { From d71dfb05c525314002c9373b903308bf2d0af462 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 11:34:09 +0800 Subject: [PATCH 30/35] =?UTF-8?q?=20//=E5=AE=A1=E6=89=B9=E6=8B=92=E7=BB=9D?= =?UTF-8?q?=E9=98=B6=E6=AE=B5=20=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/dao/LinePayDAO.java | 6 ++++++ .../main/java/com/cool/store/mapper/LinePayMapper.java | 2 ++ .../src/main/resources/mapper/LinePayMapper.xml | 8 ++++++++ .../cool/store/service/impl/DataHandlerServerImpl.java | 6 ++++++ 4 files changed, 22 insertions(+) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java index a85471f59..04b401288 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/LinePayDAO.java @@ -108,4 +108,10 @@ public class LinePayDAO { } return linePayMapper.updateXgjClaimStatus(shopIds,xgjClaimStatus,payBusinessType); } + public Integer deleteByShopId(List shopIds){ + if (CollectionUtils.isEmpty(shopIds)){ + return null; + } + return linePayMapper.deleteByShopId(shopIds); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java index 75c99d824..00ed3bc54 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/LinePayMapper.java @@ -68,4 +68,6 @@ public interface LinePayMapper { Integer dataUpdateLinePay(@Param("list") List linePayDOList); Integer updateXgjClaimStatus(@Param("list") List shopIds,@Param("xgjClaimStatus") Integer xgjClaimStatus,@Param("payBusinessType") Integer payBusinessType); + + Integer deleteByShopId(@Param("list")List shopIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml index 0362abba3..a7ad533d9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/LinePayMapper.xml @@ -48,6 +48,14 @@ from xfsg_line_pay where id = #{id,jdbcType=BIGINT} + + update xfsg_line_pay + set deleted = 1 + where shop_id in + + #{item} + + SELECT LAST_INSERT_ID() diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java index 550c2b4e6..fa4a8c811 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DataHandlerServerImpl.java @@ -1070,6 +1070,12 @@ public class DataHandlerServerImpl implements DataHandlerServer { List waitPayStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71.getShopSubStageStatus()); List waitPayShopIds = waitPayStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); franchiseFeeDAO.batchUpdateXgjCollectionStatus(waitPayShopIds, XGJCollectionStatusEnum.WAIT_PAY.getCode()); + //审批拒绝阶段 + List refuseStageList = shopStageInfoDAO.getShopStageInfoByShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_74.getShopSubStageStatus()); + List refuseShopIds = refuseStageList.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + franchiseFeeDAO.batchUpdateXgjCollectionStatus(refuseShopIds, XGJCollectionStatusEnum.WAIT_PAY.getCode()); + linePayDAO.deleteByShopId(refuseShopIds); + shopStageInfoDAO.dataUpdateStatus(refuseShopIds,ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_71); return true; } From 1eb42edb889647270f33151ec5d56ee592dda0fb Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 13:52:03 +0800 Subject: [PATCH 31/35] fix --- .../com/cool/store/service/impl/FranchiseFeeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 11af91ab4..1d071ec22 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -98,7 +98,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { @Override public Boolean update(FranchiseFeeRequest request) { ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); - if (!shopStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){ + if (shopStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){ throw new ServiceException(ErrorCodeEnum.NOT_ALLOW_OPERATE); } FranchiseFeeDO franchiseFeeDO = request.toFranchiseFeeDO(); From ba796a1d084667b20502fa591b854c76d5c6e748 Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Fri, 6 Jun 2025 17:57:34 +0800 Subject: [PATCH 32/35] fix --- .../com/cool/store/service/impl/FranchiseFeeServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java index 1d071ec22..5324b56ff 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FranchiseFeeServiceImpl.java @@ -96,6 +96,7 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService { } @Override + @Transactional(rollbackFor = Exception.class) public Boolean update(FranchiseFeeRequest request) { ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_7); if (shopStageInfo.getShopSubStageStatus().equals(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus())){ From 06fc2affdc2ae8ff06200a63d0dbb1a04310c0ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 6 Jun 2025 18:29:42 +0800 Subject: [PATCH 33/35] =?UTF-8?q?feat=EF=BC=9A=E9=97=A8=E5=BA=97=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/service/impl/PushServiceImpl.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java index 731430e5e..ca0317d77 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PushServiceImpl.java @@ -28,12 +28,14 @@ import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; /** @@ -94,6 +96,14 @@ public class PushServiceImpl implements PushService { @Value("${mybatis.configuration.variables.enterpriseId}") private String eid; + @PostConstruct + public void init() { + okHttpClient = okHttpClient.newBuilder() + .connectTimeout(10, TimeUnit.SECONDS) // 连接超时 + .readTimeout(30, TimeUnit.SECONDS) // 读取超时 + .writeTimeout(30, TimeUnit.SECONDS) // 写入超时 + .build(); + } @Override public Boolean pushDataToXGJ(ZxjpApiRequest zxjpApiRequest) { From 248d6c836772c95c50c772ef47b757ba3372bd2e Mon Sep 17 00:00:00 2001 From: "shuo.wang" Date: Mon, 9 Jun 2025 13:26:28 +0800 Subject: [PATCH 34/35] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=A4=84=E7=90=86=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ClaimStatusEnum.java | 2 +- .../com/cool/store/dao/FranchiseFeeDAO.java | 9 ++++ .../cool/store/mapper/FranchiseFeeMapper.java | 3 ++ .../resources/mapper/FranchiseFeeMapper.xml | 8 ++++ .../store/dto/FranchiseFeeStageDateDTO.java | 18 ++++++++ .../cool/store/service/DataHandlerServer.java | 45 +++++++++++++++---- .../service/impl/DataHandlerServerImpl.java | 24 ++++++++-- .../service/impl/LinePayServiceImpl.java | 4 +- 8 files changed, 97 insertions(+), 16 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/FranchiseFeeStageDateDTO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ClaimStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ClaimStatusEnum.java index 05223fcd9..0740e2282 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ClaimStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ClaimStatusEnum.java @@ -8,7 +8,7 @@ package com.cool.store.enums; */ public enum ClaimStatusEnum { TO_BE_CLAIMED(0,"待认领"), - Claimed(1,"已认领"); + CLAIMED(1,"已认领"); private Integer code; private String message; ClaimStatusEnum(Integer code,String message){ diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java index 3311e593c..da4d10589 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java @@ -1,10 +1,12 @@ package com.cool.store.dao; +import com.cool.store.dto.FranchiseFeeStageDateDTO; import com.cool.store.entity.FranchiseFeeDO; import com.cool.store.mapper.FranchiseFeeMapper; import org.apache.commons.collections4.CollectionUtils; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; import javax.annotation.Resource; import java.util.List; @@ -33,4 +35,11 @@ public class FranchiseFeeDAO { } return franchiseFeeMapper.batchUpdateXgjCollectionStatus(shopIds,collectionStatus); } + + public Integer batchUpdateXgjCollectionStatusAndXgjFeesPaid( List franchiseFeeStageDateDTOList){ + if (CollectionUtils.isEmpty(franchiseFeeStageDateDTOList)){ + return 0; + } + return franchiseFeeMapper.batchUpdateXgjCollectionStatusAndXgjFeesPaid(franchiseFeeStageDateDTOList); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java index c92d34a7b..a6ac258d7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/FranchiseFeeMapper.java @@ -1,6 +1,7 @@ package com.cool.store.mapper; import com.cool.store.dto.FranchiseFeeDTO; +import com.cool.store.dto.FranchiseFeeStageDateDTO; import com.cool.store.entity.FranchiseFeeDO; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; @@ -26,4 +27,6 @@ public interface FranchiseFeeMapper extends Mapper { Integer updateBill(@Param("list") List list); Integer batchUpdateXgjCollectionStatus(@Param("shopIds")List shopId, @Param("collectionStatus")Integer collectionStatus); + + Integer batchUpdateXgjCollectionStatusAndXgjFeesPaid( @Param("list") List franchiseFeeStageDateDTOList); } diff --git a/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml index dbff8f1ea..7c60ff89b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/FranchiseFeeMapper.xml @@ -40,6 +40,14 @@ #{shopId} + + + update xfsg_franchise_fee + set xgj_collection_status = #{item.xgjCollectionStatus}, + xgj_fees_paid = #{item.xgjFeesPaid} + where shop_id = #{item.shopId} + +