Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop

This commit is contained in:
Chopper 2021-06-07 16:13:50 +08:00
commit 203abe1087
7 changed files with 41 additions and 32 deletions

View File

@ -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<StoreSettlementDay> storeList = storeDetailMapper.getSettlementStore(new QueryWrapper<StoreSettlementDay>().like("settlement_cycle", day));
List<StoreSettlementDay> 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);
}
}
}

View File

@ -16,9 +16,9 @@ public interface DistributionOrderMapper extends BaseMapper<DistributionOrder> {
/**
* 分销提佣
*/
@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);
}

View File

@ -141,14 +141,9 @@ public class StoreFlowServiceImpl extends ServiceImpl<StoreFlowMapper, StoreFlow
LambdaQueryWrapper<StoreFlow> 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);
}
}

View File

@ -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<Bill> {
@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<Bill> 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<Bill> queryWrapper);
}

View File

@ -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<StoreDetail> {
"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<StoreSettlementDay> getSettlementStore(@Param(Constants.WRAPPER) Wrapper<StoreSettlementDay> 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<StoreSettlementDay> getSettlementStore(int day);
@Update("UPDATE li_store_detail SET settlement_day=#{dateTime} WHERE store_id=#{storeId}")
void updateSettlementDay(String storeId, DateTime dateTime);

View File

@ -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<Bill> {
*
* @param storeId 商家ID
* @param startTime 开始时间
* @param endTime 结束时间
*/
void createBill(String storeId, Date startTime);
void createBill(String storeId, Date startTime, DateTime endTime);
/**

View File

@ -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<BillMapper, Bill> 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<BillMapper, Bill> implements Bi
bill.setSn(SnowFlake.createStr("B"));
//入账结算信息
Bill orderBill = billMapper.getOrderBill(storeId, FlowTypeEnum.PAY.name());
Bill orderBill = this.baseMapper.getOrderBill(new QueryWrapper<Bill>()
.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<BillMapper, Bill> implements Bi
//退款结算信息
Bill refundBill = billMapper.getRefundBill(storeId, FlowTypeEnum.REFUND.name());
Bill refundBill = this.baseMapper.getRefundBill(new QueryWrapper<Bill>()
.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());