Prechádzať zdrojové kódy

20250704 窍笔支付记录

lrj 2 mesiacov pred
rodič
commit
bea64c29ad

+ 3 - 3
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/PersonVipMessVO.java

@@ -1,13 +1,13 @@
 package cn.cslg.permission.common.model.qiaobi;
 
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class PersonVipMessVO {
-    private Integer id;
-    private String vipTypeName;
-    private Date expitrTime;
+    private List<AppVipTypeVO> vipTypeVOS;
     private Boolean ifInVip;
 }

+ 11 - 0
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/goods/GoodUpdateStatusDTO.java

@@ -0,0 +1,11 @@
+package cn.cslg.permission.common.model.qiaobi.goods;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class GoodUpdateStatusDTO {
+    private List<Integer> ids;
+    private Integer status;
+}

+ 3 - 2
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/goods/GoodsAddDTO.java

@@ -12,7 +12,8 @@ public class GoodsAddDTO {
     private Double price;
     private String goodName;
 
-    private Date startTime;
+    private Date startSaleTime;
+    private Date expireTime;
 
     private Integer byType;
     /**
@@ -23,7 +24,7 @@ public class GoodsAddDTO {
      * 次,月,季度,年
      */
     private Integer goodUnit;
-
+    private String remark;
 
     private List<Integer> goodLimits;
     private Integer status;

+ 4 - 0
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/goods/GoodsQueryVO.java

@@ -1,5 +1,7 @@
 package cn.cslg.permission.common.model.qiaobi.goods;
 
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
+import cn.cslg.permission.common.model.vo.FunctionCodeTreeVO;
 import lombok.Data;
 
 import java.util.List;
@@ -27,4 +29,6 @@ public class GoodsQueryVO {
     private List<Integer> goodLimits;
     private Integer status;
     private String createName;
+    private AppVipTypeVO vipMessage;
+    private FunctionCodeTreeVO functionMessage;
 }

+ 0 - 12
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/vipType/PersonVipDiscountMessage.java

@@ -1,12 +0,0 @@
-package cn.cslg.permission.common.model.qiaobi.vipType;
-
-import lombok.Data;
-
-import java.util.Date;
-
-@Data
-public class PersonVipDiscountMessage {
-    private Integer vipTypeId;
-    private Date createTime;
-    private Date expitrTime;
-}

+ 14 - 0
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/vipType/PersonVipMessage.java

@@ -0,0 +1,14 @@
+package cn.cslg.permission.common.model.qiaobi.vipType;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class PersonVipMessage {
+    private Integer Id;
+    private Date createTime;
+    private Date expireTime;
+    private String vipName;
+    private Integer vipLevel;
+}

+ 1 - 1
PCS/src/main/java/cn/cslg/permission/common/model/qiaobi/vipType/QueryPersonVipVO.java

@@ -9,7 +9,7 @@ public class QueryPersonVipVO {
     private Integer id;
 
     private Integer personId;
-
+    private String vipName;
     private Integer vipTypeId;
     private Date createTime;
 

+ 4 - 0
PCS/src/main/java/cn/cslg/permission/common/model/vo/AppVipTypeVO.java

@@ -3,6 +3,7 @@ package cn.cslg.permission.common.model.vo;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Author xiexiang
@@ -42,4 +43,7 @@ public class AppVipTypeVO {
      * 创建时间
      */
     private Date createTime;
+
+    private List<FunctionCodeTreeVO> functions;
+
 }

+ 7 - 0
PCS/src/main/java/cn/cslg/permission/controller/qiaobi/GoodsController.java

@@ -2,6 +2,7 @@ package cn.cslg.permission.controller.qiaobi;
 
 import cn.cslg.permission.common.core.base.Constants;
 import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.qiaobi.goods.GoodUpdateStatusDTO;
 import cn.cslg.permission.common.model.qiaobi.goods.GoodsAddDTO;
 import cn.cslg.permission.common.model.qiaobi.goods.GoodsQueryDTO;
 import cn.cslg.permission.common.model.qiaobi.paidCode.CheckPaidCodePhoneCodeDTO;
@@ -51,4 +52,10 @@ public class GoodsController {
         Records  records = goodsService.queryGoods(goodsQueryDTO);
         return Response.success(records);
     }
+    @Operation(summary = "更新商品状态")
+    @PostMapping("/updateGoodsStatus")
+    public String updateGoodsStatus(@RequestBody GoodUpdateStatusDTO goodUpdateStatusDTO) {
+        List<Integer>   ids = goodsService.updateGoodsStatus(goodUpdateStatusDTO);
+        return Response.success(ids);
+    }
 }

+ 3 - 1
PCS/src/main/java/cn/cslg/permission/domain/qiaobi/Goods.java

@@ -41,5 +41,7 @@ public class Goods extends Model {
     private Date createTime;
     private String buyLimit;
     private Integer status;
-
+    private Date startSaleTime;
+    private Date expireTime;
+    private String remark;
 }

+ 20 - 0
PCS/src/main/java/cn/cslg/permission/service/AssoTenantVipTypeFunctionService.java

@@ -96,4 +96,24 @@ public class AssoTenantVipTypeFunctionService extends ServiceImpl<AssoTenantVipT
         return functionIds;
 
     }
