Ver código fonte

一键更换企微主体小程序

xw 1 semana atrás
pai
commit
15b175d2be

+ 50 - 0
fs-admin/src/main/java/com/fs/qw/controller/QwCompanyController.java

@@ -1,12 +1,18 @@
 package com.fs.qw.controller;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.utils.ServletUtils;
 import com.fs.course.config.CourseConfig;
+import com.fs.course.domain.FsCoursePlaySourceConfig;
+import com.fs.course.service.IFsCoursePlaySourceConfigService;
 import com.fs.framework.web.service.TokenService;
 import com.fs.qw.vo.QwOptionsVO;
 import com.fs.system.service.ISysConfigService;
@@ -45,6 +51,8 @@ public class QwCompanyController extends BaseController
     private TokenService tokenService;
     @Autowired
     private ISysConfigService configService;
+    @Autowired
+    private IFsCoursePlaySourceConfigService coursePlaySourceConfigService;
 
     /**
      * 查询企微主体列表
@@ -132,6 +140,48 @@ public class QwCompanyController extends BaseController
         return toAjax(qwCompanyService.updateQwCompany(qwCompany));
     }
 
+
+    /**
+     * 批量更换所有主体小程序
+     */
+    @Log(title = "批量更换小程序", businessType = BusinessType.UPDATE)
+    @PostMapping("/batchUpdateMiniAppId")
+    public R batchUpdateMiniAppId(@RequestBody QwCompany qwCompany)
+    {
+        if (qwCompany.getMiniAppId() == null || qwCompany.getMiniAppId().trim().isEmpty()) {
+            return R.error("请选择小程序");
+        }
+        return qwCompanyService.batchUpdateMiniAppId(qwCompany.getMiniAppId());
+    }
+
+    /**
+     * 获取小程序配置列表
+     */
+    @GetMapping("/getMiniAppList")
+    public R getMiniAppList()
+    {
+        QueryWrapper<FsCoursePlaySourceConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("type", 1);
+        queryWrapper.eq("is_del", 0);
+        queryWrapper.orderByDesc("create_time");
+
+        List<FsCoursePlaySourceConfig> configs = coursePlaySourceConfigService.list(queryWrapper);
+        if (configs == null || configs.isEmpty()) {
+            return R.ok().put("data", new ArrayList<>());
+        }
+        List<Map<String, String>> list = new ArrayList<>();
+        for (FsCoursePlaySourceConfig config : configs) {
+            if (config.getAppid() != null && !config.getAppid().trim().isEmpty()) {
+                Map<String, String> map = new HashMap<>();
+                map.put("label", config.getName() != null ? config.getName() : config.getAppid());
+                map.put("value", config.getAppid());
+                list.add(map);
+            }
+        }
+
+        return R.ok().put("data", list);
+    }
+
     /**
      * 删除企微主体
      */

+ 8 - 0
fs-service/src/main/java/com/fs/qw/service/IQwCompanyService.java

@@ -1,5 +1,6 @@
 package com.fs.qw.service;
 
+import com.fs.common.core.domain.R;
 import com.fs.qw.domain.QwCompany;
 import com.fs.qw.vo.QwOptionsVO;
 
@@ -67,4 +68,11 @@ public interface IQwCompanyService
     List<QwOptionsVO> selectQwCompanyListOptionsVO(Long userId, Long deptId);
 
     List<String>  selectQwCompanyListFormCorpId();
+
+    /**
+     * 批量更换所有主体小程序
+     * @param miniAppId 小程序appId
+     * @return 结果
+     */
+    R batchUpdateMiniAppId(String miniAppId);
 }

+ 37 - 0
fs-service/src/main/java/com/fs/qw/service/impl/QwCompanyServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.qw.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.fs.common.core.domain.R;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.utils.DateUtils;
 import com.fs.qw.domain.QwCompany;
@@ -138,4 +139,40 @@ public class QwCompanyServiceImpl implements IQwCompanyService
     public List<String> selectQwCompanyListFormCorpId() {
         return qwCompanyMapper.selectQwCompanyListFormCorpId();
     }
+
+    /**
+     * 批量更换所有主体小程序
+     * @param miniAppId 小程序appId
+     * @return 结果
+     */
+    @Override
+    public R batchUpdateMiniAppId(String miniAppId) {
+        QwCompany qwCompany = new QwCompany();
+        List<QwCompany> list = qwCompanyMapper.selectQwCompanyList(qwCompany);
+        if (list == null || list.isEmpty()) {
+            return R.error("没有找到需要更新的主体");
+        }
+        int successCount = 0;
+        int failCount = 0;
+        // 批量更新
+        for (QwCompany company : list) {
+            try {
+                QwCompany updateData = new QwCompany();
+                updateData.setId(company.getId());
+                updateData.setCorpId(company.getCorpId());
+                updateData.setMiniAppId(miniAppId);
+
+                int result = this.updateQwCompany(updateData);
+                if (result > 0) {
+                    successCount++;
+                } else {
+                    failCount++;
+                }
+            } catch (Exception e) {
+                failCount++;
+            }
+        }
+
+        return R.ok("批量更新完成,成功" + successCount + "条,失败" + failCount + "条");
+    }
 }