From 9c13d7261c02fbcb9e4cf9ba8e6c66a39abb76d5 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 12 Feb 2025 16:06:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/OrderBiz.java | 36 +++++++++++++++++++ .../com/ycwl/basic/enums/StatisticEnum.java | 4 +-- .../impl/mobile/AppStatisticsServiceImpl.java | 12 ++++--- .../service/impl/mobile/WxPayServiceImpl.java | 28 --------------- .../service/impl/pc/FaceServiceImpl.java | 8 +++++ .../resources/mapper/StatisticsMapper.xml | 20 ++++++----- 6 files changed, 65 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 205b504..fc3e231 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -1,12 +1,18 @@ package com.ycwl.basic.biz; +import com.ycwl.basic.enums.StatisticEnum; +import com.ycwl.basic.mapper.OrderMapper; +import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.VideoMapper; import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.mobile.order.PriceObj; +import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.order.entity.OrderEntity; import com.ycwl.basic.model.pc.order.entity.OrderItemEntity; import com.ycwl.basic.model.pc.order.req.OrderUpdateReq; +import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO; +import com.ycwl.basic.model.pc.order.resp.OrderRespVO; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; @@ -17,10 +23,12 @@ import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.repository.SourceRepository; import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.repository.VideoRepository; +import com.ycwl.basic.utils.ApiResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.math.BigDecimal; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -41,6 +49,10 @@ public class OrderBiz { private SourceRepository sourceRepository; @Autowired private VideoRepository videoRepository; + @Autowired + private StatisticsMapper statisticsMapper; + @Autowired + private OrderMapper orderMapper; public PriceObj queryPrice(Long scenicId, int goodsType, Long goodsId) { PriceObj priceObj = new PriceObj(); @@ -159,6 +171,30 @@ public class OrderBiz { } }); orderRepository.clearOrderCache(orderId); // 更新完了,清理下 + + //支付时间 + Date payAt = order.getPayAt(); + OrderAppRespVO orderDetail = orderMapper.appDetail(orderId); + //商品创建时间 + Date goodsCreateTime = orderDetail.getOrderItemList().get(0).getShootingTime(); + + StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq(); + statisticsRecordAddReq.setMemberId(order.getMemberId()); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(goodsCreateTime); + calendar.set(Calendar.HOUR_OF_DAY, 21); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + // TODO: 他的购买的内容于内容生成当天晚9点之前算现场订单,否则算推送订单 + if(calendar.getTime().compareTo(payAt)>0){// + statisticsRecordAddReq.setType(StatisticEnum.ON_SITE_PAYMENT.code); + }else { + statisticsRecordAddReq.setType(StatisticEnum.POST_PAYMENT.code); + } + calendar.clear(); + statisticsRecordAddReq.setScenicId(order.getScenicId()); + statisticsRecordAddReq.setMorphId(orderId); + statisticsMapper.addStatisticsRecord(statisticsRecordAddReq); } public void cancelOrder(Long orderId) { diff --git a/src/main/java/com/ycwl/basic/enums/StatisticEnum.java b/src/main/java/com/ycwl/basic/enums/StatisticEnum.java index 49ce5b5..1505568 100644 --- a/src/main/java/com/ycwl/basic/enums/StatisticEnum.java +++ b/src/main/java/com/ycwl/basic/enums/StatisticEnum.java @@ -7,8 +7,8 @@ public enum StatisticEnum { SCAN_THE_CODE_TO_ENTER(0,"扫码进入"), UPLOAD_FACE(1,"上传人脸"), PREVIEWING_VIDEO(2,"预览视频"), - ON_SITE_PAYMENT(3,"现场支付"), - POST_PAYMENT(4,"事后支付"), + POST_PAYMENT(3,"事后支付"), + ON_SITE_PAYMENT(4,"现场支付"), REFUND(5,"退款"), MESSAGE_PUSH(6,"消息推送"), DOWNLOAD(8,"下载"), diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java index 0dbba64..72bc198 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppStatisticsServiceImpl.java @@ -213,12 +213,14 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { @Override public ApiResponse addStatistics(StatisticsRecordAddReq req) { // req.setId(SnowFlakeUtil.getLongId()); - try { - JwtInfo worker = JwtTokenUtil.getWorker(); - Long userId = worker.getUserId(); - req.setMemberId(userId); - } catch (Exception ignored) { + if (req.getMemberId() == null) { + try { + JwtInfo worker = JwtTokenUtil.getWorker(); + Long userId = worker.getUserId(); + req.setMemberId(userId); + } catch (Exception ignored) { + } } Integer type = req.getType(); if(type==null){ diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java index 8ca2cf5..5ad2f4c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/WxPayServiceImpl.java @@ -223,34 +223,6 @@ public class WxPayServiceImpl implements WxPayService { } } - // - private void statisticsHandler(Long orderId) { - ApiResponse orderDetail = orderService.detail(orderId); - OrderRespVO orderData = orderDetail.getData(); - //支付时间 - Date payAt = orderData.getPayAt(); - //商品创建时间 - Date createTime = orderData.getOrderItemList().get(0).getCreateTime(); - - StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq(); - statisticsRecordAddReq.setMemberId(orderData.getMemberId()); - Calendar calendar = Calendar.getInstance(); - calendar.setTime(createTime); - calendar.set(Calendar.HOUR_OF_DAY, 21); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - // TODO: 他的购买的内容于内容生成当天晚9点之前算现场订单,否则算推送订单 - if(calendar.getTime().compareTo(payAt)>0){// - statisticsRecordAddReq.setType(StatisticEnum.ON_SITE_PAYMENT.code); - }else { - statisticsRecordAddReq.setType(StatisticEnum.POST_PAYMENT.code); - } - calendar.clear(); - statisticsRecordAddReq.setScenicId(orderData.getScenicId()); - statisticsRecordAddReq.setMorphId(orderId); - statisticsMapper.addStatisticsRecord(statisticsRecordAddReq); - } - @Override public WxchatCallbackSuccessData queryPay(Long orderId) { WxchatCallbackSuccessData wxchatCallbackSuccessData = new WxchatCallbackSuccessData(); diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index 20b6df9..bcad224 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -228,6 +228,14 @@ public class FaceServiceImpl implements FaceService { // 以这个结果为人脸库的匹配结果 scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施2:存在得分够高但是结果少"); } + } else if (scenicDbSearchResult.getSampleListIds().size() > 5) { + // 补救逻辑 + Long faceSampleId = scenicDbSearchResult.getSampleListIds().get(0); + FaceSampleEntity faceSample = faceRepository.getFaceSample(faceSampleId); + if (faceSample != null) { + // 以这个结果为人脸库的匹配结果 + scenicDbSearchResult = faceService.searchFace(face.getScenicId().toString(), faceSample.getFaceUrl(), "补救措施3:人脸数过多大于5"); + } } } FaceEntity faceEntity = new FaceEntity(); diff --git a/src/main/resources/mapper/StatisticsMapper.xml b/src/main/resources/mapper/StatisticsMapper.xml index 941385c..a6fb9a1 100644 --- a/src/main/resources/mapper/StatisticsMapper.xml +++ b/src/main/resources/mapper/StatisticsMapper.xml @@ -38,7 +38,7 @@ SELECT IFNULL(count(1), 0) AS count FROM ( - select count(1) as count + select 1 from statistics where type=10 and morph_id in (1047,1048,1049) and scenic_id = #{scenicId} @@ -47,7 +47,6 @@ and create_time <= #{endTime} - group by member_id ) AS subquery;