liusw 8 лет назад
Родитель
Сommit
c183e7a031
19 измененных файлов с 1218 добавлено и 40 удалено
  1. 19 0
      src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java
  2. 38 8
      src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekPurchaseController.java
  3. 80 0
      src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekPurchaseOfferController.java
  4. 1 1
      src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekQualityBuyerController.java
  5. 31 0
      src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekMallGoodsDao.java
  6. 19 0
      src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseByBatchDao.java
  7. 1 9
      src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseDao.java
  8. 18 0
      src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseOfferDao.java
  9. 128 0
      src/main/java/com/uas/platform/b2c/trade/seek/model/SeekMallGoods.java
  10. 46 0
      src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchase.java
  11. 192 0
      src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchaseByBatch.java
  12. 177 0
      src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchaseOffer.java
  13. 39 0
      src/main/java/com/uas/platform/b2c/trade/seek/service/SeekPurchaseOfferService.java
  14. 20 1
      src/main/java/com/uas/platform/b2c/trade/seek/service/SeekPurchaseService.java
  15. 141 0
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseOfferServiceImpl.java
  16. 211 21
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseServiceImpl.java
  17. 3 0
      src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekQualityBuyerServiceImpl.java
  18. 51 0
      src/main/java/com/uas/platform/b2c/trade/seek/status/Status.java
  19. 3 0
      src/main/webapp/WEB-INF/spring/webmvc.xml

+ 19 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/dao/GoodsDao.java

@@ -531,4 +531,23 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
     @Transactional
     @Query( nativeQuery = true, value = "update trade$goods set go_visit_count = ifnull(go_visit_count, 0) + 1 where go_batchcode = :batchCode")
     public void addVisitCount(@Param("batchCode") String batchCode);
+
+    /**
+     * 根据型号和品牌获取商城现货id
+     * @param code
+     * @param brand
+     * @return
+     */
+    @Query(value = "select g.id from Goods g where g.code = :code and (g.brandNameCn = :brand or g.brandNameEn = :brand)")
+    List<Long> getGoodsByCodeAndName(@Param("code")String code, @Param("brand")String brand);
+
+    /**
+     * 判断是否用户存在相同产品
+     * @param code
+     * @param brand
+     * @param uu
+     * @return
+     */
+    @Query(value = "select g.id from Goods g where g.code = :code and (g.brandNameCn = :brand or g.brandNameEn = :brand) and g.publisherUU = :uu")
+    Long getGoodsId(@Param("code")String code, @Param("brand")String brand, @Param("uu") Long uu);
 }

+ 38 - 8
src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekPurchaseController.java

@@ -1,6 +1,8 @@
 package com.uas.platform.b2c.trade.seek.controller;
 
+import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.trade.seek.model.SeekMallGoods;
 import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
 import com.uas.platform.b2c.trade.seek.service.SeekPurchaseService;
 import com.uas.platform.core.logging.BufferedLoggerManager;
@@ -8,14 +10,17 @@ import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import java.util.List;
 import java.util.Map;
+import javax.servlet.http.HttpSession;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * 求购
+ * 求购操作接口类
  *
  * @author liusw
  * @version 2017/12/13 10:38
