Commit 85fc44ae by zhiwj

bug

parent 9617defa
......@@ -50,6 +50,7 @@ public class ClerkPositionDTO implements Serializable {
*
*/
private Integer status;
private int seq;
public Integer getClerkPositionId() {
return clerkPositionId;
......@@ -114,4 +115,12 @@ public class ClerkPositionDTO implements Serializable {
public void setStatus(Integer status) {
this.status = status;
}
public void setSeq(int seq) {
this.seq = seq;
}
public int getSeq() {
return seq;
}
}
......@@ -57,23 +57,25 @@ public interface ClerkPositionApiService {
* @Title: listClerkPosition
* @Description:
* @author zhiwj
* @param enterpriseId
* @param search
* @param currentPage
* @param pageSize
* @return com.gic.api.base.commons.ServiceResponse<com.gic.api.base.commons.Page<com.gic.store.dto.ClerkPositionDTO>>
* @throws
*/
ServiceResponse<Page<ClerkPositionDTO>> listClerkPosition(String search, Integer currentPage, Integer pageSize);
ServiceResponse<Page<ClerkPositionDTO>> listClerkPosition(Integer enterpriseId, String search, Integer currentPage, Integer pageSize);
/**
* @Title: listAllClerkPosition
* @Description:
* @author zhiwj
* @param enterpriseId
* @param search
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.store.dto.ClerkPositionDTO>>
* @throws
*/
ServiceResponse<List<ClerkPositionDTO>> listAllClerkPosition(String search);
ServiceResponse<List<ClerkPositionDTO>> listAllClerkPosition(Integer enterpriseId, String search);
/**
* @Title: setSort
......
......@@ -2,6 +2,9 @@ package com.gic.store.dao.mapper;
import com.gic.store.entity.TabClerkPosition;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TabClerkPositionMapper {
/**
......@@ -54,5 +57,11 @@ public interface TabClerkPositionMapper {
TabClerkPosition getSelective(TabClerkPosition tabClerkPosition);
Page<TabClerkPosition> listClerkPosition(String search);
Page<TabClerkPosition> listClerkPosition(@Param("enterpriseId") Integer enterpriseId, @Param("search") String search);
Double getMinSort(@Param("enterpriseId") Integer enterpriseId);
Double getMaxSort(@Param("enterpriseId") Integer enterpriseId);
List<TabClerkPosition> listTwoElementExceptId(@Param("enterpriseId") Integer enterpriseId, @Param("start") int start, @Param("size") int size, @Param("clerkPositionId") Integer clerkPositionId);
}
\ No newline at end of file
......@@ -22,9 +22,15 @@ public interface ClerkPositionService {
TabClerkPosition getByClerkPositionId(Integer clerkPositionId);
Page<TabClerkPosition> listClerkPosition(String search, Integer currentPage, Integer pageSize);
Page<TabClerkPosition> listClerkPosition(Integer enterpriseId, String search, Integer currentPage, Integer pageSize);
List<TabClerkPosition> listAllClerkPosition(String search);
List<TabClerkPosition> listAllClerkPosition(Integer enterpriseId, String search);
void deleteById(Integer clerkPositionId);
void setSort(Integer enterpriseId, Integer clerkPositionId, Integer seq);
void sortTopping(Integer enterpriseId, Integer clerkPositionId);
void sortBottom(Integer enterpriseId, Integer clerkPositionId);
}
......@@ -7,6 +7,7 @@ import com.gic.store.entity.TabClerkPosition;
import com.gic.store.service.ClerkPositionService;
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;
......@@ -47,6 +48,8 @@ public class ClerkPositionServiceImpl implements ClerkPositionService {
TabClerkPosition clerkPosition = EntityUtil.changeEntityByJSON(TabClerkPosition.class, clerkPositionDTO);
clerkPosition.setCreateTime(new Date());
clerkPosition.setStatus(1);
Double sort = tabClerkPositionMapper.getMinSort(clerkPositionDTO.getEnterpriseId());
clerkPosition.setSort(sort == null ? 1d : sort - 1d);
tabClerkPositionMapper.insertSelective(clerkPosition);
}
......@@ -62,14 +65,14 @@ public class ClerkPositionServiceImpl implements ClerkPositionService {
}
@Override
public Page<TabClerkPosition> listClerkPosition(String search, Integer currentPage, Integer pageSize) {
public Page<TabClerkPosition> listClerkPosition(Integer enterpriseId, String search, Integer currentPage, Integer pageSize) {
PageHelper.startPage(currentPage, pageSize);
return tabClerkPositionMapper.listClerkPosition(search);
return tabClerkPositionMapper.listClerkPosition(enterpriseId, search);
}
@Override
public List<TabClerkPosition> listAllClerkPosition(String search) {
return tabClerkPositionMapper.listClerkPosition(search);
public Page<TabClerkPosition> listAllClerkPosition(Integer enterpriseId, String search) {
return tabClerkPositionMapper.listClerkPosition(enterpriseId, search);
}
@Override
......@@ -79,4 +82,54 @@ public class ClerkPositionServiceImpl implements ClerkPositionService {
clerkPosition.setStatus(0);
tabClerkPositionMapper.updateByPrimaryKeySelective(clerkPosition);
}
@Override
public void setSort(Integer enterpriseId, Integer clerkPositionId, Integer seq) {
if (seq <= 3) {
// 相当于置顶
sortTopping(enterpriseId, clerkPositionId);
} else {
int start = seq - 2;
int size = 2;
List<TabClerkPosition> list = tabClerkPositionMapper.listTwoElementExceptId(enterpriseId, start, size, clerkPositionId);
if (CollectionUtils.isEmpty(list)) {
// 置底
sortBottom(enterpriseId, clerkPositionId);
} else {
Double sort;
if (list.size() == 1) {
// 置底
sort = list.get(0).getSort() + 1d;
} else {
sort = (list.get(0).getSort() + list.get(1).getSort()) / 2d;
}
TabClerkPosition clerkPosition = new TabClerkPosition();
clerkPosition.setClerkPositionId(clerkPositionId);
clerkPosition.setSort(sort);
tabClerkPositionMapper.updateByPrimaryKeySelective(clerkPosition);
}
}
}
@Override
public void sortTopping(Integer enterpriseId, Integer clerkPositionId) {
Double sort = tabClerkPositionMapper.getMinSort(enterpriseId);
TabClerkPosition clerkPosition = new TabClerkPosition();
clerkPosition.setClerkPositionId(clerkPositionId);
clerkPosition.setSort(sort - 1d);
tabClerkPositionMapper.updateByPrimaryKeySelective(clerkPosition);
}
@Override
public void sortBottom(Integer enterpriseId, Integer clerkPositionId) {
Double sort = tabClerkPositionMapper.getMaxSort(enterpriseId);
if (sort != null) {
TabClerkPosition clerkPosition = new TabClerkPosition();
clerkPosition.setClerkPositionId(clerkPositionId);
clerkPosition.setSort(sort + 1d);
tabClerkPositionMapper.updateByPrimaryKeySelective(clerkPosition);
}
}
}
......@@ -218,6 +218,7 @@ public class StoreServiceImpl implements StoreService {
store.setEnterpriseId(enterpriseId);
store.setStoreName(storeName);
store.setStoreInfoId(storeId);
store.setOverflowStatus(0);
return tabStoreInfoMapper.countBySelective(store);
}
......
......@@ -10,6 +10,7 @@ import com.gic.store.dto.ClerkPositionDTO;
import com.gic.store.entity.TabClerkPosition;
import com.gic.store.service.ClerkPositionApiService;
import com.gic.store.service.ClerkPositionService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -56,21 +57,28 @@ public class ClerkPositionApiServiceImpl implements ClerkPositionApiService {
}
@Override
public ServiceResponse<Page<ClerkPositionDTO>> listClerkPosition(String search, Integer currentPage, Integer pageSize) {
com.github.pagehelper.Page<TabClerkPosition> clerkPositionList = clerkPositionService.listClerkPosition(search, currentPage, pageSize);
public ServiceResponse<Page<ClerkPositionDTO>> listClerkPosition(Integer enterpriseId, String search, Integer currentPage, Integer pageSize) {
com.github.pagehelper.Page<TabClerkPosition> clerkPositionList = clerkPositionService.listClerkPosition(enterpriseId, search, currentPage, pageSize);
Page<ClerkPositionDTO> clerkPositionDTOPage = PageHelperUtils.changePageHelperToCurrentPage(clerkPositionList, ClerkPositionDTO.class);
if (CollectionUtils.isNotEmpty(clerkPositionList)) {
List<ClerkPositionDTO> positionDTOList = clerkPositionDTOPage.getResult();
for (int i = 0; i < positionDTOList.size(); i++) {
positionDTOList.get(i).setSeq(i + 1);
}
}
return EnterpriseServiceResponse.success(clerkPositionDTOPage);
}
@Override
public ServiceResponse<List<ClerkPositionDTO>> listAllClerkPosition(String search) {
List<TabClerkPosition> clerkPositionList = clerkPositionService.listAllClerkPosition(search);
public ServiceResponse<List<ClerkPositionDTO>> listAllClerkPosition(Integer enterpriseId, String search) {
List<TabClerkPosition> clerkPositionList = clerkPositionService.listAllClerkPosition(enterpriseId, search);
return EnterpriseServiceResponse.success(EntityUtil.changeEntityListByJSON(ClerkPositionDTO.class, clerkPositionList));
}
@Override
public ServiceResponse<Void> setSort(Integer enterpriseId, Integer clerkPositionId, Integer seq) {
return null;
clerkPositionService.setSort(enterpriseId, clerkPositionId, seq);
return EnterpriseServiceResponse.success();
}
@Override
......
......@@ -47,6 +47,7 @@
<dubbo:service interface="com.gic.store.service.ClerkImportApiService" ref="clerkImportApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.ClerkTaskApiService" ref="clerkTaskApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.ClerkLogApiService" ref="clerkLogApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.ClerkPositionApiService" ref="clerkPositionApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.StoreWidgetApiService" ref="storeWidgetApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.StoreAuthorizationApiService" ref="storeAuthorizationApiService" timeout="60000" />
<dubbo:reference interface="com.gic.enterprise.service.PlatformBrandApiService" id="platformBrandApiService" timeout="6000" />
......
......@@ -147,8 +147,26 @@
select
<include refid="Base_Column_List" />
from tab_clerk_position where status = 1
and ( enterprise_id = #{enterpriseId} or enterprise_id is null )
<if test="search != null and search != '' ">
and ( position_name like concat('%', #{search}, '%') or position_code like concat('%', #{search}, '%') )
</if>
order by sort
</select>
<select id="getMinSort" resultType="double">
select sort from tab_clerk_position where status = 1 and enterprise_id = #{enterpriseId} order by sort limit 1
</select>
<select id="getMaxSort" resultType="double">
select sort from tab_clerk_position where status = 1 and enterprise_id = #{enterpriseId} order by sort desc limit 1
</select>
<select id="listTwoElementExceptId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_clerk_position
where status = 1
and enterprise_id = #{enterpriseId}
and clerk_position_id &lt;&gt; #{clerkPositionId}
order by sort
limit #{start}, #{size}
</select>
</mapper>
\ No newline at end of file
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.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.store.dto.ClerkPositionDTO;
import com.gic.store.service.ClerkPositionApiService;
import com.gic.store.web.qo.clerk.ClerkPositionQO;
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;
import java.util.List;
/**
* @author zhiwj
* @Description:
* @date 2020-07-16 14:29
*/
@RestController
public class ClerkPositionController {
@Autowired
private ClerkPositionApiService clerkPositionApiService;
@RequestMapping("/saveClerkPosition")
public RestResponse saveClerkPosition(@Validated(ClerkPositionQO.SaveValidView.class) ClerkPositionQO clerkPositionQO) {
clerkPositionQO.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
ServiceResponse<Void> serviceResponse = clerkPositionApiService.save(EntityUtil.changeEntityByJSON(ClerkPositionDTO.class, clerkPositionQO));
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/updateClerkPosition")
public RestResponse updateClerkPosition(@Validated(ClerkPositionQO.EditValidView.class) ClerkPositionQO clerkPositionQO) {
clerkPositionQO.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
ServiceResponse<Void> serviceResponse = clerkPositionApiService.update(EntityUtil.changeEntityByJSON(ClerkPositionDTO.class, clerkPositionQO));
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/getByClerkPositionId")
public RestResponse getByClerkPositionId(Integer clerkPositionId) {
ServiceResponse<ClerkPositionDTO> serviceResponse = clerkPositionApiService.getByClerkPositionId(clerkPositionId);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/deleteByClerkPositionId")
public RestResponse deleteByClerkPositionId(Integer clerkPositionId) {
ServiceResponse<Void> serviceResponse = clerkPositionApiService.delete(clerkPositionId);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/listClerkPosition")
public RestResponse listClerkPosition(Integer enterpriseId, String search, Integer currentPage, Integer pageSize) {
ServiceResponse<Page<ClerkPositionDTO>> serviceResponse = clerkPositionApiService.listClerkPosition(enterpriseId, search, currentPage, pageSize);
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/listAllClerkPosition")
public RestResponse listAllClerkPosition(Integer enterpriseId, String search) {
ServiceResponse<List<ClerkPositionDTO>> serviceResponse = clerkPositionApiService.listAllClerkPosition(enterpriseId, search);
return ResultControllerUtils.commonResult(serviceResponse);
}
}
package com.gic.store.web.qo.clerk;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
/**
* @author zhiwj
* @Description:
* @date 2020-07-16 14:35
*/
public class ClerkPositionQO implements Serializable {
private static final long serialVersionUID = -1393821407141417895L;
public interface SaveValidView{
}
public interface EditValidView{
}
/**
*
*/
@NotNull(message = "导购名称不能为空", groups = EditValidView.class)
private Integer clerkPositionId;
/**
*
*/
private Integer enterpriseId;
/**
*
*/
@NotNull(message = "导购名称不能为空", groups = {SaveValidView.class, EditValidView.class})
private String positionName;
/**
*
*/
@NotNull(message = "导购代码不能为空", groups = {SaveValidView.class, EditValidView.class})
private String positionCode;
/**
*
*/
private Double sort;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
*
*/
private Integer status;
private int seq;
public Integer getClerkPositionId() {
return clerkPositionId;
}
public void setClerkPositionId(Integer clerkPositionId) {
this.clerkPositionId = clerkPositionId;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getPositionName() {
return positionName;
}
public void setPositionName(String positionName) {
this.positionName = positionName;
}
public String getPositionCode() {
return positionCode;
}
public void setPositionCode(String positionCode) {
this.positionCode = positionCode;
}
public Double getSort() {
return sort;
}
public void setSort(Double sort) {
this.sort = sort;
}
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 void setSeq(int seq) {
this.seq = seq;
}
public int getSeq() {
return seq;
}
}
......@@ -41,6 +41,7 @@
<dubbo:reference interface="com.gic.store.service.ClerkApiService" id="clerkApiService" timeout="60000" />
<dubbo:reference interface="com.gic.store.service.ClerkImportApiService" id="clerkImportApiService" timeout="60000" />
<dubbo:reference interface="com.gic.store.service.ClerkLogApiService" id="clerkLogApiService" timeout="60000" />
<dubbo:reference interface="com.gic.store.service.ClerkPositionApiService" id="clerkPositionApiService" timeout="60000" />
<!-- 平台品牌 -->
<dubbo:reference interface="com.gic.enterprise.service.PlatformBrandApiService" id="platformBrandApiService" timeout="60000" />
<dubbo:reference interface="com.gic.store.service.StoreAuthorizationApiService" id="storeAuthorizationApiService" timeout="60000" />
......
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