瀏覽代碼

更新代码

haonan 1 年之前
父節點
當前提交
5c6c8ef7d6

+ 147 - 39
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.entity.SysArea;
@@ -11,7 +12,6 @@ import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.mapper.TenantStaffMapper;
 import com.yonge.cooleshow.biz.dal.service.SysAreaService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
-import com.yonge.cooleshow.biz.dal.wrapper.StudentWrapper;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.SysUserType;
@@ -21,7 +21,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
-import org.springframework.beans.BeanUtils;
 import lombok.extern.slf4j.Slf4j;
 import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantInfoWrapper;
@@ -88,8 +87,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         ArrayList<Integer> listId = new ArrayList<>();
         for (int i = 0; i < tenantInfos.size(); i++) {
             TenantInfoWrapper.TenantInfo info = tenantInfos.get(i);
-            Integer id = info.getId();
-            listId.add(i, id);
+            long id = info.getId();
+            listId.add(i,(int)id);
         }
         //查询对应机构的老师数量
         List<Integer> listTeacher = new ArrayList<>();
@@ -113,29 +112,11 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
 
 
         //获取省市区信息
-        List<Integer> areaCodeList = tenantInfos.stream().map(next -> {
-            Set<Integer> codes = new HashSet<>();
-            codes.add(next.getCityCode());
-            codes.add(next.getProvinceCode());
-            codes.add(next.getRegionCode());
-            return codes;
-        }).flatMap(Collection::stream).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        List<TenantInfoWrapper.TenantInfo> tenantList = queryArea(tenantInfos);
+        return page.setRecords(tenantList);
+    }
 
-        Map<Integer, String> codeNameMap = new HashMap<>();
 
-        if (!CollectionUtils.isEmpty(areaCodeList)) {
-            List<SysArea> sysAreaList = sysAreaService.queryByCodes(areaCodeList);
-            codeNameMap = sysAreaList.stream().collect(Collectors.toMap(SysArea::getCode,
-                    SysArea::getName));
-        }
-
-        for (TenantInfoWrapper.TenantInfo next : tenantInfos) {
-            next.setProvinceName(codeNameMap.getOrDefault(next.getProvinceCode(), ""));
-            next.setCityName(codeNameMap.getOrDefault(next.getCityCode(), ""));
-            next.setRegionName(codeNameMap.getOrDefault(next.getRegionCode(), ""));
-        }
-        return page.setRecords(tenantInfos);
-    }
 
     /**
      * 添加
@@ -156,19 +137,28 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         sysUserQueryWrapper.lambda().eq(SysUser::getPhone, tenantInfo.getPhone());
         List<SysUser> sysUsers = sysUserMapper.selectList(sysUserQueryWrapper);
         SysUser sysUser;
+        //若存在信息
         if (!sysUsers.isEmpty()) {
             sysUser = sysUsers.get(0);
             TenantStaff tenantStaff = tenantStaffMapper.getByPhone(tenantInfo.getPhone());
             if (tenantStaff != null) {
                 throw new BizException("手机号已经注册机构账号");
             }
+            //获取当前账户的用户类型
             String userType = sysUser.getUserType();
-            String studentUserType = SysUserType.ORGANIZATION.getCode();
+            //设置默认机构类型
+            String tenantUserType = SysUserType.ORGANIZATION.getCode();
             if (StringUtils.isEmpty(userType)) {
-                sysUser.setUserType(studentUserType);
-            } else if (!userType.contains(studentUserType)) {
-                sysUser.setUserType(userType + "," + studentUserType);
+                sysUser.setUserType(tenantUserType);
+            } else if (!userType.contains(tenantUserType)) {
+                sysUser.setUserType(userType + "," + tenantUserType);
             }
+
+            //更新当前账号的用户名
+            sysUser.setUsername(tenantInfo.getUsername());
+            //更新当前账号的手机号
+            sysUser.setPhone(tenantInfo.getPhone());
+
             sysUserMapper.updateById(sysUser);
         } else {
             sysUser = new SysUser();
@@ -181,14 +171,16 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
             sysUser.setPassword(password);
             sysUserMapper.insert(sysUser);
 
-            TenantStaff tenantStaff = new TenantStaff();
-            tenantStaff.setTenantId(tenantStaff.getTenantId());
-            tenantStaff.setUserId(sysUser.getId());
-            tenantStaff.setAvatar(sysUser.getAvatar());
-            tenantStaff.setNickname(tenantInfo.getUsername());
-            tenantStaff.setStatus("ACTIVE");
-            tenantStaffMapper.insert(tenantStaff);
+
         }
+
+        TenantStaff tenantStaff = new TenantStaff();
+        tenantStaff.setTenantId(tenantStaff.getTenantId());
+        tenantStaff.setUserId(sysUser.getId());
+        tenantStaff.setAvatar(sysUser.getAvatar());
+        tenantStaff.setNickname(tenantInfo.getUsername());
+        tenantStaff.setStatus("ACTIVE");
+        tenantStaffMapper.insert(tenantStaff);
         return sysUser;
     }
 	
@@ -240,9 +232,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
     @Override
     public Boolean state(TenantInfoWrapper.TenantInfoQuery query) {
         Boolean flag;
-        Integer id = query.getId();
-        long longId = id.longValue();
-        TenantInfo info = detail(longId);
+        long id = query.getId();
+        TenantInfo info = detail(id);
 
         //TenantInfo info = this.getById(id);
         if (Objects.isNull(info)) {
@@ -267,6 +258,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
         return flag;
     }
 
+
+
     /**
      * 更新
      *
@@ -275,9 +268,124 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoMapper, TenantI
      */
     @Override
     public Boolean updateTenantInfo(TenantInfo info) {
+        getOrCreateAccount(info);
         Boolean bool = tenantInfoMapper.updateInfo(info);
         return bool;
     }
 
 
