rk
8 小时以前 b9371ee62d1f24c667b1d5b1df504ebb59a2289d
小程序   接口开发
已添加1个文件
已修改6个文件
137 ■■■■ 文件已修改
server/dmmall_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/web/response/MailConfigResponse.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/dmmall_service/src/main/java/com/doumee/biz/system/SystemDictDataBiz.java
@@ -1,6 +1,7 @@
package com.doumee.biz.system;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.web.response.MailConfigResponse;
import java.util.List;
@@ -40,4 +41,6 @@
   * @return
   */
  SystemDictData findCoffeeArticleBackground(String codes);
  MailConfigResponse getMailConfig();
}
server/dmmall_service/src/main/java/com/doumee/biz/system/impl/SystemDictDataBizImpl.java
@@ -7,6 +7,7 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.model.SystemDict;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.web.response.MailConfigResponse;
import com.doumee.service.system.SystemDictDataService;
import com.doumee.service.system.SystemDictService;
import org.apache.commons.lang3.StringUtils;
@@ -15,10 +16,8 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.math.BigDecimal;
import java.util.*;
@Service
public class SystemDictDataBizImpl implements SystemDictDataBiz {
@@ -168,4 +167,48 @@
        one.setCode(path+one.getCode());
        return one;
    }
    @Override
    public MailConfigResponse getMailConfig(){
        MailConfigResponse mailConfigResponse = new MailConfigResponse();
        SystemDictData systemDictData = new SystemDictData();
        systemDictData.setDeleted(Boolean.FALSE);
        systemDictData.setLabel(Constants.FIRST_WEIGHT);
        SystemDictData one = systemDictDataService.findOne(systemDictData);
        if(Objects.isNull(one)){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
        }
        mailConfigResponse.setFee0(new BigDecimal(one.getCode()));
        systemDictData.setLabel(Constants.CONTINUE_FEE);
        one = systemDictDataService.findOne(systemDictData);
        if(Objects.isNull(one)){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
        }
        mailConfigResponse.setFee1(new BigDecimal(one.getCode()));
        systemDictData.setLabel(Constants.FIRST_WEIGHT);
        one = systemDictDataService.findOne(systemDictData);
        if(Objects.isNull(one)){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
        }
        mailConfigResponse.setWeight0(new BigDecimal(one.getCode()));
        systemDictData.setLabel(Constants.CONTINUE_WEIGHT);
        one = systemDictDataService.findOne(systemDictData);
        if(Objects.isNull(one)){
            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "数据值不存在");
        }
        mailConfigResponse.setWeight1(new BigDecimal(one.getCode()));
        return mailConfigResponse;
    }
}
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -77,6 +77,11 @@
    public static final String CASH_EXCHANGE_INTEGRAL_RATA = "CASH_EXCHANGE_INTEGRAL_RATA";//现金-积分兑换比例(1元可得到XXX积分)
    public static final String MAIL_CONFIG = "MAIL_CONFIG";
    public static final String FIRST_WEIGHT = "FIRST_WEIGHT";
    public static final String CONTINUE_WEIGHT = "CONTINUE_WEIGHT";
    public static final String FIRST_FEE = "FIRST_FEE";
    public static final String CONTINUE_FEE = "CONTINUE_FEE";
    public static final String INITIAL_ROLE = "INITIAL_ROLE";
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -205,6 +205,13 @@
    @ApiModelProperty(value = "经销商结算金额", example = "1")
    private BigDecimal shopSettlement;
    @ApiModelProperty(value = "返还经销商积分", example = "1")
    private BigDecimal returnCustomerIntegral;
    @ApiModelProperty(value = "返还用户积分", example = "1")
    private BigDecimal returnMemberIntegral;
    @ApiModelProperty(value = "文件地址")
    @TableField(exist = false)
    private String resourcePath;
server/dmmall_service/src/main/java/com/doumee/dao/web/response/MailConfigResponse.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
package com.doumee.dao.web.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/3/23 9:50
 */
