Эх сурвалжийг харах

新增PCB推荐产品接口

wangyc 7 жил өмнө
parent
commit
8e38e83f68

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

@@ -794,4 +794,20 @@ public interface GoodsDao extends JpaSpecificationExecutor<Goods>, JpaRepository
      */
     @Query(value = "select count(1) from Goods g where g.storeid = :storeid and g.status = 601")
     Integer countByStoreid(@Param("storeid") String storeid);
+
+    /**
+     * 通过类目名称获取品牌uuid不为空的前5个批次
+     * @param kind
+     * @return
+     */
+    @Query(nativeQuery = true, value = "select * from trade$goods where br_name_uuid is not null and ki_name=:kind and go_status = 601 limit 0,5")
+    List<Goods> findByKindNameCnAndBrandIsNotNull(@Param("kind")String kind);
+
+    /**
+     * 通过类目id获取品牌uuid不为空的前5个批次
+     * @param kindIds 类目id
+     * @return
+     */
+    @Query(nativeQuery = true, value = "select * from trade$goods where br_name_uuid is not null and ki_name in (:kind) and go_status = 601 limit 0,5")
+    List<Goods> findInKindNamesAndBrandIsNotNull(@Param("kind")List<String> kinds);
 }

+ 6 - 0
src/main/java/com/uas/platform/b2c/prod/commodity/service/GoodsService.java

@@ -747,4 +747,10 @@ public interface GoodsService {
      * @param goodses       the param
      */
     void updateSpecByProducts(List<V_ProductPrivate> privateList, List<Goods> goodses);
+
+    /**
+     * 获取pcb推荐物料
+     * @return
+     */
+    Map<String, List<Goods>> getCmsPcb();
 }

+ 49 - 55
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -23,45 +23,36 @@ import com.uas.platform.b2c.core.utils.DoubleArith;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.core.utils.RegexConstant;
+import com.uas.platform.b2c.core.utils.StringUtilB2C;
 import com.uas.platform.b2c.external.erp.commodity.util.ModelConverter;
 import com.uas.platform.b2c.prod.commodity.constant.DoubleConstant;
 import com.uas.platform.b2c.prod.commodity.constant.IntegerConstant;
 import com.uas.platform.b2c.prod.commodity.constant.StringConstant;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
-import com.uas.platform.b2c.prod.commodity.dao.GoodsSimpleDao;
-import com.uas.platform.b2c.prod.commodity.dao.PCBDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
-import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
-import com.uas.platform.b2c.prod.commodity.model.*;
 import com.uas.platform.b2c.prod.commodity.constant.UploadConstant;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsHistoryDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsModifyInfoDao;
 import com.uas.platform.b2c.prod.commodity.dao.GoodsSimpleDao;
+import com.uas.platform.b2c.prod.commodity.dao.PCBDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductDetailDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductPrivateDao;
 import com.uas.platform.b2c.prod.commodity.dao.ProductStandardPutOnInfoDao;
 import com.uas.platform.b2c.prod.commodity.model.Goods;
+import com.uas.platform.b2c.prod.commodity.model.GoodsFilter;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory;
 import com.uas.platform.b2c.prod.commodity.model.GoodsHistory.OperateType;
-import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
-import com.uas.platform.b2c.prod.commodity.service.GoodsPriceInfoService;
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
-import com.uas.platform.b2c.prod.commodity.service.ProductService;
-import com.uas.platform.b2c.prod.commodity.service.ProductStandardPutOnInfoService;
-import com.uas.platform.b2c.prod.commodity.service.ReleaseProductByBatchService;
 import com.uas.platform.b2c.prod.commodity.model.GoodsInfo;
+import com.uas.platform.b2c.prod.commodity.model.GoodsModifyInfo;
 import com.uas.platform.b2c.prod.commodity.model.GoodsPriceInfo;
 import com.uas.platform.b2c.prod.commodity.model.GoodsQtyPrice;
 import com.uas.platform.b2c.prod.commodity.model.GoodsSimple;
+import com.uas.platform.b2c.prod.commodity.model.ModifyInfo;
 import com.uas.platform.b2c.prod.commodity.model.Product;
 import com.uas.platform.b2c.prod.commodity.model.ProductDetail;
 import com.uas.platform.b2c.prod.commodity.model.ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.model.ProductStandardPutOnInfo;
+import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
 import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsPriceInfoService;
 import com.uas.platform.b2c.prod.commodity.service.GoodsService;
@@ -140,9 +131,11 @@ import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
+import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections.map.HashedMap;
 import org.apache.log4j.Logger;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
