From 70cd2aec8a55e222070d4dd6d816dcb3231a1217 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Thu, 22 Dec 2022 16:57:08 +0800 Subject: [PATCH] 20221221 --- src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java | 2 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java | 9 +++ src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java | 3 + src/main/java/cc/mrbird/febs/common/utils/MallUtils.java | 2 src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java | 2 src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml | 9 +++ src/test/java/cc/mrbird/febs/ProfitTest.java | 58 +++++++++--------- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 8 ++ src/main/resources/mapper/modules/MallOrderInfoMapper.xml | 26 ++++++-- src/main/resources/mapper/modules/MallMoneyFlowMapper.xml | 9 +++ src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java | 2 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 11 +++ 12 files changed, 103 insertions(+), 38 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java b/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java index a93bbac..6931b85 100644 --- a/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java +++ b/src/main/java/cc/mrbird/febs/common/utils/MallUtils.java @@ -37,7 +37,7 @@ SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String dd=df.format(new Date()); if (StrUtil.isNotBlank(prefix)) { - return prefix+getRandomNum(2); + return prefix+dd+getRandomNum(2); } return dd+getRandomNum(2); } diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java index 7eefc32..85917fb 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java @@ -16,4 +16,6 @@ void updateStatusById(@Param("status")int i, @Param("id")Long id); List<MallMemberStarBuy> selectByStatusAndMemberId(@Param("status")int i, @Param("memberId")Long memberId); + + BigDecimal selectSumAvaAmountByStatusAndMemberId(@Param("status")int i, @Param("memberId")Long id); } 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 f9bf87d..9acffe6 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java @@ -46,4 +46,6 @@ @Param("isReturn")Integer isReturn); IPage<AdminMallMoneyFlowVo> selectOrderMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallOrderInfo mallOrderInfo); + + BigDecimal selectSumAmountByStatusAndMemberId(@Param("status")Integer statusIng, @Param("memberId")Long id); } 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 44250e4..b9bc6d1 100644 --- a/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java +++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java @@ -69,4 +69,6 @@ Integer selectCountByCreateTimeAndMemberId(@Param("createdTime")String yyyyMMdd,@Param("memberId")Long memberId); BigDecimal selectTodayAmountByCreateTimeAndMemberId(@Param("createdTime")String yyyyMMdd,@Param("memberId")Long memberId); + + Integer selectOrderInfoByStatusAndMemberId(@Param("status")int value, @Param("memberId")Long id); } diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index fda28df..630c3a1 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -255,6 +255,15 @@ mallMemberVo.setScore(wallet.getScore()); mallMemberVo.setPrizeScore(wallet.getPrizeScore()); mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id)); + //提现冻结金额 + BigDecimal froBalance = mallMoneyFlowMapper.selectSumAmountByStatusAndMemberId(MallMoneyFlow.STATUS_ING, id); + mallMemberVo.setFroBalance(froBalance); + //剩余保证金 + BigDecimal avaAmount = mallMemberStarBuyMapper.selectSumAvaAmountByStatusAndMemberId(1,id); + mallMemberVo.setAvaAmount(avaAmount); + String accountLevel = mallMemberVo.getAccountLevel(); + Integer memberLevelCode = MemberAccountLevelEnum.NORMAL.getMemberLevelCode(accountLevel); + mallMemberVo.setAccountLevelCode(memberLevelCode); return new FebsResponse().success().data(mallMemberVo); } @@ -672,7 +681,7 @@ //产生用户升级会员等级记录 MallMemberStarBuy mallMemberStarBuy = new MallMemberStarBuy(); mallMemberStarBuy.setMemberId(mallMember.getId()); - mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("ms")); + mallMemberStarBuy.setBuyCode(MallUtils.getLogisticsNum("MS")); mallMemberStarBuy.setStarName(buyStarDescription); mallMemberStarBuy.setStarCode(buyStarCode); mallMemberStarBuy.setAmount(buyStarPriceBigDecimal); diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java index 3bc8606..96edc5b 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java @@ -100,6 +100,14 @@ throw new FebsException(goods.getGoodsName() + "已下架"); } /** + * 存在未支付的订单无法下单 + */ + Integer orderIng = this.baseMapper.selectOrderInfoByStatusAndMemberId(OrderStatusEnum.FINISH.getValue(), mallMember.getId()); + if(1 <= orderIng){ + throw new FebsException("请先完成未完成的订单"); + } + + /** * 会员一天最多下单次数 */ DataDictionaryCustom buyTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java index fab4137..293b224 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java @@ -87,4 +87,13 @@ @ApiModelProperty(value = "是否店长 1-是 2-否") private Integer storeMaster; + @ApiModelProperty(value = "剩余保证金") + private BigDecimal avaAmount; + + @ApiModelProperty(value = "会员星级编码") + private Integer accountLevelCode; + + @ApiModelProperty(value = "冻结金额") + private BigDecimal froBalance; + } diff --git a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java index 0407999..91fd4cb 100644 --- a/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java +++ b/src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java @@ -48,4 +48,7 @@ @ApiModelProperty(value = "补贴金额") private BigDecimal subsidyAmount; + + @ApiModelProperty(value = "物流编号") + private String payTradeNo; } diff --git a/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml b/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml index 9cfe55b..24853ca 100644 --- a/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml +++ b/src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml @@ -31,4 +31,13 @@ and member_id = #{memberId} </select> + <select id="selectSumAvaAmountByStatusAndMemberId" resultType="java.math.BigDecimal"> + select + ifnull(sum(a.ava_amount),0) + from mall_member_star_buy a + where + a.member_id = #{memberId} + and a.status = #{status} + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml index c2827e7..fbb78fa 100644 --- a/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml +++ b/src/main/resources/mapper/modules/MallMoneyFlowMapper.xml @@ -154,4 +154,13 @@ where a.order_no = #{record.orderNo} order by a.CREATED_TIME desc </select> + + <select id="selectSumAmountByStatusAndMemberId" resultType="java.math.BigDecimal"> + select + ifnull(sum(a.amount),0) + from mall_member_withdraw a + where + a.member_id = #{memberId} + and a.status = #{status} + </select> </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 5a8d830..806a69b 100644 --- a/src/main/resources/mapper/modules/MallOrderInfoMapper.xml +++ b/src/main/resources/mapper/modules/MallOrderInfoMapper.xml @@ -113,6 +113,7 @@ <result column="deliver_type" property="deliverType" /> <result column="shop_id" property="shopId" /> <result column="subsidy_amount" property="subsidyAmount" /> + <result column="pay_trade_no" property="payTradeNo" /> <collection property="items" ofType="cc.mrbird.febs.mall.entity.MallOrderItem"> <id property="id" column="item_id" /> <result property="orderId" column="order_id" /> @@ -322,11 +323,12 @@ count(a.id) from mall_order_info a where - <if test="createdTime != null"> - date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime} - </if> - and a.status = 4 + a.status <![CDATA[>= ]]> 4 and a.member_id = #{memberId} + <if test="createdTime != null"> + and date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime} + </if> + </select> <select id="selectTodayAmountByCreateTimeAndMemberId" resultType="java.math.BigDecimal"> @@ -334,10 +336,20 @@ ifnull(sum(a.subsidy_amount),0) from mall_order_info a where + a.status <![CDATA[>= ]]> 4 + and a.member_id = #{memberId} <if test="createdTime != null"> - date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime} + and date_format(a.CREATED_TIME, '%Y-%m-%d') = #{createdTime} </if> - and a.status = 4 - and a.member_id = #{memberId} + + </select> + + <select id="selectOrderInfoByStatusAndMemberId" resultType="java.lang.Integer"> + select + count(a.id) + from mall_order_info a + where + a.status <![CDATA[< ]]> 4 + and a.member_id = #{memberId} </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 fb10558..b47bba1 100644 --- a/src/test/java/cc/mrbird/febs/ProfitTest.java +++ b/src/test/java/cc/mrbird/febs/ProfitTest.java @@ -20,18 +20,23 @@ import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; import cc.mrbird.febs.mall.service.IMallAchieveService; import cc.mrbird.febs.mall.service.IMemberProfitService; +import cc.mrbird.febs.mall.vo.ApiMallSubsidyAmountInfoVo; import cc.mrbird.febs.pay.model.*; import cc.mrbird.febs.pay.service.UnipayService; import cc.mrbird.febs.rabbit.consumer.AgentConsumer; import cc.mrbird.febs.rabbit.producter.AgentProducer; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSON; +import cn.hutool.json.JSONUtil; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.math.BigDecimal; import java.text.DecimalFormat; +import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -95,35 +100,30 @@ @Test public void directorProfitTest() { - MallMember member = mallMemberMapper.selectById(1L); - MallOrderInfo orderInfo = mallOrderInfoMapper.selectOrderByMemberIdAndId(member.getId(), 577L); - if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) { - throw new FebsException("订单不存在"); - } - - if (orderInfo.getStatus() != OrderStatusEnum.WAIT_FINISH.getValue()) { - throw new FebsException("该状态不能确认收货"); - } - - orderInfo.setStatus(OrderStatusEnum.FINISH.getValue()); - orderInfo.setReceivingTime(new Date()); - mallOrderInfoMapper.updateById(orderInfo); - /** - * 通过支付流水记录,返回下单金额 - */ - MallMoneyFlow payFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn( - member.getId(), - orderInfo.getOrderNo(), - MallMoneyFlowTypeEnum.PAY.getCode(), - MallMoneyFlow.STATUS_SUCCESS, - MallMoneyFlow.IS_RETURN_N); - if(ObjectUtil.isNotEmpty(payFlow)){ - memberWalletService.addBalance(payFlow.getAmount().negate(),payFlow.getRtMemberId()); - payFlow.setIsReturn(MallMoneyFlow.IS_RETURN_Y); - mallMoneyFlowMapper.updateById(payFlow); - } - //产生补贴流水记录 - agentProducer.sendDirectRewardMsg(orderInfo.getId()); + MallMember member = mallMemberMapper.selectById(633L); + ApiMallSubsidyAmountInfoVo apiMallSubsidyAmountInfoVo = new ApiMallSubsidyAmountInfoVo(); + DateTime today = DateUtil.date(); + DateTime yesterday = DateUtil.yesterday(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String yyyyMMddToday = sdf.format(today); + String yyyyMMddYesterday = sdf.format(yesterday); + //今日补贴 + BigDecimal todayAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddToday,member.getId()); + apiMallSubsidyAmountInfoVo.setTodayAmount(todayAmount); + //今日累计接单 + Integer todayTotalCnt = mallOrderInfoMapper.selectCountByCreateTimeAndMemberId(yyyyMMddToday,member.getId()); + apiMallSubsidyAmountInfoVo.setTodayTotalCnt(todayTotalCnt); + //昨日补贴 + BigDecimal yesterdayAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId()); + apiMallSubsidyAmountInfoVo.setYesterdayAmount(yesterdayAmount); + //昨日累计接单 + Integer totalYesterdayCnt = mallOrderInfoMapper.selectCountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId()); + apiMallSubsidyAmountInfoVo.setTotalYesterdayCnt(totalYesterdayCnt); + //获得总额 + BigDecimal totalAmount = mallOrderInfoMapper.selectTodayAmountByCreateTimeAndMemberId(null,member.getId()); + apiMallSubsidyAmountInfoVo.setTotalAmount(totalAmount); + JSON parse = JSONUtil.parse(apiMallSubsidyAmountInfoVo); + System.out.println(parse.toString()); } @Autowired -- Gitblit v1.9.1