|
|
@ -30,6 +30,7 @@ import com.baiye.system.constant.LetterConst;
|
|
|
|
import com.baiye.system.enums.RoleCodeEnum;
|
|
|
|
import com.baiye.system.enums.RoleCodeEnum;
|
|
|
|
import com.baiye.system.model.entity.SysUser;
|
|
|
|
import com.baiye.system.model.entity.SysUser;
|
|
|
|
import com.baiye.system.service.SysUserRoleService;
|
|
|
|
import com.baiye.system.service.SysUserRoleService;
|
|
|
|
|
|
|
|
import com.baiye.system.model.entity.SysUser;
|
|
|
|
import com.baiye.system.service.SysUserService;
|
|
|
|
import com.baiye.system.service.SysUserService;
|
|
|
|
import com.baiye.util.AESUtils;
|
|
|
|
import com.baiye.util.AESUtils;
|
|
|
|
import com.baiye.utils.SerialCode;
|
|
|
|
import com.baiye.utils.SerialCode;
|
|
|
@ -158,50 +159,71 @@ public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEnt
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public Boolean auditFormById(ChangeCustomDTO dto) {
|
|
|
|
public Boolean auditFormById(CustomDTO customDTO) {
|
|
|
|
Long id = dto.getCustomId();
|
|
|
|
Long customId = customDTO.getCustomId();
|
|
|
|
Integer status = dto.getStatus();
|
|
|
|
Integer status = customDTO.getStatus();
|
|
|
|
CustomEntity customEntity = baseMapper.selectById(id);
|
|
|
|
List<Long> salesmanUserIdList = customDTO.getSalesmanUserIdList();
|
|
|
|
|
|
|
|
Long reviewUserId = customDTO.getReviewUserId();
|
|
|
|
|
|
|
|
Long currentUserId = SecurityUtils.getCurrentUserId();
|
|
|
|
|
|
|
|
CustomEntity updateCustomEntity = CustomConverter.INSTANCE.dtoToPo(customDTO);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<ClueDTO> list = Lists.newArrayList();
|
|
|
|
|
|
|
|
CustomEntity customEntity = baseMapper.selectById(customId);
|
|
|
|
if (ObjectUtil.isNotNull(customEntity)) {
|
|
|
|
if (ObjectUtil.isNotNull(customEntity)) {
|
|
|
|
if (ObjectUtil.isNotNull(status) && status == 0) {
|
|
|
|
String phone = AESUtils.encrypt(customEntity.getCustomNid(), securityProperties.getPasswordSecretKey());
|
|
|
|
if (ObjectUtil.isNull(dto.getReviewUserId())) {
|
|
|
|
Long companyId = customEntity.getCompanyId();
|
|
|
|
throw new BadRequestException("复审员不能为空!");
|
|
|
|
if (status == 0) {
|
|
|
|
}
|
|
|
|
|
|
|
|
customEntity.setType(3);
|
|
|
|
|
|
|
|
customEntity.setReviewUserId(dto.getReviewUserId());
|
|
|
|
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(customEntity));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
Gson gson = new Gson();
|
|
|
|
Gson gson = new Gson();
|
|
|
|
AddressDTO address = new AddressDTO();
|
|
|
|
AddressDTO address = new AddressDTO();
|
|
|
|
List<ClueDTO> list = Lists.newArrayList();
|
|
|
|
|
|
|
|
BeanUtils.copyProperties(customEntity, address);
|
|
|
|
BeanUtils.copyProperties(customEntity, address);
|
|
|
|
address.setCustomerName(customEntity.getCustomName());
|
|
|
|
address.setCustomerName(customEntity.getCustomName());
|
|
|
|
String otherClue = gson.toJson(address);
|
|
|
|
String otherClue = gson.toJson(address);
|
|
|
|
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(id);
|
|
|
|
List<CustomStoreEntity> customStores = customStoreService.selectListByCustomId(customId);
|
|
|
|
if (CollUtil.isNotEmpty(customStores)) {
|
|
|
|
if (CollUtil.isNotEmpty(customStores)) {
|
|
|
|
for (CustomStoreEntity store : customStores) {
|
|
|
|
for (CustomStoreEntity store : customStores) {
|
|
|
|
// 雪花算法id
|
|
|
|
|
|
|
|
Long clueId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
|
|
|
|
Long clueId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
|
|
|
|
StoreUserDTO entity = storeUserService.findUserIdByStoreId(store.getStoreId());
|
|
|
|
StoreUserDTO entity = storeUserService.findUserIdByStoreId(store.getStoreId());
|
|
|
|
if (ObjectUtil.isNotNull(entity) && ObjectUtil.isNotNull(entity.getUserId())) {
|
|
|
|
if (ObjectUtil.isNotNull(entity) && ObjectUtil.isNotNull(entity.getUserId())) {
|
|
|
|
|
|
|
|
String username = sysUserService.findById(entity.getUserId()).getUsername();
|
|
|
|
// 扣减余额
|
|
|
|
// 扣减余额
|
|
|
|
Boolean result = sysUserService.deductionQuantity(entity.getUserId(), entity.getStoreName());
|
|
|
|
Boolean result = sysUserService.deductionQuantity(entity.getUserId(), entity.getStoreName());
|
|
|
|
if (Boolean.TRUE.equals(result)) {
|
|
|
|
if (Boolean.TRUE.equals(result)) {
|
|
|
|
ClueDTO clueDTO = ClueDTO.builder().originName(ClueSourceEnum.STORE_DISTRIBUTION.getDescription()).clueId(clueId).remark
|
|
|
|
ClueDTO clueDTO = new ClueDTO(clueId, ClueSourceEnum.STORE_DISTRIBUTION.getDescription(), phone, updateCustomEntity.getRemark(),
|
|
|
|
(customEntity.getRemark()).nid(AESUtils.encrypt(customEntity.getCustomNid(), securityProperties.getPasswordSecretKey())).assignedBy
|
|
|
|
otherClue, entity.getUserId(), username, currentUserId, Boolean.TRUE, companyId, updateCustomEntity.getSex(),
|
|
|
|
(entity.getUserId()).createBy(customEntity.getCompanyId()).assignedName(store.getStoreName()).otherClue(otherClue).isNewClue(Boolean.TRUE).build();
|
|
|
|
customEntity.getCustomInformation(), customEntity.getChannelIdentifying(), customEntity.getChannelType());
|
|
|
|
list.add(clueDTO);
|
|
|
|
list.add(clueDTO);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if (status == 1) {
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(salesmanUserIdList)) throw new BadRequestException("下发人员不能为空!");
|
|
|
|
|
|
|
|
Map<Long, List<SysUser>> listMap = sysUserService.listByUserIds(salesmanUserIdList).stream().collect(Collectors.groupingBy(SysUser::getUserId));
|
|
|
|
|
|
|
|
for (Long userId : salesmanUserIdList) {
|
|
|
|
|
|
|
|
String username = listMap.get(userId).get(0).getUsername();
|
|
|
|
|
|
|
|
// 扣减余额
|
|
|
|
|
|
|
|
Boolean result = sysUserService.deductionQuantity(userId, null);
|
|
|
|
|
|
|
|
if (Boolean.TRUE.equals(result)) {
|
|
|
|
|
|
|
|
Long clueId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
|
|
|
|
|
|
|
|
ClueDTO clueDTO = new ClueDTO(clueId, customEntity.getChannelName(), phone, updateCustomEntity.getRemark(), null, userId,
|
|
|
|
|
|
|
|
username, currentUserId, Boolean.TRUE, companyId, updateCustomEntity.getSex(), customEntity.getCustomInformation(),
|
|
|
|
|
|
|
|
customEntity.getChannelIdentifying(), customEntity.getChannelType());
|
|
|
|
|
|
|
|
list.add(clueDTO);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
if (reviewUserId != null) throw new BadRequestException("复审员不能为空!");
|
|
|
|
|
|
|
|
updateCustomEntity.setType(3);
|
|
|
|
|
|
|
|
updateCustomEntity.setReviewUserId(customDTO.getReviewUserId());
|
|
|
|
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(updateCustomEntity));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 扣减数量,插入资源
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
|
|
// 扣减数量
|
|
|
|
updateCustomEntity.setEnrollStatus(2);
|
|
|
|
customEntity.setEnrollStatus(2);
|
|
|
|
|
|
|
|
clueService.saveClueListByStoreInfo(list);
|
|
|
|
clueService.saveClueListByStoreInfo(list);
|
|
|
|
customEntity.setDistributeTime(DateUtil.date());
|
|
|
|
updateCustomEntity.setDistributeTime(DateUtil.date());
|
|
|
|
customEntity.setUpdateTime(LocalDateTime.now());
|
|
|
|
updateCustomEntity.setUpdateTime(LocalDateTime.now());
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(customEntity));
|
|
|
|
return SqlHelper.retBool(baseMapper.updateById(updateCustomEntity));
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Boolean.FALSE;
|
|
|
|
return Boolean.FALSE;
|
|
|
@ -279,7 +301,6 @@ public class CustomServiceImpl extends ExtendServiceImpl<CustomMapper, CustomEnt
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 检测数据
|
|
|
|
* 检测数据
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|