Commit bbdec22c by guojuxing

门店策略保存

parent f0d22b31
......@@ -41,47 +41,10 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
@Override
public ServiceResponse<Integer> saveStoreStrategy(StoreStrategyDTO storeStrategyDTO) {
ServiceResponse validParam = ValidUtil.allCheckValidate(storeStrategyDTO, SaveStoreStrategy.class);
if (!validParam.isSuccess()) {
return validParam;
}
if (storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE) {
//如果是门店状态策略类型,必须有
if (StringUtils.isBlank(storeStrategyDTO.getStoreCreateType())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店创建方式不能为空");
}
}
String conditions = storeStrategyDTO.getConditions();
boolean isNotRightConditionsField = storeStrategyDTO.getStrategyType() != StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (isNotRightConditionsField) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店分组策略条件不能为空");
String errorMessage = validParam(storeStrategyDTO;
if (StringUtils.isNotBlank(errorMessage)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), errorMessage);
}
//是否是门店启用状态没有选择条件,即所有门店策略
boolean isAllConditions = storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (!isAllConditions) {
//验证conditions合法性
if (isConditionsSizeOver(conditions)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店属性条件配置超出5个");
}
if (validConditionsIsRepeatKey(conditions)) {
ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店属性条件每一种都不能重复");
}
}
storeStrategyDTO.setCreateTime(new Date());
storeStrategyDTO.setUpdateTime(new Date());
storeStrategyDTO.setDeleteFlag(0);
//sort
storeStrategyDTO.setSort(storeStrategyService.getMinSort(storeStrategyDTO.getEnterpriseId(), storeStrategyDTO.getStrategyType()) - 1d);
TabStoreStrategy record = EntityUtil.changeEntityNew(TabStoreStrategy.class, storeStrategyDTO);
if (storeStrategyService.isRepeatGroupStrategyName(record)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "策略名称不能重复");
}
return ServiceResponse.success(storeStrategyService.saveStoreGroupStrategy(storeStrategyDTO));
}
......@@ -97,47 +60,9 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
@Override
public ServiceResponse<Integer> editStoreStrategy(StoreStrategyDTO storeStrategyDTO) {
ServiceResponse validParam = ValidUtil.allCheckValidate(storeStrategyDTO, SaveStoreStrategy.class);
if (!validParam.isSuccess()) {
return validParam;
}
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(storeStrategyDTO.getStrategyId());
if (storeStrategy == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "策略主键ID错误,查询不到数据");
}
String conditions = storeStrategyDTO.getConditions();
boolean isNotRightConditionsField = storeStrategyDTO.getStrategyType() != StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (isNotRightConditionsField) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店分组策略条件不能为空");
}
//是否是门店启用状态没有选择条件,即所有门店策略
boolean isAllConditions = storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (!isAllConditions) {
//验证conditions合法性
if (isConditionsSizeOver(conditions)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店属性条件配置超出5个");
}
if (validConditionsIsRepeatKey(conditions)) {
ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店属性条件每一种都不能重复");
}
}
if (storeStrategy.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE) {
//如果是门店状态策略类型,必须有
if (StringUtils.isBlank(storeStrategyDTO.getStoreCreateType())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店创建方式不能为空");
}
}
storeStrategyDTO.setCreateTime(storeStrategy.getCreateTime());
storeStrategyDTO.setUpdateTime(new Date());
storeStrategyDTO.setEnterpriseId(storeStrategy.getEnterpriseId());
storeStrategyDTO.setStrategyType(storeStrategy.getStrategyType());
TabStoreStrategy record = EntityUtil.changeEntityNew(TabStoreStrategy.class, storeStrategyDTO);
if (storeStrategyService.isRepeatGroupStrategyName(record)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "策略名称不能重复");
String errorMessage = validParam(storeStrategyDTO;
if (StringUtils.isNotBlank(errorMessage)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), errorMessage);
}
return ServiceResponse.success(storeStrategyService.modifyStoreGroupStrategy(storeStrategyDTO));
}
......@@ -284,4 +209,67 @@ public class StoreStrategyApiServiceImpl implements StoreStrategyApiService{
}
return false;
}
/**
* 验证新增/编辑参数
* @param storeStrategyDTO
* @return 错误信息
*/
private String validParam(StoreStrategyDTO storeStrategyDTO) {
ServiceResponse validParam = ValidUtil.allCheckValidate(storeStrategyDTO, SaveStoreStrategy.class);
if (!validParam.isSuccess()) {
return validParam.getMessage();
}
TabStoreStrategy storeStrategy = storeStrategyService.getStoreStrategyById(storeStrategyDTO.getStrategyId());
//是否是新增操作
boolean isAddOperation = storeStrategy == null;
boolean isStoreStrategyType = storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE;
if (isStoreStrategyType) {
//如果是门店状态策略类型,必须有
if (StringUtils.isBlank(storeStrategyDTO.getStoreCreateType())) {
return "门店创建方式不能为空";
}
}
String conditions = storeStrategyDTO.getConditions();
boolean isNotRightConditionsField = storeStrategyDTO.getStrategyType() != StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (isNotRightConditionsField) {
return "门店分组策略条件不能为空";
}
//是否是门店启用状态没有选择条件,即所有门店策略
boolean isAllConditions = storeStrategyDTO.getStrategyType() == StoreGroupConstant.STORE_STRATEGY_TYPE && StringUtils.isBlank(conditions);
if (!isAllConditions) {
//验证conditions合法性
if (isConditionsSizeOver(conditions)) {
return "门店属性条件配置超出5个";
}
if (validConditionsIsRepeatKey(conditions)) {
return "门店属性条件每一种都不能重复";
}
}
if (isAddOperation) {
storeStrategyDTO.setCreateTime(new Date());
storeStrategyDTO.setUpdateTime(new Date());
storeStrategyDTO.setDeleteFlag(0);
//sort
storeStrategyDTO.setSort(storeStrategyService.getMinSort(storeStrategyDTO.getEnterpriseId(), storeStrategyDTO.getStrategyType()) - 1d);
} else {
storeStrategyDTO.setCreateTime(storeStrategy.getCreateTime());
storeStrategyDTO.setUpdateTime(new Date());
storeStrategyDTO.setEnterpriseId(storeStrategy.getEnterpriseId());
storeStrategyDTO.setStrategyType(storeStrategy.getStrategyType());
}
TabStoreStrategy record = EntityUtil.changeEntityNew(TabStoreStrategy.class, storeStrategyDTO);
if (storeStrategyService.isRepeatGroupStrategyName(record)) {
return "策略名称不能重复";
}
return null;
}
}
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