|
@@ -5,25 +5,35 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.common.config.MD5Util;
|
|
|
+//import org.springblade.common.utils.PinYinUtil;
|
|
|
+import org.springblade.core.secure.BladeUser;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.secure.utils.SecureUtil;
|
|
|
import org.springblade.core.tenant.annotation.NonDS;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
+import org.springblade.core.tool.utils.DateUtil;
|
|
|
+import org.springblade.core.tool.utils.DigestUtil;
|
|
|
import org.springblade.core.tool.utils.Func;
|
|
|
+import org.springblade.system.entity.Dept;
|
|
|
+import org.springblade.system.entity.Role;
|
|
|
import org.springblade.system.feign.ISysClient;
|
|
|
import org.springblade.system.user.entity.User;
|
|
|
import org.springblade.system.user.entity.UserInfo;
|
|
|
import org.springblade.system.user.entity.UserOauth;
|
|
|
import org.springblade.system.user.enums.UserEnum;
|
|
|
import org.springblade.system.user.service.IUserService;
|
|
|
+import org.springblade.u9cloud.entity.ZcrmViewCustomerSel;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.security.MessageDigest;
|
|
|
+import java.security.NoSuchAlgorithmException;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -91,37 +101,10 @@ public class UserClient implements IUserClient {
|
|
|
@Override
|
|
|
public List<User> userListGetByIds(List<Long> ids) {
|
|
|
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
|
|
|
-
|
|
|
lqw.in(User::getId, ids);
|
|
|
-// for (int i = 0; i < ids.size(); i++) {
|
|
|
-// if (ids.size() - 1 == 1) {
|
|
|
-// lqw.eq(User::getId, ids.get(i));
|
|
|
-// } else {
|
|
|
-// lqw.eq(User::getId, ids.get(i)).or();
|
|
|
-// }
|
|
|
-//
|
|
|
-// }
|
|
|
-// ids.forEach(id -> lqw.eq(User::getId, id).or());
|
|
|
return service.list(lqw);
|
|
|
}
|
|
|
|
|
|
-// @Override
|
|
|
-// public List<User> getXcxUserListByWebUserId(List<Long> ids) {
|
|
|
-// List<User> users = this.userListGetByIds(ids);
|
|
|
-// List<String> phoneList = users.stream().map(User::getPhone).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
-// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
|
|
|
-// lqw.in(User::getPhone, phoneList);
|
|
|
-// lqw.eq(User::getUserType, 4);
|
|
|
-// return service.list(lqw);
|
|
|
-// }
|
|
|
-//
|
|
|
-// @Override
|
|
|
-// public User getWebUserByXcxUserPhone(String phone) {
|
|
|
-// LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<>();
|
|
|
-// lqw.eq(User::getPhone, phone)
|
|
|
-// .eq(User::getUserType, 1);
|
|
|
-// return service.getOne(lqw);
|
|
|
-// }
|
|
|
|
|
|
@Override
|
|
|
@GetMapping(USER_INFO_BY_NAME_PRECISION)
|
|
@@ -317,6 +300,66 @@ public class UserClient implements IUserClient {
|
|
|
return service.getUserInfoByPhone(phone, category);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<String> insertOrUpdateDealerUser(List<ZcrmViewCustomerSel> customerSelList) throws NoSuchAlgorithmException {
|
|
|
+ if (CollectionUtils.isEmpty(customerSelList)) {
|
|
|
+ return R.fail("无客户数据");
|
|
|
+ }
|
|
|
+ R<Long> dealerRole = sysClient.getRoleByAlias("dealer");
|
|
|
+ if (!dealerRole.isSuccess() || Objects.isNull(dealerRole.getData())) {
|
|
|
+ return R.fail("缺少经销商角色,请先维护角色");
|
|
|
+ }
|
|
|
+ BladeUser bladeUser = AuthUtil.getUser();
|
|
|
+ R<Dept> dealerDept = sysClient.getDeptIByName(bladeUser.getTenantId(), "经销商");
|
|
|
+ if (!dealerDept.isSuccess() || Objects.isNull(dealerDept.getData())) {
|
|
|
+ return R.fail("缺少经销商部门,请先维护部门");
|
|
|
+ }
|
|
|
+ Dept dept = dealerDept.getData();
|
|
|
+ String dealerRoleId = String.valueOf(dealerRole.getData());
|
|
|
+ List<User> dealerUserList = service.list(new LambdaQueryWrapper<User>().eq(User::getTenantId, bladeUser.getTenantId()).eq(User::getUserTypeRole, 2));
|
|
|
+ List<User> insertOrUpdateUserList = new ArrayList<>();
|
|
|
+ Date nowDate = DateUtil.now();
|
|
|
+ if (!CollectionUtils.isEmpty(dealerUserList)) {
|
|
|
+ dealerUserList.forEach(usr -> usr.setIsDeleted(1));
|
|
|
+ }
|
|
|
+ for (ZcrmViewCustomerSel customerSel : customerSelList) {
|
|
|
+ User insertOrUpdateUser = new User();
|
|
|
+ insertOrUpdateUserList.add(insertOrUpdateUser);
|
|
|
+ User srcUser = dealerUserList.stream().filter(u -> customerSel.getCustomerId().equals(u.getCustomerId()) && customerSel.getCustomerCode().equals(u.getCode())).findFirst().orElse(null);
|
|
|
+ if (srcUser == null) {
|
|
|
+ insertOrUpdateUser.setPassword(DigestUtil.hex(MD5Util.encryptionData("Kbs@888")));
|
|
|
+ insertOrUpdateUser.setCreateTime(nowDate);
|
|
|
+ } else {
|
|
|
+ insertOrUpdateUser.setId(srcUser.getId());
|
|
|
+ insertOrUpdateUser.setUpdateTime(nowDate);
|
|
|
+ srcUser.setIsDeleted(0);
|
|
|
+ }
|
|
|
+ insertOrUpdateUser.setDeptId(String.valueOf(dept.getId()));
|
|
|
+ insertOrUpdateUser.setUserType(1);
|
|
|
+ insertOrUpdateUser.setCode(customerSel.getCustomerCode());
|
|
|
+ insertOrUpdateUser.setName(customerSel.getCustomerName());
|
|
|
+ insertOrUpdateUser.setRealName(customerSel.getCustomerName());
|
|
|
+ insertOrUpdateUser.setCustomerId(customerSel.getCustomerId());
|
|
|
+ insertOrUpdateUser.setRoleId(dealerRoleId);
|
|
|
+ insertOrUpdateUser.setAccount(customerSel.getCustomerName());
|
|
|
+ // insertOrUpdateUser.setAccount(customerSel.getDescFlexFieldPrivateDescSeg1());
|
|
|
+ insertOrUpdateUser.setPhone(customerSel.getDescFlexFieldPrivateDescSeg2());
|
|
|
+ insertOrUpdateUser.setBankDeposit(customerSel.getBuyerBankAccount());
|
|
|
+ insertOrUpdateUser.setBankAccount(customerSel.getBuyerBankAccountCode());
|
|
|
+ insertOrUpdateUser.setUserTypeRole(2);
|
|
|
+ }
|
|
|
+ List<User> delUserList = dealerUserList.stream().filter(u -> u.getIsDeleted() == 1).collect(Collectors.toList());
|
|
|
+ for (User user : delUserList) {
|
|
|
+ User delUser = new User();
|
|
|
+ delUser.setId(user.getId());
|
|
|
+ delUser.setIsDeleted(1);
|
|
|
+ delUser.setUpdateTime(nowDate);
|
|
|
+ insertOrUpdateUserList.add(delUser);
|
|
|
+ }
|
|
|
+ boolean updateCount = service.saveOrUpdateBatch(insertOrUpdateUserList);
|
|
|
+ return updateCount ? R.success("成功") : R.fail("失败");
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|