+    public List<Integer> getFunctionIds(List<Integer> vipIds) {
+        List<Integer> functionIds = new ArrayList<>();
+        LambdaQueryWrapper<AssoTenantVipTypeAndFunction> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoTenantVipTypeAndFunction::getTenantVipTypeId, vipIds);
+        List<AssoTenantVipTypeAndFunction> assoTenantVipTypeAndFunctions = this.list(queryWrapper);
+        if (assoTenantVipTypeAndFunctions != null) {
+            functionIds = assoTenantVipTypeAndFunctions.stream().map(AssoTenantVipTypeAndFunction::getFunctionId).collect(Collectors.toList());
+
+        }
+        return functionIds;
+
+    }
+    public List<AssoTenantVipTypeAndFunction> getByVipIds(List<Integer> vipIds) {
+        List<Integer> functionIds = new ArrayList<>();
+        LambdaQueryWrapper<AssoTenantVipTypeAndFunction> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(AssoTenantVipTypeAndFunction::getTenantVipTypeId, vipIds);
+        List<AssoTenantVipTypeAndFunction> assoTenantVipTypeAndFunctions = this.list(queryWrapper);
+        return assoTenantVipTypeAndFunctions;
+
+    }
 }

+ 30 - 1
PCS/src/main/java/cn/cslg/permission/service/FunctionService.java

@@ -226,7 +226,7 @@ public class FunctionService extends ServiceImpl<FunctionMapper, Function> {
         if (name == null) {
             name = "";
         }
-        String trueName =name;
+        String trueName = name;
         LambdaQueryWrapper<Function> queryWrapper = new LambdaQueryWrapper<>();
         Set<Integer> ids = new HashSet<>();
         ids.add(functionVO.getApply());
@@ -563,5 +563,34 @@ public class FunctionService extends ServiceImpl<FunctionMapper, Function> {
         return functionCodeTreeVOS2;
     }
 
+    public List<FunctionCodeTreeVO> loadVIPTypeFunction(List<Function> functionList) {
 
+        List<FunctionCodeTreeVO> functionCodeTreeVOS2 = new ArrayList<>();
+        if(functionList==null||functionList.size()==0){
+            return functionCodeTreeVOS2;
+        }
+        List<FunctionCodeTreeVO> rootFunctionCodeTreeVOs = new ArrayList<>();
+        List<Function> rootFunctionList = functionList.stream().filter(item -> item.getFunctionUp() != null && item.getFunctionUp().equals(0)).collect(Collectors.toList());
+        rootFunctionList.forEach(item -> {
+            FunctionCodeTreeVO functionCodeTreeVO = AssoFunctionModuleService.loadFunctionCodeTreeVO(item, null);
+            rootFunctionCodeTreeVOs.add(functionCodeTreeVO);
+        });
+        functionCodeTreeVOS2.addAll(rootFunctionCodeTreeVOs);
+
+        while (rootFunctionCodeTreeVOs.size() > 0) {
+            FunctionCodeTreeVO functionCodeTreeVO = rootFunctionCodeTreeVOs.remove(0);
+            List<Function> childFunctions = functionList.stream().filter(item -> item.getFunctionUp().equals(functionCodeTreeVO.getId())).collect(Collectors.toList());
+            List<FunctionCodeTreeVO> childVos = new ArrayList<>();
+            if (childFunctions != null & childFunctions.size() > 0) {
+                childFunctions.forEach(item -> {
+                    FunctionCodeTreeVO childVo = AssoFunctionModuleService.loadFunctionCodeTreeVO(item, null);
+                    childVos.add(childVo);
+                });
+            }
+            rootFunctionCodeTreeVOs.addAll(childVos);
+            functionCodeTreeVO.setChildren(childVos);
+        }
+
+        return functionCodeTreeVOS2;
+    }
 }

