fanli/src/main/java/com/yeshi/fanli/dao/mybatis/lable/QualityFactoryMapper.java
@@ -341,4 +341,10 @@ long countRecommendBykey(@Param("key") String key, @Param("hasQuan") Integer hasQuan, @Param("userType") Integer userType,@Param("startprice") Double startprice, @Param("endprice") Double endprice); List<QualityFactory> listQueryBylabIDs(@Param("start") long start, @Param("count") int count, @Param("list") List<Long> list, @Param("gid") Long gid,@Param("systemCid") Long systemCid); } fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/ShamUserMapper.java
@@ -31,4 +31,7 @@ List<ShamUser> listByDistinctPicUrl(@Param("start")long start, @Param("count")int count); // 随机取出数据 List<ShamUser> listRand(@Param("count") int count); } fanli/src/main/java/com/yeshi/fanli/entity/bus/user/ShamUser.java
@@ -6,21 +6,36 @@ import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; //假用户 @Entity @Table(name="yeshi_ec_sham_user")//@com.yeshi.utils.mybatis.Table("yeshi_ec_demouser") @Table(name = "yeshi_ec_sham_user") @org.yeshi.utils.mybatis.Table("yeshi_ec_sham_user") public class ShamUser { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="`id`") @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "`id`") private long id; @Column(name="`name`") @Column(name = "`name`") private String name; @Column(name = "`picUrl`") private String picUrl; @Transient private String msg; @Transient private String showId; @Transient private String shareBonusPic; public ShamUser() { } public ShamUser(long id) { super(); this.id = id; @@ -29,20 +44,49 @@ public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPicUrl() { return picUrl; } public void setPicUrl(String picUrl) { this.picUrl = picUrl; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getShowId() { return showId; } public void setShowId(String showId) { this.showId = showId; } public String getShareBonusPic() { return shareBonusPic; } public void setShareBonusPic(String shareBonusPic) { this.shareBonusPic = shareBonusPic; } } fanli/src/main/java/com/yeshi/fanli/mapping/taobao/TaoBaoGoodsBriefMapper.xml
@@ -183,7 +183,7 @@ <if test="tkMktStatus != null">tkMktStatus,</if> <if test="updatetime != null">updatetime,</if> <if test="state != null">state,</if> <if test="state != null">totalSales,</if> <if test="totalSales != null">totalSales,</if> </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> fanli/src/main/java/com/yeshi/fanli/mapping/user/ShamUserMapper.xml
@@ -61,5 +61,8 @@ LEFT JOIN yeshi_ec_demouser B ON A.id = B.id </select> <select id="listRand" resultMap="BaseResultMap"> SELECT <include refid="Base_Column_List" /> FROM yeshi_ec_sham_user ORDER BY RAND() LIMIT #{count} </select> </mapper> fanli/src/main/java/com/yeshi/fanli/service/impl/lable/QualityGoodsServiceImpl.java
@@ -1,5 +1,6 @@ package com.yeshi.fanli.service.impl.lable; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -16,6 +17,8 @@ import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefRecordMapper; import com.yeshi.fanli.entity.bus.lable.Label; import com.yeshi.fanli.entity.bus.lable.LabelGoods; import com.yeshi.fanli.entity.bus.lable.QualityFactory; import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief; import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService; @@ -25,6 +28,7 @@ import com.yeshi.fanli.util.RedisManager; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.taobao.TaoBaoUtil; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.taobao.TbImgUtil; @@ -334,5 +338,42 @@ return countRecommend(pop, commision, couponAmount, tkRate, couponRatio); } @Override public List<QualityFactory> recommendByAuctionId(Long auctionId){ List<Long> list = new ArrayList<Long>(); list.add(auctionId); List<QualityFactory> listTaoBaoGoods = qualityFactoryMapper.listQueryByAuctionId(list); if (listTaoBaoGoods == null || listTaoBaoGoods.size() == 0) { return null; } QualityFactory qualityFactory = listTaoBaoGoods.get(0); TaoBaoGoodsBrief goodsBrief = qualityFactory.getTaoBaoGoodsBrief(); if (goodsBrief == null) { return null; } List<LabelGoods> listLab = labelGoodsMapper.queryByGoodsId(0, 200, goodsBrief.getId()); if (listLab == null || listLab.size() == 0) { return null; } // 标签id List<Long> listId = new ArrayList<Long>(); for (LabelGoods labelGoods: listLab) { Label label = labelGoods.getLabel(); if (label != null) { listId.add(label.getId()); } } if (listId.size() == 0) { return null; } return qualityFactoryMapper.listQueryBylabIDs(0, 10, listId, goodsBrief.getId(),qualityFactory.getSystemCid()); } } fanli/src/main/java/com/yeshi/fanli/service/impl/user/ShamUserServiceImpl.java
@@ -1,5 +1,6 @@ package com.yeshi.fanli.service.impl.user; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collections; @@ -8,7 +9,8 @@ import javax.annotation.Resource; import org.apache.ibatis.annotations.Param; import net.sf.json.JSONArray; import org.hibernate.HibernateException; import org.hibernate.SQLQuery; import org.hibernate.Session; @@ -20,8 +22,10 @@ import com.yeshi.fanli.dao.user.ShamUserDao; import com.yeshi.fanli.entity.bus.user.HongBaoMessage; import com.yeshi.fanli.entity.bus.user.ShamUser; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.user.ShamUserService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.Utils; @Service @@ -32,6 +36,9 @@ @Resource private ShamUserMapper shamUserMapper; @Resource private ConfigService configService; @Transactional @@ -182,6 +189,84 @@ public List<ShamUser> listDistinctPicUrl(long start, int count) { return shamUserMapper.listByDistinctPicUrl(start, count); } @Override public List<ShamUser> listRandCouponUser(int count, int smallTime, int largeTime) { List<Integer> listTime = new ArrayList<Integer>(); while (listTime.size() < count) { int time = smallTime + (int) (Math.random() * (largeTime - smallTime + 1)); if (!listTime.contains(Integer.valueOf(time))) { listTime.add(Integer.valueOf(time)); } } Collections.sort(listTime); List<ShamUser> listRand = shamUserMapper.listRand(count); for (int i = 1; i <= count; i++) { ShamUser shamUser = (ShamUser) listRand.get(i - 1); transformId(shamUser); shamUser.setMsg(listTime.get(listTime.size() - i) + "秒前领券购买了这个商品"); } return listRand; } @Override public List<ShamUser> listRandShareUser(int count, BigDecimal shareMoney, int small, int large) { List<Integer> listMultiple = new ArrayList<Integer>(); while (listMultiple.size() < count) { int Multiple = small + (int) (Math.random() * (large - small + 1)); listMultiple.add(Integer.valueOf(Multiple)); } List<String> imgList = new ArrayList<String>(); String value = configService.get("shareBonusPicture"); if (!StringUtil.isNullOrEmpty(value)) { JSONArray array = JSONArray.fromObject(value); if (array != null) { for (int n = 0; n < array.size(); n++) { imgList.add(array.optString(n)); } } } List<ShamUser> listRand = shamUserMapper.listRand(count); for (int i = 0; i < count; i++) { ShamUser shamUser = (ShamUser) listRand.get(i); transformId(shamUser); if (imgList.size() > 0) { int randBonusPic = (int) (Math.random() * imgList.size()); shamUser.setShareBonusPic((String) imgList.get(randBonusPic)); } BigDecimal money = shareMoney.multiply(new BigDecimal(((Integer) listMultiple.get(i)).intValue())).setScale(2, 1); shamUser.setMsg("分享了这个商品,累计获得<font color=\"red\">奖金" + money + "</font>"); } return listRand; } public void transformId(ShamUser shamUser) { String id = shamUser.getId() + ""; if (id.length() == 1) { shamUser.setShowId("2****" + id); } else { shamUser.setShowId(id.substring(0, 1) + "****" + id.substring(id.length() - 2, id.length() - 1)); } } } fanli/src/main/java/com/yeshi/fanli/service/inter/lable/QualityGoodsService.java
@@ -173,5 +173,12 @@ public long countRecommendToIndex(String proportion); /** * 单个商品根据标签推荐商品 * @param paramLong * @param paramString1 * @param paramString2 * @return */ public List<QualityFactory> recommendByAuctionId(Long paramLong); } fanli/src/main/java/com/yeshi/fanli/service/inter/user/ShamUserService.java
@@ -1,5 +1,6 @@ package com.yeshi.fanli.service.inter.user; import java.math.BigDecimal; import java.util.List; import com.yeshi.fanli.entity.bus.user.HongBaoMessage; @@ -39,4 +40,24 @@ public int updateByPrimaryKey(ShamUser record); public List<ShamUser> listDistinctPicUrl(long start, int count); /** * 领券提示 * @param count * @param smallTime * @param largeTime * @return */ public List<ShamUser> listRandCouponUser(int count, int smallTime, int largeTime); /** * 分享奖金 * @param count * * @param shareMoney * @param small * @param large * @return */ public List<ShamUser> listRandShareUser(int count, BigDecimal shareMoney, int small, int large); }