Commit d623753e by guojuxing

自定义域字段-新增服务

parent b8bf010c
......@@ -76,14 +76,14 @@ public interface TabStoreFieldMapper {
* @param enterpriseId
* @return
*/
double getMinSort(@Param("enterpriseId") Integer enterpriseId);
Double getMinSort(@Param("enterpriseId") Integer enterpriseId);
/**
* 查询某字段最大排序值
* @param enterpriseId
* @return
*/
double getMaxSort(@Param("enterpriseId") Integer enterpriseId);
Double getMaxSort(@Param("enterpriseId") Integer enterpriseId);
/**
* 查询几条连续的记录
......@@ -107,4 +107,10 @@ public interface TabStoreFieldMapper {
int deleteAll(@Param("enterpriseId") Integer enterpriseId);
int deleteBatch(@Param("storeFieldIds") List<Integer> storeFieldIds);
int isRepeatCode(@Param("enterpriseId") Integer enterpriseId, @Param("storeFieldId") Integer storeFieldId,
@Param("storeFieldCode") String storeFieldCode);
int isRepeatName(@Param("enterpriseId") Integer enterpriseId, @Param("storeFieldId") Integer storeFieldId,
@Param("storeFieldName") String storeFieldName);
}
\ No newline at end of file
......@@ -83,4 +83,10 @@ public interface StoreFieldService {
* @return
*/
Page<TabStoreField> listStoreField(int enterpriseId, String search, Integer pageNum, Integer pageSize);
double getMinSort(int enterpriseId);
boolean isRepeatCode(Integer enterpriseId, Integer storeFieldId, String storeFieldCode);
boolean isRepeatName(Integer enterpriseId, Integer storeFieldId, String storeFieldName);
}
......@@ -114,8 +114,32 @@ public class StoreFieldServiceImpl implements StoreFieldService{
return (Page<TabStoreField>) list;
}
private void sortTopping(int enterpriseId, int storeFieldId) {
@Override
public double getMinSort(int enterpriseId) {
Double sort = tabStoreFieldMapper.getMinSort(enterpriseId);
return sort == null ? 1d : sort;
}
@Override
public boolean isRepeatCode(Integer enterpriseId, Integer storeFieldId, String storeFieldCode) {
int count = tabStoreFieldMapper.isRepeatCode(enterpriseId, storeFieldId, storeFieldCode);
if (count > 0) {
return true;
}
return false;
}
@Override
public boolean isRepeatName(Integer enterpriseId, Integer storeFieldId, String storeFieldName) {
int count = tabStoreFieldMapper.isRepeatName(enterpriseId, storeFieldId, storeFieldName);
if (count > 0) {
return true;
}
return false;
}
private void sortTopping(int enterpriseId, int storeFieldId) {
Double sort = getMinSort(enterpriseId);
TabStoreField storeField = new TabStoreField();
storeField.setStoreFieldId(storeFieldId);
storeField.setSort(sort - 1d);
......@@ -123,10 +147,15 @@ public class StoreFieldServiceImpl implements StoreFieldService{
}
private void sortBottom(int enterpriseId, int storeFieldId) {
Double sort = tabStoreFieldMapper.getMaxSort(enterpriseId);
Double sort = getMaxSort(enterpriseId);
TabStoreField storeField = new TabStoreField();
storeField.setStoreFieldId(storeFieldId);
storeField.setSort(sort + 1d);
tabStoreFieldMapper.updateByPrimaryKeySelective(storeField);
}
public double getMaxSort(int enterpriseId) {
Double sort = tabStoreFieldMapper.getMaxSort(enterpriseId);
return sort == null ? 1d : sort;
}
}
......@@ -37,10 +37,22 @@ public class StoreFieldApiServiceImpl implements StoreFieldApiService{
if (StringUtils.isBlank(storeFieldDTO.getStoreRegionId())) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "所属域参数值错误");
}
if (storeFieldDTO.getEnterpriseId() == null) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "企业ID参数值错误");
}
if (StringUtils.isNotBlank(storeFieldDTO.getErpRelCode())) {
if (storeFieldService.isRepeatCode(storeFieldDTO.getEnterpriseId(), null, storeFieldDTO.getStoreFieldCode())) {
return ServiceResponse.failure(ErrorCode.ERR_5.getCode(), "Code不能重复");
}
}
ServiceResponse validParamResult = StoreFieldValidParamUtil.validStoreFieldDetail(storeFieldDTO.getStoreFieldType(), storeFieldDTO.getStoreFieldDetail());
if (!validParamResult.isSuccess()) {
return validParamResult;
}
storeFieldDTO.setCreateTime(new Date());
storeFieldDTO.setUpdateTime(new Date());
storeFieldDTO.setStatus(1);
storeFieldDTO.setSort(storeFieldService.getMinSort(storeFieldDTO.getEnterpriseId()) - 1);
return ServiceResponse.success(storeFieldService.save(storeFieldDTO));
}
......
......@@ -58,7 +58,7 @@ public class StoreFieldValidParamUtil {
StoreFieldTypeEnum typeEnum = StoreFieldTypeEnum.getByCode(fieldType);
switch (typeEnum) {
case TEXT:
return validCheckTypeParam(json);
return validTextTypeParam(json);
case DATE:
return validDateTypeParam(json);
case CHECK:
......
......@@ -196,11 +196,11 @@
</select>
<select id="getMinSort" resultType="java.lang.Double">
select ifnull(sort, 0) from tab_store_field where enterprise_id = #{enterpriseId} and status = 1 order by sort limit 0, 1
select sort from tab_store_field where enterprise_id = #{enterpriseId} and status = 1 order by sort limit 0, 1
</select>
<select id="getMaxSort" resultType="java.lang.Double">
select ifnull(sort, 0) from tab_store_field where enterprise_id = #{enterpriseId} and status = 1 order by sort desc limit 0, 1
select sort from tab_store_field where enterprise_id = #{enterpriseId} and status = 1 order by sort desc limit 0, 1
</select>
<select id="listTwoElementExceptId" resultMap="BaseResultMap">
......@@ -245,4 +245,31 @@
#{item}
</foreach>
</update>
<select id="isRepeatCode" resultMap="BaseResultMap">
select
count(1)
from tab_store_field
where
status = 1
<if test="storeFieldId != null ">
and store_field_id &lt;&gt; #{storeFieldId}
</if>
and enterprise_id = #{enterpriseId}
and store_field_code = #{storeFieldCode}
</select>
<select id="isRepeatName" resultMap="BaseResultMap">
select
count(1)
from tab_store_field
where
status = 1
<if test="storeFieldId != null ">
and store_field_id &lt;&gt; #{storeFieldId}
</if>
and enterprise_id = #{enterpriseId}
and store_field_name = #{storeFieldName}
</select>
</mapper>
\ No newline at end of file
......@@ -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.webapi.reponse.RestResponse;
import com.gic.store.constant.StoreFieldDateEnum;
import com.gic.store.constant.StoreFieldTextEnum;
import com.gic.store.constant.StoreFieldTypeEnum;
import com.gic.store.constant.StoreGroupConstant;
......@@ -17,6 +18,7 @@ import com.gic.store.utils.ErrorCode;
import com.gic.store.web.qo.PageQO;
import com.gic.store.web.qo.storefield.StoreFieldQO;
import com.gic.store.web.qo.storefield.StoreFieldSelectQO;
import com.gic.store.web.vo.storefield.StoreFieldEditVO;
import com.gic.store.web.vo.storefield.StoreFieldVO;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -58,6 +60,15 @@ public class StoreFieldController {
return RestResponse.success(result);
}
@RequestMapping("/list-store-field-date-type")
public RestResponse listStoreFieldDateType() {
Map<Integer, String> result = new HashMap<>(16);
for (StoreFieldDateEnum typeEnum : StoreFieldDateEnum.values()) {
result.put(typeEnum.getCode(), typeEnum.getMessage());
}
return RestResponse.success(result);
}
/**
* 文本类型
* @return
......@@ -77,7 +88,7 @@ public class StoreFieldController {
String[] regionArr = regions.split(",");
StringBuilder region = new StringBuilder("_");
for (String str : regionArr) {
region.append(str);
region.append(Integer.parseInt(str));
region.append("_");
}
storeFieldQO.setStoreRegionId(region.toString());
......@@ -107,9 +118,13 @@ public class StoreFieldController {
@RequestMapping("/get-store-field")
public RestResponse getStoreField(@Validated({StoreFieldQO.RemoveValidView.class}) StoreFieldQO storeFieldQO) {
ServiceResponse result = storeFieldApiService.getStoreField(storeFieldQO.getStoreFieldId());
ServiceResponse<StoreFieldDTO> result = storeFieldApiService.getStoreField(storeFieldQO.getStoreFieldId());
if (result.isSuccess()) {
return RestResponse.success(result.getResult());
StoreFieldEditVO vo = EntityUtil.changeEntityNew(StoreFieldEditVO.class, result.getResult());
String regionId = result.getResult().getStoreRegionId();
String tempRegion = regionId.replaceAll("_", ",");
vo.setStoreRegionIds(tempRegion.substring(1, tempRegion.length() - 1));
return RestResponse.success(vo);
} else {
return RestResponse.failure(result.getCode(), result.getMessage());
}
......
package com.gic.store.web.vo.storefield;
import java.io.Serializable;
/**
* @author guojx
* @date 2019/7/2 6:56 PM
*/
public class StoreFieldEditVO implements Serializable{
private static final long serialVersionUID = -1642511062822467332L;
/**
*
*/
private Integer storeFieldId;
/**
* 属性名称
*/
private String storeFieldName;
/**
* 属性code
*/
private String storeFieldCode;
/**
* 字段类型;1文本 2单选 3多选 4实数 5时间
*/
private Integer storeFieldType;
/**
* 门店域id
*/
private String storeRegionIds;
/**
* 排序字段
*/
private Double sort;
/**
* 字段详细配置
*/
private String storeFieldDetail;
public Integer getStoreFieldId() {
return storeFieldId;
}
public void setStoreFieldId(Integer storeFieldId) {
this.storeFieldId = storeFieldId;
}
public String getStoreFieldName() {
return storeFieldName;
}
public void setStoreFieldName(String storeFieldName) {
this.storeFieldName = storeFieldName;
}
public String getStoreFieldCode() {
return storeFieldCode;
}
public void setStoreFieldCode(String storeFieldCode) {
this.storeFieldCode = storeFieldCode;
}
public Integer getStoreFieldType() {
return storeFieldType;
}
public void setStoreFieldType(Integer storeFieldType) {
this.storeFieldType = storeFieldType;
}
public String getStoreRegionIds() {
return storeRegionIds;
}
public void setStoreRegionIds(String storeRegionIds) {
this.storeRegionIds = storeRegionIds;
}
public Double getSort() {
return sort;
}
public void setSort(Double sort) {
this.sort = sort;
}
public String getStoreFieldDetail() {
return storeFieldDetail;
}
public void setStoreFieldDetail(String storeFieldDetail) {
this.storeFieldDetail = storeFieldDetail;
}
}
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