+ 22 - 4
PCS/src/main/java/cn/cslg/permission/service/qiaobi/AppVipTypeService.java

@@ -9,20 +9,20 @@ import cn.cslg.permission.common.model.qiaobi.PersonVipMessVO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVIPTypeVO;
 import cn.cslg.permission.common.model.qiaobi.QiaoBiVipTypeDTO;
 import cn.cslg.permission.common.model.vo.AppVipTypeVO;
+import cn.cslg.permission.common.model.vo.FunctionCodeTreeVO;
 import cn.cslg.permission.common.model.vo.LoginRecordVO;
 import cn.cslg.permission.common.model.vo.PersonnelVO;
 import cn.cslg.permission.common.utils.CacheUtils;
 import cn.cslg.permission.common.utils.LoginUtils;
+import cn.cslg.permission.domain.AssoTenantVipTypeAndFunction;
+import cn.cslg.permission.domain.Function;
 import cn.cslg.permission.domain.Personnel;
 import cn.cslg.permission.domain.TenantVipType;
 import cn.cslg.permission.domain.qiaobi.AppVipType;
 import cn.cslg.permission.exception.ExceptionEnum;
 import cn.cslg.permission.exception.XiaoShiException;
 import cn.cslg.permission.mapper.qiaobi.AppVipTypeMapper;
-import cn.cslg.permission.service.AssoTenantVipTypeFunctionService;
-import cn.cslg.permission.service.LoginRecordService;
-import cn.cslg.permission.service.LoginService;
-import cn.cslg.permission.service.PersonnelService;
+import cn.cslg.permission.service.*;
 import cn.cslg.permission.service.impl.TenantVipTypeService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -55,6 +55,7 @@ public class AppVipTypeService extends ServiceImpl<AppVipTypeMapper, AppVipType>
     private final EnterpriseCodeService enterpriseCodeService;
     private final LoginService loginService;
     private final LoginRecordService loginRecordService;
