xiaoyong931011
2022-12-22 70cd2aec8a55e222070d4dd6d816dcb3231a1217
20221221
12 files modified
141 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/utils/MallUtils.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberStarBuyMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java 3 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberStarBuyMapper.xml 9 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml 9 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallOrderInfoMapper.xml 26 ●●●● patch | view | raw | blame | history
src/test/java/cc/mrbird/febs/ProfitTest.java 58 ●●●● patch | view | raw | blame | history
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);
    }
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);
}
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);
}
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);
}
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);
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(
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;
}
src/main/java/cc/mrbird/febs/mall/vo/OrderListVo.java
@@ -48,4 +48,7 @@
    @ApiModelProperty(value = "补贴金额")
    private BigDecimal subsidyAmount;
    @ApiModelProperty(value = "物流编号")
    private String payTradeNo;
}
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>
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>
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>
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