package com.yeshi.fanli.service.impl.clazz;
|
|
import java.util.Calendar;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.yeshi.fanli.dao.mybatis.clazz.GoodsSubClassLabelMapMapper;
|
import com.yeshi.fanli.dao.mybatis.clazz.GoodsSubClassLabelMapper;
|
import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
|
import com.yeshi.fanli.entity.bus.clazz.GoodsSubClassLabel;
|
import com.yeshi.fanli.entity.bus.clazz.GoodsSubClassLabelMap;
|
import com.yeshi.fanli.exception.GoodsClassException;
|
import com.yeshi.fanli.service.inter.clazz.GoodsSubClassLabelService;
|
import com.yeshi.fanli.util.StringUtil;
|
import com.yeshi.fanli.vo.goods.GoodsSubClassLabelVO;
|
|
@Service
|
public class GoodsSubClassLabelServiceImpl implements GoodsSubClassLabelService {
|
|
@Resource
|
private GoodsSubClassLabelMapper goodsSubClassLabelMapper;
|
|
@Resource
|
private GoodsSubClassLabelMapMapper goodsSubClassLabelMapMapper;
|
|
@Override
|
public void addSubClassLabel(GoodsSubClassLabel label) throws GoodsClassException {
|
|
if (label == null || label.getGoodsClass() == null || StringUtil.isNullOrEmpty(label.getName()))
|
throw new GoodsClassException(1, "数据不完整");
|
GoodsSubClassLabel oldLabel = goodsSubClassLabelMapper.selectByClassIdAndName(label.getName(),
|
label.getGoodsClass().getId());
|
if (oldLabel != null)
|
throw new GoodsClassException(2, "分类标签名称已经存在");
|
label.setCreateTime(new Date());
|
goodsSubClassLabelMapper.insertSelective(label);
|
}
|
|
@Override
|
public void addSubClassLabelMap(GoodsSubClassLabelMap map) throws GoodsClassException {
|
if (map.getGoodsSubClass() == null || map.getLabel() == null)
|
throw new GoodsClassException(1, "数据不完整");
|
|
GoodsSubClassLabelMap oldMap = goodsSubClassLabelMapMapper.selectByLabelIdAndSubClassId(map.getLabel().getId(),
|
map.getGoodsSubClass().getId());
|
if (oldMap != null)
|
throw new GoodsClassException(2, "对应关系已经存在");
|
// 通过subClassId查询
|
|
GoodsSubClassLabelMap omap = goodsSubClassLabelMapMapper.selectBySubClassId(map.getGoodsSubClass().getId());
|
if (omap != null)
|
goodsSubClassLabelMapMapper.deleteByPrimaryKey(omap.getId());
|
|
map.setCreateTime(new Date());
|
goodsSubClassLabelMapMapper.insertSelective(map);
|
}
|
|
@Override
|
public List<GoodsSubClassLabel> listLabelByClassId(Long classId) {
|
|
return goodsSubClassLabelMapper.listByClassId(classId);
|
}
|
|
@Override
|
public List<GoodsSubClassLabelMap> listMapByLabelId(Long labelId) {
|
return goodsSubClassLabelMapMapper.listMapByLabelId(labelId);
|
}
|
|
@Transactional
|
@Override
|
public void deleteLabel(Long labelId) {
|
|
List<GoodsSubClassLabelMap> maplist = listMapByLabelId(labelId);
|
if (maplist != null)
|
for (GoodsSubClassLabelMap map : maplist) {
|
goodsSubClassLabelMapMapper.deleteByPrimaryKey(map.getId());
|
}
|
goodsSubClassLabelMapper.deleteByPrimaryKey(labelId);
|
}
|
|
@Override
|
public void updateSubClassLabel(GoodsSubClassLabel label) {
|
goodsSubClassLabelMapper.updateByPrimaryKeySelective(label);
|
}
|
|
@Override
|
public GoodsSubClassLabelMap selectBySubClassId(Long subClassId) {
|
return goodsSubClassLabelMapMapper.selectBySubClassId(subClassId);
|
}
|
|
@Override
|
@Cacheable(value = "classCache", key = "'listSubMapCache-'+#classId")
|
public List<GoodsSubClassLabelVO> listSubMapCache(Long classId) {
|
List<GoodsSubClassLabelVO> list = goodsSubClassLabelMapper.listSubMapByClassId(classId,
|
Calendar.getInstance().get(Calendar.MONTH) + 1);
|
if (list == null || list.size() == 0) {
|
return list;
|
}
|
|
for (int i = 0; i < list.size(); i++) {
|
GoodsSubClassLabelVO labelVO = list.get(i);
|
List<GoodsSubClass> listSub = labelVO.getListSub();
|
if (listSub == null || listSub.size() == 0) {
|
list.remove(labelVO);
|
i--;
|
continue;
|
}
|
|
for (GoodsSubClass goodsSubClass : listSub) {
|
String pictureSecond = goodsSubClass.getPictureSecond();
|
if (!StringUtil.isNullOrEmpty(pictureSecond)) {
|
goodsSubClass.setPicture(pictureSecond);
|
}
|
}
|
|
labelVO.setListSub(listSub);
|
}
|
return list;
|
}
|
|
}
|