From 5506edbe54883b31db3cc8e4a1d9d0795a18a3c9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 27 十二月 2024 14:37:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java |  445 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 343 insertions(+), 102 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
index 8e5ea03..c190001 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsBaseServiceImpl.java
@@ -1,20 +1,34 @@
 package com.doumee.service.business.impl;
 
+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.Constants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.SolutionsBaseMapper;
-import com.doumee.dao.business.model.SolutionsBase;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.join.SolutionWorktypeJoinMapper;
+import com.doumee.dao.business.join.SolutionsBaseJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.SolutionsBaseService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 淇濋櫓鏂规淇℃伅琛⊿ervice瀹炵幇
@@ -27,14 +41,152 @@
     @Autowired
     private SolutionsBaseMapper solutionsBaseMapper;
 
+    @Autowired
+    private SolutionsBaseJoinMapper solutionsBaseJoinMapper;
+
+    @Autowired
+    private InsuranceMapper insuranceMapper;
+
+    @Autowired
+    private SolutionWorktypeJoinMapper solutionWorktypeJoinMapper;
+
+    @Autowired
+    private WorktypeMapper worktypeMapper;
+
+    @Autowired
+    private CompanySolutionMapper companySolutionMapper;
+
+    @Autowired
+    private DuSolutionMapper duSolutionMapper;
+
+    @Autowired
+    private SolutionsMapper solutionsMapper;
+
+    @Autowired
+    private InsuranceApplyMapper insuranceApplyMapper;
+
     @Override
     public Integer create(SolutionsBase solutionsBase) {
-        solutionsBaseMapper.insert(solutionsBase);
+        LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        initCreateParam(solutionsBase);
+        if(solutionsBaseMapper.selectCount(new QueryWrapper<SolutionsBase>().lambda()
+                .eq(SolutionsBase::getName,solutionsBase.getName())
+                .eq(SolutionsBase::getIsdeleted,Constants.ZERO)
+                .eq(SolutionsBase::getDataType,Constants.ZERO)
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"淇濋櫓涓绘柟妗堝悕绉板凡瀛樺湪");
+        }
+
+
+        solutionsBase.setCreateDate(new Date());
+        solutionsBase.setCreator(user.getId());
+        solutionsBase.setEditDate(new Date());
+        solutionsBase.setEditor(user.getId());
+        solutionsBase.setIsdeleted(Constants.ZERO);
+        solutionsBase.setStatus(Constants.ZERO);
+        solutionsBase.setVersion(UUID.randomUUID().toString());//鐗堟湰鍙�
+        solutionsBase.setDataType(Constants.ZERO);
+
+        //2024骞�6鏈�17鏃�15:56:18 浠呮敮鎸佹浛鎹㈡ā寮忎笅锛屾壒澧為厤缃棩鏈� 绛変簬 鎵瑰噺閰嶇疆鏃ユ湡
+        if(Constants.equalsInteger(solutionsBase.getDelOnlyReplace(),Constants.ONE)){
+            solutionsBase.setAddValidDays(solutionsBase.getDelValidDays());
+        }
+        solutionsBaseMapper.insert(solutionsBase); //鍩虹鐗堟湰
+
+        //濡傛灉鏈夊伐绉嶏紝鍒欎骇鐢熶竴涓柊鐨勬湁鏁堝巻鍙茬増鏈� ~
+        SolutionsBase newModel = new SolutionsBase();
+        BeanUtils.copyProperties(solutionsBase,newModel);
+        newModel.setId(null);
+        newModel.setBaseId(solutionsBase.getId());
+        newModel.setDataType(Constants.TWO);
+        solutionsBaseMapper.insert(newModel);
+
+        dealWorkTypeInsurance(solutionsBase,newModel,solutionsBase.getWorktypeIdList());
+
         return solutionsBase.getId();
+    }
+
+
+
+
+
+    private void dealWorkTypeInsurance(SolutionsBase solutionsBase, SolutionsBase newModel, List<Integer> worktypeIdList) {
+        Insurance  model = insuranceMapper.selectById(solutionsBase.getInsuranceId());
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
+                || !Constants.equalsInteger(model.getDataType(),Constants.TWO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ繚闄╁叕鍙镐俊鎭笉瀛樺湪锛岃灏濊瘯鍒锋柊椤甸潰閲嶈瘯~" );
+        }
+        if( !Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヤ繚闄╁叕鍙稿凡琚鐢紝璇峰皾璇曞埛鏂伴〉闈㈤噸璇晘" );
+        }
+        List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
+                .eq(Worktype::getInsuranceId,solutionsBase.getInsuranceId())
+                .eq(Worktype::getIsdeleted,Constants.ZERO)
+                .in(Worktype::getId,worktypeIdList));
+        if(worktypeList==null ||worktypeIdList.size()==0){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝宸ョ淇℃伅閫夋嫨鏈夎锛岃灏濊瘯鍒锋柊椤甸潰閲嶈瘯~" );
+        }
+        int num =0;
+        for(Worktype type : worktypeList) {
+            //鍩虹鐗堟湰
+            SolutionWorktype w = new SolutionWorktype();
+            w.setSolutionId(solutionsBase.getId());
+            w.setIsdeleted(Constants.ZERO);
+            w.setCreator(newModel.getCreator());
+            w.setCreateDate(solutionsBase.getCreateDate());
+            w.setWorktypeId(type.getId());
+            w.setStatus(Constants.ZERO);
+            w.setSortnum(num++);
+            w.setType(Constants.ONE);
+            solutionWorktypeJoinMapper.insert(w);
+
+            //鍘嗗彶鐗堟湰鐨勫伐绉嶄俊鎭�
+            SolutionWorktype newType = new SolutionWorktype();
+            BeanUtils.copyProperties(w, newType);
+            newType.setSolutionId(newModel.getId());
+            solutionWorktypeJoinMapper.insert(newType);
+        }
+    }
+
+
+    private void initCreateParam(SolutionsBase solutionsBase) {
+        if(StringUtils.isBlank(solutionsBase.getName())||
+            StringUtils.isBlank(solutionsBase.getCompanyName())
+                || Objects.isNull(solutionsBase.getValidType())
+                || Objects.isNull(solutionsBase.getCanAdd())
+                || Objects.isNull(solutionsBase.getCanReduce())
+                || Objects.isNull(solutionsBase.getCanChangeUnit())
+                || Objects.isNull(solutionsBase.getDelOnlyReplace())
+                || Objects.isNull(solutionsBase.getAddValidDays())
+                || Objects.isNull(solutionsBase.getDelValidDays())
+                || Objects.isNull(solutionsBase.getInsuranceId())
+                ||solutionsBase.getInsuranceId()==null
+                || Constants.formatIntegerNum(solutionsBase.getMaxAge()) < 0
+                ||Constants.formatIntegerNum(solutionsBase.getMinAge()) < 0
+                ||Constants.formatIntegerNum( solutionsBase.getMinAge()) >Constants.formatIntegerNum(solutionsBase.getMaxAge())
+                || com.github.xiaoymin.knife4j.core.util.CollectionUtils.isEmpty(solutionsBase.getWorktypeIdList())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(Constants.equalsInteger(solutionsBase.getValidType(),Constants.ZERO) && Objects.isNull(solutionsBase.getValidTypeNum())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
     }
 
     @Override
     public void deleteById(Integer id) {
+        SolutionsBase solutionsBase = solutionsBaseMapper.selectById(id);
+        if (!Objects.isNull(solutionsBase)){
+            //鏌ヨ涓绘柟妗堜笅鎵�鏈夊惎鐢ㄧ増鏈暟鎹腑 鏄惁瀛樺湪 瀛愭柟妗�
+            if(solutionsMapper.selectCount(new QueryWrapper<Solutions>()
+                    .lambda()
+                    .eq(Solutions::getDataType,Constants.ZERO)
+                    .eq(Solutions::getIsdeleted,Constants.ZERO)
+                            .eq(Solutions::getParentId,id)
+            )>Constants.ZERO){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"["+solutionsBase.getName()+"]涓嬪瓨鍦ㄥ瓙鏂规,鏃犳硶杩涜鍒犻櫎");
+            };
+        }
         solutionsBaseMapper.deleteById(id);
     }
 
@@ -45,17 +197,124 @@
     }
 
     @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void deleteByIdInBatch(List<Integer> ids) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
