浏览代码

集采需求

kaick 2 年之前
父节点
当前提交
c54fa80c23

+ 32 - 30
src/main/java/com/caimei365/commodity/controller/ProcurementApi.java

@@ -2,6 +2,7 @@ package com.caimei365.commodity.controller;
 
 
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.ResponseJson;
 import com.caimei365.commodity.model.dto.ProcurementDto;
 import com.caimei365.commodity.model.dto.ProcurementDto;
+import com.caimei365.commodity.model.po.ProcurePo;
 import com.caimei365.commodity.service.ProcurementService;
 import com.caimei365.commodity.service.ProcurementService;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
@@ -40,8 +41,8 @@ public class ProcurementApi {
             @ApiImplicitParam(readOnly = true, name = "userId", value = "用户Id"),
             @ApiImplicitParam(readOnly = true, name = "userId", value = "用户Id"),
     })
     })
     @GetMapping("/findList")
     @GetMapping("/findList")
-    public ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize, Integer userId) {
-        return  procurementService.findList(pageNo, pageSize,userId);
+    public ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize, Integer userId,Integer status) {
+        return  procurementService.findList(pageNo, pageSize,userId, status);
     }
     }
 
 
     /**
     /**
@@ -51,35 +52,35 @@ public class ProcurementApi {
      */
      */
     @ApiOperation("查看集采详情")
     @ApiOperation("查看集采详情")
     @ApiImplicitParam(readOnly = true, name = "id", value = "集采Id")
     @ApiImplicitParam(readOnly = true, name = "id", value = "集采Id")
-    @PostMapping("/detail/{id}")
-    public ResponseJson<Map<String,Object>> detailProcurement(@PathVariable("id") Integer id) {
+    @GetMapping("/detail")
+    public ResponseJson<Map<String,Object>> detailProcurement(String id) {
         if (null == id) {
         if (null == id) {
             return ResponseJson.error(-1,"参数id不能为空", null);
             return ResponseJson.error(-1,"参数id不能为空", null);
         }
         }
         return procurementService.detailProcurement(id);
         return procurementService.detailProcurement(id);
     }
     }
 
 
-    /**
-     * 我参与的 | 我创建的
-     * @param userId
-     * @param procurementType 0 我参与的 1 我发起的
-     * @return
-     */
-    @ApiOperation("我参与的 | 我创建的")
-    @ApiImplicitParams({
-            @ApiImplicitParam(readOnly = true, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的"),
-    })
-    @GetMapping("/procurement")
-    public ResponseJson<List<ProcurementDto>> myProcurement(Integer userId,Integer procurementType) {
-        if (null == userId) {
-            return ResponseJson.error(-1,"参数userId不能为空", null);
-        }
-        if (null == procurementType) {
-            return ResponseJson.error(-1,"参数集采类型不能为空", null);
-        }
-        return procurementService.myProcurement(userId, procurementType);
-    }
+//    /**
+//     * 我参与的 | 我创建的
+//     * @param userId
+//     * @param procurementType 0 我参与的 1 我发起的
+//     * @return
+//     */
+//    @ApiOperation("我参与的 | 我创建的")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(readOnly = true, name = "userId", value = "用户Id"),
+//            @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的"),
+//    })
+//    @GetMapping("/procurement")
+//    public ResponseJson<List<ProcurementDto>> myProcurement(Integer userId, Integer procurementType) {
+//        if (null == userId) {
+//            return ResponseJson.error(-1,"参数userId不能为空", null);
+//        }
+//        if (null == procurementType) {
+//            return ResponseJson.error(-1,"参数集采类型不能为空", null);
+//        }
+//        return procurementService.myProcurement(userId, procurementType);
+//    }
 
 
     /**
     /**
      * 修改集采信息回显
      * 修改集采信息回显
@@ -95,7 +96,7 @@ public class ProcurementApi {
             @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的"),
             @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的"),
     })
     })
     @GetMapping("/editData")
     @GetMapping("/editData")
-    public ResponseJson<ProcurementDto> editData(Integer id, Integer userId, Integer procurementType) {
+    public ResponseJson<ProcurementDto> editData(String id, Integer userId, Integer procurementType) {
         if (null == id) {
         if (null == id) {
             return ResponseJson.error(-1,"参数集采id不能为空", null);
             return ResponseJson.error(-1,"参数集采id不能为空", null);
         }
         }
@@ -140,14 +141,15 @@ public class ProcurementApi {
             @ApiImplicitParam(readOnly = true, name = "productImage", value = "商品图片"),
             @ApiImplicitParam(readOnly = true, name = "productImage", value = "商品图片"),
             @ApiImplicitParam(readOnly = true, name = "productName", value = "商品名称"),
             @ApiImplicitParam(readOnly = true, name = "productName", value = "商品名称"),
             @ApiImplicitParam(readOnly = true, name = "price", value = "期望单价"),
             @ApiImplicitParam(readOnly = true, name = "price", value = "期望单价"),
-            @ApiImplicitParam(readOnly = true, name = "number", value = "购买数量")
+            @ApiImplicitParam(readOnly = true, name = "number", value = "购买数量"),
+            @ApiImplicitParam(readOnly = true, name = "status", value = "0参与1修改参与")
     })
     })
     @PostMapping("/pateProcurement")
     @PostMapping("/pateProcurement")
-    public ResponseJson participateProcurement(ProcurementDto procurementDto) throws Exception {
+    public ResponseJson participateProcurement(ProcurementDto procurementDto,Integer status) throws Exception {
         if (null == procurementDto.getUserId()) {
         if (null == procurementDto.getUserId()) {
             return ResponseJson.error(-1,"参数userId不能为空", null);
             return ResponseJson.error(-1,"参数userId不能为空", null);
         }
         }
-        return procurementService.participateProcurement(procurementDto);
+        return procurementService.participateProcurement(procurementDto, status);
     }
     }
 
 
     /**
     /**
@@ -164,7 +166,7 @@ public class ProcurementApi {
             @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的")
             @ApiImplicitParam(readOnly = true, name = "procurementType", value = "接口类型 0 我参与的 1 我发起的")
     })
     })
     @GetMapping("/updateProcurement")
     @GetMapping("/updateProcurement")
-    public ResponseJson updateProcurement(Integer id, Integer userId, Integer procurementType) {
+    public ResponseJson updateProcurement(String id, Integer userId, Integer procurementType) {
         if (null == id) {
         if (null == id) {
             return ResponseJson.error(-1,"集采id不能为空", null);
             return ResponseJson.error(-1,"集采id不能为空", null);
         }
         }

+ 12 - 1
src/main/java/com/caimei365/commodity/model/dto/ProcurementDto.java

@@ -1,7 +1,10 @@
 package com.caimei365.commodity.model.dto;
 package com.caimei365.commodity.model.dto;
 
 
+import com.caimei365.commodity.model.po.ProcurePo;
 import lombok.Data;
 import lombok.Data;
 
 
+import java.io.Serializable;
+
 /**
 /**
  * Description
  * Description
  *
  *
@@ -9,11 +12,15 @@ import lombok.Data;
  * @date : 2023/4/26
  * @date : 2023/4/26
  */
  */
 @Data
 @Data
-public class ProcurementDto {
+public class ProcurementDto implements Serializable {
     /**
     /**
      * id
      * id
      */
      */
     private String id;
     private String id;
+    /**
+     * 集采Id
+     */
+    private String sId;
     /**
     /**
      * 发布人Id
      * 发布人Id
      */
      */
@@ -62,4 +69,8 @@ public class ProcurementDto {
      * 是否删除 0 未删除 其他删除
      * 是否删除 0 未删除 其他删除
      */
      */
     private String delFlag;
     private String delFlag;
+    /**
+     * 参与集采对象
+     */
+    ProcurePo procurePo;
 }
 }

+ 4 - 0
src/main/java/com/caimei365/commodity/model/po/ProcurePo.java

@@ -60,4 +60,8 @@ public class ProcurePo {
      * 机构名称
      * 机构名称
      */
      */
     private String clubName;
     private String clubName;
+    /**
+     *
+     */
+    private Integer isInvolved;
 }
 }

+ 5 - 5
src/main/java/com/caimei365/commodity/service/ProcurementService.java

@@ -23,14 +23,14 @@ public interface ProcurementService {
      * @param pageSize
      * @param pageSize
      * @return
      * @return
      */
      */
-    ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize,Integer userId);
+    ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize,Integer userId,Integer status);
 
 
     /**
     /**
      * 查看详情
      * 查看详情
      * @param id
      * @param id
      * @return
      * @return
      */
      */