+    private final FunctionService functionService;
 
     public List<QiaoBiVIPTypeVO> qiaoBiVIPTypeVOList(QiaoBiVipTypeDTO qiaoBiVipTypeDTO) {
         qiaoBiVipTypeDTO.setAppCode("4e95e3d926a2a4befa5d913acc0aa9f5");
@@ -181,19 +182,35 @@ public class AppVipTypeService extends ServiceImpl<AppVipTypeMapper, AppVipType>
     }
 
     public List<AppVipTypeVO> loadAppVipTypeVO(List<AppVipTypeVO> appVipTypeVOS) {
+
         if (appVipTypeVOS == null || appVipTypeVOS.size() == 0) {
             return appVipTypeVOS;
         }
+
+        List<Integer> ids = appVipTypeVOS.stream().map(AppVipTypeVO::getId).collect(Collectors.toList());
+        List<AssoTenantVipTypeAndFunction> assoTenantVipTypeAndFunctions = assoTenantVipTypeFunctionService.getByVipIds(ids);
+        List<Integer> functionIds = assoTenantVipTypeAndFunctions.stream().map(AssoTenantVipTypeAndFunction::getFunctionId).collect(Collectors.toList());
+        List<Function> functionList = functionService.getFuncListByIds(functionIds);
         List<Integer> createIds = appVipTypeVOS.stream().map(AppVipTypeVO::getCreateId).collect(Collectors.toList());
         List<Personnel> personnelList = new ArrayList<>();
         if (createIds != null && createIds.size() > 0) {
             personnelList = personnelService.getPersonByIds(createIds);
         }
+
+
         for (AppVipTypeVO appVipTypeVO : appVipTypeVOS) {
+            Integer temId = appVipTypeVO.getId();
             Personnel personnel = personnelList.stream().filter(tem -> tem.getId().equals(appVipTypeVO.getCreateId())).findFirst().orElse(null);
             if (personnel != null) {
                 appVipTypeVO.setCreateName(personnel.getPersonnelName());
+            }
 
+            //装载功能
+            List<Integer> temFunctionIds = assoTenantVipTypeAndFunctions.stream().filter(item -> item.getTenantVipTypeId().equals(temId)).map(AssoTenantVipTypeAndFunction::getFunctionId).collect(Collectors.toList());
+            if (temFunctionIds != null && temFunctionIds.size() > 0) {
+                List<Function> temFunctionLists = functionList.stream().filter(item -> temFunctionIds.contains(item.getId())).collect(Collectors.toList());
+                List<FunctionCodeTreeVO> functionCodeTreeVOS = functionService.loadVIPTypeFunction(temFunctionLists);
+                appVipTypeVO.setFunctions(functionCodeTreeVOS);
             }
         }
         return appVipTypeVOS;
@@ -229,6 +246,7 @@ public class AppVipTypeService extends ServiceImpl<AppVipTypeMapper, AppVipType>
         loginRecordVO.setLoginResult("获取会员信息");
         loginRecordService.addLoginRecord(loginRecordVO);
         PersonVipMessVO personVipMessVO = assoPersonVipTypeService.getPersonVipMessage(personId);
+        List<AppVipTypeVO> appVipTypeVOS= assoPersonVipTypeService.getPersonVIpMessage();
         return personVipMessVO;
     }
 

+ 16 - 38
PCS/src/main/java/cn/cslg/permission/service/qiaobi/AssoPersonVipTypeService.java

@@ -1,29 +1,28 @@
 package cn.cslg.permission.service.qiaobi;
 
 import cn.cslg.permission.common.model.qiaobi.PersonVipMessVO;
-import cn.cslg.permission.common.model.qiaobi.QiaoBiVIPTypeVO;
-import cn.cslg.permission.common.model.qiaobi.QiaoBiVipTypeDTO;
-import cn.cslg.permission.common.model.qiaobi.vipType.PersonVipDiscountMessage;
 import cn.cslg.permission.common.model.qiaobi.vipType.QueryPersonVipDTO;
 import cn.cslg.permission.common.model.qiaobi.vipType.QueryPersonVipVO;
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
 import cn.cslg.permission.common.model.vo.PersonnelUpdateVO;
 import cn.cslg.permission.common.utils.DateUtils;
 import cn.cslg.permission.common.utils.LoginUtils;
 import cn.cslg.permission.domain.TenantVipType;
 import cn.cslg.permission.domain.qiaobi.AppVipType;
+import cn.cslg.permission.mapper.qiaobi.AppVipTypeMapper;
 import cn.cslg.permission.service.impl.TenantVipTypeService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import cn.cslg.permission.domain.qiaobi.AssoPersonVipType;
 import cn.cslg.permission.mapper.qiaobi.AssoPersonVipTypeMapper;
