Commit ba6af14b by zhiwj

门店品牌

parent 4cbf1dc9
package com.gic.store.dto;
import java.io.Serializable;
import java.util.Date;
/**
* @author zhiwj
......@@ -8,4 +9,157 @@ import java.io.Serializable;
*/
public class StoreBrandDTO implements Serializable {
private static final long serialVersionUID = -1958432666455074669L;
/**
*
*/
private Integer storeBrandId;
/**
* 品牌code
*/
private String storeBrandCode;
/**
* 品牌名称
*/
private String storeBrandName;
/**
* 经营类目
*/
private String storeBrandCategory;
/**
* 门店适用 1:适用 0:不适用
*/
private Integer storeSupport;
/**
* 商品适用 1:适用 0:不适用
*/
private Integer goodsSupport;
/**
* 排序字段
*/
private Double sort;
/**
*
*/
private Integer enterpriseId;
/**
*
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
private Integer seq;
public Integer getStoreBrandId() {
return storeBrandId;
}
public void setStoreBrandId(Integer storeBrandId) {
this.storeBrandId = storeBrandId;
}
public String getStoreBrandCode() {
return storeBrandCode;
}
public void setStoreBrandCode(String storeBrandCode) {
this.storeBrandCode = storeBrandCode;
}
public String getStoreBrandName() {
return storeBrandName;
}
public void setStoreBrandName(String storeBrandName) {
this.storeBrandName = storeBrandName;
}
public String getStoreBrandCategory() {
return storeBrandCategory;
}
public void setStoreBrandCategory(String storeBrandCategory) {
this.storeBrandCategory = storeBrandCategory;
}
public Integer getStoreSupport() {
return storeSupport;
}
public void setStoreSupport(Integer storeSupport) {
this.storeSupport = storeSupport;
}
public Integer getGoodsSupport() {
return goodsSupport;
}
public void setGoodsSupport(Integer goodsSupport) {
this.goodsSupport = goodsSupport;
}
public Double getSort() {
return sort;
}
public void setSort(Double sort) {
this.sort = sort;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getSeq() {
return seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
}
package com.gic.store.service;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.store.dto.StoreBrandDTO;
import java.util.List;
/**
* @author zhiwj
* @date 2019/6/24
*/
public interface StoreBrandApiService {
ServiceResponse<Integer> saveOrUpdateStoreBrand(StoreBrandDTO storeBrandDTO);
ServiceResponse<Page<StoreBrandDTO>> listStoreBrand(Integer enterpriseId, String search, Integer pageNum, Integer pageSize);
ServiceResponse<List<StoreBrandDTO>> listAllStoreBrand(Integer enterpriseId, String search, Integer storeSupport, Integer goodsSupport);
/**
* 批量删除
* @param ids
* @return 不能被删除的品牌(在使用中的品牌)
*/
ServiceResponse<List<StoreBrandDTO>> deleteByIds(Integer enterpriseId, String ids);
/**
* 移动顺序
*/
ServiceResponse moveStoreBrand(Integer enterpriseId, Integer storeBrandId, Integer moveType);
/**
* 设置序号
* @param storeBrandId
* @param seq 序号
* @return
*/
ServiceResponse setStoreBrandSort(Integer enterpriseId, Integer storeBrandId, Integer seq);
}
......@@ -4,6 +4,52 @@ package com.gic.store.utils;
* @author zhiwj
* @date 2019/6/24
*/
public interface ErrorCode {
String ERROR = "9999";
public enum ErrorCode {
/**
* 缺少参数
*/
ERR_2("0002", "缺少参数"),
/**
* 系统异常
*/
ERR_3("0003", "系统异常"),
/**
* 登录异常
*/
ERR_4("0004", "登录异常"),
/**
* 输入参数错误
*/
ERR_5("0005", "输入参数错误"),
/**
* 数据已存在
*/
ERR_6("0006", "数据已存在"),
/**
* 失效操作失败
*/
ERR_7("0007", "失效操作失败"),
ERR_9999("9999", "未知错误");
private String code;
private String msg;
private ErrorCode(String code, String msg) {
this.code = code;
this.msg = msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabStoreBrand;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TabStoreBrandMapper {
/**
......@@ -50,4 +53,70 @@ public interface TabStoreBrandMapper {
* @return 更新条目数
*/
int updateByPrimaryKey(TabStoreBrand record);
/**
* 查询最小的排序号
* @param enterpriseId
* @return
*/
Double getMinSort(@Param("enterpriseId") Integer enterpriseId);
/**
* 查询最大的排序号
* @param enterpriseId
* @return
*/
Double getMaxSort(@Param("enterpriseId") Integer enterpriseId);
/**
* 查询符合条件的个数; 除id所有值取等于计算, id取不等于计算
* @param enterpriseId
* @param storeBrandCode
* @param storeBrandName
* @param storeBrandId
* @return
*/
int countBySelective(@Param("enterpriseId") Integer enterpriseId, @Param("storeBrandCode") String storeBrandCode, @Param("storeBrandName") String storeBrandName, @Param("storeBrandId") Integer storeBrandId);
/**
* 查列表
* @param enterpriseId
* @param search
* @param storeSupport
* @param goodsSupport
* @return
*/
List<TabStoreBrand> listStoreBrand(@Param("enterpriseId") Integer enterpriseId, @Param("search") String search, @Param("storeSupport") Integer storeSupport, @Param("goodsSupport") Integer goodsSupport);
/**
* 查询比传入sort小的sort中最大的
* @param enterpriseId
* @param sort
* @return
*/
TabStoreBrand getPrevSort(@Param("enterpriseId") Integer enterpriseId, @Param("sort") Double sort);
/**
* 查询比传入sort大的sort中最小的
* @param enterpriseId
* @param sort
* @return
*/
TabStoreBrand getNextSort(@Param("enterpriseId") Integer enterpriseId, @Param("sort") Double sort);
/**
* 查询几条连续的记录
* @param enterpriseId
* @param start 开始的位置
* @param size 查询几条条
* @param storeBrandId 要除外的id
* @return
*/
List<TabStoreBrand> listTwoElementExceptId(@Param("enterpriseId") Integer enterpriseId, @Param("start") int start, @Param("size") int size, @Param("storeBrandId") Integer storeBrandId);
/**
* 批量逻辑删除
* @param ids
* @return
*/
Integer deleteByIds(@Param("ids") List<Integer> ids);
}
\ No newline at end of file
......@@ -27,6 +27,16 @@ public class TabStoreBrand {
private String storeBrandCategory;
/**
* 门店适用 1:适用 0:不适用
*/
private Integer storeSupport;
/**
* 商品适用 1:适用 0:不适用
*/
private Integer goodsSupport;
/**
* 排序字段
*/
private Double sort;
......@@ -83,6 +93,22 @@ public class TabStoreBrand {
this.storeBrandCategory = storeBrandCategory;
}
public Integer getStoreSupport() {
return storeSupport;
}
public void setStoreSupport(Integer storeSupport) {
this.storeSupport = storeSupport;
}
public Integer getGoodsSupport() {
return goodsSupport;
}
public void setGoodsSupport(Integer goodsSupport) {
this.goodsSupport = goodsSupport;
}
public Double getSort() {
return sort;
}
......
package com.gic.store.service;
import com.gic.store.dto.StoreBrandDTO;
import com.gic.store.entity.TabStoreBrand;
import com.github.pagehelper.Page;
import java.util.List;
/**
* @author zhiwj
* @date 2019/6/26
*/
public interface StoreBrandService {
Integer save(StoreBrandDTO storeBrandDTO);
Integer update(StoreBrandDTO storeBrandDTO);
int countByStoreBrandCode(Integer enterpriseId, String storeBrandCode, Integer storeBrandId);
int countByStoreBrandName(Integer enterpriseId, String storeBrandName, Integer storeBrandId);
Page<TabStoreBrand> listStoreBrand(Integer enterpriseId, String search, Integer pageNum, Integer pageSize);
List<TabStoreBrand> listAllStoreBrand(Integer enterpriseId, String search, Integer storeSupport, Integer goodsSupport);
void sortMoveUp(Integer enterpriseId, Integer storeBrandId);
void sortMoveDown(Integer enterpriseId, Integer storeBrandId);
void sortTopping(Integer enterpriseId, Integer storeBrandId);
void sortBottom(Integer enterpriseId, Integer storeBrandId);
void setStoreBrandSort(Integer enterpriseId, Integer storeBrandId, Integer seq);
Integer deleteByIds(Integer enterpriseId, String ids);
}
package com.gic.store.service;
import com.gic.api.base.commons.Page;
import com.gic.store.dto.StoreRegionDTO;
import com.gic.store.entity.TabStoreRegion;
import com.github.pagehelper.Page;
import java.util.List;
......@@ -19,7 +19,7 @@ public interface StoreRegionService {
int update(Integer regionId, String regionName);
Page<StoreRegionDTO> listStoreRegion(Integer enterpriseId, String search, Integer pageNum, Integer pageSize);
Page<TabStoreRegion> listStoreRegion(Integer enterpriseId, String search, Integer pageNum, Integer pageSize);
List<StoreRegionDTO> listStoreRegion(Integer enterpriseId, String search);
List<TabStoreRegion> listStoreRegion(Integer enterpriseId, String search);
}
package com.gic.store.service.impl;
import com.gic.commons.util.GlobalInfo;
import com.gic.store.dao.mapper.TabStoreBrandMapper;
import com.gic.store.dto.StoreBrandDTO;
import com.gic.store.entity.TabStoreBrand;
import com.gic.store.service.StoreBrandService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author zhiwj
* @date 2019/6/26
*/
@Service
public class StoreBrandServiceImpl implements StoreBrandService {
@Autowired
private TabStoreBrandMapper tabStoreBrandMapper;
@Override
public Integer save(StoreBrandDTO copy) {
TabStoreBrand storeBrand = new TabStoreBrand();
storeBrand.setStoreBrandCode(copy.getStoreBrandCode());
storeBrand.setStoreBrandName(copy.getStoreBrandName());
storeBrand.setStoreBrandCategory(copy.getStoreBrandCategory());
storeBrand.setStoreSupport(copy.getStoreSupport());
storeBrand.setGoodsSupport(copy.getGoodsSupport());
storeBrand.setEnterpriseId(copy.getEnterpriseId());
storeBrand.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
storeBrand.setCreateTime(new Date());
Double sort = tabStoreBrandMapper.getMinSort(copy.getEnterpriseId());
storeBrand.setSort(sort == null ? 1d : sort - 1d);
tabStoreBrandMapper.insertSelective(storeBrand);
return storeBrand.getStoreBrandId();
}
@Override
public Integer update(StoreBrandDTO copy) {
TabStoreBrand storeBrand = new TabStoreBrand();
storeBrand.setStoreBrandId(copy.getStoreBrandId());
storeBrand.setStoreBrandCode(copy.getStoreBrandCode());
storeBrand.setStoreBrandName(copy.getStoreBrandName());
storeBrand.setStoreBrandCategory(copy.getStoreBrandCategory());
storeBrand.setStoreSupport(copy.getStoreSupport());
storeBrand.setGoodsSupport(copy.getGoodsSupport());
return tabStoreBrandMapper.updateByPrimaryKeySelective(storeBrand);
}
@Override
public int countByStoreBrandCode(Integer enterpriseId, String storeBrandCode, Integer storeBrandId) {
return tabStoreBrandMapper.countBySelective(enterpriseId, storeBrandCode, null, storeBrandId);
}
@Override
public int countByStoreBrandName(Integer enterpriseId, String storeBrandName, Integer storeBrandId) {
return tabStoreBrandMapper.countBySelective(enterpriseId, null, storeBrandName, storeBrandId);
}
@Override
public Page<TabStoreBrand> listStoreBrand(Integer enterpriseId, String search, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<TabStoreBrand> storeBrandList = tabStoreBrandMapper.listStoreBrand(enterpriseId, search, null, null);
return (Page<TabStoreBrand>) storeBrandList;
}
@Override
public List<TabStoreBrand> listAllStoreBrand(Integer enterpriseId, String search, Integer storeSupport, Integer goodsSupport) {
return tabStoreBrandMapper.listStoreBrand(enterpriseId, search, storeSupport, goodsSupport);
}
@Override
public void sortMoveUp(Integer enterpriseId, Integer storeBrandId) {
TabStoreBrand tabStoreBrand = tabStoreBrandMapper.selectByPrimaryKey(storeBrandId);
TabStoreBrand prevStoreBrand = tabStoreBrandMapper.getPrevSort(enterpriseId, tabStoreBrand.getSort());
swapSort(tabStoreBrand, prevStoreBrand);
}
@Override
public void sortMoveDown(Integer enterpriseId, Integer storeBrandId) {
TabStoreBrand tabStoreBrand = tabStoreBrandMapper.selectByPrimaryKey(storeBrandId);
TabStoreBrand nextStoreBrand = tabStoreBrandMapper.getNextSort(enterpriseId, tabStoreBrand.getSort());
swapSort(tabStoreBrand, nextStoreBrand);
}
private void swapSort(TabStoreBrand tabStoreBrand, TabStoreBrand prevStoreBrand) {
if (prevStoreBrand != null) {
Double temp = tabStoreBrand.getSort();
tabStoreBrand.setSort(prevStoreBrand.getSort());
prevStoreBrand.setSort(temp);
tabStoreBrandMapper.updateByPrimaryKeySelective(tabStoreBrand);
tabStoreBrandMapper.updateByPrimaryKeySelective(prevStoreBrand);
}
}
@Override
public void sortTopping(Integer enterpriseId, Integer storeBrandId) {
Double sort = tabStoreBrandMapper.getMinSort(enterpriseId);
TabStoreBrand tabStoreBrand = new TabStoreBrand();
tabStoreBrand.setStoreBrandId(storeBrandId);
tabStoreBrand.setSort(sort - 1d);
tabStoreBrandMapper.updateByPrimaryKeySelective(tabStoreBrand);
}
@Override
public void sortBottom(Integer enterpriseId, Integer storeBrandId) {
Double sort = tabStoreBrandMapper.getMaxSort(enterpriseId);
TabStoreBrand tabStoreBrand = new TabStoreBrand();
tabStoreBrand.setStoreBrandId(storeBrandId);
tabStoreBrand.setSort(sort + 1d);
tabStoreBrandMapper.updateByPrimaryKeySelective(tabStoreBrand);
}
@Override
public void setStoreBrandSort(Integer enterpriseId, Integer storeBrandId, Integer seq) {
if (seq <= 1) {
// 相当于置顶
sortTopping(enterpriseId, storeBrandId);
} else {
int start = seq - 2;
int size = 2;
List<TabStoreBrand> list = tabStoreBrandMapper.listTwoElementExceptId(enterpriseId, start, size, storeBrandId);
if (CollectionUtils.isEmpty(list)) {
// 置底
sortBottom(enterpriseId, storeBrandId);
} else {
Double sort;
if (list.size() == 1) {
// 置底
sort = list.get(0).getSort();
} else {
sort = (list.get(0).getSort() + list.get(1).getSort()) / 2d;
}
TabStoreBrand tabStoreBrand = new TabStoreBrand();
tabStoreBrand.setStoreBrandId(storeBrandId);
tabStoreBrand.setSort(sort);
tabStoreBrandMapper.updateByPrimaryKeySelective(tabStoreBrand);
}
}
}
@Override
public Integer deleteByIds(Integer enterpriseId, String ids) {
List<String> idStrList = Arrays.asList(ids.split(","));
if (CollectionUtils.isNotEmpty(idStrList)) {
List<Integer> idList = idStrList.stream().map(Integer::parseInt).collect(Collectors.toList());
return tabStoreBrandMapper.deleteByIds(idList);
}
return 0;
}
}
package com.gic.store.service.impl;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GlobalInfo;
import com.gic.commons.util.PageHelperUtils;
import com.gic.store.dao.mapper.TabStoreRegionMapper;
import com.gic.store.dto.StoreRegionDTO;
import com.gic.store.entity.TabStoreRegion;
import com.gic.store.service.StoreRegionService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -51,8 +48,8 @@ public class StoreRegionServiceImpl implements StoreRegionService {
storeRegion.setCreateTime(new Date());
storeRegion.setEnterpriseId(enterpriseId);
storeRegion.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
int i = storeRegionMapper.insertSelective(storeRegion);
return i;
storeRegionMapper.insertSelective(storeRegion);
return storeRegion.getRegionId();
}
@Override
......@@ -65,16 +62,15 @@ public class StoreRegionServiceImpl implements StoreRegionService {
}
@Override
public Page<StoreRegionDTO> listStoreRegion(Integer enterpriseId, String search, Integer pageNum, Integer pageSize) {
public Page<TabStoreRegion> listStoreRegion(Integer enterpriseId, String search, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize, " create_time desc ");
// 查列表
List<TabStoreRegion> storeRegionList = storeRegionMapper.listStoreRegion(enterpriseId, search);
return PageHelperUtils.changePageHelperToCurrentPage((com.github.pagehelper.Page) storeRegionList, StoreRegionDTO.class);
return (com.github.pagehelper.Page) storeRegionList;
}
@Override
public List<StoreRegionDTO> listStoreRegion(Integer enterpriseId, String search) {
List<TabStoreRegion> storeRegionList = storeRegionMapper.listStoreRegion(enterpriseId, search);
return EntityUtil.changeEntityListByOrika(StoreRegionDTO.class, storeRegionList);
public List<TabStoreRegion> listStoreRegion(Integer enterpriseId, String search) {
return storeRegionMapper.listStoreRegion(enterpriseId, search);
}
}
package com.gic.store.service.outer;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.store.dto.StoreBrandDTO;
import com.gic.store.entity.TabStoreBrand;
import com.gic.store.service.StoreBrandApiService;
import com.gic.store.service.StoreBrandService;
import com.gic.store.utils.ErrorCode;
import com.gic.store.utils.MoveType;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author zhiwj
* @date 2019/6/26
*/
@Service("storeBrandApiService")
@SuppressWarnings("unchecked")
public class StoreBrandApiServiceImpl implements StoreBrandApiService {
private static final Logger logger = LogManager.getLogger(StoreBrandApiServiceImpl.class);
@Autowired
private StoreBrandService storeBrandService;
@Override
public ServiceResponse<Integer> saveOrUpdateStoreBrand(StoreBrandDTO storeBrandDTO) {
Integer storeBrandId;
int brandCodeCount = storeBrandService.countByStoreBrandCode(storeBrandDTO.getEnterpriseId(), storeBrandDTO.getStoreBrandCode(), storeBrandDTO.getStoreBrandId());
if (brandCodeCount > 0) {
return ServiceResponse.failure(ErrorCode.ERR_6.getCode(), "品牌code已存在");
}
int storeBrandName = storeBrandService.countByStoreBrandName(storeBrandDTO.getEnterpriseId(), storeBrandDTO.getStoreBrandName(), storeBrandDTO.getStoreBrandId());
if (storeBrandName > 0) {
return ServiceResponse.failure(ErrorCode.ERR_6.getCode(), "品牌名称已存在");
}
if (storeBrandDTO.getStoreBrandId() == null) {
// 新增
storeBrandId = storeBrandService.save(storeBrandDTO);
} else {
// 编辑
storeBrandId = storeBrandDTO.getStoreBrandId();
Integer updateLine = storeBrandService.update(storeBrandDTO);
if (updateLine == 0) {
logger.warn("[storeBrandId ==> {}] 不存在", storeBrandDTO.getStoreBrandId());
return ServiceResponse.failure(ErrorCode.ERR_2.getCode(), "没找到要编辑的门店品牌");
}
}
return ServiceResponse.success(storeBrandId);
}
@Override
public ServiceResponse<Page<StoreBrandDTO>> listStoreBrand(Integer enterpriseId, String search, Integer pageNum, Integer pageSize) {
com.github.pagehelper.Page storeStoreList = storeBrandService.listStoreBrand(enterpriseId, search, pageNum, pageSize);
Page<StoreBrandDTO> page = PageHelperUtils.changePageHelperToCurrentPage(storeStoreList, StoreBrandDTO.class);
List<StoreBrandDTO> resultList = page.getResult();
int index = (pageNum - 1) * pageSize + 1;
for (int i = 0; i < resultList.size(); i++) {
resultList.get(i).setSeq(index + i);
}
return ServiceResponse.success(page);
}
@Override
public ServiceResponse<List<StoreBrandDTO>> listAllStoreBrand(Integer enterpriseId, String search, Integer storeSupport, Integer goodsSupport) {
List<TabStoreBrand> storeBrandList = storeBrandService.listAllStoreBrand(enterpriseId, search, storeSupport, goodsSupport);
List<StoreBrandDTO> brandDTOList = EntityUtil.changeEntityListByOrika(StoreBrandDTO.class, storeBrandList);
return ServiceResponse.success(brandDTOList);
}
@Override
public ServiceResponse<List<StoreBrandDTO>> deleteByIds(Integer enterpriseId, String ids) {
//TODO 要查询门店中是否使用门店品牌
storeBrandService.deleteByIds(enterpriseId, ids);
return ServiceResponse.success();
}
@Override
public ServiceResponse moveStoreBrand(Integer enterpriseId, Integer storeBrandId, Integer moveType) {
if (MoveType.MOVE_UP.getCode().equals(moveType)) {
// 上移
storeBrandService.sortMoveUp(enterpriseId, storeBrandId);
} else if (MoveType.MOVE_DOWN.getCode().equals(moveType)) {
// 下移
storeBrandService.sortMoveDown(enterpriseId, storeBrandId);
} else if (MoveType.TOPPING.getCode().equals(moveType)) {
// 置顶
storeBrandService.sortTopping(enterpriseId, storeBrandId);
} else if (MoveType.BOTTOM.getCode().equals(moveType)) {
// 置底
storeBrandService.sortBottom(enterpriseId, storeBrandId);
}
return ServiceResponse.success();
}
@Override
public ServiceResponse setStoreBrandSort(Integer enterpriseId, Integer storeBrandId, Integer seq) {
storeBrandService.setStoreBrandSort(enterpriseId, storeBrandId, seq);
return ServiceResponse.success();
}
}
......@@ -3,8 +3,11 @@ package com.gic.store.service.outer;
import com.gic.api.base.commons.ErrorContent;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.store.service.StoreRegionApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.store.dto.StoreRegionDTO;
import com.gic.store.entity.TabStoreRegion;
import com.gic.store.service.StoreRegionApiService;
import com.gic.store.service.StoreRegionService;
import com.gic.store.utils.ErrorCode;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -17,6 +20,7 @@ import java.util.List;
* @date 2019/6/24
*/
@Service("storeRegionApiService")
@SuppressWarnings("unchecked")
public class StoreRegionApiServiceImpl implements StoreRegionApiService {
@Autowired
......@@ -28,11 +32,11 @@ public class StoreRegionApiServiceImpl implements StoreRegionApiService {
// 新增
int codeCount = storeRegionService.countByRegionCode(enterpriseId, regionCode);
if (codeCount > 0) {
return ServiceResponse.failure(ErrorCode.ERROR, "域code已存在");
return ServiceResponse.failure(ErrorCode.ERR_6.getCode(), "域code已存在");
}
int nameCount = storeRegionService.countByRegionName(enterpriseId, regionName, null);
if (nameCount > 0) {
return ServiceResponse.failure(ErrorCode.ERROR, "域name已存在");
return ServiceResponse.failure(ErrorCode.ERR_6.getCode(), "域name已存在");
}
regionId = storeRegionService.save(enterpriseId, regionCode, regionName);
}else {
......@@ -48,13 +52,14 @@ public class StoreRegionApiServiceImpl implements StoreRegionApiService {
@Override
public ServiceResponse<Page<StoreRegionDTO>> listStoreRegion(Integer enterpriseId, String search, Integer pageNum, Integer pageSize) {
Page<StoreRegionDTO> page = storeRegionService.listStoreRegion(enterpriseId, search, pageNum, pageSize);
com.github.pagehelper.Page storeRegionList = storeRegionService.listStoreRegion(enterpriseId, search, pageNum, pageSize);
Page<StoreRegionDTO> page = PageHelperUtils.changePageHelperToCurrentPage(storeRegionList, StoreRegionDTO.class);
return ServiceResponse.success(page);
}
@Override
public ServiceResponse<List<StoreRegionDTO>> listStoreRegion(Integer enterpriseId, String search) {
List<StoreRegionDTO> list = storeRegionService.listStoreRegion(enterpriseId, search);
return ServiceResponse.success(list);
List<TabStoreRegion> list = storeRegionService.listStoreRegion(enterpriseId, search);
return ServiceResponse.success(EntityUtil.changeEntityListByOrika(StoreRegionDTO.class, list));
}
}
......@@ -16,5 +16,6 @@
<dubbo:protocol name="dubbo" port="30102"/>
<dubbo:service interface="com.gic.store.service.StoreRegionApiService" ref="storeRegionApiService" timeout="60000" />
<dubbo:service interface="com.gic.store.service.StoreBrandApiService" ref="storeBrandApiService" timeout="60000" />
</beans>
......@@ -6,6 +6,8 @@
<result column="store_brand_code" jdbcType="VARCHAR" property="storeBrandCode" />
<result column="store_brand_name" jdbcType="VARCHAR" property="storeBrandName" />
<result column="store_brand_category" jdbcType="VARCHAR" property="storeBrandCategory" />
<result column="store_support" jdbcType="INTEGER" property="storeSupport" />
<result column="goods_support" jdbcType="INTEGER" property="goodsSupport" />
<result column="sort" jdbcType="DOUBLE" property="sort" />
<result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
<result column="status" jdbcType="INTEGER" property="status" />
......@@ -13,8 +15,8 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
store_brand_id, store_brand_code, store_brand_name, store_brand_category, sort, enterprise_id,
status, create_time, update_time
store_brand_id, store_brand_code, store_brand_name, store_brand_category, store_support,
goods_support, sort, enterprise_id, status, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
......@@ -27,16 +29,22 @@
where store_brand_id = #{storeBrandId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.gic.store.entity.TabStoreBrand">
insert into tab_store_brand (store_brand_id, store_brand_code, store_brand_name,
store_brand_category, sort, enterprise_id,
status, create_time, update_time
)
<selectKey keyProperty="storeBrandId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_store_brand (store_brand_id, store_brand_code, store_brand_name,
store_brand_category, store_support, goods_support,
sort, enterprise_id, status,
create_time, update_time)
values (#{storeBrandId,jdbcType=INTEGER}, #{storeBrandCode,jdbcType=VARCHAR}, #{storeBrandName,jdbcType=VARCHAR},
#{storeBrandCategory,jdbcType=VARCHAR}, #{sort,jdbcType=DOUBLE}, #{enterpriseId,jdbcType=INTEGER},
#{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
#{storeBrandCategory,jdbcType=VARCHAR}, #{storeSupport,jdbcType=INTEGER}, #{goodsSupport,jdbcType=INTEGER},
#{sort,jdbcType=DOUBLE}, #{enterpriseId,jdbcType=INTEGER}, #{status,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.store.entity.TabStoreBrand">
<selectKey keyProperty="storeBrandId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_store_brand
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="storeBrandId != null">
......@@ -51,6 +59,12 @@
<if test="storeBrandCategory != null">
store_brand_category,
</if>
<if test="storeSupport != null">
store_support,
</if>
<if test="goodsSupport != null">
goods_support,
</if>
<if test="sort != null">
sort,
</if>
......@@ -80,6 +94,12 @@
<if test="storeBrandCategory != null">
#{storeBrandCategory,jdbcType=VARCHAR},
</if>
<if test="storeSupport != null">
#{storeSupport,jdbcType=INTEGER},
</if>
<if test="goodsSupport != null">
#{goodsSupport,jdbcType=INTEGER},
</if>
<if test="sort != null">
#{sort,jdbcType=DOUBLE},
</if>
......@@ -109,6 +129,12 @@
<if test="storeBrandCategory != null">
store_brand_category = #{storeBrandCategory,jdbcType=VARCHAR},
</if>
<if test="storeSupport != null">
store_support = #{storeSupport,jdbcType=INTEGER},
</if>
<if test="goodsSupport != null">
goods_support = #{goodsSupport,jdbcType=INTEGER},
</if>
<if test="sort != null">
sort = #{sort,jdbcType=DOUBLE},
</if>
......@@ -132,6 +158,8 @@
set store_brand_code = #{storeBrandCode,jdbcType=VARCHAR},
store_brand_name = #{storeBrandName,jdbcType=VARCHAR},
store_brand_category = #{storeBrandCategory,jdbcType=VARCHAR},
store_support = #{storeSupport,jdbcType=INTEGER},
goods_support = #{goodsSupport,jdbcType=INTEGER},
sort = #{sort,jdbcType=DOUBLE},
enterprise_id = #{enterpriseId,jdbcType=INTEGER},
status = #{status,jdbcType=INTEGER},
......@@ -139,4 +167,86 @@
update_time = #{updateTime,jdbcType=TIMESTAMP}
where store_brand_id = #{storeBrandId,jdbcType=INTEGER}
</update>
<select id="getMinSort" resultType="java.lang.Double">
select sort from tab_store_brand where status = 1 order by sort limit 0, 1
</select>
<select id="getMaxSort" resultType="java.lang.Double">
select sort from tab_store_brand where status = 1 order by sort desc limit 0, 1
</select>
<select id="countBySelective" resultType="java.lang.Integer">
select count(1) from tab_store_brand
where status = 1
<if test="enterpriseId != null ">
and enterprise_id = #{enterpriseId}
</if>
<if test="storeBrandCode != null and storeBrandCode != '' ">
and store_brand_code = #{storeBrandCode}
</if>
<if test="storeBrandName != null and storeBrandName != '' ">
and store_brand_name = #{storeBrandName}
</if>
<if test="storeBrandId != null ">
and store_brand_id &lt;&gt; #{storeBrandId}
</if>
</select>
<select id="listStoreBrand" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_brand
where status = 1
<if test="enterpriseId != null ">
and enterprise_id = #{enterpriseId}
</if>
<if test="search != null and search != '' ">
and ( store_brand_code like concat('%', #{search}, '%') or store_brand_name like concat('%', #{search}, '%') )
</if>
<if test="storeSupport != null ">
and store_support = #{storeSupport}
</if>
<if test="goodsSupport != null ">
and goods_support = #{goodsSupport}
</if>
order by sort
</select>
<select id="getPrevSort" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_brand
where status = 1
and enterprise_id = #{enterpriseId}
and sort &lt; #{sort}
order by sort desc
limit 0, 1
</select>
<select id="getNextSort" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_brand
where status = 1
and enterprise_id = #{enterpriseId}
and sort &gt; #{sort}
order by sort
limit 0, 1
</select>
<select id="listTwoElementExceptId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_brand
where status = 1
and store_brand_id &lt;&gt; #{storeBrandId}
order by sort
limit #{start}, #{size}
</select>
<update id="deleteByIds">
update tab_store_brand set status = 0
<where>
<if test="null != ids and ids.size() > 0">
and store_brand_id in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</update>
</mapper>
\ No newline at end of file
......@@ -24,6 +24,9 @@
where region_id = #{regionId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.gic.store.entity.TabStoreRegion">
<selectKey keyProperty="regionId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_store_region (region_id, region_code, region_name,
status, create_time, update_time,
enterprise_id)
......@@ -32,6 +35,9 @@
#{enterpriseId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.gic.store.entity.TabStoreRegion">
<selectKey keyProperty="regionId" order="AFTER" resultType="java.lang.Integer">
SELECT LAST_INSERT_ID()
</selectKey>
insert into tab_store_region
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="regionId != null">
......
package com.gic.store.web.controller;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.store.dto.StoreBrandDTO;
import com.gic.store.service.StoreBrandApiService;
import com.gic.store.utils.ErrorCode;
import com.gic.store.web.qo.PageQO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author zhiwj
* @date 2019/6/27
*/
@RestController
public class StoreBrandController {
@Autowired
private StoreBrandApiService storeBrandApiService;
@RequestMapping("/save-store-brand")
public RestResponse saveStoreBrand(StoreBrandDTO storeBrandDTO) {
Integer enterpriseId = 1111;
if (StringUtils.isBlank(storeBrandDTO.getStoreBrandCode()) ||
StringUtils.isBlank(storeBrandDTO.getStoreBrandName()) ||
StringUtils.isBlank(storeBrandDTO.getStoreBrandCategory()) ||
storeBrandDTO.getStoreSupport() == null ||
storeBrandDTO.getGoodsSupport() == null
) {
return RestResponse.failure(ErrorCode.ERR_5.getCode(), ErrorCode.ERR_5.getMsg());
}
if (storeBrandDTO.getStoreSupport() == 0 && storeBrandDTO.getGoodsSupport() == 0) {
return RestResponse.failure(ErrorCode.ERR_5.getCode(), "门店适用或商品使用至少要选一个");
}
storeBrandDTO.setEnterpriseId(enterpriseId);
ServiceResponse<Integer> serviceResponse = storeBrandApiService.saveOrUpdateStoreBrand(storeBrandDTO);
if (serviceResponse.isSuccess()) {
return RestResponse.success();
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
@RequestMapping("/page-store-brand")
public RestResponse pageStoreBrand(String search, PageQO pageQO) {
Integer enterpriseId = 1111;
ServiceResponse<Page<StoreBrandDTO>> serviceResponse = storeBrandApiService.listStoreBrand(enterpriseId, search, pageQO.getCurrentPage(), pageQO.getPageSize());
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
@RequestMapping("/list-store-brand")
public RestResponse listStoreBrand(String search, Integer storeSupport, Integer goodsSupport) {
Integer enterpriseId = 1111;
ServiceResponse<List<StoreBrandDTO>> serviceResponse = storeBrandApiService.listAllStoreBrand(enterpriseId, search, storeSupport, goodsSupport);
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
@RequestMapping("/delete-store-brand-batch")
public RestResponse deleteByIds(String ids) {
Integer enterpriseId = 1111;
ServiceResponse<List<StoreBrandDTO>> serviceResponse = storeBrandApiService.deleteByIds(enterpriseId, ids);
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
@RequestMapping("/move-store-brand")
public RestResponse moveStoreBrand(Integer storeBrandId, Integer moveType) {
Integer enterpriseId = 1111;
ServiceResponse serviceResponse = storeBrandApiService.moveStoreBrand(enterpriseId, storeBrandId, moveType);
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
@RequestMapping("/set-store-brand-sort")
public RestResponse setStoreBrandSort(Integer storeBrandId, Integer seq) {
Integer enterpriseId = 1111;
ServiceResponse serviceResponse = storeBrandApiService.moveStoreBrand(enterpriseId, storeBrandId, seq);
if (serviceResponse.isSuccess()) {
return RestResponse.success(serviceResponse.getResult());
} else {
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
}
}
......@@ -15,5 +15,6 @@
<dubbo:application name="gic-store-web"/>
<dubbo:reference interface="com.gic.store.service.StoreRegionApiService" id="storeRegionApiService" timeout="60000" retries="0"/>
<dubbo:reference interface="com.gic.store.service.StoreBrandApiService" id="storeBrandApiService" timeout="60000" retries="0"/>
</beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment