admin
2018-12-05 eb8704f0218814f4c3ebfd0a1a6f5dbbb26db8d1
足迹增加
7个文件已添加
300 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/dao/BaseMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/goods/ScanHistoryV2Mapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/goods/ScanHistoryV2.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/exception/goods/ScanHistoryException.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/goods/ScanHistoryV2Mapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ScanHistoryV2ServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/ScanHistoryV2Service.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/BaseMapper.java
New file
@@ -0,0 +1,17 @@
package com.yeshi.fanli.dao;
public interface BaseMapper<T> {
    int deleteByPrimaryKey(Long id);
    int insert(T record);
    int insertSelective(T record);
    T selectByPrimaryKey(Long id);
    int updateByPrimaryKeySelective(T record);
    int updateByPrimaryKey(T record);
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/goods/ScanHistoryV2Mapper.java
New file
@@ -0,0 +1,8 @@
package com.yeshi.fanli.dao.mybatis.goods;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
public interface ScanHistoryV2Mapper extends BaseMapper<ScanHistoryV2> {
}
fanli/src/main/java/com/yeshi/fanli/entity/goods/ScanHistoryV2.java
New file
@@ -0,0 +1,73 @@
package com.yeshi.fanli.entity.goods;
import java.util.Date;
import org.yeshi.utils.mybatis.Column;
import org.yeshi.utils.mybatis.Table;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@Table("yeshi_ec_scanhistory_v2")
public class ScanHistoryV2 {
    @Column(name = "s_id")
    private Long id;
    @Column(name = "s_device")
    private String device;
    @Column(name = "s_uid")
    private UserInfo userInfo;
    @Column(name = "s_common_goods_id")
    private CommonGoods commonGoods;
    @Column(name = "s_createtime")
    private Date createTime;
    @Column(name = "s_updatetime")
    private Date updateTime;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getDevice() {
        return device;
    }
    public void setDevice(String device) {
        this.device = device;
    }
    public UserInfo getUserInfo() {
        return userInfo;
    }
    public void setUserInfo(UserInfo userInfo) {
        this.userInfo = userInfo;
    }
    public CommonGoods getCommonGoods() {
        return commonGoods;
    }
    public void setCommonGoods(CommonGoods commonGoods) {
        this.commonGoods = commonGoods;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
}
fanli/src/main/java/com/yeshi/fanli/exception/goods/ScanHistoryException.java
New file
@@ -0,0 +1,32 @@
package com.yeshi.fanli.exception.goods;
public class ScanHistoryException extends Exception {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    private int code;
    private String msg;
    public int getCode() {
        return code;
    }
    public String getMsg() {
        return msg;
    }
    public ScanHistoryException(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    public ScanHistoryException() {
    }
    @Override
    public String getMessage() {
        return this.msg;
    }
}
fanli/src/main/java/com/yeshi/fanli/mapping/goods/ScanHistoryV2Mapper.xml
New file
@@ -0,0 +1,79 @@
<?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.yeshi.fanli.dao.mybatis.goods.ScanHistoryV2Mapper">
    <resultMap id="BaseResultMap" type="com.yeshi.fanli.entity.goods.ScanHistoryV2">
        <id column="s_id" property="id" jdbcType="BIGINT" />
        <result column="s_device" property="device" jdbcType="VARCHAR" />
        <result column="s_createtime" property="createTime" jdbcType="TIMESTAMP" />
        <result column="s_updatetime" property="updateTime" jdbcType="TIMESTAMP" />
        <association property="userInfo" column="cg_uid"
            javaType="com.yeshi.fanli.entity.bus.user.UserInfo">
            <id column="cg_uid" property="id" jdbcType="BIGINT" />
        </association>
        <association property="commonGoods" column="cg_common_goods_id"
            select="com.yeshi.fanli.dao.mybatis.goods.CommonGoodsMapper.selectByPrimaryKey">
        </association>
    </resultMap>
    <sql id="Base_Column_List">s_id,s_device,s_uid,s_common_goods_id,s_createtime,s_updatetime
    </sql>
    <select id="selectByPrimaryKey" resultMap="BaseResultMap"
        parameterType="java.lang.Long">
        select
        <include refid="Base_Column_List" />
        from yeshi_ec_scanhistory_v2 where s_id = #{id,jdbcType=BIGINT}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from
        yeshi_ec_scanhistory_v2 where s_id = #{id,jdbcType=BIGINT}
    </delete>
    <insert id="insert" parameterType="com.yeshi.fanli.entity.goods.ScanHistoryV2"
        useGeneratedKeys="true" keyProperty="id">insert into
        yeshi_ec_scanhistory_v2
        (s_id,s_device,s_uid,s_common_goods_id,s_createtime,s_updatetime)
        values
        (#{id,jdbcType=BIGINT},#{device,jdbcType=VARCHAR},#{userInfo.id,jdbcType=BIGINT},#{commonGoods.id,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})
    </insert>
    <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.goods.ScanHistoryV2"
        useGeneratedKeys="true" keyProperty="id">
        insert into yeshi_ec_scanhistory_v2
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">s_id,</if>
            <if test="device != null">s_device,</if>
            <if test="userInfo != null">s_uid,</if>
            <if test="commonGoods != null">s_common_goods_id,</if>
            <if test="createTime != null">s_createtime,</if>
            <if test="updateTime != null">s_updatetime,</if>
        </trim>
        values
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id,jdbcType=BIGINT},</if>
            <if test="device != null">#{device,jdbcType=VARCHAR},</if>
            <if test="userInfo != null">#{userInfo.id,jdbcType=BIGINT},</if>
            <if test="commonGoods != null">#{commonGoods.id,jdbcType=BIGINT},</if>
            <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
            <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
        </trim>
    </insert>
    <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.goods.ScanHistoryV2">update
        yeshi_ec_scanhistory_v2 set s_device =
        #{device,jdbcType=VARCHAR},s_uid =
        #{userInfo.id,jdbcType=BIGINT},s_common_goods_id =
        #{commonGoods.id,jdbcType=BIGINT},s_createtime =
        #{createTime,jdbcType=TIMESTAMP},s_updatetime =
        #{updateTime,jdbcType=TIMESTAMP} where s_id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.goods.ScanHistoryV2">
        update yeshi_ec_scanhistory_v2
        <set>
            <if test="device != null">s_device=#{device,jdbcType=VARCHAR},</if>
            <if test="userInfo != null">s_uid=#{userInfo.id,jdbcType=BIGINT},</if>
            <if test="commonGoods != null">s_common_goods_id=#{commonGoods.id,jdbcType=BIGINT},</if>
            <if test="createTime != null">s_createtime=#{createTime,jdbcType=TIMESTAMP},</if>
            <if test="updateTime != null">s_updatetime=#{updateTime,jdbcType=TIMESTAMP},</if>
        </set>
        where s_id = #{id,jdbcType=BIGINT}
    </update>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/ScanHistoryV2ServiceImpl.java
New file
@@ -0,0 +1,64 @@
package com.yeshi.fanli.service.impl.goods;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.goods.ScanHistoryV2Mapper;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.goods.CommonGoods;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
import com.yeshi.fanli.exception.goods.ScanHistoryException;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.goods.ScanHistoryV2Service;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.CommonGoodsFactory;
@Service
public class ScanHistoryV2ServiceImpl implements ScanHistoryV2Service {
    @Resource
    private CommonGoodsService commonGoodsService;
    @Resource
    private ScanHistoryV2Mapper scanHistoryV2Mapper;
    @Override
    public void addScanHistory(Long uid, String device, TaoBaoGoodsBrief goods)
            throws CommonGoodsException, ScanHistoryException {
        if (uid == null && StringUtil.isNullOrEmpty(device))
            throw new ScanHistoryException(1, "设备或用户信息缺失");
        CommonGoods commonGoods = CommonGoodsFactory.create(goods);
        commonGoods = commonGoodsService.addOrUpdateCommonGoods(commonGoods);
        if (commonGoods == null)
            throw new CommonGoodsException(2, "商品信息不完整");
        // 添加浏览记录
        ScanHistoryV2 scanHistoryV2 = new ScanHistoryV2();
        scanHistoryV2.setCommonGoods(commonGoods);
        scanHistoryV2.setCreateTime(new Date());
        scanHistoryV2.setDevice(device);
        if (uid != null)
            scanHistoryV2.setUserInfo(new UserInfo(uid));
        scanHistoryV2.setUpdateTime(new Date());
        scanHistoryV2Mapper.insertSelective(scanHistoryV2);
    }
    @Override
    public void addScanHistory(ScanHistoryV2 history) throws CommonGoodsException, ScanHistoryException {
        if (history == null)
            throw new ScanHistoryException(1, "浏览信息不能为空");
        if (history.getUserInfo() == null && StringUtil.isNullOrEmpty(history.getDevice()))
            throw new ScanHistoryException(1, "设备或用户信息缺失");
        CommonGoods commonGoods = commonGoodsService.addOrUpdateCommonGoods(history.getCommonGoods());
        if (commonGoods == null)
            throw new CommonGoodsException(2, "商品信息不完整");
        history.setCommonGoods(commonGoods);
        scanHistoryV2Mapper.insertSelective(history);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/goods/ScanHistoryV2Service.java
New file
@@ -0,0 +1,27 @@
package com.yeshi.fanli.service.inter.goods;
import com.yeshi.fanli.entity.goods.ScanHistoryV2;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.CommonGoodsException;
import com.yeshi.fanli.exception.goods.ScanHistoryException;
public interface ScanHistoryV2Service {
    /**
     * 添加浏览记录
     *
     * @param uid
     * @param device
     * @param goods
     */
    public void addScanHistory(Long uid, String device, TaoBaoGoodsBrief goods)
            throws CommonGoodsException, ScanHistoryException;
    /**
     * 添加浏览记录
     *
     * @param history
     * @throws CommonGoodsException
     * @throws ScanHistoryException
     */
    public void addScanHistory(ScanHistoryV2 history) throws CommonGoodsException, ScanHistoryException;
}