Cui Zhi Feng
2024-09-05 9adfc0c5aa084bc61807ce43badf8b9f48b588c3
src/main/java/com/mzl/flower/service/BaseService.java
@@ -10,6 +10,7 @@
import com.mzl.flower.dto.response.payment.OrderSalesItemChargeDTO;
import com.mzl.flower.entity.customer.Customer;
import com.mzl.flower.entity.flower.*;
import com.mzl.flower.entity.menber.Member;
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.entity.payment.FeeService;
import com.mzl.flower.entity.payment.OrderItemSales;
@@ -17,6 +18,7 @@
import com.mzl.flower.entity.supplier.Supplier;
import com.mzl.flower.mapper.customer.CustomerMapper;
import com.mzl.flower.mapper.flower.FlowerCategoryMapper;
import com.mzl.flower.mapper.member.MemberMapper;
import com.mzl.flower.mapper.partner.PartnerMapper;
import com.mzl.flower.mapper.supplier.SupplierMapper;
import com.mzl.flower.mapper.system.UserMapper;
@@ -25,6 +27,7 @@
import org.springframework.data.redis.core.RedisTemplate;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
@@ -56,6 +59,13 @@
    @Autowired
    private FlowerCategoryMapper flowerCategoryMapper;
    @Autowired
    private MemberMapper memberMapper;
    protected Member getMember(Long levelId){
        return memberMapper.selectById(levelId);
    }
    protected double getServiceFeeRate(List<FeeService> fees, Integer saleCount){
        int sc = saleCount == null ? 0 : saleCount;
@@ -225,7 +235,7 @@
                    break;
                }
            }
            fp = fp.add(b);
            fp = fp.add(getAmount(b));
            dto.setFirstFee(b);
        }
@@ -284,7 +294,7 @@
                        break;
                }
            }
            fp = fp.add(b);
            fp = fp.add(getAmount(b));
            dto.setSecondFee(b);
            FlowerMarkupSpCg fmpsc = null;
@@ -339,7 +349,7 @@
                        break;
                }
            }
            fp = fp.add(b);
            fp = fp.add(getAmount(b));
            dto.setPartnerFee(b);
        }
@@ -377,7 +387,7 @@
                    break;
                }
            }
            fp = fp.add(b);
            fp = fp.add(getAmount(b));
        }
        //二次加价
@@ -435,7 +445,7 @@
                    break;
            }
        }
        fp = fp.add(b);
        fp = fp.add(getAmount(b));
        return fp;
    }
@@ -463,6 +473,55 @@
        return p;
    }
    /**
     * 计算会员单价
     *
     * @param price
     * @param member
     * @return
     */
    protected BigDecimal calculateMemberPrice(BigDecimal price, Member member){
        if(price == null || member == null){
            return price;
        }
        BigDecimal r = price;
        String discountType = member.getDiscountType();
        if(Constants.DISCOUNT_TYPE.ratio.name().equals(discountType)){
            BigDecimal discountRatio = getAmount(member.getDiscountRatio());
            r = price.multiply(discountRatio).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP);
        } else if (Constants.DISCOUNT_TYPE.amount.name().equals(discountType)){
            BigDecimal discountAmount = getAmount(member.getDiscountAmount());
            r = price.subtract(discountAmount);
        }
        if(r.doubleValue() < 0){
            r = new BigDecimal(0);
        }
        return r;
    }
    protected Customer getCustomerByUserId(String userId){
        Customer p = customerMapper.selectOne(new QueryWrapper<Customer>()
                .eq("user_id", userId));
        if(p == null){
            throw new ValidationException("客户不存在");
        }
        return p;
    }
    protected Customer getCustomer(Long id){
        Customer p = customerMapper.selectById(id);
        if(p == null){
            throw new ValidationException("商户不存在");
        }
        return p;
    }
    public Partner getCurrentPartner(){
        String userId = SecurityUtils.getUserId();
        Partner p = partnerMapper.selectOne(new QueryWrapper<Partner>()