From 143d1c57f32e0bd34977491101c1feecc0ffc2df Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com>
Date: 星期一, 02 九月 2024 15:07:49 +0800
Subject: [PATCH] 积分商品批量删除和上下架
---
src/main/java/com/mzl/flower/service/BaseService.java | 71 +++++++++++++++++++++++++++++++++--
1 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/mzl/flower/service/BaseService.java b/src/main/java/com/mzl/flower/service/BaseService.java
index ac580a1..b796271 100644
--- a/src/main/java/com/mzl/flower/service/BaseService.java
+++ b/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;
@@ -113,10 +123,10 @@
}
if (platformSalesMap != null) {
- BigDecimal feePlatform = s.getFeePlatform();
- BigDecimal feePlatformPack = s.getFeePlatformPack();
- BigDecimal feePlatformCheck = s.getFeePlatformCheck();
- BigDecimal feePlatformTransport = s.getFeePlatformTransport();
+ BigDecimal feePlatform = getAmount(s.getFeePlatform());
+ BigDecimal feePlatformPack = getAmount(s.getFeePlatformPack());
+ BigDecimal feePlatformCheck = getAmount(s.getFeePlatformCheck());
+ BigDecimal feePlatformTransport = getAmount(s.getFeePlatformTransport());
BigDecimal b = platformSalesMap.get(orderItemId);
if (b == null) {
@@ -125,6 +135,10 @@
b = b.add(feePlatform).add(feePlatformPack).add(feePlatformCheck).add(feePlatformTransport);
platformSalesMap.put(orderItemId, b);
}
+ }
+
+ protected BigDecimal getAmount(BigDecimal amount){
+ return amount == null ? new BigDecimal(0) : amount;
}
protected void prepareSalesAmount(OrderSalesItem s
@@ -459,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>()
--
Gitblit v1.9.3