|
|
|
@ -33,145 +33,136 @@ public class YbsjMessageInfoController { |
|
|
|
|
private final String appSecret = "bc11e97b8e00841053cfc7ba8497c876"; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 消息类型列表 |
|
|
|
|
* @param type 消息类型 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 消息类型列表 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/getListData.do") |
|
|
|
|
public ServerResponse getListData(String type, HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.getListData(type,session,request); |
|
|
|
|
public ServerResponse getListData(String type, HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.getListData(type, session, request); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 修改排序 |
|
|
|
|
* @param request guid/sort |
|
|
|
|
* @return |
|
|
|
|
* @Description: 修改排序 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/updateMessageInfoSort.do") |
|
|
|
|
public ServerResponse updateMessageInfoSort(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.updateMessageInfoSort(request,session); |
|
|
|
|
public ServerResponse updateMessageInfoSort(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.updateMessageInfoSort(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 修改是否推荐 |
|
|
|
|
* @param request 主键 是否推荐 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 修改是否推荐 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/recommendMessageInfo.do") |
|
|
|
|
public ServerResponse recommendMessageInfo(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.recommendMessageInfo(request,session); |
|
|
|
|
public ServerResponse recommendMessageInfo(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.recommendMessageInfo(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 修改是否弹框 |
|
|
|
|
* @param request 主键 是否弹框 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 修改是否弹框 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/updateIspopupMessageInfo.do") |
|
|
|
|
public ServerResponse updateIspopupMessageInfo(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.updateIspopupMessageInfo(request,session); |
|
|
|
|
public ServerResponse updateIspopupMessageInfo(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.updateIspopupMessageInfo(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 查询弹框内容 |
|
|
|
|
* |
|
|
|
|
* @param messageInfoId |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/selectContentById.do") |
|
|
|
|
public ServerResponse selectContentById(Long messageInfoId){ |
|
|
|
|
public ServerResponse selectContentById(Long messageInfoId) { |
|
|
|
|
return ServerResponse.createBySuccess(messageInfoService.selectContentById(messageInfoId)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 修改假删除 |
|
|
|
|
* @param request 主键 是否推荐 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 修改假删除 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/11/4 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/isdelMessageInfo.do") |
|
|
|
|
public ServerResponse isdelMessageInfo(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.isdelMessageInfo(request,session); |
|
|
|
|
public ServerResponse isdelMessageInfo(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.isdelMessageInfo(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 查询信息详情 |
|
|
|
|
* @param request 主键 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 查询信息详情 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/detailMessageInfo.do") |
|
|
|
|
public ServerResponse detailMessageInfo(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.detailMessageInfo(request,session); |
|
|
|
|
public ServerResponse detailMessageInfo(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.detailMessageInfo(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 查询附加字段的数据内容 |
|
|
|
|
* @param request 类型 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 查询附加字段的数据内容 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/selectSubColumnData.do") |
|
|
|
|
public ServerResponse selectSubColumnData(HttpServletRequest request, HttpSession session){ |
|
|
|
|
return messageInfoService.selectSubColumnData(request,session); |
|
|
|
|
public ServerResponse selectSubColumnData(HttpServletRequest request, HttpSession session) { |
|
|
|
|
return messageInfoService.selectSubColumnData(request, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 修改信息 |
|
|
|
|
* @param messageInfo 信息实体 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 修改信息 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/10/30 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/updateMessageInfo.do") |
|
|
|
|
public ServerResponse updateMessageInfo(YbsjMessageInfo messageInfo, HttpSession session){ |
|
|
|
|
return messageInfoService.updateMessageInfo(messageInfo,session); |
|
|
|
|
public ServerResponse updateMessageInfo(YbsjMessageInfo messageInfo, HttpSession session) { |
|
|
|
|
return messageInfoService.updateMessageInfo(messageInfo, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 新增信息 |
|
|
|
|
* @param messageInfo 信息实体 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 新增信息 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/11/1 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/saveMessageInfo.do") |
|
|
|
|
public ServerResponse saveMessageInfo(YbsjMessageInfo messageInfo, HttpSession session){ |
|
|
|
|
public ServerResponse saveMessageInfo(YbsjMessageInfo messageInfo, HttpSession session) { |
|
|
|
|
pushMessage(messageInfo); |
|
|
|
|
return messageInfoService.saveMessageInfo(messageInfo,session); |
|
|
|
|
return messageInfoService.saveMessageInfo(messageInfo, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* |
|
|
|
|
* @Description: 删除信息 |
|
|
|
|
* @param guids 多主键 |
|
|
|
|
* @return |
|
|
|
|
* @Description: 删除信息 |
|
|
|
|
* @author hpr |
|
|
|
|
* @date 2019/11/1 |
|
|
|
|
*/ |
|
|
|
|
@RequestMapping("/delMessageInfo.do") |
|
|
|
|
public ServerResponse delMessageInfo(String guids, HttpSession session){ |
|
|
|
|
return messageInfoService.delMessageInfo(guids,session); |
|
|
|
|
public ServerResponse delMessageInfo(String guids, HttpSession session) { |
|
|
|
|
return messageInfoService.delMessageInfo(guids, session); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -191,15 +182,18 @@ public class YbsjMessageInfoController { |
|
|
|
|
String processedContent = processContent(messageInfo.getContent(), accessToken); |
|
|
|
|
System.out.println("处理后的内容:" + processedContent); |
|
|
|
|
logger.warn("处理后的内容" + processedContent); |
|
|
|
|
//下载logo图片上传到微信素材中心
|
|
|
|
|
File tempFile = downloadImage("https://www.lbgjtoa.com/" + messageInfo.getLogo()); |
|
|
|
|
JSONObject jsonObject = uploadToWeChat(accessToken, tempFile); |
|
|
|
|
logger.warn("封面图上传素材中心返回数据" + jsonObject); |
|
|
|
|
// 步骤2: 创建草稿
|
|
|
|
|
createDraft(accessToken, messageInfo.getTitle(), processedContent); |
|
|
|
|
createDraft(accessToken, messageInfo.getTitle(), processedContent, jsonObject.getString("media_id")); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
logger.error("通知公告推送至微信公众号异常:{}",e); |
|
|
|
|
logger.error("通知公告推送至微信公众号异常:{}", e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public String getAccessToken(String appId, String appSecret) throws IOException { |
|
|
|
|
try { |
|
|
|
|
// 目标 URL
|
|
|
|
@ -230,14 +224,12 @@ public class YbsjMessageInfoController { |
|
|
|
|
JSONObject result = new JSONObject(response.toString()); |
|
|
|
|
return result.getString("access_token"); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
logger.error("获取token异常:{}",e); |
|
|
|
|
logger.error("获取token异常:{}", e); |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 1. 下载网络图片(支持自动重试)
|
|
|
|
|
private static File downloadImage(String imageUrl) throws IOException, InterruptedException { |
|
|
|
|
File tempFile = File.createTempFile("wx_", ".tmp"); // 先创建临时文件
|
|
|
|
@ -262,8 +254,8 @@ public class YbsjMessageInfoController { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 2. 微信图片上传(修复41005错误)
|
|
|
|
|
private static String uploadToWeChat(String accessToken, File file) throws IOException { |
|
|
|
|
String newName =""; |
|
|
|
|
private static JSONObject uploadToWeChat(String accessToken, File file) throws IOException { |
|
|
|
|
String newName = ""; |
|
|
|
|
// 1. 验证文件类型
|
|
|
|
|
String fileName = file.getName().toLowerCase(); |
|
|
|
|
if (!fileName.endsWith(".jpg") && !fileName.endsWith(".jpeg") && !fileName.endsWith(".png")) { |
|
|
|
@ -328,7 +320,7 @@ public class YbsjMessageInfoController { |
|
|
|
|
reader.close(); |
|
|
|
|
|
|
|
|
|
JSONObject result = new JSONObject(response.toString()); |
|
|
|
|
return result.getString("url"); |
|
|
|
|
return result; |
|
|
|
|
} else { |
|
|
|
|
throw new IOException("Server returned non-OK status: " + responseCode); |
|
|
|
|
} |
|
|
|
@ -349,8 +341,8 @@ public class YbsjMessageInfoController { |
|
|
|
|
while (matcher.find()) { |
|
|
|
|
String imgUrl = matcher.group(1); |
|
|
|
|
File tempFile = downloadImage(imgUrl); |
|
|
|
|
String wechatUrl = uploadToWeChat(accessToken, tempFile); |
|
|
|
|
matcher.appendReplacement(result, "<img src='" + wechatUrl + "'/>"); |
|
|
|
|
JSONObject wechatUrl = uploadToWeChat(accessToken, tempFile); |
|
|
|
|
matcher.appendReplacement(result, "<img src='" + wechatUrl.getString("url") + "'/>"); |
|
|
|
|
tempFile.delete(); |
|
|
|
|
} |
|
|
|
|
matcher.appendTail(result); |
|
|
|
@ -358,13 +350,13 @@ public class YbsjMessageInfoController { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 4. 创建草稿
|
|
|
|
|
private static void createDraft(String accessToken, String title, String content) throws IOException { |
|
|
|
|
private static void createDraft(String accessToken, String title, String content, String mediaId) throws IOException { |
|
|
|
|
String url = "https://api.weixin.qq.com/cgi-bin/draft/add?access_token=" + accessToken; |
|
|
|
|
|
|
|
|
|
JSONObject article = new JSONObject() |
|
|
|
|
.put("title", title) |
|
|
|
|
.put("content", content) |
|
|
|
|
.put("thumb_media_id", "qR_BnS7D9o1TqpJLTGV3Pmbnz48dU3zFGu6Y_9ws5iKDXNFBGdIHIyRXJVuIjK1b") |
|
|
|
|
.put("thumb_media_id", mediaId) |
|
|
|
|
.put("show_cover_pic", 1); |
|
|
|
|
JSONArray articles = new JSONArray().put(article); |
|
|
|
|
String requestBody = new JSONObject().put("articles", articles).toString(); |
|
|
|
|