package com.matrix.system.hive.service.imp; import java.util.List; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.PaginationVO; import com.matrix.core.tools.WebUtil; import com.matrix.system.common.bean.SysCompany; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.dao.SysCompanyDao; import com.matrix.system.common.dao.UtilDao; import com.matrix.system.common.tools.ServiceUtil; import com.matrix.system.constance.TableMapping; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; import com.matrix.system.hive.service.SysShopInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * * * @date 2016-07-03 20:53 */ @Service("sysShopInfoService") public class SysShopInfoServiceImpl implements SysShopInfoService { @Autowired private ServiceUtil serviceUtil; @Autowired private UtilDao utilDao; @Autowired private SysShopInfoDao sysShopInfoDao; @Autowired private SysCompanyDao sysCompanyDao; public static final String TABLE_NAME = "sys_shop_info"; @Override public int add(SysShopInfo sysShopInfo) { // 校验去重 if (serviceUtil.addCheckRepeat(TABLE_NAME, "SHOP_NO", sysShopInfo.getShopNo())) { throw new GlobleException("编号重复"); } //校验店铺数量 SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); SysCompany company = sysCompanyDao.selectById(user.getCompanyId()); List list = sysShopInfoDao.selectShopInfo(user.getCompanyId()); if (company.getComAge() != null) { if (company.getComAge() <= list.size()) { throw new GlobleException("店铺数量达到最大值"); } } else { throw new GlobleException("店铺数量异常"); } sysShopInfo.setCompanyId(user.getCompanyId()); sysShopInfo.setShopType(SysShopInfo.SHOP_TYPE_MENDIAN); return sysShopInfoDao.insert(sysShopInfo); } @Override public int modify(SysShopInfo sysShopInfo) { // 校验去重 if (serviceUtil.updateCheckRepeat(TABLE_NAME, "SHOP_NO", sysShopInfo.getShopNo(), "ID", sysShopInfo.getId())) { throw new GlobleException("编号重复"); } return sysShopInfoDao.update(sysShopInfo); } @Override @Transactional(rollbackFor = Exception.class) public int remove(List list) { int count =0; for (Long id : list) { count ++; remove(id); } return count; } @Override public int removeById(Long id) { return remove(id); } private int remove(Long id){ if(utilDao.selectCount(TableMapping.SYS_ALLOTTED_INFO, "ALLOTTED_INSTORE_ID", id+"")>0){ throw new GlobleException("门店已产生调拨记录,不能被删除!"); } if(utilDao.selectCount(TableMapping.SYS_ORDER, "SHOP_ID", id+"")>0){ throw new GlobleException("门店已产生销售记录,不能被删除!"); } return sysShopInfoDao.deleteById(id); } @Override public List findInPage(SysShopInfo sysShopInfo, PaginationVO pageVo) { return sysShopInfoDao.selectInPage(sysShopInfo, pageVo); } @Override public List findByModel(SysShopInfo sysShopInfo) { return sysShopInfoDao.selectByModel(sysShopInfo); } @Override public int findTotal(SysShopInfo sysShopInfo) { return sysShopInfoDao.selectTotalRecord(sysShopInfo); } @Override public SysShopInfo findById(Long id) { return sysShopInfoDao.selectById(id); } /** * 查询非商城店铺 总店 */ @Override public List findShopInfos(Long companyId) { return sysShopInfoDao.selectShopInfo(companyId); } }