Commit 6d822122 by guojuxing

分组策略

parent 704c711e
......@@ -32,30 +32,43 @@ public interface StoreStrategyApiService {
*/
ServiceResponse<Integer> modifyStoreGroupStrategy(StoreStrategyDTO storeStrategyDTO);
/**
* 根据主键ID获取数据
* @param strategyId
* @return
*/
ServiceResponse<StoreStrategyDTO> getStoreGroupStrategyById(int strategyId);
/**
* 置底
* @param strategyId
* @param strategyType
* @return
*/
ServiceResponse<Integer> sortBottom(int strategyId, int strategyType);
ServiceResponse<Integer> sortBottom(int strategyId);
/**
* 置顶
* @param strategyId
* @param strategyType
* @return
*/
ServiceResponse<Integer> sortTopping(int strategyId, int strategyType);
ServiceResponse<Integer> sortTopping(int strategyId);
/**
* 上移、下移
* @param strategyId
* @param isUp
* @return
*/
ServiceResponse<Integer> upOrDown(int strategyId, boolean isUp);
/**
* 设置排序值
* @param strategyId
* @param setValue
* @param strategyType
* @return
*/
ServiceResponse<Integer> setStoreStrategySort(int strategyId, int setValue, int strategyType);
ServiceResponse<Integer> setStoreStrategySort(int strategyId, int setValue);
/**
* 分页查询分组策略数据
......
......@@ -101,4 +101,6 @@ public interface StoreStrategyService {
*/
Page<TabStoreStrategy> listStoreStrategy(int enterpriseId, String search, int strategyType, Integer pageNum, Integer pageSize);
void updateSortById(int strategyId, double sort);
}
......@@ -123,7 +123,8 @@ public class StoreStrategyServiceImpl implements StoreStrategyService{
return sort == null ? 1d : sort;
}
private void updateSortById(int strategyId, double sort) {
@Override
public void updateSortById(int strategyId, double sort) {
TabStoreStrategy storeStrategy = new TabStoreStrategy();
storeStrategy.setStrategyId(strategyId);
storeStrategy.setSort(sort);
......
......@@ -85,32 +85,64 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
@Override
public ServiceResponse<Integer> sortBottom(int strategyId, int strategyType) {
public ServiceResponse<StoreStrategyDTO> getStoreGroupStrategyById(int strategyId) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
storeStrategyService.sortBottom(storeStrategy.getEnterpriseId(), strategyId, strategyType);
return ServiceResponse.success(EntityUtil.changeEntityNew(StoreStrategyDTO.class, storeStrategy));
}
@Override
public ServiceResponse<Integer> sortBottom(int strategyId) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
storeStrategyService.sortBottom(storeStrategy.getEnterpriseId(), strategyId, storeStrategy.getStrategyType());
return ServiceResponse.success();
}
@Override
public ServiceResponse<Integer> sortTopping(int strategyId) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
storeStrategyService.sortTopping(storeStrategy.getEnterpriseId(), strategyId, storeStrategy.getStrategyType());
return ServiceResponse.success();
}
@Override
public ServiceResponse<Integer> sortTopping(int strategyId, int strategyType) {
public ServiceResponse<Integer> upOrDown(int strategyId, boolean isUp) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
storeStrategyService.sortTopping(storeStrategy.getEnterpriseId(), strategyId, strategyType);
TabStoreStrategy needUpdateSort;
if (isUp) {
needUpdateSort = storeStrategyService.getPrevSort(storeStrategy.getEnterpriseId(), storeStrategy.getSort(), storeStrategy.getStrategyType());
if (needUpdateSort == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "已经是第一条,不能上移");
}
} else {
needUpdateSort = storeStrategyService.getNextSort(storeStrategy.getEnterpriseId(), storeStrategy.getSort(), storeStrategy.getStrategyType());
if (needUpdateSort == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "已经是最后一条,不能下移");
}
}
storeStrategyService.updateSortById(needUpdateSort.getStrategyId(), storeStrategy.getSort());
storeStrategyService.updateSortById(storeStrategy.getStrategyId(), needUpdateSort.getSort());
return ServiceResponse.success();
}
@Override
public ServiceResponse<Integer> setStoreStrategySort(int strategyId, int setValue, int strategyType) {
public ServiceResponse<Integer> setStoreStrategySort(int strategyId, int setValue) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
storeStrategyService.setStoreStrategySort(strategyId, storeStrategy.getEnterpriseId(), setValue, strategyType);
storeStrategyService.setStoreStrategySort(strategyId, storeStrategy.getEnterpriseId(), setValue, storeStrategy.getStrategyType());
return ServiceResponse.success();
}
......
package com.gic.store.web.controller;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.store.constant.StoreGroupConstant;
import com.gic.store.dto.StoreStrategyDTO;
import com.gic.store.service.StoreStrategyApiService;
import com.gic.store.web.qo.PageQO;
import com.gic.store.web.qo.storestrategy.StoreStrategyQO;
import com.gic.store.web.vo.storestrategy.StoreGroupStrateVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author guojx
* @date 2019/7/4 1:56 PM
*/
@RestController
@RequestMapping("/store-strategy")
public class StoreStrategyController {
private static final Logger logger = LoggerFactory.getLogger(StoreStrategyController.class);
@Autowired
private StoreStrategyApiService storeStrategyApiService;
@RequestMapping("/save-store-group-strategy")
public RestResponse saveStoreGroupStrategy(@Validated({StoreStrategyQO.SaveValidView.class}) StoreStrategyQO storeStrategyQO) {
//分组策略类型
storeStrategyQO.setStrategyType(StoreGroupConstant.STORE_GROUP_STRATEGY_TYPE);
ServiceResponse result = storeStrategyApiService.saveStoreGroupStrategy(transferQoToDTO(storeStrategyQO));
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/edit-store-group-strategy")
public RestResponse editStoreGroupStrategy(@Validated({StoreStrategyQO.SaveValidView.class, StoreStrategyQO.RemoveValidView.class})
StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.modifyStoreGroupStrategy(transferQoToDTO(storeStrategyQO));
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/get-store-group-strategy")
public RestResponse getStoreGroupStrategy(@Validated({StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.getStoreGroupStrategyById(storeStrategyQO.getStrategyId());
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/delete-store-group-strategy")
public RestResponse deleteStoreGroupStrategy(@Validated({StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.deleteStoreGroupStrategy(storeStrategyQO.getStrategyId());
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/swap-store-group-strategy")
public RestResponse swapStoreGroupStrategy(@Validated({StoreStrategyQO.SwapValidView.class, StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
int upOrDown = storeStrategyQO.getUpOrDown();
ServiceResponse result;
switch (upOrDown) {
case StoreGroupConstant.SORT_UP:
result = storeStrategyApiService.upOrDown(storeStrategyQO.getStrategyId(), true);
break;
case StoreGroupConstant.SORT_DOWN:
result = storeStrategyApiService.upOrDown(storeStrategyQO.getStrategyId(), false);
break;
case StoreGroupConstant.SORT_BOTTOM:
result = storeStrategyApiService.sortBottom(storeStrategyQO.getStrategyId());
break;
case StoreGroupConstant.SORT_TOPPING:
result = storeStrategyApiService.sortTopping(storeStrategyQO.getStrategyId());
break;
default:
result = null;
}
if (result.isSuccess()) {
return RestResponse.success(result.getResult());
} else {
return RestResponse.failure(result.getCode(), result.getMessage());
}
}
@RequestMapping("/set-store-group-strategy-sort-value")
public RestResponse setStoreGroupStrategySortValue(@Validated({StoreStrategyQO.SetSortValueValidView.class, StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.setStoreStrategySort(storeStrategyQO.getStrategyId(), storeStrategyQO.getSortValue());
if (result.isSuccess()) {
return RestResponse.success(result.getResult());
} else {
return RestResponse.failure(result.getCode(), result.getMessage());
}
}
@RequestMapping("/list-store-group-strategy")
public RestResponse listStoreGroupStrategy(String search, PageQO pageQO) {
ServiceResponse<Page<StoreStrategyDTO>> result = storeStrategyApiService.listStoreField(StoreGroupConstant.TEST_ENTERPRISE_ID
, search, StoreGroupConstant.STORE_GROUP_STRATEGY_TYPE, pageQO.getCurrentPage(), pageQO.getPageSize());
if (result.isSuccess()) {
Page<StoreStrategyDTO> resultPage = result.getResult();
Page<StoreGroupStrateVO> voPage = EntityUtil.changeEntityNew(Page.class, resultPage);
voPage.setResult(EntityUtil.changeEntityListNew(StoreGroupStrateVO.class, resultPage.getResult()));
return RestResponse.success(voPage);
} else {
return RestResponse.failure(result.getCode(), result.getMessage());
}
}
private StoreStrategyDTO transferQoToDTO(StoreStrategyQO storeStrategyQO) {
StoreStrategyDTO storeStrategyDTO = EntityUtil.changeEntityNew(StoreStrategyDTO.class, storeStrategyQO);
storeStrategyDTO.setEnterpriseId(StoreGroupConstant.TEST_ENTERPRISE_ID);
return storeStrategyDTO;
}
}
package com.gic.store.web.qo.storestrategy;
import com.gic.store.constant.StoreGroupConstant;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author guojx
* @date 2019/7/4 1:59 PM
*/
public class StoreStrategyQO implements Serializable{
private static final long serialVersionUID = 8909390650431679960L;
public interface SaveValidView {
}
public interface RemoveValidView {
}
public interface SwapValidView {
}
public interface SetSortValueValidView {
}
/**
*
*/
@NotNull(message = "主键ID不能为空", groups = {RemoveValidView.class})
private Integer strategyId;
/**
* 策略名称
*/
@NotBlank(message = "策略名称不能为空", groups = {SaveValidView.class})
private String strategyName;
/**
*
*/
private Integer enterpriseId;
/**
* 门店域id
*/
@NotNull(message = "门店域不能为空", groups = {SaveValidView.class})
private Integer storeRegionId;
/**
* 门店分组条件,json数组
*/
private String condition;
/**
* 策略命中值;如果type为门店分组策略,对应分组id;否则为门店启用和不启用值
*/
@NotBlank(message = "策略命中值不能为空", groups = {SaveValidView.class})
private String targetValue;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 状态值 1有效 0无效
*/
private Integer status;
/**
* 策略类型,1门店状态策略, 2门店分组策略
*/
private Integer strategyType;
/**
* 排序字段
*/
private Double sort;
/**
* 排序值
*/
private Integer seq;
/**
* 上移或者下移
*/
@NotNull(message = "移动标志参数值不能为空", groups = {SwapValidView.class})
@Min(value = StoreGroupConstant.SORT_UP, message = "移动标志参数值错误,小于1", groups = {SwapValidView.class})
@Max(value = StoreGroupConstant.SORT_TOPPING, message = "移动标志参数值错误,大于4", groups = {SwapValidView.class})
private Integer upOrDown;
/**
* 想要排序的值
*/
@NotNull(message = "排序值不能为空", groups = {SetSortValueValidView.class})
private Integer sortValue;
public Integer getStrategyId() {
return strategyId;
}
public void setStrategyId(Integer strategyId) {
this.strategyId = strategyId;
}
public String getStrategyName() {
return strategyName;
}
public void setStrategyName(String strategyName) {
this.strategyName = strategyName;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public Integer getStoreRegionId() {
return storeRegionId;
}
public void setStoreRegionId(Integer storeRegionId) {
this.storeRegionId = storeRegionId;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
public String getTargetValue() {
return targetValue;
}
public void setTargetValue(String targetValue) {
this.targetValue = targetValue;
}
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 getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Integer getStrategyType() {
return strategyType;
}
public void setStrategyType(Integer strategyType) {
this.strategyType = strategyType;
}
public Double getSort() {
return sort;
}
public void setSort(Double sort) {
this.sort = sort;
}
public Integer getSeq() {
return seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
public Integer getUpOrDown() {
return upOrDown;
}
public void setUpOrDown(Integer upOrDown) {
this.upOrDown = upOrDown;
}
public Integer getSortValue() {
return sortValue;
}
public void setSortValue(Integer sortValue) {
this.sortValue = sortValue;
}
}
package com.gic.store.web.vo.storestrategy;
import java.io.Serializable;
/**
* @author guojx
* @date 2019/7/4 2:36 PM
*/
public class StoreGroupStrateVO implements Serializable{
private static final long serialVersionUID = -9043482944829812330L;
/**
*
*/
private Integer strategyId;
/**
* 策略名称
*/
private String strategyName;
/**
* 排序字段
*/
private Double sort;
/**
* 排序值
*/
private Integer seq;
public Integer getStrategyId() {
return strategyId;
}
public void setStrategyId(Integer strategyId) {
this.strategyId = strategyId;
}
public String getStrategyName() {
return strategyName;
}
public void setStrategyName(String strategyName) {
this.strategyName = strategyName;
}
public Double getSort() {
return sort;
}
public void setSort(Double sort) {
this.sort = sort;
}
public Integer getSeq() {
return seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
}
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