Quellcode durchsuchen

域名分配代码逻辑优化,生产二维码域名联动

yjwang vor 4 Tagen
Ursprung
Commit
112322192f

+ 12 - 0
fs-admin/src/main/java/com/fs/company/controller/CompanyUserController.java

@@ -7,6 +7,7 @@ import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyUserService;
@@ -161,4 +162,15 @@ public class CompanyUserController extends BaseController
         return  R.ok().put("data",list);
     }
 
+    /**
+     * 获取用户列表
+     */
+    @GetMapping("/getCompanyUserListPage")
+    public TableDataInfo getCompanyUserListPage(CompanyUser user)
+    {
+        startPage();
+        List<CompanyUser> list = companyUserService.getCompanyUserList(user);
+        return getDataTable(list);
+    }
+
 }

+ 1 - 1
fs-company-app/src/main/java/com/fs/app/controller/FsUserController.java

@@ -326,7 +326,7 @@ public class FsUserController extends AppBaseController {
             String userPosterImage = jsonObject.getString("userPosterImage");
             String backgroundImagePath;
             if(StringUtils.isEmpty(userPosterImage)){
-                backgroundImagePath = "https://fbylive.obs.cn-southwest-2.myhuaweicloud.com/fs/20250430/1745980979886.png";
+                backgroundImagePath = "https://drk-1363981074.cos.ap-chongqing.myqcloud.com/fs/logo/30d7a0d1ec31e5ac16c6e96d5ca76ad.png";
             } else {
                 backgroundImagePath = userPosterImage;
             }

+ 4 - 1
fs-company-app/src/main/java/com/fs/app/controller/FsUserCourseVideoController.java

@@ -1,5 +1,6 @@
 package com.fs.app.controller;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.fs.app.annotation.Login;
 import com.fs.app.config.ImageStorageConfig;
@@ -168,7 +169,9 @@ public class FsUserCourseVideoController extends AppBaseController {
 //        String realLink = r.get("realLink").toString();
         String json = configService.selectConfigByKey("course.config");
         CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
-        String realLink = config.getRealLinkDomainName() + FsUserCourseServiceImpl.shortLink + link;
+        //验证是否有分配二级域名
+        CompanyUser companyUser=companyUserService.selectCompanyUserById(param.getCompanyUserId());
+        String realLink = (ObjectUtil.isNotNull(companyUser) && ObjectUtil.isNotNull(companyUser.getDomain())?companyUser.getDomain():config.getRealLinkDomainName()) + FsUserCourseServiceImpl.shortLink + link;
 
         log.info("二维码生成地址:{}", realLink);
         try {

+ 13 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyUserController.java

@@ -344,4 +344,17 @@ public class CompanyUserController extends BaseController
     }
 
 
+    /**
+     * 获取用户列表
+     */
+    @GetMapping("/getCompanyUserList")
+    public TableDataInfo getCompanyUserList(CompanyUser user)
+    {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        user.setCompanyId(loginUser.getCompany().getCompanyId());
+        startPage();
+        List<CompanyUser> list = companyUserService.getCompanyUserList(user);
+        return getDataTable(list);
+    }
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyDomainBindMapper.java

@@ -80,4 +80,9 @@ public interface CompanyDomainBindMapper extends BaseMapper<CompanyDomainBind>{
      * 查询中间表链接信息
      * **/
     List<CompanyDomainBindVo> selectJoinBindInfo(CompanyDomainBindParam companyDomainBind);
+
+    /**
+     * 获取绑定用户信息
+     * **/
+    List<Long> getBindUserByDomainId(@Param("domainId") Long domainId);
 }

+ 7 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -284,5 +284,12 @@ public interface CompanyUserMapper
     Long queryCompanyUserInterruptCount(@Param("companyUserId") Long companyUserId,
                                         @Param("previousDay") LocalDate previousDay);
 
+    List<CompanyUser> getCompanyUserList(CompanyUser companyUser);
 
+    /**
+     * 批量更新用户数据
+     * @param ids 更新数据
+     * @param domain 域名
+     * **/
+    void batchUpdateUserDomain(@Param("ids") List<Long> ids,@Param("domain") String domain);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -196,4 +196,9 @@ public interface ICompanyUserService {
     void auditUsers(List<Long> userIds);
 
     CompanyUser selectCompanyUserByPhone(String phone);
+
+    /**
+     * 获取用户数据
+     * **/
+    List<CompanyUser> getCompanyUserList(CompanyUser companyUser);
 }

+ 29 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyDomainBindServiceImpl.java

@@ -6,13 +6,16 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.api.R;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.company.domain.CompanyDomain;
 import com.fs.company.domain.CompanyDomainBindUser;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyDomainBindUserMapper;
+import com.fs.company.mapper.CompanyDomainMapper;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.param.CompanyDomainBindParam;
 import com.fs.company.vo.CompanyDomainBindVo;
@@ -35,9 +38,15 @@ public class CompanyDomainBindServiceImpl extends ServiceImpl<CompanyDomainBindM
     @Autowired
     private CompanyUserMapper companyUserMapper;
 
+    @Autowired
+    private CompanyDomainMapper companyDomainMapper;
+
     @Autowired
     private CompanyDomainBindUserMapper companyDomainBindUserMapper;
 
+    @Autowired
+    private CompanyDomainBindUserServiceImpl companyDomainBindUserService;
+
     /**
      * 查询域名绑定销售公司
      *
@@ -46,6 +55,7 @@ public class CompanyDomainBindServiceImpl extends ServiceImpl<CompanyDomainBindM
      */
     @Override
     public CompanyDomainBind selectCompanyDomainBindById(Long id) {
+
         return baseMapper.selectCompanyDomainBindById(id);
     }
 
@@ -92,6 +102,16 @@ public class CompanyDomainBindServiceImpl extends ServiceImpl<CompanyDomainBindM
      */
     @Override
     public int deleteCompanyDomainBindByIds(Long[] ids) {
+        //获取中间关联表
+        List<CompanyDomainBindUser> companyDomainBindUserList = companyDomainBindUserMapper.selectList(new LambdaQueryWrapper<CompanyDomainBindUser>().in(CompanyDomainBindUser::getBindId, ids));
+        if (ObjectUtil.isNotNull(companyDomainBindUserList) && !companyDomainBindUserList.isEmpty()) {
+            Long[] idArray = companyDomainBindUserList.stream()
+                    .map(CompanyDomainBindUser::getId)
+                    .toArray(Long[]::new);
+            //删除关联表
+            companyDomainBindUserService.deleteCompanyDomainBindUserByIds(idArray);
+        }
+
         return baseMapper.deleteCompanyDomainBindByIds(ids);
     }
 
@@ -118,6 +138,12 @@ public class CompanyDomainBindServiceImpl extends ServiceImpl<CompanyDomainBindM
             return R.failed("分配域名中存在不存在的记录!");
         }
 
+        CompanyDomain domain = companyDomainMapper.selectById(companyDomainBindList.get(0).getDomainId());
+
+        if (ObjectUtil.isEmpty(domain)) {
+            return R.failed("操作失败,域名不存在!");
+        }
+
         //验证分配人员是否存在
         List<CompanyUser> companyUserList = companyUserMapper.getUserInfoByUserIds(param.getCompanyUserIds());
         if (companyUserList.isEmpty()) {
@@ -153,6 +179,9 @@ public class CompanyDomainBindServiceImpl extends ServiceImpl<CompanyDomainBindM
         if (!insertUserList.isEmpty()) {
             batchBindInsert(insertUserList, 1000);
         }
+
+        //批量更新用户域名字段
+        companyUserMapper.batchUpdateUserDomain(companyUserList.stream().map(CompanyUser::getUserId).collect(Collectors.toList()), domain.getDomain());
         return R.ok("操作成功!");
     }
 

+ 11 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyDomainBindUserServiceImpl.java

@@ -1,8 +1,12 @@
 package com.fs.company.service.impl;
 
 import java.util.List;
+import java.util.stream.Collectors;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.param.CompanyDomainBindUserParam;
 import com.fs.company.vo.CompanyDomainBindUserVo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +23,8 @@ import com.fs.company.service.ICompanyDomainBindUserService;
  */
 @Service
 public class CompanyDomainBindUserServiceImpl extends ServiceImpl<CompanyDomainBindUserMapper, CompanyDomainBindUser> implements ICompanyDomainBindUserService {
+    @Autowired
+    private CompanyUserMapper companyUserMapper;
 
     /**
      * 查询企业域名分配中间表
@@ -78,6 +84,11 @@ public class CompanyDomainBindUserServiceImpl extends ServiceImpl<CompanyDomainB
     @Override
     public int deleteCompanyDomainBindUserByIds(Long[] ids)
     {
+        //查询删除数据
+        List<CompanyDomainBindUser> companyDomainBindUsers=baseMapper.selectList(new LambdaQueryWrapper<CompanyDomainBindUser>().select(CompanyDomainBindUser::getCompanyUserId).in(CompanyDomainBindUser::getId,ids));
+        //更新user域名字段
+        List<Long> updateIds=companyDomainBindUsers.stream().map(CompanyDomainBindUser::getCompanyUserId).collect(Collectors.toList());
+        companyUserMapper.batchUpdateUserDomain(updateIds,null);
         return baseMapper.deleteCompanyDomainBindUserByIds(ids);
     }
 

+ 25 - 3
fs-service/src/main/java/com/fs/company/service/impl/CompanyDomainServiceImpl.java

@@ -11,8 +11,10 @@ import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyDomainBind;
+import com.fs.company.domain.CompanyDomainBindUser;
 import com.fs.company.mapper.CompanyDomainBindMapper;
 import com.fs.company.mapper.CompanyMapper;
+import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.param.CompanyDomainParam;
 import com.fs.company.vo.CompanyDomainExportTemplateVo;
 import com.fs.company.vo.CompanyDomainVo;
@@ -40,6 +42,12 @@ public class CompanyDomainServiceImpl extends ServiceImpl<CompanyDomainMapper, C
     @Autowired
     private CompanyDomainBindMapper companyDomainBindMapper;
 
+    @Autowired
+    private CompanyDomainBindServiceImpl companyDomainBindService;
+
+    @Autowired
+    private CompanyUserMapper companyUserMapper;
+
     /**
      * 查询域名管路
      *
@@ -101,6 +109,16 @@ public class CompanyDomainServiceImpl extends ServiceImpl<CompanyDomainMapper, C
         }
 
         companyDomain.setUpdateTime(DateUtils.getNowDate());
+
+        if (!domain.getDomain().equals(companyDomain.getDomain())) {
+            //更新companyUser的域名信息
+            List<Long> ids = companyDomainBindMapper.getBindUserByDomainId(domain.getId());
+            if (!ids.isEmpty()) {
+                companyUserMapper.batchUpdateUserDomain(ids, companyDomain.getDomain());
+            }
+
+        }
+
         return baseMapper.updateCompanyDomain(companyDomain);
     }
 
@@ -134,9 +152,13 @@ public class CompanyDomainServiceImpl extends ServiceImpl<CompanyDomainMapper, C
 //                }
 //            }
 //        }
-        //删除域名企业中间表数据
-        companyDomainBindMapper.deleteCompanyDomainBindBydomainIds(ids);
-        //删除企业销售中间表数据
+        List<CompanyDomainBind> companyDomainBinds = companyDomainBindMapper.selectList(new LambdaQueryWrapper<CompanyDomainBind>().in(CompanyDomainBind::getDomainId, ids));
+        if (ObjectUtil.isNotNull(companyDomainBinds) && !companyDomainBinds.isEmpty()) {
+            Long[] idArray = companyDomainBinds.stream()
+                    .map(CompanyDomainBind::getId)
+                    .toArray(Long[]::new);
+            companyDomainBindService.deleteCompanyDomainBindByIds(idArray);
+        }
 
         return baseMapper.deleteCompanyDomainByIds(ids);
     }

+ 5 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -525,4 +525,9 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     public CompanyUser selectCompanyUserByPhone(String phone) {
         return companyUserMapper.selectCompanyUserByPhone(phone);
     }
+
+    @Override
+    public List<CompanyUser> getCompanyUserList(CompanyUser companyUser) {
+        return companyUserMapper.getCompanyUserList(companyUser);
+    }
 }

+ 4 - 4
fs-service/src/main/resources/application-config-druid-drk.yml

@@ -37,8 +37,8 @@ wx:
       port: 6379
       timeout: 2000
     configs:
-      - appId: wx5d3096e20e4bd8ba # 第一个公众号的appid  //公众号名称:成都九州在线互联网医院
-        secret: 1afa05f0c71beff0d52fb849c62e479a # 公众号的appsecret
+      - appId: wx090c5f399d65456e # 第一个公众号的appid  //公众号名称:德瑞康
+        secret: dc70e963077d80cf61280aea6b7c52b7 # 公众号的appsecret--德瑞康
         token: PPKOdAlCoMO # 接口配置里的Token值
         aesKey: Eswa6VjwtVMCcw03qZy6fWllgrv5aytIA1SZPEU0kU2 # 接口配置里的EncodingAESKey值
 aifabu:  #爱链接
@@ -77,9 +77,9 @@ tmp_secret_config:
   region: ap-chongqing
   proxy: fs
 cloud_host:
-  company_name: 武汉惠名
+  company_name: 德瑞康
 headerImg:
-  imgUrl: https
+  imgUrl: https://drk-1363981074.cos.ap-chongqing.myqcloud.com/fs/logo/30d7a0d1ec31e5ac16c6e96d5ca76ad.png
 ipad:
   ipadUrl: http://ipad.cdwjyyh.com
 wx_miniapp_temp:

+ 7 - 0
fs-service/src/main/resources/mapper/company/CompanyDomainBindMapper.xml

@@ -146,4 +146,11 @@
         ORDER BY
         cdb.create_time DESC
     </select>
+    <select id="getBindUserByDomainId" resultType="Long">
+        SELECT
+            cdbu.company_user_id
+        FROM
+            company_domain_bind cdb
+                LEFT JOIN company_domain_bind_user cdbu ON cdb.id = cdbu.bind_id where cdb.domain_id=#{domainId}
+    </select>
 </mapper>

+ 41 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -455,4 +455,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+
+    <select id="getCompanyUserList" resultType="com.fs.company.domain.CompanyUser">
+        SELECT
+        u.user_id,
+        u.user_name,
+        u.phonenumber,
+        cdbu.company_user_id
+        FROM
+        company_user u
+        LEFT JOIN company_domain_bind_user cdbu ON u.user_id=cdbu.company_user_id
+        WHERE
+        u.del_flag = '0'
+        AND cdbu.id IS NULL
+        <if test="userName != null and userName != ''">
+            AND u.user_name like concat( #{userName}, '%')
+        </if>
+
+        <if test="nickName != null and nickName != ''">
+            AND u.nick_name like concat( #{nickName}, '%')
+        </if>
+        <if test="companyId != null and companyId != ''">
+            AND u.company_id = #{companyId}
+        </if>
+        <if test="status != null and status != ''">
+            AND u.status = #{status}
+        </if>
+        <if test="phonenumber != null and phonenumber != ''">
+            AND u.phonenumber like concat('%', #{phonenumber}, '%')
+        </if>
+        <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
+        </if>
+        <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+            AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+        </if>
+        <!-- 数据范围过滤 -->
+        ${params.dataScope}
+    </select>
+    <update id="batchUpdateUserDomain">
+        update company_user set domain=#{domain} where user_id in <foreach collection="ids"  item="item" index="index" open="(" separator="," close=")">#{item}</foreach>
+    </update>
 </mapper>