-import io.swagger.v3.oas.models.security.SecurityScheme;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author admin
@@ -38,6 +37,8 @@ public class AssoPersonVipTypeService extends ServiceImpl<AssoPersonVipTypeMappe
     private TenantVipTypeService tenantVipTypeService;
     @Autowired
     private LoginUtils loginUtils;
+    @Autowired
+    private AppVipTypeMapper appVipTypeMapper;
 
     public AssoPersonVipType addVip(Integer personId, Integer vipTypeId, Integer lastTime) {
         AssoPersonVipType assoPersonVip = new AssoPersonVipType();
@@ -213,7 +214,7 @@ public class AssoPersonVipTypeService extends ServiceImpl<AssoPersonVipTypeMappe
         QueryPersonVipVO queryPersonVipVO = queryPersonVipVOList.get(flag);
         Integer flagLevel = queryPersonVipVO.getVipLevel();
         Integer flagId = queryPersonVipVO.getId();
-        Integer flagVipTypeId =queryPersonVipVO.getVipTypeId();
+        Integer flagVipTypeId = queryPersonVipVO.getVipTypeId();
         Date flagExpitrTime = queryPersonVipVO.getExpitrTime();
         Date flagCreateTime = queryPersonVipVO.getCreateTime();
 
@@ -258,46 +259,23 @@ public class AssoPersonVipTypeService extends ServiceImpl<AssoPersonVipTypeMappe
         }
     }
 
