rk
7 小时以前 c74a6f59490cfb9a0ee37f70427739b74e7fbd58
server/services/src/main/java/com/doumee/biz/system/impl/OperationConfigBizImpl.java
@@ -9,6 +9,9 @@
import com.doumee.dao.system.model.SystemDictData;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.math.BigDecimal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -34,6 +37,23 @@
        dto.setInsuranceRate(getValue(Constants.OP_INSURANCE_RATE));
        dto.setOrderAcceptLimit(getValue(Constants.OP_ORDER_ACCEPT_LIMIT));
        dto.setAutoConfirmReceipt(getValue(Constants.OP_AUTO_CONFIRM_RECEIPT));
        dto.setNoGrabNotifyTime(getValue(Constants.OP_NO_GRAB_NOTIFY_TIME));
        dto.setNoGrabNotifyUsers(getValue(Constants.OP_NO_GRAB_NOTIFY_USERS));
        dto.setDefaultDeliveryRange(getValue(Constants.OP_DEFAULT_DELIVERY_RANGE));
        dto.setArrivalPickUpTime(getValue(Constants.OP_ARRIVAL_PICK_UP_TIME));
        dto.setOperationRadius(getValue(Constants.OP_OPERATION_RADIUS));
        dto.setOrderCouponOrderCount(getValue(Constants.OP_ORDER_COUPON_ORDER_COUNT));
        dto.setOrderCouponGiftCount(getValue(Constants.OP_ORDER_COUPON_GIFT_COUNT));
        dto.setOrderCouponId(getValue(Constants.OP_ORDER_COUPON_ID));
        dto.setRegisterCouponYears(getValue(Constants.OP_REGISTER_COUPON_YEARS));
        dto.setRegisterCouponGiftCount(getValue(Constants.OP_REGISTER_COUPON_GIFT_COUNT));
        dto.setRegisterCouponId(getValue(Constants.OP_REGISTER_COUPON_ID));
        dto.setRegisterGiftCouponIds(getValue(Constants.OP_REGISTER_GIFT_COUPON_IDS));
        dto.setRegisterRewardOrderCount(getValue(Constants.OP_REGISTER_REWARD_ORDER_COUNT));
        dto.setRegisterRewardAmount(fenToYuan(getValue(Constants.OP_REGISTER_REWARD_AMOUNT)));
        dto.setPlatformRewardOrderCount(getValue(Constants.OP_PLATFORM_REWARD_ORDER_COUNT));
        dto.setPlatformRewardAmount(fenToYuan(getValue(Constants.OP_PLATFORM_REWARD_AMOUNT)));
        dto.setInvoiceMonthLimit(getValue(Constants.OP_INVOICE_MONTH_LIMIT));
        return dto;
    }
@@ -49,6 +69,23 @@
        saveOrUpdate(Constants.OP_INSURANCE_RATE, "保费比率", dto.getInsuranceRate());
        saveOrUpdate(Constants.OP_ORDER_ACCEPT_LIMIT, "接单数量", dto.getOrderAcceptLimit());
        saveOrUpdate(Constants.OP_AUTO_CONFIRM_RECEIPT, "自动确认收货", dto.getAutoConfirmReceipt());
        saveOrUpdate(Constants.OP_NO_GRAB_NOTIFY_TIME, "无人抢单通知时间", dto.getNoGrabNotifyTime());
        saveOrUpdate(Constants.OP_NO_GRAB_NOTIFY_USERS, "无人抢单短信通知人员", dto.getNoGrabNotifyUsers());
        saveOrUpdate(Constants.OP_DEFAULT_DELIVERY_RANGE, "默认配送范围", dto.getDefaultDeliveryRange());
        saveOrUpdate(Constants.OP_ARRIVAL_PICK_UP_TIME, "即将到达取件时间通知", dto.getArrivalPickUpTime());
//        saveOrUpdate(Constants.OP_OPERATION_RADIUS, "允许操作半径", dto.getOperationRadius());
        saveOrUpdate(Constants.OP_ORDER_COUPON_ORDER_COUNT, "下单赠送-订单次数", dto.getOrderCouponOrderCount());
        saveOrUpdate(Constants.OP_ORDER_COUPON_GIFT_COUNT, "下单赠送-至多赠送次数", dto.getOrderCouponGiftCount());
        saveOrUpdate(Constants.OP_ORDER_COUPON_ID, "下单赠送-优惠券ID", dto.getOrderCouponId());
        saveOrUpdate(Constants.OP_REGISTER_COUPON_YEARS, "注册赠送-注册年数", dto.getRegisterCouponYears());
        saveOrUpdate(Constants.OP_REGISTER_COUPON_GIFT_COUNT, "注册赠送-至多赠送次数", dto.getRegisterCouponGiftCount());
        saveOrUpdate(Constants.OP_REGISTER_COUPON_ID, "注册赠送-优惠券ID", dto.getRegisterCouponId());
        saveOrUpdate(Constants.OP_REGISTER_GIFT_COUPON_IDS, "新注册赠送-优惠券IDs", dto.getRegisterGiftCouponIds());
        saveOrUpdate(Constants.OP_REGISTER_REWARD_ORDER_COUNT, "注册完成订单奖励单数", dto.getRegisterRewardOrderCount());
        saveOrUpdate(Constants.OP_REGISTER_REWARD_AMOUNT, "注册完成订单奖励金额(分)", yuanToFen(dto.getRegisterRewardAmount()));
        saveOrUpdate(Constants.OP_PLATFORM_REWARD_ORDER_COUNT, "平台完成订单奖励单数", dto.getPlatformRewardOrderCount());
        saveOrUpdate(Constants.OP_PLATFORM_REWARD_AMOUNT, "平台完成订单奖励金额(分)", yuanToFen(dto.getPlatformRewardAmount()));
        saveOrUpdate(Constants.OP_INVOICE_MONTH_LIMIT, "发票开具月份限制(月)", dto.getInvoiceMonthLimit());
    }
    private String getValue(String label) {
@@ -73,6 +110,20 @@
        }
    }
    private String fenToYuan(String fen) {
        if (StringUtils.isBlank(fen)) {
            return null;
        }
        return new BigDecimal(fen).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP).toPlainString();
    }
    private String yuanToFen(String yuan) {
        if (StringUtils.isBlank(yuan)) {
            return null;
        }
        return new BigDecimal(yuan).multiply(new BigDecimal("100")).setScale(0, BigDecimal.ROUND_HALF_UP).toPlainString();
    }
    private void validate(OperationConfigDTO dto) {
        if (dto == null
                || StringUtils.isBlank(dto.getDriverDailyCancelLimit())
@@ -82,7 +133,10 @@
                || StringUtils.isBlank(dto.getAutoCancelTime())
                || StringUtils.isBlank(dto.getInsuranceRate())
                || StringUtils.isBlank(dto.getOrderAcceptLimit())
                || StringUtils.isBlank(dto.getAutoConfirmReceipt())) {
                || StringUtils.isBlank(dto.getAutoConfirmReceipt())
                || StringUtils.isBlank(dto.getNoGrabNotifyTime())
                || StringUtils.isBlank(dto.getNoGrabNotifyUsers())
                || StringUtils.isBlank(dto.getDefaultDeliveryRange())) {
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "所有配置项均为必填");
        }
    }