|
|
@@ -2,37 +2,36 @@ package org.dromara.customer.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.crypto.digest.BCrypt;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.dromara.common.core.enums.SysPlatformYesNo;
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
-import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
-import lombok.RequiredArgsConstructor;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
-import org.dromara.customer.controller.SupplierInfoController;
|
|
|
+import org.dromara.customer.domain.SupplierContact;
|
|
|
import org.dromara.customer.domain.SupplierInfo;
|
|
|
-import org.dromara.customer.domain.vo.SupplierInformationVo;
|
|
|
-import org.dromara.customer.service.ISupplierInfoService;
|
|
|
-import org.dromara.system.api.RemoteUserService;
|
|
|
-import org.dromara.system.api.domain.bo.RemoteUserBo;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
import org.dromara.customer.domain.bo.SupplierContactBo;
|
|
|
import org.dromara.customer.domain.vo.SupplierContactVo;
|
|
|
-import org.dromara.customer.domain.SupplierContact;
|
|
|
import org.dromara.customer.mapper.SupplierContactMapper;
|
|
|
import org.dromara.customer.service.ISupplierContactService;
|
|
|
+import org.dromara.customer.service.ISupplierInfoService;
|
|
|
+import org.dromara.system.api.RemoteUserService;
|
|
|
+import org.dromara.system.api.domain.bo.RemoteUserBo;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Collection;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -178,14 +177,21 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
|
|
|
//4.如果是待修改审核 能登录 user是能登录的 status = 0
|
|
|
SupplierContact add = MapstructUtils.convert(bo, SupplierContact.class);
|
|
|
// ====== 主联系人唯一控制 ======
|
|
|
- if ("1".equals(add.getIsPrimaryContact())) {
|
|
|
-
|
|
|
- LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
- updateWrapper.eq(SupplierContact::getSupplierId, add.getSupplierId())
|
|
|
- .set(SupplierContact::getIsPrimaryContact, "0");
|
|
|
-
|
|
|
- baseMapper.update(null, updateWrapper);
|
|
|
+// if ("1".equals(add.getIsPrimaryContact())) {
|
|
|
+//
|
|
|
+// LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
+// updateWrapper.eq(SupplierContact::getSupplierId, add.getSupplierId())
|
|
|
+// .set(SupplierContact::getIsPrimaryContact, "0");
|
|
|
+//
|
|
|
+// baseMapper.update(null, updateWrapper);
|
|
|
+// }
|
|
|
+ List<SupplierContact> supplierContacts = baseMapper.selectList(new LambdaQueryWrapper<SupplierContact>().eq(SupplierContact::getSupplierId, add.getSupplierId()).eq(SupplierContact::getIsPrimaryContact, SysPlatformYesNo.YES.getCode()));
|
|
|
+ if (ObjectUtil.isNotEmpty(supplierContacts) && supplierContacts.size() > 0) {
|
|
|
+ add.setIsPrimaryContact(SysPlatformYesNo.NO.getCode());
|
|
|
+ } else {
|
|
|
+ add.setIsPrimaryContact(SysPlatformYesNo.YES.getCode());
|
|
|
}
|
|
|
+
|
|
|
RemoteUserBo remoteUserBo = new RemoteUserBo();
|
|
|
remoteUserBo.setNickName(bo.getUserName());
|
|
|
remoteUserBo.setUserName(bo.getPhone());
|
|
|
@@ -227,15 +233,15 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
|
|
|
public Boolean updateByBo(SupplierContactBo bo) {
|
|
|
SupplierContact update = MapstructUtils.convert(bo, SupplierContact.class);
|
|
|
// ====== 主联系人唯一控制 ======
|
|
|
- if ("1".equals(update.getIsPrimaryContact())) {
|
|
|
-
|
|
|
- LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
- updateWrapper.eq(SupplierContact::getSupplierId, update.getSupplierId())
|
|
|
- .ne(SupplierContact::getId, update.getId()) // 排除自己
|
|
|
- .set(SupplierContact::getIsPrimaryContact, "0");
|
|
|
-
|
|
|
- baseMapper.update(null, updateWrapper);
|
|
|
- }
|
|
|
+// if ("1".equals(update.getIsPrimaryContact())) {
|
|
|
+//
|
|
|
+// LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
|
|
|
+// updateWrapper.eq(SupplierContact::getSupplierId, update.getSupplierId())
|
|
|
+// .ne(SupplierContact::getId, update.getId()) // 排除自己
|
|
|
+// .set(SupplierContact::getIsPrimaryContact, "0");
|
|
|
+//
|
|
|
+// baseMapper.update(null, updateWrapper);
|
|
|
+// }
|
|
|
if (update.getUserId() != null) {
|
|
|
RemoteUserBo remoteUserBo = new RemoteUserBo();
|
|
|
remoteUserBo.setNickName(bo.getUserName());
|
|
|
@@ -252,6 +258,47 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
|
|
|
return baseMapper.updateById(update) > 0;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public int changeIsPrimaryContact(SupplierContactBo bo) {
|
|
|
+ try {
|
|
|
+ if (bo == null || bo.getId() == null) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ SupplierContactVo supplierContactVo = baseMapper.selectVoById(bo.getId());
|
|
|
+ log.info("修改主联系人:" + supplierContactVo);
|
|
|
+ if (SysPlatformYesNo.YES.getCode().equals(bo.getIsPrimaryContact())) {
|
|
|
+ // 1. 清除该供应商下默认联系人
|
|
|
+ SupplierContact updateObj = new SupplierContact();
|
|
|
+ updateObj.setIsPrimaryContact(SysPlatformYesNo.NO.getCode()); //
|
|
|
+
|
|
|
+ baseMapper.update(
|
|
|
+ updateObj,
|
|
|
+ new LambdaUpdateWrapper<SupplierContact>()
|
|
|
+ .eq(SupplierContact::getSupplierId, supplierContactVo.getSupplierId()) //
|
|
|
+ .eq(SupplierContact::getIsPrimaryContact, SysPlatformYesNo.YES.getCode())
|
|
|
+ );
|
|
|
+
|
|
|
+ // 2. 设置当前为默认
|
|
|
+ SupplierContact current = new SupplierContact();
|
|
|
+ current.setId(bo.getId());
|
|
|
+ current.setIsPrimaryContact(SysPlatformYesNo.YES.getCode());
|
|
|
+ baseMapper.updateById(current);
|
|
|
+
|
|
|
+ return 1;
|
|
|
+ } else {
|
|
|
+ // 取消默认
|
|
|
+ SupplierContact current = new SupplierContact();
|
|
|
+ current.setId(bo.getId());
|
|
|
+ current.setIsPrimaryContact(SysPlatformYesNo.NO.getCode());
|
|
|
+ baseMapper.updateById(current);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改失败:" + e.getMessage(), e);
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 校验并批量删除联系人信息
|