From 5723081b2da05257b254196d440e3f1f6d7a654b Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 03 Apr 2023 13:41:15 +0800
Subject: [PATCH] 设定时区,这样创建的时间就不会出现问题
---
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 5 +
src/test/java/cc/mrbird/febs/ProfitTest.java | 74 ++++++++++++++++++++++++
src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 31 ++++++++++
src/main/java/cc/mrbird/febs/mall/vo/MallOrderInfoTestVo.java | 11 +++
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml | 12 ++++
src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java | 4 +
6 files changed, 137 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
index 9acffe6..f660277 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -48,4 +48,8 @@
IPage<AdminMallMoneyFlowVo> selectOrderMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallOrderInfo mallOrderInfo);
BigDecimal selectSumAmountByStatusAndMemberId(@Param("status")Integer statusIng, @Param("memberId")Long id);
+
+ List<MallMoneyFlow> selectMoneyFlowByOrderNo(@Param("orderNo")String orderNo);
+
+ void deleteByOrderNo(@Param("orderNo")String orderNo);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
index 2fcd3e9..387a5c8 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -8,6 +8,7 @@
import cc.mrbird.febs.mall.vo.AdminMallOrderInfoVo;
import cc.mrbird.febs.mall.vo.AdminMallOrderVo;
import cc.mrbird.febs.mall.vo.AdminOrderDetailVo;
+import cc.mrbird.febs.mall.vo.MallOrderInfoTestVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -73,4 +74,8 @@
Integer selectOrderInfoByStatusAndMemberId(@Param("status")int value, @Param("memberId")Long id);
Integer selectCountByCreateTime(@Param("createdTime")String yyyyMMdd);
+
+ List<MallOrderInfoTestVo> selectOrderCntByDate(@Param("createdTime")String yyyyMMdd);
+
+ List<MallOrderInfo> selectByMemberIdAndDate(@Param("memberId")Long memberId, @Param("createdTime")String dateStr);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallOrderInfoTestVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallOrderInfoTestVo.java
new file mode 100644
index 0000000..0317dff
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallOrderInfoTestVo.java
@@ -0,0 +1,11 @@
+package cc.mrbird.febs.mall.vo;
+
+import lombok.Data;
+
+@Data
+public class MallOrderInfoTestVo {
+
+ private String name;
+ private Long memberId;
+ private int orderCnt;
+}
diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
index f340c0e..088f717 100644
--- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
+++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -159,4 +159,16 @@
a.member_id = #{memberId}
and a.status = #{status}
</select>
+
+ <select id="selectMoneyFlowByOrderNo" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow">
+ select a.*
+ from mall_money_flow a
+ where a.order_no = #{orderNo}
+ and a.type in (1,3,4,6)
+ </select>
+
+ <delete id="deleteByOrderNo">
+ delete from mall_money_flow
+ where order_no = #{orderNo}
+ </delete>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
index 55144df..0a4d3a4 100644
--- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
+++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -372,4 +372,35 @@
</if>
</select>
+
+ <select id="selectOrderCntByDate" resultType="cc.mrbird.febs.mall.vo.MallOrderInfoTestVo">
+ SELECT
+ b. NAME,
+ a.member_id memberId,
+ COUNT(a.id) orderCnt
+ FROM
+ mall_order_info a
+ LEFT JOIN mall_member b ON a.member_id = b.id
+ WHERE
+ a. STATUS = 4
+ AND a.comment_state = 2
+ AND date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
+ GROUP BY
+ a.member_id
+ ORDER BY
+ orderCnt DESC
+ </select>
+
+ <select id="selectByMemberIdAndDate" resultType="cc.mrbird.febs.mall.entity.MallOrderInfo">
+ SELECT
+ a.*
+ FROM
+ mall_order_info a
+ WHERE
+ a. STATUS = 4
+ AND a.comment_state = 2
+ AND a.member_id = #{memberId}
+ AND date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime}
+ order by a.CREATED_TIME desc
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index b3b3892..ef4e90d 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -18,6 +18,7 @@
import cc.mrbird.febs.mall.quartz.OrderSettlementJob;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.ApiMallSubsidyAmountInfoVo;
+import cc.mrbird.febs.mall.vo.MallOrderInfoTestVo;
import cc.mrbird.febs.pay.model.*;
import cc.mrbird.febs.pay.service.UnipayService;
import cc.mrbird.febs.rabbit.consumer.AgentConsumer;
@@ -43,6 +44,7 @@
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutionException;
+import java.util.stream.Collectors;
/**
* @author wzy
@@ -106,6 +108,78 @@
@Autowired
private DataDictionaryCustomMapper dataDictionaryCustomMapper;
+ @Autowired
+ private IApiMallMemberWalletService walletService;
+
+ @Autowired
+ private MallMemberWalletMapper mallMemberWalletMapper;
+
+ @Test
+ public void retrunOrder(){
+ /**
+ * 查询出当天下过单的人数
+ * 比对单数是否超过最大值,超过最大值的订单回退资金,删除数据
+ */
+ String dateStr = "2023-04-01";
+ //获取某一天下单人的全部单数
+ List<MallOrderInfoTestVo> mallOrderInfoTestVos = mallOrderInfoMapper.selectOrderCntByDate(dateStr);
+ if(CollUtil.isNotEmpty(mallOrderInfoTestVos)){
+ List<MallOrderInfoTestVo> collect = mallOrderInfoTestVos
+ .stream()
+ .filter(mallOrderInfoTestVo -> mallOrderInfoTestVo.getOrderCnt() > 2)
+ .collect(Collectors.toList());
+ List<Long> collectMemberId = collect.stream().map(MallOrderInfoTestVo::getMemberId).collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(collectMemberId)){
+ for(Long memberId : collectMemberId){
+ List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectByMemberIdAndDate(memberId,dateStr);
+ if(CollUtil.isNotEmpty(mallOrderInfos)){
+ int size = mallOrderInfos.size();
+ for(int i = 2; i < size; i++){
+ MallOrderInfo mallOrderInfo = mallOrderInfos.get(i);
+ String orderNo = mallOrderInfo.getOrderNo();
+ List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectMoneyFlowByOrderNo(orderNo);
+ for(MallMoneyFlow mallMoneyFlow : mallMoneyFlows){
+ Long rtMemberId = mallMoneyFlow.getRtMemberId();
+ BigDecimal amount = mallMoneyFlow.getAmount();
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(rtMemberId);
+ if(mallMemberWallet.getBalance().compareTo(amount) >= 0){
+ walletService.reduceBalance(amount, rtMemberId);
+ }
+ }
+ mallMoneyFlowMapper.deleteByOrderNo(orderNo);
+ mallOrderInfoMapper.deleteById(mallOrderInfo.getId());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ @Test
+ public void retrunOrderMemberId(){
+ String dateStr = "2023-04-02";
+ Long memberId = 702L;
+ List<MallOrderInfo> mallOrderInfos = mallOrderInfoMapper.selectByMemberIdAndDate(memberId,dateStr);
+ if(CollUtil.isNotEmpty(mallOrderInfos)){
+ int size = mallOrderInfos.size();
+ for(int i = 2; i < size; i++){
+ MallOrderInfo mallOrderInfo = mallOrderInfos.get(i);
+ String orderNo = mallOrderInfo.getOrderNo();
+ List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectMoneyFlowByOrderNo(orderNo);
+ for(MallMoneyFlow mallMoneyFlow : mallMoneyFlows){
+ Long rtMemberId = mallMoneyFlow.getRtMemberId();
+ BigDecimal amount = mallMoneyFlow.getAmount();
+ MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(rtMemberId);
+ if(mallMemberWallet.getBalance().compareTo(amount) >= 0){
+ walletService.reduceBalance(amount, rtMemberId);
+ }
+ }
+ mallMoneyFlowMapper.deleteByOrderNo(orderNo);
+ mallOrderInfoMapper.deleteById(mallOrderInfo.getId());
+ }
+ }
+ }
+
@Test
public void tetstgetPrikey(){
Map<String, String> wallet = new HashMap<String, String>();
--
Gitblit v1.9.1