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 javax.transaction.Transactional;
|
|
import org.springframework.stereotype.Service;
|
|
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.bus.lable.QualityFactory;
|
import com.yeshi.fanli.entity.common.AdminUser;
|
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
|
import com.yeshi.fanli.exception.LabelClassException;
|
import com.yeshi.fanli.exception.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 insert(LabelGoods record) throws LabelGoodsException{
|
return labelGoodsMapper.insert(record);
|
}
|
|
|
@Override
|
public int updateByPrimaryKey(LabelGoods record) throws LabelGoodsException{
|
// TODO Auto-generated method stub
|
return labelGoodsMapper.updateByPrimaryKey(record);
|
}
|
|
@Override
|
public int updateByPrimaryKeySelective(LabelGoods record) throws LabelGoodsException{
|
// TODO Auto-generated method stub
|
return labelGoodsMapper.updateByPrimaryKeySelective(record);
|
}
|
|
@Override
|
public int deleteByPrimaryKey(Long id) throws LabelGoodsException{
|
// TODO Auto-generated method stub
|
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{
|
// TODO Auto-generated method stub
|
return labelGoodsMapper.selectByPrimaryKey(id);
|
}
|
|
@Override
|
public Long getRelationNum(Long labelId) throws LabelGoodsException{
|
return labelGoodsMapper.getRelationNum(labelId);
|
}
|
|
|
|
|
|
@Override
|
@Transactional
|
public void setGoodsLabel(String [] arrtitle, List<String> auctionIdList, AdminUser admin) throws Exception{
|
// TODO Auto-generated method stub
|
Date nowTime = new Date();
|
for (String title: arrtitle) {
|
/* 遍历标签名称:查询数据库中是否已存在 */
|
Label label = null;
|
List<Label> labels = labelService.selectByTitle(title.trim());
|
if (labels == null || labels.size() == 0) {
|
label = labels.get(0);
|
} else {
|
// 新增
|
label = new Label();
|
label.setTitle(title);// 名称
|
label.setEntrymode(Label.MODE_EXCEL); // 批量录入
|
label.setCreatetime(nowTime);
|
label.setUpdatetime(nowTime);
|
label.setCreateUser(admin);
|
label.setIosClick(0l);
|
label.setAndroidClick(0l);
|
labelService.insertSelective(label);
|
}
|
|
|
|
/* 各个商品贴上标签 */
|
for (String id: auctionIdList) {
|
long gid = Long.parseLong(id);
|
TaoBaoGoodsBrief goodsBrief = taoBaoGoodsBriefService.selectByPrimaryKey(Long.parseLong(id));
|
|
if (goodsBrief != null) {
|
/* 贴上标签 : 已贴不处理则 */
|
Long existence = labelGoodsMapper.isExistence(gid, label.getId());
|
|
// 该商品不存在此标签则添加, 反之不做处理
|
if (existence == null || existence == 0l) {
|
// 贴上新标签
|
LabelGoods lg = new LabelGoods();
|
lg.setLabel(label);
|
lg.setCreateUser(admin);
|
lg.setCreatetime(nowTime);
|
lg.setTaoBaoGoodsBrief(goodsBrief);
|
labelGoodsMapper.insertSelective(lg);
|
}
|
}
|
|
}
|
|
}
|
|
}
|
|
|
@Override
|
@Transactional
|
public void addBatchRandom(String[] arrtitle, List<String> idList, AdminUser admin,
|
Integer weight, Integer weightSmall, Integer weightLarge) throws Exception{
|
|
// 默认 50
|
int resultWeight = 50;
|
|
if (weight != null) {
|
resultWeight = weight;
|
} else {
|
if (weightSmall != null && weightLarge != null) {
|
resultWeight = weightSmall + (int)(Math.random() * ((weightLarge - weightSmall) + 1));
|
}
|
}
|
|
|
Date nowTime = new Date();
|
|
for (String title: arrtitle) {
|
/* 遍历标签名称:查询数据库中是否已存在 */
|
Label label = null;
|
|
List<Label> labels = labelService.selectByTitle(title.trim());
|
if (labels == null || labels.size() == 0) {
|
label = labels.get(0);
|
} else {
|
// 新增
|
label = new Label();
|
label.setTitle(title);// 名称
|
label.setEntrymode(Label.MODE_EXCEL); // 批量录入
|
label.setCreatetime(nowTime);
|
label.setUpdatetime(nowTime);
|
label.setCreateUser(admin);
|
label.setIosClick(0l);
|
label.setAndroidClick(0l);
|
labelService.insertSelective(label);
|
}
|
|
|
for (String sid: idList) {
|
|
Long selectId = Long.parseLong(sid);
|
|
QualityFactory selectionGoods = selectionGoodsMapper.selectByPrimaryKey(selectId);
|
|
if (selectionGoods == null ) {
|
continue;
|
}
|
|
TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
|
if (taoBaoGoodsBrief == null ) {
|
continue;
|
}
|
|
/* 贴上标签 : 已贴不处理则 */
|
Long existence = labelGoodsMapper.isExistence(taoBaoGoodsBrief.getId(), label.getId());
|
|
// 该商品不存在此标签则添加, 反之不做处理
|
if (existence == null || existence == 0l) {
|
// 贴上新标签
|
LabelGoods lg = new LabelGoods();
|
lg.setLabel(label);
|
lg.setCreateUser(admin);
|
lg.setCreatetime(nowTime);
|
lg.setTaoBaoGoodsBrief(taoBaoGoodsBrief);
|
labelGoodsMapper.insertSelective(lg);
|
}
|
|
// 修改权重
|
selectionGoods.setUpdateUser(admin);
|
selectionGoods.setUpdatetime(nowTime);
|
selectionGoods.setWeight(resultWeight);
|
selectionGoodsMapper.insertSelective(selectionGoods);
|
}
|
|
}
|
|
}
|
|
|
@Override
|
public List<LabelGoods> queryByGoodsId(int start, int count, Long goodsId) throws LabelClassException {
|
// TODO Auto-generated method stub
|
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);
|
}
|
|
}
|
|
|
}
|
|