package com.yeshi.fanli.goods.service.impl.label;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashSet;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
import javax.transaction.Transactional;
|
|
import org.fanli.facade.goods.entity.label.Label;
|
import org.fanli.facade.goods.entity.label.LabelGoods;
|
import org.fanli.facade.goods.exception.clazz.LabelClassException;
|
import org.fanli.facade.goods.exception.taobao.LabelGoodsException;
|
import org.fanli.facade.goods.service.label.LabelGoodsService;
|
import org.fanli.facade.goods.service.label.LabelService;
|
import org.fanli.facade.goods.service.taobao.TaoBaoGoodsBriefService;
|
import org.fanli.facade.goods.utils.RedisGoodsManager;
|
|
import com.alibaba.dubbo.config.annotation.Service;
|
import com.yeshi.fanli.base.entity.admin.AdminUser;
|
import com.yeshi.fanli.base.entity.goods.TaoBaoGoodsBrief;
|
import com.yeshi.fanli.goods.dao.label.LabelGoodsMapper;
|
import com.yeshi.fanli.goods.dao.quality.QualityFactoryMapper;
|
|
@Service(version = "1.0.0")
|
public class LabelGoodsServiceImpl implements LabelGoodsService {
|
|
@Resource
|
private RedisGoodsManager 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);
|
}
|
}
|
|
}
|
|