+        }
+        for (Integer id:ids) {
+            this.deleteById(id);
         }
         solutionsBaseMapper.deleteBatchIds(ids);
     }
 
     @Override
     public void updateById(SolutionsBase solutionsBase) {
+        LoginUserInfo user= (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
+        SolutionsBase model = findById(solutionsBase.getId());
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
+                || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        //鏁版嵁鏈夋晥鎬ф牎楠�
+        initCreateParam(solutionsBase);
+        //鏌ヨ鏄惁宸插瓨鍦ㄤ娇鐢ㄤ腑鐨勪繚鍗�
+        if(insuranceApplyMapper.selectCount(new QueryWrapper<InsuranceApply>().lambda()
+                .apply(" solution_id in (  select s.ID from solutions s where s.PARENT_ID in ( select id from solutions_base where BASE_ID =  "+solutionsBase.getId()+"  or id = "+solutionsBase.getId()+" ) )" )
+                .notIn(InsuranceApply::getStatus
+                        ,Constants.InsuranceApplyStatus.PLATFORM_RETURN
+                        ,Constants.InsuranceApplyStatus.CLOSE
+                        ,Constants.InsuranceApplyStatus.WTB_CLOSED
+                )
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪宸叉姇淇濈殑淇濆崟鏁版嵁,鏃犳硶杩涜淇敼");
+        };
+
+        if(solutionsBaseMapper.selectCount(new QueryWrapper<SolutionsBase>().lambda()
+                .eq(SolutionsBase::getName,solutionsBase.getName())
+                .eq(SolutionsBase::getIsdeleted,Constants.ZERO)
+                .eq(SolutionsBase::getDataType,Constants.ZERO)
+                .ne(SolutionsBase::getId,solutionsBase.getId())
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"淇濋櫓涓绘柟妗堝悕绉板凡瀛樺湪");
+        }
+
+        solutionsBase.setEditor(user.getId());
+        solutionsBase.setVersion(UUID.randomUUID().toString());
+        solutionsBase.setEditDate(new Date());
+
+        //2024骞�6鏈�17鏃�15:56:18 浠呮敮鎸佹浛鎹㈡ā寮忎笅锛屾壒澧炴棩鏈� 绛変簬 鎵瑰噺鏃ユ湡
+        if(Constants.equalsInteger(solutionsBase.getDelOnlyReplace(),Constants.ONE)){
+            solutionsBase.setAddValidDays(solutionsBase.getDelValidDays());
+        }
         solutionsBaseMapper.updateById(solutionsBase);
+        SolutionsBase oldVersion = solutionsBaseMapper.selectOne(new QueryWrapper<SolutionsBase>()
+                .lambda()
+                .eq(SolutionsBase::getBaseId,solutionsBase.getId())
+                .eq(SolutionsBase::getDataType,Constants.TWO)
+                .last("limit 1")
+        );
+
+        if(Objects.isNull(oldVersion)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍘嗗彶鐗堟湰鏁版嵁");
+        }
+
+        //濡傛灉淇敼锛屽垯浜х敓涓�涓柊鐨勫巻鍙茬増鏈� ~
+        SolutionsBase newModel = new SolutionsBase();
+        BeanUtils.copyProperties( findById(solutionsBase.getId()),newModel);
+        newModel.setId(null);
+        newModel.setVersion(solutionsBase.getVersion());
+        newModel.setCreateDate(new Date());
+        newModel.setBaseId(solutionsBase.getId());
+        newModel.setDataType(Constants.TWO);
+        solutionsBaseMapper.insert(newModel);
+
+        //鍒犻櫎鐖舵柟妗堜笅鎵�鏈夊伐绉嶆暟鎹�
+        solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>()
+                .lambda()
+                .eq(SolutionWorktype::getSolutionId,solutionsBase.getId())
+                .eq(SolutionWorktype::getType,Constants.ONE)
+        );
+        //鍒犻櫎鐖舵柟妗堜笅鎵�鏈夊瓙鏂规鐨勫伐绉嶆暟鎹�
+
+        solutionWorktypeJoinMapper.delete(new UpdateWrapper<SolutionWorktype>()
+                .lambda()
+                .eq(SolutionWorktype::getType,Constants.ZERO)
+                .apply(" SOLUTION_ID in ( select s.id  from solutions s where s.PARENT_ID = "+solutionsBase.getId()+" ) ")
+        );
+
+        dealWorkTypeInsurance(solutionsBase,newModel,solutionsBase.getWorktypeIdList());
+
+
+        solutionsBaseMapper.update(null,new UpdateWrapper<SolutionsBase>()
+                .lambda()
+                .ne(SolutionsBase::getId,newModel.getId())
+                .eq(SolutionsBase::getBaseId,solutionsBase.getId())
+                .eq(SolutionsBase::getDataType,Constants.TWO)
+                .set(SolutionsBase::getDataType,Constants.ONE)
+        );
+
+        //鏇存柊company_solution 浣跨敤鏂扮増鏈殑鏁版嵁
+        companySolutionMapper.update(null,
+                new UpdateWrapper<CompanySolution>()
+                        .lambda()
+                        .eq(CompanySolution::getStatus,Constants.ZERO)
+                        .set(CompanySolution::getSolutionId,newModel.getId())
+                        .eq(CompanySolution::getSolutionBaseId,solutionsBase.getId())
+        );
+
+        //鏇存柊 du_solution 浣跨敤鏂扮増鏈殑鏁版嵁
+        duSolutionMapper.update(null,
+                new UpdateWrapper<DuSolution>()
+                        .lambda()
+                        .eq(DuSolution::getIsdeleted, Constants.ZERO)
+                        .eq(DuSolution::getStatus, Constants.ONE)
+                        .set(DuSolution::getSolutionId,newModel.getId())
+                        .eq(DuSolution::getSolutionId,oldVersion.getId()));
+
     }
+
+
 
     @Override
     public void updateByIdInBatch(List<SolutionsBase> solutionsBases) {
@@ -67,9 +326,70 @@
         }
     }
 
