Commit 3cd1126c by zhiwj

Merge remote-tracking branch 'origin/developer' into developer

parents bccc81cf 606b95ed
......@@ -66,6 +66,11 @@ public class StoreStrategyDTO implements Serializable{
private Double sort;
/**
* 策略类型,1门店状态策略时候,可以多选,门店创建方式,1:后台新增 2:批量导入 3:订单生成 4:erp同步,可以多选 _1_2_格式
*/
private String storeCreateType;
/**
* 排序值
*/
private Integer seq;
......@@ -165,4 +170,12 @@ public class StoreStrategyDTO implements Serializable{
public void setSeq(Integer seq) {
this.seq = seq;
}
public String getStoreCreateType() {
return storeCreateType;
}
public void setStoreCreateType(String storeCreateType) {
this.storeCreateType = storeCreateType;
}
}
......@@ -11,51 +11,64 @@ import com.gic.store.dto.StoreStrategyDTO;
public interface StoreStrategyApiService {
/**
* 新增 分组策略数据
* 新增 策略数据
* @param storeStrategyDTO
* @return
*/
ServiceResponse<Integer> saveStoreGroupStrategy(StoreStrategyDTO storeStrategyDTO);
ServiceResponse<Integer> saveStoreStrategy(StoreStrategyDTO storeStrategyDTO);
/**
* 删除分组策略(单条)
* 删除分组(单条)
* @param strategyId
* @return
*/
ServiceResponse<Integer> deleteStoreGroupStrategy(int strategyId);
ServiceResponse<Integer> deleteStoreStrategy(int strategyId);
/**
* 修改分组策略
* 修改策略
* @param storeStrategyDTO
* @return
*/
ServiceResponse<Integer> modifyStoreGroupStrategy(StoreStrategyDTO storeStrategyDTO);
ServiceResponse<Integer> modifyStoreStrategy(StoreStrategyDTO storeStrategyDTO);
/**
* 根据主键ID获取数据
* @param strategyId
* @return
*/
ServiceResponse<StoreStrategyDTO> getStoreStrategyById(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);
/**
* 分页查询分组策略数据
......@@ -67,4 +80,9 @@ public interface StoreStrategyApiService {
* @return
*/
ServiceResponse<Page<StoreStrategyDTO>> listStoreField(int enterpriseId, String search, int strategyType, Integer pageNum, Integer pageSize);
ServiceResponse setStoreGroupStrategyWeight(Integer enterpriseId, int weight);
ServiceResponse getStoreGroupStrategyWeight(Integer enterpriseId);
}
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabStoreGroupStrategyWeights;
public interface TabStoreGroupStrategyWeightsMapper {
/**
* 根据主键删除
*
* @param weightsId 主键
* @return 更新条目数
*/
int deleteByPrimaryKey(Integer weightsId);
/**
* 插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insert(TabStoreGroupStrategyWeights record);
/**
* 动态插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insertSelective(TabStoreGroupStrategyWeights record);
/**
* 根据主键查询
*
* @param weightsId 主键
* @return 实体对象
*/
TabStoreGroupStrategyWeights selectByPrimaryKey(Integer weightsId);
/**
* 根据主键动态更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKeySelective(TabStoreGroupStrategyWeights record);
/**
* 根据主键更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKey(TabStoreGroupStrategyWeights record);
/**
* 查询
* @param record
* @return
*/
TabStoreGroupStrategyWeights selectByPrimary(TabStoreGroupStrategyWeights record);
}
\ No newline at end of file
package com.gic.store.entity;
import java.util.Date;
/**
* tab_store_group_strategy_weights
*/
public class TabStoreGroupStrategyWeights {
/**
*
*/
private Integer weightsId;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 人为操作填写过门店分组后,门店资料更新不再执行快捷分组策略 1开启 0不开启
*/
private Integer status;
/**
*
*/
private Integer enterpriseId;
public Integer getWeightsId() {
return weightsId;
}
public void setWeightsId(Integer weightsId) {
this.weightsId = weightsId;
}
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 getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
\ No newline at end of file
......@@ -61,6 +61,11 @@ public class TabStoreStrategy {
*/
private Double sort;
/**
* 策略类型,1门店状态策略时候,可以多选,门店创建方式,1:后台新增 2:批量导入 3:订单生成 4:erp同步,可以多选 _1_2_格式
*/
private String storeCreateType;
public Integer getStrategyId() {
return strategyId;
}
......@@ -148,4 +153,12 @@ public class TabStoreStrategy {
public void setSort(Double sort) {
this.sort = sort;
}
public String getStoreCreateType() {
return storeCreateType;
}
public void setStoreCreateType(String storeCreateType) {
this.storeCreateType = storeCreateType;
}
}
\ No newline at end of file
package com.gic.store.service;
import com.gic.store.entity.TabStoreGroupStrategyWeights;
/**
* @author guojx
* @date 2019/7/4 9:24 AM
*/
public interface StoreGroupStrategyWeightsService {
/**
* 获取分组权重
* @param enterpriseId
* @return
*/
TabStoreGroupStrategyWeights getWeightByEnterpriseId(Integer enterpriseId);
/**
* 保存数据
* @param record
* @return
*/
int saveOrUpdate(TabStoreGroupStrategyWeights record);
/**
* 权重是否启用,如果启用,则不执行分组策略
* @return
*/
boolean isEnabled(Integer enterpriseId);
}
......@@ -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);
}
package com.gic.store.service.impl;
import com.gic.store.dao.mapper.TabStoreGroupStrategyWeightsMapper;
import com.gic.store.entity.TabStoreGroupStrategyWeights;
import com.gic.store.service.StoreGroupStrategyWeightsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @author guojx
* @date 2019/7/4 9:26 AM
*/
@Service("storeGroupStrategyWeightsService")
public class StoreGroupStrategyWeightsServiceImpl implements StoreGroupStrategyWeightsService{
@Autowired
private TabStoreGroupStrategyWeightsMapper tabStoreGroupStrategyWeightsMapper;
@Override
public TabStoreGroupStrategyWeights getWeightByEnterpriseId(Integer enterpriseId) {
TabStoreGroupStrategyWeights record = new TabStoreGroupStrategyWeights();
record.setEnterpriseId(enterpriseId);
return tabStoreGroupStrategyWeightsMapper.selectByPrimary(record);
}
@Override
public int saveOrUpdate(TabStoreGroupStrategyWeights record) {
TabStoreGroupStrategyWeights old = getWeightByEnterpriseId(record.getEnterpriseId());
record.setUpdateTime(new Date());
if (old != null) {
record.setCreateTime(old.getCreateTime());
record.setWeightsId(old.getWeightsId());
return tabStoreGroupStrategyWeightsMapper.updateByPrimaryKeySelective(record);
} else {
record.setCreateTime(new Date());
return tabStoreGroupStrategyWeightsMapper.insert(record);
}
}
@Override
public boolean isEnabled(Integer enterpriseId) {
TabStoreGroupStrategyWeights old = getWeightByEnterpriseId(enterpriseId);
if (old != null && old.getStatus() != null && old.getStatus().intValue() == 1) {
return true;
}
return false;
}
}
......@@ -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);
......
......@@ -4,6 +4,7 @@ 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.redis.data.util.RedisUtil;
import com.gic.store.constant.StoreGroupConstant;
import com.gic.store.dto.StoreStrategyDTO;
import com.gic.store.entity.TabStoreStrategy;
......@@ -28,7 +29,7 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
private StoreStrategyService storeStrategyService;
@Override
public ServiceResponse<Integer> saveStoreGroupStrategy(StoreStrategyDTO storeStrategyDTO) {
public ServiceResponse<Integer> saveStoreStrategy(StoreStrategyDTO storeStrategyDTO) {
if (StringUtils.isBlank(storeStrategyDTO.getStrategyName())) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略名称不能为空");
}
......@@ -41,8 +42,17 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
if (StringUtils.isBlank(storeStrategyDTO.getTargetValue())) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略命中值不能为空");
}
//分组策略
storeStrategyDTO.setStrategyType(StoreGroupConstant.STORE_GROUP_STRATEGY_TYPE);
if (storeStrategyDTO.getStrategyType() == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略类型不能为空");
}
if (storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE) {
//如果是门店状态策略类型,必须有
if (StringUtils.isBlank(storeStrategyDTO.getStoreCreateType())) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "门店创建方式不能为空");
}
}
storeStrategyDTO.setCreateTime(new Date());
storeStrategyDTO.setUpdateTime(new Date());
storeStrategyDTO.setStatus(1);
......@@ -58,7 +68,7 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
@Override
public ServiceResponse<Integer> deleteStoreGroupStrategy(int strategyId) {
public ServiceResponse<Integer> deleteStoreStrategy(int strategyId) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
......@@ -67,7 +77,7 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
@Override
public ServiceResponse<Integer> modifyStoreGroupStrategy(StoreStrategyDTO storeStrategyDTO) {
public ServiceResponse<Integer> modifyStoreStrategy(StoreStrategyDTO storeStrategyDTO) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(storeStrategyDTO.getStrategyId());
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
......@@ -85,32 +95,64 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
@Override
public ServiceResponse<Integer> sortBottom(int strategyId, int strategyType) {
public ServiceResponse<StoreStrategyDTO> getStoreStrategyById(int strategyId) {
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(strategyId);
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "策略主键ID错误,查询不到数据");
}
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.sortBottom(storeStrategy.getEnterpriseId(), strategyId, strategyType);
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();
}
......@@ -125,4 +167,19 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
return ServiceResponse.success(page);
}
@Override
public ServiceResponse setStoreGroupStrategyWeight(Integer enterpriseId, int weight) {
RedisUtil.setCache("enterprise:store:storeGroupStrategy:"+enterpriseId, weight);
return ServiceResponse.success();
}
@Override
public ServiceResponse getStoreGroupStrategyWeight(Integer enterpriseId) {
Object value = RedisUtil.getCache("enterprise:store:storeGroupStrategy:"+enterpriseId);
if(value == null){
ServiceResponse.success(0);
}
return ServiceResponse.success(Integer.valueOf(value.toString()));
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.store.dao.mapper.TabStoreGroupStrategyWeightsMapper">
<resultMap id="BaseResultMap" type="com.gic.store.entity.TabStoreGroupStrategyWeights">
<id column="weights_id" jdbcType="INTEGER" property="weightsId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
</resultMap>
<sql id="Base_Column_List">
weights_id, create_time, update_time, status, enterprise_id
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_group_strategy_weights
where weights_id = #{weightsId,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tab_store_group_strategy_weights
where weights_id = #{weightsId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.gic.store.entity.TabStoreGroupStrategyWeights">
insert into tab_store_group_strategy_weights (weights_id, create_time, update_time,
status, enterprise_id)
values (#{weightsId,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP},
#{status,jdbcType=INTEGER}, #{enterpriseId,jdbcType=INTEGER})
</insert>
<insert id="insertSelective" parameterType="com.gic.store.entity.TabStoreGroupStrategyWeights">
insert into tab_store_group_strategy_weights
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="weightsId != null">
weights_id,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="status != null">
status,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="weightsId != null">
#{weightsId,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.store.entity.TabStoreGroupStrategyWeights">
update tab_store_group_strategy_weights
<set>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
<if test="enterpriseId != null">
enterprise_id = #{enterpriseId,jdbcType=INTEGER},
</if>
</set>
where weights_id = #{weightsId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.store.entity.TabStoreGroupStrategyWeights">
update tab_store_group_strategy_weights
set create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER},
enterprise_id = #{enterpriseId,jdbcType=INTEGER}
where weights_id = #{weightsId,jdbcType=INTEGER}
</update>
<select id="selectByPrimary" parameterType="com.gic.store.entity.TabStoreGroupStrategyWeights" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_store_group_strategy_weights
where 1 = 1
<if test="weightsId != null">
and weights_id = #{weightsId}
</if>
<if test="status != null">
and status = #{status}
</if>
<if test="enterpriseId != null">
and enterprise_id = #{enterpriseId}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -13,10 +13,11 @@
<result column="status" jdbcType="INTEGER" property="status" />
<result column="strategy_type" jdbcType="INTEGER" property="strategyType" />
<result column="sort" jdbcType="DOUBLE" property="sort" />
<result column="store_create_type" jdbcType="VARCHAR" property="storeCreateType" />
</resultMap>
<sql id="Base_Column_List">
strategy_id, strategy_name, enterprise_id, store_region_id, condition, target_value,
create_time, update_time, status, strategy_type, sort
create_time, update_time, status, strategy_type, sort, store_create_type
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
......@@ -32,11 +33,11 @@
insert into tab_store_strategy (strategy_id, strategy_name, enterprise_id,
store_region_id, condition, target_value,
create_time, update_time, status,
strategy_type, sort)
strategy_type, sort, store_create_type)
values (#{strategyId,jdbcType=INTEGER}, #{strategyName,jdbcType=VARCHAR}, #{enterpriseId,jdbcType=INTEGER},
#{storeRegionId,jdbcType=INTEGER}, #{condition,jdbcType=VARCHAR}, #{targetValue,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER},
#{strategyType,jdbcType=INTEGER}, #{sort,jdbcType=DOUBLE})
#{strategyType,jdbcType=INTEGER}, #{sort,jdbcType=DOUBLE}, #{storeCreateType,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.gic.store.entity.TabStoreStrategy">
insert into tab_store_strategy
......@@ -74,6 +75,9 @@
<if test="sort != null">
sort,
</if>
<if test="storeCreateType != null">
store_create_type,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="strategyId != null">
......@@ -109,6 +113,9 @@
<if test="sort != null">
#{sort,jdbcType=DOUBLE},
</if>
<if test="storeCreateType != null">
#{storeCreateType,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.store.entity.TabStoreStrategy">
......@@ -144,6 +151,9 @@
<if test="sort != null">
sort = #{sort,jdbcType=DOUBLE},
</if>
<if test="storeCreateType != null">
store_create_type = #{storeCreateType,jdbcType=VARCHAR},
</if>
</set>
where strategy_id = #{strategyId,jdbcType=INTEGER}
</update>
......@@ -158,7 +168,8 @@
update_time = #{updateTime,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER},
strategy_type = #{strategyType,jdbcType=INTEGER},
sort = #{sort,jdbcType=DOUBLE}
sort = #{sort,jdbcType=DOUBLE},
store_create_type = #{storeCreateType,jdbcType=VARCHAR}
where strategy_id = #{strategyId,jdbcType=INTEGER}
</update>
......
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.utils.ErrorCode;
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-strategy")
public RestResponse saveStoreStrategy(@Validated({StoreStrategyQO.SaveValidView.class, StoreStrategyQO.StoreStrategyTypeValidView.class})
StoreStrategyQO storeStrategyQO) {
//分组策略类型
storeStrategyQO.setStrategyType(StoreGroupConstant.STORE_GROUP_STRATEGY_TYPE);
ServiceResponse result = storeStrategyApiService.saveStoreStrategy(transferQoToDTO(storeStrategyQO));
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/edit-store-strategy")
public RestResponse editStoreStrategy(@Validated({StoreStrategyQO.SaveValidView.class, StoreStrategyQO.RemoveValidView.class})
StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.modifyStoreStrategy(transferQoToDTO(storeStrategyQO));
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/get-store-strategy")
public RestResponse getStoreStrategy(@Validated({StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.getStoreStrategyById(storeStrategyQO.getStrategyId());
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/delete-store-strategy")
public RestResponse deleteStoreStrategy(@Validated({StoreStrategyQO.RemoveValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse result = storeStrategyApiService.deleteStoreStrategy(storeStrategyQO.getStrategyId());
if (!result.isSuccess()) {
return RestResponse.failure(result.getCode(), result.getMessage());
}
return RestResponse.success(result.getResult());
}
@RequestMapping("/swap-store-strategy")
public RestResponse swapStoreStrategy(@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-strategy-sort-value")
public RestResponse setStoreStrategySortValue(@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-strategy")
public RestResponse listStoreStrategy(String search, PageQO pageQO, @Validated({StoreStrategyQO.StoreStrategyTypeValidView.class}) StoreStrategyQO storeStrategyQO) {
ServiceResponse<Page<StoreStrategyDTO>> result = storeStrategyApiService.listStoreField(StoreGroupConstant.TEST_ENTERPRISE_ID
, search, storeStrategyQO.getStrategyType(), 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());
}
}
@RequestMapping("/update-store-strategy-weights")
public RestResponse updateWeight(Integer weight) {
if (weight == null) {
RestResponse.failure(ErrorCode.ERR_5.getCode(), "参数错误");
}
ServiceResponse<Integer> result = storeStrategyApiService.setStoreGroupStrategyWeight(StoreGroupConstant.TEST_ENTERPRISE_ID, weight);
return RestResponse.success(result.getResult());
}
@RequestMapping("/get-store-strategy-weights")
public RestResponse getWeight() {
ServiceResponse<Integer> result = storeStrategyApiService.getStoreGroupStrategyWeight(StoreGroupConstant.TEST_ENTERPRISE_ID);
return RestResponse.success(result.getResult());
}
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 StoreStrategyTypeValidView {
}
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门店分组策略
*/
@NotNull(message = "策略类型不能为空", groups = {StoreStrategyTypeValidView.class})
@Min(value = StoreGroupConstant.STORE_STRATEGY_TYPE, message = "策略类型参数值错误,小于1", groups = {StoreStrategyTypeValidView.class})
@Max(value = StoreGroupConstant.STORE_GROUP_STRATEGY_TYPE, message = "策略类型参数值错误,大于2", groups = {StoreStrategyTypeValidView.class})
private Integer strategyType;
/**
* 排序字段
*/
private Double sort;
/**
* 策略类型,1门店状态策略时候,可以多选,门店创建方式,1:后台新增 2:批量导入 3:订单生成 4:erp同步,可以多选 _1_2_格式
*/
private String storeCreateType;
/**
* 排序值
*/
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;
}
public static long getSerialVersionUID() {
return serialVersionUID;
}
}
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