Commit 099fe2b1 by 陶光胜

Merge branch 'developer' into 'master'

Developer

See merge request !12
parents 301c3a64 1580a9fb
......@@ -181,4 +181,8 @@ public interface ClerkApiService {
* @throws
*/
ServiceResponse updateClerkLeader(Integer clerkId);
ServiceResponse<Void> syncClerkToWeimob(Integer wmMallStoreId, List<Integer> storeIdList, Integer enterpriseId);
ServiceResponse<Void> syncClerkToWeimobTask(String param);
}
......@@ -141,6 +141,11 @@
<artifactId>gic-marketing-process-api</artifactId>
<version>${gic-marketing-process-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-weimob-api</artifactId>
<version>${gic-weimob-api}</version>
</dependency>
</dependencies>
<build>
......
......@@ -63,4 +63,6 @@ public interface TabStoreExtendMapper {
int countExtendByValue(@Param("storeFieldId") Integer storeFieldId, @Param("value") String value, @Param("storeExtendId") Integer storeExtendId);
void delete(@Param("enterpriseId") Integer enterpriseId, @Param("storeInfoId") Integer storeInfoId);
void insertNotRepeat(TabStoreExtend tabStoreExtend);
}
\ No newline at end of file
......@@ -73,6 +73,8 @@ public interface TabStoreMapper {
List<Integer> listStoreInfoIdByStoreIds(@Param("ids") List<Integer> ids, @Param("enterpriseId") Integer enterpriseId);
List<Integer> listStoredByStoreInfoList(@Param("ids") List<Integer> storeInfoIdList, @Param("enterpriseId") Integer enterpriseId);
List<String> listAllCityId(@Param("enterpriseId") Integer enterpriseId,
@Param("storeBrandId") Integer storeBrandId);
......
package com.gic.store.service;
import com.gic.enterprise.qo.PageQO;
import com.gic.store.dto.StoreLogDTO;
import com.gic.store.entity.TabStoreLog;
import com.github.pagehelper.Page;
......@@ -39,10 +38,10 @@ public interface StoreLogService {
*/
Page<TabStoreLog> listStoreLog(StoreLogDTO storeLogDTO, Integer currentPage, Integer pageSize);
void saveBulkStoreInfoLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
void saveBulkStoreInfoLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
void saveBulkStoreStatusLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
void saveBulkStoreStatusLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
void saveBulkStoreGroupLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
void saveBulkStoreGroupLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content);
}
\ No newline at end of file
......@@ -118,7 +118,8 @@ public interface StoreService {
String listStoreInfoIdByStoreIds(String storeIds, Integer enterpriseId);
List<Integer> listStoredByStoreInfoList(List<Integer> storeInfoIdList, Integer enterpriseId);
/** @Description: 查询企业下所有城市id,门店数量从多到少排序
* @author taogs
* @Date 17:39 2019/12/4
......
......@@ -12,6 +12,8 @@ import com.gic.store.service.ClerkLogService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -26,65 +28,77 @@ import java.util.Date;
@Service
public class ClerkLogServiceImpl implements ClerkLogService {
private Logger logger = LogManager.getLogger(ClerkLogServiceImpl.class);
@Autowired
private TabClerkLogMapper tabClerkLogMapper;
@Override
public Integer saveClerkLogBySaveClerk(Integer enterpriseId, Integer clerkId, Integer reason, String remark, Integer operatorId, String operatorName) {
TabClerkLog clerkLog = new TabClerkLog();
clerkLog.setEnterpriseId(enterpriseId);
clerkLog.setClerkId(clerkId);
clerkLog.setContent("导购新增");
clerkLog.setReason(reason);
clerkLog.setLogType(ClerkLogTypeEnum.SAVE.getCode());
clerkLog.setRemark(remark);
clerkLog.setCreateTime(new Date());
clerkLog.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
clerkLog.setOperatorId(operatorId);
clerkLog.setOperatorName(operatorName);
return tabClerkLogMapper.insertSelective(clerkLog);
try {
TabClerkLog clerkLog = new TabClerkLog();
clerkLog.setEnterpriseId(enterpriseId);
clerkLog.setClerkId(clerkId);
clerkLog.setContent("导购新增");
clerkLog.setReason(reason);
clerkLog.setLogType(ClerkLogTypeEnum.SAVE.getCode());
clerkLog.setRemark(remark);
clerkLog.setCreateTime(new Date());
clerkLog.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
clerkLog.setOperatorId(operatorId);
clerkLog.setOperatorName(operatorName);
return tabClerkLogMapper.insertSelective(clerkLog);
} catch (Exception e) {
logger.warn("保存导购日志出错", e);
}
return 0;
}
@Override
public Integer saveClerkLogByUpdateClerk(TabClerk oldClerk, ClerkDTO newClerk, Integer enterpriseId, Integer clerkId, Integer reason, String remark, Integer operatorId, String operatorName) {
TabClerkLog clerkLog = new TabClerkLog();
clerkLog.setEnterpriseId(enterpriseId);
clerkLog.setClerkId(clerkId);
clerkLog.setReason(reason);
clerkLog.setLogType(ClerkLogTypeEnum.UPDATE.getCode());
clerkLog.setRemark(remark);
clerkLog.setCreateTime(new Date());
clerkLog.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
clerkLog.setOperatorId(operatorId);
clerkLog.setOperatorName(operatorName);
try {
TabClerkLog clerkLog = new TabClerkLog();
clerkLog.setEnterpriseId(enterpriseId);
clerkLog.setClerkId(clerkId);
clerkLog.setReason(reason);
clerkLog.setLogType(ClerkLogTypeEnum.UPDATE.getCode());
clerkLog.setRemark(remark);
clerkLog.setCreateTime(new Date());
clerkLog.setStatus(GlobalInfo.DATA_STATUS_NORMAL);
clerkLog.setOperatorId(operatorId);
clerkLog.setOperatorName(operatorName);
StringBuilder sb = new StringBuilder();
if (StringUtils.isNotBlank(newClerk.getClerkName()) && !StringUtils.equals(newClerk.getClerkName(), oldClerk.getClerkName())) {
sb.append("导购名称").append("【").append(oldClerk.getClerkName()).append("】")
.append("变更为【").append(newClerk.getClerkName()).append("】");
}
if (newClerk.getClerkGender() != null && !newClerk.getClerkGender().equals(oldClerk.getClerkGender())) {
sb.append("性别").append("【").append(ClerkGenderEnum.parseCode(oldClerk.getClerkGender())).append("】")
.append("变更为【").append(ClerkGenderEnum.parseCode(newClerk.getClerkGender())).append("】");
}
if (StringUtils.isNotBlank(newClerk.getNationcode()) && !StringUtils.equals(newClerk.getNationcode(), oldClerk.getNationcode())) {
sb.append("区号").append("【").append(oldClerk.getNationcode()).append("】")
.append("变更为【").append(newClerk.getNationcode()).append("】");
}
if (StringUtils.isNotBlank(newClerk.getPhoneNumber()) && !StringUtils.equals(newClerk.getPhoneNumber(), oldClerk.getPhoneNumber())) {
sb.append("手机号").append("【").append(oldClerk.getPhoneNumber()).append("】")
.append("变更为【").append(newClerk.getPhoneNumber()).append("】");
}
if (StringUtils.isNotBlank(newClerk.getPositionName()) && !StringUtils.equals(newClerk.getPositionName(), oldClerk.getPositionName())) {
sb.append("职位").append("【").append(oldClerk.getPositionName()).append("】")
.append("变更为【").append(newClerk.getPositionName()).append("】");
}
clerkLog.setContent(sb.toString());
if (StringUtils.isNotBlank(clerkLog.getContent().trim())) {
return tabClerkLogMapper.insertSelective(clerkLog);
} else {
return 0;
StringBuilder sb = new StringBuilder();
if (StringUtils.isNotBlank(newClerk.getClerkName()) && !StringUtils.equals(newClerk.getClerkName(), oldClerk.getClerkName())) {
sb.append("导购名称").append("【").append(oldClerk.getClerkName()).append("】")
.append("变更为【").append(newClerk.getClerkName()).append("】");
}
if (newClerk.getClerkGender() != null && !newClerk.getClerkGender().equals(oldClerk.getClerkGender())) {
sb.append("性别").append("【").append(ClerkGenderEnum.parseCode(oldClerk.getClerkGender())).append("】")
.append("变更为【").append(ClerkGenderEnum.parseCode(newClerk.getClerkGender())).append("】");
}
if (StringUtils.isNotBlank(newClerk.getNationcode()) && !StringUtils.equals(newClerk.getNationcode(), oldClerk.getNationcode())) {
sb.append("区号").append("【").append(oldClerk.getNationcode()).append("】")
.append("变更为【").append(newClerk.getNationcode()).append("】");
}
if (StringUtils.isNotBlank(newClerk.getPhoneNumber()) && !StringUtils.equals(newClerk.getPhoneNumber(), oldClerk.getPhoneNumber())) {
sb.append("手机号").append("【").append(oldClerk.getPhoneNumber()).append("】")
.append("变更为【").append(newClerk.getPhoneNumber()).append("】");
}
if (StringUtils.isNotBlank(newClerk.getPositionName()) && !StringUtils.equals(newClerk.getPositionName(), oldClerk.getPositionName())) {
sb.append("职位").append("【").append(oldClerk.getPositionName()).append("】")
.append("变更为【").append(newClerk.getPositionName()).append("】");
}
clerkLog.setContent(sb.toString());
if (StringUtils.isNotBlank(clerkLog.getContent().trim())) {
return tabClerkLogMapper.insertSelective(clerkLog);
} else {
return 0;
}
} catch (Exception e) {
logger.warn("保存导购日志出错", e);
}
return 0;
}
@Override
......
......@@ -13,7 +13,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.Date;
......@@ -33,7 +32,6 @@ public class StoreExtendServiceImpl implements StoreExtendService {
private StoreFieldService storeFieldService;
@Override
@Transactional(rollbackFor = Exception.class)
public String saveOrUpdate(Integer enterpriseId, Integer storeInfoId, List<StoreExtendDTO> storeExtendList) {
if (CollectionUtils.isNotEmpty(storeExtendList)) {
......@@ -44,25 +42,21 @@ public class StoreExtendServiceImpl implements StoreExtendService {
TabStoreField field = storeFieldService.getStoreFieldById(tabStoreExtend.getStoreFieldId());
String fieldDetail = field.getStoreFieldDetail();
FieldBase fieldBase = JSON.parseObject(fieldDetail, FieldBase.class);
tabStoreExtend.setEnterpriseId(enterpriseId);
tabStoreExtend.setStoreInfoId(storeInfoId);
tabStoreExtend.setCreateTime(new Date());
if (!fieldBase.getAllowRepeat()) {
// 不允许重复
if (StringUtils.isNotBlank(tabStoreExtend.getValue())) {
int count = tabStoreExtendMapper.countExtendByValue(field.getStoreFieldId(), tabStoreExtend.getValue(), tabStoreExtend.getStoreExtendId());
if (count > 0) {
return field.getStoreFieldName() + "不允许重复";
}
// int count = tabStoreExtendMapper.countExtendByValue(field.getStoreFieldId(), tabStoreExtend.getValue(), tabStoreExtend.getStoreExtendId());
// if (count > 0) {
// return field.getStoreFieldName() + "不允许重复";
// }
tabStoreExtendMapper.insertNotRepeat(tabStoreExtend);
}
} else {
tabStoreExtendMapper.insertSelective(tabStoreExtend);
}
tabStoreExtend.setEnterpriseId(enterpriseId);
tabStoreExtend.setStoreInfoId(storeInfoId);
// if (tabStoreExtend.getStoreExtendId() == null) {
tabStoreExtend.setCreateTime(new Date());
tabStoreExtendMapper.insertSelective(tabStoreExtend);
// } else {
// tabStoreExtendMapper.updateByPrimaryKeySelective(tabStoreExtend);
// }
}
}
return null;
......
......@@ -2,13 +2,13 @@ package com.gic.store.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GlobalInfo;
import com.gic.enterprise.qo.PageQO;
import com.gic.store.constant.StoreLogReasonEnum;
import com.gic.store.constant.StoreLogTypeEnum;
import com.gic.store.dao.mapper.TabStoreLogMapper;
import com.gic.store.dto.StoreLogDTO;
import com.gic.store.entity.TabStoreLog;
import com.gic.store.service.StoreLogService;
import com.gic.store.service.StoreService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -28,6 +28,8 @@ public class StoreLogServiceImpl implements StoreLogService {
@Autowired
private TabStoreLogMapper tabStoreLogMapper;
@Autowired
private StoreService storeService;
@Override
public Integer saveStoreLog(StoreLogDTO storeLog) {
......@@ -44,7 +46,7 @@ public class StoreLogServiceImpl implements StoreLogService {
}
@Override
public void saveBulkStoreInfoLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
public void saveBulkStoreInfoLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
TabStoreLog storeLog = new TabStoreLog();
storeLog.setEnterpriseId(enterpriseId);
storeLog.setReason(StoreLogReasonEnum.WEB.getCode());
......@@ -53,6 +55,9 @@ public class StoreLogServiceImpl implements StoreLogService {
storeLog.setOperatorId(operatorId);
storeLog.setOperatorName(operatorName);
storeLog.setContent(content);
storeLog.setCreateTime(new Date());
storeLog.setStatus(1);
List<Integer> storeIdList = storeService.listStoredByStoreInfoList(storeInfoIdList, enterpriseId);
for (Integer storeId : storeIdList) {
storeLog.setStoreId(storeId);
tabStoreLogMapper.insertSelective(storeLog);
......@@ -60,7 +65,7 @@ public class StoreLogServiceImpl implements StoreLogService {
}
@Override
public void saveBulkStoreStatusLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
public void saveBulkStoreStatusLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
TabStoreLog storeLog = new TabStoreLog();
storeLog.setEnterpriseId(enterpriseId);
storeLog.setReason(StoreLogReasonEnum.WEB.getCode());
......@@ -69,14 +74,16 @@ public class StoreLogServiceImpl implements StoreLogService {
storeLog.setOperatorId(operatorId);
storeLog.setOperatorName(operatorName);
storeLog.setContent(content);
for (Integer storeId : storeIdList) {
storeLog.setCreateTime(new Date());
storeLog.setStatus(1);
for (Integer storeId : storeInfoIdList) {
storeLog.setStoreId(storeId);
tabStoreLogMapper.insertSelective(storeLog);
}
}
@Override
public void saveBulkStoreGroupLog(List<Integer> storeIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
public void saveBulkStoreGroupLog(List<Integer> storeInfoIdList, Integer enterpriseId, Integer operatorId, String operatorName, String content) {
TabStoreLog storeLog = new TabStoreLog();
storeLog.setEnterpriseId(enterpriseId);
storeLog.setReason(StoreLogReasonEnum.WEB.getCode());
......@@ -85,7 +92,7 @@ public class StoreLogServiceImpl implements StoreLogService {
storeLog.setOperatorId(operatorId);
storeLog.setOperatorName(operatorName);
storeLog.setContent(content);
for (Integer storeId : storeIdList) {
for (Integer storeId : storeInfoIdList) {
storeLog.setStoreId(storeId);
tabStoreLogMapper.insertSelective(storeLog);
}
......
......@@ -489,6 +489,11 @@ public class StoreServiceImpl implements StoreService {
}
@Override
public List<Integer> listStoredByStoreInfoList(List<Integer> storeInfoIdList, Integer enterpriseId) {
return tabStoreMapper.listStoredByStoreInfoList(storeInfoIdList, enterpriseId);
}
@Override
public List<String> listAllCityId(Integer enterpriseId, Integer storeBrandId) {
return this.tabStoreMapper.listAllCityId(enterpriseId, storeBrandId);
}
......
......@@ -5,10 +5,12 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.CollectionUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.constants.Constants;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.store.constant.ClerkLogReasonEnum;
import com.gic.store.constant.ImportClerkBatchResultEnum;
import com.gic.store.constant.StoreLogTypeEnum;
......@@ -21,6 +23,8 @@ import com.gic.store.entity.TabClerk;
import com.gic.store.entity.TabStoreGroup;
import com.gic.store.entity.TabStoreRegion;
import com.gic.store.service.*;
import com.gic.weimob.api.dto.WeimobGuiderSynDTO;
import com.gic.weimob.api.service.WeimobStoreSiteService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -56,6 +60,8 @@ public class ClerkApiServiceImpl implements ClerkApiService {
private StoreRegionService storeRegionService;
@Autowired
private EnterpriseApiService enterpriseApiService;
@Autowired
private WeimobStoreSiteService weimobStoreSiteService;
@Override
public ServiceResponse saveOrUpdate(ClerkDTO clerkDTO) {
......@@ -241,19 +247,23 @@ public class ClerkApiServiceImpl implements ClerkApiService {
}
private void storeLogByAddClerk(ClerkDTO clerkDTO) {
StoreLogDTO storeLogDTO = new StoreLogDTO();
storeLogDTO.setEnterpriseId(clerkDTO.getEnterpriseId());
Integer storeId = this.storeService.getStoreIdByStoreInfoId(clerkDTO.getEnterpriseId(),
clerkDTO.getStoreInfoId());
storeLogDTO.setStoreId(storeId);
storeLogDTO.setContent("门店关联导购【导购编码" + clerkDTO.getClerkCode() + "】");
storeLogDTO.setReason(clerkDTO.getReason());
storeLogDTO.setLogType(StoreLogTypeEnum.ADD_CLERK.getCode());
storeLogDTO.setRemark(clerkDTO.getRemark());
storeLogDTO.setOperatorId(clerkDTO.getOperatorId());
storeLogDTO.setOperatorName(clerkDTO.getOperatorName());
storeLogService.saveStoreLog(storeLogDTO);
try {
StoreLogDTO storeLogDTO = new StoreLogDTO();
storeLogDTO.setEnterpriseId(clerkDTO.getEnterpriseId());
Integer storeId = this.storeService.getStoreIdByStoreInfoId(clerkDTO.getEnterpriseId(),
clerkDTO.getStoreInfoId());
storeLogDTO.setStoreId(storeId);
storeLogDTO.setContent("门店关联导购【导购编码" + clerkDTO.getClerkCode() + "】");
storeLogDTO.setReason(clerkDTO.getReason());
storeLogDTO.setLogType(StoreLogTypeEnum.ADD_CLERK.getCode());
storeLogDTO.setRemark(clerkDTO.getRemark());
storeLogDTO.setOperatorId(clerkDTO.getOperatorId());
storeLogDTO.setOperatorName(clerkDTO.getOperatorName());
storeLogService.saveStoreLog(storeLogDTO);
} catch (Exception e) {
logger.warn("保存导购日志出错", e);
}
}
private boolean validStoreIsOther(Integer enterpriseId, Integer storeInfoId) {
......@@ -505,14 +515,7 @@ public class ClerkApiServiceImpl implements ClerkApiService {
if (StringUtils.isBlank(clerkCode)) {
return responseErrorElement(ImportClerkBatchResultEnum.C1);
}
TabClerk clerk = this.clerkService.getClerkByCode(enterpriseId, clerkCode, storeInfoId);
boolean isAdd = true;
//如果代购code存在,则进行更新操作
if (clerk != null) {
//return responseErrorElement(ImportClerkBatchResultEnum.C2);
isAdd = false;
}
if (StringUtils.isBlank(clerkInfo.getClerkName())) {
return responseErrorElement(ImportClerkBatchResultEnum.C3);
}
......@@ -535,6 +538,17 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return responseErrorElement(ImportClerkBatchResultEnum.D3);
}
ClerkDTO clerkDTO = EntityUtil.changeEntityNew(ClerkDTO.class, clerkInfo);
TabClerk clerk = this.clerkService.getClerkByCode(enterpriseId, clerkCode, storeInfoId);
boolean isAdd = true;
//如果代购code存在,则进行更新操作
if (clerk != null) {
clerkDTO.setClerkId(clerk.getClerkId());
//return responseErrorElement(ImportClerkBatchResultEnum.C2);
isAdd = false;
}
clerkDTO.setStoreInfoId(storeInfoId);
clerkDTO.setStoreName(storeDTO.getStoreName());
......@@ -619,6 +633,68 @@ public class ClerkApiServiceImpl implements ClerkApiService {
return EnterpriseServiceResponse.success();
}
@Override
public ServiceResponse<Void> syncClerkToWeimob(Integer wmMallStoreId, List<Integer> storeIdList, Integer enterpriseId) {
ClerkSearchDTO searchDTO = new ClerkSearchDTO();
searchDTO.setEnterpriseId(enterpriseId);
StringBuilder sb = new StringBuilder();
storeIdList.forEach(e -> sb.append(e).append(","));
searchDTO.setStoreIds(sb.toString());
ServiceResponse<Page<ClerkStoreListDTO>> pageResult = listClerk(enterpriseId, searchDTO, 0, storeIdList.size());
if (pageResult.isSuccess()) {
Page<ClerkStoreListDTO> page = pageResult.getResult();
if (page != null) {
List<ClerkStoreListDTO> list = page.getResult();
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(e -> {
List<ClerkDTO> clerkList = e.getClerkList();
if (CollectionUtils.isNotEmpty(clerkList)) {
clerkList.forEach(clerk -> {
WeimobGuiderSynDTO weimobGuiderSynDTO = new WeimobGuiderSynDTO();
weimobGuiderSynDTO.setStoreNumber(e.getStoreCode());
weimobGuiderSynDTO.setClerkId(clerk.getClerkId());
weimobGuiderSynDTO.setGuiderName(clerk.getClerkName());
weimobGuiderSynDTO.setGuiderPhone(clerk.getPhoneNumber());
weimobGuiderSynDTO.setJobNumber(clerk.getClerkCode());
weimobGuiderSynDTO.setStoreInfoId(e.getStoreInfoId());
asynClerkInfoToWeimobMQ(wmMallStoreId, enterpriseId, weimobGuiderSynDTO);
});
}
});
}
}
}
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> syncClerkToWeimobTask(String param) {
JSONObject jsonObject = JSONObject.parseObject(param);
String enterpriseId = jsonObject.getString("enterpriseId");
String wmMallStoreId = jsonObject.getString("wmMallStoreId");
String wmGuiderDTOStr = (String) jsonObject.get("wmGuiderDTO");
WeimobGuiderSynDTO wmGuiderDTO = JSONObject.parseObject(wmGuiderDTOStr, WeimobGuiderSynDTO.class);
ServiceResponse<Void> result = weimobStoreSiteService.addWeimobGuider(Integer.parseInt(wmMallStoreId),
Integer.parseInt(enterpriseId), wmGuiderDTO);
logger.info("异步导购结果:code:{}, message:{}", result.getCode(), result.getMessage());
return ServiceResponse.success();
}
private void asynClerkInfoToWeimobMQ(Integer wmMallStoreId, Integer enterpriseId, WeimobGuiderSynDTO wmGuiderDTO) {
GicMQClient client = GICMQClientUtil.getClientInstance();
Map<String, Object> params = new HashMap<>(4);
params.put("enterpriseId", enterpriseId);
params.put("wmMallStoreId", wmMallStoreId);
params.put("wmGuiderDTO", JSONObject.toJSONString(wmGuiderDTO));
logger.info("异步导购微盟放入参数:{}", JSONObject.toJSONString(params));
try {
client.sendMessage("tmpClerkToWeimob", JSONObject.toJSONString(params));
} catch (Exception e) {
logger.warn("同步导购到微盟错误:{}", e.getMessage(), e);
}
}
private static ServiceResponse<String> responseErrorElement(ImportClerkBatchResultEnum error) {
logger.warn("批处理导购错误返回结果:{}", error.toString());
return ServiceResponse.failure(error.getCode(), error.toString());
......
......@@ -39,10 +39,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @author zhiwj
......@@ -244,9 +246,13 @@ public class StoreApiServiceImpl implements StoreApiService {
if (currCount + storeIds.split(",").length > upperLimit) {
return EnterpriseServiceResponse.failure(ErrorCode.UNKNOWN_ERROR.getCode(), String.format("本商户剩余门店数量为%s家, 请重新勾选正确的数量!", upperLimit));
}
String[] storeIdArr = storeIds.split(",");
for (String storeIdStr : storeIdArr) {
Integer storeId = Integer.valueOf(storeIdStr);
List<Integer> storeIdList;
if ("all".equals(storeIds)) {
storeIdList = this.storeService.listAllStoreId(enterpriseId);
} else {
storeIdList = Stream.of(storeIds.split(",")).map(Integer::valueOf).collect(Collectors.toList());
}
for (Integer storeId : storeIdList) {
StoreDTO store = this.getStoreById(enterpriseId, storeId).getResult();
if (store != null) {
store.setOverflowStatus(1);
......@@ -712,6 +718,10 @@ public class StoreApiServiceImpl implements StoreApiService {
List<StorePhotoDTO> defaultList = Collections.singletonList(storePhotoDTO);
if (CollectionUtils.isNotEmpty(list)) {
for (StoreDTO storeDTO : list) {
if (CollectionUtils.isNotEmpty(storeDTO.getLocation())) {
storeDTO.setLongitude(storeDTO.getLocation().get(0).toString());
storeDTO.setLatitude(storeDTO.getLocation().get(1).toString());
}
if (CollectionUtils.isEmpty(storeDTO.getPhotoList())) {
storeDTO.setPhotoList(defaultList);
}
......@@ -1162,6 +1172,7 @@ public class StoreApiServiceImpl implements StoreApiService {
this.bulkAddStoreToIndex(enterpriseId, storeIdList);
}
}
// bulkUpdateLog(storeIds, value, enterpriseId, type, operatorId, operatorName);
} catch (Exception e) {
logger.error("", e);
}
......@@ -1169,6 +1180,37 @@ public class StoreApiServiceImpl implements StoreApiService {
return ServiceResponse.success();
}
// private void bulkUpdateLog(String storeIds, String value, Integer enterpriseId, int type, Integer operatorId, String operatorName) {
// //type表示操作的类型,1更新门店启用状态,2门店电话,3营业时间,4门店照片(替换),5关联品牌,6批量上传图片(原有基础上新增)
// //7批量修改门店分组
// List<Integer> storeIdList;
// if ("all".equals(storeIds)) {
// storeIdList = this.storeService.listAllStoreId(enterpriseId);
// } else {
// storeIdList = Stream.of(storeIds.split(",")).map(Integer::valueOf).collect(Collectors.toList());
// }
// for (Integer storeId : storeIdList) {
// StoreLogDTO storeLogDTO = new StoreLogDTO();
// storeLogDTO.setEnterpriseId(enterpriseId);
// storeLogDTO.setStoreId(storeId);
// storeLogDTO.setReason(StoreLogReasonEnum.WEB.getCode());
// storeLogDTO.setRemark("批量编辑");
// storeLogDTO.setOperatorId(operatorId);
// storeLogDTO.setOperatorName(operatorName);
//
// if (type == 1) {
// storeLogDTO.setLogType(StoreLogTypeEnum.STATUS_UPDATE.getCode());
// } else if (type == 7) {
// storeLogDTO.setLogType(StoreLogTypeEnum.GROUP_UPDATE.getCode());
// } else {
// storeLogDTO.setLogType(StoreLogTypeEnum.INFO_UPDATE.getCode());
// }
// storeLogDTO.setContent("门店新增");
//
// this.storeLogService.saveStoreLog(storeLogDTO);
// }
// }
@Override
public ServiceResponse<StoreDTO> getByStoreNameAndStoreCode(Integer enterpriseId, String storeName, String storeCode) {
StoreDTO store = this.storeService.getByStoreNameAndStoreCode(enterpriseId, storeName, storeCode);
......@@ -1307,14 +1349,19 @@ public class StoreApiServiceImpl implements StoreApiService {
for (StoreExtendDTO extendDTO : storeExtendDTOList) {
String key = "enterprise:store:storeField:" + enterpriseId + ":" + extendDTO.getStoreFieldId();
Object existObj = RedisUtil.getCache(key);
if (existObj != null && extendDTO.getStoreFieldType().intValue() != StoreFieldTypeEnum.TEXT.getCode()) {
if (extendDTO.getStoreFieldType().intValue() == StoreFieldTypeEnum.DATE.getCode()) {
if (existObj != null && extendDTO.getStoreFieldType() != StoreFieldTypeEnum.TEXT.getCode()) {
if (extendDTO.getStoreFieldType() == StoreFieldTypeEnum.DATE.getCode()) {
String value = null;
if(StringUtils.isNotBlank(extendDTO.getValue())){
value = extendDTO.getValue().replaceAll("-", "").
replaceAll(":", "").replaceAll(" ", "");
}
jsonObject.put(existObj.toString(), value == null ? 0l : Long.valueOf(value));
} else if (extendDTO.getStoreFieldType() == StoreFieldTypeEnum.CHECK.getCode()) {
jsonObject.put(existObj.toString(), StringUtils.isBlank(extendDTO.getValue()) ? 0 : Stream.of(extendDTO.getValue().split(",")).map(Long::valueOf).collect(Collectors.toList()));
} else if (extendDTO.getStoreFieldType() == StoreFieldTypeEnum.REAL_NUMBER.getCode()) {
jsonObject.put(existObj.toString(), StringUtils.isBlank(extendDTO.getValue()) ? 0 : new BigDecimal(extendDTO.getValue()).multiply(new BigDecimal(100000)).longValue());
} else {
jsonObject.put(existObj.toString(), StringUtils.isBlank(extendDTO.getValue()) ? 0 : Long.valueOf(extendDTO.getValue()));
}
......
......@@ -30,7 +30,7 @@ public class StoreStatusStrategyImpl implements BulkUpdateStoreStrtegy {
storeInfoIdList.add(Integer.valueOf(s));
}
}
storeLogService.saveBulkStoreInfoLog(storeInfoIdList, enterpriseId, operatorId, operatorName, "门店状态变更为【" + StoreStatusEnum.parseCode(Integer.parseInt(value)) + "】");
storeLogService.saveBulkStoreStatusLog(storeInfoIdList, enterpriseId, operatorId, operatorName, "门店状态变更为【" + StoreStatusEnum.parseCode(Integer.parseInt(value)) + "】");
}
return i;
}
......
......@@ -63,4 +63,6 @@
<dubbo:service interface="com.gic.store.service.StoreTagTmpApiService" ref="storeTagTmpApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.StoreOpenApiService" ref="storeOpenApiService" timeout="6000" />
<dubbo:service interface="com.gic.store.service.DictApiService" ref="dictApiService" timeout="6000" />
<dubbo:reference interface="com.gic.weimob.api.service.WeimobStoreSiteService" id="weimobStoreSiteService" timeout="6000"/>
</beans>
......@@ -168,4 +168,76 @@
<delete id="delete">
delete from tab_store_extend where enterprise_id = #{enterpriseId} and store_info_id = #{storeInfoId}
</delete>
<insert id="insertNotRepeat">
insert into tab_store_extend
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="storeExtendId != null">
store_extend_id,
</if>
<if test="storeInfoId != null">
store_info_id,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="storeFieldId != null">
store_field_id,
</if>
<if test="value != null">
value,
</if>
<if test="sort != null">
sort,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="isSearch != null">
is_search,
</if>
</trim>
<trim prefix="select " suffix="" suffixOverrides=",">
<if test="storeExtendId != null">
#{storeExtendId,jdbcType=INTEGER},
</if>
<if test="storeInfoId != null">
#{storeInfoId,jdbcType=INTEGER},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=INTEGER},
</if>
<if test="storeFieldId != null">
#{storeFieldId,jdbcType=INTEGER},
</if>
<if test="value != null">
#{value,jdbcType=VARCHAR},
</if>
<if test="sort != null">
#{sort,jdbcType=DOUBLE},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="isSearch != null">
#{isSearch,jdbcType=INTEGER},
</if>
</trim>
from dual
where not exists(
select
1
from
tab_store_extend
where store_field_id = #{storeFieldId} and value = #{value}
<if test="storeExtendId != null">
and store_extend_id &lt;&gt; #{storeExtendId}
</if>
)
</insert>
</mapper>
\ No newline at end of file
......@@ -348,7 +348,8 @@
((6378.137 * acos(cos(radians(#{store.latitude})) * cos(radians(latitude)) * cos(radians(longitude) - radians(#{store.longitude})) + sin(radians(#{store.latitude})) * sin(radians(latitude))))*1000) AS distance
from tab_store_info t1,tab_store t2 where t1.store_info_id = t2.store_info_id
<if test="store.search != null and store.search !=''">
and (t1.store_name like concat('%', #{store.search}, '%') or t1.store_code like concat('%', #{store.search}, '%'))
and (t1.store_name like concat('%', #{store.search}, '%') or t1.store_code like concat('%', #{store.search}, '%')
or t1.provinces like concat('%', #{store.search}, '%') )
</if>
<if test="store.storeCode != null and store.storeCode !=''">
and t1.store_code =#{store.storeCode}
......
......@@ -220,6 +220,17 @@
</foreach>
</if>
</select>
<select id="listStoredByStoreInfoList" resultType="java.lang.Integer">
select store_id
from tab_store where own_type = 0 and enterprise_id = #{enterpriseId}
<if test="null != ids and ids.size &gt; 0">
and store_info_id in
<foreach close=")" collection="ids" index="index" item="item" open="(" separator=",">
#{item}
</foreach>
</if>
</select>
<select id="listAllCityId" resultType="java.lang.String">
select city_id
from tab_store t1,tab_store_info t2
......
......@@ -38,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author zhiwj
......@@ -153,6 +154,12 @@ public class ClerkController extends DownloadUtils {
@RequestMapping("clerk-qrcode-download")
public RestResponse clerkQrcodeDownload(@RequestBody ClerkQrcodeQO clerkQrcodeQO){
List<com.gic.store.web.qo.store.QrcodeContent> list = clerkQrcodeQO.getContent();
if (CollectionUtils.isNotEmpty(list)) {
clerkQrcodeQO.setContent(list.stream().filter(Objects::nonNull).collect(Collectors.toList()));
}
int total = 0;
if(clerkQrcodeQO.getIsAll() == 1){
ClerkSearchDTO clerkSearchDTO = clerkQrcodeQO.getClerkSearchDTO();
......
......@@ -6,6 +6,7 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.download.utils.OperationResultUtils;
import com.gic.enterprise.ano.IgnoreLogin;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.utils.ResultControllerUtils;
......@@ -93,6 +94,7 @@ public class StoreTagController {
}
@RequestMapping("/template-download")
@IgnoreLogin
public Object download(HttpServletRequest request, HttpServletResponse response) throws Exception {
String fileName = " 门店标签批量导入模板.xlsx";
......
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