From 0bca2d9026220ab600c2bfab3c245abd6d3ba306 Mon Sep 17 00:00:00 2001 From: lifenlong Date: Mon, 7 Jun 2021 15:50:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=97=E9=93=BA=E7=BB=93=E7=AE=97=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E5=BC=80=E5=A7=8B=E3=80=81=E7=BB=93=E6=9D=9F=E6=97=B6?= =?UTF-8?q?=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/impl/bill/BillExecute.java | 19 +++++++++++-------- .../mapper/DistributionOrderMapper.java | 6 +++--- .../serviceimpl/StoreFlowServiceImpl.java | 9 ++------- .../lili/modules/store/mapper/BillMapper.java | 9 +++++---- .../store/mapper/StoreDetailMapper.java | 10 +++++----- .../modules/store/service/BillService.java | 4 +++- .../store/serviceimpl/BillServiceImpl.java | 16 ++++++++++++---- 7 files changed, 41 insertions(+), 32 deletions(-) diff --git a/consumer/src/main/java/cn/lili/timetask/handler/impl/bill/BillExecute.java b/consumer/src/main/java/cn/lili/timetask/handler/impl/bill/BillExecute.java index 5905e279..1ff4cbcf 100644 --- a/consumer/src/main/java/cn/lili/timetask/handler/impl/bill/BillExecute.java +++ b/consumer/src/main/java/cn/lili/timetask/handler/impl/bill/BillExecute.java @@ -1,15 +1,15 @@ package cn.lili.timetask.handler.impl.bill; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.lili.modules.store.entity.dto.StoreSettlementDay; import cn.lili.modules.store.mapper.StoreDetailMapper; import cn.lili.modules.store.service.BillService; import cn.lili.timetask.handler.EveryDayExecute; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.util.List; /** @@ -25,7 +25,7 @@ public class BillExecute implements EveryDayExecute { @Autowired private BillService billService; //店铺详情 - @Autowired + @Resource private StoreDetailMapper storeDetailMapper; /** @@ -36,20 +36,23 @@ public class BillExecute implements EveryDayExecute { @Override public void execute() { - //获取当前时间的前一天 - String day = "," + DateUtil.date().dayOfMonth() + ","; + //获取当前天数 + int day = DateUtil.date().dayOfMonth(); //获取待结算商家列表 - List storeList = storeDetailMapper.getSettlementStore(new QueryWrapper().like("settlement_cycle", day)); + List storeList = storeDetailMapper.getSettlementStore(day); + + //获取当前时间 + DateTime endTime =DateUtil.date(); //批量商家结算 for (StoreSettlementDay storeSettlementDay : storeList) { //生成结算单 - billService.createBill(storeSettlementDay.getStoreId(), storeSettlementDay.getSettlementDay()); + billService.createBill(storeSettlementDay.getStoreId(), storeSettlementDay.getSettlementDay(),endTime); //修改店铺结算时间 - storeDetailMapper.updateSettlementDay(storeSettlementDay.getStoreId(), DateUtil.date()); + storeDetailMapper.updateSettlementDay(storeSettlementDay.getStoreId(), endTime); } } } diff --git a/framework/src/main/java/cn/lili/modules/distribution/mapper/DistributionOrderMapper.java b/framework/src/main/java/cn/lili/modules/distribution/mapper/DistributionOrderMapper.java index 02d8d8e1..7c415c0c 100644 --- a/framework/src/main/java/cn/lili/modules/distribution/mapper/DistributionOrderMapper.java +++ b/framework/src/main/java/cn/lili/modules/distribution/mapper/DistributionOrderMapper.java @@ -16,9 +16,9 @@ public interface DistributionOrderMapper extends BaseMapper { /** * 分销提佣 */ - @Select("UPDATE li_distribution AS d SET " + - "d.can_rebate =(can_rebate +(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder " + - "WHERE dorder.distribution_id = d.id AND dorder.distribution_order_status=#{distributionOrderStatus} AND dorder.settle_cycle<=#{settleCycle}))") + @Select("UPDATE li_distribution AS d " + + "SET d.can_rebate =(d.can_rebate +(SELECT SUM( dorder.rebate ) FROM li_distribution_order AS dorder WHERE dorder.distribution_id = d.id AND " + + "dorder.distribution_order_status=#{distributionOrderStatus} AND dorder.settle_cycle< #{settleCycle} ))") void rebate(String distributionOrderStatus, DateTime settleCycle); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java index 76a2d176..4b9f726b 100644 --- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/StoreFlowServiceImpl.java @@ -141,14 +141,9 @@ public class StoreFlowServiceImpl extends ServiceImpl lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(StoreFlow::getStoreId, storeId); - if (distribution) { - lambdaQueryWrapper.isNotNull(StoreFlow::getDistributionRebate); - } + lambdaQueryWrapper.isNotNull(distribution,StoreFlow::getDistributionRebate); lambdaQueryWrapper.between(StoreFlow::getCreateTime, startTime, endTime); - if (StringUtils.isNotEmpty(type)) { - lambdaQueryWrapper.eq(StoreFlow::getFlowType, type); - } - + lambdaQueryWrapper.eq(StringUtils.isNotEmpty(type),StoreFlow::getFlowType, type); return this.page(PageUtil.initPage(pageVO), lambdaQueryWrapper); } } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/store/mapper/BillMapper.java b/framework/src/main/java/cn/lili/modules/store/mapper/BillMapper.java index cc14d1e7..468ebc87 100644 --- a/framework/src/main/java/cn/lili/modules/store/mapper/BillMapper.java +++ b/framework/src/main/java/cn/lili/modules/store/mapper/BillMapper.java @@ -4,6 +4,7 @@ package cn.lili.modules.store.mapper; import cn.lili.modules.store.entity.dos.Bill; import cn.lili.modules.store.entity.vos.BillListVO; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; @@ -23,11 +24,11 @@ public interface BillMapper extends BaseMapper { @Select("SELECT SUM( final_price ) AS orderPrice,SUM( commission_price ) AS commissionPrice" + ",SUM( distribution_rebate ) AS distributionCommission,SUM( site_coupon_commission ) AS siteCouponCommission" + - ",SUM( bill_price ) AS billPrice FROM li_store_flow WHERE store_id=#{storeId} AND flow_type=#{flowType}") - Bill getOrderBill(String storeId, String flowType); + ",SUM( bill_price ) AS billPrice FROM li_store_flow ${ew.customSqlSegment}") + Bill getOrderBill(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); @Select("SELECT SUM( final_price ) AS refundPrice,SUM( commission_price ) AS refundCommissionPrice" + ",SUM( distribution_rebate ) AS distributionRefundCommission,SUM( site_coupon_commission ) AS siteCouponRefundCommission" + - ",SUM( bill_price ) AS billPrice FROM li_store_flow WHERE store_id=#{storeId} AND flow_type=#{flowType}") - Bill getRefundBill(String storeId, String flowType); + ",SUM( bill_price ) AS billPrice FROM li_store_flow ${ew.customSqlSegment}") + Bill getRefundBill(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/store/mapper/StoreDetailMapper.java b/framework/src/main/java/cn/lili/modules/store/mapper/StoreDetailMapper.java index 0b91d1fe..3751a445 100644 --- a/framework/src/main/java/cn/lili/modules/store/mapper/StoreDetailMapper.java +++ b/framework/src/main/java/cn/lili/modules/store/mapper/StoreDetailMapper.java @@ -6,10 +6,7 @@ import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO; import cn.lili.modules.store.entity.dto.StoreSettlementDay; import cn.lili.modules.store.entity.vos.StoreBasicInfoVO; import cn.lili.modules.store.entity.vos.StoreDetailVO; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; @@ -38,8 +35,11 @@ public interface StoreDetailMapper extends BaseMapper { "from li_store_detail s where s.store_id=#{storeId}") StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO(String storeId); - @Select("SELECT store_id,settlement_day FROM li_store_detail ${ew.customSqlSegment}") - List getSettlementStore(@Param(Constants.WRAPPER) Wrapper queryWrapper); + @Select("SELECT store_id,settlement_day FROM li_store_detail " + + "WHERE settlement_cycle LIKE concat(#{day},',%') " + + "OR settlement_cycle LIKE concat('%,',#{day},',%') " + + "OR settlement_cycle LIKE concat('%,',#{day})") + List getSettlementStore(int day); @Update("UPDATE li_store_detail SET settlement_day=#{dateTime} WHERE store_id=#{storeId}") void updateSettlementDay(String storeId, DateTime dateTime); diff --git a/framework/src/main/java/cn/lili/modules/store/service/BillService.java b/framework/src/main/java/cn/lili/modules/store/service/BillService.java index 2d0e40ee..5759a700 100644 --- a/framework/src/main/java/cn/lili/modules/store/service/BillService.java +++ b/framework/src/main/java/cn/lili/modules/store/service/BillService.java @@ -1,5 +1,6 @@ package cn.lili.modules.store.service; +import cn.hutool.core.date.DateTime; import cn.lili.common.vo.PageVO; import cn.lili.modules.order.order.entity.dos.StoreFlow; import cn.lili.modules.store.entity.dos.Bill; @@ -26,8 +27,9 @@ public interface BillService extends IService { * * @param storeId 商家ID * @param startTime 开始时间 + * @param endTime 结束时间 */ - void createBill(String storeId, Date startTime); + void createBill(String storeId, Date startTime, DateTime endTime); /** diff --git a/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java b/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java index 248e7c07..17712da7 100644 --- a/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/store/serviceimpl/BillServiceImpl.java @@ -1,5 +1,6 @@ package cn.lili.modules.store.serviceimpl; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; @@ -31,6 +32,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.Date; /** @@ -50,11 +52,11 @@ public class BillServiceImpl extends ServiceImpl implements Bi @Autowired private StoreFlowService storeFlowService; //结算单 - @Autowired + @Resource private BillMapper billMapper; @Override - public void createBill(String storeId, Date startTime) { + public void createBill(String storeId, Date startTime, DateTime endTime) { //获取结算店铺 StoreDetailVO store = storeDetailService.getStoreDetailVO(storeId); @@ -77,7 +79,10 @@ public class BillServiceImpl extends ServiceImpl implements Bi bill.setSn(SnowFlake.createStr("B")); //入账结算信息 - Bill orderBill = billMapper.getOrderBill(storeId, FlowTypeEnum.PAY.name()); + Bill orderBill = this.baseMapper.getOrderBill(new QueryWrapper() + .eq("store_id",storeId) + .eq("flow_type",FlowTypeEnum.PAY.name()) + .between("create_time",startTime,endTime)); Double orderPrice = 0D; if (orderBill != null) { bill.setOrderPrice(orderBill.getOrderPrice()); @@ -89,7 +94,10 @@ public class BillServiceImpl extends ServiceImpl implements Bi //退款结算信息 - Bill refundBill = billMapper.getRefundBill(storeId, FlowTypeEnum.REFUND.name()); + Bill refundBill = this.baseMapper.getRefundBill(new QueryWrapper() + .eq("store_id",storeId) + .eq("flow_type",FlowTypeEnum.REFUND.name()) + .between("create_time",startTime,endTime)); Double refundPrice = 0D; if(refundBill!=null){ bill.setRefundPrice(refundBill.getRefundPrice());