|
@@ -3,6 +3,7 @@ package com.management.platform.controller;
|
|
|
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.management.platform.entity.User;
|
|
import com.management.platform.entity.User;
|
|
import com.management.platform.entity.UserQrCode;
|
|
import com.management.platform.entity.UserQrCode;
|
|
import com.management.platform.entity.WechatAccount;
|
|
import com.management.platform.entity.WechatAccount;
|
|
@@ -73,6 +74,44 @@ public class WechatAccountController {
|
|
|
|
|
|
private final static String prefixUrl="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=";
|
|
private final static String prefixUrl="https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=";
|
|
|
|
|
|
|
|
+
|
|
|
|
+ //保存或修改
|
|
|
|
+ @RequestMapping("/saveOrUpdate")
|
|
|
|
+ public HttpRespMsg saveOrUpdate(WechatAccount wechatAccount ,HttpServletRequest request) {
|
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
|
+ String token = request.getHeader("Token");
|
|
|
|
+ User user = userService.getById(token);
|
|
|
|
+ if (wechatAccount.getId()==null){
|
|
|
|
+ int count = wechatAccountService.count(new QueryWrapper<WechatAccount>().eq("company_id", user.getCompanyId()));
|
|
|
|
+ if (count>0){
|
|
|
|
+ httpRespMsg.setError("公司配置已存在,请传公司关键信息");
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
|
|
+ wechatAccount.setCompanyId(user.getCompanyId());
|
|
|
|
+ wechatAccountService.save(wechatAccount);
|
|
|
|
+ }else {
|
|
|
|
+ wechatAccountService.update(null,new UpdateWrapper<WechatAccount>()
|
|
|
|
+ .set("company_name", wechatAccount.getCompanyName())
|
|
|
|
+ .set("app_id", wechatAccount.getAppId())
|
|
|
|
+ .set("app_secret", wechatAccount.getAppSecret())
|
|
|
|
+ .eq("id", wechatAccount.getId()));
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取企业微信公众号配置
|
|
|
|
+ @RequestMapping("/getCompanyWeiXin")
|
|
|
|
+ public HttpRespMsg getCompanyWeiXin(HttpServletRequest request) {
|
|
|
|
+ HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
|
+ String token = request.getHeader("Token");
|
|
|
|
+ User user = userService.getById(token);
|
|
|
|
+ WechatAccount wechatAccount = wechatAccountService.getOne(new QueryWrapper<WechatAccount>().eq("company_id", user.getCompanyId()));
|
|
|
|
+ httpRespMsg.setData(wechatAccount);
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 保存修改并获取公司对应的accessToken
|
|
* 保存修改并获取公司对应的accessToken
|
|
* @param request
|
|
* @param request
|
|
@@ -84,6 +123,10 @@ public class WechatAccountController {
|
|
String token = request.getHeader("Token");
|
|
String token = request.getHeader("Token");
|
|
User user = userService.getById(token);
|
|
User user = userService.getById(token);
|
|
WechatAccount wechatAccount = wechatAccountService.getOne(new QueryWrapper<WechatAccount>().eq("company_id", user.getCompanyId()));
|
|
WechatAccount wechatAccount = wechatAccountService.getOne(new QueryWrapper<WechatAccount>().eq("company_id", user.getCompanyId()));
|
|
|
|
+ if (wechatAccount==null){
|
|
|
|
+ httpRespMsg.setError("该公司没有配置公众号相关的参数");
|
|
|
|
+ return httpRespMsg;
|
|
|
|
+ }
|
|
String accessToken = wechatAccountService.getAccessToken(user.getCompanyId(), wechatAccount.getAppId());
|
|
String accessToken = wechatAccountService.getAccessToken(user.getCompanyId(), wechatAccount.getAppId());
|
|
httpRespMsg.setData(accessToken);
|
|
httpRespMsg.setData(accessToken);
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
@@ -155,7 +198,8 @@ public class WechatAccountController {
|
|
userQrCode.setUrl(url);
|
|
userQrCode.setUrl(url);
|
|
userQrCode.setCompanyId(user.getCompanyId());
|
|
userQrCode.setCompanyId(user.getCompanyId());
|
|
//保存图片
|
|
//保存图片
|
|
- CompletableFuture<String> future = saveWeChatQrCodeImgHttpClient(prefixUrl + ticket, ticket, uploadPath);
|
|
|
|
|
|
+ String imgPrefix=(StringUtils.isEmpty(user.getJobNumber())?"":user.getJobNumber())+"_"+user.getName();
|
|
|
|
+ CompletableFuture<String> future = saveWeChatQrCodeImgHttpClient(prefixUrl + ticket, imgPrefix, uploadPath);
|
|
String imgName = future.get(10, TimeUnit.SECONDS);// 添加超时
|
|
String imgName = future.get(10, TimeUnit.SECONDS);// 添加超时
|
|
if (imgName.isEmpty()){
|
|
if (imgName.isEmpty()){
|
|
msg.setError("二维码图片保存失败");
|
|
msg.setError("二维码图片保存失败");
|
|
@@ -197,7 +241,8 @@ public class WechatAccountController {
|
|
List<String> userAlreadyIds = qrCodeList.stream().map(UserQrCode::getUserId).collect(Collectors.toList());//已经生成二维码的员工
|
|
List<String> userAlreadyIds = qrCodeList.stream().map(UserQrCode::getUserId).collect(Collectors.toList());//已经生成二维码的员工
|
|
userAlreadyIds.add("-1");
|
|
userAlreadyIds.add("-1");
|
|
|
|
|
|
- List<User> userList = userService.list(new QueryWrapper<User>().notIn("id", userAlreadyIds));//未生成二维码的员工
|
|
|
|
|
|
+ List<User> userList = userService.list(new QueryWrapper<User>().notIn("id", userAlreadyIds)
|
|
|
|
+ .eq("company_id", user.getCompanyId()));//未生成二维码的员工
|
|
if (!userList.isEmpty()){
|
|
if (!userList.isEmpty()){
|
|
for (User u : userList) {
|
|
for (User u : userList) {
|
|
String userId = u.getId();
|
|
String userId = u.getId();
|
|
@@ -221,7 +266,8 @@ public class WechatAccountController {
|
|
userQrCode.setUrl(url);
|
|
userQrCode.setUrl(url);
|
|
userQrCode.setCompanyId(user.getCompanyId());
|
|
userQrCode.setCompanyId(user.getCompanyId());
|
|
//保存图片
|
|
//保存图片
|
|
- CompletableFuture<String> future = saveWeChatQrCodeImgHttpClient(prefixUrl + ticket, ticket, uploadPath);
|
|
|
|
|
|
+ String imgPrefix=(StringUtils.isEmpty(u.getJobNumber())?"":u.getJobNumber())+"_"+u.getName();
|
|
|
|
+ CompletableFuture<String> future = saveWeChatQrCodeImgHttpClient(prefixUrl + ticket, imgPrefix, uploadPath);
|
|
String imgName = future.get(10, TimeUnit.SECONDS);// 添加超时
|
|
String imgName = future.get(10, TimeUnit.SECONDS);// 添加超时
|
|
if (imgName.isEmpty()){
|
|
if (imgName.isEmpty()){
|
|
msg.setError("二维码图片保存失败");
|
|
msg.setError("二维码图片保存失败");
|
|
@@ -282,9 +328,9 @@ public class WechatAccountController {
|
|
}
|
|
}
|
|
|
|
|
|
@Async("taskExecutor")
|
|
@Async("taskExecutor")
|
|
- public CompletableFuture<String> saveWeChatQrCodeImgHttpClient(String qrCodeUrl, String ticket, String uploadPath) {
|
|
|
|
|
|
+ public CompletableFuture<String> saveWeChatQrCodeImgHttpClient(String qrCodeUrl, String imgPrefix, String uploadPath) {
|
|
try {
|
|
try {
|
|
- log.info("开始保存二维码图片,ticket: {}", ticket);
|
|
|
|
|
|
+
|
|
|
|
|
|
// 确保目录存在
|
|
// 确保目录存在
|
|
File uploadDir = new File(uploadPath);
|
|
File uploadDir = new File(uploadPath);
|
|
@@ -293,7 +339,7 @@ public class WechatAccountController {
|
|
}
|
|
}
|
|
|
|
|
|
// 构建目标文件路径
|
|
// 构建目标文件路径
|
|
- String fileName = ticket + ".jpg";
|
|
|
|
|
|
+ String fileName = imgPrefix + ".jpg";
|
|
File destFile = new File(uploadPath, fileName);
|
|
File destFile = new File(uploadPath, fileName);
|
|
|
|
|
|
|
|
|