From 7f2da6cfa1a7095c0e1cd8f850e505944b1dc624 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 8 Nov 2018 23:19:04 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=B7=E5=8D=A1=E6=94=AF=E4=BB=98][?= =?UTF-8?q?=E6=94=B6=E9=93=B6=E5=8F=B0]:=E9=A6=96=E9=A1=B5+=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E6=B5=81=E6=B0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxDateAmountRecordController.java | 10 ++- .../controller/WxMicroPayController.java | 14 +++-- .../schedule/DaliyAmountSchedule.java | 18 ++++-- .../com/iformall/enums/EnumDateAmtType.java | 3 +- .../com/iformall/mapper/WxOrderMapper.java | 3 + .../com/iformall/service/WxOrderService.java | 9 +++ .../service/impl/WxOrderServiceImpl.java | 63 +++++++++++++++++++ .../main/resources/mapper/WxOrderMapper.xml | 44 +++++++++++-- 8 files changed, 145 insertions(+), 19 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java index 5d2d56589..d120669a7 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java @@ -45,7 +45,13 @@ public class WxDateAmountRecordController extends BaseController { return list(EnumDateAmtType.VERIFY_RECORD.getCode()); } - private ResultData list(int status) { + @ApiOperation("首页查询刷卡金额记录接口") + @GetMapping("listMicropay") + public ResultData listMicropay() { + return list(EnumDateAmtType.MICROPAY_RECORD.getCode()); + } + + private ResultData list(int dateAmtType) { List list = new ArrayList<>(); @@ -53,7 +59,7 @@ public class WxDateAmountRecordController extends BaseController { WxMerchantBUser u = getUser(); temp.setTenantId(u.getTenantId()); temp.setMerchantId(u.getMerchantId()); - temp.setType(status); + temp.setType(dateAmtType); temp.setSortColumns(WxDateAmountRecord.Field.UpdateDate_DESC); SimpleDateFormat fmt = new SimpleDateFormat("MM/dd"); diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 88c597cd3..c136687ed 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -5,6 +5,7 @@ import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.config.PayProperty; import com.iformall.domain.po.*; +import com.iformall.enums.EnumOrderType; import com.iformall.enums.EnumPayWay; import com.iformall.exception.MallinkException; import com.iformall.service.*; @@ -199,12 +200,13 @@ public class WxMicroPayController extends BaseController { } } - @ApiOperation("某日期扫码支付总流水") - @GetMapping("getMicroPayAmountOnDate") + @ApiOperation("刷卡支付交易流水分页列表接口") + @GetMapping("listMicroPay") @ApiImplicitParams({ - @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query")}) - public ResultData getUnverifiedAmountOnDate(String date) { - //return wxCouponOrderService.listOnDateAsPage(getUser().getId(), date, null, null, false); - return new ResultData(); + @ApiImplicitParam(name = "date", value = "日期yyyy-MM-dd", dataType = "string", paramType = "query"), + @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query",required = true), + @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "int", paramType = "query",required = true)}) + public ResultData listUnverified(String date, Integer pageNum, Integer pageSize) { + return wxOrderService.microPayListOnDateAsPage(getUser().getId(), EnumOrderType.MICROPAY.getCode(), date, pageNum, pageSize); } } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java index 6f937a759..00d52fdba 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/DaliyAmountSchedule.java @@ -1,10 +1,7 @@ package com.iformall.schedule; import com.iformall.common.IdWorker; -import com.iformall.domain.po.WxCouponOrder; -import com.iformall.domain.po.WxDateAmountRecord; -import com.iformall.domain.po.WxMall; -import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.*; import com.iformall.enums.EnumDateAmtType; import com.iformall.enums.EnumMerchantStatus; import com.iformall.mapper.*; @@ -40,6 +37,8 @@ public class DaliyAmountSchedule { @Autowired private WxDateAmountRecordService wxDateAmountRecordService; + @Autowired + private WxOrderMapper wxOrderMapper; @@ -125,6 +124,17 @@ public class DaliyAmountSchedule { dateAmountRecord.setType(EnumDateAmtType.VERIFY_RECORD.getCode()); wxDateAmountRecordService.saveAmount(dateAmountRecord); + Map microPayMap = wxOrderMapper.dayMicroPayAmountList(dateMap); + int countMic = (int) microPayMap.get("count"); + int totalPriceMic = (int) microPayMap.get("totalPrice"); + logger.info("find " + countMic + " order " + "\n" + + "from " + startDate + " to " + new Date() + "\n" + + "TOTAL Payment=" + totalPriceMic); + + dateAmountRecord.setPayPrice(totalPriceMic); + dateAmountRecord.setType(EnumDateAmtType.MICROPAY_RECORD.getCode()); + wxDateAmountRecordService.saveAmount(dateAmountRecord); + } } } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumDateAmtType.java b/mallinkService/src/main/java/com/iformall/enums/EnumDateAmtType.java index ef97bb2ef..135a28920 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumDateAmtType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumDateAmtType.java @@ -5,9 +5,10 @@ package com.iformall.enums; */ public enum EnumDateAmtType { - // 0 交易记录 1.核销记录; + // 0 交易记录 1.核销记录 2:刷卡支付; PAY_RECORD(0, "交易记录"), VERIFY_RECORD(1, "核销记录"), + MICROPAY_RECORD(2, "刷卡支付"), ; public static EnumDateAmtType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java index 3285cb1ee..106fde6c1 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java @@ -18,4 +18,7 @@ public interface WxOrderMapper extends CommonMapper { List findListOfCUser(WxOrder wxOrder); WxOrderCVo selectDetailOfCUser(WxOrder wxOrder); + Map dayMicroPayAmountList(Map dateMap); + List findListOfMicroPayOrderByDate(Map dateMap); + } diff --git a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java index 44310f45e..87a8feb8c 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxOrderService.java @@ -24,6 +24,15 @@ public interface WxOrderService { PageInfo listAsPage(WxOrder record, Integer pageIndex, Integer pageSize); + /** + * 根据日期 b用户查刷卡支付list + * + * @param bUserId B端用户) + */ + + ResultData microPayListOnDateAsPage(Long bUserId, Integer type, String date, Integer pageIndex, Integer pageSize); + + /** * 提交订单 * @param user diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java index 8b3271570..7de575ed5 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java @@ -83,6 +83,68 @@ public class WxOrderServiceImpl implements WxOrderService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); } + @Override + public ResultData microPayListOnDateAsPage(Long bUserId, Integer type, String date, Integer pageIndex, Integer pageSize) { + WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectByPrimaryKey(bUserId.longValue()); + if (wxMerchantBUser == null) { + logger.error("B端用户不存在:" + bUserId); + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); + } + + WxMerchant wxMerchant = wxMerchantMapper.selectByPrimaryKey(wxMerchantBUser.getMerchantId()); + if (wxMerchant == null) { + logger.error("商户不存在:" + bUserId); + throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND); + } + + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + String dateString; + Date startDate; + Date endDate; + + if (date == null) { + endDate = new Date(); + dateString = fmt.format(new Date()); + try { + startDate = fmt.parse(dateString); + } catch (ParseException e) { + return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR); + } + } else { + try { + startDate = fmt.parse(date); + } catch (ParseException e) { + return new ResultData(ErrorCode.SYS_PARAMETER_CAST_ERROR); + } + Calendar cal = Calendar.getInstance(); + cal.setTime(startDate); + cal.add(Calendar.DATE, 1); + endDate = cal.getTime(); + } + + Map dateMap = new HashMap(); + dateMap.put("startDate", startDate); + dateMap.put("endDate", endDate); + dateMap.put("merchantID", wxMerchant.getId()); + dateMap.put("type", type); + + Map resultMap = new HashMap(); + + if (pageIndex == null || pageSize == null) { + List list; + list = wxOrderMapper.findListOfMicroPayOrderByDate(dateMap); + logger.info("find " + list.size() + " coupon order from " + startDate + " to " + new Date()); + int total_price = 0; + for (WxOrder order : list) { + total_price = total_price + order.getPayment(); + } + resultMap.put("amount", total_price); + } else { + resultMap.put("list", PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfMicroPayOrderByDate(dateMap))); + } + return new ResultData(resultMap); + } + private int getUserCouponOrderCount(WxCUser user, WxCoupon counpon) { // 用户购买的券包数量 @@ -697,6 +759,7 @@ public class WxOrderServiceImpl implements WxOrderService { // 2. get pay order WxPayOrder payOrderQ = new WxPayOrder(); payOrderQ.setTenantId(order.getTenantId()); + payOrderQ.setOrderId(order.getId()); payOrderQ.setPayOrderStatus(EnumPayStatus.PAY_STATUS_WAIT.getCode()); List payOrders = wxPayOrderMapper.select(payOrderQ); diff --git a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml index c0719c9a1..59c5dc8a0 100644 --- a/mallinkService/src/main/resources/mapper/WxOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxOrderMapper.xml @@ -238,22 +238,54 @@ - + select count(*) as count, sum(payment) as total_price + from wx_order + where `type` = 1 and `order_status` = 1 and `tenant_id` = #{tenantId} and `c_user_id` = #{cUserId} + + and `merchant_id` = #{merchantId} + + + and `b_user_id` = #{bUserId} + + and `coupon_id` = #{couponId} - - and `order_status` = #{orderStatus} + + AND create_date > #{startDate,jdbcType=TIMESTAMP} + + + AND create_date < #{endDate,jdbcType=TIMESTAMP} + + + +