+
+    @Override
+    public void updateStatus(SolutionsBase solutionsBase){
+        if(solutionsBase.getId() == null || solutionsBase.getStatus()==null || solutionsBase.getStatus()<0||solutionsBase.getStatus()>1){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST );
+        }
+        SolutionsBase model = findById(solutionsBase.getId());
+        if(model == null || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)
+                || !Constants.equalsInteger(model.getDataType(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        if(Constants.equalsInteger(model.getStatus(),solutionsBase.getStatus())){
+            //濡傛灉鐘舵�佷笉鍙戠敓鏀瑰彉锛岀洿鎺ヨ繑鍥�
+            return;
+        }
+        LoginUserInfo user= (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        //鍚屾椂鏇存柊鍩鸿〃鍜屽巻鍙茬増鏈墍鏈夋暟鎹姸鎬�
+        solutionsBaseMapper.update(null,new UpdateWrapper<SolutionsBase>()
+                .lambda()
+                .and(m -> m.eq(SolutionsBase::getId,model.getId()).or().eq(SolutionsBase::getBaseId,model.getId()))
+                .eq(SolutionsBase::getIsdeleted,Constants.ZERO)
+                .set(SolutionsBase::getEditDate,new Date())
+                .set(SolutionsBase::getEditor,user.getId())
+                .set(SolutionsBase::getStatus,solutionsBase.getStatus())
+        );
+
+        //濡傛灉鏄鐢紝鍒欎慨鏀规柟妗堝瓙琛ㄧ殑鍏ㄩ儴鏁版嵁涓虹鐢�
+        if(Constants.equalsInteger(solutionsBase.getStatus(),Constants.ONE)){
+            solutionsMapper.update(null,new UpdateWrapper<Solutions>()
+                    .lambda()
+                    .set(Solutions::getStatus,solutionsBase.getStatus())
+                    .set(Solutions::getEditDate,new Date())
+                    .set(Solutions::getEditor,user.getId())
+                    .eq(Solutions::getParentId,solutionsBase.getId())
+            );
+        }
+
+    }
+
+
     @Override
     public SolutionsBase findById(Integer id) {
-        return solutionsBaseMapper.selectById(id);
+        MPJLambdaWrapper<SolutionsBase> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(SolutionsBase.class);
+        queryWrapper.selectAs(Insurance::getName,SolutionsBase::getInsuranceName);
+        queryWrapper.selectAs(Company::getName,SolutionsBase::getShopName);
+        queryWrapper.leftJoin(Insurance.class,Insurance::getId,SolutionsBase::getInsuranceId);
+        queryWrapper.leftJoin(Company.class,Company::getId,SolutionsBase::getShopId);
+        queryWrapper.eq(SolutionsBase::getId,id);
+        SolutionsBase model = solutionsBaseJoinMapper.selectJoinOne(SolutionsBase.class,queryWrapper);
+        if(model == null  || !Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY );
+        }
+        MPJLambdaWrapper<SolutionWorktype> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(SolutionWorktype.class);
+        wrapper.selectAs(Worktype::getName,SolutionWorktype::getWorktypeName);
+        wrapper.leftJoin(Worktype.class,Worktype::getId,SolutionWorktype::getWorktypeId);
+        wrapper.eq(SolutionWorktype::getSolutionId,id);
+        wrapper.eq(SolutionWorktype::getType,Constants.ONE);
+        wrapper.eq(SolutionWorktype::getIsdeleted,Constants.ZERO);
+        wrapper.orderByAsc(SolutionWorktype::getSortnum);
+        List<SolutionWorktype> worktypeList = solutionWorktypeJoinMapper.selectJoinList(SolutionWorktype.class,wrapper);
+        model.setWorktypeList(worktypeList);
+        return model;
     }
 
     @Override
@@ -80,110 +400,30 @@
 
     @Override
     public List<SolutionsBase> findList(SolutionsBase solutionsBase) {
-        QueryWrapper<SolutionsBase> wrapper = new QueryWrapper<>(solutionsBase);
+        QueryWrapper<SolutionsBase> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(SolutionsBase::getDataType,Constants.ZERO);
+        wrapper.lambda().eq(SolutionsBase::getIsdeleted,Constants.ZERO);
         return solutionsBaseMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<SolutionsBase> findPage(PageWrap<SolutionsBase> pageWrap) {
         IPage<SolutionsBase> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<SolutionsBase> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<SolutionsBase> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(SolutionsBase::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(SolutionsBase::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(SolutionsBase::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(SolutionsBase::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
+        queryWrapper.selectAll(SolutionsBase.class);
+        queryWrapper.selectAs(Insurance::getName,SolutionsBase::getInsuranceName);
+        queryWrapper.selectAs(Company::getName,SolutionsBase::getShopName);
+        queryWrapper.leftJoin(Insurance.class,Insurance::getId,SolutionsBase::getInsuranceId);
+        queryWrapper.leftJoin(Company.class,Company::getId,SolutionsBase::getShopId);
+        //鍙煡璇㈡湭鍒犻櫎鐨勬暟鎹�
+        queryWrapper.eq(SolutionsBase::getIsdeleted,Constants.ZERO);
+        //鍙煡璇㈠熀纭�鐗堟湰鏁版嵁
+        queryWrapper.eq(SolutionsBase::getDataType,Constants.ZERO);
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getName, pageWrap.getModel().getName());
+            queryWrapper.like(SolutionsBase::getName, pageWrap.getModel().getName());
         }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getStatus, pageWrap.getModel().getStatus());
-        }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getInsuranceId() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getInsuranceId, pageWrap.getModel().getInsuranceId());
-        }
-        if (pageWrap.getModel().getValidType() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getValidType, pageWrap.getModel().getValidType());
-        }
-        if (pageWrap.getModel().getMinAge() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getMinAge, pageWrap.getModel().getMinAge());
-        }
-        if (pageWrap.getModel().getMaxAge() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getMaxAge, pageWrap.getModel().getMaxAge());
-        }
-        if (pageWrap.getModel().getSingleWorktype() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getSingleWorktype, pageWrap.getModel().getSingleWorktype());
-        }
-        if (pageWrap.getModel().getSpecialAgreement() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getSpecialAgreement, pageWrap.getModel().getSpecialAgreement());
-        }
-        if (pageWrap.getModel().getSpecialInfo() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getSpecialInfo, pageWrap.getModel().getSpecialInfo());
-        }
-        if (pageWrap.getModel().getOrtherInfo() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getOrtherInfo, pageWrap.getModel().getOrtherInfo());
-        }
-        if (pageWrap.getModel().getVersion() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getVersion, pageWrap.getModel().getVersion());
-        }
-        if (pageWrap.getModel().getDataType() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getDataType, pageWrap.getModel().getDataType());
-        }
-        if (pageWrap.getModel().getBaseId() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getBaseId, pageWrap.getModel().getBaseId());
-        }
-        if (pageWrap.getModel().getSignKeyword() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getSignKeyword, pageWrap.getModel().getSignKeyword());
-        }
-        if (pageWrap.getModel().getValidTypeNum() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getValidTypeNum, pageWrap.getModel().getValidTypeNum());
-        }
-        if (pageWrap.getModel().getShopId() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getShopId, pageWrap.getModel().getShopId());
-        }
-        if (pageWrap.getModel().getAddValidDays() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getAddValidDays, pageWrap.getModel().getAddValidDays());
-        }
-        if (pageWrap.getModel().getDelValidDays() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getDelValidDays, pageWrap.getModel().getDelValidDays());
-        }
-        if (pageWrap.getModel().getCanAdd() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getCanAdd, pageWrap.getModel().getCanAdd());
-        }
-        if (pageWrap.getModel().getCanReduce() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getCanReduce, pageWrap.getModel().getCanReduce());
-        }
-        if (pageWrap.getModel().getCanChangeUnit() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getCanChangeUnit, pageWrap.getModel().getCanChangeUnit());
-        }
-        if (pageWrap.getModel().getDelOnlyReplace() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getDelOnlyReplace, pageWrap.getModel().getDelOnlyReplace());
-        }
-        if (pageWrap.getModel().getCompanyName() != null) {
-            queryWrapper.lambda().eq(SolutionsBase::getCompanyName, pageWrap.getModel().getCompanyName());
-        }
+
         for(PageWrap.SortData sortData: pageWrap.getSorts()) {
             if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                 queryWrapper.orderByDesc(sortData.getProperty());
@@ -191,7 +431,8 @@
                 queryWrapper.orderByAsc(sortData.getProperty());
             }
         }
-        return PageData.from(solutionsBaseMapper.selectPage(page, queryWrapper));
+        IPage<SolutionsBase> iPageData = solutionsBaseJoinMapper.selectJoinPage(page,SolutionsBase.class,queryWrapper);
+        return PageData.from(iPageData);
     }
 
     @Override

--
Gitblit v1.9.3