rk
2 天以前 7b09a9950f13521190a4aef9bbc2a6163445566c
小程序   接口开发
已修改5个文件
41 ■■■■■ 文件已修改
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_web/src/main/java/com/doumee/api/web/NoticeApi.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -83,9 +83,7 @@
    public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD";
    public static final String ACCESS_TOKEN = "ACCESS_TOKEN";
    public static final String MINIMUM_AVAILABLE_INTEGRAL = "MINIMUM_AVAILABLE_INTEGRAL";//最低可用积分配置
    public static final String SHOP_CONFIG = "SHOP_CONFIG";
    public static final String INTEGRAL_EXCHANGE_CASH_RATA = "INTEGRAL_EXCHANGE_CASH_RATA"; //积分-现金兑换比例(XXX积分抵扣1元)
    public static final String CASH_EXCHANGE_INTEGRAL_RATA = "CASH_EXCHANGE_INTEGRAL_RATA";//现金-积分兑换比例(1元可得到XXX积分)
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -999,13 +999,13 @@
            if(Constants.equalsInteger(model.getSortInfo(),Constants.ZERO)){
                wrapper.orderByDesc("t.CREATE_DATE");
            }else if(Constants.equalsInteger(model.getSortInfo(),Constants.ONE)){
                wrapper.orderByAsc("realSaleNum");
                wrapper.orderByAsc("(realSaleNum + t.SALENUM)");
            }else if(Constants.equalsInteger(model.getSortInfo(),Constants.TWO)){
                wrapper.orderByAsc("t.price");
                wrapper.orderByAsc("minPrice");
            }else if(Constants.equalsInteger(model.getSortInfo(),Constants.THREE)){
                wrapper.orderByDesc("realSaleNum");
                wrapper.orderByDesc("(realSaleNum + t.SALENUM)");
            }else if(Constants.equalsInteger(model.getSortInfo(),Constants.FOUR)){
                wrapper.orderByDesc("t.price");
                wrapper.orderByDesc("minPrice");
            }
        }
        IPage<Goods> page =
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1418,7 +1418,6 @@
            if(Objects.isNull(orderGoodsCalculateResponse.getCouponDeductCash())){
                orderGoodsCalculateResponse.setCouponDeductCash(BigDecimal.ZERO);
            }
//            orderGoodsCalculateResponse.setIntegralDeductCash(BigDecimal.ZERO);
        }
        //订单总金额
        BigDecimal amount = BigDecimal.ZERO;
