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); } }