Authored by wangnan9279

Merge branch 'wn_cutdown_price_for_0530' into gray0531

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yoho.search.dal.CutdownPriceProductMapper">
<resultMap id="BaseResultMap" type="com.yoho.search.dal.model.CutdownPriceProduct">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="activity_id" property="activityId" jdbcType="INTEGER"/>
<result column="product_skn" property="productSkn" jdbcType="INTEGER"/>
<result column="join_num" property="joinNum" jdbcType="INTEGER"/>
<result column="high_price" property="highPrice" jdbcType="DECIMAL"/>
<result column="low_price" property="lowPrice" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="INTEGER"/>
<result column="update_time" property="updateTime" jdbcType="INTEGER"/>
<result column="status" property="status" jdbcType="INTEGER"/>
<resultMap id="BaseResultMap" type="com.yoho.search.dal.model.CutdownPriceProduct" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="activity_id" property="activityId" jdbcType="INTEGER" />
<result column="product_skn" property="productSkn" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="INTEGER" />
<result column="update_time" property="updateTime" jdbcType="INTEGER" />
<result column="status" property="status" jdbcType="INTEGER" />
<result column="product_type" property="productType" jdbcType="INTEGER" />
<result column="platform_limit" property="platformLimit" jdbcType="INTEGER" />
<result column="show_limit" property="showLimit" jdbcType="INTEGER" />
<result column="cut_total_price" property="cutTotalPrice" jdbcType="DECIMAL" />
<result column="cut_yoho_low_percent" property="cutYohoLowPercent" jdbcType="DECIMAL" />
<result column="cut_yoho_high_percent" property="cutYohoHighPercent" jdbcType="DECIMAL" />
<result column="cut_grade" property="cutGrade" jdbcType="INTEGER" />
<result column="cut_grade_config" property="cutGradeConfig" jdbcType="VARCHAR" />
<result column="order_by" property="orderBy" jdbcType="INTEGER" />
<result column="join_num" property="joinNum" jdbcType="INTEGER" />
<result column="high_price" property="highPrice" jdbcType="DECIMAL" />
<result column="low_price" property="lowPrice" jdbcType="DECIMAL" />
</resultMap>
<sql id="Base_Column_List">
id, activity_id, product_skn, join_num, high_price, low_price, create_time, update_time,status
<sql id="Base_Column_List" >
id, activity_id, product_skn, create_time, update_time, status, product_type, platform_limit,
show_limit, cut_total_price, cut_yoho_low_percent, cut_yoho_high_percent, cut_grade,
cut_grade_config, order_by, join_num, high_price, low_price
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List"/>
<include refid="Base_Column_List" />
from cutdown_price_product
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from cutdown_price_product
where id = #{id,jdbcType=INTEGER}
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from cutdown_price_product
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.yoho.search.dal.model.CutdownPriceProduct">
insert into cutdown_price_product (id, activity_id, product_skn,
join_num, high_price, low_price,
create_time, update_time, status
<insert id="insert" parameterType="com.yoho.search.dal.model.CutdownPriceProduct" >
insert into cutdown_price_product (id, activity_id, product_skn,
create_time, update_time, status,
product_type, platform_limit, show_limit,
cut_total_price, cut_yoho_low_percent, cut_yoho_high_percent,
cut_grade, cut_grade_config, order_by,
join_num, high_price, low_price
)
values (#{id,jdbcType=INTEGER}, #{activityId,jdbcType=INTEGER}, #{productSkn,jdbcType=INTEGER},
#{joinNum,jdbcType=INTEGER}, #{highPrice,jdbcType=DECIMAL}, #{lowPrice,jdbcType=DECIMAL},
#{createTime,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}
values (#{id,jdbcType=INTEGER}, #{activityId,jdbcType=INTEGER}, #{productSkn,jdbcType=INTEGER},
#{createTime,jdbcType=INTEGER}, #{updateTime,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
#{productType,jdbcType=INTEGER}, #{platformLimit,jdbcType=INTEGER}, #{showLimit,jdbcType=INTEGER},
#{cutTotalPrice,jdbcType=DECIMAL}, #{cutYohoLowPercent,jdbcType=DECIMAL}, #{cutYohoHighPercent,jdbcType=DECIMAL},
#{cutGrade,jdbcType=INTEGER}, #{cutGradeConfig,jdbcType=VARCHAR}, #{orderBy,jdbcType=INTEGER},
#{joinNum,jdbcType=INTEGER}, #{highPrice,jdbcType=DECIMAL}, #{lowPrice,jdbcType=DECIMAL}
)
</insert>
</insert>
<insert id="insertSelective" parameterType="com.yoho.search.dal.model.CutdownPriceProduct">
<insert id="insertSelective" parameterType="com.yoho.search.dal.model.CutdownPriceProduct" >
insert into cutdown_price_product
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="activityId != null">
<if test="activityId != null" >
activity_id,
</if>
<if test="productSkn != null">
<if test="productSkn != null" >
product_skn,
</if>
<if test="joinNum != null">
join_num,
</if>
<if test="highPrice != null">
high_price,
</if>
<if test="lowPrice != null">
low_price,
</if>
<if test="createTime != null">
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null">
<if test="updateTime != null" >
update_time,
</if>
<if test="status != null">
<if test="status != null" >
status,
</if>
<if test="productType != null" >
product_type,
</if>
<if test="platformLimit != null" >
platform_limit,
</if>
<if test="showLimit != null" >
show_limit,
</if>
<if test="cutTotalPrice != null" >
cut_total_price,
</if>
<if test="cutYohoLowPercent != null" >
cut_yoho_low_percent,
</if>
<if test="cutYohoHighPercent != null" >
cut_yoho_high_percent,
</if>
<if test="cutGrade != null" >
cut_grade,
</if>
<if test="cutGradeConfig != null" >
cut_grade_config,
</if>
<if test="orderBy != null" >
order_by,
</if>
<if test="joinNum != null" >
join_num,
</if>
<if test="highPrice != null" >
high_price,
</if>
<if test="lowPrice != null" >
low_price,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="activityId != null">
<if test="activityId != null" >
#{activityId,jdbcType=INTEGER},
</if>
<if test="productSkn != null">
<if test="productSkn != null" >
#{productSkn,jdbcType=INTEGER},
</if>
<if test="joinNum != null">
#{joinNum,jdbcType=INTEGER},
</if>
<if test="highPrice != null">
#{highPrice,jdbcType=DECIMAL},
</if>
<if test="lowPrice != null">
#{lowPrice,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
<if test="createTime != null" >
#{createTime,jdbcType=INTEGER},
</if>
<if test="updateTime != null">
<if test="updateTime != null" >
#{updateTime,jdbcType=INTEGER},
</if>
<if test="status != null">
<if test="status != null" >
#{status,jdbcType=INTEGER},
</if>
<if test="productType != null" >
#{productType,jdbcType=INTEGER},
</if>
<if test="platformLimit != null" >
#{platformLimit,jdbcType=INTEGER},
</if>
<if test="showLimit != null" >
#{showLimit,jdbcType=INTEGER},
</if>
<if test="cutTotalPrice != null" >
#{cutTotalPrice,jdbcType=DECIMAL},
</if>
<if test="cutYohoLowPercent != null" >
#{cutYohoLowPercent,jdbcType=DECIMAL},
</if>
<if test="cutYohoHighPercent != null" >
#{cutYohoHighPercent,jdbcType=DECIMAL},
</if>
<if test="cutGrade != null" >
#{cutGrade,jdbcType=INTEGER},
</if>
<if test="cutGradeConfig != null" >
#{cutGradeConfig,jdbcType=VARCHAR},
</if>
<if test="orderBy != null" >
#{orderBy,jdbcType=INTEGER},
</if>
<if test="joinNum != null" >
#{joinNum,jdbcType=INTEGER},
</if>
<if test="highPrice != null" >
#{highPrice,jdbcType=DECIMAL},
</if>
<if test="lowPrice != null" >
#{lowPrice,jdbcType=DECIMAL},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.CutdownPriceProduct">
<update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.CutdownPriceProduct" >
update cutdown_price_product
<set>
<if test="activityId != null">
<set >
<if test="activityId != null" >
activity_id = #{activityId,jdbcType=INTEGER},
</if>
<if test="productSkn != null">
<if test="productSkn != null" >
product_skn = #{productSkn,jdbcType=INTEGER},
</if>
<if test="joinNum != null">
join_num = #{joinNum,jdbcType=INTEGER},
</if>
<if test="highPrice != null">
high_price = #{highPrice,jdbcType=DECIMAL},
</if>
<if test="lowPrice != null">
low_price = #{lowPrice,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
<if test="createTime != null" >
create_time = #{createTime,jdbcType=INTEGER},
</if>
<if test="updateTime != null">
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=INTEGER},
</if>
<if test="status != null">
<if test="status != null" >
status = #{status,jdbcType=INTEGER},
</if>
<if test="productType != null" >
product_type = #{productType,jdbcType=INTEGER},
</if>
<if test="platformLimit != null" >
platform_limit = #{platformLimit,jdbcType=INTEGER},
</if>
<if test="showLimit != null" >
show_limit = #{showLimit,jdbcType=INTEGER},
</if>
<if test="cutTotalPrice != null" >
cut_total_price = #{cutTotalPrice,jdbcType=DECIMAL},
</if>
<if test="cutYohoLowPercent != null" >
cut_yoho_low_percent = #{cutYohoLowPercent,jdbcType=DECIMAL},
</if>
<if test="cutYohoHighPercent != null" >
cut_yoho_high_percent = #{cutYohoHighPercent,jdbcType=DECIMAL},
</if>
<if test="cutGrade != null" >
cut_grade = #{cutGrade,jdbcType=INTEGER},
</if>
<if test="cutGradeConfig != null" >
cut_grade_config = #{cutGradeConfig,jdbcType=VARCHAR},
</if>
<if test="orderBy != null" >
order_by = #{orderBy,jdbcType=INTEGER},
</if>
<if test="joinNum != null" >
join_num = #{joinNum,jdbcType=INTEGER},
</if>
<if test="highPrice != null" >
high_price = #{highPrice,jdbcType=DECIMAL},
</if>
<if test="lowPrice != null" >
low_price = #{lowPrice,jdbcType=DECIMAL},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.yoho.search.dal.model.CutdownPriceProduct">
<update id="updateByPrimaryKey" parameterType="com.yoho.search.dal.model.CutdownPriceProduct" >
update cutdown_price_product
set activity_id = #{activityId,jdbcType=INTEGER},
product_skn = #{productSkn,jdbcType=INTEGER},
join_num = #{joinNum,jdbcType=INTEGER},
high_price = #{highPrice,jdbcType=DECIMAL},
low_price = #{lowPrice,jdbcType=DECIMAL},
create_time = #{createTime,jdbcType=INTEGER},
update_time = #{updateTime,jdbcType=INTEGER},
status = #{status,jdbcType=INTEGER}
status = #{status,jdbcType=INTEGER},
product_type = #{productType,jdbcType=INTEGER},
platform_limit = #{platformLimit,jdbcType=INTEGER},
show_limit = #{showLimit,jdbcType=INTEGER},
cut_total_price = #{cutTotalPrice,jdbcType=DECIMAL},
cut_yoho_low_percent = #{cutYohoLowPercent,jdbcType=DECIMAL},
cut_yoho_high_percent = #{cutYohoHighPercent,jdbcType=DECIMAL},
cut_grade = #{cutGrade,jdbcType=INTEGER},
cut_grade_config = #{cutGradeConfig,jdbcType=VARCHAR},
order_by = #{orderBy,jdbcType=INTEGER},
join_num = #{joinNum,jdbcType=INTEGER},
high_price = #{highPrice,jdbcType=DECIMAL},
low_price = #{lowPrice,jdbcType=DECIMAL}
where id = #{id,jdbcType=INTEGER}
</update>
</update>
<select id="selectCount" resultType="java.lang.Integer" timeout="20000">
SELECT count(1) FROM cutdown_price_product
... ... @@ -156,7 +264,6 @@
from cutdown_price_product limit #{offset},#{pageSize}
</select>
<select id="selectListByActivityIdsAndSkns" resultMap="BaseResultMap" timeout="20000">
select
<include refid="Base_Column_List"/>
... ...
package com.yoho.search.consumer.index.fullbuild.ufo;
import com.alibaba.fastjson.JSON;
import com.yoho.search.consumer.index.fullbuild.IIndexBuilder;
import com.yoho.search.consumer.service.bo.CutdownPriceInfoBO;
import com.yoho.search.consumer.service.bo.ProductIndexBO;
import com.yoho.search.consumer.service.logicService.CutdownPriceLogicService;
import com.yoho.search.consumer.service.logicService.ProductIndexBOToMapService;
import com.yoho.search.consumer.service.logicService.cache.BasicDataCacheService;
import com.yoho.search.consumer.service.logicService.cache.UfoBasicDataCacheService;
import com.yoho.search.consumer.service.logicService.tbl.util.StringUtils;
import com.yoho.search.consumer.service.logicService.ufo.ufo2yoho.*;
import com.yoho.search.consumer.service.utils.IdCheckUtils;
import com.yoho.search.dal.*;
import com.yoho.search.dal.model.BigdataUfoSalesMoney;
import com.yoho.search.dal.model.Brand;
import com.yoho.search.dal.model.ufo_product.*;
import com.yoho.search.dal.model.ufo_product.Goods;
import com.yoho.search.dal.model.ufo_product.Product;
import com.yoho.search.dal.model.ufo_product.Size;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
... ... @@ -68,6 +67,8 @@ public class UfoToYohoIndexBuilder extends IIndexBuilder {
private UfoProductSalesMapper ufoProductSalesMapper;
@Autowired
private BigdataUfoSalesMoneyMapper bigdataUfoSalesMoneyMapper;
@Autowired
private CutdownPriceLogicService cutdownPriceLogicService;
@Override
public int getTotalCount() throws Exception {
... ... @@ -159,9 +160,11 @@ public class UfoToYohoIndexBuilder extends IIndexBuilder {
}
//去查这一批ufo商品的总销量【product_sales】
Map<Integer,Integer> totalSalesNumMap = this.queryTotalSalesNumMap(ufoProductIdList);
Map<Integer, Integer> totalSalesNumMap = this.queryTotalSalesNumMap(ufoProductIdList);
//去查这一批ufo商品的7天销售额【bigdata_ufo_sales_money】
Map<Integer,BigDecimal> productSevendayMoneyMap = this.queryProductSevendayMoney(ufoProductIdList);
Map<Integer, BigDecimal> productSevendayMoneyMap = this.queryProductSevendayMoney(ufoProductIdList);
//去查这一批ufo商品的砍价购【cutdown_price_product】
Map<Integer, CutdownPriceInfoBO> cutdownPriceInfoBOMap = cutdownPriceLogicService.selectCutdownPriceInfoBOMap(ufoProductIdList);
//构造ProductIndexBO
for (Product product : productList) {
... ... @@ -184,13 +187,19 @@ public class UfoToYohoIndexBuilder extends IIndexBuilder {
// 尺码
ufoToYohoSizeService.build(productIndexBO, product, ufoSizeMap, yohoSizeNameMap, ufoStorageMap);
// 价格
ufoToYohoPriceService.build(productIndexBO, product, ufoStoragePriceMap,ufoStorageMap);
ufoToYohoPriceService.build(productIndexBO, product, ufoStoragePriceMap, ufoStorageMap);
// 直通车
productIndexBO.setToAddScore(ufoScoreProductRuleSet.contains(product.getId()) ? "Y" : "N");
// 总销量
productIndexBO.setTotalSalesNum(totalSalesNumMap.getOrDefault(product.getId(),0));
productIndexBO.setTotalSalesNum(totalSalesNumMap.getOrDefault(product.getId(), 0));
// 7天销售额
productIndexBO.setSevendayMoney(productSevendayMoneyMap.getOrDefault(product.getId(),BigDecimal.ZERO));
productIndexBO.setSevendayMoney(productSevendayMoneyMap.getOrDefault(product.getId(), BigDecimal.ZERO));
// 拼团购
CutdownPriceInfoBO cutdownPriceInfoBO = cutdownPriceInfoBOMap.get(productIndexBO.getProductSkn());
if (cutdownPriceInfoBO != null) {
productIndexBO.setCutdownPriceActivityIds(StringUtils.join(cutdownPriceInfoBO.getActivityIds(), ","));
productIndexBO.setCutdownPriceOrder(cutdownPriceInfoBO.getOrder());
}
}
return productIndexBOList;
} catch (Exception e) {
... ... @@ -199,27 +208,28 @@ public class UfoToYohoIndexBuilder extends IIndexBuilder {
return productIndexBOList;
}
private Map<Integer,Integer> queryTotalSalesNumMap(List<Integer> ufoProductIdList){
private Map<Integer, Integer> queryTotalSalesNumMap(List<Integer> ufoProductIdList) {
List<ProductSales> productSalesList = ufoProductSalesMapper.selectListByProductIds(ufoProductIdList);
Map<Integer,Integer> totalSalesNumMap = new HashMap<>();
for(ProductSales productSales: productSalesList){
int totalSalesNum = totalSalesNumMap.getOrDefault(productSales.getProductId(),0);
if(productSales.getAmount() != null){
Map<Integer, Integer> totalSalesNumMap = new HashMap<>();
for (ProductSales productSales : productSalesList) {
int totalSalesNum = totalSalesNumMap.getOrDefault(productSales.getProductId(), 0);
if (productSales.getAmount() != null) {
totalSalesNum = totalSalesNum + productSales.getAmount();
}
totalSalesNumMap.put(productSales.getProductId(),totalSalesNum);
totalSalesNumMap.put(productSales.getProductId(), totalSalesNum);
}
return totalSalesNumMap;
}
private Map<Integer,BigDecimal> queryProductSevendayMoney(List<Integer> ufoProductIdList){
private Map<Integer, BigDecimal> queryProductSevendayMoney(List<Integer> ufoProductIdList) {
//TODO 这里找个办法优化下
Integer lastedDateId = bigdataUfoSalesMoneyMapper.selectLatestDateId();
if(lastedDateId==null){
if (lastedDateId == null) {
return new HashMap<>();
}
List<BigdataUfoSalesMoney> salesMoneyList = bigdataUfoSalesMoneyMapper.selectList(ufoProductIdList,lastedDateId);
return salesMoneyList.stream().collect(Collectors.toMap(BigdataUfoSalesMoney::getProductId,BigdataUfoSalesMoney::getSevendayMoney));
List<BigdataUfoSalesMoney> salesMoneyList = bigdataUfoSalesMoneyMapper.selectList(ufoProductIdList, lastedDateId);
return salesMoneyList.stream().collect(Collectors.toMap(BigdataUfoSalesMoney::getProductId, BigdataUfoSalesMoney::getSevendayMoney));
}
}
... ...
... ... @@ -282,13 +282,20 @@ public abstract class AbstractMqListener implements ApplicationEventPublisherAwa
}
/**
* 增量更新PI索引的方法
* 增量更新PI索引的方法-使用有货id去更新的时候
*/
protected final void updateProductIndexWithDataMap(Map<String, Object> indexData, Integer productId) {
this.updateIndexWithDataString(JSON.toJSONString(indexData), Long.valueOf(productId), ISearchConstants.INDEX_NAME_PRODUCT_INDEX, false);
}
/**
* 增量更新PI索引的方法-使用Ufo的id去更新的时候
*/
protected final void updateProductIndexWithDataMapByUfoId(Map<String, Object> indexData, String productId) {
commonBulkService.add(new ESBluk(JSON.toJSONString(indexData), productId, ISearchConstants.INDEX_NAME_PRODUCT_INDEX, ISearchConstants.INDEX_NAME_PRODUCT_INDEX, false));
}
/**
* 增量更新任意索引的方法
*/
private final void updateIndexWithDataString(String data, Long id, String indexName, boolean isDelete) {
... ...
... ... @@ -9,6 +9,7 @@ import com.yoho.search.consumer.index.increment.AbstractMqListener;
import com.yoho.search.consumer.service.bo.CutdownPriceInfoBO;
import com.yoho.search.consumer.service.daoService.CutdownPriceProductService;
import com.yoho.search.consumer.service.daoService.ProductService;
import com.yoho.search.consumer.service.daoService.ufo.UfoProductService;
import com.yoho.search.consumer.service.logicService.CutdownPriceLogicService;
import com.yoho.search.consumer.service.logicService.tbl.util.StringUtils;
import com.yoho.search.core.message.beans.SearchMqConsumerListerner;
... ... @@ -26,7 +27,7 @@ import java.util.Map;
* @version 2018/11/15
*/
@Component
@SearchMqConsumerListerner(dbName = "erp_product",tableName = "cutdown_price_product")
@SearchMqConsumerListerner(dbName = "erp_product", tableName = "cutdown_price_product")
public class CutdownPriceProductMqListener extends AbstractMqListener {
@Autowired
... ... @@ -38,6 +39,8 @@ public class CutdownPriceProductMqListener extends AbstractMqListener {
@Autowired
private ProductService productService;
@Autowired
private UfoProductService ufoProductService;
@Autowired
private CutdownPriceLogicService cutdownPriceLogicService;
@Override
... ... @@ -50,8 +53,8 @@ public class CutdownPriceProductMqListener extends AbstractMqListener {
CutdownPriceProduct cutdownPriceProduct = cutdownPriceProductMapper.selectByPrimaryKey(Integer.valueOf(id));
cutdownPriceProductService.delete(Integer.valueOf(id));
indexService.deleteIndexData(this.getIndexName(), id);
if(cutdownPriceProduct!=null){
updateProductIndex(cutdownPriceProduct.getProductSkn());
if (cutdownPriceProduct != null) {
updateProductIndex(cutdownPriceProduct);
}
}
... ... @@ -63,28 +66,37 @@ public class CutdownPriceProductMqListener extends AbstractMqListener {
}
cutdownPriceProductService.saveOrUpdate(cutdownPriceProduct);
indexService.updateIndexData(this.getIndexName(), String.valueOf(cutdownPriceProduct.getId()), JSONObject.toJSON(cutdownPriceProduct));
updateProductIndex(cutdownPriceProduct.getProductSkn());
updateProductIndex(cutdownPriceProduct);
}
private void updateProductIndex(Integer productSkn) {
//1、获取商品信息
Product product = productService.getBySkn(productSkn);
if (product == null) {
return;
}
private void updateProductIndex(CutdownPriceProduct cutdownPriceProduct) {
// 1.这个值可能是有货商品的skn或者ufo商品的id
Integer productSkn = cutdownPriceProduct.getProductSkn();
//2、构造商品信息
Map<String, Object> indexData = new HashMap<String, Object>();
CutdownPriceInfoBO cutdownPriceInfoBO = cutdownPriceLogicService.selectCutdownPriceInfoBO(productSkn);
if(cutdownPriceInfoBO==null){
if (cutdownPriceInfoBO == null) {
indexData.put(ProductIndexEsField.cutdownPriceActivityIds, "");
indexData.put(ProductIndexEsField.cutdownPriceOrder, 0);
}else{
indexData.put(ProductIndexEsField.cutdownPriceActivityIds, StringUtils.join(cutdownPriceInfoBO.getActivityIds(),","));
} else {
indexData.put(ProductIndexEsField.cutdownPriceActivityIds, StringUtils.join(cutdownPriceInfoBO.getActivityIds(), ","));
indexData.put(ProductIndexEsField.cutdownPriceOrder, cutdownPriceInfoBO.getOrder());
}
//3、更新Es索引
this.updateProductIndexWithDataMap(indexData, product.getId());
if (cutdownPriceProduct.getProductType() == 0) {
Product product = productService.getBySkn(productSkn);
if (product == null) {
return;
}
this.updateProductIndexWithDataMap(indexData, product.getId());
}
//ufo砍价商品
if (cutdownPriceProduct.getProductType() == 1) {
String id = "ufo-" + productSkn;
this.updateProductIndexWithDataMapByUfoId(indexData, id);
}
}
}
... ...
... ... @@ -31,7 +31,31 @@
"updateTime": {
"type": "integer"
},
"status;": {
"productType;": {
"type": "integer"
},
"platformLimit;": {
"type": "integer"
},
"showLimit;": {
"type": "integer"
},
"cutTotalPrice;": {
"type": "double"
},
"cutYohoLowPercent;": {
"type": "double"
},
"cutYohoHighPercent;": {
"type": "double"
},
"cutGrade;": {
"type": "integer"
},
"cutGradeConfig;": {
"type": "keyword"
},
"orderBy;": {
"type": "integer"
}
}
... ...
... ... @@ -52,7 +52,7 @@ public class CutdownPriceLogicService {
productBO.setProductSkn(product.getProductSkn());
productBO.setActivityId(product.getActivityId());
productBO.setBeginTime(activity.getBeginTime());
productBO.setOrder(product.getId());
productBO.setOrder(product.getOrderBy());
productBOList.add(productBO);
}
... ...
... ... @@ -5,7 +5,6 @@ import com.yoho.search.dal.model.ufo_product.BrandSeries;
import com.yoho.search.dal.model.ufo_product.Product;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.Map;
/**
... ... @@ -56,5 +55,10 @@ public class UfoToYohoGeneralService {
productIndexBO.setAgeLevel("1");
productIndexBO.setIsOutlets(2);
productIndexBO.setPhysicalChannels("1,2,3,4");
// 为了让砍价接口可以查出来
productIndexBO.setStoreShowStatus(1);
productIndexBO.setIsLimitbuy("N");
productIndexBO.setIsDepositAdvance("N");
productIndexBO.setIsLimitTimeAdvance("N");
}
}
... ...