@Data
@ApiModel("邮费配置信息")
public class MailConfigResponse {
    @ApiModelProperty(value = "首重")
    private BigDecimal weight0;
    @ApiModelProperty(value = "首重运费")
    private BigDecimal fee0;
    @ApiModelProperty(value = "续重")
    private BigDecimal weight1;
    @ApiModelProperty(value = "续重运费")
    private BigDecimal fee1;
}
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java
@@ -90,7 +90,7 @@
    @ApiModelProperty(value = "核销码", example = "1")
    private String exchangeCode;
    @ApiModelProperty(value = "抵扣金额", example = "1")
    @ApiModelProperty(value = "积分抵扣金额", example = "1")
    private BigDecimal integral;
    @ApiModelProperty(value = "快递名称", example = "1")
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -24,6 +25,7 @@
import com.doumee.dao.web.request.*;
import com.doumee.dao.web.request.goods.*;
import com.doumee.dao.web.response.HomeInfoResponse;
import com.doumee.dao.web.response.MailConfigResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.*;
import com.doumee.service.business.AreasService;
@@ -814,6 +816,8 @@
                    .eq(MemberCoupon::getId,orderPayConfirmResponse.getMemberCoupon().getId())
            );
        }
        goodsorder.setReturnCustomerIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ONE));
        goodsorder.setReturnMemberIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ZERO));
        goodsorderMapper.insert(goodsorder);
        List<OrderGoodsCalculateResponse> goodsCalculateList  = orderPayConfirmResponse.getGoodsCalculateList();
        if(CollectionUtils.isEmpty(goodsCalculateList)){
@@ -1389,6 +1393,7 @@
        //邮费金额
        if(Objects.nonNull(request.getReceiveType())){
            if(Constants.equalsInteger(request.getReceiveType(),Constants.ZERO)){
                MailConfigResponse mailConfigResponse = systemDictDataBiz.getMailConfig();
                if(Objects.nonNull(request.getAddressId())){
                    Addr addr = addrMapper.selectById(request.getAddressId());
                    if(Objects.isNull(addr)){
@@ -1404,28 +1409,28 @@
                        Labels  labels = labelsMapper.selectById(areas.getYunFeeId());
                        if(Objects.nonNull(labels)&&StringUtils.isNotBlank(labels.getParam())){
                            //{weight0:10,fee0:10,weight1:10,fee1:10},{首重:10,首重运费:10,续重:10,续重费:10}
                            mailConfigResponse = JSONObject.parseObject(labels.getParam(),MailConfigResponse.class);
                        }
                    }
                }
                //TODO  æ ¹æ®æ”¶è´§åœ°å€ æŸ¥è¯¢è¿è´¹é…ç½®
                //根据收货地址 æŸ¥è¯¢è¿è´¹é…ç½®
                //计算商品信息总重量
                BigDecimal totalWeight = goodsCalculateList.stream().map(i->
                        i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
                ).reduce(BigDecimal.ZERO,BigDecimal::add);
                //TODO æš‚时无运费金额
                mailAmount = BigDecimal.ZERO;
                if(totalWeight.compareTo(mailConfigResponse.getWeight0())>=Constants.ZERO){
                    mailAmount = mailConfigResponse.getFee0();
                }else{
                    //超重重量
                    BigDecimal overWeight = totalWeight.subtract(mailConfigResponse.getWeight0());
                    if (overWeight.compareTo(mailConfigResponse.getWeight1()) >= Constants.ZERO) {
                        mailAmount = mailConfigResponse.getFee0().add(
                                mailConfigResponse.getFee1()
                                .multiply(overWeight.divide(mailConfigResponse.getWeight1(),2,RoundingMode.HALF_UP)));
                    }else{
                        mailAmount = mailConfigResponse.getFee0().add(mailConfigResponse.getFee1());
                    }
                }
                amount = amount.add(mailAmount);
            }
        }