提交 fca227cf authored 作者: liuhaiquan's avatar liuhaiquan

Merge remote-tracking branch 'origin/v5.5_settlement_20231011' into v5.5_settlement_20231011

......@@ -2,6 +2,6 @@ package com.clx.performance.sdk.constant;
public class ActionConstants {
public static final String ORDER_INFO_SYNC = "order.info.save";
public static final String PAYMENT_SETTLEMENT = "payment.settlement";
}
package com.clx.performance.sdk.request.action;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import static com.clx.performance.sdk.constant.ActionConstants.PAYMENT_SETTLEMENT;
/**
* @Author liruixin
* @create 2023-09-19 13:33
*/
@Getter
@Setter
@Accessors(chain = true)
public class PaymentSettlementAction implements Action<String>{
@NotNull(message = "结算单号不能为空")
@ApiModelProperty(value="结算单号",example = "JS10")
private String settlementNo;
@NotBlank(message = "收款人不能为空")
@ApiModelProperty(value = "收款人", example = "收款人")
private String payee;
@NotBlank(message = "收款银行不能为空")
@ApiModelProperty(value = "收款银行", example = "浙江银行")
private String payeeBankName;
@NotBlank(message = "收款银行卡卡号不能为空")
@ApiModelProperty(value = "收款银行卡卡号", example = "62213545878787")
private String payeeBankCardNo;
@NotBlank(message = "付款银行不能为空")
@ApiModelProperty(value = "付款银行", example = "浙江银行")
private String paymentBankName;
@NotBlank(message = "付款银行卡卡号不能为空")
@ApiModelProperty(value = "付款银行卡卡号", example = "62213545878787")
private String paymentBankCardNo;
@NotBlank(message = "付款凭证不能为空")
@ApiModelProperty(value = "付款凭证", example = "/a.png")
private String paymentImg;
@Override
public String action() {
return PAYMENT_SETTLEMENT;
}
}
package com.clx.performance.controller.sdk;
import com.alibaba.fastjson.JSON;
import com.clx.performance.sdk.constant.ActionConstants;
import com.clx.performance.sdk.request.action.PaymentSettlementAction;
import com.clx.performance.service.settle.third.ThirdSettlementOwnerService;
import com.msl.common.dto.HttpDTO;
import com.msl.common.result.Result;
import io.swagger.annotations.Api;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.Objects;
import static org.bouncycastle.cms.CMSSignedGenerator.DATA;
@Api(tags = "第三方")
@RestController
@RequestMapping("/encrypt/third")
@Slf4j
@AllArgsConstructor
public class ThirdPartyController {
private final ThirdSettlementOwnerService thirdSettlementOwnerService;
@PostMapping("/doAction")
public Object doAction(HttpServletRequest request) {
HttpDTO httpDTO = (HttpDTO) request.getAttribute(DATA);
String action = httpDTO.getAction();
if (Objects.equals(action, ActionConstants.PAYMENT_SETTLEMENT)) {
thirdSettlementOwnerService.updateThirdPaymentSettlement(JSON.parseObject(httpDTO.getData(), PaymentSettlementAction.class));
}
return Result.ok();
}
}
......@@ -8,6 +8,7 @@ import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.mapper.settle.SettlementOwnerMapper;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerParam;
import com.msl.common.base.Optional;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.apache.commons.lang3.StringUtils;
......@@ -71,6 +72,15 @@ public class SettlementOwnerDaoImpl extends BaseDaoImpl<SettlementOwnerMapper, S
}
@Override
public Optional<SettlementOwner> selectBySettlementNo(String settlementNo) {
return Optional.of(settlementNo)
.map(item -> lQrWrapper()
.eq(SettlementOwner::getSettlementNo, item)
.eq(SettlementOwner::getMergeStatus, SettlementOwnerEnum.MergeStatus.NO.getCode()))
.map(super::getOne);
}
@Override
public IPage<SettlementOwner> pageSettlementOwner(PageOwnerSettlementParam param) {
LambdaQueryWrapper<SettlementOwner> query = new LambdaQueryWrapper<>();
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.SettlementOwnerMapper;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerParam;
import com.msl.common.base.Optional;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.msl.common.dao.BaseDao;
import org.apache.ibatis.annotations.Param;
......@@ -21,5 +22,7 @@ public interface SettlementOwnerDao extends BaseDao<SettlementOwnerMapper, Settl
IPage<SettlementOwner> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param);
Optional<SettlementOwner> selectBySettlementNo(@Param("settlementNo")String settlementNo);
IPage<SettlementOwner> pageSettlementOwner(PageOwnerSettlementParam param);
}
package com.clx.performance.service.impl.settle.third;
import com.clx.performance.dao.settle.SettlementLogDao;
import com.clx.performance.dao.settle.SettlementOwnerDao;
import com.clx.performance.dao.settle.SettlementPlatformAccountDao;
import com.clx.performance.enums.OrderChildLogEnum;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.enums.settle.SettlementLogEnum;
import com.clx.performance.enums.settle.SettlementOwnerEnum;
import com.clx.performance.model.settle.SettlementOwner;
import com.clx.performance.sdk.request.action.PaymentSettlementAction;
import com.clx.performance.service.OwnerAccountService;
import com.clx.performance.service.settle.SettlementLogService;
import com.clx.performance.service.settle.third.ThirdSettlementOwnerService;
import com.clx.performance.struct.settle.SettlementLogStruct;
import com.clx.performance.struct.settle.SettlementOwnerStruct;
import com.msl.common.exception.ServiceSystemException;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author liruixin
* Date 2023-10-12
* Time 09:43
*/
@Slf4j
@Service
@AllArgsConstructor
public class ThirdSettlementOwnerServiceImpl implements ThirdSettlementOwnerService {
private final SettlementOwnerDao settlementOwnerDao;
private final SettlementOwnerStruct settlementOwnerStruct;
private final SettlementLogDao settlementLogDao;
private final SettlementLogStruct settlementLogStruct;
private final SettlementPlatformAccountDao settlementPlatformAccountDao;
private final SettlementLogService settlementLogService;
private final OwnerAccountService ownerAccountService;
@Override
public void updateThirdPaymentSettlement(PaymentSettlementAction param) {
//结算单详情
SettlementOwner settlementOwner =settlementOwnerDao.selectBySettlementNo(param.getSettlementNo()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
//状态判断
if(!Objects.equals(settlementOwner.getStatus(), SettlementOwnerEnum.Status.SHIPPER_TO_PAYMENT.getCode())){
throw new ServiceSystemException(PerformanceResultEnum.SETTLEMENT_ORDER_STATUS_CHANGED);
}
String settlementNo = settlementOwner.getSettlementNo();
//更新状态为平台确认货主付款
SettlementOwner settlement = SettlementOwner.builder().payee(param.getPayee()).payeeBankCardNo(param.getPayeeBankCardNo())
.payeeBankName(param.getPayeeBankName()).paymentBankCardNo(param.getPaymentBankCardNo())
.paymentBankName(param.getPaymentBankName()).paymentImg(param.getPaymentImg())
.settlementNo(settlementOwner.getSettlementNo())
.status(SettlementOwnerEnum.Status.PLATFORM_CONFIRMED_OWNER_PAYMENT.getCode()).build();
settlementOwnerDao.updatePayment(settlement);
UserSessionData loginUserInfo = TokenUtil.getLoginUserInfo();
//保存结算单日志
settlementLogService.saveSettlementLog(settlementNo,
SettlementLogEnum.Type.SHIPPER_TO_PAYMENT.getCode(),SettlementLogEnum.Type.SHIPPER_TO_PAYMENT.getMsg(),
OrderChildLogEnum.CreateType.OWNER.getCode(),loginUserInfo.getUserNo(),loginUserInfo.getUserName());
}
}
......@@ -3,6 +3,7 @@ package com.clx.performance.service.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.owner.OwnerPaymentSettlementParam;
import com.clx.performance.param.pc.owner.PageCarrierSettlementOwnerParam;
import com.clx.performance.sdk.request.action.PaymentSettlementAction;
import com.clx.performance.param.pc.owner.PageOwnerSettlementParam;
import com.clx.performance.vo.pc.carrier.settle.CarrierPageSettlementOwnerVO;
import com.clx.performance.vo.pc.carrier.settle.CarrierSettlementOwnerDetailVO;
......@@ -28,5 +29,6 @@ public interface SettlementOwnerService {
IPage<CarrierPageSettlementOwnerVO> pageCarrierSettlementOwner(PageCarrierSettlementOwnerParam param);
IPage<OwnerPageSettlementOwnerVO> pageSettlementOwner(PageOwnerSettlementParam param);
}
package com.clx.performance.service.settle.third;
import com.clx.performance.sdk.request.action.PaymentSettlementAction;
/**
* @author liruixin
* Date 2023-10-12
* Time 09:43
*/
public interface ThirdSettlementOwnerService {
void updateThirdPaymentSettlement(PaymentSettlementAction action);
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论