Commit 2a60dc47 by 陶光胜

Merge branch 'developer' into 'master'

Developer

See merge request !25
parents eba17a27 d8d67239
......@@ -52,6 +52,8 @@ public class ClerkPositionDTO implements Serializable {
private Integer status;
private int seq;
private Integer relNum;
public Integer getClerkPositionId() {
return clerkPositionId;
}
......@@ -123,4 +125,12 @@ public class ClerkPositionDTO implements Serializable {
public int getSeq() {
return seq;
}
public void setRelNum(Integer relNum) {
this.relNum = relNum;
}
public Integer getRelNum() {
return relNum;
}
}
......@@ -29,6 +29,12 @@ public class StoreSearchDTO implements Serializable {
private Integer completeStatus;
private List<Integer> storeResourceList;
private Integer erpStatus;
private String storeGroupIds;
private String regionIds;
private String storeTypes;
private String storeStatuss;
private String erpStatuss;
private String storeTags;
public Integer getStoreGroupId() {
return storeGroupId;
......@@ -232,4 +238,52 @@ public class StoreSearchDTO implements Serializable {
this.erpStatus = erpStatus;
return this;
}
public String getStoreGroupIds() {
return storeGroupIds;
}
public void setStoreGroupIds(String storeGroupIds) {
this.storeGroupIds = storeGroupIds;
}
public String getRegionIds() {
return regionIds;
}
public void setRegionIds(String regionIds) {
this.regionIds = regionIds;
}
public String getStoreTypes() {
return storeTypes;
}
public void setStoreTypes(String storeTypes) {
this.storeTypes = storeTypes;
}
public String getStoreStatuss() {
return storeStatuss;
}
public void setStoreStatuss(String storeStatuss) {
this.storeStatuss = storeStatuss;
}
public String getErpStatuss() {
return erpStatuss;
}
public void setErpStatuss(String erpStatuss) {
this.erpStatuss = erpStatuss;
}
public String getStoreTags() {
return storeTags;
}
public void setStoreTags(String storeTags) {
this.storeTags = storeTags;
}
}
......@@ -221,4 +221,27 @@ public interface ClerkApiService {
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Void>


*/
ServiceResponse<Void> syncClerkToWeimobWhenModify(String param);
/**
* 好办查询导购列表信息接口(请求参数:clekIds)
* @Title: listHaobanClerk
* @Description:
* @author zhiwj
* @param clerkIds
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.store.dto.ClerkDTO>>
* @throws
*/
ServiceResponse<List<ClerkDTO>> listHaobanClerk(List<Integer> clerkIds);
/**
* @Title: listHaobanClerk
* @Description:
* @author zhiwj
* @param enterpriseIdList
* @param keyword
* @param storeInfoIdList
* @return com.gic.api.base.commons.ServiceResponse<java.util.List<com.gic.store.dto.ClerkDTO>>
* @throws
*/
ServiceResponse<List<ClerkDTO>> listHaobanClerk(List<Integer> enterpriseIdList, String keyword, List<Integer> storeInfoIdList);
}
package com.gic.store.dao.mapper;
import com.gic.store.entity.TabClerk;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
public interface TabClerkMapper {
/**
......@@ -73,4 +75,11 @@ public interface TabClerkMapper {
TabClerk getClerkByCode(@Param("enterpriseId") Integer enterpriseId, @Param("clerkCode") String clerkCode, @Param("storeInfoId") Integer storeInfoId);
TabClerk getClerkLeaderByStoreInfoId(@Param("enterpriseId") Integer enterpriseId, @Param("storeInfoId") Integer storeInfoId);
@MapKey("clerkPositionId")
Map<Integer, Map<String, Object>> countMapByPosition(@Param("enterpriseId") Integer enterpriseId, @Param("ids") List<Integer> positionList);
void updatePosition(@Param("enterpriseId") Integer enterpriseId, @Param("positionId") Integer clerkPositionId, @Param("positionName") String positionName);
List<TabClerk> listHaobanClerk(@Param("enterpriseIdList") List<Integer> enterpriseIdList, @Param("keyword") String keyword, @Param("storeInfoIdList") List<Integer> storeInfoIdList);
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import com.gic.store.dto.ClerkDTO;
import com.gic.store.entity.TabClerk;
import java.util.List;
import java.util.Map;
/**
* @ClassName: ClerkService
......@@ -113,6 +114,8 @@ public interface ClerkService {
List<TabClerk> listClerkByIds(Integer enterpriseId, String clerkIds);
List<TabClerk> listClerkByIds(List<Integer> clerkIdList);
TabClerk getById(Integer clerkId);
List<TabClerk> listClerkByStoreInfoId(Integer enterpriseId, String search);
......@@ -121,4 +124,9 @@ public interface ClerkService {
TabClerk getClerkLeaderByStoreInfoId(Integer enterpriseId, Integer storeInfoId);
Map<Integer, Integer> countMapByPosition(Integer enterpriseId, List<Integer> positionList);
void updatePosition(Integer enterpriseId, Integer clerkPositionId, String positionName);
List<TabClerk> listHaobanClerk(List<Integer> enterpriseIdList, String keyword, List<Integer> storeInfoIdList);
}
......@@ -49,7 +49,7 @@ public class ClerkPositionServiceImpl implements ClerkPositionService {
clerkPosition.setCreateTime(new Date());
clerkPosition.setStatus(1);
Double sort = tabClerkPositionMapper.getMinSort(clerkPositionDTO.getEnterpriseId());
clerkPosition.setSort(sort == null ? 1d : sort - 1d);
clerkPosition.setSort(sort == null ? 1d : sort + 1d);
tabClerkPositionMapper.insertSelective(clerkPosition);
}
......
......@@ -10,9 +10,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
......@@ -145,6 +143,11 @@ public class ClerkServiceImpl implements ClerkService {
}
@Override
public List<TabClerk> listClerkByIds(List<Integer> clerkIdList) {
return tabClerkMapper.listClerkByIds(null, clerkIdList);
}
@Override
public TabClerk getById(Integer clerkId) {
return this.tabClerkMapper.selectByPrimaryKey(clerkId);
}
......@@ -164,4 +167,24 @@ public class ClerkServiceImpl implements ClerkService {
return tabClerkMapper.getClerkLeaderByStoreInfoId(enterpriseId, storeInfoId);
}
@Override
public Map<Integer, Integer> countMapByPosition(Integer enterpriseId, List<Integer> positionList) {
Map<Integer, Map<String, Object>> map = tabClerkMapper.countMapByPosition(enterpriseId, positionList);
HashMap<Integer, Integer> resultMap = new HashMap<>();
for (Map.Entry<Integer, Map<String, Object>> entry : map.entrySet()) {
resultMap.put(entry.getKey(), Integer.valueOf(entry.getValue().get("relNum").toString()));
}
return resultMap;
}
@Override
public void updatePosition(Integer enterpriseId, Integer clerkPositionId, String positionName) {
tabClerkMapper.updatePosition(enterpriseId, clerkPositionId, positionName);
}
@Override
public List<TabClerk> listHaobanClerk(List<Integer> enterpriseIdList, String keyword, List<Integer> storeInfoIdList) {
return tabClerkMapper.listHaobanClerk(enterpriseIdList, keyword, storeInfoIdList);
}
}
......@@ -66,6 +66,8 @@ public class ClerkApiServiceImpl implements ClerkApiService {
private WeimobStoreSiteService weimobStoreSiteService;
@Autowired
private WmStoreSyncLogApiService wmStoreSyncLogApiService;
@Autowired
private ClerkPositionService clerkPositionService;
@Override
public ServiceResponse saveOrUpdate(ClerkDTO clerkDTO) {
......@@ -97,6 +99,10 @@ public class ClerkApiServiceImpl implements ClerkApiService {
clerkDTO.getClerkId())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "门店下导购名称重复");
}
if (clerkDTO.getPositionId() == null) {
clerkDTO.setPositionId(com.gic.store.constant.Constants.CLERK_POSITION_ID);
}
// 店长逻辑
// 如果门店下已经存在有导购是店长, 并且当前导购是店长 则做替换
// 如果门店下没有导购是店长,将当前导购设置成店长
......@@ -109,6 +115,9 @@ public class ClerkApiServiceImpl implements ClerkApiService {
clerkDTO.setPositionId(com.gic.store.constant.Constants.CLERK_LEADER_POSITION_ID);
}
String positionName = this.clerkPositionService.getByClerkPositionId(clerkDTO.getPositionId()).getPositionName();
clerkDTO.setPositionName(positionName);
if (clerkDTO.getClerkId() == null) {
// Integer saveClerkLogBySaveClerk(Integer reason, Integer enterpriseId, Integer clerkId, String remark, Integer operatorId, String operatorName);
Integer id = clerkService.save(clerkDTO);
......@@ -292,24 +301,24 @@ public class ClerkApiServiceImpl implements ClerkApiService {
}
}
// 分组的id
List<TabStoreGroup> groupList = storeGroupService.listStoreGroupAndChildren(clerkSearchDTO.getStoreGroupId());
List<Integer> groupIds = groupList.stream().map(TabStoreGroup::getStoreGroupId).collect(Collectors.toList());
// 查询条件对应的storeId
String storeIdByClerkSearch;
if (StringUtils.isNotBlank(clerkSearchDTO.getSearch())) {
List<Integer> storeInfoIdsBySearch = clerkService.getStoreInfoIdsBySearch(enterpriseId, clerkSearchDTO.getSearch());
if (CollectionUtils.isEmpty(groupIds) || CollectionUtils.isEmpty(storeInfoIdsBySearch)) {
return ServiceResponse.success(new Page<>());
} else {
storeIdByClerkSearch = getStoreIdByStoreInfoIds(storeInfoIdsBySearch, null);
}
} else {
storeIdByClerkSearch = "";
}
clerkSearchDTO.setEnterpriseId(enterpriseId);
if (!hasStoreIds) {
clerkSearchDTO.setStoreIds(storeIdByClerkSearch);
}
// List<TabStoreGroup> groupList = storeGroupService.listStoreGroupAndChildren(clerkSearchDTO.getStoreGroupId());
// List<Integer> groupIds = groupList.stream().map(TabStoreGroup::getStoreGroupId).collect(Collectors.toList());
// // 查询条件对应的storeId
// String storeIdByClerkSearch;
// if (StringUtils.isNotBlank(clerkSearchDTO.getSearch())) {
// List<Integer> storeInfoIdsBySearch = clerkService.getStoreInfoIdsBySearch(enterpriseId, clerkSearchDTO.getSearch());
// if (CollectionUtils.isEmpty(groupIds) || CollectionUtils.isEmpty(storeInfoIdsBySearch)) {
// return ServiceResponse.success(new Page<>());
// } else {
// storeIdByClerkSearch = getStoreIdByStoreInfoIds(storeInfoIdsBySearch, null);
// }
// } else {
// storeIdByClerkSearch = "";
// }
// clerkSearchDTO.setEnterpriseId(enterpriseId);
// if (!hasStoreIds) {
// clerkSearchDTO.setStoreIds(storeIdByClerkSearch);
// }
ServiceResponse<Page<StoreDTO>> serviceResponse = listStoreIds(clerkSearchDTO, pageNum, pageSize);
if (!serviceResponse.isSuccess()) {
return ServiceResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
......@@ -466,11 +475,9 @@ public class ClerkApiServiceImpl implements ClerkApiService {
public ServiceResponse<ClerkDTO> getHeadClerk(Integer enterpriseId, Integer storeId) {
ServiceResponse<StoreDTO> response = storeApiService.getStoreById(enterpriseId, storeId);
if (response.isSuccess() && response.getResult() != null) {
List<Integer> storeInfoIds = new ArrayList<>();
storeInfoIds.add(response.getResult().getStoreInfoId());
List<TabClerk> clerkList = clerkService.listClerkByStoreInfoId( enterpriseId, storeInfoIds, null, 1);
if (CollectionUtils.isNotEmpty(clerkList)) {
return ServiceResponse.success(EntityUtil.changeEntityNew(ClerkDTO.class, clerkList.get(0)));
TabClerk clerkLeader = clerkService.getClerkLeaderByStoreInfoId(enterpriseId, response.getResult().getStoreInfoId());
if (clerkLeader != null) {
return ServiceResponse.success(EntityUtil.changeEntityNew(ClerkDTO.class, clerkLeader));
}
}
return ServiceResponse.success();
......@@ -546,6 +553,11 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return responseErrorElement(ImportClerkBatchResultEnum.D3);
}
ClerkDTO clerkDTO = EntityUtil.changeEntityNew(ClerkDTO.class, clerkInfo);
if (clerkInfo.getClerkType() == 1) {
clerkDTO.setPositionId(com.gic.store.constant.Constants.CLERK_LEADER_POSITION_ID);
} else if (clerkInfo.getClerkType() == 0) {
clerkDTO.setPositionId(com.gic.store.constant.Constants.CLERK_POSITION_ID);
}
TabClerk clerk = this.clerkService.getClerkByCode(enterpriseId, clerkCode, storeInfoId);
boolean isAdd = true;
......@@ -789,6 +801,35 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return ServiceResponse.success();
}
@Override
public ServiceResponse<List<ClerkDTO>> listHaobanClerk(List<Integer> clerkIdList) {
List<TabClerk> clerkList = this.clerkService.listClerkByIds(clerkIdList);
return haobanClerk(clerkList);
}
@Override
public ServiceResponse<List<ClerkDTO>> listHaobanClerk(List<Integer> enterpriseIdList, String keyword, List<Integer> storeInfoIdList) {
List<TabClerk> clerkList = this.clerkService.listHaobanClerk(enterpriseIdList, keyword, storeInfoIdList);
return haobanClerk(clerkList);
}
private ServiceResponse<List<ClerkDTO>> haobanClerk(List<TabClerk> clerkList) {
List<ClerkDTO> clerkDTOS = EntityUtil.changeEntityListByJSON(ClerkDTO.class, clerkList);
if (CollectionUtils.isNotEmpty(clerkDTOS)) {
List<Integer> storeInfoIdList = clerkDTOS.stream().map(ClerkDTO::getStoreInfoId).collect(Collectors.toList());
StoreSearchDBDTO storeSearchDBDTO = new StoreSearchDBDTO();
storeSearchDBDTO.setStoreInfoIdList(storeInfoIdList);
com.github.pagehelper.Page<StoreDTO> listStore = storeService.listStore(storeSearchDBDTO, 1, Integer.MAX_VALUE);
if (CollectionUtils.isNotEmpty(listStore)) {
Map<Integer, String> map = listStore.getResult().stream().collect(Collectors.toMap(StoreDTO::getStoreInfoId, StoreDTO::getStoreName, (e1, e2) -> e1));
for (ClerkDTO clerkDTO : clerkDTOS) {
clerkDTO.setStoreName(map.get(clerkDTO.getStoreInfoId()));
}
}
}
return ServiceResponse.success(clerkDTOS);
}
private void asynClerkInfoToWeimobMQ(Integer wmMallStoreId, Integer enterpriseId, WeimobGuiderSynDTO wmGuiderDTO) {
GicMQClient client = GICMQClientUtil.getClientInstance();
Map<String, Object> params = new HashMap<>(4);
......
......@@ -10,17 +10,22 @@ 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 com.gic.store.service.ClerkService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service("clerkPositionApiService")
public class ClerkPositionApiServiceImpl implements ClerkPositionApiService {
@Autowired
private ClerkPositionService clerkPositionService;
@Autowired
private ClerkService clerkService;
@Override
public ServiceResponse<Void> save(ClerkPositionDTO clerkPositionDTO) {
......@@ -46,6 +51,8 @@ public class ClerkPositionApiServiceImpl implements ClerkPositionApiService {
}
// 保存实体
clerkPositionService.update(clerkPositionDTO);
clerkService.updatePosition(clerkPositionDTO.getEnterpriseId(), clerkPositionDTO.getClerkPositionId(), clerkPositionDTO.getPositionName());
return ServiceResponse.success();
}
......@@ -65,6 +72,11 @@ public class ClerkPositionApiServiceImpl implements ClerkPositionApiService {
for (int i = 0; i < positionDTOList.size(); i++) {
positionDTOList.get(i).setSeq(i + 1);
}
List<Integer> positionList = clerkPositionDTOPage.getResult().stream().map(ClerkPositionDTO::getClerkPositionId).collect(Collectors.toList());
Map<Integer, Integer> map = clerkService.countMapByPosition(enterpriseId, positionList);
for (ClerkPositionDTO clerkPositionDTO : clerkPositionDTOPage.getResult()) {
clerkPositionDTO.setRelNum(map.getOrDefault(clerkPositionDTO.getClerkPositionId(), 0));
}
}
return EnterpriseServiceResponse.success(clerkPositionDTOPage);
}
......
......@@ -16,6 +16,7 @@ import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.enterprise.service.CustomStoreApiService;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.service.WmStoreSyncLogApiService;
import com.gic.enterprise.utils.LicenseUtils;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.gic.search.business.api.constant.enums.OperateEnum;
......@@ -174,8 +175,14 @@ public class StoreApiServiceImpl implements StoreApiService {
if (storeDTO.getStoreId() == null) {
ServiceResponse<List<EnterpriseLicenseDTO>> listEnterpriseLicense = this.enterpriseApiService.listEnterpriseLicense(storeDTO.getEnterpriseId());
if(listEnterpriseLicense.isSuccess() && CollectionUtils.isNotEmpty(listEnterpriseLicense.getResult())){
if(listEnterpriseLicense.getResult().size()== 4){
storeDTO.setLicense(listEnterpriseLicense.getResult().get(3).getUpperLimit());
boolean hasStoreLicense = listEnterpriseLicense.getResult()
.stream()
.anyMatch(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()));
if(hasStoreLicense){
Integer storeLicenseNum = listEnterpriseLicense.getResult().stream()
.filter(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()))
.collect(Collectors.toList()).get(0).getUpperLimit();
storeDTO.setLicense(storeLicenseNum);
}
}
Integer id = storeService.save(storeDTO);
......@@ -270,9 +277,14 @@ public class StoreApiServiceImpl implements StoreApiService {
public ServiceResponse<Void> tranOverFlow(Integer enterpriseId, String storeIds) {
ServiceResponse<List<EnterpriseLicenseDTO>> listEnterpriseLicense = this.enterpriseApiService.listEnterpriseLicense(enterpriseId);
if (listEnterpriseLicense.isSuccess() && CollectionUtils.isNotEmpty(listEnterpriseLicense.getResult())) {
if (listEnterpriseLicense.getResult().size() == 4) {
boolean hasStoreLicense = listEnterpriseLicense.getResult()
.stream()
.anyMatch(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()));
if (hasStoreLicense) {
Integer currCount = this.storeService.countByOverflowStatus(enterpriseId, 0);
Integer upperLimit = listEnterpriseLicense.getResult().get(3).getUpperLimit();
Integer upperLimit = listEnterpriseLicense.getResult().stream()
.filter(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()))
.collect(Collectors.toList()).get(0).getUpperLimit();
// 剩余数量
int remainingCount = upperLimit - currCount;
if (storeIds.split(",").length > remainingCount) {
......@@ -779,6 +791,7 @@ public class StoreApiServiceImpl implements StoreApiService {
storeSearchDTO.setLongitude(coupApplyStoreSearchDTO.getLongitude());
storeSearchDTO.setLatitude(coupApplyStoreSearchDTO.getLatitude());
storeSearchDTO.setCityId(coupApplyStoreSearchDTO.getCityId());
storeSearchDTO.setStoreResourceList(coupApplyStoreSearchDTO.getStoreWidgetIdList());
if(coupApplyStoreSearchDTO.getStoreWidgetId() != null){
storeSearchDTO.setStoreResource(Long.valueOf(storeWidgetId+""));
}
......@@ -1531,6 +1544,39 @@ public class StoreApiServiceImpl implements StoreApiService {
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.LOCATION.getField(), OperateEnum.OPERATE_LOCATION, storeSearchDTO.getLatitude()+","+storeSearchDTO.getLongitude());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getStoreGroupIds())){
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.STOREGROUPIDLIST.getField(), OperateEnum.OPERATE_ARR_CONTAIN, storeSearchDTO.getStoreGroupIds());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getRegionIds())){
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.REGIONID.getField(), OperateEnum.OPERATE_ARR_CONTAIN, storeSearchDTO.getRegionIds());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getStoreTypes())){
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.STORETYPE.getField(), OperateEnum.OPERATE_ARR_CONTAIN, storeSearchDTO.getStoreTypes());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getStoreStatuss())){
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.STATUS.getField(), OperateEnum.OPERATE_ARR_CONTAIN, storeSearchDTO.getStoreStatuss());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getErpStatuss())){
json = QueryConditionAssemblyUtil.createSimpleQueryNode(StoreESFieldsEnum.ERPSTATUS.getField(), OperateEnum.OPERATE_ARR_CONTAIN, storeSearchDTO.getErpStatuss());
jsonObjectList.add(json);
}
if(StringUtils.isNotBlank(storeSearchDTO.getStoreTags())){
String[] arr = storeSearchDTO.getStoreTags().split(",");
List<TabStoreTag> storeTags = this.storeTagService.listByEnterprise(storeSearchDTO.getEnterpriseId());
storeTags.stream().filter(tag -> {
for (String s : arr) {
if (tag.getStoreTagId().intValue() == Integer.valueOf(s)) {
return true;
}
}
return false;
}).map(tag -> storeSearchDTO.getStoreResourceList().add(tag.getStoreTagId()));
}
String storeWidgetJSON = this.buildStoreWidgetJSON(storeSearchDTO.getStoreResource() == null ? null : storeSearchDTO.getStoreResource().intValue(), json, jsonObjectList);
/*****如果存在没有门店权限的门店控件id,直接返回*****/
if (StringUtils.isNotBlank(storeWidgetJSON)) {
......
......@@ -79,14 +79,9 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
public ServiceResponse<Page<StoreDTO>> listStoreByStoreWidgetId(Integer enterpriseId, Integer storeWidgetId, int pageNum, int pageSize) {
StoreWidgetDTO storeWidgetDTO = this.storeWidgetService.getStoreWidget(storeWidgetId);
if(storeWidgetDTO != null){
String authSearchParam = storeWidgetDTO.getAuthSearchParam();
String searchParam = storeWidgetDTO.getSearchParam();
StoreSearchDTO dto = new StoreSearchDTO();
dto.setEnterpriseId(enterpriseId);
if(StringUtils.isNotBlank(authSearchParam) && !"{}".equals(authSearchParam)){
dto.setAuthSearchJson(authSearchParam);
}
dto.setSearchJson(searchParam);
dto.setStoreResource(Long.valueOf(storeWidgetId));
return this.storeApiService.listStore(dto, pageNum, pageSize);
}
return ServiceResponse.failure(ErrorCode.SYSTEM_ERROR.getCode(), "门店控件id不存在");
......@@ -96,14 +91,9 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
public ServiceResponse<Page<Integer>> listStoreIdByStoreWidgetId(Integer enterpriseId, Integer storeWidgetId, int pageNum, int pageSize) {
StoreWidgetDTO storeWidgetDTO = this.storeWidgetService.getStoreWidget(storeWidgetId);
if(storeWidgetDTO != null){
String authSearchParam = storeWidgetDTO.getAuthSearchParam();
String searchParam = storeWidgetDTO.getSearchParam();
StoreSearchDTO dto = new StoreSearchDTO();
dto.setEnterpriseId(enterpriseId);
if(StringUtils.isNotBlank(authSearchParam) && !"{}".equals(authSearchParam)){
dto.setAuthSearchJson(authSearchParam);
}
dto.setSearchJson(searchParam);
dto.setStoreResource(Long.valueOf(storeWidgetId));
ServiceResponse<Page<StoreDTO>> response = this.storeApiService.listStore(dto, pageNum, pageSize,
StoreESFieldsEnum.STOREID.getField() + "");
Page<Integer> page = new Page<>(pageNum, pageSize);
......@@ -124,14 +114,9 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
public ServiceResponse<Page<Integer>> listStoreInfoIdByStoreWidgetId(Integer enterpriseId, Integer storeWidgetId, int pageNum, int pageSize) {
StoreWidgetDTO storeWidgetDTO = this.storeWidgetService.getStoreWidget(storeWidgetId);
if(storeWidgetDTO != null){
String authSearchParam = storeWidgetDTO.getAuthSearchParam();
String searchParam = storeWidgetDTO.getSearchParam();
StoreSearchDTO dto = new StoreSearchDTO();
dto.setEnterpriseId(enterpriseId);
if(StringUtils.isNotBlank(authSearchParam) && !"{}".equals(authSearchParam)){
dto.setAuthSearchJson(authSearchParam);
}
dto.setSearchJson(searchParam);
dto.setStoreResource(Long.valueOf(storeWidgetId));
ServiceResponse<Page<StoreDTO>> response = this.storeApiService.listStore(dto, pageNum, pageSize,
StoreESFieldsEnum.STOREINFOID.getField() + "");
Page<Integer> page = new Page<>(pageNum, pageSize);
......@@ -187,14 +172,9 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
public ServiceResponse exist(Integer enterpriseId, Integer storeWidgetId, Integer storeId) {
StoreWidgetDTO storeWidgetDTO = this.storeWidgetService.getStoreWidget(storeWidgetId);
if(storeWidgetDTO != null){
String authSearchParam = storeWidgetDTO.getAuthSearchParam();
String searchParam = storeWidgetDTO.getSearchParam();
StoreSearchDTO dto = new StoreSearchDTO();
dto.setEnterpriseId(enterpriseId);
if(StringUtils.isNotBlank(authSearchParam) && !"{}".equals(authSearchParam)){
dto.setAuthSearchJson(authSearchParam);
}
dto.setSearchJson(searchParam);
dto.setStoreResource(Long.valueOf(storeWidgetId));
dto.setStoreIds(storeId+"");
ServiceResponse<Long> response = this.storeApiService.queryStoreCountFromES(dto);
if(response.isSuccess() && response.getResult() > 0){
......@@ -213,14 +193,9 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
public ServiceResponse existByStoreInfoId(Integer enterpriseId, Integer storeWidgetId, Integer storeInfoId) {
StoreWidgetDTO storeWidgetDTO = this.storeWidgetService.getStoreWidget(storeWidgetId);
if(storeWidgetDTO != null){
String authSearchParam = storeWidgetDTO.getAuthSearchParam();
String searchParam = storeWidgetDTO.getSearchParam();
StoreSearchDTO dto = new StoreSearchDTO();
dto.setEnterpriseId(enterpriseId);
if(StringUtils.isNotBlank(authSearchParam) && !"{}".equals(authSearchParam)){
dto.setAuthSearchJson(authSearchParam);
}
dto.setSearchJson(searchParam);
dto.setStoreResource(Long.valueOf(storeWidgetId));
dto.setStoreInfoIds(storeInfoId+"");
ServiceResponse<Long> response = this.storeApiService.queryStoreCountFromES(dto);
if(response.isSuccess() && response.getResult() > 0){
......@@ -244,11 +219,21 @@ public class StoreWidgetApiServiceImpl implements StoreWidgetApiService {
List<StoreDTO> result = page.getResult();
if(CollectionUtils.isNotEmpty(result)){
for(StoreDTO storeDTO : result){
storeColumnSet.getErpStatus().add(storeDTO.getErpStatus());
storeColumnSet.getRegion().add(storeDTO.getRegionId());
storeColumnSet.getStatus().add(storeDTO.getStatus());
storeColumnSet.getStoreGroupId().addAll(storeDTO.getStoreGroupIdList());
storeColumnSet.getStoreType().add(storeDTO.getStoreType());
if(storeDTO.getErpStatus() != null){
storeColumnSet.getErpStatus().add(storeDTO.getErpStatus());
}
if(storeDTO.getRegionId() != null){
storeColumnSet.getRegion().add(storeDTO.getRegionId());
}
if(storeDTO.getStatus() != null){
storeColumnSet.getStatus().add(storeDTO.getStatus());
}
if(CollectionUtils.isNotEmpty(storeDTO.getStoreGroupIdList())){
storeColumnSet.getStoreGroupId().addAll(storeDTO.getStoreGroupIdList());
}
if(storeDTO.getStoreType() != null){
storeColumnSet.getStoreType().add(storeDTO.getStoreType());
}
}
}
if(pageNum == 1 && page.getPages() > 1){
......
......@@ -245,10 +245,7 @@
and store_info_id in ${storeInfoIds}
</if>
<if test="search != null and search != '' ">
and (clerk_code like concat('%', #{search} ,'%') or clerk_name like concat('%', #{search} ,'%') )
</if>
<if test="clerkType != null ">
and clerk_type = #{clerkType}
and (clerk_code like concat('%', #{search} ,'%') or clerk_name like concat('%', #{search} ,'%') or phone_number like concat('%', #{search} ,'%') )
</if>
<if test="status != null ">
and status = #{status}
......@@ -337,7 +334,6 @@
and store_info_id = #{storeInfoId}
and clerk_code = #{clerkCode}
</select>
<!-- getClerkLeaderByStoreInfoId-->
<select id="getClerkLeaderByStoreInfoId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
......@@ -347,4 +343,44 @@
and position_id = 1
limit 1
</select>
<select id="countMapByPosition" resultType="map">
select
position_id clerkPositionId,
count(*) relNum
from tab_clerk
where enterprise_id = #{enterpriseId}
<if test="null != ids and ids.size > 0">
and position_id in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
group by position_id
</select>
<update id="updatePosition">
update tab_clerk set position_name = #{positionName} where position_id = #{positionId} and enterprise_id = #{enterpriseId}
</update>
<!-- List<TabClerk> listHaobanClerk(@Param("enterpriseIdList") List<Integer> enterpriseIdList, @Param("keyword") String keyword, @Param("storeInfoIdList") List<Integer> storeInfoIdList);-->
<select id="listHaobanClerk" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_clerk
<where>
<if test="null != enterpriseIdList and enterpriseIdList.size > 0">
and enterprise_id in
<foreach collection="enterpriseIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="null != storeInfoIdList and storeInfoIdList.size > 0">
and store_info_id in
<foreach collection="storeInfoIdList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="keyword != null and keyword != '' ">
and (clerk_code = #{keyword} or phone_number = #{keyword} )
</if>
</where>
</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.enterprise.error.ErrorCode;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.store.dto.ClerkPositionDTO;
......@@ -65,5 +66,13 @@ public class ClerkPositionController {
return ResultControllerUtils.commonResult(serviceResponse);
}
@RequestMapping("/set-clerk-position-sort")
public RestResponse setClerkPositionSort(Integer clerkPositionId, Integer seq) {
if (seq <= 2) {
return RestResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "系统默认角色无法调整排序");
}
ServiceResponse<Void> serviceResponse = clerkPositionApiService.setSort(UserDetailUtils.getUserDetail().getEnterpriseId(), clerkPositionId, seq);
return ResultControllerUtils.commonResult(serviceResponse);
}
}
......@@ -17,6 +17,7 @@ import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.DownloadReportApiService;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.service.QrCodeApiService;
import com.gic.enterprise.utils.LicenseUtils;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.log.api.service.LogApiService;
......@@ -283,9 +284,15 @@ public class StoreController extends DownloadUtils {
Integer enterpriseId = UserDetailUtils.getUserDetail().getEnterpriseId();
ServiceResponse<List<EnterpriseLicenseDTO>> listEnterpriseLicense = this.enterpriseApiService.listEnterpriseLicense(enterpriseId);
if (listEnterpriseLicense.isSuccess() && CollectionUtils.isNotEmpty(listEnterpriseLicense.getResult())) {
if (listEnterpriseLicense.getResult().size() == 4) {
boolean hasStoreLicense = listEnterpriseLicense.getResult()
.stream()
.anyMatch(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()));
if (hasStoreLicense) {
Integer storeLicenseNum = listEnterpriseLicense.getResult().stream()
.filter(e -> LicenseUtils.STORE_LICENSE_CODE.equals(e.getLicenseCode()))
.collect(Collectors.toList()).get(0).getUpperLimit();
Integer result = this.storeApiService.countByOverflowStatus(enterpriseId).getResult();
return RestResponse.success(listEnterpriseLicense.getResult().get(3).getUpperLimit() - result);
return RestResponse.success(storeLicenseNum - result);
}
}
return RestResponse.success();
......
......@@ -65,7 +65,7 @@ public class ClerkQO implements Serializable {
*/
private Integer status;
private Integer clerkType;
private Integer positionId;
public Integer getClerkId() {
return clerkId;
......@@ -139,11 +139,11 @@ public class ClerkQO implements Serializable {
this.status = status;
}
public Integer getClerkType() {
return clerkType;
public Integer getPositionId() {
return positionId;
}
public void setClerkType(Integer clerkType) {
this.clerkType = clerkType;
public void setPositionId(Integer positionId) {
this.positionId = positionId;
}
}
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