|
@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.json.JSONObject;
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.XML;
|
|
import cn.hutool.json.XML;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
@@ -22,16 +23,17 @@ import com.yc.ship.framework.mybatis.core.query.MPJLambdaWrapperX;
|
|
|
import com.yc.ship.framework.security.core.LoginUser;
|
|
import com.yc.ship.framework.security.core.LoginUser;
|
|
|
import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
|
|
import com.yc.ship.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
|
|
import com.yc.ship.framework.tenant.core.aop.TenantIgnore;
|
|
|
-import com.yc.ship.framework.tenant.core.context.TenantContextHolder;
|
|
|
|
|
import com.yc.ship.framework.tenant.core.util.TenantUtils;
|
|
import com.yc.ship.framework.tenant.core.util.TenantUtils;
|
|
|
import com.yc.ship.module.infra.api.config.ConfigApi;
|
|
import com.yc.ship.module.infra.api.config.ConfigApi;
|
|
|
import com.yc.ship.module.ota.controller.admin.distributor.vo.*;
|
|
import com.yc.ship.module.ota.controller.admin.distributor.vo.*;
|
|
|
import com.yc.ship.module.ota.controller.admin.distributorauditlog.vo.DistributorAuditLogSaveReqVO;
|
|
import com.yc.ship.module.ota.controller.admin.distributorauditlog.vo.DistributorAuditLogSaveReqVO;
|
|
|
import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
|
|
import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
|
|
|
import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
|
|
import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
|
|
|
|
|
+import com.yc.ship.module.ota.dal.dataobject.distributorcategory.DistributorCategoryHisDO;
|
|
|
import com.yc.ship.module.ota.dal.dataobject.distributortype.DistributorTypeDO;
|
|
import com.yc.ship.module.ota.dal.dataobject.distributortype.DistributorTypeDO;
|
|
|
import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
|
|
import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
|
|
|
import com.yc.ship.module.ota.dal.mysql.distributor.DistributorMapper;
|
|
import com.yc.ship.module.ota.dal.mysql.distributor.DistributorMapper;
|
|
|
|
|
+import com.yc.ship.module.ota.dal.mysql.distributorcategory.DistributorCategoryHisMapper;
|
|
|
import com.yc.ship.module.ota.dal.mysql.otaDistributorRegion.OtaDistributorRegionMapper;
|
|
import com.yc.ship.module.ota.dal.mysql.otaDistributorRegion.OtaDistributorRegionMapper;
|
|
|
import com.yc.ship.module.ota.enums.DistributorTypeEnum;
|
|
import com.yc.ship.module.ota.enums.DistributorTypeEnum;
|
|
|
import com.yc.ship.module.ota.service.distributorauditlog.DistributorAuditLogService;
|
|
import com.yc.ship.module.ota.service.distributorauditlog.DistributorAuditLogService;
|
|
@@ -58,6 +60,7 @@ import java.math.BigDecimal;
|
|
|
import java.net.Socket;
|
|
import java.net.Socket;
|
|
|
import java.net.SocketTimeoutException;
|
|
import java.net.SocketTimeoutException;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
@@ -105,6 +108,8 @@ public class DistributorServiceImpl implements DistributorService {
|
|
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
|
private DistributorTypeService distributorTypeService;
|
|
private DistributorTypeService distributorTypeService;
|
|
|
|
|
+ @Resource
|
|
|
|
|
+ private DistributorCategoryHisMapper distributorCategoryHisMapper;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -123,6 +128,8 @@ public class DistributorServiceImpl implements DistributorService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
//登录密码加密
|
|
//登录密码加密
|
|
|
String password = createReqVO.getPassword();
|
|
String password = createReqVO.getPassword();
|
|
|
if (StringUtils.isNotBlank(password)) {
|
|
if (StringUtils.isNotBlank(password)) {
|
|
@@ -189,6 +196,14 @@ public class DistributorServiceImpl implements DistributorService {
|
|
|
list.add(otaDistributorRegionDO);
|
|
list.add(otaDistributorRegionDO);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ if(distributor.getOtaCategoryId() != null){
|
|
|
|
|
+ DistributorCategoryHisDO distributorCategoryHis = new DistributorCategoryHisDO();
|
|
|
|
|
+ distributorCategoryHis.setOtaCategoryId(distributor.getOtaCategoryId());
|
|
|
|
|
+ distributorCategoryHis.setDistributorId(distributor.getId());
|
|
|
|
|
+ distributorCategoryHis.setStartTime(LocalDateTime.now());
|
|
|
|
|
+ distributorCategoryHis.setId(IdWorker.getId(distributorCategoryHis));
|
|
|
|
|
+ distributorCategoryHisMapper.insert(distributorCategoryHis);
|
|
|
|
|
+ }
|
|
|
if(!list.isEmpty()) {
|
|
if(!list.isEmpty()) {
|
|
|
otaDistributorRegionMapper.insertBatch(list);
|
|
otaDistributorRegionMapper.insertBatch(list);
|
|
|
}
|
|
}
|
|
@@ -387,7 +402,10 @@ public class DistributorServiceImpl implements DistributorService {
|
|
|
@Override
|
|
@Override
|
|
|
public void updateDistributor(DistributorSaveReqVO updateReqVO) {
|
|
public void updateDistributor(DistributorSaveReqVO updateReqVO) {
|
|
|
// 校验存在
|
|
// 校验存在
|
|
|
- validateDistributorExists(updateReqVO.getId());
|
|
|
|
|
|
|
+ DistributorDO oldDistributorDO = distributorMapper.selectById(updateReqVO.getId());
|
|
|
|
|
+ if (oldDistributorDO == null) {
|
|
|
|
|
+ throw exception(DISTRIBUTOR_NOT_EXISTS);
|
|
|
|
|
+ }
|
|
|
// 校验登录名重复
|
|
// 校验登录名重复
|
|
|
validateLoginNameUnique(updateReqVO.getId(), updateReqVO.getLoginName());
|
|
validateLoginNameUnique(updateReqVO.getId(), updateReqVO.getLoginName());
|
|
|
// 更新
|
|
// 更新
|
|
@@ -446,6 +464,41 @@ public class DistributorServiceImpl implements DistributorService {
|
|
|
if(!list.isEmpty()) {
|
|
if(!list.isEmpty()) {
|
|
|
otaDistributorRegionMapper.insertBatch(list);
|
|
otaDistributorRegionMapper.insertBatch(list);
|
|
|
}
|
|
}
|
|
|
|
|
+ log.info("分销商分组是否改变:{}", !Objects.equals(updateObj.getOtaCategoryId(), oldDistributorDO.getOtaCategoryId()));
|
|
|
|
|
+ if(updateObj.getOtaCategoryId() != null && !Objects.equals(updateObj.getOtaCategoryId(), oldDistributorDO.getOtaCategoryId())){
|
|
|
|
|
+ // 改变了分销商分组
|
|
|
|
|
+ if(oldDistributorDO.getOtaCategoryId() != null){
|
|
|
|
|
+ List<DistributorCategoryHisDO> distributorCategoryHisDOS = distributorCategoryHisMapper.selectList(
|
|
|
|
|
+ new LambdaUpdateWrapper<DistributorCategoryHisDO>()
|
|
|
|
|
+ .eq(DistributorCategoryHisDO::getDistributorId, updateObj.getId())
|
|
|
|
|
+ .eq(DistributorCategoryHisDO::getOtaCategoryId, oldDistributorDO.getOtaCategoryId())
|
|
|
|
|
+ .isNull(DistributorCategoryHisDO::getEndTime)
|
|
|
|
|
+ );
|
|
|
|
|
+ if(!distributorCategoryHisDOS.isEmpty()){
|
|
|
|
|
+ DistributorCategoryHisDO distributorCategoryHisDO = distributorCategoryHisDOS.get(0);
|
|
|
|
|
+ distributorCategoryHisDO.setEndTime(LocalDateTime.now());
|
|
|
|
|
+ distributorCategoryHisMapper.updateById(distributorCategoryHisDO);
|
|
|
|
|
+ }
|
|
|
|
|
+ DistributorCategoryHisDO distributorCategoryHis = new DistributorCategoryHisDO();
|
|
|
|
|
+ distributorCategoryHis.setOtaCategoryId(updateObj.getOtaCategoryId());
|
|
|
|
|
+ distributorCategoryHis.setDistributorId(updateObj.getId());
|
|
|
|
|
+ distributorCategoryHis.setStartTime(LocalDateTime.now());
|
|
|
|
|
+ distributorCategoryHis.setId(IdWorker.getId(distributorCategoryHis));
|
|
|
|
|
+ distributorCategoryHisMapper.insert(distributorCategoryHis);
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }else{
|
|
|
|
|
+ List<DistributorCategoryHisDO> distributorCategoryHisDOS = distributorCategoryHisMapper.selectList(DistributorCategoryHisDO::getDistributorId, updateObj.getId(),
|
|
|
|
|
+ DistributorCategoryHisDO::getOtaCategoryId, updateObj.getOtaCategoryId() );
|
|
|
|
|
+ if(updateObj.getOtaCategoryId() != null && distributorCategoryHisDOS.isEmpty()){
|
|
|
|
|
+ DistributorCategoryHisDO distributorCategoryHis = new DistributorCategoryHisDO();
|
|
|
|
|
+ distributorCategoryHis.setOtaCategoryId(updateObj.getOtaCategoryId());
|
|
|
|
|
+ distributorCategoryHis.setDistributorId(updateObj.getId());
|
|
|
|
|
+ distributorCategoryHis.setStartTime(LocalDateTime.now());
|
|
|
|
|
+ distributorCategoryHis.setId(IdWorker.getId(distributorCategoryHis));
|
|
|
|
|
+ distributorCategoryHisMapper.insert(distributorCategoryHis);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|