diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index df366b776..4d8ff8b42 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -2,19 +2,19 @@ package com.iformall.controller.contract; import com.iformall.annotation.SystemControllerLog; import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.controller.base.BaseController; import com.iformall.domain.po.*; +import com.iformall.enums.EnumBillAction; import com.iformall.enums.EnumFromType; import com.iformall.enums.EnumIsPreview; import com.iformall.enums.EnumRentStartType; import com.iformall.exception.MallinkException; +import com.iformall.mapper.WxBillActionMapper; import com.iformall.mapper.WxRentContractMapper; -import com.iformall.service.WxBillRentService; -import com.iformall.service.WxMerchantService; -import com.iformall.service.WxPayAccountBillService; -import com.iformall.service.WxRentContractService; +import com.iformall.service.*; import com.iformall.utils.DateUtils; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; @@ -48,6 +49,42 @@ public class WxRentContractController extends BaseController { @Autowired private WxRentContractMapper wxRentContractMapper; + @Autowired + private WxBillActionMapper wxBillActionMapper; + @Autowired + private WxBillPropertyService wxBillPropertyService; + @GetMapping("test") + @SystemControllerLog(description = "获取两个时间相差,返回n月零n天") + public ResultData test(String startDate, String endDate) throws Exception{ + final IdWorker idWorker = IdWorker.get(); + List billRentList = wxBillRentService.findLatePayBill(); + for (WxBillRent wxBillRent : billRentList) { + WxBillAction billAction = new WxBillAction(); + billAction.setId(idWorker.nextId()); + billAction.setCreatetime(new Date()); + billAction.setUserName("系统端"); + billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); + billAction.setBillId(wxBillRent.getId()); + BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); + billAction.setDetails("系统计入"+ divide.toString()+"元"); + wxBillActionMapper.insertSelective(billAction); + } + + List billPropertyList = wxBillPropertyService.findLatePayBill(); + for (WxBillProperty wxBillRent : billPropertyList) { + WxBillAction billAction = new WxBillAction(); + billAction.setId(idWorker.nextId()); + billAction.setCreatetime(new Date()); + billAction.setUserName("系统端"); + billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); + billAction.setBillId(wxBillRent.getId()); + BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); + billAction.setDetails("系统计入"+ divide.toString()+"元"); + wxBillActionMapper.insertSelective(billAction); + } + return new ResultData(); + } + @GetMapping("getDateDiff") @ApiImplicitParams({ @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), diff --git a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java index feca5d3ba..26e06cb53 100644 --- a/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java +++ b/mallinkAdmin/src/main/java/com/iformall/tenant/TenantInfoImpl.java @@ -110,6 +110,10 @@ public class TenantInfoImpl implements TenantInfo { return true; if ("com.iformall.mapper.WxBusinessMapper.devoteList".equals(ms.getId())) return true; + + if ("com.iformall.mapper.WxBillRentMapper.findLatePayBill".equals(ms.getId())) + return true; + return false; } } diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907301447__L_ALTER_CONTENT.sql b/mallinkAdmin/src/main/resources/db/migration/V201907301447__L_ALTER_CONTENT.sql new file mode 100644 index 000000000..b7128be92 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907301447__L_ALTER_CONTENT.sql @@ -0,0 +1,2 @@ +alter table wx_bill_action modify `user_id` BIGINT(20) NULL DEFAULT NULL; +alter table wx_bill_action modify `phone` VARCHAR(50) NULL DEFAULT NULL; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java index 5e1e220df..10f5eb281 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/LatePayBillActionSchedule.java @@ -1,15 +1,20 @@ package com.iformall.schedule; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.vo.WxBillAll; -import com.iformall.mapper.WxMallMapper; -import com.iformall.service.WxBillAllService; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.WxBillAction; +import com.iformall.domain.po.WxBillProperty; +import com.iformall.domain.po.WxBillRent; +import com.iformall.enums.EnumBillAction; +import com.iformall.mapper.WxBillActionMapper; +import com.iformall.service.WxBillPropertyService; +import com.iformall.service.WxBillRentService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; - +import java.math.BigDecimal; +import java.util.Date; import java.util.List; /** @@ -17,31 +22,50 @@ import java.util.List; */ @Component public class LatePayBillActionSchedule { - private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired - private WxBillAllService wxBillAllService; - + private WxBillRentService wxBillRentService; @Autowired - private WxMallMapper wxMallMapper; + private WxBillPropertyService wxBillPropertyService; + @Autowired + private WxBillActionMapper wxBillActionMapper; /** - * 每天1点执行 + * 每天凌晨1点执行 */ @Scheduled(cron = "0 0 1 * * ?") public void updateBillStatus() { - logger.info("账单状态更新开始"); - - List wxMalls = wxMallMapper.findList(null); - for (WxMall wxMall : wxMalls) { - String tenantId = wxMall.getTenantId(); - WxBillAll wxBillAll = new WxBillAll(); - wxBillAll.setTenantId(tenantId); - wxBillAllService.updateBillStatus(wxBillAll); + logger.info("账单滞纳金更新开始"); + final IdWorker idWorker = IdWorker.get(); + List billRentList = wxBillRentService.findLatePayBill(); + for (WxBillRent wxBillRent : billRentList) { + WxBillAction billAction = new WxBillAction(); + billAction.setId(idWorker.nextId()); + billAction.setCreatetime(new Date()); + billAction.setUserName("系统端"); + billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); + billAction.setBillId(wxBillRent.getId()); + BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); + billAction.setDetails("系统计入"+ divide.toString()+"元"); + billAction.setUpdatetime(new Date()); + wxBillActionMapper.insertSelective(billAction); } - logger.info("账单状态更新结束"); + List billPropertyList = wxBillPropertyService.findLatePayBill(); + for (WxBillProperty wxBillRent : billPropertyList) { + WxBillAction billAction = new WxBillAction(); + billAction.setId(idWorker.nextId()); + billAction.setCreatetime(new Date()); + billAction.setUserName("系统端"); + billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); + billAction.setBillId(wxBillRent.getId()); + BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); + billAction.setDetails("系统计入"+ divide.toString()+"元"); + billAction.setUpdatetime(new Date()); + wxBillActionMapper.insertSelective(billAction); + } + logger.info("账单滞纳金更新结束"); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java index c0abcb402..d6d68c9fb 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillPropertyMapper.java @@ -44,4 +44,6 @@ public interface WxBillPropertyMapper extends CommonMapper void insertBills(List resultList); WxBillProperty selectBillOne(WxBillProperty propertyQuery); + + List findLatePayBill(); } diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java index 75d19c526..f0bcf65b7 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxBillRentMapper.java @@ -43,4 +43,5 @@ public interface WxBillRentMapper extends CommonMapper { WxBillRent selectBillOne(WxBillRent rentQuery); + List findLatePayBill(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java index dff950e39..af40a7896 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillPropertyService.java @@ -8,6 +8,7 @@ import com.iformall.domain.po.WxBillRent; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.List; import java.util.Map; /** @@ -62,4 +63,5 @@ public interface WxBillPropertyService { void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty); + List findLatePayBill(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java index 666bd1601..420352473 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxBillRentService.java @@ -63,4 +63,5 @@ public interface WxBillRentService { void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent); + List findLatePayBill(); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 13a8c1426..388547430 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -2,6 +2,7 @@ package com.iformall.service; import com.iformall.common.ResultData; import com.iformall.domain.po.WxBillProperty; +import com.iformall.domain.po.WxBillRent; import com.iformall.domain.po.WxMerchant; import com.iformall.domain.po.WxPropertyContract; import javax.servlet.http.HttpServletRequest; @@ -75,4 +76,6 @@ public interface WxPropertyContractService { List buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); WxPropertyContract getByBill(WxBillProperty billRent); + + } 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 21d9e0869..b7981daa4 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillPropertyServiceImpl.java @@ -291,4 +291,8 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { excelService.exportExcel(datalist, null, billName, WxBillProperty.class, billName + ".xlsx", response, false); } + @Override + public List findLatePayBill() { + return wxBillPropertyMapper.findLatePayBill(); + } } 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 a46aba6cc..76953adc6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillRentServiceImpl.java @@ -326,4 +326,9 @@ public class WxBillRentServiceImpl implements WxBillRentService { } excelService.exportExcel(datalist, null, billName, WxBillRent.class, billName + ".xlsx", response, false); } + + @Override + public List findLatePayBill() { + return wxBillRentMapper.findLatePayBill(); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 727d0ce75..7d07271e5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -1099,6 +1099,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService public WxPropertyContract getByBill(WxBillProperty billRent) { return wxPropertyContractMapper.getByBill(billRent); } + } diff --git a/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml b/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml index 8378ae694..2f7998bec 100644 --- a/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillPropertyMapper.xml @@ -224,5 +224,11 @@ AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} + + diff --git a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml index 34e62a0ad..d433f9668 100644 --- a/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillRentMapper.xml @@ -226,5 +226,10 @@ AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} +