From 7fbb76204e3a145e54edb8f9bfcf002251acb34a Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期二, 03 九月 2024 10:02:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2' into master-v2

---
 src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpSaveBatchDTO.java |   20 ++++++
 src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java          |   27 ++++++++
 src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java             |    3 +
 src/main/java/com/mzl/flower/web/partner/FlowerMarkupSpController.java          |   28 +++++++++
 src/main/java/com/mzl/flower/service/payment/OrderService.java                  |    3 +
 src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java        |    2 
 src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java           |    3 +
 src/main/java/com/mzl/flower/schedule/PointScheduleService.java                 |    2 
 src/main/java/com/mzl/flower/mapper/flower/FlowerMarkupSpMapper.java            |    3 +
 src/main/java/com/mzl/flower/service/customer/CustomerService.java              |   13 ++++
 src/main/java/com/mzl/flower/service/system/UserService.java                    |   16 +++++
 src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml                       |   35 +++++++++++
 12 files changed, 149 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpSaveBatchDTO.java b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpSaveBatchDTO.java
new file mode 100644
index 0000000..59a5d99
--- /dev/null
+++ b/src/main/java/com/mzl/flower/dto/request/flower/FlowerMarkupSpSaveBatchDTO.java
@@ -0,0 +1,20 @@
+package com.mzl.flower.dto.request.flower;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class FlowerMarkupSpSaveBatchDTO {
+    @ApiModelProperty(value = "商品ids")
+    private List<Long> flowerIds;
+
+    @ApiModelProperty(value = "金额")
+    private BigDecimal fee;
+
+    @ApiModelProperty(value = "合伙人ID")
+    private Long partnerId;
+
+}
diff --git a/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java b/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java
index 8e67b4f..7d12c3b 100644
--- a/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/current/CurrentUserDTO.java
@@ -50,4 +50,7 @@
 
     @ApiModelProperty(value = "是否绑定微信")
     private Boolean bindWechat;
+
+    @ApiModelProperty(value = "当前积分")
+    private Integer currentPoint;
 }
diff --git a/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java b/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java
index 7038788..fdb8747 100644
--- a/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java
+++ b/src/main/java/com/mzl/flower/dto/response/customer/CustomerDTO.java
@@ -1,5 +1,6 @@
 package com.mzl.flower.dto.response.customer;
 
+import com.mzl.flower.dto.request.menber.UserGrowthRecordDTO;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -52,4 +53,6 @@
 
     @ApiModelProperty("更新时间")
     private LocalDateTime updateTime;
+
+    private UserGrowthRecordDTO userGrowthRecord;
 }
diff --git a/src/main/java/com/mzl/flower/mapper/flower/FlowerMarkupSpMapper.java b/src/main/java/com/mzl/flower/mapper/flower/FlowerMarkupSpMapper.java
index 434eefe..318a93d 100644
--- a/src/main/java/com/mzl/flower/mapper/flower/FlowerMarkupSpMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/flower/FlowerMarkupSpMapper.java
@@ -14,4 +14,7 @@
 public interface FlowerMarkupSpMapper extends BaseMapper<FlowerMarkupSp> {
     List<FlowerMarkupSpListDTO> selectMarkupSpList(Page page, @Param("partnerId") Long partnerId
             , @Param("condition") FlowerMarkupSpQueryDTO dto);
+
+    List<FlowerMarkupSpListDTO> selectMarkupSpFlowerList(Page page, @Param("partnerId") Long partnerId
+            , @Param("condition") FlowerMarkupSpQueryDTO dto);
 }
