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] =?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