@@ -162,36 +155,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.servlet.http.HttpServletRequest;
-import java.math.BigInteger;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Collections;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import static com.uas.platform.core.persistence.criteria.PredicateUtils.like;
-import static org.apache.commons.jexl2.parser.ParserConstants.and;
-import static org.apache.commons.jexl2.parser.ParserConstants.or;
-
 
 /**
  * @author ChenHao
@@ -2602,20 +2565,20 @@ public class GoodsServiceImpl implements GoodsService {
                     String[] kindIds = kindUuid.split(",");
                     Long[] listkids = (Long[]) ConvertUtils.convert(kindIds,Long.class);
                     if (listkids != null && listkids.length > 0) {
-//                        List<Long> productIds = pcbDao.findByKindIds(listkids);
-//                        if (!CollectionUtils.isEmpty(productIds)) {
-//                            pageInfo.expression(PredicateUtils.in("productid",productIds,false));
-//                        } else {
+                        List<Long> productIds = pcbDao.findByKindIds(listkids);
+                        if (!CollectionUtils.isEmpty(productIds)) {
+                            pageInfo.expression(PredicateUtils.in("productid",productIds,false));
+                        } else {
                             pageInfo.expression(PredicateUtils.in("kindUuid", kindIds, false));
-//                        }
+                        }
                     }
                 } else {
-//                    List<Long> productId = pcbDao.findProductIdByKindid(Long.parseLong(kindUuid));
-//                    if (!CollectionUtils.isEmpty(productId)) {
-//                        pageInfo.expression(PredicateUtils.eq("productid",productId.get(0),false));
-//                    } else {
+                    List<Long> productId = pcbDao.findProductIdByKindid(Long.parseLong(kindUuid));
+                    if (!CollectionUtils.isEmpty(productId)) {
+                        pageInfo.expression(PredicateUtils.eq("productid",productId.get(0),false));
+                    } else {
                         pageInfo.expression(PredicateUtils.eq("kindUuid", kindUuid, false));
-//                    }
+                    }
                 }
             }
         }
@@ -4169,4 +4132,35 @@ public class GoodsServiceImpl implements GoodsService {
             goodsHistoryService.save(goodsHistories);
         }
     }
+
+    @Override
+    public Map<String, List<Goods>> getCmsPcb() {
+        Map<String, List<Goods>> map = new HashedMap();
+        List<KindInfo> kindInfos = kindInfoDao.findByParentid(3825L);
+        if (CollectionUtils.isNotEmpty(kindInfos)) {
+            for (KindInfo kindInfo : kindInfos) {
+                if (kindInfo.getIsLeaf().equals(Constant.YES)) {
+                    List<Goods> goods = goodsDao.findByKindNameCnAndBrandIsNotNull(kindInfo.getNameCn());
+                    if (CollectionUtils.isNotEmpty(goods)) {
+                        map.put(kindInfo.getNameCn(), goods);
+                    }
+                } else {
+                    List<KindInfo> kindInfoChildren = kindInfoDao.findByParentid(kindInfo.getId());
+                    if (!CollectionUtils.isEmpty(kindInfoChildren)) {
+                        List<String> names = new ArrayList<>();
+                        for (KindInfo child : kindInfoChildren) {
+                            names.add(child.getNameCn());
+                        }
+                        if (CollectionUtils.isNotEmpty(names)) {
+                            List<Goods> goods = goodsDao.findInKindNamesAndBrandIsNotNull(names);
+                            if (CollectionUtils.isNotEmpty(goods)) {
+                                map.put(kindInfo.getNameCn(), goods);
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return map;
+    }
 }

+ 10 - 0
src/main/java/com/uas/platform/b2c/prod/store/api/CommodityController.java

@@ -7,6 +7,7 @@ import com.uas.platform.b2c.prod.product.component.modal.Component;
 import com.uas.platform.b2c.prod.product.component.service.ComponentService;
 import com.uas.platform.b2c.prod.product.kind.model.KindInfo;
 import com.uas.platform.b2c.prod.store.facade.CommodityFacade;
+import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 import org.apache.commons.collections.CollectionUtils;
@@ -157,4 +158,13 @@ public class CommodityController {
 	public List<Goods> getLatestGoods(Long length) {
 		return goodsService.getLatestGoods(length);
 	}
+
+	@RequestMapping(value = "/cms/pcb", method = RequestMethod.GET)
+	public ResultMap getPcbCms() {
+		ResultMap resultMap = new ResultMap();
+		resultMap.setSuccess(true);
+		resultMap.setCode(200);
+		resultMap.setData(goodsService.getCmsPcb());
+		return resultMap;
+	}
 }