-    ResponseJson<Map<String,Object>> detailProcurement(Integer id);
+    ResponseJson<Map<String,Object>> detailProcurement(String id);
 
 
     /**
     /**
      * 我参与的 | 我创建的
      * 我参与的 | 我创建的
@@ -46,7 +46,7 @@ public interface ProcurementService {
      * @param procurementType 0 我参与的 1 我发起的
      * @param procurementType 0 我参与的 1 我发起的
      * @return
      * @return
      */
      */
-    ResponseJson<ProcurementDto> editData(Integer id, Integer userId, Integer procurementType);
+    ResponseJson<ProcurementDto> editData(String id, Integer userId, Integer procurementType);
 
 
     /**
     /**
      * 发布集采
      * 发布集采
@@ -60,7 +60,7 @@ public interface ProcurementService {
      * @param procurementDto
      * @param procurementDto
      * @return
      * @return
      */
      */
-    ResponseJson participateProcurement(ProcurementDto procurementDto) throws Exception;
+    ResponseJson participateProcurement(ProcurementDto procurementDto,Integer status) throws Exception;
 
 
     /**
     /**
      * 删除集采 | 退出集采
      * 删除集采 | 退出集采
@@ -69,7 +69,7 @@ public interface ProcurementService {
      * @param procurementType
      * @param procurementType
      * @return
      * @return
      */
      */
-    ResponseJson updateProcurement(Integer id, Integer userId, Integer procurementType);
+    ResponseJson updateProcurement(String id, Integer userId, Integer procurementType);
 
 
 
 
 }
 }

+ 7 - 2
src/main/java/com/caimei365/commodity/service/impl/AdditionalService.java

