| | |
| | | package com.yeshi.fanli.service.impl.lable;
|
| | |
|
| | | import java.util.ArrayList;
|
| | | import java.util.List;
|
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.cache.annotation.Cacheable;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | | import org.yeshi.utils.taobao.TbImgUtil;
|
| | |
|
| | | import com.google.gson.Gson;
|
| | | import com.google.gson.GsonBuilder;
|
| | | import com.yeshi.fanli.dao.mybatis.TaoBaoClassRelationMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper;
|
| | | import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoGoodsBriefMapper;
|
| | | 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;
|
| | | import com.yeshi.fanli.service.inter.lable.LabelService;
|
| | | import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
|
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil;
|
| | |
|
| | | import net.sf.json.JSONArray;
|
| | |
|
| | | @Service
|
| | | public class QualityGoodsServiceImpl implements QualityGoodsService {
|
| | |
|
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | | @Resource
|
| | | private QualityFactoryMapper qualityFactoryMapper;
|
| | | @Resource
|
| | | private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
|
| | | @Resource
|
| | | private LabelGoodsMapper labelGoodsMapper;
|
| | | @Resource
|
| | | private LabelService labelService;
|
| | | @Resource
|
| | | private TaoBaoGoodsBriefMapper taoBaoGoodsBriefMapper;
|
| | | @Resource
|
| | | private TaoBaoUnionConfigService taoBaoUnionConfigService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoClassRelationMapper taoBaoClassRelationMapper;
|
| | |
|
| | | |
| | | |
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'listQueryByCouponAmount-'+#start+'-'+#key+'-'+#endAmount+'-'+#startPropor")
|
| | | public List<QualityFactory> listQueryByCouponAmount(long start, int count, Integer key, |
| | | Integer endAmount, Integer startPropor){
|
| | | return qualityFactoryMapper.listQueryByCouponAmount(start, count, key, endAmount, startPropor);
|
| | | }
|
| | | |
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'countQueryByCouponAmount-'+#key+'-'+#endAmount+'-'+#startPropor")
|
| | | public long countQueryByCouponAmount(Integer key, Integer endAmount, Integer startPropor){
|
| | | return qualityFactoryMapper.countQueryByCouponAmount(key, endAmount, startPropor);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'listQueryByFlashSale-'+#start")
|
| | | public List<QualityFactory> listQueryByFlashSale(long start, int count) {
|
| | | return qualityFactoryMapper.listQueryByFlashSale(start, count);
|
| | | }
|
| | |
|
| | | @Override
|
| | | //@Cacheable(value = "qualityCache",key="'countQueryByFlashSale-'")
|
| | | public long countQueryByFlashSale() {
|
| | | return qualityFactoryMapper.countQueryByFlashSale();
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<QualityFactory> listFlashSaleRandGoods() {
|
| | | return qualityFactoryMapper.listFlashSaleRandGoods();
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 今日必抢 - 9k9
|
| | | * @param start
|
| | | * @param count
|
| | | * @param systemCid
|
| | | * @param labId
|
| | | * @param sortField
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public List<QualityFactory> listQueryEverydayRob(long start, int count, Long cid, Long labId, Integer sortField,Double startCouponAmount,Double endCouponAmount) {
|
| | | return qualityFactoryMapper.listQueryEverydayRob(start, count, cid, labId, sortField,startCouponAmount,endCouponAmount);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countQueryEverydayRob(Long cid, Long labId, Double startCouponAmount,Double endCouponAmount) {
|
| | | return qualityFactoryMapper.countQueryEverydayRob(cid, labId,startCouponAmount,endCouponAmount);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 小金额查询:9.9/19.9/29.9/49.9
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param key
|
| | | * @param classId
|
| | | * 分类id
|
| | | * @param labId
|
| | | * 标签id
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | @Cacheable(value = "quality9K9Cache",key="'listQuerySmallAmount-'+#start+'-'+#key+'-'+#labId+'-'+#cids")
|
| | | public List<QualityFactory> listQuerySmallAmount(long start, int count, String key, Long labId, String cids) {
|
| | | return qualityFactoryMapper.listQuery(start, count, key, null, labId, cids,1);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 对应小金额查询:9.9/19.9/29.9/49.9
|
| | | */
|
| | | @Override
|
| | | @Cacheable(value = "quality9K9Cache",key="'countQuerySmallAmount-'+#key+'-'+#labId+'-'+#cids")
|
| | | public long countQuerySmallAmount(String key, Long labId, String cids) {
|
| | | return qualityFactoryMapper.countQuery(key, null, labId, cids,1);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 查询标签
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param key
|
| | | * @param labId
|
| | | * @return
|
| | | */
|
| | | public List<QualityFactory> listQueryByKeyAndlabIDs(long start, int count,String key, List<Long> listId, Integer sort,
|
| | | Long systemCid, Integer hasQuan, Integer userType, Integer biz30day,Integer startprice, Integer endprice) {
|
| | | return qualityFactoryMapper.listQueryByKeyAndlabIDs(start, count, key, listId, sort,systemCid, hasQuan, userType,
|
| | | biz30day, startprice, endprice);
|
| | | }
|
| | |
|
| | |
|
| | | public long countQueryKeyAndlabIDs(String key, List<Long> listId, Long systemCid, Integer hasQuan, Integer userType,
|
| | | Integer biz30day,Integer startprice, Integer endprice) {
|
| | | return qualityFactoryMapper.countQueryKeyAndlabIDs(key, listId,systemCid, hasQuan, userType, biz30day,
|
| | | startprice, endprice);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 关键词搜索
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param key
|
| | | * @param labId
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public List<QualityFactory> listQueryByKey(long start, int count, String key, Integer sort,Long systemCid,
|
| | | Integer hasQuan, Integer userType, Integer biz30day,Integer startprice, Integer endprice) {
|
| | | return qualityFactoryMapper.listQueryByKey(start, count, key, sort, systemCid,hasQuan, userType, biz30day,
|
| | | startprice, endprice);
|
| | | }
|
| | |
|
| | | public long countQueryByKey(String key, Long systemCid,Integer hasQuan, Integer userType,
|
| | | Integer biz30day,Integer startprice, Integer endprice) {
|
| | | |
| | | return qualityFactoryMapper.countQueryByKey(key, systemCid,hasQuan, userType, biz30day,
|
| | | startprice, endprice);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 一级分类查询精选库数据
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param key
|
| | | * @param labId
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'listQueryByClassId-'+#start+'-'+#cid")
|
| | | public List<QualityFactory> listQueryByClassId(long start, int count, Long cid) {
|
| | | return qualityFactoryMapper.listQuery(start, count, null, cid, null, null, 1);
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'countQueryClassId-'+#cid")
|
| | | public long countQueryClassId(Long cid) {
|
| | | return qualityFactoryMapper.countQuery(null, cid, null, null, 1);
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'listQueryByRebateAmount-'+#start+'-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate")
|
| | | public List<QualityFactory> listQueryByRebateAmount(long start, int count,String proportion,
|
| | | Integer startAmount, Integer endAmount, double tkRate){
|
| | | return qualityFactoryMapper.listQueryByRebateAmount(start, count, proportion, startAmount, endAmount, tkRate);
|
| | | }
|
| | | |
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'countQueryByRebateAmount-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate")
|
| | | public long countQueryByRebateAmount(String proportion, Integer startAmount, Integer endAmount, double tkRate){
|
| | | return qualityFactoryMapper.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate);
|
| | | }
|
| | | |
| | | |
| | | |
| | | @Override
|
| | | //@Cacheable(value = "qualityCache",key="'queryToCouponColumn-'+#start")
|
| | | @Cacheable(value = "taoBaoCouponCache", key = "'queryToCouponColumn'+#start")
|
| | | public List<QualityFactory> queryToCouponColumn(long start, int count){
|
| | | return qualityFactoryMapper.queryToCouponColumn(start, count);
|
| | | }
|
| | | |
| | | @Override
|
| | | //@Cacheable(value = "qualityCache",key="'countQueryToCouponColumn'")
|
| | | @Cacheable(value = "taoBaoCouponCache", key = "'countQueryToCouponColumn'")
|
| | | public long countQueryToCouponColumn(){
|
| | | return qualityFactoryMapper.countQueryToCouponColumn();
|
| | | }
|
| | |
|
| | | |
| | | /**
|
| | | * 首页最底部@商品信息流
|
| | | */
|
| | | @Override
|
| | | public List<QualityFactory> listRecommend(long start, int count, Double proportion, Integer commision, Integer couponAmount,
|
| | | double tkRate, Double couponRatio) {
|
| | | return qualityFactoryMapper.listRecommendToIndex(start, count, proportion, commision, couponAmount, tkRate, couponRatio);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countRecommend(Double proportion, Integer commision, Integer couponAmount, double tkRate, Double couponRatio) {
|
| | | return qualityFactoryMapper.countRecommendToIndex(proportion, commision, couponAmount, tkRate, couponRatio);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public List<QualityFactory> listRecommendBykey(long start, int count, String key, Integer hasQuan,
|
| | | Integer userType, Double startprice, Double endprice, Double startTkRate, Double endTkRate, Integer sort) {
|
| | | return qualityFactoryMapper.listRecommendBykey(start, count, key, hasQuan, userType,
|
| | | startprice, endprice, startTkRate, endTkRate, sort);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countRecommendBykey(String key, Integer hasQuan, Integer userType,
|
| | | Double startprice, Double endprice, Double startTkRate, Double endTkRate) {
|
| | | return qualityFactoryMapper.countRecommendBykey(key, hasQuan, userType, startprice, endprice, startTkRate, endTkRate);
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 首页最底部@商品信息流
|
| | | */
|
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'listQueryToRecommend-'+#start+'-'+#proportion")
|
| | | public JSONArray getRecommendToIndex(long start, int count, String proportion) {
|
| | | |
| | | // 返利金额2元以上;
|
| | | Integer commision = 2; |
| | | // 优惠券面额高于5元以上
|
| | | Integer couponAmount = 5;
|
| | | // 佣金比例高的:5%以上;
|
| | | double tkRate = 5.0;
|
| | | // 优惠率高于10%以上(优惠率=优惠券面额/商品在售价*100%) |
| | | Double couponRatio = 10.0;
|
| | | |
| | | Double pop = 50.0;
|
| | | if (!StringUtil.isNullOrEmpty(proportion)) {
|
| | | pop = Double.parseDouble(proportion);
|
| | | }
|
| | | |
| | | List<QualityFactory> listQuery = |
| | | listRecommend(start, count, pop, commision, couponAmount, tkRate, couponRatio);
|
| | | |
| | | if (listQuery == null || listQuery.size() == 0) {
|
| | | return null;
|
| | | }
|
| | | |
| | | |
| | | JSONArray array = new JSONArray();
|
| | | Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
|
| | | //遍历列表数据 |
| | | for (QualityFactory quality : listQuery) {
|
| | |
|
| | | TaoBaoGoodsBrief taoBaoGoodsBrief = quality.getTaoBaoGoodsBrief();
|
| | |
|
| | | if (taoBaoGoodsBrief == null) {
|
| | | continue;
|
| | | }
|
| | |
|
| | | int biz30day = taoBaoGoodsBrief.getBiz30day();
|
| | | if (biz30day >= 10000) {
|
| | | double sales = biz30day;
|
| | | String salesCountMidea = String.format("%.1f", sales / 10000);
|
| | | taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万");
|
| | | } else {
|
| | | taoBaoGoodsBrief.setSalesCount(biz30day + "");
|
| | | }
|
| | | |
| | | // 改变图片尺寸 |
| | | String pictUrl = taoBaoGoodsBrief.getPictUrl();
|
| | | if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
|
| | | taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
|
| | | }
|
| | | |
| | | array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, null)));
|
| | | }
|
| | |
|
| | | return array;
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Cacheable(value = "qualityCache",key="'countRecommendToIndex-'+#proportion")
|
| | | public long countRecommendToIndex(String proportion) {
|
| | | |
| | | // 返利金额2元以上;
|
| | | Integer commision = 2; |
| | | // 优惠券面额高于5元以上
|
| | | Integer couponAmount = 5;
|
| | | // 佣金比例高的:5%以上;
|
| | | double tkRate = 5.0;
|
| | | // 优惠率高于10%以上(优惠率=优惠券面额/商品在售价*100%) |
| | | Double couponRatio = 10.0;
|
| | | |
| | | Double pop = 50.0;
|
| | | if (!StringUtil.isNullOrEmpty(proportion)) {
|
| | | pop = Double.parseDouble(proportion);
|
| | | }
|
| | | |
| | | 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());
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<QualityFactory> listFreeGoods(long start, int count, Double tkRate, String lableName) {
|
| | | return qualityFactoryMapper.listFreeGoods(start, count, tkRate, lableName);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long countFreeGoods(Double tkRate, String lableName) {
|
| | | return qualityFactoryMapper.countFreeGoods(tkRate, lableName);
|
| | | }
|
| | | |
| | | @Override
|
| | | public List<QualityFactory> listByShopId(long start, int count, Long shopId) {
|
| | | return qualityFactoryMapper.listByShopId(start, count, shopId);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long countByShopId(Long shopId) {
|
| | | return qualityFactoryMapper.countByShopId(shopId);
|
| | | }
|
| | | |
| | | }
|
| | | package com.yeshi.fanli.service.impl.lable; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.fanli.entity.SystemEnum; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.stereotype.Service; |
| | | import org.yeshi.utils.JsonUtil; |
| | | import org.yeshi.utils.taobao.TbImgUtil; |
| | | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper; |
| | | import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper; |
| | | import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO; |
| | | 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.goods.facade.entity.taobao.TaoBaoGoodsBrief; |
| | | import com.yeshi.fanli.service.inter.lable.QualityGoodsService; |
| | | import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService; |
| | | import com.yeshi.fanli.service.inter.order.config.HongBaoManageService; |
| | | import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService; |
| | | import com.yeshi.goods.facade.service.DaTaoKeGoodsDetailV2Service; |
| | | import com.yeshi.fanli.util.StringUtil; |
| | | import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory; |
| | | import com.yeshi.fanli.util.taobao.TaoBaoUtil; |
| | | import com.yeshi.fanli.vo.goods.GoodsDetailVO; |
| | | |
| | | import net.sf.json.JSONArray; |
| | | |
| | | @Service |
| | | public class QualityGoodsServiceImpl implements QualityGoodsService { |
| | | |
| | | @Resource |
| | | private QualityFactoryMapper qualityFactoryMapper; |
| | | |
| | | @Resource |
| | | private LabelGoodsMapper labelGoodsMapper; |
| | | |
| | | @Resource |
| | | private DaTaoKeGoodsDetailV2Service daTaoKeGoodsDetailV2Service; |
| | | |
| | | @Resource |
| | | private HongBaoManageService hongBaoManageService; |
| | | |
| | | @Resource |
| | | private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService; |
| | | |
| | | @Resource |
| | | private TaoBaoGoodsUpdateService taoBaoGoodsUpdateService; |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'listQueryByCouponAmount-'+#start+'-'+#key+'-'+#endAmount+'-'+#startPropor") |
| | | public List<QualityFactory> listQueryByCouponAmount(long start, int count, Integer key, Integer endAmount, |
| | | Integer startPropor) { |
| | | return qualityFactoryMapper.listQueryByCouponAmount(start, count, key, endAmount, startPropor); |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'countQueryByCouponAmount-'+#key+'-'+#endAmount+'-'+#startPropor") |
| | | public long countQueryByCouponAmount(Integer key, Integer endAmount, Integer startPropor) { |
| | | return qualityFactoryMapper.countQueryByCouponAmount(key, endAmount, startPropor); |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'listQueryByFlashSale-'+#start") |
| | | public List<QualityFactory> listQueryByFlashSale(long start, int count) { |
| | | return qualityFactoryMapper.listQueryByFlashSale(start, count); |
| | | } |
| | | |
| | | @Override |
| | | // @Cacheable(value = "qualityCache",key="'countQueryByFlashSale-'") |
| | | public long countQueryByFlashSale() { |
| | | return qualityFactoryMapper.countQueryByFlashSale(); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> listFlashSaleRandGoods() { |
| | | return qualityFactoryMapper.listFlashSaleRandGoods(); |
| | | } |
| | | |
| | | /** |
| | | * 小金额查询:9.9/19.9/29.9/49.9 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * 标签id |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Cacheable(value = "quality9K9Cache", key = "'get9k9ClassGoods-'+#start+'-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") |
| | | public List<QualityFactory> get9k9ClassGoods(long start, int count, Integer biz30day, BigDecimal zkPrice, |
| | | BigDecimal minQuanPrice, BigDecimal maxQuanPrice, String cids) { |
| | | return qualityFactoryMapper.get9k9ClassGoods(start, count, biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids); |
| | | } |
| | | |
| | | /** |
| | | * 对应小金额查询:9.9/19.9/29.9/49.9 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = "quality9K9Cache", key = "'count9k9ClassGoods-'+#biz30day+'-'+#zkPrice+'-'+#minQuanPrice+'-'+#maxQuanPrice+'-'+#cids") |
| | | public long count9k9ClassGoods(Integer biz30day, BigDecimal zkPrice, BigDecimal minQuanPrice, |
| | | BigDecimal maxQuanPrice, String cids) { |
| | | return qualityFactoryMapper.count9k9ClassGoods(biz30day, zkPrice, minQuanPrice, maxQuanPrice, cids); |
| | | } |
| | | |
| | | /** |
| | | * 查询标签 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param key |
| | | * @return |
| | | */ |
| | | public List<QualityFactory> listQueryByKeyAndlabIDs(long start, int count, String key, List<Long> listId, |
| | | Integer sort, Long systemCid, Integer hasQuan, Integer userType, Integer biz30day, Integer startprice, |
| | | Integer endprice) { |
| | | return qualityFactoryMapper.listQueryByKeyAndlabIDs(start, count, key, listId, sort, systemCid, hasQuan, |
| | | userType, biz30day, startprice, endprice); |
| | | } |
| | | |
| | | public long countQueryKeyAndlabIDs(String key, List<Long> listId, Long systemCid, Integer hasQuan, Integer userType, |
| | | Integer biz30day, Integer startprice, Integer endprice) { |
| | | return qualityFactoryMapper.countQueryKeyAndlabIDs(key, listId, systemCid, hasQuan, userType, biz30day, |
| | | startprice, endprice); |
| | | } |
| | | |
| | | /** |
| | | * 关键词搜索 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @param key |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<QualityFactory> listQueryByKey(long start, int count, String key, Integer sort, Long systemCid, |
| | | Integer hasQuan, Integer userType, Integer biz30day, Integer startprice, Integer endprice) { |
| | | return qualityFactoryMapper.listQueryByKey(start, count, key, sort, systemCid, hasQuan, userType, biz30day, |
| | | startprice, endprice); |
| | | } |
| | | |
| | | public long countQueryByKey(String key, Long systemCid, Integer hasQuan, Integer userType, Integer biz30day, |
| | | Integer startprice, Integer endprice) { |
| | | |
| | | return qualityFactoryMapper.countQueryByKey(key, systemCid, hasQuan, userType, biz30day, startprice, endprice); |
| | | } |
| | | |
| | | /** |
| | | * 一级分类查询精选库数据 |
| | | * |
| | | * @param start |
| | | * @param count |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'listQueryByClassId-'+#start+'-'+#cid") |
| | | public List<QualityFactory> listQueryByClassId(long start, int count, Long cid) { |
| | | List<QualityFactory> list = qualityFactoryMapper.listQuery(start, count, null, cid, null, null, 1); |
| | | |
| | | if (list == null) { |
| | | list = new ArrayList<QualityFactory>(); |
| | | } |
| | | |
| | | List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); |
| | | for (QualityFactory qf : list) |
| | | goodsList.add(qf.getTaoBaoGoodsBrief()); |
| | | // 过滤商品信息 |
| | | goodsList = taoBaoGoodsUpdateService.filterImportantTaoBaoGoods(goodsList); |
| | | goodsList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goodsList);// 过滤大淘客标题 |
| | | for (int i = 0; i < list.size(); i++) { |
| | | if (i < goodsList.size()) |
| | | list.get(i).setTaoBaoGoodsBrief(goodsList.get(i)); |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'countQueryClassId-'+#cid") |
| | | public long countQueryClassId(Long cid) { |
| | | return qualityFactoryMapper.countQuery(null, cid, null, null, 1); |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'listQueryByRebateAmount-'+#start+'-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") |
| | | public List<QualityFactory> listQueryByRebateAmount(long start, int count, String proportion, Integer startAmount, |
| | | Integer endAmount, double tkRate) { |
| | | return qualityFactoryMapper.listQueryByRebateAmount(start, count, proportion, startAmount, endAmount, tkRate); |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'countQueryByRebateAmount-'+#proportion+'-'+#endAmount+'-'+#endAmount+'-'+#tkRate") |
| | | public long countQueryByRebateAmount(String proportion, Integer startAmount, Integer endAmount, double tkRate) { |
| | | return qualityFactoryMapper.countQueryByRebateAmount(proportion, startAmount, endAmount, tkRate); |
| | | } |
| | | |
| | | @Override |
| | | // @Cacheable(value = "qualityCache",key="'queryToCouponColumn-'+#start") |
| | | @Cacheable(value = "taoBaoCouponCache", key = "'queryToCouponColumn'+#start") |
| | | public List<QualityFactory> queryToCouponColumn(long start, int count) { |
| | | return qualityFactoryMapper.queryToCouponColumn(start, count); |
| | | } |
| | | |
| | | @Override |
| | | // @Cacheable(value = "qualityCache",key="'countQueryToCouponColumn'") |
| | | @Cacheable(value = "taoBaoCouponCache", key = "'countQueryToCouponColumn'") |
| | | public long countQueryToCouponColumn() { |
| | | return qualityFactoryMapper.countQueryToCouponColumn(); |
| | | } |
| | | |
| | | /** |
| | | * 首页最底部@商品信息流 |
| | | */ |
| | | @Override |
| | | public List<QualityFactory> listRecommend(long start, int count, Double proportion, Integer commision, |
| | | Integer couponAmount, double tkRate, Double couponRatio) { |
| | | return qualityFactoryMapper.listRecommendToIndex(start, count, proportion, commision, couponAmount, tkRate, |
| | | couponRatio); |
| | | } |
| | | |
| | | @Override |
| | | public long countRecommend(Double proportion, Integer commision, Integer couponAmount, double tkRate, |
| | | Double couponRatio) { |
| | | return qualityFactoryMapper.countRecommendToIndex(proportion, commision, couponAmount, tkRate, couponRatio); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> listRecommendBykey(long start, int count, String key, Integer hasQuan, Integer userType, |
| | | Double startprice, Double endprice, Double startTkRate, Double endTkRate, Integer sort) { |
| | | return qualityFactoryMapper.listRecommendBykey(start, count, key, hasQuan, userType, startprice, endprice, |
| | | startTkRate, endTkRate, sort); |
| | | } |
| | | |
| | | @Override |
| | | public long countRecommendBykey(String key, Integer hasQuan, Integer userType, Double startprice, Double endprice, |
| | | Double startTkRate, Double endTkRate) { |
| | | return qualityFactoryMapper.countRecommendBykey(key, hasQuan, userType, startprice, endprice, startTkRate, |
| | | endTkRate); |
| | | } |
| | | |
| | | /** |
| | | * 首页最底部@商品信息流 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'listQueryToRecommend-'+#start+'-'+#proportion") |
| | | public JSONArray getRecommendToIndex(long start, int count, String proportion) { |
| | | |
| | | // 返利金额2元以上; |
| | | Integer commision = 2; |
| | | // 优惠券面额高于5元以上 |
| | | Integer couponAmount = 5; |
| | | // 佣金比例高的:5%以上; |
| | | double tkRate = 5.0; |
| | | // 优惠率高于10%以上(优惠率=优惠券面额/商品在售价*100%) |
| | | Double couponRatio = 10.0; |
| | | |
| | | Double pop = 50.0; |
| | | if (!StringUtil.isNullOrEmpty(proportion)) { |
| | | pop = Double.parseDouble(proportion); |
| | | } |
| | | |
| | | List<QualityFactory> listQuery = listRecommend(start, count, pop, commision, couponAmount, tkRate, couponRatio); |
| | | |
| | | if (listQuery == null || listQuery.size() == 0) { |
| | | return null; |
| | | } |
| | | |
| | | JSONArray array = new JSONArray(); |
| | | Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); |
| | | // 遍历列表数据 |
| | | // |
| | | List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); |
| | | for (QualityFactory quality : listQuery) { |
| | | if (quality.getTaoBaoGoodsBrief() != null) |
| | | goodsList.add(quality.getTaoBaoGoodsBrief()); |
| | | } |
| | | |
| | | try { |
| | | goodsList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goodsList); |
| | | } catch (Exception e) { |
| | | } |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { |
| | | int biz30day = taoBaoGoodsBrief.getBiz30day(); |
| | | if (biz30day >= 10000) { |
| | | double sales = biz30day; |
| | | String salesCountMidea = String.format("%.1f", sales / 10000); |
| | | taoBaoGoodsBrief.setSalesCount(salesCountMidea + "万"); |
| | | } else { |
| | | taoBaoGoodsBrief.setSalesCount(biz30day + ""); |
| | | } |
| | | |
| | | // 改变图片尺寸 |
| | | String pictUrl = taoBaoGoodsBrief.getPictUrl(); |
| | | if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) { |
| | | taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl)); |
| | | } |
| | | |
| | | array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, null))); |
| | | } |
| | | |
| | | return array; |
| | | } |
| | | |
| | | /** |
| | | * 首页最底部@商品信息流 |
| | | */ |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'getRecommendToIndexV2-'+#start+'-'+#platform+'-'+#version+'-'+#system") |
| | | public List<GoodsDetailVO> getRecommendToIndexV2(long start, int count, String platform, String version, SystemEnum system) { |
| | | |
| | | // 返利金额2元以上; |
| | | Integer commision = 2; |
| | | // 优惠券面额高于5元以上 |
| | | Integer couponAmount = 5; |
| | | // 佣金比例高的:5%以上; |
| | | double tkRate = 5.0; |
| | | // 优惠率高于10%以上(优惠率=优惠券面额/商品在售价*100%) |
| | | Double couponRatio = 10.0; |
| | | |
| | | BigDecimal fanLiRate = hongBaoManageService.getFanLiRate(system); |
| | | Double pop = 50.0; |
| | | if (fanLiRate != null) { |
| | | pop = Double.parseDouble(fanLiRate.toString()); |
| | | } |
| | | |
| | | List<QualityFactory> listQuery = listRecommend(start, count, pop, commision, couponAmount, tkRate, couponRatio); |
| | | |
| | | if (listQuery == null || listQuery.size() == 0) { |
| | | return null; |
| | | } |
| | | |
| | | List<GoodsDetailVO> voList=new ArrayList<>(); |
| | | Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create(); |
| | | // 遍历列表数据 |
| | | // |
| | | List<TaoBaoGoodsBrief> goodsList = new ArrayList<>(); |
| | | for (QualityFactory quality : listQuery) { |
| | | if (quality.getTaoBaoGoodsBrief() != null) |
| | | goodsList.add(quality.getTaoBaoGoodsBrief()); |
| | | } |
| | | |
| | | try { |
| | | goodsList = daTaoKeGoodsDetailV2Service.filterTaoBaoGoods(goodsList); |
| | | } catch (Exception e) { |
| | | } |
| | | |
| | | GoodsMoneyConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(platform, version,system); |
| | | |
| | | for (TaoBaoGoodsBrief taoBaoGoodsBrief : goodsList) { |
| | | GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO); |
| | | voList.add(detailVO); |
| | | } |
| | | |
| | | return voList; |
| | | } |
| | | |
| | | @Override |
| | | @Cacheable(value = "qualityCache", key = "'countRecommendToIndex-'+#proportion") |
| | | public long countRecommendToIndex(String proportion) { |
| | | |
| | | // 返利金额2元以上; |
| | | Integer commision = 2; |
| | | // 优惠券面额高于5元以上 |
| | | Integer couponAmount = 5; |
| | | // 佣金比例高的:5%以上; |
| | | double tkRate = 5.0; |
| | | // 优惠率高于10%以上(优惠率=优惠券面额/商品在售价*100%) |
| | | Double couponRatio = 10.0; |
| | | |
| | | Double pop = 50.0; |
| | | if (!StringUtil.isNullOrEmpty(proportion)) { |
| | | pop = Double.parseDouble(proportion); |
| | | } |
| | | |
| | | return countRecommend(pop, commision, couponAmount, tkRate, couponRatio); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> recommendByAuctionId(String auctionId) { |
| | | |
| | | List<String> list = new ArrayList<>(); |
| | | 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.getAuctionId()); |
| | | 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()); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> listFreeGoods(long start, int count) { |
| | | return qualityFactoryMapper.listFreeGoods(start, count); |
| | | } |
| | | |
| | | @Override |
| | | public long countFreeGoods() { |
| | | return qualityFactoryMapper.countFreeGoods(); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> listByShopId(long start, int count, Long shopId) { |
| | | return qualityFactoryMapper.listByShopId(start, count, shopId); |
| | | } |
| | | |
| | | @Override |
| | | public long countByShopId(Long shopId) { |
| | | return qualityFactoryMapper.countByShopId(shopId); |
| | | } |
| | | |
| | | @Override |
| | | public List<QualityFactory> listQueryEverydayRob(long start, int count, BigDecimal zkPrice, BigDecimal minQuanPrice, |
| | | BigDecimal maxQuanPrice) { |
| | | return qualityFactoryMapper.listQueryEverydayRob(start, count, zkPrice, minQuanPrice, maxQuanPrice); |
| | | } |
| | | |
| | | @Override |
| | | public long countQueryEverydayRob(BigDecimal zkPrice, BigDecimal minQuanPrice, BigDecimal maxQuanPrice) { |
| | | return qualityFactoryMapper.countQueryEverydayRob(zkPrice, minQuanPrice, maxQuanPrice); |
| | | } |
| | | } |