diff --git a/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java b/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
index ae0809a..d8dc079 100644
--- a/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
+++ b/src/main/java/com/mzl/flower/mapper/member/MemberGrowthRecordMapper.java
@@ -23,7 +23,7 @@
 @Repository
 public interface MemberGrowthRecordMapper extends BaseMapper<MemberGrowthRecord> {
 
-    @Select("SELECT CASE WHEN SUM(growth) < 0 THEN 0 ELSE SUM(growth) END as total_growth from t_member_growth_record WHERE user_id  = #{userId} and deleted = '0'")
+    @Select("SELECT COALESCE(CASE WHEN SUM(growth) < 0 THEN 0 ELSE SUM(growth) END, 0)  as total_growth from t_member_growth_record WHERE user_id  = #{userId} and deleted = '0'")
     Integer getSumGrowthByUsertId(@Param("userId") String userId);
 
     List<MemberGrowthRecordVO> queryPage(@Param("dto") MemberRecordQueryDTO dto, Page page);
diff --git a/src/main/java/com/mzl/flower/schedule/PointScheduleService.java b/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
index ad3cd3d..4465d23 100644
--- a/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
+++ b/src/main/java/com/mzl/flower/schedule/PointScheduleService.java
@@ -55,7 +55,7 @@
                     customerPointDetail.setChangeType(Constants.POINT_CHANGE_TYPE.reduce.name());
                     customerPointDetail.setType(Constants.POINT_TYPE.expired.name());
                     customerPointDetail.setPoint(expiredPoint);
-                    customerPointDetail.setRecordDate(now);
+                    customerPointDetail.setRecordDate(lastYear);
                     customerPointDetail.create("sys");
                     customerPointDetail.setRemarks(DateUtils.toString(now,"yyyy-MM-dd")+"过期积分结算");
                     customerPointDetailMapper.insert(customerPointDetail);
diff --git a/src/main/java/com/mzl/flower/service/customer/CustomerService.java b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
index 564e32a..0081055 100644
--- a/src/main/java/com/mzl/flower/service/customer/CustomerService.java
+++ b/src/main/java/com/mzl/flower/service/customer/CustomerService.java
@@ -10,6 +10,7 @@
 import com.mzl.flower.dto.request.customer.ChangePartnerDTO;
 import com.mzl.flower.dto.request.customer.QueryCustomerDTO;
 import com.mzl.flower.dto.request.customer.UpdateCustomerDTO;
+import com.mzl.flower.dto.request.menber.UserGrowthRecordDTO;
 import com.mzl.flower.dto.response.customer.CustomerDTO;
 import com.mzl.flower.dto.response.partner.PartnerDTO;
 import com.mzl.flower.entity.customer.Customer;
@@ -17,12 +18,15 @@
 import com.mzl.flower.enums.TrueOrFalseEnum;
 import com.mzl.flower.mapper.customer.CustomerMapper;
 import com.mzl.flower.mapper.partner.PartnerMapper;
+import com.mzl.flower.service.menber.MemberGrowthRecordService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @Service
@@ -34,6 +38,8 @@
     private final CustomerMapper customerMapper;
 
     private final PartnerMapper partnerMapper;
+    @Resource
+    private MemberGrowthRecordService memberGrowthRecordService;
 
     public CustomerService(CustomerMapper customerMapper, PartnerMapper partnerMapper) {
         this.customerMapper = customerMapper;
@@ -41,7 +47,12 @@
     }
 
     public CustomerDTO getCurrentCustomer() {
-        return customerMapper.getCurrentCustomer(SecurityUtils.getUserId());
+        CustomerDTO currentCustomer = customerMapper.getCurrentCustomer(SecurityUtils.getUserId());
+        UserGrowthRecordDTO userGrowthRecordDTO = memberGrowthRecordService.getInfoByUserId(SecurityUtils.getUserId());
+        if(!ObjectUtils.isEmpty(userGrowthRecordDTO)){
+            currentCustomer.setUserGrowthRecord(userGrowthRecordDTO);
+        }
+        return currentCustomer;
     }
 
     public PartnerDTO getCurrentBindPartner() {
diff --git a/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java b/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
index d5cc067..89b410b 100644
--- a/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
+++ b/src/main/java/com/mzl/flower/service/flower/FlowerMarkupSpService.java
@@ -26,7 +26,6 @@
     private FlowerMarkupSpMapper spMapper;
 
     public void saveMarkupSp(FlowerMarkupSpSaveDTO dto){
-
         FlowerMarkupSp sp = spMapper.selectOne(new QueryWrapper<FlowerMarkupSp>()
                 .eq("partner_id", dto.getPartnerId()).eq("flower_id", dto.getFlowerId()));
         if(sp == null){
@@ -45,6 +44,20 @@
         markupCacheClient.addMarkupSp(dto.getPartnerId(), dto.getFlowerId(), sp);
     }
 
+    public void saveMarkupSpBatch(FlowerMarkupSpSaveBatchDTO dto){
+        List<Long> flowerIds = dto.getFlowerIds();
+        if(flowerIds != null && flowerIds.size() > 0){
+            for(Long flowerId : flowerIds){
+                FlowerMarkupSpSaveDTO dt = new FlowerMarkupSpSaveDTO();
+                dt.setFlowerId(flowerId);
+                dt.setPartnerId(dto.getPartnerId());
+                dt.setFee(dto.getFee());
+
+                saveMarkupSp(dt);
+            }
+        }
+    }
+
     public FlowerMarkupSpDTO getMarkupSp(Long flowerId){
         FlowerMarkupSpDTO dto = new FlowerMarkupSpDTO();
         dto.setFlowerId(flowerId);
@@ -59,6 +72,18 @@
         return dto;
     }
 
+    public Page<FlowerMarkupSpListDTO> selectMarkupSpFlowerList(Page page, FlowerMarkupSpQueryDTO dto){
+        List<FlowerMarkupSpListDTO> ll = spMapper.selectMarkupSpFlowerList(page, dto.getPartnerId(), dto);
+        if(ll != null && ll.size() > 0){
+            for(FlowerMarkupSpListDTO ss : ll){
+                ss.setPrice(getFinalPriceForPartner(dto.getPartnerId(), ss.getCategory(), ss.getFlowerId(), ss.getPrice(), ss.getLevel()));
+            }
+        }
+
+        page.setRecords(ll);
+        return page;
+    }
+
     public Page<FlowerMarkupSpListDTO> selectMarkupSpList(Page page, FlowerMarkupSpQueryDTO dto){
 
         List<FlowerMarkupSpListDTO> ll = spMapper.selectMarkupSpList(page, dto.getPartnerId(), dto);
diff --git a/src/main/java/com/mzl/flower/service/payment/OrderService.java b/src/main/java/com/mzl/flower/service/payment/OrderService.java
index 75609cc..a332165 100644
--- a/src/main/java/com/mzl/flower/service/payment/OrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/OrderService.java
@@ -958,6 +958,9 @@
 
         if(checkList != null && checkList.size() > 0){
             for(OrderItemCheck c : checkList){
+                if(Constants.CHECK_TYPE.replace.name().equals(c.getType())){
+                    continue;
+                }
                 totalAmount = totalAmount.subtract(getAmount(c.getDeductAmount()));
             }
         }
diff --git a/src/main/java/com/mzl/flower/service/system/UserService.java b/src/main/java/com/mzl/flower/service/system/UserService.java
index fca2da7..855ec56 100644
--- a/src/main/java/com/mzl/flower/service/system/UserService.java
+++ b/src/main/java/com/mzl/flower/service/system/UserService.java
@@ -13,11 +13,14 @@
 import com.mzl.flower.dto.response.system.MenuTreeDTO;
 import com.mzl.flower.dto.response.system.UserDetailsDTO;
 import com.mzl.flower.dto.response.system.UserListDTO;
+import com.mzl.flower.entity.point.CustomerPoint;
 import com.mzl.flower.entity.system.*;
 import com.mzl.flower.enums.TrueOrFalseEnum;
+import com.mzl.flower.mapper.point.CustomerPointMapper;
 import com.mzl.flower.mapper.system.*;
 import com.mzl.flower.service.customer.CustomerService;
 import com.mzl.flower.service.partner.PartnerService;
+import com.mzl.flower.service.point.CustomerPointService;
 import com.mzl.flower.service.supplier.SupplierService;
 import com.mzl.flower.utils.TreeBuilderUtil;
 import com.mzl.flower.utils.UUIDGenerator;
@@ -73,6 +76,10 @@
 
     @Autowired
     private EmployeeMapper employeeMapper;
+
+    @Autowired
+    private CustomerPointMapper customerPointMapper;
+
 
     public User findUserByOpenId(String openId, String sessionKey, String unionId
             , String imgUrl, String nickname,String userType){
@@ -188,6 +195,15 @@
 
         if(Constants.USER_TYPE.customer.name().equals(user.getType())){
             result.setCustomerDTO(customerService.getCurrentCustomer());
+            //查询积分
+            CustomerPoint customerPoint = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>()
+                    .eq(CustomerPoint::getUserId, userId));
+            if(customerPoint == null){
+                result.setCurrentPoint(0);
+            }else{
+                Integer currentPoint =customerPoint.getTotalPoint()-customerPoint.getUsedPoint()-customerPoint.getExpiredPoint();
+                result.setCurrentPoint(currentPoint>=0?currentPoint:0);
+            }
         }else if(Constants.USER_TYPE.supplier.name().equals(user.getType())){
             result.setSupplierDTO(supplierService.getCurrentSupplier());
         }else if(Constants.USER_TYPE.partner.name().equals(user.getType())){
diff --git a/src/main/java/com/mzl/flower/web/partner/FlowerMarkupSpController.java b/src/main/java/com/mzl/flower/web/partner/FlowerMarkupSpController.java
index 6d56aca..88cfaff 100644
--- a/src/main/java/com/mzl/flower/web/partner/FlowerMarkupSpController.java
+++ b/src/main/java/com/mzl/flower/web/partner/FlowerMarkupSpController.java
@@ -6,6 +6,7 @@
 import com.mzl.flower.base.ReturnDataDTO;
 import com.mzl.flower.config.exception.ValidationException;
 import com.mzl.flower.dto.request.flower.FlowerMarkupSpQueryDTO;
+import com.mzl.flower.dto.request.flower.FlowerMarkupSpSaveBatchDTO;
 import com.mzl.flower.dto.request.flower.FlowerMarkupSpSaveDTO;
 import com.mzl.flower.dto.response.flower.FlowerMarkupSpDTO;
 import com.mzl.flower.dto.response.flower.FlowerMarkupSpListDTO;
@@ -65,7 +66,8 @@
     
     @GetMapping("/list")
     @ApiOperation(value = "获取商品加价列表")
-    public ResponseEntity<ReturnDataDTO<Page<FlowerMarkupSpListDTO>>> selectMarkupSpList(Page page, FlowerMarkupSpQueryDTO dto){
+    public ResponseEntity<ReturnDataDTO<Page<FlowerMarkupSpListDTO>>> selectMarkupSpList(Page page
+            , FlowerMarkupSpQueryDTO dto){
         Partner s = spService.getCurrentPartner();
         if(s == null){
             throw new ValidationException("未找到当前合伙人信息");
@@ -93,4 +95,28 @@
         return returnData(R.SUCCESS.getCode(), null);
     }
 
+
+    @GetMapping("/flower/list")
+    @ApiOperation(value = "获取加价商品加列表")
+    public ResponseEntity<ReturnDataDTO<Page<FlowerMarkupSpListDTO>>> selectMarkupSpFlowerList(Page page
+            , FlowerMarkupSpQueryDTO dto){
+        Partner s = spService.getCurrentPartner();
+        if(s == null){
+            throw new ValidationException("未找到当前合伙人信息");
+        }
+        dto.setPartnerId(s.getId());
+        return returnData(R.SUCCESS.getCode(), spService.selectMarkupSpFlowerList(page, dto));
+    }
+
+    @PostMapping("/flower/list/save")
+    @ApiOperation(value = "批量新增商品加价")
+    public ResponseEntity<ReturnDataDTO> saveMarkupSpBatch(@RequestBody FlowerMarkupSpSaveBatchDTO dto) {
+        Partner s = spService.getCurrentPartner();
+        if(s == null){
+            throw new ValidationException("未找到当前合伙人信息");
+        }
+        dto.setPartnerId(s.getId());
+        spService.saveMarkupSpBatch(dto);
+        return returnData(R.SUCCESS.getCode(), null);
+    }
 }
diff --git a/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml b/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
index 7e14ac5..69ef777 100644
--- a/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
+++ b/src/main/resources/mapper/flower/FlowerMarkupSpMapper.xml
@@ -36,5 +36,38 @@
         ORDER BY f.id
     </select>
 
-
+    <select id="selectMarkupSpFlowerList" resultType="com.mzl.flower.dto.response.flower.FlowerMarkupSpListDTO">
+        SELECT f.*, f.id flower_id, sp.fee, s.name supplierName, c.name categoryStr, c.parent_name parentCategoryStr
+        , (CASE f.level
+        WHEN 'A' THEN c.weight_a
+        WHEN 'B' THEN c.weight_b
+        WHEN 'C' THEN c.weight_c
+        WHEN 'D' THEN c.weight_d
+        WHEN 'E' THEN c.weight_e
+        WHEN 'O' THEN c.weight_o
+        END
+        ) weight
+        FROM t_flower f
+        left join t_flower_markup_sp sp on sp.flower_id = f.id and sp.partner_id = #{partnerId}
+        left join t_supplier_info s on s.id = f.supplier_id
+        left join t_flower_category c on f.category = c.id
+        WHERE f.deleted = 0 AND f.status = 'UP'
+        <if test="condition.name != null and condition.name != ''">
+            AND f.name LIKE concat('%', #{condition.name},'%')
+        </if>
+        <if test="condition.level != null and condition.level != ''">
+            AND f.level = #{condition.level}
+        </if>
+        <if test="condition.tags != null and condition.tags != ''">
+            AND f.tags LIKE concat('%', #{condition.tags},'%')
+        </if>
+        <if test="condition.category != null">
+            AND (f.category = #{condition.category}
+            or exists (
+            select 1 from t_flower_category fc where fc.id = f.category and fc.parent_id = #{condition.category}
+            )
+            )
+        </if>
+        ORDER BY f.id
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3