@@ -5,6 +5,7 @@ import com.caimei365.commodity.model.po.AdditionalPo;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -42,8 +43,12 @@ public class AdditionalService {
      * @param additional
      * @param additional
      */
      */
     public void update(AdditionalPo additional) {
     public void update(AdditionalPo additional) {
-        //调用dao
-        additionalRepository.save(additional);
+        Query query = Query.query(Criteria.where("_id").is(additional.getId()));
+        Update update = Update.update("delFlag",additional.getDelFlag());
+        //  更新一条数据
+        mongoTemplate.updateFirst(query,update, AdditionalPo.class);
+//        //调用dao
+//        additionalRepository.save(additional);
     }
     }
 
 
     /**
     /**

+ 31 - 7
src/main/java/com/caimei365/commodity/service/impl/ProcureService.java

@@ -1,6 +1,7 @@
 package com.caimei365.commodity.service.impl;
 package com.caimei365.commodity.service.impl;
 
 
 import com.caimei365.commodity.mapper.ProcureRepository;
 import com.caimei365.commodity.mapper.ProcureRepository;
+import com.caimei365.commodity.model.po.AdditionalPo;
 import com.caimei365.commodity.model.po.ProcurePo;
 import com.caimei365.commodity.model.po.ProcurePo;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.PageRequest;
@@ -9,6 +10,7 @@ import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -42,13 +44,29 @@ public class ProcureService {
     }
     }
 
 
     /**
     /**
-     * 修改
+     * 修改delFlag
      *
      *
      * @param procure
      * @param procure
      */
      */
     public void update(ProcurePo procure) {
     public void update(ProcurePo procure) {
-        //调用dao
-        procureRepository.save(procure);
+        Query query = Query.query(Criteria.where("_id").is(procure.getId()));
+        Update update = Update.update("delFlag", procure.getDelFlag());
+        //  更新一条数据
+        mongoTemplate.updateFirst(query, update, ProcurePo.class);
+    }
+
+    /**
+     * 修改
+     *
+     * @param procure
+     */
+    public void updateFirst(ProcurePo procure) {
+        Query query = Query.query(Criteria.where("_id").is(procure.getId()));
+        Update update = Update
+                .update("price", procure.getPrice())
+                .set("number", procure.getNumber());
+        //  更新一条数据
+        mongoTemplate.updateFirst(query, update, ProcurePo.class);
     }
     }
 
 
     public void findList() {
     public void findList() {
@@ -75,13 +93,19 @@ public class ProcureService {
      *
      *
      * @return
      * @return
      */
      */
-    public List<ProcurePo> findList(int pageNo, int pageSize) {
-        //调用dao
-//        Pageable pageable = PageRequest.of(pageNo, pageSize);
+    public List<ProcurePo> findList(int pageNo, int pageSize, Integer userId, Integer status) {
+//        Pageable pageable = PageRequest.of(pageNo - 1, pageSize, Sort.by(Sort.Order.desc("saveTime")));
         Query query = new Query();
         Query query = new Query();
-        query.addCriteria(Criteria.where("delFlag").is("0"));
         query.addCriteria(Criteria.where("createUserId").ne(null));
         query.addCriteria(Criteria.where("createUserId").ne(null));
+        if (status == 1) {
+            query.addCriteria(Criteria.where("userId").ne(userId.toString()));
+//            query.addCriteria(Criteria.where("isInvolved").is(1));
+        } else if (status == 2) {
+            query.addCriteria(Criteria.where("userId").is(userId.toString()));
+            query.addCriteria(Criteria.where("isInvolved").is(2));
+        }
         query.with(Sort.by(Sort.Direction.DESC, "saveTime"));
         query.with(Sort.by(Sort.Direction.DESC, "saveTime"));
+//        query.with(pageable);
         List<ProcurePo> procurePos = mongoTemplate.find(query, ProcurePo.class);
         List<ProcurePo> procurePos = mongoTemplate.find(query, ProcurePo.class);
         /*long count1 = mongoTemplate.count(query, ProcurePo.class);
         /*long count1 = mongoTemplate.count(query, ProcurePo.class);
         PageImpl<ProcurePo> procurePos1 = new PageImpl<>(procurePos, pageable, count1);*/
         PageImpl<ProcurePo> procurePos1 = new PageImpl<>(procurePos, pageable, count1);*/

+ 191 - 76
src/main/java/com/caimei365/commodity/service/impl/ProcurementServiceImpl.java

@@ -9,6 +9,8 @@ import com.caimei365.commodity.model.vo.PaginationVo;
 import com.caimei365.commodity.model.vo.UserVo;
 import com.caimei365.commodity.model.vo.UserVo;
 import com.caimei365.commodity.service.ProcurementService;
 import com.caimei365.commodity.service.ProcurementService;
 import com.caimei365.commodity.utils.ImageUtils;
 import com.caimei365.commodity.utils.ImageUtils;
+import com.caimei365.commodity.utils.ListPagingUtil;
+import com.caimei365.commodity.utils.MongodbUtils;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.github.pagehelper.PageInfo;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
@@ -43,20 +45,23 @@ public class ProcurementServiceImpl implements ProcurementService {
 
 
     /**
     /**
      * 所有集采
      * 所有集采
+     *
      * @param pageNo
      * @param pageNo
      * @param pageSize
      * @param pageSize
+     * @param status   0全部,1参与,2我创建
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize,Integer userId) {
-        PageHelper.startPage(pageNo, pageSize);
+    public ResponseJson<PageInfo<ProcurementDto>> findList(int pageNo, int pageSize, Integer userId, Integer status) {
+//        PageHelper.startPage(pageNo, pageSize);
         List<ProcurementDto> procurementList = new ArrayList<>();
         List<ProcurementDto> procurementList = new ArrayList<>();
         // 我参与的
         // 我参与的
         List<ProcurePo> involvedList = procureService.findInvolvedList(userId.toString());
         List<ProcurePo> involvedList = procureService.findInvolvedList(userId.toString());
         // 参与者记录
         // 参与者记录
         //  List<AdditionalPo> additionalPos = additionalService.findList();
         //  List<AdditionalPo> additionalPos = additionalService.findList();
         // 所有集采信息
         // 所有集采信息
-        List<ProcurePo> list = procureService.findList(pageNo, pageSize);
+        List<ProcurePo> list = procureService.findList(pageNo, pageSize, userId, status);
+
         // 用户信息获取
         // 用户信息获取
         List<String> userIds = list.stream().map(ProcurePo::getUserId).collect(Collectors.toList());
         List<String> userIds = list.stream().map(ProcurePo::getUserId).collect(Collectors.toList());
         List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
         List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
@@ -86,28 +91,45 @@ public class ProcurementServiceImpl implements ProcurementService {
                 }
                 }
                 procurementDto.setNumber(p.getNumber());
                 procurementDto.setNumber(p.getNumber());
                 procurementDto.setIsAchieve(p.getIsAchieve());
                 procurementDto.setIsAchieve(p.getIsAchieve());
+                procurementDto.setIsInvolved(p.getIsInvolved());
                 procurementDto.setDelFlag(p.getDelFlag());
                 procurementDto.setDelFlag(p.getDelFlag());
                 // 参与机构数量
                 // 参与机构数量
                 procurementDto.setPartNumber(additionalPoList.size());
                 procurementDto.setPartNumber(additionalPoList.size());
-                // 是否参与集采 0未参与 1参与 2我创建的
-                if (p.getCreateUserId().equals(userId.toString())) {
-                    procurementDto.setIsInvolved(2);
-                } else {
-                    List<String> stringList = additionalPoList.stream().map(a -> a.getAdditionalId()).collect(Collectors.toList());
-                    List<ProcurePo> collect = involvedList.stream().filter(item -> stringList.contains(item.getId())).collect(Collectors.toList());
-                    if (null != collect && collect.size()>0) {
-                        procurementDto.setIsInvolved(1);
-                    } else {
-                        procurementDto.setIsInvolved(0);
-                    }
+//                // 是否参与集采 0未参与 1参与 2我创建的
+//                if (p.getCreateUserId().equals(userId.toString())) {
+//                    procurementDto.setIsInvolved(2);
+//                } else {
+//                    List<String> stringList = additionalPoList.stream().map(a -> a.getAdditionalId()).collect(Collectors.toList());
+//                    List<ProcurePo> collect = involvedList.stream().filter(item -> stringList.contains(item.getId())).collect(Collectors.toList());
+//                    if (null != collect && collect.size() > 0) {
+//                        procurementDto.setIsInvolved(1);
+//                    } else {
+//                        procurementDto.setIsInvolved(0);
+//                    }
+//                }
+                if (!p.getUserId().equals(userId)) {
+                    additionalService.findProcureById(p.getId()).forEach(s -> {
+                        procurementDto.setSId(s.getAdditionalId());
+                        procurementDto.setProcurePo(procureService.findById(s.getAdditionalId()));
+                        procurementDto.setIsInvolved(procurementDto.getProcurePo().getIsInvolved());
+                        procurementDto.setIsAchieve(procurementDto.getProcurePo().getIsAchieve());
+                    });
+                }
+                if (status == 0||(status != 0&&procurementDto.getIsInvolved() != 0 )) {
+                    procurementList.add(procurementDto);
                 }
                 }
-                procurementList.add(procurementDto);
             });
             });
         }
         }
-        PageInfo<ProcurementDto> page = new PageInfo(procurementList);
+        PageInfo<ProcurementDto> page = new PageInfo();
+        page.setPageNum(pageNo);
+        page.setPageSize(pageSize);
+        page.setTotal(procurementList.size());
+        page.setList(ListPagingUtil.listPaging(procurementList, pageNo, pageSize));
         return ResponseJson.success(page);
         return ResponseJson.success(page);
     }
     }
 
 
+
+
     /**
     /**
      * 查看详情
      * 查看详情
      *
      *
@@ -115,16 +137,16 @@ public class ProcurementServiceImpl implements ProcurementService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson<Map<String,Object>> detailProcurement(Integer id) {
+    public ResponseJson<Map<String, Object>> detailProcurement(String id) {
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
 
 
         // 参与者集合
         // 参与者集合
         List<ProcurementDto> procurementList = new ArrayList<>();
         List<ProcurementDto> procurementList = new ArrayList<>();
         ProcurementDto procurementDto = new ProcurementDto();
         ProcurementDto procurementDto = new ProcurementDto();
+//        ProcurementDto procurement = new ProcurementDto();
         // 参与者
         // 参与者
-        ProcurementDto procurement = new ProcurementDto();
-        // 发起者信息
         ProcurePo procurePo = procureService.findById(id.toString());
         ProcurePo procurePo = procureService.findById(id.toString());
+        // 发起者信息
         List<String> userProcurIds = new ArrayList<>();
         List<String> userProcurIds = new ArrayList<>();
         userProcurIds.add(procurePo.getUserId());
         userProcurIds.add(procurePo.getUserId());
         List<UserVo> userProcurInfo = procurementMapper.selUserInfo(userProcurIds);
         List<UserVo> userProcurInfo = procurementMapper.selUserInfo(userProcurIds);
@@ -143,40 +165,80 @@ public class ProcurementServiceImpl implements ProcurementService {
         }
         }
         procurementDto.setNumber(procurePo.getNumber());
         procurementDto.setNumber(procurePo.getNumber());
         procurementDto.setIsAchieve(procurePo.getIsAchieve());
         procurementDto.setIsAchieve(procurePo.getIsAchieve());
+        procurementDto.setIsInvolved(procurePo.getIsInvolved());
         procurementDto.setDelFlag(procurePo.getDelFlag());
         procurementDto.setDelFlag(procurePo.getDelFlag());
+//        if (procurementDto.getCreateUserId() == null) {
+//            procurementDto.setIsInvolved(1);
+//        } else {
+//            procurementDto.setIsInvolved(2);
+//        }
         map.put("procurement", procurementDto);
         map.put("procurement", procurementDto);
-        // 设置参与者信息
-        List<AdditionalPo> additionalList = additionalService.findProcureById(procurePo.getId());
-        for (AdditionalPo add : additionalList) {
-            // 参与者信息
-            ProcurePo procure = procureService.findById(add.getProcureId());
-            procurement.setId(procure.getId());
-            procurement.setUserId(procure.getUserId());
-            String imageURL = ImageUtils.getImageURL("product", procure.getProductImage(), 0, domain);
-            if (StringUtils.isNotBlank(imageURL)) {
-                procurement.setProductImage(imageURL);
+
+        List<AdditionalPo> additionalPoList =( List<AdditionalPo> ) MongodbUtils.find(AdditionalPo.class, new String[]{"procureId"}, new String[]{procurePo.getId()});
+        for (AdditionalPo s : additionalPoList) {
+            procurementDto = new ProcurementDto();
+            // 参与者
+            ProcurePo procure = procureService.findById(s.getAdditionalId());
+            // 发起者信息
+            List<String> userProcurIds1 = new ArrayList<>();
+            userProcurIds.add(procure.getUserId());
+            List<UserVo> userProcurInfo1 = procurementMapper.selUserInfo(userProcurIds1);
+            // 发起者信息设置
+            procurementDto.setId(procure.getId());
+            procurementDto.setUserId(procure.getUserId());
+            if (null != userProcurInfo1 && userProcurInfo1.size() > 0) {
+                procurementDto.setUserName(userProcurInfo1.get(0).getUserName());
             }
             }
-            procurement.setProductName(procure.getProductName());
-            procurement.setPrice(procure.getPrice());
-            procurement.setSaveTime(returnFormat.format(procure.getSaveTime()));
+            procurementDto.setProductImage(procure.getProductImage());
+            procurementDto.setProductName(procure.getProductName());
+            procurementDto.setPrice(procure.getPrice());
+            procurementDto.setSaveTime(returnFormat.format(procure.getSaveTime()));
             if (StringUtils.isNotBlank(procure.getCreateUserId())) {
             if (StringUtils.isNotBlank(procure.getCreateUserId())) {
-                procurement.setCreateUserId(procure.getCreateUserId());
+                procurementDto.setCreateUserId(procurePo.getCreateUserId());
             }
             }
-            procurement.setNumber(procure.getNumber());
-            procurement.setIsAchieve(procure.getIsAchieve());
-            procurement.setDelFlag(procure.getDelFlag());
-            procurementList.add(procurement);
-        }
-        // 用户信息获取
-        List<String> userIds = procurementList.stream().map(ProcurementDto::getUserId).collect(Collectors.toList());
-        List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
-        // 用户信息赋予
-        if (null != userInfo) {
-            procurementList.forEach(p -> {
-                p.setUserName(userInfo.get(userInfo.indexOf(p.getUserId())).getUserName());
-            });
+            procurementDto.setNumber(procure.getNumber());
+            procurementDto.setIsAchieve(procure.getIsAchieve());
+            procurementDto.setDelFlag(procure.getDelFlag());
+            if (procurementDto.getCreateUserId() == null) {
+                procurementDto.setIsInvolved(1);
+            } else {
+                procurementDto.setIsInvolved(2);
+            }
+            procurementList.add(procurementDto);
         }
         }
-        map.put("procurementList",procurementList);
+
+//        // 设置参与者信息
+//        List<AdditionalPo> additionalList = additionalService.findProcureById(procurePo.getId());
+//        for (AdditionalPo add : additionalList) {
+//            // 参与者信息
+//            ProcurePo procure = procureService.findById(add.getProcureId());
+//            procurement.setId(procure.getId());
+//            procurement.setUserId(procure.getUserId());
+//            String imageURL = ImageUtils.getImageURL("product", procure.getProductImage(), 0, domain);
+//            if (StringUtils.isNotBlank(imageURL)) {
+//                procurement.setProductImage(imageURL);
+//            }
+//            procurement.setProductName(procure.getProductName());
+//            procurement.setPrice(procure.getPrice());
+//            procurement.setSaveTime(returnFormat.format(procure.getSaveTime()));
+//            if (StringUtils.isNotBlank(procure.getCreateUserId())) {
+//                procurement.setCreateUserId(procure.getCreateUserId());
+//            }
+//            procurement.setNumber(procure.getNumber());
+//            procurement.setIsAchieve(procure.getIsAchieve());
+//            procurement.setDelFlag(procure.getDelFlag());
+//            procurementList.add(procurement);
+//        }
+//        // 用户信息获取
+//        List<String> userIds = procurementList.stream().map(ProcurementDto::getUserId).collect(Collectors.toList());
+//        List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
+//        // 用户信息赋予
+//        if (null != userInfo) {
+//            procurementList.forEach(p -> {
+//                p.setUserName(userInfo.get(userInfo.indexOf(p.getUserId())).getUserName());
+//            });
+//        }
+        map.put("procurementList", procurementList);
         return ResponseJson.success(map);
         return ResponseJson.success(map);
     }
     }
 
 
@@ -216,6 +278,7 @@ public class ProcurementServiceImpl implements ProcurementService {
                     ProcurePo pro = procureService.findById(additionalPo.getProcureId());
                     ProcurePo pro = procureService.findById(additionalPo.getProcureId());
                     if (!procurementList.stream().map(ProcurementDto::getId).collect(Collectors.toList()).contains(pro.getId())) {
                     if (!procurementList.stream().map(ProcurementDto::getId).collect(Collectors.toList()).contains(pro.getId())) {
                         procurementDto.setId(pro.getId());
                         procurementDto.setId(pro.getId());
+                        procurementDto.setSId(p.getId());
                         procurementDto.setUserId(pro.getUserId());
                         procurementDto.setUserId(pro.getUserId());
                         String imageURL = ImageUtils.getImageURL("product", pro.getProductImage(), 0, domain);
                         String imageURL = ImageUtils.getImageURL("product", pro.getProductImage(), 0, domain);
                         if (StringUtils.isNotBlank(imageURL)) {
                         if (StringUtils.isNotBlank(imageURL)) {
@@ -238,7 +301,7 @@ public class ProcurementServiceImpl implements ProcurementService {
                 } else {
                 } else {
                     // 我发起的
                     // 我发起的
                     procurementDto.setIsInvolved(2);
                     procurementDto.setIsInvolved(2);
-                    procurementDto.setId(p.getId());
+                    procurementDto.setSId(p.getId());
                     procurementDto.setUserId(p.getUserId());
                     procurementDto.setUserId(p.getUserId());
                     String imageURL = ImageUtils.getImageURL("product", p.getProductImage(), 0, domain);
                     String imageURL = ImageUtils.getImageURL("product", p.getProductImage(), 0, domain);
                     if (StringUtils.isNotBlank(imageURL)) {
                     if (StringUtils.isNotBlank(imageURL)) {
@@ -287,7 +350,7 @@ public class ProcurementServiceImpl implements ProcurementService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson<ProcurementDto> editData(Integer id, Integer userId,Integer procurementType) {
+    public ResponseJson<ProcurementDto> editData(String id, Integer userId, Integer procurementType) {
         ProcurementDto procurementDto = new ProcurementDto();
         ProcurementDto procurementDto = new ProcurementDto();
         List<ProcurePo> involvedList = new ArrayList<>();
         List<ProcurePo> involvedList = new ArrayList<>();
         if (0 == procurementType) {
         if (0 == procurementType) {
@@ -300,7 +363,13 @@ public class ProcurementServiceImpl implements ProcurementService {
             procurementDto.setIsInvolved(2);
             procurementDto.setIsInvolved(2);
         }
         }
         // 检索匹配
         // 检索匹配
-        ProcurePo procurePo = involvedList.get(involvedList.indexOf(id));
+//        ProcurePo procurePo = involvedList.get(involvedList.indexOf(id));
+        ProcurePo procurePo = null;
+        for (ProcurePo s : involvedList) {
+            if (id.equals(s.getId())) {
+                procurePo = s;
+            }
+        }
         List<String> userIds = new ArrayList<>();
         List<String> userIds = new ArrayList<>();
         userIds.add(procurePo.getUserId());
         userIds.add(procurePo.getUserId());
         List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
         List<UserVo> userInfo = procurementMapper.selUserInfo(userIds);
@@ -346,15 +415,23 @@ public class ProcurementServiceImpl implements ProcurementService {
         if (StringUtils.isNotBlank(procurementDto.getId())) {
         if (StringUtils.isNotBlank(procurementDto.getId())) {
             // 修改集采信息
             // 修改集采信息
             procurePo.setId(procurementDto.getId());
             procurePo.setId(procurementDto.getId());
-            procurePo.setCreateUserId(procurementDto.getCreateUserId());
-            procurePo.setIsAchieve(procurementDto.getIsAchieve());
-            procurePo.setDelFlag(procurementDto.getDelFlag());
-            procureService.update(procurePo);
+//            procurePo.setCreateUserId(procurementDto.getCreateUserId());
+//            procurePo.setIsAchieve(procurementDto.getIsAchieve());
+//            procurePo.setIsInvolved(procurementDto.getIsInvolved());
+//            procurePo.setDelFlag(procurementDto.getDelFlag());
+            MongodbUtils.updateFirst("_id", procurePo.getId(),
+                    new String[]{"productImage", "productName", "price", "number"},
+                    new String[]{procurePo.getProductImage(),
+                            procurePo.getProductName(),
+                            procurePo.getPrice(),
+                            procurePo.getNumber()},
+                    ProcurePo.class);
         } else {
         } else {
             // 发布集采需求
             // 发布集采需求
             procurePo.setCreateUserId(procurementDto.getUserId());
             procurePo.setCreateUserId(procurementDto.getUserId());
             procurePo.setClubName(procurementDto.getUserName());
             procurePo.setClubName(procurementDto.getUserName());
             procurePo.setIsAchieve("0");
             procurePo.setIsAchieve("0");
+            procurePo.setIsInvolved(2);
             procurePo.setDelFlag("0");
             procurePo.setDelFlag("0");
             procureService.save(procurePo);
             procureService.save(procurePo);
         }
         }
@@ -368,9 +445,15 @@ public class ProcurementServiceImpl implements ProcurementService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson participateProcurement(ProcurementDto procurementDto) throws Exception {
+    public ResponseJson participateProcurement(ProcurementDto procurementDto,Integer status) throws Exception {
         ProcurePo procurePo = new ProcurePo();
         ProcurePo procurePo = new ProcurePo();
-
+        java.lang.String id=procurementDto.getId();
+        if (status ==1) {
+//            procureService.deleteById(procurePo.getId());
+            id=((AdditionalPo)MongodbUtils.find(AdditionalPo.class, new java.lang.String[]{"additionalId"}, new java.lang.String[]{procurementDto.getId()}).get(0)).getProcureId();
+            MongodbUtils.removeById("additionalId", procurementDto.getId(), AdditionalPo.class);
+            MongodbUtils.removeById("_id", procurementDto.getId(), ProcurePo.class);
+        }
         // 参与集采需求
         // 参与集采需求
         procurePo.setUserId(procurementDto.getUserId());
         procurePo.setUserId(procurementDto.getUserId());
         procurePo.setProductImage(procurementDto.getProductImage());
         procurePo.setProductImage(procurementDto.getProductImage());
@@ -381,14 +464,38 @@ public class ProcurementServiceImpl implements ProcurementService {
         procurePo.setNumber(procurementDto.getNumber());
         procurePo.setNumber(procurementDto.getNumber());
 //        procurePo.setCreateUserId(procurementDto.getUserId());
 //        procurePo.setCreateUserId(procurementDto.getUserId());
         procurePo.setIsAchieve("0");
         procurePo.setIsAchieve("0");
+        procurePo.setIsInvolved(1);
         procurePo.setDelFlag("0");
         procurePo.setDelFlag("0");
+
         procureService.save(procurePo);
         procureService.save(procurePo);
         // 设置集采 发布与参与对应关系
         // 设置集采 发布与参与对应关系
         AdditionalPo additionalPo = new AdditionalPo();
         AdditionalPo additionalPo = new AdditionalPo();
-        additionalPo.setProcureId(procurementDto.getId());
+        additionalPo.setProcureId(id);
         additionalPo.setAdditionalId(procurePo.getId());
         additionalPo.setAdditionalId(procurePo.getId());
         additionalPo.setDelFlag("0");
         additionalPo.setDelFlag("0");
         additionalService.save(additionalPo);
         additionalService.save(additionalPo);
+//        } else {
+//            // 参与集采需求
+//            procurePo.setId(procurementDto.getId());
+//            procurePo.setUserId(procurementDto.getUserId());
+//            procurePo.setProductImage(procurementDto.getProductImage());
+//            procurePo.setProductName(procurementDto.getProductName());
+//            procurePo.setPrice(procurementDto.getPrice());
+//            String time = saveFormat.format(new Date());
+//            procurePo.setSaveTime(Long.valueOf(saveFormat.parse(time).getTime()));
+//            procurePo.setNumber(procurementDto.getNumber());
+////        procurePo.setCreateUserId(procurementDto.getUserId());
+//            procurePo.setIsAchieve("0");
+//            procurePo.setIsInvolved(1);
+//            procurePo.setDelFlag("0");
+//            procureService.updateFirst(procurePo);
+////            // 设置集采 发布与参与对应关系
+////            AdditionalPo additionalPo = new AdditionalPo();
+////            additionalPo.setProcureId(procurementDto.getId());
+////            additionalPo.setAdditionalId(procurePo.getId());
+////            additionalPo.setDelFlag("0");
+////            additionalService.update(additionalPo);
+//        }
         return ResponseJson.success();
         return ResponseJson.success();
     }
     }
 
 
@@ -401,27 +508,35 @@ public class ProcurementServiceImpl implements ProcurementService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public ResponseJson updateProcurement(Integer id, Integer userId, Integer procurementType) {
+    public ResponseJson updateProcurement(String id, Integer userId, Integer procurementType) {
         // 更新集采信息
         // 更新集采信息
         if (1 == procurementType) {
         if (1 == procurementType) {
-            // 退出集采
-            AdditionalPo additionalPo = new AdditionalPo();
+            // 删除集采
             ProcurePo procurePo = new ProcurePo();
             ProcurePo procurePo = new ProcurePo();
-            // 主集采下所有参与者 参与id
-            List<AdditionalPo> poList = additionalService.findProcureById(id.toString());
-            for (AdditionalPo add : poList) {
-                ProcurePo byId = procureService.findById(add.getAdditionalId());
-                if (byId.getUserId().equals(userId)) {
-                    // 修改集采参与记录关系
-                    additionalPo.setAdditionalId(byId.getId());
-                    additionalPo.setDelFlag("1");
-                    additionalService.update(additionalPo);
-                    // 修改集采参与记录
-                    procurePo.setId(byId.getId());
-                    procurePo.setDelFlag("1");
-                    procureService.update(procurePo);
-                }
-            }
+            procurePo.setId(id.toString());
+            procurePo.setIsInvolved(0);
+            MongodbUtils.updateFirst("_id", procurePo.getId(),
+                    new String[]{"IsInvolved"},
+                    new String[]{procurePo.getIsInvolved().toString()},
+                    ProcurePo.class);
+//            // 退出集采
+//            AdditionalPo additionalPo = new AdditionalPo();
+//            ProcurePo procurePo = new ProcurePo();
+//            // 主集采下所有参与者 参与id
+//            List<AdditionalPo> poList = additionalService.findProcureById(id.toString());
+//            for (AdditionalPo add : poList) {
+//                ProcurePo byId = procureService.findById(add.getAdditionalId());
+//                if (byId.getUserId().equals(userId)) {
+//                    // 修改集采参与记录关系
+//                    additionalPo.setAdditionalId(byId.getId());
+//                    additionalPo.setDelFlag("1");
+//                    additionalService.update(additionalPo);
+//                    // 修改集采参与记录
+//                    procurePo.setId(byId.getId());
+//                    procurePo.setDelFlag("1");
+//                    procureService.update(procurePo);
+//                }
+//            }
         } else {
         } else {
             // 删除集采
             // 删除集采
             ProcurePo procurePo = new ProcurePo();
             ProcurePo procurePo = new ProcurePo();
@@ -430,7 +545,7 @@ public class ProcurementServiceImpl implements ProcurementService {
             procureService.update(procurePo);
             procureService.update(procurePo);
             // 删除集采关系
             // 删除集采关系
             AdditionalPo additionalPo = new AdditionalPo();
             AdditionalPo additionalPo = new AdditionalPo();
-            additionalPo.setProcureId(id.toString());
+            additionalPo.setId(id.toString());
             additionalPo.setDelFlag("1");
             additionalPo.setDelFlag("1");
             additionalService.update(additionalPo);
             additionalService.update(additionalPo);
         }
         }

+ 35 - 0
src/main/java/com/caimei365/commodity/utils/ListPagingUtil.java

@@ -0,0 +1,35 @@
+package com.caimei365.commodity.utils;
+
+import java.util.*;
+public class ListPagingUtil {
+ 
+    /**
+     * @param list 进行分页的list
+     * @param pageNo 页码
+     * @param pageSize 每页显示条数
+     * @return 分页后数据
+     */
+    public static <T> List<T> listPaging(List<T> list, Integer pageNo, Integer pageSize){
+        if(list == null){
+            list = new ArrayList<T>();
+        }
+        if(pageNo == null){
+            pageNo = 1;
+        }
+        if(pageSize == null){
+            pageSize = 10;
+        }
+        if(pageNo <= 0){
+            pageNo = 1;
+        }
+ 
+        int totalitems = list.size();
+        List<T> pagingList = new ArrayList<T>();
+        
+        int totalNum = ((pageNo - 1) * pageSize) + pageSize > totalitems ? totalitems : ((pageNo - 1) * pageSize) + pageSize;
+        for(int i = (pageNo-1)*pageSize; i < totalNum; i++) {
+            pagingList.add(list.get(i));
+        }
+        return pagingList;
+    }
+}

+ 311 - 0
src/main/java/com/caimei365/commodity/utils/MongodbUtils.java

@@ -0,0 +1,311 @@
+package com.caimei365.commodity.utils;
+
+
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.data.mongodb.core.query.Update;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
+import java.util.List;
+
+/**
+ * @author codekiller
+ * @date 2020/5/30 15:53
+ * Mongodb工具类
+ */
+@Component
+public class MongodbUtils {
+
+  public static MongodbUtils mongodbUtils;
+
+  @PostConstruct
+  public void init() {
+    mongodbUtils = this;
+    mongodbUtils.mongoTemplate = this.mongoTemplate;
+  }
+
+  @Autowired
+  private MongoTemplate mongoTemplate;
+
+  /**
+   * 保存数据对象,集合为数据对象中@Document 注解所配置的collection
+   *
+   * @param obj
+   *            数据对象
+   */
+  public static void save(Object obj) {
+    mongodbUtils.mongoTemplate.save(obj);
+  }
+
+  /**
+   * 指定集合保存数据对象
+   *
+   * @param obj
+   *            数据对象
+   * @param collectionName
+   *            集合名
+   */
+  public static void save(Object obj, String collectionName) {
+
+    mongodbUtils.mongoTemplate.save(obj, collectionName);
+  }
+
+  /**
+   * 根据数据对象中的id删除数据,集合为数据对象中@Document 注解所配置的collection
+   *
+   * @param obj
+   *            数据对象
+   */
+  public static void remove(Object obj) {
+
+    mongodbUtils.mongoTemplate.remove(obj);
+  }
+
+  /**
+   * 指定集合 根据数据对象中的id删除数据
+   *
+   * @param obj
+   *            数据对象
+   * @param collectionName
+   *            集合名
+   */
+  public static void remove(Object obj, String collectionName) {
+
+    mongodbUtils.mongoTemplate.remove(obj, collectionName);
+  }
+
+  /**
+   * 根据key,value到指定集合删除数据
+   *
+   * @param key
+   *            键
+   * @param value
+   *            值
+   * @param collectionName
+   *            集合名
+   */
+  public static void removeById(String key, Object value, Class collectionName) {
+
+    Criteria criteria = Criteria.where(key).is(value);
+    Query query = Query.query(criteria);
+    mongodbUtils.mongoTemplate.remove(query, collectionName);
+  }
+
+  /**
+   * 指定集合 修改数据,且仅修改找到的第一条数据
+   *
+   * @param accordingKey
+   *            修改条件 key
+   * @param accordingValue
+   *            修改条件 value
+   * @param updateKeys
+   *            修改内容 key数组
+   * @param updateValues
+   *            修改内容 value数组
+   * @param collectionName
+   *            集合名对象
+   */
+  public static void updateFirst(String accordingKey, Object accordingValue, String[] updateKeys, Object[] updateValues,
+                                 Class collectionName) {
+
+    Criteria criteria = Criteria.where(accordingKey).is(accordingValue);
+    Query query = Query.query(criteria);
+    Update update = new Update();
+    for (int i = 0; i < updateKeys.length; i++) {
+      update.set(updateKeys[i], updateValues[i]);
+    }
+    mongodbUtils.mongoTemplate.updateFirst(query, update, collectionName);
+  }
+
+  /**
+   * 指定集合 修改数据,且修改所找到的所有数据
+   *
+   * @param accordingKey
+   *            修改条件 key
+   * @param accordingValue
+   *            修改条件 value
+   * @param updateKeys
+   *            修改内容 key数组
+   * @param updateValues
+   *            修改内容 value数组
+   * @param collectionName
+   *            集合名
+   */
+  public static void updateMulti(String accordingKey, Object accordingValue, String[] updateKeys, Object[] updateValues,
+                                 String collectionName) {
+
+    Criteria criteria = Criteria.where(accordingKey).is(accordingValue);
+    Query query = Query.query(criteria);
+    Update update = new Update();
+    for (int i = 0; i < updateKeys.length; i++) {
+      update.set(updateKeys[i], updateValues[i]);
+    }
+    mongodbUtils.mongoTemplate.updateMulti(query, update, collectionName);
+  }
+
+  /**
+   * 根据条件查询出所有结果集 集合为数据对象中@Document 注解所配置的collection
+   *
+   * @param obj
+   *            数据对象
+   * @param findKeys
+   *            查询条件 key
+   * @param findValues
+   *            查询条件 value
+   * @return
+   */
+  public static List<? extends Object> find(Class obj, String[] findKeys, Object[] findValues) {
+
+    Criteria criteria = null;
+    for (int i = 0; i < findKeys.length; i++) {
+      if (i == 0) {
+        criteria = Criteria.where(findKeys[i]).is(findValues[i]);
+      } else {
+        criteria.and(findKeys[i]).is(findValues[i]);
+      }
+    }
+    Query query = Query.query(criteria);
+    List<? extends Object> resultList = mongodbUtils.mongoTemplate.find(query,obj);
+    return resultList;
+  }
+
+  /**
+   * 指定集合 根据条件查询出所有结果集
+   *
+   * @param obj
+   *            数据对象
+   * @param findKeys
+   *            查询条件 key
+   * @param findValues
+   *            查询条件 value
+   * @param collectionName
+   *            集合名
+   * @return
+   */
+  public static List<? extends Object> find(Object obj, String[] findKeys, Object[] findValues, String collectionName) {
+
+    Criteria criteria = null;
+    for (int i = 0; i < findKeys.length; i++) {
+      if (i == 0) {
+        criteria = Criteria.where(findKeys[i]).is(findValues[i]);
+      } else {
+        criteria.and(findKeys[i]).is(findValues[i]);
+      }
+    }
+    Query query = Query.query(criteria);
+    List<? extends Object> resultList = mongodbUtils.mongoTemplate.find(query, obj.getClass(), collectionName);
+    return resultList;
+  }
+
+
+  /**
+   * 根据条件查询出符合的第一条数据 集合为数据对象中 @Document 注解所配置的collection
+   *
+   * @param obj
+   *            数据对象
+   * @param findKeys
+   *            查询条件 key
+   * @param findValues
+   *            查询条件 value
+   * @return
+   */
+  public static Object findOne(Object obj, String[] findKeys, Object[] findValues) {
+
+    Criteria criteria = null;
+    for (int i = 0; i < findKeys.length; i++) {
+      if (i == 0) {
+        criteria = Criteria.where(findKeys[i]).is(findValues[i]);
+      } else {
+        criteria.and(findKeys[i]).is(findValues[i]);
+      }
+    }
+    Query query = Query.query(criteria);
+    Object resultObj = mongodbUtils.mongoTemplate.findOne(query, obj.getClass());
+    return resultObj;
+  }
+
+  /**
+   * 指定集合 根据条件查询出符合的第一条数据
+   *
+   * @param obj
+   *            数据对象
+   * @param findKeys
+   *            查询条件 key
+   * @param findValues
+   *            查询条件 value
+   * @param collectionName
+   *            集合名
+   * @return
+   */
+  public static Object findOne(Object obj, String[] findKeys, Object[] findValues, String collectionName) {
+
+    Criteria criteria = null;
+    for (int i = 0; i < findKeys.length; i++) {
+      if (i == 0) {
+        criteria = Criteria.where(findKeys[i]).is(findValues[i]);
+      } else {
+        criteria.and(findKeys[i]).is(findValues[i]);
+      }
+    }
+    Query query = Query.query(criteria);
+    Object resultObj = mongodbUtils.mongoTemplate.findOne(query, obj.getClass(), collectionName);
+    return resultObj;
+  }
+
+  /**
+   * 出所有结果集 查询集合为数据对象中 @Document 注解所配置的collection
+   *
+   * @param obj
+   *            数据对象
+   * @return
+   */
+  public static List<? extends Object> findAll(Object obj) {
+
+    List<? extends Object> resultList = mongodbUtils.mongoTemplate.findAll(obj.getClass());
+    return resultList;
+  }
+
+  /**
+   * 查询出所有结果集 集合为数据对象中 @Document 注解所配置的collection
+   * @param clazz
+   * @param <T>
+   * @return
+   */
+  public static <T>  List<T> findAll(Class<T> clazz){
+    List<T> resultList = mongodbUtils.mongoTemplate.findAll(clazz);
+    return resultList;
+  }
+
+  /**
+   * 指定集合 查询出所有结果集
+   *
+   * @param obj
+   *            数据对象
+   * @param collectionName
+   *            集合名
+   * @return
+   */
+  public static List<? extends Object> findAll(Object obj, String collectionName) {
+
+    List<? extends Object> resultList = mongodbUtils.mongoTemplate.findAll(obj.getClass(), collectionName);
+    return resultList;
+  }
+
+  /**
+   * 指定集合 查询出所有结果集
+   * @param clazz
+   * @param collectionName
+   * @param <T>
+   * @return
+   */
+  public static <T> List<T> findAll(Class<T> clazz, String collectionName) {
+    List<T> resultList = mongodbUtils.mongoTemplate.findAll(clazz, collectionName);
+    return resultList;
+  }
+
+}