From f9691d544e62d6c04dbfe45d05a6c7bc5e004291 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 29 十二月 2023 11:52:29 +0800
Subject: [PATCH] 服务商

---
 server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java |   66 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 4 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
index 9e09b2c..48b43bd 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
@@ -1,11 +1,17 @@
 package com.doumee.service.business.impl;
 
 import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.BaseParamMapper;
+import com.doumee.dao.business.PricingDetailMapper;
 import com.doumee.dao.business.PricingParamMapper;
+import com.doumee.dao.business.model.BaseParam;
+import com.doumee.dao.business.model.PricingDetail;
 import com.doumee.dao.business.model.PricingParam;
 import com.doumee.service.business.PricingParamService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -19,6 +25,8 @@
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 瀹氫环鏂规閰嶇疆Service瀹炵幇
@@ -30,6 +38,12 @@
 
     @Autowired
     private PricingParamMapper pricingParamMapper;
+
+    @Autowired
+    private PricingDetailMapper pricingDetailMapper;
+
+    @Autowired
+    private BaseParamMapper baseParamMapper;
 
     @Override
     public String create(PricingParam pricingParam) {
@@ -45,7 +59,7 @@
         insert.setStartDate(pricingParam.getStartDate());
         insert.setEndDate(pricingParam.getEndDate());
         insert.setSortnum(pricingParam.getSortnum());
-        insert.setStatus(Constants.ZERO);
+        insert.setStatus(Constants.ONE);
         insert.setInfo(pricingParam.getInfo());
         pricingParamMapper.insert(insert);
         return insert.getId();
@@ -79,13 +93,57 @@
                 .eq(PricingParam::getId,pricingParam.getId())
                 .set(PricingParam::getEditor,principal.getId())
                 .set(PricingParam::getName,pricingParam.getName())
-                .set(PricingParam::getStatus,pricingParam.getStatus())
+//                .set(PricingParam::getStatus,pricingParam.getStatus())
                 .set(PricingParam::getStartDate,pricingParam.getStartDate())
-                .set(PricingParam::getEndDate,pricingParam.getEndDate())
+                .set(PricingParam::getEndDate,Utils.Date.getDayOfEnd(pricingParam.getEndDate()))
                 .set(PricingParam::getSortnum,pricingParam.getSortnum());
         pricingParamMapper.update(null,wrapper);
     }
 
+    @Override
+    public void updateStatus(PricingParam pricingParam) {
+
+        if (Objects.nonNull(pricingParam.getStatus()) && pricingParam.getStatus().equals(Constants.ZERO)){
+            QueryWrapper<PricingDetail> wrapper = new QueryWrapper<>();
+            wrapper.lambda()
+                    .eq(PricingDetail::getIsdeleted,Constants.ZERO)
+                    .eq(PricingDetail::getPricePramId,pricingParam.getId());
+            List<PricingDetail> pricingDetails = pricingDetailMapper.selectList(wrapper);
+            QueryWrapper<BaseParam> baseParamQuery = new QueryWrapper<>();
+            baseParamQuery.lambda()
+                            .eq(BaseParam::getIsdeleted,Constants.ZERO)
+                            .eq(BaseParam::getType,Constants.THREE);
+            List<BaseParam> baseParams = baseParamMapper.selectList(baseParamQuery);
+            if (CollectionUtils.isEmpty(pricingDetails)){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆浠锋牸");
+            }
+            List<String> collect = pricingDetails.stream().map(s -> s.getBikeTypeId()).collect(Collectors.toList());
+            boolean b = baseParams.stream().map(s -> s.getId()).allMatch(s -> collect.contains(s));
+
+            if (!b){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堜笅娌℃湁閰嶇疆瀹屾暣");
+            }
+            PricingParam pricingParam1 = new PricingParam();
+            pricingParam1.setId(pricingParam.getId());
+            pricingParam1.setStatus(pricingParam.getStatus());
+            pricingParamMapper.updateById(pricingParam1);
+        }else if (Objects.nonNull(pricingParam.getStatus()) && pricingParam.getStatus().equals(Constants.ONE)){
+
+            QueryWrapper<PricingParam> wrapper = new QueryWrapper<>();
+            wrapper.lambda()
+                    .eq(PricingParam::getIsdeleted,Constants.ZERO)
+                    .eq(PricingParam::getStatus,Constants.ZERO);
+            Integer integer = pricingParamMapper.selectCount(wrapper);
+            if (integer <= 1 ){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璇ュ畾浠锋柟妗堝繀椤婚厤缃�");
+            }
+            PricingParam pricingParam1 = new PricingParam();
+            pricingParam1.setId(pricingParam.getId());
+            pricingParam1.setStatus(pricingParam.getStatus());
+            pricingParamMapper.updateById(pricingParam1);
+        }
+
+    }
 
     @Override
     public void updateById(PricingParam pricingParam) {
@@ -164,8 +222,8 @@
         if (pageWrap.getModel().getInfo() != null) {
             queryWrapper.lambda().eq(PricingParam::getInfo, pageWrap.getModel().getInfo());
         }
-        queryWrapper.lambda().orderByAsc(PricingParam::getSortnum);
         queryWrapper.lambda().orderByAsc(PricingParam::getStatus);
+        queryWrapper.lambda().orderByAsc(PricingParam::getSortnum);
         return PageData.from(pricingParamMapper.selectPage(page, queryWrapper));
     }
 

--
Gitblit v1.9.3