package com.yeshi.fanli.service.impl.brand;
|
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.brand.BrandClassMapper;
|
import com.yeshi.fanli.entity.brand.BrandClass;
|
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
|
import com.yeshi.fanli.exception.brand.BrandClassException;
|
import com.yeshi.fanli.service.inter.brand.BrandClassService;
|
import com.yeshi.fanli.service.inter.brand.BrandClassShopService;
|
import com.yeshi.fanli.service.inter.goods.GoodsClassService;
|
|
@Service
|
public class BrandClassServiceImpl implements BrandClassService {
|
|
@Resource
|
private BrandClassMapper brandClassMapper;
|
|
@Resource
|
private GoodsClassService goodsClassService;
|
|
@Resource
|
private BrandClassShopService brandClassShopService;
|
|
|
@Override
|
public BrandClass selectByPrimaryKey(Long id) {
|
return brandClassMapper.selectByPrimaryKey(id);
|
}
|
|
|
@Override
|
public List<BrandClass> listEffective() {
|
return brandClassMapper.listEffective();
|
}
|
|
|
@Override
|
@Cacheable(value = "brandCache", key = "'listBrandClassEffectiveCache'")
|
public List<BrandClass> listBrandClassEffectiveCache() {
|
return brandClassMapper.listEffective();
|
}
|
|
|
@Override
|
public void saveObject(BrandClass record) throws BrandClassException, Exception{
|
Long gcid = record.getGcid();
|
if (gcid != null)
|
record.setGoodsClass(new GoodsClass(gcid));
|
|
String name = record.getName();
|
if (name == null || name.trim().length() == 0)
|
throw new BrandClassException(1, "名称和分类不能同时为空");
|
|
Integer state = record.getState();
|
if (state == null)
|
record.setState(0);
|
|
record.setUpdateTime(new Date());
|
|
Long id = record.getId();
|
if (id == null) {
|
record.setOrderBy(brandClassMapper.getMaxOrder() + 1);
|
record.setCreateTime(new Date());
|
brandClassMapper.insert(record);
|
} else {
|
BrandClass resultObj = brandClassMapper.selectByPrimaryKey(id);
|
if (resultObj == null)
|
throw new BrandClassException(1, "修改内容已不存在");
|
record.setOrderBy(resultObj.getOrderBy());
|
record.setCreateTime(resultObj.getCreateTime());
|
brandClassMapper.updateByPrimaryKey(record);
|
}
|
}
|
|
|
@Override
|
public void switchState(Long id) throws BrandClassException {
|
if (id == null) {
|
throw new BrandClassException(1, "请传递正确参数");
|
}
|
BrandClass resultObj = brandClassMapper.selectByPrimaryKey(id);
|
if (resultObj == null) {
|
throw new BrandClassException(1, "此内容已不存在");
|
}
|
|
Integer state = resultObj.getState();
|
if (state == null || state == 0) {
|
state = 1;
|
} else {
|
state = 0;
|
}
|
|
BrandClass updateObj = new BrandClass();
|
updateObj.setId(id);
|
updateObj.setState(state);
|
brandClassMapper.updateByPrimaryKeySelective(updateObj);
|
}
|
|
|
|
@Override
|
public void updateOrder(Long id, Integer moveType) throws BrandClassException, Exception{
|
if (moveType == null || (!moveType.equals(1) && !moveType.equals(-1)))
|
throw new BrandClassException(1, "传递的类型不正确");
|
|
if (id == null)
|
throw new BrandClassException(1, "ID不能为空");
|
|
BrandClass resultObj = brandClassMapper.selectByPrimaryKey(id);
|
if (resultObj == null)
|
throw new BrandClassException(1, "操作数据已不存在");
|
|
Integer oldOrder = resultObj.getOrderBy();
|
BrandClass changeObj = brandClassMapper.getByAdjoinOrder(oldOrder, moveType);
|
|
if (changeObj == null )
|
throw new BrandClassException(1, "已经在最边缘,无可交换的位置");
|
|
// 交换排序序号
|
resultObj.setOrderBy(changeObj.getOrderBy());
|
changeObj.setOrderBy(oldOrder);
|
|
brandClassMapper.updateByPrimaryKeySelective(changeObj);
|
brandClassMapper.updateByPrimaryKeySelective(resultObj);
|
}
|
|
|
@Override
|
public int deleteBatchByPrimaryKey(List<Long> list) {
|
return brandClassMapper.deleteBatchByPrimaryKey(list);
|
}
|
|
|
@Override
|
public List<BrandClass> listQuery(long start, int count, String key, Integer state) {
|
List<BrandClass> listQuery = brandClassMapper.listQuery(start, count, key, state);
|
if (listQuery == null || listQuery.size() == 0) {
|
return listQuery;
|
}
|
|
for (BrandClass brandClass : listQuery) {
|
GoodsClass goodsClass = brandClass.getGoodsClass();
|
if (goodsClass != null) {
|
GoodsClass baseClass = goodsClassService.selectByPrimaryKey(goodsClass.getId());
|
if(baseClass != null) {
|
brandClass.setGcid(goodsClass.getId());
|
brandClass.setGcName(baseClass.getName());
|
}
|
}
|
}
|
return listQuery;
|
}
|
|
|
@Override
|
public long countQuery(String key, Integer state) {
|
return brandClassMapper.countQuery(key, state);
|
}
|
|
|
|
|
|
}
|