From da99c3b3008b1a60d44323854b5bfc25ba408cf3 Mon Sep 17 00:00:00 2001 From: winter Date: Thu, 9 May 2024 21:14:14 +0800 Subject: [PATCH] fix --- .../controller/rent/WxBillAllController.java | 29 ++- .../resources/db/migration/V202405003.sql | 8 +- .../com/iformall/domain/dto/WxBillPayDTO.java | 19 ++ .../domain/dto/WxBillReceiveUpdateDTO.java | 25 +++ .../com/iformall/domain/po/WxBillAction.java | 12 + .../com/iformall/domain/po/WxBillDaily.java | 4 +- .../iformall/domain/po/WxRentContract.java | 4 +- .../com/iformall/enums/EnumBillAction.java | 26 +++ .../iformall/service/WxBillDailyService.java | 6 + .../service/WxBillDepositService.java | 6 + .../service/WxBillOtherDepositService.java | 6 + .../iformall/service/WxBillOtherService.java | 6 + .../service/WxBillPropertyDepositService.java | 6 + .../service/WxBillPropertyService.java | 6 + .../service/WxBillRentManageService.java | 6 + .../iformall/service/WxBillRentService.java | 7 + .../service/helper/WxBillAllHelper.java | 51 ++++- .../service/impl/WxBillActionServiceImpl.java | 4 + .../service/impl/WxBillBaseService.java | 37 ++++ .../service/impl/WxBillDailyServiceImpl.java | 61 ++++- .../impl/WxBillDepositServiceImpl.java | 54 ++++- .../impl/WxBillOtherDepositServiceImpl.java | 50 ++++- .../service/impl/WxBillOtherServiceImpl.java | 49 ++++- .../WxBillPropertyDepositServiceImpl.java | 54 ++++- .../impl/WxBillPropertyServiceImpl.java | 61 ++++- .../impl/WxBillRentManageServiceImpl.java | 61 ++++- .../service/impl/WxBillRentServiceImpl.java | 208 ++++++++++++------ .../resources/mapper/WxBillActionMapper.xml | 10 +- 28 files changed, 783 insertions(+), 93 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java create mode 100644 mallinkService/src/main/java/com/iformall/domain/dto/WxBillReceiveUpdateDTO.java create mode 100644 mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java index bea764e29..ead9677ef 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/rent/WxBillAllController.java @@ -8,6 +8,8 @@ import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BillBaseController; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.SysConfig; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxUserDataRule; @@ -488,6 +490,22 @@ public class WxBillAllController extends BillBaseController { billAllHelper.exportOneBillOweWord(false,bill, request, response); } + @PostMapping("updateReceivePay") + public ResultData updateReceivePay(@RequestBody WxBillReceiveUpdateDTO dto) { + dto.updateTenantInfo(getTenantInfo()); + billAllHelper.updateReceivePay(dto, getUser(), false); + return new ResultData(); + //return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); + } + + @PostMapping("pay") + public ResultData pay(@RequestBody WxBillPayDTO dto) { + dto.updateTenantInfo(getTenantInfo()); + billAllHelper.updatePay(dto, getUser()); + return new ResultData(); + //return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); + } + //###################################### 老代码 ###################################### @GetMapping("exportOweBill") @@ -686,17 +704,6 @@ public class WxBillAllController extends BillBaseController { wxBillAllService.exportWaitMerchant(wxBillAll, request, response); } - - - @PostMapping("updateReceivePay") - @SystemControllerLog(description = "账单-更新") - public ResultData updateReceivePay(@RequestBody WxBillAll wxBillAll) { - logger.debug("[" + getIpAddr() + "] WxBillRentController::add"); - wxBillAll.updateTenantInfo(getTenantInfo()); - return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); - } - - @GetMapping("exportTemplate") @SystemControllerLog(description = "账单-导出模板") public void exportTemplate(@ModelAttribute WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response) { diff --git a/mallinkAdmin/src/main/resources/db/migration/V202405003.sql b/mallinkAdmin/src/main/resources/db/migration/V202405003.sql index b6ca42425..131e96272 100644 --- a/mallinkAdmin/src/main/resources/db/migration/V202405003.sql +++ b/mallinkAdmin/src/main/resources/db/migration/V202405003.sql @@ -7,4 +7,10 @@ ALTER TABLE wx_bill_daily DROP COLUMN owe; ALTER TABLE wx_bill_other DROP COLUMN owe; ALTER TABLE wx_bill_other_deposit DROP COLUMN owe; -ALTER TABLE wx_bill_rent_deposit ADD COLUMN contract_depoist_detail VARCHAR(1000) COMMENT '合同押金详细'; \ No newline at end of file +ALTER TABLE wx_bill_rent_deposit ADD COLUMN contract_depoist_detail VARCHAR(1000) COMMENT '合同押金详细'; + +ALTER TABLE wx_bill_action ADD COLUMN `bill_type` INT(3) NOT NULL DEFAULT 0 COMMENT '账单类型' AFTER `bill_id`; +ALTER TABLE wx_bill_action ADD COLUMN `old_money` VARCHAR(30) COMMENT '原有金额' AFTER `bill_id`; +ALTER TABLE wx_bill_action ADD COLUMN `new_money` VARCHAR(30) COMMENT '变更后金额' AFTER `bill_id`; + +ALTER TABLE wx_bill_action ADD COLUMN `remark` VARCHAR(1000) COMMENT '备注'; diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java b/mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java new file mode 100644 index 000000000..ac9501e22 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java @@ -0,0 +1,19 @@ +package com.iformall.domain.dto; + +import com.iformall.domain.po.base.TenantEntity; + +import lombok.Data; + +/** + * 更改应收金额 + * @author xmzhao71 + * @date 2023-08-31 + */ +@Data +public class WxBillPayDTO extends TenantEntity{ + private Long id; + private Integer billTypeValue;// EnumBillAllType + private String addpay;//支付金额 + private Integer payWay;//支付方式 EnumBillPayWay + private String remark; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/WxBillReceiveUpdateDTO.java b/mallinkService/src/main/java/com/iformall/domain/dto/WxBillReceiveUpdateDTO.java new file mode 100644 index 000000000..4fbe9067a --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxBillReceiveUpdateDTO.java @@ -0,0 +1,25 @@ +package com.iformall.domain.dto; + +import com.iformall.domain.po.base.TenantEntity; + +import lombok.Data; + +/** + * 更改应收金额 + * @author xmzhao71 + * @date 2023-08-31 + */ +@Data +public class WxBillReceiveUpdateDTO extends TenantEntity{ + private Long id; + private Integer billTypeValue; + private String oldPrice;//原应付金额 + private String newPrice;//调整后应付金额 + + private String pay;//缴费金额 + + private String oldLatePrice;//原应付滞纳金 + private String newLatePrice;//调整后应付滞纳金 + + private String remark; +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java index af44a4de0..ce980b8c9 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillAction.java @@ -18,8 +18,17 @@ public class WxBillAction extends TenantEntity { protected Long id; + @io.swagger.annotations.ApiModelProperty(value = "账单类型EnumBillAllType", name = "billType") + private Integer billType; + @io.swagger.annotations.ApiModelProperty(value = "账单ID", name = "billId") private Long billId; + + @io.swagger.annotations.ApiModelProperty(value = "原有金额", name = "oldMoney") + private String oldMoney; + + @io.swagger.annotations.ApiModelProperty(value = "变更后金额", name = "newMoney") + private String newMoney; @io.swagger.annotations.ApiModelProperty(value = "用户ID", name = "userId") private Long userId; @@ -44,6 +53,9 @@ public class WxBillAction extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "付款时间", name = "payDate") private Date payDate; + + @io.swagger.annotations.ApiModelProperty(value = "备注", name = "remark") + private String remark; @TableField(exist = false) private Long oldPrice; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java index c86b91d95..ef7038a50 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxBillDaily.java @@ -29,7 +29,7 @@ public class WxBillDaily extends WxBillBaseEntity { private static final long serialVersionUID = 5004263718907992977L; - @Excel(name = "费用类型*", replace = {"水费_1", "电费_2"}, width = 20, orderNum = "2") + @Excel(name = "费用类型*", replace = {"水费_1", "电费_2" , "空调费_3"}, width = 20, orderNum = "2") @NotNull @io.swagger.annotations.ApiModelProperty(value="账单类型EnumBillDailyType",name="type") private Integer type; @@ -39,9 +39,11 @@ public class WxBillDaily extends WxBillBaseEntity { @io.swagger.annotations.ApiModelProperty(value="截止收款日期",name="receiveDate") private Date receiveDate; + @Excel(name = "收款日期", format = "yyyy-MM-dd", width = 20, orderNum = "12") @io.swagger.annotations.ApiModelProperty(value="到账日期",name="payDate") private Date payDate; + @Excel(name = "创建日期", orderNum = "12", width = 20, format = "yyyy-MM-dd HH:mm:ss") @io.swagger.annotations.ApiModelProperty(value="创建时间",name="createtime") private Date createtime; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java index 20ea31276..b9a945c80 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxRentContract.java @@ -285,9 +285,11 @@ public class WxRentContract extends TenantEntity { @io.swagger.annotations.ApiModelProperty(value = "租期(月)", name = "lease") private Integer lease; - @io.swagger.annotations.ApiModelProperty(value = "类型", name = "type") + @io.swagger.annotations.ApiModelProperty(value = "类型EnumRentContractType", name = "type") private Integer type; @TableField(exist = false) + private String typeName; + @TableField(exist = false) private List typeList; @io.swagger.annotations.ApiModelProperty(value = "调整比例", name = "adjustRatio") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java index e791a633d..afa878e5d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java @@ -41,4 +41,30 @@ public enum EnumBillAction { public String getMessage() { return message; } + + public String getDescription(String oldMoney,String newMoney) { + StringBuffer sb = new StringBuffer("[").append(this.message).append("]"); + if (code.intValue() == SELF_SERVICE_PAY.code.intValue()) { + sb.append(newMoney).append("元"); + }else if (code.intValue() == UPDATE_BILL.code.intValue()) { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + }else if (code.intValue() == OFFLINE_PAY.code.intValue()) { + sb.append(newMoney).append("元"); + }else if (code.intValue() == DEPOSIT_PAY.code.intValue()) { + sb.append(newMoney).append("元"); + }else if (code.intValue() == DEPOSIT_RETURN.code.intValue()) { + sb.append(newMoney).append("元"); + }else if (code.intValue() == DEPOSIT_MODIFY.code.intValue()) { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + }else if (code.intValue() == UPDATE_LATE_PAY_MONEY.code.intValue()) { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + }else if (code.intValue() == UPDATE_SETTLE_MONEY.code.intValue()) { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + }else if (code.intValue() == UPDATE_SERVICE_MONEY.code.intValue()) { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + }else { + sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); + } + return sb.toString(); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java index 460d7c826..e59c7a029 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDailyService.java @@ -2,6 +2,8 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDaily; import com.iformall.domain.po.WxBillRent; @@ -69,5 +71,9 @@ public interface WxBillDailyService { List getMerchantIds(WxBillDaily wxBillDaily); WxBillHotNotify getBillHotNotify(WxBillDaily wxBillDaily); + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java index 417ea1460..6be7bbcc5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillDepositService.java @@ -7,6 +7,8 @@ import javax.servlet.http.HttpServletResponse; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillDeposit; import com.iformall.domain.po.WxBillRent; @@ -67,5 +69,9 @@ public interface WxBillDepositService { WxBillHotNotify getBillHotNotify(WxBillDeposit wxBillDeposit); void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillDeposit wxBillDeposit); + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java index 486c70696..c0cf6d563 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherDepositService.java @@ -2,6 +2,8 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOtherDeposit; import com.iformall.domain.po.WxBillRent; @@ -68,5 +70,9 @@ public interface WxBillOtherDepositService { List getMerchantIds(WxBillOtherDeposit wxBillDeposit); WxBillHotNotify getBillHotNotify(WxBillOtherDeposit wxBillDeposit); + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java index 303cc52bb..fa0a478ef 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillOtherService.java @@ -2,6 +2,8 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillOther; import com.iformall.domain.po.WxBillRent; @@ -64,5 +66,9 @@ public interface WxBillOtherService { List getMerchantIds(WxBillOther wxBillOther); WxBillHotNotify getBillHotNotify(WxBillOther wxBillOther); + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) ; + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java index 35bd16543..01f88b7ac 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyDepositService.java @@ -7,6 +7,8 @@ import javax.servlet.http.HttpServletResponse; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillPropertyDeposit; import com.iformall.domain.po.WxBillRent; @@ -70,4 +72,8 @@ public interface WxBillPropertyDepositService { WxBillHotNotify getBillHotNotify(WxBillPropertyDeposit deposit); public void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillPropertyDeposit deposit) ; + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java index a8d5c8b51..367d89e60 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java @@ -2,6 +2,8 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxBillRent; @@ -79,4 +81,8 @@ public interface WxBillPropertyService { List getMerchantIds(WxBillProperty wxBillProperty); WxBillHotNotify getBillHotNotify(WxBillProperty wxBillProperty); + + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java index 4d1501433..267771656 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentManageService.java @@ -2,6 +2,8 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxBillRentManage; @@ -76,4 +78,8 @@ public interface WxBillRentManageService { List getMerchantIds(WxBillRentManage wxBillRentManage); WxBillHotNotify getBillHotNotify(WxBillRentManage wxBillRentManage); + + void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid); + + public void updatePay(WxBillPayDTO dto, MallUserInfo user); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java index 99d0e59c4..6a407f187 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java @@ -2,11 +2,14 @@ package com.iformall.service; import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBillHotNotify; import com.iformall.domain.vo.WxBillSum; +import com.iformall.enums.EnumBillAction; import java.util.List; @@ -80,5 +83,9 @@ public interface WxBillRentService { WxBillHotNotify getBillHotNotify(WxBillRent wxBillRent); + void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid); + + void updatePay(WxBillPayDTO dto,MallUserInfo user); + } diff --git a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java index 705a37880..02209a401 100644 --- a/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java +++ b/mallinkService/src/main/java/com/iformall/service/helper/WxBillAllHelper.java @@ -19,6 +19,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.github.pagehelper.PageInfo; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDaily; import com.iformall.domain.po.WxBillDeposit; import com.iformall.domain.po.WxBillOther; @@ -33,11 +37,13 @@ import com.iformall.domain.po.base.WxBillBaseEntity; import com.iformall.domain.vo.WxBillHotNotify; import com.iformall.domain.vo.WxBillSum; import com.iformall.domain.vo.WxShopVo; +import com.iformall.enums.EnumBillAction; import com.iformall.enums.EnumBillAllType; import com.iformall.enums.EnumBillDailyType; import com.iformall.enums.EnumBillType; import com.iformall.enums.EnumRentContractManageFeeType; import com.iformall.enums.EnumYesOrNo; +import com.iformall.service.WxBillActionService; import com.iformall.service.WxBillDailyService; import com.iformall.service.WxBillDepositService; import com.iformall.service.WxBillOtherDepositService; @@ -615,7 +621,50 @@ public class WxBillAllHelper { if (null != otherDepositNotify) { retList.add(otherDepositNotify); } - return retList; } + + public void updateReceivePay(WxBillReceiveUpdateDTO dto,MallUserInfo user,boolean forcePaid) { + if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT.getCode().intValue()) { + wxBillRentService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode().intValue()) { + wxBillRentManageService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_OPERATION_MANAGE.getCode().intValue()) { + wxBillRentManageService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_DEPOSIT.getCode().intValue()) { + wxBillRentDepositService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY.getCode().intValue()) { + wxBillPropertyService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY_DEPOSIT.getCode().intValue()) { + wxBillPropertyDepositService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.DAILY.getCode().intValue()) { + wxBillDailyService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER.getCode().intValue()) { + wxBillOtherService.updateReceivePay(dto, user, forcePaid); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER_DEPOSIT.getCode().intValue()) { + wxBillOtherDepositService.updateReceivePay(dto, user, forcePaid); + } + } + + public void updatePay(WxBillPayDTO dto,MallUserInfo user) { + if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT.getCode().intValue()) { + wxBillRentService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode().intValue()) { + wxBillRentManageService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_OPERATION_MANAGE.getCode().intValue()) { + wxBillRentManageService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.RENT_DEPOSIT.getCode().intValue()) { + wxBillRentDepositService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY.getCode().intValue()) { + wxBillPropertyService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.PROPERTY_DEPOSIT.getCode().intValue()) { + wxBillPropertyDepositService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.DAILY.getCode().intValue()) { + wxBillDailyService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER.getCode().intValue()) { + wxBillOtherService.updatePay(dto, user); + }else if (dto.getBillTypeValue().intValue() == EnumBillAllType.OTHER_DEPOSIT.getCode().intValue()) { + wxBillOtherDepositService.updatePay(dto, user); + } + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java index 57a627563..90ca197b0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillActionServiceImpl.java @@ -53,6 +53,9 @@ public class WxBillActionServiceImpl implements WxBillActionService { WxBillAction wxBillAction = new WxBillAction(); wxBillAction.setId(idWorker.nextId()); wxBillAction.setBillId(action.getBillId()); + wxBillAction.setBillType(action.getBillType()); + wxBillAction.setOldMoney(action.getOldMoney()); + wxBillAction.setNewMoney(action.getNewMoney()); wxBillAction.setDetails(action.getDetails()); wxBillAction.setAction(action.getAction()); wxBillAction.setUserId(user.getId()); @@ -60,6 +63,7 @@ public class WxBillActionServiceImpl implements WxBillActionService { wxBillAction.setPhone(user.getPhone()); wxBillAction.updateTenantInfo(user); wxBillAction.setPayDate(action.getPayDate()); + wxBillAction.setRemark(action.getRemark()); Date date = new Date(); wxBillAction.setCreatetime(date); wxBillAction.setUpdatetime(date); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java new file mode 100644 index 000000000..b0295a867 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java @@ -0,0 +1,37 @@ +package com.iformall.service.impl; + +import java.util.Date; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.iformall.domain.po.MallUserInfo; +import com.iformall.domain.po.WxBillAction; +import com.iformall.enums.EnumBillAction; +import com.iformall.enums.EnumBillAllType; +import com.iformall.service.WxBillActionService; + +@Service +public class WxBillBaseService{ + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxBillActionService wxBillActionService; + + protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,Date payDate,String remark, MallUserInfo mallUserInfo) { + WxBillAction wxBillAction = new WxBillAction(); + wxBillAction.setBillId(billId); + wxBillAction.setBillType(billType); + wxBillAction.setOldMoney(oldMoney); + wxBillAction.setNewMoney(newMoney); + wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney)); + wxBillAction.setAction(billAction.getCode()); + wxBillAction.setPayDate(payDate); + wxBillAction.setRemark(remark); + wxBillActionService.modifyBill(wxBillAction, mallUserInfo); + } + +} diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java index 1a3629ace..9647fc9f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDailyServiceImpl.java @@ -8,6 +8,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.WxBillDailyExportVo; @@ -48,7 +50,7 @@ import java.util.concurrent.TimeUnit; * @author gongbiao */ @Service -public class WxBillDailyServiceImpl implements WxBillDailyService { +public class WxBillDailyServiceImpl extends WxBillBaseService implements WxBillDailyService { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -483,5 +485,62 @@ public class WxBillDailyServiceImpl implements WxBillDailyService { updateQueryParam(record); return wxBillDailyMapper.getBillHotNotify(record); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillDaily dbBill = wxBillDailyMapper.selectById(dto.getId()); + WxBillDaily wxBillDaily = new WxBillDaily(); + wxBillDaily.setId(dto.getId()); + wxBillDaily.updateTenantInfo(dto); + wxBillDaily.setUpdatetime(new Date()); + if (forcePaid) { + wxBillDaily.setReceivePay(dbBill.getPay()); + wxBillDaily.setStatus(EnumBillStatus.PAID.getCode()); + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), + dbBill.getPay(),null, dto.getRemark(), user); + }else { + if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { + wxBillDaily.setLatePayPrice(dto.getNewLatePrice()); + wxBillDailyMapper.updateById(wxBillDaily); + this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), + dto.getOldLatePrice(), dto.getNewLatePrice(),null,dto.getRemark(), user); + } else { + //租赁账单更新 + wxBillDaily.setReceivePay(dto.getNewPrice()); + Date payDate = null; + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillDaily.setStatus(EnumBillStatus.PAID.getCode()); + payDate = new Date(); + } + wxBillDailyMapper.updateById(wxBillDaily); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),payDate, dto.getRemark(), user); + } + } + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillDaily dbBill = wxBillDailyMapper.selectById(dto.getId()); + WxBillDaily wxBillRent = new WxBillDaily(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillDailyMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(), dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java index 78dfe3609..7dac2ddde 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillDepositServiceImpl.java @@ -8,6 +8,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDeposit; @@ -60,7 +62,7 @@ import javax.servlet.http.HttpServletResponse; * @author gongbiao */ @Service -public class WxBillDepositServiceImpl implements WxBillDepositService { +public class WxBillDepositServiceImpl extends WxBillBaseService implements WxBillDepositService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -422,6 +424,56 @@ public class WxBillDepositServiceImpl implements WxBillDepositService { excelService.exportExcel(billRentList.getList(),null, billName, WxBillDeposit.class, billName + ".xlsx", response, false); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillDeposit dbBill = wxBillDepositMapper.selectById(dto.getId()); + WxBillDeposit wxBillDeposit = new WxBillDeposit(); + wxBillDeposit.setId(dto.getId()); + wxBillDeposit.updateTenantInfo(dto); + wxBillDeposit.setUpdatetime(new Date()); + String billDepositOldPrce = dto.getOldPrice(); + String billDepositNewPrce = dto.getNewPrice(); + Date payDate = null; + if (forcePaid) { + wxBillDeposit.setReceivePay(dbBill.getPay()); + wxBillDeposit.setStatus(EnumBillStatus.PAID.getCode()); + billDepositOldPrce = dbBill.getPay(); + billDepositNewPrce = dbBill.getPay(); + }else { + wxBillDeposit.setReceivePay(dto.getNewPrice()); + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillDeposit.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillDeposit.setUpdatetime(new Date()); + payDate = new Date(); + } + this.addBillAction(EnumBillAction.DEPOSIT_MODIFY, dto.getBillTypeValue(),dto.getId(), billDepositOldPrce, + billDepositNewPrce,payDate, dto.getRemark(), user); + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillDeposit dbBill = wxBillDepositMapper.selectById(dto.getId()); + WxBillDeposit wxBillRent = new WxBillDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillDepositMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(), dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java index e95dbf4ea..d361645df 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherDepositServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDaily; @@ -51,7 +53,7 @@ import java.util.Map; * @author gongbiao */ @Service -public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService { +public class WxBillOtherDepositServiceImpl extends WxBillBaseService implements WxBillOtherDepositService { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -448,5 +450,51 @@ public class WxBillOtherDepositServiceImpl implements WxBillOtherDepositService updateQueryParam(wxBillDeposit); return wxBillOtherDepositMapper.getBillHotNotify(wxBillDeposit); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectById(dto.getId()); + WxBillOtherDeposit wxBillOtherDeposit = new WxBillOtherDeposit(); + wxBillOtherDeposit.setId(dto.getId()); + wxBillOtherDeposit.updateTenantInfo(dto); + wxBillOtherDeposit.setUpdatetime(new Date()); + if (forcePaid) { + wxBillOtherDeposit.setReceivePay(dbBill.getPay()); + wxBillOtherDeposit.setStatus(EnumBillStatus.PAID.getCode()); + }else { + wxBillOtherDeposit.setReceivePay(dto.getNewPrice()); + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillOtherDeposit.setStatus(EnumBillStatus.PAID.getCode()); + } + } + wxBillOtherDepositMapper.updateById(wxBillOtherDeposit); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),null, dto.getRemark(), user); + + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectById(dto.getId()); + WxBillOtherDeposit wxBillRent = new WxBillOtherDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillOtherDepositMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(), dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java index fb9d6b363..1cf97e1b7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillOtherServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDaily; @@ -51,7 +53,7 @@ import java.util.Map; * @author gongbiao */ @Service -public class WxBillOtherServiceImpl implements WxBillOtherService { +public class WxBillOtherServiceImpl extends WxBillBaseService implements WxBillOtherService { private Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -392,4 +394,49 @@ public class WxBillOtherServiceImpl implements WxBillOtherService { updateQueryParam(wxBillOther); return wxBillOtherMapper.getBillHotNotify(wxBillOther); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillOther dbBill = wxBillOtherMapper.selectById(dto.getId()); + WxBillOther wxBillOther = new WxBillOther(); + wxBillOther.setId(dto.getId()); + wxBillOther.updateTenantInfo(dto); + wxBillOther.setUpdatetime(new Date()); + if (forcePaid) { + wxBillOther.setReceivePay(dbBill.getPay()); + wxBillOther.setStatus(EnumBillStatus.PAID.getCode()); + }else { + wxBillOther.setReceivePay(dto.getNewPrice()); + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillOther.setStatus(EnumBillStatus.PAID.getCode()); + } + } + wxBillOtherMapper.updateById(wxBillOther); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),null, dto.getRemark(), user); + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillOther dbBill = wxBillOtherMapper.selectById(dto.getId()); + WxBillOther wxBillRent = new WxBillOther(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillOtherMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(), dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java index 9ab6cf880..ff0593464 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyDepositServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDeposit; @@ -54,7 +56,7 @@ import javax.servlet.http.HttpServletResponse; * @author gongbiao */ @Service -public class WxBillPropertyDepositServiceImpl implements WxBillPropertyDepositService { +public class WxBillPropertyDepositServiceImpl extends WxBillBaseService implements WxBillPropertyDepositService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -400,4 +402,54 @@ public class WxBillPropertyDepositServiceImpl implements WxBillPropertyDepositSe excelService.exportExcel(billRentList.getList(),null, billName, WxBillPropertyDeposit.class, billName + ".xlsx", response, false); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectById(dto.getId()); + WxBillPropertyDeposit wxBillPropertyDeposit = new WxBillPropertyDeposit(); + wxBillPropertyDeposit.setId(dto.getId()); + wxBillPropertyDeposit.updateTenantInfo(dto); + wxBillPropertyDeposit.setUpdatetime(new Date()); + String billPropertyDepositOldPrce = dto.getOldPrice(); + String billPropertyDepositNewPrce = dto.getNewPrice(); + if (forcePaid) { + wxBillPropertyDeposit.setReceivePay(dbBill.getPay()); + wxBillPropertyDeposit.setStatus(EnumBillStatus.PAID.getCode()); + billPropertyDepositOldPrce = dbBill.getPay(); + billPropertyDepositNewPrce = dbBill.getPay(); + }else { + wxBillPropertyDeposit.setReceivePay(dto.getNewPrice()); + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillPropertyDeposit.setStatus(EnumBillStatus.PAID.getCode()); + } + } + wxBillPropertyDeposit.setUpdatetime(new Date()); + wxBillPropertyDepositMapper.updateById(wxBillPropertyDeposit); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + billPropertyDepositOldPrce, billPropertyDepositNewPrce,null, dto.getRemark(), user); + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectById(dto.getId()); + WxBillPropertyDeposit wxBillRent = new WxBillPropertyDeposit(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillPropertyDepositMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(), dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java index be1de85b3..464ea604f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; @@ -40,7 +42,7 @@ import java.util.stream.Collectors; * @author gongbiao */ @Service -public class WxBillPropertyServiceImpl implements WxBillPropertyService { +public class WxBillPropertyServiceImpl extends WxBillBaseService implements WxBillPropertyService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -536,4 +538,61 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { updateQueryParam(wxBillProperty); return wxBillPropertyMapper.getBillHotNotify(wxBillProperty); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillProperty dbBill = wxBillPropertyMapper.selectById(dto.getId()); + WxBillProperty wxBillProperty = new WxBillProperty(); + wxBillProperty.setId(dto.getId()); + wxBillProperty.updateTenantInfo(dto); + wxBillProperty.setUpdatetime(new Date()); + if (forcePaid) { + wxBillProperty.setReceivePay(dbBill.getPay()); + wxBillProperty.setStatus(EnumBillStatus.PAID.getCode()); + wxBillPropertyMapper.updateById(wxBillProperty); + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dbBill.getPay(), dbBill.getPay(),null,dto.getRemark(), user); + }else { + if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { + wxBillProperty.setLatePayPrice(dto.getNewLatePrice()); + wxBillPropertyMapper.updateById(wxBillProperty); + this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), + dto.getOldLatePrice(), dto.getNewLatePrice(),null,dto.getRemark(), user); + } else { + Date payDate = null; + wxBillProperty.setReceivePay(dto.getNewPrice()); + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillProperty.setStatus(EnumBillStatus.PAID.getCode()); + payDate = new Date(); + } + wxBillPropertyMapper.updateById(wxBillProperty); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),payDate,dto.getRemark(), user); + } + } + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillProperty dbBill = wxBillPropertyMapper.selectById(dto.getId()); + WxBillProperty wxBillRent = new WxBillProperty(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillPropertyMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(),dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java index 2cae0e4cc..c9fa06e53 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentManageServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillAction; import com.iformall.domain.po.WxBillDeposit; @@ -50,7 +52,7 @@ import java.util.stream.Collectors; * @author gongbiao */ @Service -public class WxBillRentManageServiceImpl implements WxBillRentManageService { +public class WxBillRentManageServiceImpl extends WxBillBaseService implements WxBillRentManageService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -451,5 +453,62 @@ public class WxBillRentManageServiceImpl implements WxBillRentManageService { updateQueryParam(wxBillRentManage); return wxBillRentManageMapper.getBillHotNotify(wxBillRentManage); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillRentManage dbBill = wxBillRentManageMapper.selectById(dto.getId()); + WxBillRentManage wxBillRent = new WxBillRentManage(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + if (forcePaid) { + wxBillRent.setReceivePay(dbBill.getPay()); + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + wxBillRentManageMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,dto.getRemark(), user); + }else { + if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { + wxBillRent.setLatePayPrice(dto.getNewLatePrice()); + wxBillRentManageMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(),dto.getId(), + dto.getOldLatePrice(), dto.getNewLatePrice(),null,dto.getRemark(), user); + } else { + //租赁账单更新 + wxBillRent.setReceivePay(dto.getNewPrice()); + Date payDate = null; + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + payDate = new Date(); + } + wxBillRentManageMapper.updateById(wxBillRent); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),payDate,dto.getRemark(), user); + } + } + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillRentManage dbBill = wxBillRentManageMapper.selectById(dto.getId()); + WxBillRentManage wxBillRent = new WxBillRentManage(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillRentManageMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(),dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java index bd0dba75b..b6920cacd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -7,6 +7,8 @@ import com.iformall.common.ErrorCode; import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.WxBillPayDTO; +import com.iformall.domain.dto.WxBillReceiveUpdateDTO; import com.iformall.domain.po.*; import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.vo.RatioVo; @@ -44,7 +46,7 @@ import java.util.stream.Collectors; * @author gongbiao */ @Service -public class WxBillRentServiceImpl implements WxBillRentService { +public class WxBillRentServiceImpl extends WxBillBaseService implements WxBillRentService { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -181,75 +183,76 @@ public class WxBillRentServiceImpl implements WxBillRentService { } return new ResultData(Result.SUCCESS, "保存租赁账单成功"); } else { - logger.info("更新租赁账单"); - WxBillRent wxBillRent = wxBillRentMapper.selectById(record.getId()); - if(wxBillRent==null){ - return new ResultData(ErrorCode.BILL_RENT_IS_NOT_FOUND); - } - - String price = ""; - String message =""; - if(record.getServiceChargePayUpdate() != null){ - wxBillRent.setServiceChargePay(record.getServiceChargePayUpdate()); - String latePayPrice = StringUtils.isBlank(wxBillRent.getLatePayPrice()) ? "0" : wxBillRent.getLatePayPrice(); - //wxBillRent.setOwe(new BigDecimal(wxBillRent.getReceivePay()).add(new BigDecimal(latePayPrice)) - // .add(new BigDecimal(wxBillRent.getServiceChargePay())).subtract(new BigDecimal(wxBillRent.getPay())).toPlainString()); - //wxBillRent.setOwe(new BigDecimal(wxBillRent.getReceivePay()).subtract(new BigDecimal(wxBillRent.getPay())).toPlainString()); - }else{ - String addpay = wxBillRent.getPay(); - wxBillRent.setRevenue(record.getRevenue()); - wxBillRent.setLatePayRatio(record.getLatePayRatio()); - wxBillRent.setLatePayTime(record.getLatePayTime()); - wxBillRent.setLatePayStatus(record.getLatePayStatus()); - wxBillRent.setPay(record.getPay()); - wxBillRent.setReceivePay(record.getReceivePay()); - //wxBillRent.setOwe(new BigDecimal(record.getRealReceivePay()).subtract(new BigDecimal(record.getPay())).toPlainString()); - //wxBillRent.setOwe(new BigDecimal(record.getReceivePay()).subtract(new BigDecimal(record.getPay())).toPlainString()); - if (record.getPay().equals(record.getRealReceivePay())) { - wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); - Date payDate = record.getPayDate(); - Date receiveDate = wxBillRent.getReceiveDate(); - wxBillRent.setExpiredDay(0L); - if (payDate.after(receiveDate)) { - int expiredDay = DateUtils.daysBetween(receiveDate, payDate); - wxBillRent.setExpiredDay((long) expiredDay); - } - } - wxBillRent.setPayDate(record.getPayDate()); - wxBillRent.setUpdatetime(date); - wxBillRent.setPayWay(record.getPayWay()); - price = new BigDecimal(record.getPay()).subtract(new BigDecimal(addpay)).toPlainString(); - } - - try { - wxBillRentMapper.updateById(wxBillRent); - } catch (Exception e) { - logger.error("更新租赁账单失败,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); - } - //日志 - WxBillAction wxBillAction = new WxBillAction(); - wxBillAction.setBillId(wxBillRent.getId()); - if(record.getServiceChargePayUpdate() != null){ - wxBillAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); - wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); - }else{ - wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); - message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); - wxBillAction.setDetails(message + price + "元"); - } - wxBillAction.setUserId(user.getId()); - wxBillAction.setUserName(user.getName()); - wxBillAction.setPhone(user.getPhone()); - wxBillAction.updateTenantInfo(wxBillRent); - wxBillAction.setPayDate(wxBillRent.getPayDate()); - try { - wxBillActionService.save(wxBillAction); - } catch (Exception e) { - logger.error("添加租赁账单行为日志,e:" + e.getMessage()); - throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); - } - return new ResultData(Result.SUCCESS, "更新租赁账单成功", wxBillRent); +// logger.info("更新租赁账单"); +// WxBillRent wxBillRent = wxBillRentMapper.selectById(record.getId()); +// if(wxBillRent==null){ +// return new ResultData(ErrorCode.BILL_RENT_IS_NOT_FOUND); +// } +// +// String price = ""; +// String message =""; +// if(record.getServiceChargePayUpdate() != null){ +// wxBillRent.setServiceChargePay(record.getServiceChargePayUpdate()); +// String latePayPrice = StringUtils.isBlank(wxBillRent.getLatePayPrice()) ? "0" : wxBillRent.getLatePayPrice(); +// //wxBillRent.setOwe(new BigDecimal(wxBillRent.getReceivePay()).add(new BigDecimal(latePayPrice)) +// // .add(new BigDecimal(wxBillRent.getServiceChargePay())).subtract(new BigDecimal(wxBillRent.getPay())).toPlainString()); +// //wxBillRent.setOwe(new BigDecimal(wxBillRent.getReceivePay()).subtract(new BigDecimal(wxBillRent.getPay())).toPlainString()); +// }else{ +// String addpay = wxBillRent.getPay(); +// wxBillRent.setRevenue(record.getRevenue()); +// wxBillRent.setLatePayRatio(record.getLatePayRatio()); +// wxBillRent.setLatePayTime(record.getLatePayTime()); +// wxBillRent.setLatePayStatus(record.getLatePayStatus()); +// wxBillRent.setPay(record.getPay()); +// wxBillRent.setReceivePay(record.getReceivePay()); +// //wxBillRent.setOwe(new BigDecimal(record.getRealReceivePay()).subtract(new BigDecimal(record.getPay())).toPlainString()); +// //wxBillRent.setOwe(new BigDecimal(record.getReceivePay()).subtract(new BigDecimal(record.getPay())).toPlainString()); +// if (record.getPay().equals(record.getRealReceivePay())) { +// wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); +// Date payDate = record.getPayDate(); +// Date receiveDate = wxBillRent.getReceiveDate(); +// wxBillRent.setExpiredDay(0L); +// if (payDate.after(receiveDate)) { +// int expiredDay = DateUtils.daysBetween(receiveDate, payDate); +// wxBillRent.setExpiredDay((long) expiredDay); +// } +// } +// wxBillRent.setPayDate(record.getPayDate()); +// wxBillRent.setUpdatetime(date); +// wxBillRent.setPayWay(record.getPayWay()); +// price = new BigDecimal(record.getPay()).subtract(new BigDecimal(addpay)).toPlainString(); +// } +// +// try { +// wxBillRentMapper.updateById(wxBillRent); +// } catch (Exception e) { +// logger.error("更新租赁账单失败,e:" + e.getMessage()); +// throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); +// } +// //日志 +// WxBillAction wxBillAction = new WxBillAction(); +// wxBillAction.setBillId(wxBillRent.getId()); +// if(record.getServiceChargePayUpdate() != null){ +// wxBillAction.setDetails(record.getServiceChargePayBefore()+"元变更为" +record.getServiceChargePayUpdate()+"元"); +// wxBillAction.setAction(EnumBillAction.UPDATE_SERVICE_MONEY.getCode()); +// }else{ +// wxBillAction.setAction(EnumBillAction.OFFLINE_PAY.getCode()); +// message = EnumBillPayWay.getEnum(record.getPayWay()).getMessage(); +// wxBillAction.setDetails(message + price + "元"); +// } +// wxBillAction.setUserId(user.getId()); +// wxBillAction.setUserName(user.getName()); +// wxBillAction.setPhone(user.getPhone()); +// wxBillAction.updateTenantInfo(wxBillRent); +// wxBillAction.setPayDate(wxBillRent.getPayDate()); +// try { +// wxBillActionService.save(wxBillAction); +// } catch (Exception e) { +// logger.error("添加租赁账单行为日志,e:" + e.getMessage()); +// throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); +// } +// return new ResultData(Result.SUCCESS, "更新租赁账单成功", wxBillRent); + return new ResultData(); } } @@ -304,8 +307,12 @@ public class WxBillRentServiceImpl implements WxBillRentService { //周期 Map result = new HashMap<>(3); result.put("rent", rent); + if (null != wxRentContract) { + wxRentContract.setTypeName(EnumRentContractType.getEnum(wxRentContract.getType()).getMessage()); + } result.put("wxRentContract", wxRentContract); result.put("deposit", deposit); + //解单金额 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -566,6 +573,8 @@ public class WxBillRentServiceImpl implements WxBillRentService { // e.setLatePayRatio(Integer.parseInt(rent.getLatePayRatio())); // } e.setLatePayDay(rent.getLatePayDay()); + e.setShopNumber(rent.getRentInfoShopNumber()); + e.setRentShopType(rent.getRentShopType()); } //手续费 = 合同应收+手续费+滞纳金 @@ -577,6 +586,8 @@ public class WxBillRentServiceImpl implements WxBillRentService { e.setDepositStatus(bd.getStatus()); } + + } } @@ -622,4 +633,61 @@ public class WxBillRentServiceImpl implements WxBillRentService { updateQueryParam(wxBillRent); return wxBillRentMapper.getBillHotNotify(wxBillRent); } + + @Override + public void updateReceivePay(WxBillReceiveUpdateDTO dto, MallUserInfo user, boolean forcePaid) { + WxBillRent dbBill = wxBillRentMapper.selectById(dto.getId()); + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + if (forcePaid) { + wxBillRent.setReceivePay(dbBill.getPay()); + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + wxBillRentMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,dto.getRemark(), user); + }else { + if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { + wxBillRent.setLatePayPrice(dto.getNewLatePrice()); + wxBillRentMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), + dto.getOldLatePrice(), dto.getNewLatePrice(),null,dto.getRemark(), user); + } else { + //租赁账单更新 + wxBillRent.setReceivePay(dto.getNewPrice()); + Date payDate = null; + if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) >= 0) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + payDate = new Date(); + } + wxBillRentMapper.updateById(wxBillRent); + //账单日志 + this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), + dto.getOldPrice(), dto.getNewPrice(),payDate,dto.getRemark(), user); + } + } + } + + @Override + public void updatePay(WxBillPayDTO dto, MallUserInfo user) { + WxBillRent dbBill = wxBillRentMapper.selectById(dto.getId()); + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setId(dto.getId()); + wxBillRent.updateTenantInfo(dto); + wxBillRent.setUpdatetime(new Date()); + BigDecimal opay = new BigDecimal(0); + if (StringUtils.isNotBlank(dbBill.getPay())) { + opay = new BigDecimal(dbBill.getPay()); + } + opay = opay.add(new BigDecimal(dto.getAddpay())); + wxBillRent.setPay(opay.toPlainString()); + if (opay.compareTo(new BigDecimal(dbBill.getReceivePay())) >= 0 ) { + wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); + } + wxBillRent.setPayDate(new Date()); + wxBillRent.setPayWay(dto.getPayWay()); + wxBillRentMapper.updateById(wxBillRent); + this.addBillAction(EnumBillAction.OFFLINE_PAY, dto.getBillTypeValue(),dto.getId(), + dto.getAddpay(), dto.getAddpay(),wxBillRent.getPayDate(),dto.getRemark(), user); + } } diff --git a/mallinkService/src/main/resources/mapper/WxBillActionMapper.xml b/mallinkService/src/main/resources/mapper/WxBillActionMapper.xml index 2a7a273fe..5227fed27 100644 --- a/mallinkService/src/main/resources/mapper/WxBillActionMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillActionMapper.xml @@ -5,7 +5,10 @@ + + + @@ -14,10 +17,11 @@ + - `id`,`tenant_id`,`parent_tenant_id`,`bill_id`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date` + `id`,`tenant_id`,`parent_tenant_id`,`bill_type`,`bill_id`,`old_money`,`new_money`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date`,`remark` @@ -35,6 +39,10 @@ and `parent_tenant_id` = #{parentTenantId} + + and `bill_type` = #{billType} + + and `action` = #{action}