@@ -25,7 +30,7 @@ import org.springframework.web.bind.annotation.RestController;
 public class SeekPurchaseController {
 
     /**
-     * 求购接口
+     * 求购业务api
      */
     @Autowired
     private SeekPurchaseService seekPurchaseService;
@@ -38,15 +43,14 @@ public class SeekPurchaseController {
     /**
      * 分页获取采购列表
      * @param params 分页参数
-     * @param  kind 产品类目
-     * @param brand 产品品牌
+     * @param deadline 截止日期
      * @return 采购列表
      */
     @RequestMapping(value = "/getSeekPageInfo", method = RequestMethod.GET)
-    public Page<SeekPurchase> getSeekPageInfo(PageParams params, String kind, String brand, String deadline) {
+    public Page<SeekPurchase> getSeekPageInfo(PageParams params, String keyWord, String deadline, Long uu, Integer status, String minReleaseDate, String maxReleaseDate) {
         logger.log("求购", "分页获取采购列表,参数为" + params);
         PageInfo info = new PageInfo(params);
-        return seekPurchaseService.getSeekPageInfo(info, kind, brand, deadline);
+        return seekPurchaseService.getSeekPageInfo(info, keyWord, deadline, uu, status, minReleaseDate, maxReleaseDate);
     }
 
     /**
@@ -55,9 +59,35 @@ public class SeekPurchaseController {
      */
     @RequestMapping(value = "/getSeekRanking", method = RequestMethod.GET)
     public List<Map<String, Object>> getSeekRanking() {
+        logger.log("求购", "获取采购排行榜");
+        return seekPurchaseService.getSeekRanking();
+    }
 
-        return null;
+    /**
+     * 单个求购发布
+     * @param seekPurchase 求购信息
+     * @param session
+     * @return
+     */
+    @RequestMapping(value = "/saveOneSeekPurchase", method = RequestMethod.POST)
+    @ResponseBody
+    public SeekPurchase saveOneSeekPurchase(@RequestBody SeekPurchase seekPurchase, HttpSession session) {
+        User user = (User) session.getAttribute("user");
+        logger.log("求购", "发布采购,uu为:" + user.getUserUU());
+        return seekPurchaseService.saveOneSeekPurchase(seekPurchase, user);
     }
 
-    //求购发布
+    /**
+     * 分页获取卖家求购列表
+     * @param params
+     * @param session
+     * @return
+     */
+    @RequestMapping(value = "/getVendorSeekPageInfo", method = RequestMethod.GET)
+    public Page<SeekMallGoods> getVendorSeekPageInfo(PageParams params, HttpSession session, Integer status, String minReleaseDate, String maxReleaseDate, String keyWord, String deadline) {
+        logger.log("求购", "分页获取卖家采购列表,参数为" + params);
+        PageInfo info = new PageInfo(params);
+        User user = (User) session.getAttribute("user");
+        return seekPurchaseService.getVendorSeekPageInfo(info, user.getUserUU(), status, minReleaseDate, maxReleaseDate, keyWord, deadline);
+    }
 }

+ 80 - 0
src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekPurchaseOfferController.java

@@ -0,0 +1,80 @@
+package com.uas.platform.b2c.trade.seek.controller;
+
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseOffer;
+import com.uas.platform.b2c.trade.seek.service.SeekPurchaseOfferService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
+import java.util.Map;
+import javax.servlet.http.HttpSession;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 卖家报价操作接口类
+ *
+ * @author liusw
+ * @version 2017/12/20 15:30
+ */
+@RestController
+@RequestMapping("/seek/offer")
+public class SeekPurchaseOfferController {
+    /**
+     * 日志
+     */
+    private static final UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    /**
+     * 卖家报价业务逻辑接口
+     */
+    @Autowired
+    private SeekPurchaseOfferService seekPurchaseOfferService;
+
+    /**
+     * 保存卖家报价
+     * @param seekPurchaseOffer 求购信息
+     * @param session session对象
+     * @return
+     */
+    @RequestMapping(value = "/saveOffer", method = RequestMethod.POST)
+    @ResponseBody
+    public SeekPurchaseOffer saveOffer(@RequestBody SeekPurchaseOffer seekPurchaseOffer, HttpSession session) {
+        User user = (User) session.getAttribute("user");
+        logger.log("求购", "卖家报价,uu为:" + user.getUserUU());
+        return seekPurchaseOfferService.saveOffer(seekPurchaseOffer, user);
+    }
+
+    /**
+     * 获取求购成交率
+     * @param session 获取session
+     * @return
+     */
+    @RequestMapping(value = "/getSeekPurchaseRate", method = RequestMethod.GET)
+    public Map<String, Object> getSeekPurchaseRate(HttpSession session) {
+        User user = (User) session.getAttribute("user");
+        logger.log("求购", "获取卖家求购成交率:" + user.getUserUU());
+        return seekPurchaseOfferService.getSeekPurchaseRate(user.getUserUU());
+    }
+
+    /**
+     * 获取某个求购的报价列表
+     * @param params
+     * @param spId
+     * @param session
+     * @return
+     */
+    @RequestMapping(value = "/getSeekPurchaseOfferPageInfo", method = RequestMethod.GET)
+    public Page<SeekPurchaseOffer> getSeekPurchaseOfferPageInfo(PageParams params, Long spId, HttpSession session) {
+        User user = (User) session.getAttribute("user");
+        logger.log("求购", "获取买家求购报价列表,求购id为" + spId);
+        PageInfo info = new PageInfo(params);
+        return seekPurchaseOfferService.getSeekPurchaseOfferPageInfo(info, spId, user.getUserUU());
+    }
+}

+ 1 - 1
src/main/java/com/uas/platform/b2c/trade/seek/controller/SeekQualityBuyerController.java

@@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * 求购-优质采购商
+ * 求购-优质采购商操作接口类
  *
  * @author liusw
  * @version 2017/12/13 10:38

+ 31 - 0
src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekMallGoodsDao.java

@@ -0,0 +1,31 @@
+package com.uas.platform.b2c.trade.seek.dao;
+
+import com.uas.platform.b2c.trade.seek.model.SeekMallGoods;
+import java.util.List;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 求购批量发布业务Dao
+ *
+ * @author liusw
+ * @version 2017/12/12 16:48
+ */
+@Repository
+public interface SeekMallGoodsDao extends JpaSpecificationExecutor<SeekMallGoods>,
+        JpaRepository<SeekMallGoods, Long> {
+
+    /**
+     * 判断该求购 用户是否有现货
+     * @param code
+     * @param brand
+     * @param uu
+     * @return
+     */
+    @Query(value = "select s.id from trade.seekMallGoods s where s.goods.code = ?1 and s.goods.publisherUU = ?3 and (s.goods.brandNameCn = ?2 or s.goods.brandNameEn = ?2)")
+    Long isSeekMallGoods(String code, String brand, Long uu);
+}
+

+ 19 - 0
src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseByBatchDao.java

@@ -0,0 +1,19 @@
+package com.uas.platform.b2c.trade.seek.dao;
+
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseByBatch;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 求购批量发布业务Dao
+ *
+ * @author liusw
+ * @version 2017/12/12 16:48
+ */
+@Repository
+public interface SeekPurchaseByBatchDao extends JpaSpecificationExecutor<SeekPurchaseByBatch>,
+        JpaRepository<SeekPurchaseByBatch, Long> {
+
+}
+

+ 1 - 9
src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseDao.java

@@ -1,11 +1,8 @@
 package com.uas.platform.b2c.trade.seek.dao;
 
 import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
-import java.util.List;
-import java.util.Map;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -18,10 +15,5 @@ import org.springframework.stereotype.Repository;
 public interface SeekPurchaseDao extends JpaSpecificationExecutor<SeekPurchase>,
         JpaRepository<SeekPurchase, Long> {
 
-    /**
-     * 获取采购排行榜
-     * @return
-     */
-    @Query(value = "select s from trade.seekPurchase s")
-    List<Map<String, Object>> getSeekRanking();
 }
+

+ 18 - 0
src/main/java/com/uas/platform/b2c/trade/seek/dao/SeekPurchaseOfferDao.java

@@ -0,0 +1,18 @@
+package com.uas.platform.b2c.trade.seek.dao;
+
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseOffer;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 卖家报价dao
+ *
+ * @author liusw
+ * @version 2017/12/20 15:25
+ */
+@Repository
+public interface SeekPurchaseOfferDao extends JpaSpecificationExecutor<SeekPurchaseOffer>,
+        JpaRepository<SeekPurchaseOffer, Long> {
+
+}

+ 128 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/SeekMallGoods.java

@@ -0,0 +1,128 @@
+package com.uas.platform.b2c.trade.seek.model;
+
+import com.uas.platform.b2c.prod.commodity.model.Goods;
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+/**
+ * 求购商城现货表
+ *
+ * @author liusw
+ * @version 2017/12/22 11:44
+ */
+@Entity(name = "trade.seekMallGoods")
+@Table(name = "trade$seekMallGoods")
+public class SeekMallGoods {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "sm_id")
+    private Long id;
+
+    /**
+     * 求购id
+     */
+    @Column(name = "sp_id")
+    private Long spId;
+
+    /**
+     * 求购详细信息
+     */
+    @OneToOne(cascade = { CascadeType.REFRESH })
+    @JoinColumn(name = "sp_id", insertable = false, updatable = false)
+    private SeekPurchase seekPurchase;
+
+    /**
+     * 商品id
+     */
+    @Column(name = "go_id")
+    private Long goodsId;
+
+    /**
+     * 商品详细信息
+     */
+    @OneToOne(cascade = { CascadeType.REFRESH })
+    @JoinColumn(name = "go_id", insertable = false, updatable = false)
+    private Goods goods;
+
+    /**
+     * 报价id
+     */
+    @Column(name = "of_id")
+    private Long offerId;
+
+    /**
+     * 求购报价详情信息
+     */
+    @OneToOne(cascade = { CascadeType.REFRESH })
+    @JoinColumn(name = "of_id", insertable = false, updatable = false)
+    private SeekPurchaseOffer seekPurchaseOffer;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSpId() {
+        return spId;
+    }
+
+    public void setSpId(Long spId) {
+        this.spId = spId;
+    }
+
+    public SeekPurchase getSeekPurchase() {
+        return seekPurchase;
+    }
+
+    public void setSeekPurchase(SeekPurchase seekPurchase) {
+        this.seekPurchase = seekPurchase;
+    }
+
+    public Long getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Long goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public Goods getGoods() {
+        return goods;
+    }
+
+    public void setGoods(Goods goods) {
+        this.goods = goods;
+    }
+
+    public Long getOfferId() {
+        return offerId;
+    }
+
+    public void setOfferId(Long offerId) {
+        this.offerId = offerId;
+    }
+
+    public SeekPurchaseOffer getSeekPurchaseOffer() {
+        return seekPurchaseOffer;
+    }
+
+    public void setSeekPurchaseOffer(
+            SeekPurchaseOffer seekPurchaseOffer) {
+        this.seekPurchaseOffer = seekPurchaseOffer;
+    }
+}

+ 46 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchase.java

@@ -93,6 +93,12 @@ public class SeekPurchase {
     @Column(name = "sp_unitPrice")
     private Double unitPrice;
 
+    /**
+     * 求购币别
+     */
+    @Column(name = "sp_currency")
+    private String currency;
+
     /**
      * 求购产品类目
      */
@@ -105,6 +111,18 @@ public class SeekPurchase {
     @Column(name = "sp_releaseDate")
     private Date releaseDate;
 
+    /**
+     * 已购数量
+     */
+    @Column(name = "sp_boughtAmount")
+    private Integer boughtAmount;
+
+    /**
+     * 买家姓名
+     */
+    @Column(name = "sp_userName")
+    private String userName;
+
     public Long getId() {
         return id;
     }
@@ -216,4 +234,32 @@ public class SeekPurchase {
     public void setReleaseDate(Date releaseDate) {
         this.releaseDate = releaseDate;
     }
+
+    public Integer getBoughtAmount() {
+        return boughtAmount;
+    }
+
+    public void setBoughtAmount(Integer boughtAmount) {
+        this.boughtAmount = boughtAmount;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
 }

+ 192 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchaseByBatch.java

@@ -0,0 +1,192 @@
+package com.uas.platform.b2c.trade.seek.model;
+
+import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * 求购临时表
+ *
+ * @author liusw
+ * @version 2017/12/12 16:45
+ */
+@Entity(name = "trade.seekPurchaseByBatch")
+@Table(name = "trade$seekPurchaseByBatch")
+public class SeekPurchaseByBatch {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "sb_id")
+    private Long id;
+
+    /**
+     * 求购型号
+     */
+    @Column(name = "sb_code")
+    private String code;
+
+    /**
+     * 求购品牌
+     */
+    @Column(name = "sb_brand")
+    private String brand;
+
+    /**
+     * 求购截止时间
+     */
+    @Column(name = "sb_deadline")
+    private Date deadline;
+
+    /**
+     * 求购产品生产日期
+     */
+    @Column(name = "sb_producedate")
+    private String produceDate;
+
+    /**
+     * 求购 封装类型
+     */
+    @Column(name = "sb_encapsulation")
+    private String encapsulation;
+
+    /**
+     * 求购数量
+     */
+    @Column(name = "sb_amount")
+    private Long amount;
+
+
+    /**
+     * 求购单价预算
+     */
+    @Column(name = "sb_unitPrice")
+    private Double unitPrice;
+
+    /**
+     * 求购币别
+     */
+    @Column(name = "sb_currency")
+    private String currency;
+
+    /**
+     * 求购产品类目
+     */
+    @Column(name = "sb_kind")
+    private String kind;
+
+    /**
+     * 求购发布时间
+     */
+    @Column(name = "sb_releaseDate")
+    private Date releaseDate;
+
+    /**
+     * 批量导入excel唯一标识
+     */
+    @Column(name = "sb_excelId")
+    private String excelId;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public Date getDeadline() {
+        return deadline;
+    }
+
+    public void setDeadline(Date deadline) {
+        this.deadline = deadline;
+    }
+
+    public String getProduceDate() {
+        return produceDate;
+    }
+
+    public void setProduceDate(String produceDate) {
+        this.produceDate = produceDate;
+    }
+
+    public String getEncapsulation() {
+        return encapsulation;
+    }
+
+    public void setEncapsulation(String encapsulation) {
+        this.encapsulation = encapsulation;
+    }
+
+    public Long getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Long amount) {
+        this.amount = amount;
+    }
+
+    public Double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(Double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public String getKind() {
+        return kind;
+    }
+
+    public void setKind(String kind) {
+        this.kind = kind;
+    }
+
+    public Date getReleaseDate() {
+        return releaseDate;
+    }
+
+    public void setReleaseDate(Date releaseDate) {
+        this.releaseDate = releaseDate;
+    }
+
+    public String getExcelId() {
+        return excelId;
+    }
+
+    public void setExcelId(String excelId) {
+        this.excelId = excelId;
+    }
+}

+ 177 - 0
src/main/java/com/uas/platform/b2c/trade/seek/model/SeekPurchaseOffer.java

@@ -0,0 +1,177 @@
+package com.uas.platform.b2c.trade.seek.model;
+
+import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ * 卖家报价实体类
+ *
+ * @author liusw
+ * @version 2017/12/20 15:13
+ */
+@Entity(name = "trade.seekPurchaseOffer")
+@Table(name = "trade$seekPurchaseOffer")
+public class SeekPurchaseOffer {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID
+     */
+    @Id
+    @GeneratedValue
+    @Column(name = "of_id")
+    private Long id;
+
+    /**
+     * 求购id
+     */
+    @Column(name = "sp_id")
+    private Long spId;
+
+    /**
+     * 报价单价
+     */
+    @Column(name = "of_unitPrice")
+    private Double unitPrice;
+
+    /**
+     * 报价币别
+     */
+    @Column(name = "of_currency")
+    private String currency;
+
+    /**
+     * 最小天数
+     */
+    @Column(name = "of_minDay")
+    private Integer minDay;
+
+    /**
+     * 最大天数
+     */
+    @Column(name = "of_maxDay")
+    private Integer maxDay;
+
+    /**
+     * 生产日期
+     */
+    @Column(name = "of_produceDate")
+    private Date produceDate;
+
+    /**
+     * 卖家uu号
+     */
+    @Column(name = "of_uu")
+    private Long uu;
+
+    /**
+     * 卖家名称
+     */
+    @Column(name = "of_userName")
+    private String userName;
+
+    /**
+     * 报价状态
+     */
+    @Column(name = "of_status")
+    private Integer status;
+
+    /**
+     * 报价时间
+     */
+    @Column(name = "of_offerTime")
+    private Date offerTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getSpId() {
+        return spId;
+    }
+
+    public void setSpId(Long spId) {
+        this.spId = spId;
+    }
+
+    public Double getUnitPrice() {
+        return unitPrice;
+    }
+
+    public void setUnitPrice(Double unitPrice) {
+        this.unitPrice = unitPrice;
+    }
+
+    public Integer getMinDay() {
+        return minDay;
+    }
+
+    public void setMinDay(Integer minDay) {
+        this.minDay = minDay;
+    }
+
+    public Integer getMaxDay() {
+        return maxDay;
+    }
+
+    public void setMaxDay(Integer maxDay) {
+        this.maxDay = maxDay;
+    }
+
+    public Date getProduceDate() {
+        return produceDate;
+    }
+
+    public void setProduceDate(Date produceDate) {
+        this.produceDate = produceDate;
+    }
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getCurrency() {
+        return currency;
+    }
+
+    public void setCurrency(String currency) {
+        this.currency = currency;
+    }
+
+    public Date getOfferTime() {
+        return offerTime;
+    }
+
+    public void setOfferTime(Date offerTime) {
+        this.offerTime = offerTime;
+    }
+}

+ 39 - 0
src/main/java/com/uas/platform/b2c/trade/seek/service/SeekPurchaseOfferService.java

@@ -0,0 +1,39 @@
+package com.uas.platform.b2c.trade.seek.service;
+
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseOffer;
+import com.uas.platform.core.model.PageInfo;
+import java.util.Map;
+import org.springframework.data.domain.Page;
+
+/**
+ * 卖家报价业务逻辑类
+ *
+ * @author liusw
+ * @version 2017/12/20 15:26
+ */
+public interface SeekPurchaseOfferService {
+
+    /**
+     * 保存卖家报价
+     * @param seekPurchaseOffer 报价信息
+     * @param user 用户信息
+     * @return
+     */
+    SeekPurchaseOffer saveOffer(SeekPurchaseOffer seekPurchaseOffer, User user);
+
+    /**
+     * 获取求购成交率
+     * @param uu 用户uu号
+     * @return
+     */
+    Map<String, Object> getSeekPurchaseRate(Long uu);
+
+    /**
+     * 获取某个求购的报价列表
+     * @param info
+     * @param spId
+     * @return
+     */
+    Page<SeekPurchaseOffer> getSeekPurchaseOfferPageInfo(PageInfo info, Long spId, Long uu);
+}

+ 20 - 1
src/main/java/com/uas/platform/b2c/trade/seek/service/SeekPurchaseService.java

@@ -1,7 +1,10 @@
 package com.uas.platform.b2c.trade.seek.service;
 
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.trade.seek.model.SeekMallGoods;
 import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
 import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
 import java.util.List;
 import java.util.Map;
 import org.springframework.data.domain.Page;
@@ -19,11 +22,27 @@ public interface SeekPurchaseService {
      * @param pageInfo 分页信息
      * @return 采购列表
      */
-    Page<SeekPurchase> getSeekPageInfo(PageInfo pageInfo, String kind, String brand, String deadline);
+    Page<SeekPurchase> getSeekPageInfo(PageInfo pageInfo, String keyWord, String deadline, Long uu, Integer status, String minReleaseDate, String maxReleaseDate);
 
     /**
      * 获取采购排行榜
      * @return 排行榜
      */
     List<Map<String, Object>> getSeekRanking();
+
+    /**
+     * 单个求购发布
+     * @param seekPurchase 求购信息
+     * @param user 用户信息
+     * @return
+     */
+    SeekPurchase saveOneSeekPurchase(SeekPurchase seekPurchase, User user);
+
+    /**
+     * 分页获取卖家求购列表
+     * @param info
+     * @param uu
+     * @return
+     */
+    Page<SeekMallGoods> getVendorSeekPageInfo(PageInfo info, Long uu, Integer status, String minReleaseDate, String maxReleaseDate, String keyWord, String deadline);
 }

+ 141 - 0
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseOfferServiceImpl.java

@@ -0,0 +1,141 @@
+package com.uas.platform.b2c.trade.seek.service.impl;
+
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
+import com.uas.platform.b2c.trade.seek.dao.SeekMallGoodsDao;
+import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseDao;
+import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseOfferDao;
+import com.uas.platform.b2c.trade.seek.model.SeekMallGoods;
+import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
+import com.uas.platform.b2c.trade.seek.model.SeekPurchaseOffer;
+import com.uas.platform.b2c.trade.seek.service.SeekPurchaseOfferService;
+import com.uas.platform.b2c.trade.seek.status.Status;
+import com.uas.platform.core.exception.IllegalOperatorException;
+import com.uas.platform.core.model.PageInfo;
+import java.util.Date;
+import java.util.Map;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+/**
+ * 卖家报价业务实现类
+ *
+ * @author liusw
+ * @version 2017/12/20 15:28
+ */
+@Service
+public class SeekPurchaseOfferServiceImpl implements SeekPurchaseOfferService {
+
+    /**
+     * 卖家报价dao
+     */
+    @Autowired
+    private SeekPurchaseOfferDao seekPurchaseOfferDao;
+
+    /**
+     * 求购dao
+     */
+    @Autowired
+    private SeekPurchaseDao seekPurchaseDao;
+
+    /**
+     * 数据库操作
+     */
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    /**
+     * 库存dao
+     */
+    @Autowired
+    private GoodsDao goodsDao;
+
+    /**
+     * 求购商城现货dao
+     */
+    @Autowired
+    private SeekMallGoodsDao seekMallGoodsDao;
+
+    @Override
+    public SeekPurchaseOffer saveOffer(SeekPurchaseOffer seekPurchaseOffer, User user) {
+        // 检查信息是否填写完整
+        if (seekPurchaseOffer == null
+                || StringUtils.isEmpty(seekPurchaseOffer.getUnitPrice()) || StringUtils
+                .isEmpty(seekPurchaseOffer.getMaxDay()) || StringUtils
+                .isEmpty(seekPurchaseOffer.getMinDay())) {
+            throw new IllegalOperatorException("请完善报价信息...");
+        }
+
+        // 交期判断 上限天数≥下限天数>0
+        if (seekPurchaseOffer.getMaxDay() <= 0 || seekPurchaseOffer.getMinDay() <= 0
+                || seekPurchaseOffer.getMaxDay() < seekPurchaseOffer.getMinDay()) {
+            throw new IllegalOperatorException("交期填写有误...");
+        }
+        // 设置报价时间
+        seekPurchaseOffer.setOfferTime(new Date());
+        // 设置报价状态
+        seekPurchaseOffer.setStatus(Status.OFFER.getValue());
+        // 设置卖家信息
+        seekPurchaseOffer.setUu(user.getUserUU());
+        if (user.getEnterprise() != null) {
+            seekPurchaseOffer.setUserName(user.getEnterprise().getEnName());
+        } else {
+            seekPurchaseOffer.setUserName(user.getUserName());
+        }
+        // 修改求购信息
+        SeekPurchase seekPurchase = seekPurchaseDao.getOne(seekPurchaseOffer.getSpId());
+        seekPurchase.setOfferAmount(seekPurchase.getOfferAmount() + 1);
+        seekPurchase.setStatus(Status.OFFER.getValue());
+        seekPurchaseDao.save(seekPurchase);
+
+        seekPurchaseOffer = seekPurchaseOfferDao.save(seekPurchaseOffer);
+        // 查询当前中间表是否有该用户的产品
+        Long smId = seekMallGoodsDao.isSeekMallGoods(seekPurchase.getCode(), seekPurchase.getBrand(), user.getUserUU());
+        SeekMallGoods seekMallGoods = new SeekMallGoods();
+        if (smId != null) {
+            seekMallGoods = seekMallGoodsDao.findOne(smId);
+        }
+        seekMallGoods.setSpId(seekPurchase.getId());
+        seekMallGoods.setOfferId(seekPurchaseOffer.getId());
+        seekMallGoodsDao.save(seekMallGoods);
+        return seekPurchaseOffer;
+    }
+
+    @Override
+    public Map<String, Object> getSeekPurchaseRate(final Long uu) {
+        // sql语句
+        String sql =
+                "select offerAmount,IFNULL(acceptedAmount,0) as acceptedAmount,ifnull(FORMAT(acceptedAmount/offerAmount,2),0) "
+                        + "as rate from(select count(1) as offerAmount,sum(of_status=?) as acceptedAmount "
+                        + "from trade$seek_purchase_offer where of_uu=?) a";
+        return jdbcTemplate.queryForMap(sql, new Object[]{Status.ACCEPTED.getValue(), uu});
+    }
+
+    @Override
+    public Page<SeekPurchaseOffer> getSeekPurchaseOfferPageInfo(final PageInfo pageInfo, Long spId, Long uu) {
+        if (spId == null || uu == null) {
+            throw new IllegalOperatorException("请求参数有误...");
+        }
+        pageInfo.filter("spId", spId);
+        pageInfo.filter("uu", uu);
+        pageInfo.sorting("offerTime", Direction.DESC);
+        Page<SeekPurchaseOffer> pages = seekPurchaseOfferDao
+                .findAll(new Specification<SeekPurchaseOffer>() {
+                    public Predicate toPredicate(Root<SeekPurchaseOffer> root, CriteriaQuery<?> query,
+                            CriteriaBuilder builder) {
+                        query.where(pageInfo.getPredicates(root, query, builder));
+                        return null;
+                    }
+                }, pageInfo);
+        return pages;
+    }
+}

+ 211 - 21
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekPurchaseServiceImpl.java

@@ -1,10 +1,24 @@
 package com.uas.platform.b2c.trade.seek.service.impl;
 
+import com.uas.platform.b2c.common.account.model.User;
+import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
+import com.uas.platform.b2c.prod.product.brand.dao.BrandDao;
+import com.uas.platform.b2c.prod.product.brand.modal.Brand;
+import com.uas.platform.b2c.prod.product.component.dao.ComponentDao;
+import com.uas.platform.b2c.prod.product.component.modal.Component;
+import com.uas.platform.b2c.trade.seek.dao.SeekMallGoodsDao;
 import com.uas.platform.b2c.trade.seek.dao.SeekPurchaseDao;
+import com.uas.platform.b2c.trade.seek.model.SeekMallGoods;
 import com.uas.platform.b2c.trade.seek.model.SeekPurchase;
 import com.uas.platform.b2c.trade.seek.service.SeekPurchaseService;
+import com.uas.platform.b2c.trade.seek.status.Status;
+import com.uas.platform.core.exception.IllegalOperatorException;
 import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.persistence.criteria.CriterionExpression.Operator;
+import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -12,11 +26,13 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
 import org.springframework.data.jpa.domain.Specification;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
 /**
@@ -29,36 +45,90 @@ import org.springframework.util.StringUtils;
 public class SeekPurchaseServiceImpl implements SeekPurchaseService {
 
     /**
-     * 求购接口
+     * 求购dao
      */
     @Autowired
     private SeekPurchaseDao seekPurchasedao;
 
+    /**
+     * 品牌dao
+     */
+    @Autowired
+    private BrandDao brandDao;
+
+    /**
+     * 器件dao
+     */
+    @Autowired
+    private ComponentDao componentDao;
+
+    /**
+     * 数据库操作
+     */
+    @Autowired
+    private JdbcTemplate jdbcTemplate;
+
+    /**
+     * 库存dao
+     */
+    @Autowired
+    private GoodsDao goodsDao;
+
+    /**
+     * 求购商城现货dao
+     */
+    @Autowired
+    private SeekMallGoodsDao seekMallGoodsDao;
+
     @Override
-    public Page<SeekPurchase> getSeekPageInfo(final PageInfo pageInfo, String kind, String brand, String deadline) {
-        // 产品类目
-        if (!StringUtils.isEmpty(kind)) {
-            pageInfo.filter("kind", kind);
-        }
-        // 产品品牌
-        if (!StringUtils.isEmpty(brand)) {
-            pageInfo.filter("brand", brand);
+    public Page<SeekPurchase> getSeekPageInfo(final PageInfo pageInfo, String keyWord,
+            String deadline, Long uu, Integer status, String minReleaseDate,
+            String maxReleaseDate) {
+        // 关键词查询 品牌或者是型号
+        if (!StringUtils.isEmpty(keyWord)) {
+            SimpleExpression code = new SimpleExpression("code", keyWord, Operator.LIKE);
+            SimpleExpression brand = new SimpleExpression("brand", keyWord, Operator.LIKE);
+            SimpleExpression[] simpleExpressions = new SimpleExpression[]{code, brand};
+            LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
+            pageInfo.expression(logicalExpression);
         }
-        // 截至时间
+        // 截止时间查询
         if (!StringUtils.isEmpty(deadline)) {
-            Date deadlineTime = null;
-            pageInfo.expression(PredicateUtils.gt("deadline", new Date(), false));
-            if (deadline.equals(">15")) {
-                deadlineTime = DateUtils.addDays(new Date(), 16);
-                pageInfo.expression(PredicateUtils.gte("deadline", deadlineTime, false));
-            } else {
-                deadlineTime = DateUtils.addDays(new Date(), Integer.valueOf(deadline));
-                pageInfo.expression(PredicateUtils.lte("deadline", deadlineTime, false));
+            switch (deadline) {
+                case "全部":
+                    break;
+                case "已截止":
+                    pageInfo.expression(PredicateUtils.lte("deadline", new Date(), false));
+                    break;
+                default:
+                    pageInfo.expression(PredicateUtils.gt("deadline", new Date(), false));
+                    break;
             }
+        } else {
+            pageInfo.expression(PredicateUtils.gt("deadline", new Date(), false));
+        }
+        // 发布时间
+        if (!StringUtils.isEmpty(minReleaseDate)) {
+            pageInfo.expression(PredicateUtils.gte("releaseDate", minReleaseDate, false));
+        }
+        if (!StringUtils.isEmpty(maxReleaseDate)) {
+            pageInfo.expression(PredicateUtils.lte("releaseDate", maxReleaseDate, false));
+        }
+
+        // 求购状态
+        if (status != null) {
+            pageInfo.filter("status", status);
         }
 
+        // 买家中心
+        if (uu != null) {
+            pageInfo.filter("uu", uu);
+        }
+
+        pageInfo.sorting("releaseDate", Direction.DESC);
         Page<SeekPurchase> pageSeeks = seekPurchasedao.findAll(new Specification<SeekPurchase>() {
-            public Predicate toPredicate(Root<SeekPurchase> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+            public Predicate toPredicate(Root<SeekPurchase> root, CriteriaQuery<?> query,
+                    CriteriaBuilder builder) {
                 query.where(pageInfo.getPredicates(root, query, builder));
                 return null;
             }
@@ -66,8 +136,128 @@ public class SeekPurchaseServiceImpl implements SeekPurchaseService {
         return pageSeeks;
     }
 
+
     @Override
     public List<Map<String, Object>> getSeekRanking() {
-        return null;
+        String sql = "SELECT spCode,spAmount,uuAmount FROM "
+                + "(SELECT sp_code AS spCode,sum(sp_amount) AS spAmount,count(DISTINCT(sp_uu)) AS uuAmount FROM"
+                + " trade$seek_purchase GROUP BY sp_code) a order by spAmount desc limit 0,5";
+        return jdbcTemplate.queryForList(sql);
+    }
+
+    @Override
+    public SeekPurchase saveOneSeekPurchase(SeekPurchase seekPurchase, User user) {
+        // 检查信息是否完整
+        if (seekPurchase == null
+                || StringUtils.isEmpty(seekPurchase.getCode()) || StringUtils
+                .isEmpty(seekPurchase.getBrand()) || StringUtils.isEmpty(seekPurchase.getCode())) {
+            throw new IllegalOperatorException("请完善求购信息...");
+        }
+        // 匹配类目
+        String kind = "";
+        Long brandId = null;
+        List<Brand> brands = brandDao.findByUpperNameEn(seekPurchase.getBrand());
+        if (CollectionUtils.isEmpty(brands)) {
+            brands = brandDao.findByUpperNameCn(seekPurchase.getBrand());
+            if (CollectionUtils.isEmpty(brands)) {
+                kind = "其他";
+            } else {
+                brandId = brands.get(0).getId();
+            }
+        } else {
+            brandId = brands.get(0).getId();
+        }
+        if (brandId != null) {
+            List<Component> components = componentDao
+                    .findByCodeAndBrandid(seekPurchase.getCode(), brandId);
+            if (!CollectionUtils.isEmpty(components)) {
+                kind = components.get(0).getKind().getNameCn();
+            } else {
+                kind = "其他";
+            }
+        }
+        seekPurchase.setKind(kind);
+        // 设置发布时间
+        seekPurchase.setReleaseDate(new Date());
+        // 设置求购状态
+        seekPurchase.setStatus(Status.NO_OFFER.getValue());
+        // 设置求购次数
+        seekPurchase.setOfferAmount(0);
+        // 设置求购人信息
+        seekPurchase.setUu(user.getUserUU());
+        seekPurchase.setTel(user.getUserTel());
+        if (user.getEnterprise() != null) {
+            seekPurchase.setUserName(user.getEnterprise().getEnName());
+        } else {
+            seekPurchase.setUserName(user.getUserName());
+        }
+        seekPurchase = seekPurchasedao.save(seekPurchase);
+
+        //匹配商城现货
+        List<Long> goods = goodsDao.getGoodsByCodeAndName(seekPurchase.getCode(), seekPurchase.getBrand());
+        List<SeekMallGoods> seekMallGoodsList = new ArrayList<>();
+        SeekMallGoods seekMallGoods = new SeekMallGoods();
+        seekMallGoods.setSpId(seekPurchase.getId());
+        for (Long good : goods) {
+            seekMallGoods.setGoodsId(good);
+            seekMallGoodsList.add(seekMallGoods);
+        }
+        seekMallGoodsDao.save(seekMallGoodsList);
+        return seekPurchase;
+    }
+
+    @Override
+    public Page<SeekMallGoods> getVendorSeekPageInfo(final PageInfo pageInfo, Long uu, Integer status, String minReleaseDate, String maxReleaseDate, String keyWord, String deadline) {
+        /**
+        if (uu != null) {
+            pageInfo.filter("goods.publisherUU", uu);
+        } else {
+            throw new IllegalOperatorException("请求参数错误...");
+        }**/
+        // 关键词查询 品牌或者是型号
+        if (!StringUtils.isEmpty(keyWord)) {
+            SimpleExpression code = new SimpleExpression("seekPurchase.code", keyWord, Operator.LIKE);
+            SimpleExpression brand = new SimpleExpression("seekPurchase.brand", keyWord, Operator.LIKE);
+            SimpleExpression[] simpleExpressions = new SimpleExpression[]{code, brand};
+            LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
+            pageInfo.expression(logicalExpression);
+        }
+        // 截止时间查询
+        if (!StringUtils.isEmpty(deadline)) {
+            switch (deadline) {
+                case "全部":
+                    break;
+                case "已截止":
+                    pageInfo.expression(PredicateUtils.lte("seekPurchase.deadline", new Date(), false));
+                    break;
+                default:
+                    pageInfo.expression(PredicateUtils.gt("seekPurchase.deadline", new Date(), false));
+                    break;
+            }
+        } else {
+            pageInfo.expression(PredicateUtils.gt("seekPurchase.deadline", new Date(), false));
+        }
+        // 发布时间
+        if (!StringUtils.isEmpty(minReleaseDate)) {
+            pageInfo.expression(PredicateUtils.gte("seekPurchase.releaseDate", minReleaseDate, false));
+        }
+        if (!StringUtils.isEmpty(maxReleaseDate)) {
+            pageInfo.expression(PredicateUtils.lte("seekPurchase.releaseDate", maxReleaseDate, false));
+        }
+
+        // 求购状态
+        if (status != null) {
+            pageInfo.filter("seekPurchase.status", status);
+        }
+        pageInfo.sorting("seekPurchase.releaseDate", Direction.DESC);
+        Page<SeekMallGoods> pageSeeks = seekMallGoodsDao
+                .findAll(new Specification<SeekMallGoods>() {
+                    public Predicate toPredicate(Root<SeekMallGoods> root, CriteriaQuery<?> query,
+                            CriteriaBuilder builder) {
+                        query.where(pageInfo.getPredicates(root, query, builder));
+                        return null;
+                    }
+                }, pageInfo);
+        return pageSeeks;
     }
 }

+ 3 - 0
src/main/java/com/uas/platform/b2c/trade/seek/service/impl/SeekQualityBuyerServiceImpl.java

@@ -23,6 +23,9 @@ import org.springframework.stereotype.Service;
 @Service
 public class SeekQualityBuyerServiceImpl implements SeekQualityBuyerService {
 
+    /**
+     * 优质采购商dao
+     */
     @Autowired
     private SeekQualityBuyerDao seekQualityBuyerDao;
 

+ 51 - 0
src/main/java/com/uas/platform/b2c/trade/seek/status/Status.java

@@ -0,0 +1,51 @@
+package com.uas.platform.b2c.trade.seek.status;
+
+/**
+ * 状态定义,描述
+ *
+ * @author liusw
+ * @version 2017/12/21 11:42
+ */
+public enum Status {
+    /**
+     * {@code 100 正在生效}
+     */
+    SEEKING(100, "正在生效"),
+
+    /**
+     * {@code 101 已截止}
+     */
+    END(101, "已截止"),
+
+    /**
+     * {@code 200 未报价}
+     */
+    NO_OFFER(200, "未报价"),
+
+    /**
+     * {@code 201 已报价}
+     */
+    OFFER(201, "已报价"),
+
+    /**
+     * {@code 202 已采纳}
+     */
+    ACCEPTED(202, "已采纳"),;
+
+    private final int value;
+
+    private final String phrase;
+
+    private Status(int value, String phrase) {
+        this.value = value;
+        this.phrase = phrase;
+    }
+
+    public int getValue() {
+        return value;
+    }
+
+    public String getPhrase() {
+        return phrase;
+    }
+}

+ 3 - 0
src/main/webapp/WEB-INF/spring/webmvc.xml

@@ -110,6 +110,9 @@
 			<mvc:exclude-mapping path="/recommendation/**" />
 			<mvc:exclude-mapping path="/news"/>
 			<mvc:exclude-mapping path="/activity"/>
+			<mvc:exclude-mapping path="/seek/qualityBuyer/getBuyerPageInfo"/>
+			<mvc:exclude-mapping path="/seek/getSeekPageInfo"/>
+			<mvc:exclude-mapping path="/seek/getSeekRanking"/>
 			<bean class="com.uas.platform.b2c.core.filter.SSOInterceptor"></bean>
 		</mvc:interceptor>
 		<!-- 针对具体UAS用户,采用独立私钥签名、认证 -->