server/platform/src/main/java/com/doumee/api/business/WxBillController.java
@@ -6,7 +6,9 @@ import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.WxBill; import com.doumee.dao.business.model.WxBillDetail; import com.doumee.service.business.WxBillService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -16,6 +18,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; /** @@ -35,6 +38,14 @@ @PostMapping("/create") @RequiresPermissions("business:wxbill:create") public ApiResponse create(@RequestBody WxBill wxBill) { return ApiResponse.success(wxBillService.create(wxBill)); } @PreventRepeat @ApiOperation("æå¨åæ¥å¾®ä¿¡æå¤©è´¦åä¿¡æ¯") @PostMapping("/syncWxBill") @RequiresPermissions("business:wxbill:create") public ApiResponse syncWxBill(@RequestBody WxBill wxBill) { wxBillService.getWxBill(wxBill.getCreateDate()); return ApiResponse.success(wxBillService.create(wxBill)); } @@ -69,7 +80,7 @@ @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:wxbill:query") // @RequiresPermissions("business:wxbill:query") public ApiResponse<PageData<WxBill>> findPage (@RequestBody PageWrap<WxBill> pageWrap) { return ApiResponse.success(wxBillService.findPage(pageWrap)); } @@ -81,6 +92,14 @@ ExcelExporter.build(WxBill.class).export(wxBillService.findPage(pageWrap).getRecords(), "WxBillController", response); } @ApiOperation("微信对账æç»ç»è®¡æ¥è¯¢") @PostMapping("/getTotalBill") // @RequiresPermissions("business:wxbilldetail:query") public ApiResponse<List<WxBill>> getTotalBill (@RequestBody WxBill param) { return ApiResponse.success(wxBillService.getTotalBill(param)); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:wxbill:query") server/platform/src/main/java/com/doumee/api/business/WxBillDetailController.java
@@ -6,6 +6,7 @@ import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.WxBill; import com.doumee.dao.business.model.WxBillDetail; import com.doumee.service.business.WxBillDetailService; import io.swagger.annotations.Api; server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -2,11 +2,14 @@ import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.utils.DateUtil; import com.doumee.service.business.WxBillService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.Date; /** * 宿¶ä»»å¡ @@ -30,15 +33,19 @@ */ @Scheduled(cron = "0 0 11 * * ? ") public void syncStudent() throws Exception { wxBillService.getWxBill(); //åä¸å¤©çæ¸æ Date ydate = DateUtil.addDaysToDate(new Date(), -1); wxBillService.getWxBill(ydate); } /** * 測試 * @throws Exception */ @Scheduled(fixedDelay = 1000*60) // @Scheduled(fixedDelay = 1000*60) public void getYesterdayBill() throws Exception { wxBillService.getWxBill(); Date ydate = DateUtil.addDaysToDate(new Date(), -1); wxBillService.getWxBill(ydate); } } server/platform/src/main/resources/application.yml
@@ -42,7 +42,6 @@ # æé¤è·è¸ªçURLæ£å exclude-patterns: .+/list[a-zA-Z0-9\-\_]*$, .+/tree[a-zA-Z0-9\-\_]*$, .+/page[a-zA-Z0-9\-\_]*$, .+/all[a-zA-Z0-9\-\_]*$, /swagger-resources.* # æ¥å¿é ç½® logback: level: INFO @@ -50,7 +49,7 @@ # daoå±çæ¥å¿è®¾ç½®ä¸ºdebugï¼æ¹ä¾¿æ¥çsql logging: level: com.tielangtou.dao: debug com.doumee.dao: debug pagehelper: # æå®ä½¿ç¨çæ°æ®åºæ°æ®åº server/services/src/main/java/com/doumee/core/model/PageData.java
@@ -8,6 +8,7 @@ import java.io.Serializable; import java.util.List; import java.util.Objects; /** * @author Eva.Caesar Liu @@ -28,6 +29,8 @@ @ApiModelProperty("å½åé¡µçæ°æ®") private List<T> records; @ApiModelProperty("个æ§ååæ°") private Object extData; public PageData(long page, long capacity) { this.page = page; @@ -45,6 +48,18 @@ pageData.records = pageInfo.getRecords(); return pageData; } /** * æ ¹æ®MyBatis Pluså页对象ç»è£ * @author Eva.Caesar Liu * @date 2022/03/15 09:54 */ public static <T> PageData<T> from(IPage<T> pageInfo, Object object) { PageData<T> pageData = new PageData<T>(pageInfo.getCurrent(), pageInfo.getSize()); pageData.total = pageInfo.getTotal(); pageData.records = pageInfo.getRecords(); pageData.extData = object; return pageData; } /** * æ ¹æ®MyBatisåçå页对象ç»è£ server/services/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -293,6 +293,15 @@ throw e; } } public static String getShortDateStr(Date date) { String nowDate = ""; try { nowDate = sdfShort.format(date); return nowDate; } catch (Exception e) { throw e; } } /** * Descrption:åå¾å½åæ¥æ,æ ¼å¼ä¸º:YYYY-MM-DD server/services/src/main/java/com/doumee/dao/business/model/WxBill.java
@@ -1,6 +1,8 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -8,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @@ -27,16 +30,16 @@ @ExcelColumn(name="æ¶æ¬¾äº¤æåæ°") private Integer sumBill; @ApiModelProperty(value = "鿬¾çè®¢åæ°", example = "1") @ExcelColumn(name="鿬¾çè®¢åæ°") @ApiModelProperty(value = "鿬¾ç¬æ°", example = "1") @ExcelColumn(name="鿬¾ç¬æ°") private Integer sumRefundBill; @ApiModelProperty(value = "åºç»è®¢åæ»éé¢", example = "1") @ExcelColumn(name="åºç»è®¢åæ»éé¢") @ApiModelProperty(value = "åºç»è®¢åæ»éé¢ï¼äº¤æéé¢ï¼", example = "1") @ExcelColumn(name="交æéé¢") private BigDecimal sumSuccessFee; @ApiModelProperty(value = "鿬¾æ»éé¢", example = "1") @ExcelColumn(name="鿬¾æ»éé¢") @ApiModelProperty(value = "鿬¾éé¢", example = "1") @ExcelColumn(name="鿬¾éé¢") private BigDecimal sumRefundFee; @ApiModelProperty(value = "å å¼å¸é款æ»éé¢", example = "1") @@ -51,12 +54,12 @@ @ExcelColumn(name="è®¢åæ»éé¢") private BigDecimal sumTotalFee; @ApiModelProperty(value = "ç³è¯·é款æ»éé¢", example = "1") @ExcelColumn(name="ç³è¯·é款æ»éé¢") @ApiModelProperty(value = "ç³è¯·é款éé¢", example = "1") @ExcelColumn(name="ç³è¯·é款éé¢") private BigDecimal sumApplyRefundFee; @ApiModelProperty(value = "鿬¾æç»è´¹æ»éé¢", example = "1") @ExcelColumn(name="鿬¾æç»è´¹æ»éé¢") @ApiModelProperty(value = "鿬¾æç»è´¹", example = "1") @ExcelColumn(name="鿬¾æç»è´¹") private BigDecimal sumRefundCmmsAmt; @ApiModelProperty(value = "ç»ç®éé¢", example = "1") @@ -66,5 +69,17 @@ @ApiModelProperty(value = "èªè¡è½¦æ¶å ¥", example = "1") @ExcelColumn(name="èªè¡è½¦æ¶å ¥") private BigDecimal bikeFee; @ApiModelProperty(value = "åæ¥å¾®ä¿¡è´¦åæ¥æ", example = "2023-10-08") @TableField(exist = false) @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "æ¥è¯¢å¼å§æ¥æï¼å å«ï¼", example = "20231008") @TableField(exist = false) @JsonFormat(pattern = "yyyyMMdd") private Date startDate; @ApiModelProperty(value = "æ¥è¯¢æªæ¢æ¥æï¼å å«ï¼", example = "20231008") @TableField(exist = false) @JsonFormat(pattern = "yyyyMMdd") private Date endDate; } server/services/src/main/java/com/doumee/dao/business/model/WxBillDetail.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -147,5 +148,18 @@ @ApiModelProperty(value = "è´¹ç夿³¨") @ExcelColumn(name="è´¹ç夿³¨") private String rateRemark; @ApiModelProperty(value = "æ¥è¯¢å¼å§æ¥æï¼å å«ï¼", example = "20231008") @TableField(exist = false) @JsonFormat(pattern = "yyyyMMdd") private Date startDate; @ApiModelProperty(value = "æ¥è¯¢æªæ¢æ¥æï¼å å«ï¼", example = "20231008") @TableField(exist = false) @JsonFormat(pattern = "yyyyMMdd") private Date endDate; @ApiModelProperty(value = "æ»äº¤æåæ°", example = "1") @ExcelColumn(name="æ¶æ¬¾äº¤æåæ°") @TableField(exist = false) private Integer sumBill; ; } server/services/src/main/java/com/doumee/dao/business/vo/WxBillDetailTotalVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ package com.doumee.dao.business.vo; import com.doumee.dao.system.model.SystemDepartment; import com.doumee.dao.system.model.SystemUser; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @author Eva.Caesar Liu * @date 2022/03/15 09:54 */ @Data @ApiModel("微信对账æç»ç»è®¡å¯¹è±¡è¿å") public class WxBillDetailTotalVO extends SystemDepartment { @ApiModelProperty(value = "é¨é¨äººæ°") private long userCount; @ApiModelProperty(value = "åé¨é¨å表") private List<WxBillDetailTotalVO> children; @ApiModelProperty(value = "æ¯å¦å å«åé¨é¨") private Boolean hasChildren; @ApiModelProperty(value = "å建人信æ¯") private SystemUser createUserInfo; @ApiModelProperty(value = "æ´æ°äººä¿¡æ¯") private SystemUser updateUserInfo; } server/services/src/main/java/com/doumee/service/business/WxBillService.java
@@ -3,6 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.WxBill; import java.util.Date; import java.util.List; /** @@ -94,5 +96,7 @@ * @return long */ long count(WxBill wxBill); void getWxBill(String billDate); void getWxBill(Date billDate); List<WxBill> getTotalBill(WxBill param); } server/services/src/main/java/com/doumee/service/business/impl/WxBillDetailServiceImpl.java
@@ -2,8 +2,10 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.WxBillDetailMapper; import com.doumee.dao.business.model.WxBill; import com.doumee.dao.business.model.WxBillDetail; import com.doumee.service.business.WxBillDetailService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -185,6 +187,8 @@ if (pageWrap.getModel().getRateRemark() != null) { queryWrapper.lambda().eq(WxBillDetail::getRateRemark, pageWrap.getModel().getRateRemark()); } queryWrapper.lambda().ge(pageWrap.getModel().getStartDate() !=null, WxBillDetail::getPid,DateUtil.getShortDateStr(pageWrap.getModel().getStartDate())); queryWrapper.lambda().le(pageWrap.getModel().getEndDate() !=null,WxBillDetail::getPid, DateUtil.getShortDateStr(pageWrap.getModel().getEndDate())); for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); server/services/src/main/java/com/doumee/service/business/impl/WxBillServiceImpl.java
@@ -23,9 +23,11 @@ import com.github.binarywang.wxpay.bean.result.WxPayBillInfo; import com.github.binarywang.wxpay.bean.result.WxPayBillResult; import com.github.binarywang.wxpay.exception.WxPayException; import lombok.Synchronized; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -101,7 +103,70 @@ QueryWrapper<WxBill> wrapper = new QueryWrapper<>(wxBill); return wxBillMapper.selectList(wrapper); } @Override public List<WxBill> getTotalBill(WxBill param) { //è·åæ±æ»ç»è®¡ WxBill bill = getTotalDataByDate(param); WxBill bill1 = initBillData();//è®°å½äº¤æå®æ¶ç»è®¡æ°æ® bill1.setSumBill(bill.getSumBill());//è®¢åæ°é bill1.setSumTotalFee(bill.getSumTotalFee());//交æéé¢ bill1.setSumCmmsAmt(bill.getSumCmmsAmt());//交ææç»è´¹ bill1.setSumSuccessFee(bill.getSumSuccessFee());//æå交æéé¢ WxBill bill2 = initBillData();//è®°å½é款ç»è®¡æ°æ® bill2.setSumRefundBill(bill.getSumRefundBill());//鿬¾ç¬æ° bill2.setSumRefundCmmsAmt(bill.getSumRefundCmmsAmt());//鿬¾æç»è´¹ bill2.setSumRefundFee(bill.getSumRefundFee());//鿬¾éé¢ WxBill bill3 = initBillData(); bill3.setSumBill(bill.getSumBill()); bill3.setSumSuccessFee(bill.getSumSuccessFee()); bill3.setSumCmmsAmt(bill.getSumCmmsAmt()); bill3.setSumTotalFee(bill.getSumTotalFee()); bill3.setSumRefundBill(bill.getSumRefundBill());//鿬¾ç¬æ° bill3.setSumRefundCmmsAmt(Constants.formatDecimalNum(bill.getSumRefundCmmsAmt()).add(Constants.formatDecimalNum(bill.getSumCmmsAmt())));//æç»è´¹ bill3.setSumRefundFee(bill.getSumRefundFee());//鿬¾éé¢ bill3.setTotal(bill.getTotal()); QueryWrapper<WxBillDetail> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().ge(param.getStartDate() !=null,WxBillDetail::getPid,DateUtil.getShortDateStr(param.getStartDate())); queryWrapper.lambda().le(param.getEndDate() !=null,WxBillDetail::getPid,DateUtil.getShortDateStr(param.getEndDate())); queryWrapper.lambda().ne(WxBillDetail::getAppid, WxMiniConfig.wxPayService.getConfig().getAppId());//éèªè¡è½¦æ¶å ¥ç»è®¡ queryWrapper.lambda().groupBy(WxBillDetail::getBillStatus); queryWrapper.select( "count(id) as sum_bill" ,"sum(settlement_total_fee) as settlement_total_fee" ,"sum(refund_fee) as refund_fee" ,"sum(cmms_amt) as cmms_amt" ,"bill_status"); List<WxBillDetail> detailList = wxBillDetailMapper.selectList(queryWrapper); WxBill bill4 = initBillData();//è®°å½äº¤æå®æ¶ç»è®¡æ°æ® if(detailList!=null){ for(WxBillDetail detail : detailList){ if(StringUtils.equals(detail.getBillStatus(), "SUCCESS")){ //宿¶æ°æ® bill4.setSumBill(detail.getSumBill());//交æç¬æ° bill4.setSumSuccessFee(Constants.formatDecimalNum(detail.getSettlementTotalFee()));//交æéé¢ bill4.setSumCmmsAmt(Constants.formatDecimalNum(detail.getCmmsAmt()));//交ææç»è´¹ } else if(StringUtils.equals(detail.getBillStatus(), "REFUND")){ //鿬¾æ°æ® bill4.setSumRefundBill(detail.getSumBill());//鿬¾ç¬æ° bill4.setSumRefundCmmsAmt(Constants.formatDecimalNum(detail.getCmmsAmt()));//鿬¾æç»è´¹ } } //ç»ç®éé¢ bill4.setTotal(bill4.getSumSuccessFee() .subtract(bill4.getSumRefundFee()) .subtract(bill4.getSumCmmsAmt()) .subtract(bill4.getSumRefundCmmsAmt())); } List<WxBill> list = new ArrayList<>(); list.add(bill1);//宿¶äº¤æ list.add(bill2);//鿬¾æ±æ» list.add(bill3);//宿¶é款æ»è®¡ list.add(bill4);//éèªè¡è½¦æ¶å ¥ return list; } @Override public PageData<WxBill> findPage(PageWrap<WxBill> pageWrap) { IPage<WxBill> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -143,16 +208,59 @@ if (pageWrap.getModel().getBikeFee() != null) { queryWrapper.lambda().eq(WxBill::getBikeFee, pageWrap.getModel().getBikeFee()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { queryWrapper.lambda().ge(pageWrap.getModel().getStartDate() !=null,WxBill::getId,DateUtil.getShortDateStr(pageWrap.getModel().getStartDate())); queryWrapper.lambda().le(pageWrap.getModel().getEndDate() !=null,WxBill::getId,DateUtil.getShortDateStr(pageWrap.getModel().getEndDate())); //æç §æ¶é´ååºæ¾ç¤º queryWrapper.lambda().orderByAsc(WxBill::getId); /* for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(wxBillMapper.selectPage(page, queryWrapper)); }*/ return PageData.from(wxBillMapper.selectPage(page, queryWrapper),getTotalDataByDate(pageWrap.getModel())); } private WxBill getTotalDataByDate(WxBill model) { QueryWrapper<WxBill> param = new QueryWrapper<>(); param.lambda().ge(model.getStartDate() !=null,WxBill::getId,DateUtil.getShortDateStr(model.getStartDate())); param.lambda().le(model.getEndDate() !=null,WxBill::getId,DateUtil.getShortDateStr(model.getEndDate())); param.select("sum(sum_bill) as sum_bill" ,"sum(sum_refund_bill) as sum_refund_bill" ,"sum(sum_success_fee) as sum_success_fee" ,"sum(sum_refund_fee) as sum_refund_fee" ,"sum(sum_cmms_amt) as sum_cmms_amt" ,"sum(sum_total_fee) as sum_total_fee" ,"sum(sum_apply_refund_fee) as sum_apply_refund_fee" ,"sum(sum_total_fee) as sum_total_fee" ,"sum(total) as total" ,"sum(sum_refund_cmms_amt) as sum_refund_cmms_amt" ,"sum(bike_fee) as bike_fee" ); WxBill bill = wxBillMapper.selectOne(param.last("limit 1")); if(bill == null){ bill = initBillData(); } return bill; } public static WxBill initBillData(){ WxBill bill = new WxBill(); bill.setSumBill(0); bill.setSumTotalFee(new BigDecimal(0.00)); bill.setSumSuccessFee(new BigDecimal(0.00)); bill.setSumRefundFee(new BigDecimal(0.00)); bill.setSumCouponRefundFee(new BigDecimal(0.00)); bill.setSumApplyRefundFee(new BigDecimal(0.00)); bill.setSumCmmsAmt(new BigDecimal(0.00)); bill.setSumRefundBill(0); bill.setSumRefundCmmsAmt(new BigDecimal(0.00)); bill.setTotal(new BigDecimal(0.00)); bill.setBikeFee(new BigDecimal(0.00)); return bill; } @Override public long count(WxBill wxBill) { QueryWrapper<WxBill> wrapper = new QueryWrapper<>(wxBill); @@ -160,11 +268,13 @@ } @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void getWxBill(String billDate) { @Synchronized//å便§è¡ public void getWxBill(Date ydate ) { isValidDate(ydate); // è·å交æè´¦åæ°æ® WxPayDownloadBillRequest request = new WxPayDownloadBillRequest(); // String billDate = DateUtil.beforeDateToStr(1); Date ydate = DateUtil.addDaysToDate(new Date(), -1); String billDate = DateUtil.getShortDateStr(ydate); // Date ydate = DateUtil.addDaysToDate(new Date(), -1); request.setBillDate(billDate); request.setBillType("SUCCESS"); WxPayBillResult response = null; @@ -181,18 +291,9 @@ }catch (WxPayException e){ } WxBill bill = new WxBill(); WxBill bill = initBillData(); //æ¥æä½ä¸ºä¸»é® bill.setId(billDate); bill.setSumBill(0); bill.setSumTotalFee(new BigDecimal(0.00)); bill.setSumSuccessFee(new BigDecimal(0.00)); bill.setSumRefundFee(new BigDecimal(0.00)); bill.setSumCouponRefundFee(new BigDecimal(0.00)); bill.setSumApplyRefundFee(new BigDecimal(0.00)); bill.setSumCmmsAmt(new BigDecimal(0.00)); bill.setSumRefundBill(0); bill.setSumRefundCmmsAmt(new BigDecimal(0.00)); List<WxBillDetail> detailList = new ArrayList<>(); if(response !=null){ // List<WxPayBillInfo> detailList = response.getBillInfoList(); @@ -232,6 +333,28 @@ wxBillDetailMapper.insertBatch(detailList); } } private boolean isValidDate(Date ydate) { if(ydate == null ){ //æ¶é´ä¸è½ä¸ºç©º throw new BusinessException(ResponseStatus.BAD_REQUEST); } int days = DateUtil.daysBetweenDates(new Date(),ydate); if(days< 1){ //åªè½åæ¥æ¨å¤©ä¹åçæ°æ® throw new BusinessException(ResponseStatus.BAD_REQUEST); } if( days == 1){ //åªè½åæ¥æ¨å¤©10ä¹åçæ°æ® Calendar caln = Calendar.getInstance(); caln.setTime(ydate); if(caln.get(Calendar.HOUR_OF_DAY) <= 9){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼æè¿åæ¥æ¶é´åªè½æªæ¢å°æ¨å¤©10ç¹åï¼"); } } return true; } private void getTotalAndIncome(WxBill bill,Date date) { QueryWrapper<Goodsorder> queryWrapper = new QueryWrapper<>(); queryWrapper.apply("to_char(create_date, 'yyyy-MM-dd') = {0}", date); @@ -245,6 +368,10 @@ if(billInfoList!=null){ for (int i = 0; i <billInfoList.size(); i++) { WxPayBillInfo info =billInfoList.get(i); if(StringUtils.equals(info.getTradeType(),"REFUND" ) && !StringUtils.equals(info.getRefundState(),"SUCCESS" )){ //妿æ¯éæåç鿬¾æ°æ®ï¼ä¸è¿è¡åæ¥ continue; } WxBillDetail detail = new WxBillDetail(); detail.setId(UUID.randomUUID().toString()); detail.setPid(bill.getId()); @@ -287,6 +414,7 @@ bill.setBikeFee(bill.getBikeFee().subtract(detail.getApplyRefundFee())); } } detailList.add(detail); } } server/web/src/main/resources/application.yml
@@ -50,7 +50,7 @@ # daoå±çæ¥å¿è®¾ç½®ä¸ºdebugï¼æ¹ä¾¿æ¥çsql logging: level: com.tielangtou.dao: debug com.doumee.dao: debug pagehelper: # æå®ä½¿ç¨çæ°æ®åºæ°æ®åº