Authored by wangnan9279

ufo鉴定服务列表

package com.yoho.search.dal;
import com.yoho.search.dal.model.ufo_product.ProductLimitSale;
import java.util.List;
public interface ProductLimitSaleMapper {
int deleteByPrimaryKey(Integer id);
int insert(ProductLimitSale record);
int insertSelective(ProductLimitSale record);
ProductLimitSale selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(ProductLimitSale record);
int updateByPrimaryKey(ProductLimitSale record);
List<ProductLimitSale> selectByProductIdList(List<Integer> skns);
}
\ No newline at end of file
... ...
<?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.ProductLimitSaleMapper">
<resultMap id="BaseResultMap" type="com.yoho.search.dal.model.ufo_product.ProductLimitSale">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="product_id" property="productId" jdbcType="INTEGER"/>
<result column="uid" property="uid" jdbcType="INTEGER"/>
<result column="profit_rate" property="profitRate" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="INTEGER"/>
<result column="del_status" property="delStatus" jdbcType="TINYINT"/>
<result column="edit_uid" property="editUid" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id, product_id, uid, profit_rate, create_time, del_status, edit_uid
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select
<include refid="Base_Column_List"/>
from product_limit_sale
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from product_limit_sale
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.yoho.search.dal.model.ufo_product.ProductLimitSale">
insert into product_limit_sale (id, product_id, uid,
profit_rate, create_time, del_status,
edit_uid)
values (#{id,jdbcType=INTEGER}, #{productId,jdbcType=INTEGER}, #{uid,jdbcType=INTEGER},
#{profitRate,jdbcType=DECIMAL}, #{createTime,jdbcType=INTEGER}, #{delStatus,jdbcType=TINYINT},
#{editUid,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.yoho.search.dal.model.ufo_product.ProductLimitSale">
insert into product_limit_sale
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="productId != null">
product_id,
</if>
<if test="uid != null">
uid,
</if>
<if test="profitRate != null">
profit_rate,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="delStatus != null">
del_status,
</if>
<if test="editUid != null">
edit_uid,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="productId != null">
#{productId,jdbcType=INTEGER},
</if>
<if test="uid != null">
#{uid,jdbcType=INTEGER},
</if>
<if test="profitRate != null">
#{profitRate,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
#{createTime,jdbcType=INTEGER},
</if>
<if test="delStatus != null">
#{delStatus,jdbcType=TINYINT},
</if>
<if test="editUid != null">
#{editUid,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.yoho.search.dal.model.ufo_product.ProductLimitSale">
update product_limit_sale
<set>
<if test="productId != null">
product_id = #{productId,jdbcType=INTEGER},
</if>
<if test="uid != null">
uid = #{uid,jdbcType=INTEGER},
</if>
<if test="profitRate != null">
profit_rate = #{profitRate,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=INTEGER},
</if>
<if test="delStatus != null">
del_status = #{delStatus,jdbcType=TINYINT},
</if>
<if test="editUid != null">
edit_uid = #{editUid,jdbcType=INTEGER},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.yoho.search.dal.model.ufo_product.ProductLimitSale">
update product_limit_sale
set product_id = #{productId,jdbcType=INTEGER},
uid = #{uid,jdbcType=INTEGER},
profit_rate = #{profitRate,jdbcType=DECIMAL},
create_time = #{createTime,jdbcType=INTEGER},
del_status = #{delStatus,jdbcType=TINYINT},
edit_uid = #{editUid,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectByProductIdList" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from product_limit_sale where
del_status = 0
and product_id in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
... ...
package com.yoho.search.consumer.index.increment.ufo_product;
import com.alibaba.fastjson.JSONObject;
import com.yoho.search.base.utils.ConvertUtils;
import com.yoho.search.consumer.index.increment.AbstractMqListener;
import com.yoho.search.consumer.index.mix.UfoIndexUpdateHelper;
import com.yoho.search.consumer.service.daoService.ufo.ProductLimitSaleService;
import com.yoho.search.core.message.beans.SearchMqConsumerListerner;
import com.yoho.search.dal.model.ufo_product.ProductLimitSale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author wangnan
* @version 2019/9/9
*/
@Component
@SearchMqConsumerListerner(dbName = "ufo_product", tableName = "product_limit_sale")
public class UfoProductLimitSaleMqListener extends AbstractMqListener {
@Autowired
private ProductLimitSaleService productLimitSaleService;
@Autowired
private UfoIndexUpdateHelper ufoIndexUpdateHelper;
@Override
protected void deleteData(String id) throws Exception {
ProductLimitSale productLimitSale = productLimitSaleService.getById(Integer.valueOf(id));
productLimitSaleService.delete(Integer.valueOf(id));
if (productLimitSale != null) {
ufoIndexUpdateHelper.updateUfoIndexByUfoProductId(productLimitSale.getProductId());
}
}
@Override
protected void updateData(JSONObject data) throws Exception {
ProductLimitSale productLimitSale = ConvertUtils.toJavaObject(ProductLimitSale.class, data);
if (productLimitSale == null || productLimitSale.getId() == null) {
return;
}
productLimitSaleService.saveOrUpdate(productLimitSale);
ufoIndexUpdateHelper.updateUfoIndexByUfoProductId(productLimitSale.getProductId());
}
}
... ...
... ... @@ -239,6 +239,9 @@
},
"availableNowPrice": {
"type": "double"
},
"isLimitSale": {
"type": "keyword"
}
}
}
... ...
... ... @@ -73,4 +73,6 @@ public class UfoProductIndexBO {
private BigDecimal offerPrice;
//现货最低价
private Double availableNowPrice;
//是否是独家商品
private String isLimitSale;
}
... ...
package com.yoho.search.consumer.service.daoService.ufo;
import com.yoho.search.dal.ProductLimitSaleMapper;
import com.yoho.search.dal.model.ufo_product.ProductLimitSale;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author wangnan
* @version 2019/9/9
*/
@Component
public class ProductLimitSaleService {
@Autowired
private ProductLimitSaleMapper productLimitSaleMapper;
public ProductLimitSale getById(Integer id) {
return productLimitSaleMapper.selectByPrimaryKey(id);
}
public int insert(ProductLimitSale productLimitSale) {
return productLimitSaleMapper.insertSelective(productLimitSale);
}
public int update(ProductLimitSale productLimitSale) {
return productLimitSaleMapper.updateByPrimaryKey(productLimitSale);
}
public int saveOrUpdate(ProductLimitSale productLimitSale) {
if (productLimitSale.getId() == null || productLimitSaleMapper.selectByPrimaryKey(productLimitSale.getId()) == null) {
return productLimitSaleMapper.insertSelective(productLimitSale);
} else {
return productLimitSaleMapper.updateByPrimaryKey(productLimitSale);
}
}
public int delete(Integer id) {
return productLimitSaleMapper.deleteByPrimaryKey(id);
}
}
... ...
package com.yoho.search.consumer.service.logicService.ufo;
import com.yoho.search.consumer.service.bo.UfoProductIndexBO;
import com.yoho.search.dal.ProductLimitSaleMapper;
import com.yoho.search.dal.model.ufo_product.ProductLimitSale;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author wangnan
* @version 2019/9/9
*/
@Component
public class UfoIsLimitSaleFieldBuilder implements UfoIndexFieldBuilder {
@Autowired
private ProductLimitSaleMapper productLimitSaleMapper;
@Override
public void build(List<UfoProductIndexBO> ufoProductIndexBOList, List<Integer> idList) {
List<ProductLimitSale> productLimitSaleList = productLimitSaleMapper.selectByProductIdList(idList);
Set<Integer> limitSaleProductIdSet = new HashSet<>();
if (CollectionUtils.isNotEmpty(productLimitSaleList)) {
limitSaleProductIdSet = productLimitSaleList.stream().map(ProductLimitSale::getProductId).collect(Collectors.toSet());
}
for (UfoProductIndexBO ufoProductIndexBO : ufoProductIndexBOList) {
ufoProductIndexBO.setIsLimitSale("N");
if (limitSaleProductIdSet.contains(ufoProductIndexBO.getId())) {
ufoProductIndexBO.setIsLimitSale("Y");
}
}
}
}
... ...
... ... @@ -48,5 +48,6 @@ datasources:
- com.yoho.search.dal.UfoProductSalesMapper
- com.yoho.search.dal.BigdataUfoSalesMoneyMapper
- com.yoho.search.dal.UfoSuggestWordMapper
- com.yoho.search.dal.ProductLimitSaleMapper
readOnlyInSlave: true
\ No newline at end of file
... ...
... ... @@ -48,5 +48,6 @@ datasources:
- com.yoho.search.dal.UfoProductSalesMapper
- com.yoho.search.dal.BigdataUfoSalesMoneyMapper
- com.yoho.search.dal.UfoSuggestWordMapper
- com.yoho.search.dal.ProductLimitSaleMapper
readOnlyInSlave: ${readOnlyInSlave}
\ No newline at end of file
... ...