+
+    /**
+     * 机构申请分页查询
+     * @param query
+     * @return
+     */
+    @Override
+    public IPage<TenantInfoWrapper.TenantInfo> applyPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query) {
+        //分页查询
+        List<TenantInfoWrapper.TenantInfo> tenantInfos = baseMapper.selectApplyPage(page, query);
+        List<TenantInfoWrapper.TenantInfo> infos = queryArea(tenantInfos);
+        return page.setRecords(infos);
+    }
+
+
+    /**
+     * 机构入驻审核历史记录查询
+     * @param query
+     * @return
+     */
+    @Override
+    public IPage<TenantInfoWrapper.TenantInfo> historyPage(IPage<TenantInfoWrapper.TenantInfo> page, TenantInfoWrapper.TenantInfoQuery query) {
+        long id = query.getId();
+        //分页查询
+        List<TenantInfoWrapper.TenantInfo> tenantInfos = baseMapper.selectHistoryPage(page, id);
+        //查询对应省市区
+        List<TenantInfoWrapper.TenantInfo> infos = queryArea(tenantInfos);
+
+        return page.setRecords(infos);
+    }
+
+    /**
+     * 机构入驻审核本次提交查询
+     * @param query
+     * @return
+     */
+    @Override
+    public TenantInfoWrapper.TenantInfo queryNow(TenantInfoWrapper.TenantInfoQuery query) {
+        //查询本次提交记录
+        TenantInfoWrapper.TenantInfo info = tenantInfoMapper.queryNow(query);
+        Set<Integer> codes = new HashSet<>();
+        codes.add(info.getCityCode());
+        codes.add(info.getProvinceCode());
+        codes.add(info.getRegionCode());
+
+        //将地区码转化为对应的地名
+        List<Integer> areaCodeList = new ArrayList<>();
+        areaCodeList.addAll(codes);
+
+        Map<Integer, String> codeNameMap = new HashMap<>();
+
+        if (!CollectionUtils.isEmpty(areaCodeList)) {
+            List<SysArea> sysAreaList = sysAreaService.queryByCodes(areaCodeList);
+            codeNameMap = sysAreaList.stream().collect(Collectors.toMap(SysArea::getCode,
+                    SysArea::getName));
+        }
+
+        info.setProvinceName(codeNameMap.get(info.getProvinceCode()));
+        info.setCityName(codeNameMap.get(info.getCityCode()));
+        info.setRegionName(codeNameMap.get(info.getRegionCode()));
+        return info;
+    }
+
+    @Override
+    public Boolean entry(TenantInfoWrapper.TenantInfoQuery query) {
+        Integer pass = query.getIfPass();
+        //审核通过
+        if (pass == 1){
+            //查询本次提交记录,并插入审核表
+            TenantInfoWrapper.TenantInfo info = queryNow(query);
+            tenantInfoMapper.insertNow(info);
+            //更改当前记录的审核状态
+
+            //机构账户新增逻辑
+        } else {
+            //查询本次提交记录,并插入审核表
+            //更改当前记录的审核状态
+
+        }
+        return null;
+    }
+
+
+    /**
+     * 匹配地区码与省市区
+     * @param tenantInfos
+     * @return
+     */
+    private List<TenantInfoWrapper.TenantInfo> queryArea(List<TenantInfoWrapper.TenantInfo> tenantInfos) {
+        List<Integer> areaCodeList = tenantInfos.stream().map(next -> {
+            Set<Integer> codes = new HashSet<>();
+            codes.add(next.getCityCode());
+            codes.add(next.getProvinceCode());
+            codes.add(next.getRegionCode());
+            return codes;
+        }).flatMap(Collection::stream).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+
+        Map<Integer, String> codeNameMap = new HashMap<>();
+
+        if (!CollectionUtils.isEmpty(areaCodeList)) {
+            List<SysArea> sysAreaList = sysAreaService.queryByCodes(areaCodeList);
+            codeNameMap = sysAreaList.stream().collect(Collectors.toMap(SysArea::getCode,
+                    SysArea::getName));
+        }
+
+        for (TenantInfoWrapper.TenantInfo next : tenantInfos) {
+            next.setProvinceName(codeNameMap.getOrDefault(next.getProvinceCode(), ""));
+            next.setCityName(codeNameMap.getOrDefault(next.getCityCode(), ""));
+            next.setRegionName(codeNameMap.getOrDefault(next.getRegionCode(), ""));
+        }
+
+        return tenantInfos;
+    }
+
 }