Browse Source

fix trade daily

release_toaliyun_real
lin 3 years ago
parent
commit
7a48005fef
4 changed files with 53 additions and 46 deletions
  1. +6
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java
  2. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java
  3. +1
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java
  4. +45
    -38
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 6
- 2
mallinkAdmin/src/main/java/com/iformall/controller/datatower/WxMerchantTradeDailyController.java View File

@@ -75,9 +75,13 @@ public class WxMerchantTradeDailyController extends BaseController {
@TenantIgnore
@ApiOperation("获得商场近30日解单")
@GetMapping("/listMonth")
public ResultData listMonth() {
public ResultData listMonth(@ModelAttribute WxMerchantTradeDaily wxMerchantTradeDaily) {
logger.debug("[" + getIpAddr() + "] WxMerchantTradeDailyController::listMonth");
return wxMerchantTradeDailyService.getVolumeTotalOfMonth(getTenantInfo());
if (null == wxMerchantTradeDaily) {
wxMerchantTradeDaily = new WxMerchantTradeDaily();
}
wxMerchantTradeDaily.updateTenantInfo(getTenantInfo());
return wxMerchantTradeDailyService.getVolumeTotalOfMonth(wxMerchantTradeDaily);
}

@TenantIgnore


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxMerchantTradeDailyService.java View File

@@ -76,7 +76,7 @@ public interface WxMerchantTradeDailyService {
/**
* 获取近30日解单数据(总额) ADMIN 端
*/
ResultData getVolumeTotalOfMonth(TenantEntity tenantEntity);
ResultData getVolumeTotalOfMonth(WxMerchantTradeDaily wxMerchantTradeDaily);
/**
* 根据实体查询分页列表
*


+ 1
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantTradeDailyServiceImpl.java View File

@@ -514,11 +514,7 @@ public class WxMerchantTradeDailyServiceImpl implements WxMerchantTradeDailyServ
}

@Override
public ResultData getVolumeTotalOfMonth(TenantEntity tenantEntity) {


WxMerchantTradeDaily wxMerchantTradeDaily = new WxMerchantTradeDaily();
wxMerchantTradeDaily.updateTenantInfo(tenantEntity);;
public ResultData getVolumeTotalOfMonth(WxMerchantTradeDaily wxMerchantTradeDaily) {

List<WxMerchantTradeDaily> recordList = wxMerchantTradeDailyMapper.findTotalListOfMonth(wxMerchantTradeDaily);
Map<String, WxMerchantTradeDaily> recordMap = recordList.stream().collect(Collectors.toMap(WxMerchantTradeDaily::getReportDate, r -> r));


+ 45
- 38
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -3254,47 +3254,54 @@ public class WxRentContractServiceImpl implements WxRentContractService {
bq.setIsDel(EnumDelStatus.NOT_DEL.getCode());
List<WxBillRent> billList = wxBillRentMapper.findList(bq);
if (null != billList && billList.size() > 0 ) {
WxBillRent br = billList.get(0);
//判断账单是否跨月,如果跨月,需要按照每月来查询解单金额
int needPay = 0 ;
int months = DateUtils.monthsBetween(br.getStarttime(), br.getEndtime());
if ( months > 0 ) {
for (int i = 0 ; i < months ; i++ ) {
int _money = 0;
if (i == 0 ) {
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(), br.getStarttime(),
DateUtils.getLastDayForMonth(br.getStarttime()));
}else if (i == (months-1)){
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(DateUtils.getTimeAfterMonths(i,br.getStarttime())),
DateUtils.getDayEnd(DateUtils.getTimeAfterDays(-1, br.getEndtime())));
for (int j = 0 ; j < billList.size(); j++) {
WxBillRent br = billList.get(j);
try {
//判断账单是否跨月,如果跨月,需要按照每月来查询解单金额
int needPay = 0 ;
int months = DateUtils.monthsBetween(br.getStarttime(), br.getEndtime());
if ( months > 0 ) {
for (int i = 0 ; i < months ; i++ ) {
int _money = 0;
if (i == 0 ) {
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(), br.getStarttime(),
DateUtils.getLastDayForMonth(br.getStarttime()));
}else if (i == (months-1)){
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(DateUtils.getTimeAfterMonths(i,br.getStarttime())),
DateUtils.getDayEnd(DateUtils.getTimeAfterDays(-1, br.getEndtime())));
}else {
Date _date = DateUtils.getTimeAfterMonths(i,br.getStarttime());
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(_date),
DateUtils.getLastDayForMonth(_date));
}
needPay = needPay + _money;
}
}else {
Date _date = DateUtils.getTimeAfterMonths(i,br.getStarttime());
_money = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
DateUtils.getFirstDayForCurrMonth(_date),
DateUtils.getLastDayForMonth(_date));
//同一个月
//合同账单结束的时间是00:00:00,取日期要取前一天
needPay = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
br.getStarttime(), DateUtils.getTimeAfterDays(-1, br.getEndtime()));
}
needPay = new BigDecimal(needPay).multiply(new BigDecimal(wxRentContract.getPayRatio()))
.divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).intValue();
Long oldNeedPay = br.getNeedPay();
if (needPay > br.getNeedPay()) {
Long newPay = Long.parseLong(String.valueOf(needPay));
br.setNeedPay(newPay);
br.setOwe(newPay);
br.setReceivePay(newPay);
br.setUpdatetime(new Date());
BigDecimal servicePay = new BigDecimal(br.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
br.setServiceChargePay(servicePay.intValue());
br.setOwe(br.getReceivePay() + br.getServiceChargePay());
br.setComments("原金额["+oldNeedPay+"(分)]小于解单金额,系统自动更新");
wxBillRentMapper.updateById(br);
}
needPay = needPay + _money;
}catch(Exception e) {
logger.error("calcuteByTradeDaily error:"+br.getId(),e);
}
}else {
//同一个月
//合同账单结束的时间是00:00:00,取日期要取前一天
needPay = sumTradeDailyBySameMonthDay(bq, wxRentContract.getMerchantId(),
br.getStarttime(), DateUtils.getTimeAfterDays(-1, br.getEndtime()));
}
needPay = new BigDecimal(needPay).multiply(new BigDecimal(wxRentContract.getPayRatio()))
.divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP).intValue();
if (needPay > br.getNeedPay()) {
Long newPay = Long.parseLong(String.valueOf(needPay));
br.setNeedPay(newPay);
br.setOwe(newPay);
br.setReceivePay(newPay);
br.setUpdatetime(new Date());
BigDecimal servicePay = new BigDecimal(br.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), 2, BigDecimal.ROUND_HALF_UP);
br.setServiceChargePay(servicePay.intValue());
br.setOwe(br.getReceivePay() + br.getServiceChargePay());
br.setComments("解单金额["+newPay+"(分)]大于合同计算金额,系统自动更新");
wxBillRentMapper.updateById(br);
}
}
}


Loading…
Cancel
Save