洪城义警-正式版后台
Administrator
2022-06-20 1c1c1254431feebd4b7945c5cb7151d9eec3a232
src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -17,7 +17,6 @@
package org.springblade.modules.system.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -44,11 +43,13 @@
import org.springblade.modules.auth.enums.UserEnum;
import org.springblade.modules.system.entity.*;
import org.springblade.modules.system.excel.UserExcel;
import org.springblade.modules.system.excel.UserExcels;
import org.springblade.modules.system.mapper.UserMapper;
import org.springblade.modules.system.service.IRoleService;
import org.springblade.modules.system.service.IUserDeptService;
import org.springblade.modules.system.service.IUserOauthService;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserDistrictStatisVO;
import org.springblade.modules.system.vo.UserRegisterStatisVO;
import org.springblade.modules.system.vo.UserVO;
import org.springblade.modules.system.vo.UsersVo;
@@ -501,4 +502,101 @@
   public List<UserRegisterStatisVO> getUserTypeCount() {
      return baseMapper.getUserTypeCount();
   }
   @Override
   public List<UserRegisterStatisVO> getUserTypeCountXq(String xid) {
      return baseMapper.getUserTypeCountXq(xid);
   }
   @Override
   public List<UserVO> getUserTypeList(String xid,String index) {
      return baseMapper.getUserTypeList(xid,index);
   }
   @Override
   public List<UserDistrictStatisVO> getUserDistrictTypeCount() {
      return baseMapper.getUserDistrictTypeCount();
   }
   /**
    * 查询用户数据,未删除的,未审核的
    * @return
    */
   @Override
   public List<User> getNotAuditAllUserList() {
      return baseMapper.getNotAuditAllUserList();
   }
   /**
    * 查询账号相同的用户数量
    *
    * @param account
    * @return
    */
   @Override
   public Integer selectCount(String account) {
      return baseMapper.selectCountAccount(account);
   }
   @Override
   public void updateAcc(String stype, String account) {
      baseMapper.updateAcc(stype, account);
   }
   @Override
   public boolean firstLogin(String id) {
      return baseMapper.firstLogin(id);
   }
   @Override
   public void delete(String account) {
      baseMapper.delete(account);
   }
   /**
    * 用户导入(保安员导入)
    * @param data
    * @param isCovered
    */
   @Override
//   @Transactional(rollbackFor = Exception.class)
   public void importUsers(List<UserExcels> data, Boolean isCovered) {
      data.forEach(userExcel -> {
         User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
         // 设置租户ID
         user.setTenantId("000000");
         user.setRoleId("1495714343888039937");
         user.setDeptId("1424615972718895106");
         user.setStype("1");
         user.setIsDeleted(0);
         user.setStatus(1);
         //查询身份证号是否有重复的,有的话只更新
         User user1 = new User();
         user1.setStatus(1);
         user1.setIsDeleted(0);
         //设置保安员id
         user1.setSecurityId(userExcel.getSecurityId());
         List<User> list = this.list(Condition.getQueryWrapper(user1));
         if (list.size()>0){
            //更新
            user.setId(list.get(0).getId());
            this.updateById(user);
         }else {
            String tenantId = user.getTenantId();
            Tenant tenant = SysCache.getTenant(tenantId);
            if (Func.isNotEmpty(tenant)) {
               Integer accountNumber = tenant.getAccountNumber();
               if (tenantProperties.getLicense()) {
                  String licenseKey = tenant.getLicenseKey();
                  String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY);
                  accountNumber = JsonUtil.parse(decrypt, Tenant.class).getAccountNumber();
               }
               Integer tenantCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId));
               if (accountNumber != null && accountNumber > 0 && accountNumber <= tenantCount) {
                  throw new ServiceException("当前租户已到最大账号额度!");
               }
            }
            //新增
            this.save(user);
         }
      });
   }
}