-    public List<PersonVipDiscountMessage> getPersonVIPDiscountMessage(Integer vipId, Integer lastMonth, Integer vipLevel) {
-        List<PersonVipDiscountMessage> personVipDiscountMessages = new ArrayList<>();
+    public List<AppVipTypeVO> getPersonVIpMessage() {
+        List<AppVipTypeVO> appVipTypeVOS = new ArrayList<>();
         QueryPersonVipDTO queryPersonVipDTO = new QueryPersonVipDTO();
         queryPersonVipDTO.setVipType(1);
         queryPersonVipDTO.setPersonId(1);
         List<QueryPersonVipVO> queryPersonVipVOList = this.getBaseMapper().getPersonActiveVip(queryPersonVipDTO);
-        if (queryPersonVipVOList.size() == 0) {
-            return personVipDiscountMessages;
-        } else {
-            Date startDate = null;
-            Date endDate = null;
-            for (int i = 0; i < queryPersonVipVOList.size(); i++) {
-                QueryPersonVipVO queryPersonVipVO = queryPersonVipVOList.get(i);
-                Integer temId = queryPersonVipVO.getId();
-                Date temExpitrTime = queryPersonVipVO.getExpitrTime();
-                Date temCreateTime = queryPersonVipVO.getCreateTime();
-                Integer temLevel = queryPersonVipVO.getVipLevel();
-                Integer temVipId = queryPersonVipVO.getVipTypeId();
-                if (vipLevel > temLevel) {
-                    //也就是找到了新会员的起始位置
-                    if (endDate == null) {
-                        startDate = temCreateTime;
-                        endDate = DateUtils.getPlusMonthDate(startDate, lastMonth);
-                    }
-                    if (endDate.compareTo(temCreateTime) > 0 && endDate.compareTo(temExpitrTime) < 0) {
-                        temExpitrTime = endDate;
-
-                    }
-                    PersonVipDiscountMessage personVipDiscountMessage = new PersonVipDiscountMessage();
-                    personVipDiscountMessage.setVipTypeId(temVipId);
-                    personVipDiscountMessage.setCreateTime(temCreateTime);
-                    personVipDiscountMessage.setExpitrTime(temExpitrTime);
-                    personVipDiscountMessages.add(personVipDiscountMessage);
-                }
+        if (queryPersonVipVOList != null && queryPersonVipVOList.size() > 0) {
+            List<Integer> ids = queryPersonVipVOList.stream().map(QueryPersonVipVO::getVipTypeId).collect(Collectors.toList());
+            LambdaQueryWrapper<TenantVipType> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.in(TenantVipType::getId, ids);
+            List<TenantVipType> tenantVipTypes = tenantVipTypeService.list(queryWrapper);
+            for (QueryPersonVipVO queryPersonVipVO : queryPersonVipVOList) {
+                TenantVipType tenantVipType = tenantVipTypes.stream().filter(item -> item.getId().equals(queryPersonVipVO.getVipTypeId())).findFirst().orElse(null);
 
             }
-
-
         }
-        return personVipDiscountMessages;
+        return appVipTypeVOS;
     }
 }
 

+ 64 - 0
PCS/src/main/java/cn/cslg/permission/service/qiaobi/GoodsService.java

@@ -1,18 +1,26 @@
 package cn.cslg.permission.service.qiaobi;
 
 import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
+import cn.cslg.permission.common.model.qiaobi.goods.GoodUpdateStatusDTO;
 import cn.cslg.permission.common.model.qiaobi.goods.GoodsAddDTO;
 import cn.cslg.permission.common.model.qiaobi.goods.GoodsQueryDTO;
 import cn.cslg.permission.common.model.qiaobi.goods.GoodsQueryVO;
 import cn.cslg.permission.common.model.qiaobi.version.QiaoBiVersionVO;
+import cn.cslg.permission.common.model.vo.AppVipTypeVO;
+import cn.cslg.permission.common.model.vo.FunctionCodeTreeVO;
 import cn.cslg.permission.common.utils.StringUtils;
+import cn.cslg.permission.domain.Function;
 import cn.cslg.permission.domain.Personnel;
 import cn.cslg.permission.domain.Version;
 import cn.cslg.permission.domain.qiaobi.Goods;
 import cn.cslg.permission.exception.ExceptionEnum;
 import cn.cslg.permission.exception.XiaoShiException;
+import cn.cslg.permission.mapper.qiaobi.AppVipTypeMapper;
+import cn.cslg.permission.service.FunctionService;
 import cn.cslg.permission.service.PersonnelService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +32,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -36,12 +45,22 @@ import java.util.stream.Collectors;
 public class GoodsService extends ServiceImpl<GoodsMapper, Goods> {
     @Autowired
     private PersonnelService personnelService;
+    @Autowired
+    private FunctionService functionService;
+    @Autowired
+    private AppVipTypeService appVipTypeService;
+    @Autowired
+    private AppVipTypeMapper appVipTypeMapper;
 
     @Transactional(rollbackFor = Exception.class)
     public Integer addGoods(GoodsAddDTO goodsAddDTO) {
         Integer id = goodsAddDTO.getId();
         Double price = goodsAddDTO.getPrice();
         Integer goodCount = goodsAddDTO.getGoodCount();
+        Date startSaleTime = goodsAddDTO.getStartSaleTime();
+        if (startSaleTime == null) {
+            startSaleTime = new Date();
+        }
         List<Integer> goodLimits = goodsAddDTO.getGoodLimits();
         Integer goodUnit = goodsAddDTO.getGoodUnit();
         String goodLimit = null;
@@ -59,6 +78,7 @@ public class GoodsService extends ServiceImpl<GoodsMapper, Goods> {
             Goods goods = new Goods();
             BeanUtils.copyProperties(goodsAddDTO, goods);
             goods.setBuyLimit(goodLimit);
+
             id = goods.getId();
         }
         return id;
@@ -106,16 +126,35 @@ public class GoodsService extends ServiceImpl<GoodsMapper, Goods> {
         if (createIds != null && createIds.size() > 0) {
             personnelList = personnelService.getPersonByIds(createIds);
         }
+
+        List<Integer> vipIds = goodsList.stream().filter(item -> item.getGoodType().equals(1)).map(Goods::getGoodId).collect(Collectors.toList());
+        List<Integer> functionIds = goodsList.stream().filter(item -> item.getGoodType().equals(2)).map(Goods::getGoodId).collect(Collectors.toList());
+        List<Function> functionList = new ArrayList<>();
+        List<AppVipTypeVO> appVipTypeVOS = new ArrayList<>();
+        if (functionIds.size() > 0) {
+            functionList = functionService.getFuncListByIds(functionIds);
+        }
+        if (vipIds.size() > 0) {
+            QueryVipDTO queryVipDTO = new QueryVipDTO();
+            queryVipDTO.setIds(vipIds);
+            appVipTypeVOS = appVipTypeMapper.queryAppVipType(queryVipDTO);
+            appVipTypeService.loadAppVipTypeVO(appVipTypeVOS);
+        }
+
         for (Goods goods : goodsList) {
             GoodsQueryVO goodsQueryVO = new GoodsQueryVO();
             String limits = goods.getBuyLimit();
             Integer createId = goods.getId();
+            Integer goodType = goods.getGoodType();
+            Integer goodId = goods.getGoodId();
             Personnel personnel = personnelList.stream().filter(item -> item.getId().equals(createId)).findFirst().orElse(null);
             BeanUtils.copyProperties(goods, goodsQueryVO);
+
             if (personnel != null) {
                 goodsQueryVO.setCreateName(personnel.getPersonnelName());
             }
             List<Integer> goodLimits = new ArrayList<>();
+
             if (limits != null) {
                 String[] temStrs = StringUtils.split(limits, ",");
                 for (int i = 0; i < temStrs.length; i++) {
@@ -123,6 +162,21 @@ public class GoodsService extends ServiceImpl<GoodsMapper, Goods> {
                 }
                 goodsQueryVO.setGoodLimits(goodLimits);
             }
+
+            if (goodType == 1) {
+                AppVipTypeVO appVipTypeVO = appVipTypeVOS.stream().filter(item -> item.getId().equals(goodId)).findFirst().orElse(null);
+                if (appVipTypeVO != null) {
+                    goodsQueryVO.setVipMessage(appVipTypeVO);
+                }
+            } else if (goodType == 2) {
+                Function function = functionList.stream().filter(item -> item.getId().equals(goodId)).findFirst().orElse(null);
+                if(function!=null){
+                    FunctionCodeTreeVO functionMessage = AssoFunctionModuleService.loadFunctionCodeTreeVO(function, null);
+                    goodsQueryVO.setFunctionMessage(functionMessage);
+                }
+            }
+
+
             goodsQueryVOS.add(goodsQueryVO);
         }
         return goodsQueryVOS;
@@ -146,6 +200,16 @@ public class GoodsService extends ServiceImpl<GoodsMapper, Goods> {
         return this.list(queryWrapper);
 
     }
+
+    public List<Integer> updateGoodsStatus(GoodUpdateStatusDTO goodUpdateStatusDTO) {
+        List<Integer> ids = goodUpdateStatusDTO.getIds();
+        Integer status = goodUpdateStatusDTO.getStatus();
+        LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(Goods::getStatus, status);
+        updateWrapper.in(Goods::getId, ids);
+        this.update(updateWrapper);
+        return ids;
+    }
 }
 
 

+ 24 - 0
PCS/src/test/java/cn/cslg/permission/qiaobi/VipTypeTest.java

@@ -0,0 +1,24 @@
+package cn.cslg.permission.qiaobi;
+
+import cn.cslg.permission.common.model.Records;
+import cn.cslg.permission.common.model.dto.QueryVipDTO;
+import cn.cslg.permission.service.qiaobi.AppVipTypeService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class VipTypeTest {
+    @Autowired
+    private AppVipTypeService appVipTypeService;
+
+    @Test
+    public void testQueryVipType() {
+        QueryVipDTO queryVipDTO = new QueryVipDTO();
+       Records records = appVipTypeService.queryAppVipType(queryVipDTO);
+       System.out.println(records);
+    }
+}