admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/lable/LabelGoodsServiceImpl.java
@@ -1,269 +1,268 @@
package com.yeshi.fanli.service.impl.lable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper;
import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper;
import com.yeshi.fanli.entity.bus.lable.Label;
import com.yeshi.fanli.entity.bus.lable.LabelGoods;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.quality.LabelClassException;
import com.yeshi.fanli.exception.goods.quality.LabelGoodsException;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.lable.LabelGoodsService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.util.RedisManager;
@Service
public class LabelGoodsServiceImpl implements LabelGoodsService {
   @Resource
   private RedisManager redisManager;
   @Resource
   private LabelGoodsMapper labelGoodsMapper;
   @Resource
   private QualityFactoryMapper selectionGoodsMapper;
   @Resource
   private LabelService labelService;
   @Resource
   private LabelGoodsService LabelGoodsService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Override
   public int insertSelective(LabelGoods record) throws LabelGoodsException{
      return labelGoodsMapper.insertSelective(record);
   }
   @Override
   public int deleteByPrimaryKey(Long id) throws LabelGoodsException{
      return labelGoodsMapper.deleteByPrimaryKey(id);
   }
   @Override
   @Transactional
   public int deleteBatchById(long[] ids) throws LabelGoodsException{
      return labelGoodsMapper.deleteBatchByPrimaryKey(ids);
   }
   @Override
   @Transactional
   public void deleteByGoodsId(List<String> ids) throws LabelGoodsException {
      if (ids != null && ids.size() > 0) {
         for (String gid: ids) {
            Long goodsId = Long.parseLong(gid);
            labelGoodsMapper.deleteByGoodsId(goodsId);
         }
      }
   }
   /**
    * 删除该商品的对应标签
    * @param goodsId
    * @param labId
    * @return
    */
   @Override
   public   int deleteByGoodsIdAndLabId(Long goodsId, Long labId){
      return  labelGoodsMapper.deleteByGoodsIdAndLabId(goodsId, labId);
   }
   @Override
   public LabelGoods selectByPrimaryKey(Long id) throws LabelGoodsException{
      return labelGoodsMapper.selectByPrimaryKey(id);
   }
   @Override
   public Long getRelationNum(Long labelId) throws LabelGoodsException{
      return labelGoodsMapper.getRelationNum(labelId);
   }
   @Override
   public List<LabelGoods> queryByGoodsId(int start, int count, Long goodsId) throws LabelClassException {
      return labelGoodsMapper.queryByGoodsId(start, count, goodsId);
   }
   @Override
   public   int getCountQueryByGoodsId(Long goodsId){
      return labelGoodsMapper.getCountQueryByGoodsId(goodsId);
   }
   @Override
   public int getCountByGoodsId(Long goodsId){
      return labelGoodsMapper.getCountByGoodsId(goodsId);
   }
   /**
    * 判断  此商品已已贴此标签
    * @param goodsId
    * @param labId
    * @return
    */
   @Override
   public   Long isExistence(Long goodsId, Long labId){
      return  labelGoodsMapper.isExistence(goodsId, labId);
   }
   @Override
   @Transactional
   public void addBatchByLabId(TaoBaoGoodsBrief taoBaoGoodsBrief, List<String> labIdList, AdminUser admin) throws Exception {
      List<LabelGoods> addList  = new ArrayList<LabelGoods>();
      for (String labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(Long.parseLong(labId));
         if (label == null) {
            continue;
         }
         LabelGoods labelGoods = new LabelGoods();
         labelGoods.setLabel(label);
         labelGoods.setCreateUser(admin);
         labelGoods.setCreatetime(new Date());
         labelGoods.setTaoBaoGoodsBrief(taoBaoGoodsBrief);
         addList.add(labelGoods);
      }
      if (addList.size() > 0) {
         labelGoodsMapper.insertBatch(addList);
      }
   }
   @Override
   @Transactional
   public void batchGoodsAddLables(List<Long> goodsIdList, List<Long> labIdList, AdminUser admin) throws Exception {
      /* 商品id 为空  不处理   */
      if (goodsIdList == null || goodsIdList.size() == 0) {
         return;
      }
      /* 标签id为空     不处理   */
      if (labIdList == null || labIdList.size() == 0) {
         return;
      }
      /*
      for (Long goodsId: goodsIdList) {
         // 全部清空
         labelGoodsMapper.deleteByGoodsId(goodsId);
      }*/
      /* 去掉重复标签   */
       HashSet<Long> h = new HashSet<Long>(labIdList);
       labIdList.clear();
       labIdList.addAll(h);
       /* 标签id不为空   开始对每个商品贴上标签   */
      for (Long labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(labId);
         if (label == null) {
            continue;
         }
         for (Long goodsId: goodsIdList) {
            TaoBaoGoodsBrief goodsBrief =  taoBaoGoodsBriefService.selectByPrimaryKey(goodsId);
            if (goodsBrief != null) {
               /*  贴上标签 : 已贴不处理则   */
               Long existence = labelGoodsMapper.isExistence(goodsId, labId);
               // 该商品不存在此标签则添加, 反之不做处理
               if (existence == null || existence == 0l) {
                  // 贴上新标签
                  LabelGoods  lg = new LabelGoods();
                  lg.setLabel(label);
                  lg.setCreateUser(admin);
                  lg.setCreatetime(new Date());
                  lg.setTaoBaoGoodsBrief(goodsBrief);
                  labelGoodsMapper.insertSelective(lg);
               }
            }
         }
      }
   }
   @Override
   @Transactional
   public void singleGoodsAddLables(Long goodsId, List<Long> labIdList, AdminUser admin) throws Exception {
      /* 商品id 为空  不处理   */
      if (goodsId == null) {
         return;
      }
      // 全部清空
      labelGoodsMapper.deleteByGoodsId(goodsId);
      /* 标签id为空     不处理   */
      if (labIdList == null || labIdList.size() == 0) {
         return;
      }
      TaoBaoGoodsBrief goodsBrief =  taoBaoGoodsBriefService.selectByPrimaryKey(goodsId);
      if (goodsBrief == null) {
         return;
      }
      /* 去掉重复标签   */
       HashSet<Long> h = new HashSet<Long>(labIdList);
       labIdList.clear();
       labIdList.addAll(h);
       /* 标签id不为空   开始对每个商品贴上标签   */
      for (Long labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(labId);
         if (label == null) {
            continue;
         }
         // 贴上新标签
         LabelGoods  lg = new LabelGoods();
         lg.setLabel(label);
         lg.setCreateUser(admin);
         lg.setCreatetime(new Date());
         lg.setTaoBaoGoodsBrief(goodsBrief);
         labelGoodsMapper.insertSelective(lg);
      }
   }
}
package com.yeshi.fanli.service.impl.lable;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.lable.LabelGoodsMapper;
import com.yeshi.fanli.dao.mybatis.lable.QualityFactoryMapper;
import com.yeshi.fanli.entity.bus.lable.Label;
import com.yeshi.fanli.entity.bus.lable.LabelGoods;
import com.yeshi.fanli.entity.common.AdminUser;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.goods.quality.LabelClassException;
import com.yeshi.fanli.exception.goods.quality.LabelGoodsException;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.lable.LabelGoodsService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.util.RedisManager;
@Service
public class LabelGoodsServiceImpl implements LabelGoodsService {
   @Resource
   private RedisManager redisManager;
   @Resource
   private LabelGoodsMapper labelGoodsMapper;
   @Resource
   private QualityFactoryMapper selectionGoodsMapper;
   @Resource
   private LabelService labelService;
   @Resource
   private LabelGoodsService LabelGoodsService;
   @Resource
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Override
   public int insertSelective(LabelGoods record) throws LabelGoodsException{
      return labelGoodsMapper.insertSelective(record);
   }
   @Override
   public int deleteByPrimaryKey(Long id) throws LabelGoodsException{
      return labelGoodsMapper.deleteByPrimaryKey(id);
   }
   @Override
   @Transactional(rollbackFor=Exception.class)
   public int deleteBatchById(long[] ids) throws LabelGoodsException{
      return labelGoodsMapper.deleteBatchByPrimaryKey(ids);
   }
   @Override
   @Transactional(rollbackFor=Exception.class)
   public void deleteByGoodsId(List<String> ids) throws LabelGoodsException {
      if (ids != null && ids.size() > 0) {
         for (String gid: ids) {
            labelGoodsMapper.deleteByGoodsId(gid);
         }
      }
   }
   /**
    * 删除该商品的对应标签
    * @param goodsId
    * @param labId
    * @return
    */
   @Override
   public   int deleteByGoodsIdAndLabId(String goodsId, Long labId){
      return  labelGoodsMapper.deleteByGoodsIdAndLabId(goodsId, labId);
   }
   @Override
   public LabelGoods selectByPrimaryKey(Long id) throws LabelGoodsException{
      return labelGoodsMapper.selectByPrimaryKey(id);
   }
   @Override
   public Long getRelationNum(Long labelId) throws LabelGoodsException{
      return labelGoodsMapper.getRelationNum(labelId);
   }
   @Override
   public List<LabelGoods> queryByGoodsId(int start, int count, String goodsId) throws LabelClassException {
      return labelGoodsMapper.queryByGoodsId(start, count, goodsId);
   }
   @Override
   public   int getCountQueryByGoodsId(String goodsId){
      return labelGoodsMapper.getCountQueryByGoodsId(goodsId);
   }
   @Override
   public int getCountByGoodsId(String goodsId){
      return labelGoodsMapper.getCountByGoodsId(goodsId);
   }
   /**
    * 判断  此商品已已贴此标签
    * @param goodsId
    * @param labId
    * @return
    */
   @Override
   public   Long isExistence(String goodsId, Long labId){
      return  labelGoodsMapper.isExistence(goodsId, labId);
   }
   @Override
   @Transactional(rollbackFor=Exception.class)
   public void addBatchByLabId(TaoBaoGoodsBrief taoBaoGoodsBrief, List<String> labIdList, AdminUser admin) throws Exception {
      List<LabelGoods> addList  = new ArrayList<LabelGoods>();
      for (String labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(Long.parseLong(labId));
         if (label == null) {
            continue;
         }
         LabelGoods labelGoods = new LabelGoods();
         labelGoods.setLabel(label);
         labelGoods.setCreateUser(admin);
         labelGoods.setCreatetime(new Date());
         labelGoods.setTaoBaoGoodsBrief(taoBaoGoodsBrief);
         addList.add(labelGoods);
      }
      if (addList.size() > 0) {
         labelGoodsMapper.insertBatch(addList);
      }
   }
   @Override
   @Transactional(rollbackFor=Exception.class)
   public void batchGoodsAddLables(List<String> goodsIdList, List<Long> labIdList, AdminUser admin) throws Exception {
      /* 商品id 为空  不处理   */
      if (goodsIdList == null || goodsIdList.size() == 0) {
         return;
      }
      /* 标签id为空     不处理   */
      if (labIdList == null || labIdList.size() == 0) {
         return;
      }
      /*
      for (Long goodsId: goodsIdList) {
         // 全部清空
         labelGoodsMapper.deleteByGoodsId(goodsId);
      }*/
      /* 去掉重复标签   */
       HashSet<Long> h = new HashSet<Long>(labIdList);
       labIdList.clear();
       labIdList.addAll(h);
       /* 标签id不为空   开始对每个商品贴上标签   */
      for (Long labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(labId);
         if (label == null) {
            continue;
         }
         for (String goodsId: goodsIdList) {
            TaoBaoGoodsBrief goodsBrief =  taoBaoGoodsBriefService.selectByGoodsId(goodsId);
            if (goodsBrief != null) {
               /*  贴上标签 : 已贴不处理则   */
               Long existence = labelGoodsMapper.isExistence(goodsId, labId);
               // 该商品不存在此标签则添加, 反之不做处理
               if (existence == null || existence == 0l) {
                  // 贴上新标签
                  LabelGoods  lg = new LabelGoods();
                  lg.setLabel(label);
                  lg.setCreateUser(admin);
                  lg.setCreatetime(new Date());
                  lg.setTaoBaoGoodsBrief(goodsBrief);
                  labelGoodsMapper.insertSelective(lg);
               }
            }
         }
      }
   }
   @Override
   @Transactional(rollbackFor=Exception.class)
   public void singleGoodsAddLables(String goodsId, List<Long> labIdList, AdminUser admin) throws Exception {
      /* 商品id 为空  不处理   */
      if (goodsId == null) {
         return;
      }
      // 全部清空
      labelGoodsMapper.deleteByGoodsId(goodsId);
      /* 标签id为空     不处理   */
      if (labIdList == null || labIdList.size() == 0) {
         return;
      }
      TaoBaoGoodsBrief goodsBrief =  taoBaoGoodsBriefService.selectByGoodsId(goodsId);
      if (goodsBrief == null) {
         return;
      }
      /* 去掉重复标签   */
       HashSet<Long> h = new HashSet<Long>(labIdList);
       labIdList.clear();
       labIdList.addAll(h);
       /* 标签id不为空   开始对每个商品贴上标签   */
      for (Long labId: labIdList) {
         Label label = labelService.selectByPrimaryKey(labId);
         if (label == null) {
            continue;
         }
         // 贴上新标签
         LabelGoods  lg = new LabelGoods();
         lg.setLabel(label);
         lg.setCreateUser(admin);
         lg.setCreatetime(new Date());
         lg.setTaoBaoGoodsBrief(goodsBrief);
         labelGoodsMapper.insertSelective(lg);
      }
   }
}