@@ -1446,6 +1445,9 @@
        List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(request.getPayDetailRequestList(),request.getMemberId());
        if(CollectionUtils.isNotEmpty(memberCouponList)){
            orderPayConfirmResponse.setMemberCouponList(memberCouponList);
            if(Objects.nonNull(request.getCouponId())&&Constants.equalsInteger(request.getCouponId(),-Constants.ONE)&&Objects.nonNull(memberCouponList)){
                request.setCouponId(memberCouponList.get(Constants.ZERO).getId());
            }
            //如果选择了优惠券,则判断选择的优惠券是否有效
            if(Objects.nonNull(request.getCouponId())){
                List<MemberCoupon>  memberCoupons = memberCouponList.stream().filter(i->Constants.equalsInteger(i.getId(),request.getCouponId())).collect(Collectors.toList());
@@ -1465,7 +1467,7 @@
        //查询用户总积分
        Member member = memberMapper.selectById(request.getMemberId());
        //最低可用启用积分
        BigDecimal minimumIntegral = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.MINIMUM_AVAILABLE_INTEGRAL).getCode());
        BigDecimal minimumIntegral = new BigDecimal(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET,Constants.INTERALSET_MININTEGRALPRICELIMIT).getCode());
        //积分可使用状态  大于0 大于最小可用配置积分值
        orderPayConfirmResponse.setIntegralStatus(
                (member.getIntegral().compareTo(BigDecimal.ZERO)<=Constants.ZERO||
@@ -1476,6 +1478,8 @@
        orderPayConfirmResponse.setIntegralAmount(integralAmount);
        if(Constants.equalsInteger(orderPayConfirmResponse.getIntegralStatus(),Constants.ZERO)){
            integralAmount = this.calculateIntegralRata(orderPayConfirmResponse,goodsCalculateList,member.getIntegral());
        }else{
            orderPayConfirmResponse.setSurplusIntegral(member.getIntegral());
        }
        //邮费金额
@@ -1489,7 +1493,7 @@
                    }
                    Areas areas = areasMapper.selectOne(new QueryWrapper<Areas>().lambda()
                            .eq(Areas::getIsdeleted,Constants.ZERO)
                            .eq(Areas::getId,StringUtils.leftPad(addr.getAreaId().toString().substring(0,2),6,"0"))
                            .eq(Areas::getId,StringUtils.rightPad(addr.getAreaId().toString().substring(0,2),6,"0"))
                            .isNotNull(Areas::getYunFeeId)
                            .last(" limit 1 ")
                    );
@@ -1506,7 +1510,7 @@
                BigDecimal totalWeight = goodsCalculateList.stream().map(i->
                        i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
                ).reduce(BigDecimal.ZERO,BigDecimal::add);
                if(totalWeight.compareTo(mailConfigResponse.getWeight0())>=Constants.ZERO){
                if(totalWeight.compareTo(mailConfigResponse.getWeight0())<=Constants.ZERO){
                    mailAmount = mailConfigResponse.getFee0();
                }else{
                    //超重重量
@@ -1581,9 +1585,9 @@
    public BigDecimal  calculateIntegralRata(OrderPayConfirmResponse orderPayConfirmResponse,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalIntegral){
        //当前选择商品最大可用积分抵扣的金额
        BigDecimal maxDeductionCash =  goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(Objects.isNull(i.getCouponDeductCash())?BigDecimal.ZERO:i.getCouponDeductCash())
                .multiply(i.getDeductRata()).multiply(new BigDecimal("0.01"))).reduce(BigDecimal.ZERO,BigDecimal::add);
                .multiply(i.getDeductRata()).divide(new BigDecimal("100"),2,RoundingMode.DOWN)).reduce(BigDecimal.ZERO,BigDecimal::add);
        //积分-现金兑换比例(XXX积分抵扣1元)
        BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.INTEGRAL_EXCHANGE_CASH_RATA).getCode());
        BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.INTEGRAL_SET,Constants.INTERALSET_DEDUCTINTEGRALLIMIT).getCode());
        //当前选择商品抵扣需要使用的积分
        BigDecimal maxDeductionIntegral =  maxDeductionCash.multiply(cashToIntegralRata);
        //获取当前需要支付的现金总额
@@ -1593,7 +1597,9 @@
        //循环下单商品列表 计算应该使用的积分值
        BigDecimal realDeductionCash = BigDecimal.ZERO;
        for (int j = 0; j < goodsCalculateList.size(); j++) {
            BigDecimal deductionCash = goodsCalculateList.get(j).getSkuAmount().subtract(goodsCalculateList.get(j).getCouponDeductCash());
            //获取最大可抵扣金额
            BigDecimal deductionCash = goodsCalculateList.get(j).getSkuAmount().subtract(goodsCalculateList.get(j).getCouponDeductCash())
                    .multiply(goodsCalculateList.get(j).getDeductRata()).divide(new BigDecimal("100"),2,RoundingMode.DOWN);
            goodsCalculateList.get(j).setIntegralMaxDeductCash(deductionCash);
            //如果剩余积分大于可以使用积分 则直接满额计算 反之 剩余积分不能满足全部抵扣 单独计算每个商品占比
            if(totalIntegral.compareTo(maxDeductionIntegral)<Constants.ZERO){
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -586,7 +586,11 @@
                        .eq(MemberCoupon::getStatus,Constants.ZERO)
                        .eq(MemberCoupon::getMemberId,memberId)
                        .apply("  LIMIT_PRICE <= " + totalAmount)
                        .apply("  now() between START_DATE and  END_DATE "));
                        .apply("  now() between START_DATE and  END_DATE ")
                        .orderByDesc(MemberCoupon::getMaxPrice)
                        .orderByAsc(MemberCoupon::getEndDate)
        )
                ;
        if(CollectionUtils.isNotEmpty(allCoupon)){
            for (MemberCoupon memberCoupon:allCoupon) {
server/dmmall_web/src/main/java/com/doumee/api/web/NoticeApi.java
@@ -38,7 +38,10 @@
    })
    public ApiResponse<PageData<NoticeCardDTO>> findNoticeCardDTOPage(@RequestBody PageWrap<Notice> pageWrap){
        pageWrap.getModel().setMemberId(this.getMemberId());
        return ApiResponse.success(noticeService.findNoticeCardDTOPage(pageWrap));
        PageData<NoticeCardDTO> pageData = noticeService.findNoticeCardDTOPage(pageWrap);
        //标记已读
        noticeService.autoRead(getMemberId(),pageWrap.getModel().getQueryType());
        return ApiResponse.success(pageData);
    }
    /**