Commit 10db09ee4edb6be88ff062a93fb6b330caa9ef99

Authored by liwei2917
2 parents 3109a543 c2f3e20a

Merge branch 'dev'

# Conflicts:
#	src/main/resources/application.properties
Showing 45 changed files with 3408 additions and 167 deletions

Too many changes to show.

To preserve performance only 45 of 46 files are displayed.

... ... @@ -56,6 +56,12 @@
56 56 <groupId>org.springframework.boot</groupId>
57 57 <artifactId>spring-boot-starter-websocket</artifactId>
58 58 </dependency>
  59 +
  60 + <!-- mq队列 -->
  61 + <dependency>
  62 + <groupId>org.springframework.boot</groupId>
  63 + <artifactId>spring-boot-starter-amqp</artifactId>
  64 + </dependency>
59 65  
60 66 <!-- 自动更新 -->
61 67 <dependency>
... ...
src/main/java/com/cnlive/shenhe/api/CommentsControllerApi.java
... ... @@ -4,13 +4,16 @@ import com.alibaba.fastjson.JSONObject;
4 4 import com.cnlive.shenhe.bean.ErrorEnum;
5 5 import com.cnlive.shenhe.bean.ResponseBean;
6 6 import com.cnlive.shenhe.entity.ShyComments;
  7 +import com.cnlive.shenhe.entity.ShyTopic;
7 8 import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
  9 +import com.cnlive.shenhe.serviceImpl.TopicServiceImpl;
8 10 import com.cnlive.shenhe.utils.AuditPass;
9 11 import com.cnlive.shenhe.utils.CommonConst;
10 12 import com.cnlive.shenhe.utils.CommonUtils;
11 13 import org.slf4j.Logger;
12 14 import org.slf4j.LoggerFactory;
13 15 import org.springframework.beans.factory.annotation.Autowired;
  16 +import org.springframework.beans.factory.annotation.Value;
14 17 import org.springframework.stereotype.Controller;
15 18 import org.springframework.web.bind.annotation.PostMapping;
16 19 import org.springframework.web.bind.annotation.RequestMapping;
... ... @@ -27,6 +30,11 @@ public class CommentsControllerApi {
27 30 AuditPass Pass;
28 31 @Autowired
29 32 CommentsServiceImpl commentsService;
  33 + @Autowired
  34 + TopicServiceImpl topicService;
  35 +
  36 + @Value("${topic_comment_shareH5}")
  37 + String topic_comment_shareH5;
30 38  
31 39 /**
32 40 * @Auther: chenhao
... ... @@ -38,6 +46,40 @@ public class CommentsControllerApi {
38 46 public ResponseBean impotComment(String param) {
39 47 logger.info("评论入库,param=====" + param);
40 48 JSONObject json = JSONObject.parseObject(param);
  49 + String type=json.getString("type")==null?"":json.getString("type");//评论类型,topic:话题
  50 + Integer level=json.getInteger("level")==null?1:json.getInteger("level");//评论的级别
  51 + String programId=json.getString("programId");
  52 + String originalUrl=json.getString("originalUrl");
  53 + String commentTitle=json.getString("commentTitle");
  54 + Integer commentUserId=json.getInteger("commentUserId");
  55 + String commentUserName=json.getString("commentUserName");
  56 + String commentUserAvatar=json.getString("commentUserAvatar");
  57 + String commentUserIP=json.getString("commentUserIP");
  58 + String commentContent=json.getString("commentContent");
  59 + String appId=json.getString("appId");
  60 + String platform=json.getString("platform");
  61 + String activityId=json.getString("activityId");
  62 + Boolean priority=json.getBoolean("priority");
  63 + String callback=json.getString("callback");
  64 + String commentTime = json.getString("commentTime");
  65 + Date timestamp =null;
  66 + if (CommonUtils.isNotEmpty(commentTime)) {
  67 + timestamp = CommonUtils.getTimestamp(commentTime, "yyyy-MM-dd HH:mm");
  68 + }
  69 +
  70 + if(type.equals(CommonConst.CATEGORY_TOPIC)){//评论类型是话题
  71 + if(level==1){
  72 + ShyTopic shyTopic = new ShyTopic();
  73 + shyTopic.setTopic_id(programId);
  74 + shyTopic=topicService.getShyTopic(shyTopic);
  75 + if(shyTopic!=null){
  76 + commentTitle=shyTopic.getTitle();//设置标题
  77 + originalUrl=topic_comment_shareH5+programId;
  78 + }
  79 + }
  80 +
  81 + }
  82 +
41 83 //判断是否存在
42 84 ShyComments shyComments = new ShyComments();
43 85 shyComments.setActivity_id(json.getString("activityId"));
... ... @@ -53,26 +95,24 @@ public class CommentsControllerApi {
53 95 if (commentsList.size() > 0) {
54 96 ShyComments shyComments1 = commentsList.get(0);
55 97 shyComments1.setState(CommonConst.AUDIT_INTT);
56   - shyComments1.setProgram_id(json.getString("programId"));
57   - shyComments1.setComment_original_url(json.getString("originalUrl"));
58   - shyComments1.setComment_title(json.getString("commentTitle"));
59   - shyComments1.setComment_user_id(json.getInteger("commentUserId"));
60   - shyComments1.setComment_user_name(json.getString("commentUserName"));
61   - shyComments1.setComment_user_avatar(json.getString("commentUserAvatar"));
62   - shyComments1.setComment_user_ip(json.getString("commentUserIP"));
63   - shyComments1.setComment_content(json.getString("commentContent"));
64   - String commentTime = json.getString("commentTime");
65   - if (CommonUtils.isNotEmpty(commentTime)) {
66   - Date timestamp = CommonUtils.getTimestamp(commentTime, "yyyy-MM-dd HH:mm");
67   - shyComments1.setComment_time(timestamp);
68   -
69   - }
  98 + shyComments1.setProgram_id(programId);
  99 + shyComments1.setComment_original_url(originalUrl);
  100 + shyComments1.setComment_title(commentTitle);
  101 + shyComments1.setComment_user_id(commentUserId);
  102 + shyComments1.setComment_user_name(commentUserName);
  103 + shyComments1.setComment_user_avatar(commentUserAvatar);
  104 + shyComments1.setComment_user_ip(commentUserIP);
  105 + shyComments1.setComment_content(commentContent);
  106 + shyComments1.setType(type);
  107 + shyComments1.setLevel(level);
  108 +
  109 + shyComments1.setComment_time(timestamp);
70 110 shyComments1.setSpid(sp_id);
71   - shyComments1.setApp_id(json.getString("appId"));
72   - shyComments1.setPlatform(json.getString("platform"));
73   - shyComments1.setActivity_id(json.getString("activityId"));
74   - shyComments1.setIs_hot(json.getBoolean("priority"));
75   - shyComments1.setCallback(json.getString("callback"));
  111 + shyComments1.setApp_id(appId);
  112 + shyComments1.setPlatform(platform);
  113 + shyComments1.setActivity_id(activityId);
  114 + shyComments1.setIs_hot(priority);
  115 + shyComments1.setCallback(callback);
76 116 boolean YorN = commentsService.updateshyComments1(shyComments1);
77 117 if (YorN == true) {
78 118 return new ResponseBean(ErrorEnum.SUCCESS);
... ... @@ -82,24 +122,22 @@ public class CommentsControllerApi {
82 122 }
83 123 //如果不存在直接插入
84 124 shyComments.setState(CommonConst.AUDIT_INTT);
85   - shyComments.setProgram_id(json.getString("programId"));
86   - shyComments.setComment_original_url(json.getString("originalUrl"));
87   - shyComments.setComment_title(json.getString("commentTitle"));
88   - shyComments.setComment_user_id(json.getInteger("commentUserId"));
89   - shyComments.setComment_user_name(json.getString("commentUserName"));
90   - shyComments.setComment_user_avatar(json.getString("commentUserAvatar"));
91   - shyComments.setComment_user_ip(json.getString("commentUserIP"));
92   - shyComments.setComment_content(json.getString("commentContent"));
93   - String commentTime = json.getString("commentTime");
94   - if (CommonUtils.isNotEmpty(commentTime)) {
95   - Date timestamp = CommonUtils.getTimestamp(commentTime, "yyyy-MM-dd HH:mm");
96   - shyComments.setComment_time(timestamp);
97   - }
  125 + shyComments.setProgram_id(programId);
  126 + shyComments.setComment_original_url(originalUrl);
  127 + shyComments.setComment_title(commentTitle);
  128 + shyComments.setComment_user_id(commentUserId);
  129 + shyComments.setComment_user_name(commentUserName);
  130 + shyComments.setComment_user_avatar(commentUserAvatar);
  131 + shyComments.setComment_user_ip(commentUserIP);
  132 + shyComments.setComment_content(commentContent);
  133 + shyComments.setComment_time(timestamp);
  134 + shyComments.setType(type);
  135 + shyComments.setLevel(level);
98 136 shyComments.setSpid(sp_id);
99   - shyComments.setApp_id(json.getString("appId"));
100   - shyComments.setPlatform(json.getString("platform"));
101   - shyComments.setIs_hot(json.getBoolean("priority"));
102   - shyComments.setCallback(json.getString("callback"));
  137 + shyComments.setApp_id(appId);
  138 + shyComments.setPlatform(platform);
  139 + shyComments.setIs_hot(priority);
  140 + shyComments.setCallback(callback);
103 141 commentsService.getShenheType(shyComments);
104 142 boolean YorN = commentsService.impotComments(shyComments);
105 143 if (YorN == true) {
... ...
src/main/java/com/cnlive/shenhe/api/LiveApplyControllerApi.java
... ... @@ -55,7 +55,12 @@ public class LiveApplyControllerApi {
55 55 //获取所有参数
56 56 String activityId = json.getString("activityId");//直播活动id
57 57 String channelId = json.getString("channelId");//直播频道id
58   - Integer spId = Integer.parseInt(json.getString("spId"));//spid
  58 + Integer spId=null;
  59 + try {
  60 + spId=json.getInteger("spId");
  61 + } catch (Exception e) {
  62 + spId=null;
  63 + }
59 64 String sender = json.getString("sender");//直播发起人
60 65 String mobile = json.getString("mobile");//联系方式
61 66 String callback = json.getString("callback");//回调地址
... ...
src/main/java/com/cnlive/shenhe/api/TopicControllerApi.java 0 → 100644
  1 +package com.cnlive.shenhe.api;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.cnlive.shenhe.bean.ErrorEnum;
  5 +import com.cnlive.shenhe.bean.ResponseBean;
  6 +import com.cnlive.shenhe.entity.ShyTopic;
  7 +import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
  8 +import com.cnlive.shenhe.serviceImpl.TopicServiceImpl;
  9 +import com.cnlive.shenhe.utils.AuditPass;
  10 +import com.cnlive.shenhe.utils.CommonConst;
  11 +import com.cnlive.shenhe.utils.CommonUtils;
  12 +import com.cnlive.shenhe.utils.TransitServiceUtils;
  13 +
  14 +import org.slf4j.Logger;
  15 +import org.slf4j.LoggerFactory;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.stereotype.Controller;
  18 +import org.springframework.web.bind.annotation.GetMapping;
  19 +import org.springframework.web.bind.annotation.PostMapping;
  20 +import org.springframework.web.bind.annotation.RequestBody;
  21 +import org.springframework.web.bind.annotation.RequestMapping;
  22 +import org.springframework.web.bind.annotation.ResponseBody;
  23 +
  24 +import java.util.HashMap;
  25 +import java.util.List;
  26 +import java.util.Map;
  27 +
  28 +@Controller
  29 +@RequestMapping("/api/topic")
  30 +public class TopicControllerApi {
  31 + private static Logger logger = LoggerFactory.getLogger(TopicControllerApi.class);
  32 + @Autowired
  33 + AuditPass Pass;
  34 + @Autowired
  35 + CommentsServiceImpl commentsService;
  36 + @Autowired
  37 + TopicServiceImpl topicService;
  38 +
  39 + @Autowired
  40 + TransitServiceUtils t;
  41 +
  42 + /**
  43 + * @author liwei
  44 + * @Date: 2019/12/13 15:17
  45 + * @Description: 话题送审接口
  46 + */
  47 + @PostMapping("/import")
  48 + @ResponseBody
  49 + public ResponseBean impotTopic(@RequestBody String param) {
  50 + logger.info("话题入库,param=====" + param);
  51 + JSONObject json = JSONObject.parseObject(param);
  52 + JSONObject result = new JSONObject();
  53 +
  54 + //获取所有参数
  55 + String topic_id = json.getString("topicId");//话题id
  56 +// Integer spId = Integer.parseInt(json.getString("spId"));//spId
  57 +// Integer spId = json.getInteger("spId");//spId
  58 + Integer spId=null;
  59 + try {
  60 + spId=json.getInteger("spId");
  61 + } catch (Exception e) {
  62 + spId=null;
  63 + }
  64 + String topicTitle = json.getString("topicTitle");//话题标题
  65 + String topicPic = json.getString("topicPic");//话题图片
  66 + String topic_text = json.getString("topicMsg");//话题内容
  67 + String topic_time = json.getString("createTime");//话题创建时间
  68 +
  69 + String topic_tag = json.getString("topicTag");//话题标签
  70 + String topic_url = json.getString("topicUrl");//话题url
  71 +
  72 + //判断是否存在
  73 + ShyTopic shyTopic=new ShyTopic();
  74 + shyTopic.setTopic_id(topic_id);
  75 + List<ShyTopic> topicList = topicService.findshyTopic(shyTopic);
  76 +
  77 + //获取审核类型
  78 + Integer shenheType = topicService.getShenheType(spId);
  79 + //存在则更新
  80 + if (topicList.size() > 0) {
  81 + ShyTopic shyTopic1 = topicList.get(0);
  82 + shyTopic1.setTitle(topicTitle);//话题标题
  83 + shyTopic1.setTopic_image(topicPic);//话题图片
  84 + shyTopic1.setShenhe_type(shenheType);//审核类型
  85 + shyTopic1.setTopic_text(topic_text);//话题内容
  86 + shyTopic1.setTopic_tag(topic_tag);//话题标签
  87 + shyTopic1.setTopic_url(topic_url);//话题url
  88 + shyTopic1.setTopic_time(topic_time);//话题创建时间
  89 + shyTopic1.setSp_id(spId);//spid
  90 + shyTopic1.setShenhe_status(CommonConst.AUDIT_INTT);;//当前话题的审核状态
  91 + shyTopic1.setUpdate_date(CommonUtils.getCurrentTime());//最后一次更新时间
  92 +
  93 +
  94 +
  95 + boolean YorN = topicService.updateshyTopic(shyTopic1);
  96 + if (YorN == true) {
  97 + return new ResponseBean(ErrorEnum.SUCCESS,new JSONObject().put("topic_id", topic_id));
  98 + } else {
  99 + return new ResponseBean(ErrorEnum.ERROR,new JSONObject().put("topic_id", topic_id));
  100 + }
  101 + }
  102 + //如果不存在直接插入
  103 + shyTopic.setTitle(topicTitle);//话题标题
  104 + shyTopic.setTopic_image(topicPic);//话题图片
  105 + shyTopic.setShenhe_type(shenheType);//审核类型
  106 + shyTopic.setTopic_text(topic_text);//话题内容
  107 + shyTopic.setTopic_tag(topic_tag);//话题标签
  108 + shyTopic.setTopic_url(topic_url);//话题url
  109 + shyTopic.setTopic_time(topic_time);//话题创建时间
  110 + shyTopic.setSp_id(spId);//spid
  111 + shyTopic.setShenhe_status(CommonConst.AUDIT_INTT);;//当前话题的审核状态
  112 + shyTopic.setUpdate_date(CommonUtils.getCurrentTime());//最后一次更新时间
  113 + shyTopic.setCreate_date(CommonUtils.getCurrentTime());//送审时间
  114 + boolean YorN = topicService.impotshyTopic(shyTopic);
  115 + if (YorN == true) {
  116 + return new ResponseBean(ErrorEnum.SUCCESS,new JSONObject().put("topic_id", topic_id));
  117 + } else {
  118 + return new ResponseBean(ErrorEnum.ERROR,new JSONObject().put("topic_id", topic_id));
  119 + }
  120 + }
  121 +
  122 + @GetMapping("/send")
  123 + @ResponseBody
  124 + public String send() {
  125 + System.out.println("1111");
  126 + JSONObject params = new JSONObject();
  127 + params.put("video_id", "11111");
  128 + params.put("state", "22222");
  129 + params.put("attr_tags", "33333");
  130 + params.put("msg", "4444");
  131 + t.send("cms","/api/callback", false, params);
  132 + return "1111";
  133 + }
  134 +
  135 + @PostMapping("/callback")
  136 + @ResponseBody
  137 + public ResponseBean callback(@RequestBody String param) {
  138 + logger.info("话题中转回调通知,param=====" + param);
  139 + JSONObject json = JSONObject.parseObject(param);
  140 + //获取中转服务器消息
  141 + String errorCode = json.getString("errorCode");
  142 + String errorMessage=json.getString("errorMessage");
  143 + //获取接收方消息
  144 + JSONObject dataObject = json.getJSONObject("data");
  145 + String topic_id=dataObject.getString("topic_id");
  146 + //获取当前话题实体
  147 + ShyTopic topic=new ShyTopic();
  148 + topic.setTopic_id(topic_id);
  149 + topic = topicService.getShyTopic(topic);
  150 +
  151 + if(errorCode.equals("0")){
  152 + logger.info("话题id为:"+topic_id+",cms系统已通知");
  153 + if(topic!=null){
  154 + topic.setShenhe_msg(topic.getShenhe_msg()+",cms系统已通知");
  155 + }
  156 + }else{//中转服务器失败
  157 + logger.info("话题id为:"+topic_id+",中转服务器调用cms失败,失败消息:"+errorMessage);
  158 + topic.setShenhe_msg(topic.getShenhe_msg()+",中转服务器调用cms失败,失败消息:"+errorMessage);
  159 + topic.setShenhe_status(CommonConst.AUDIT_INTT);
  160 + topic.setShenhe_type(CommonConst.AUDIT_TYPE_USER);
  161 + topic.setAuditor_id(null);
  162 + }
  163 + boolean rs = topicService.updateshyTopic(topic);
  164 + Map<String,Object> ee=new HashMap<>();
  165 + ee.put("topic_id", topic_id);
  166 + if(rs){
  167 + return new ResponseBean(ErrorEnum.SUCCESS,ee);
  168 + }
  169 +
  170 + return new ResponseBean(300,"话题送审回调成功,入库失败",ee);
  171 + }
  172 +
  173 +
  174 +}
  175 +
... ...
src/main/java/com/cnlive/shenhe/bean/ResponseBean.java
... ... @@ -39,6 +39,10 @@ public class ResponseBean implements Serializable {
39 39 public ResponseBean(ErrorEnum errorEnum) {
40 40 this.errorEnum = errorEnum;
41 41 }
  42 + public ResponseBean(ErrorEnum errorEnum, Object data) {
  43 + this.errorEnum = errorEnum;
  44 + this.data = data;
  45 + }
42 46  
43 47 public Integer getErrorCode() {
44 48 if (CommonUtils.isNotNull(this.errorEnum)) {
... ...
src/main/java/com/cnlive/shenhe/controller/BaseController.java
... ... @@ -7,6 +7,7 @@ import javax.servlet.http.HttpServletResponse;
7 7 import javax.servlet.http.HttpSession;
8 8  
9 9 import org.springframework.stereotype.Controller;
  10 +import org.springframework.ui.Model;
10 11 import org.springframework.web.bind.annotation.GetMapping;
11 12 import org.springframework.web.bind.annotation.RequestMapping;
12 13 import org.springframework.web.context.request.RequestContextHolder;
... ... @@ -71,7 +72,39 @@ public class BaseController {
71 72 public void setSessionUser(SessionUser sessionUser){
72 73 this.getsession().setAttribute("",null);
73 74 }
  75 +
  76 + /**
  77 + * 设置报错页面显示信息——站点查询失败
  78 + * @param model
  79 + */
  80 + public void setmodel_site(Model model){
  81 + model.addAttribute("errorMessage", "站点查询失败,不存在此站点,请重新查询!");
  82 + model.addAttribute("remindMessage", "提示:站点查询请输入全称,不支持模糊查询");
  83 + }
  84 + /**
  85 + * 设置报错页面显示信息——参数校验失败
  86 + * @param model
  87 + * @param value 不能为空的参数
  88 + */
  89 + public void setmodel_param(Model model,String value){
  90 + model.addAttribute("errorMessage", "参数传递不能为空!"+value);
  91 + model.addAttribute("remindMessage", "提示:请检查所传参数,存在非空参数未赋值");
  92 + }
74 93  
75   -
  94 + /**
  95 + * 设置报错页面显示信息——入库结果失败
  96 + * @param model
  97 + */
  98 + public void setmodel_result(Model model){
  99 + model.addAttribute("errorMessage", "数据入库失败,请重试!");
  100 + model.addAttribute("remindMessage", "提示:如连续两次以上入库失败,请联系开发人员");
  101 + }
  102 + /**
  103 + * 设置报错页面显示信息——权限不足
  104 + * @param model
  105 + */
  106 + public void setmodel_limit(Model model){
  107 + model.addAttribute("errorMessage", "您没有此操作的权限,请重试或者联系管理员开通!");
  108 + }
76 109  
77 110 }
... ...
src/main/java/com/cnlive/shenhe/controller/ChannelController.java
... ... @@ -34,7 +34,7 @@ import java.util.Map;
34 34  
35 35 @Controller
36 36 @RequestMapping("/channel")
37   -public class ChannelController {
  37 +public class ChannelController extends BaseController {
38 38 private static Logger logger = LoggerFactory.getLogger(ChannelController.class);
39 39 @Value("${spring.localhost.url}")
40 40 private String localhost_url;//本机地址
... ... @@ -83,7 +83,8 @@ public class ChannelController {
83 83 if(CommonUtils.isNotNull(shySite)){
84 84 spid = shySite.getSpid();
85 85 }else{
86   - return "page/sitesError.html";
  86 + setmodel_site(model);
  87 + return "error.html";
87 88 }
88 89 } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
89 90 spid = null;
... ...
src/main/java/com/cnlive/shenhe/controller/CommentsController.java
... ... @@ -20,6 +20,7 @@ import com.github.pagehelper.PageInfo;
20 20 import org.slf4j.Logger;
21 21 import org.slf4j.LoggerFactory;
22 22 import org.springframework.beans.factory.annotation.Autowired;
  23 +import org.springframework.beans.factory.annotation.Value;
23 24 import org.springframework.stereotype.Controller;
24 25 import org.springframework.ui.Model;
25 26 import org.springframework.web.bind.annotation.*;
... ... @@ -31,7 +32,7 @@ import java.util.List;
31 32  
32 33 @Controller
33 34 @RequestMapping("/comments")
34   -public class CommentsController {
  35 +public class CommentsController extends BaseController {
35 36 private static Logger logger = LoggerFactory.getLogger(CommentsController.class);
36 37 @Autowired
37 38 AuditPass Pass;
... ... @@ -130,6 +131,14 @@ public class CommentsController {
130 131 comment.setComment_original_url(shyContent.getContent_url());
131 132 }
132 133 }
  134 +
  135 + //评论的类型
  136 + if(CommonConst.CATEGORY_TOPIC.equals(comment.getType())){
  137 + comment.setType("话题");
  138 + }else{
  139 + comment.setType("其他");
  140 + }
  141 +
133 142 }
134 143 }
135 144 /* 获取参数值给前台 用来判断是否需要把查看显示出来 state recive*/
... ...
src/main/java/com/cnlive/shenhe/controller/ContentController.java
... ... @@ -45,7 +45,7 @@ import java.util.List;
45 45  
46 46 @Controller
47 47 @RequestMapping("/content")
48   -public class ContentController {
  48 +public class ContentController extends BaseController {
49 49 private static Logger logger = LoggerFactory.getLogger(ContentController.class);
50 50 @Autowired
51 51 AuditPass Pass;
... ... @@ -91,7 +91,8 @@ public class ContentController {
91 91 if(CommonUtils.isNotNull(shySite)){
92 92 spid = shySite.getSpid();
93 93 }else{
94   - return "page/sitesError.html";
  94 + setmodel_site(model);
  95 + return "error.html";
95 96 }
96 97 } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
97 98 spid = null;
... ...
src/main/java/com/cnlive/shenhe/controller/EmailController.java
... ... @@ -40,7 +40,7 @@ import javax.servlet.http.HttpSession;
40 40 */
41 41 @Controller
42 42 @RequestMapping("/email")
43   -public class EmailController {
  43 +public class EmailController extends BaseController {
44 44  
45 45 @Autowired
46 46 EmailServiceImpl emailServiceImpl;
... ... @@ -121,8 +121,9 @@ public class EmailController {
121 121  
122 122  
123 123 @PostMapping(value = "/write")
124   - public String write(Integer id,String email,String remark, String[] write_business, HttpSession session, String redirect_url) {
  124 + public String write(Model model,Integer id,String email,String remark, String[] write_business, HttpSession session, String redirect_url) {
125 125 if(CommonUtils.isEmpty(email)&&CommonUtils.isEmpty(remark)){
  126 + setmodel_param(model,"email,remark不能为空");
126 127 return "error.html";
127 128 }
128 129 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
... ... @@ -137,7 +138,8 @@ public class EmailController {
137 138 if (success) {
138 139 return "redirect:" + redirect_url;
139 140 } else {
140   - return "error.html";
  141 + setmodel_result(model);
  142 + return "error.html";
141 143 }
142 144 }
143 145  
... ...
src/main/java/com/cnlive/shenhe/controller/LiveApplyController.java
... ... @@ -45,7 +45,7 @@ import java.util.Map;
45 45  
46 46 @Controller
47 47 @RequestMapping("/liveApply")
48   -public class LiveApplyController {
  48 +public class LiveApplyController extends BaseController {
49 49 private static Logger logger = LoggerFactory.getLogger(LiveApplyController.class);
50 50 @Autowired
51 51 AuditPass Pass;
... ... @@ -131,7 +131,7 @@ public class LiveApplyController {
131 131 */
132 132 @GetMapping("/page")
133 133 public Object getListLiveApply(Model model,String start_date,String end_date,
134   - String theme, Integer business_model, Integer page,Integer pageSize,
  134 + String theme, String business_model, Integer page,Integer pageSize,
135 135 Integer shenhe_state,Integer receive, String sp_desc,String orderByClause, HttpSession session) {
136 136 System.out.println("进入直播申请内容页");
137 137 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
... ... @@ -147,7 +147,8 @@ public class LiveApplyController {
147 147 if(CommonUtils.isNotNull(shySite)){
148 148 spid = shySite.getSpid();
149 149 }else{
150   - return "page/sitesError.html";
  150 + setmodel_site(model);
  151 + return "error.html";
151 152 }
152 153 } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
153 154 spid = null;
... ... @@ -352,16 +353,18 @@ public class LiveApplyController {
352 353 cell = row.createCell(4);//列
353 354 cell.setCellValue("直播主题");
354 355 cell = row.createCell(5);//列
355   - cell.setCellValue("直播申请方");
  356 + cell.setCellValue("spn昵称");
356 357 cell = row.createCell(6);//列
357   - cell.setCellValue("直播类型");
  358 + cell.setCellValue("直播申请方");
358 359 cell = row.createCell(7);//列
359   - cell.setCellValue("直播简介");
  360 + cell.setCellValue("直播类型");
360 361 cell = row.createCell(8);//列
361   - cell.setCellValue("频道_id");
  362 + cell.setCellValue("直播简介");
362 363 cell = row.createCell(9);//列
363   - cell.setCellValue("直播活动id");
  364 + cell.setCellValue("频道_id");
364 365 cell = row.createCell(10);//列
  366 + cell.setCellValue("直播活动id");
  367 + cell = row.createCell(11);//列
365 368 cell.setCellValue("创建时间");
366 369  
367 370 for (int i = 0; i < liveApplyList.size(); i++) {
... ... @@ -393,14 +396,16 @@ public class LiveApplyController {
393 396 cell = row.createCell(5);//列
394 397 cell.setCellValue(sitesService.findspidDescByspid(liveApplyList.get(i).getSp_id()).getName());
395 398 cell = row.createCell(6);//列
396   - cell.setCellValue(liveApplyList.get(i).getLive_type());
  399 + cell.setCellValue(liveApplyList.get(i).getOrganization());
397 400 cell = row.createCell(7);//列
398   - cell.setCellValue(liveApplyList.get(i).getSimple_content());
  401 + cell.setCellValue(liveApplyList.get(i).getLive_type());
399 402 cell = row.createCell(8);//列
400   - cell.setCellValue(liveApplyList.get(i).getChannel_id());
  403 + cell.setCellValue(liveApplyList.get(i).getSimple_content());
401 404 cell = row.createCell(9);//列
402   - cell.setCellValue(liveApplyList.get(i).getActivity_id());
  405 + cell.setCellValue(liveApplyList.get(i).getChannel_id());
403 406 cell = row.createCell(10);//列
  407 + cell.setCellValue(liveApplyList.get(i).getActivity_id());
  408 + cell = row.createCell(11);//列
404 409 cell.setCellValue(CommonUtils.formatDate(liveApplyList.get(i).getCreated_at(), "yyyy-MM-dd HH:mm"));
405 410 }
406 411  
... ...
src/main/java/com/cnlive/shenhe/controller/LiveController.java
... ... @@ -40,7 +40,7 @@ import java.util.List;
40 40  
41 41 @Controller
42 42 @RequestMapping("/live")
43   -public class LiveController {
  43 +public class LiveController extends BaseController {
44 44 private static Logger logger = LoggerFactory.getLogger(LiveController.class);
45 45 @Autowired
46 46 AuditPass Pass;
... ... @@ -133,7 +133,8 @@ public class LiveController {
133 133 if(CommonUtils.isNotNull(shySite)){
134 134 spid = shySite.getSpid();
135 135 }else{
136   - return "page/sitesError.html";
  136 + setmodel_site(model);
  137 + return "error.html";
137 138 }
138 139 } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
139 140 spid = null;
... ...
src/main/java/com/cnlive/shenhe/controller/NotSpeakController.java 0 → 100644
  1 +package com.cnlive.shenhe.controller;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.cnlive.shenhe.bean.ErrorEnum;
  5 +import com.cnlive.shenhe.bean.ResponseBean;
  6 +import com.cnlive.shenhe.bean.SessionUser;
  7 +import com.cnlive.shenhe.entity.ShyComments;
  8 +import com.cnlive.shenhe.entity.ShyContent;
  9 +import com.cnlive.shenhe.entity.ShyNotspeak;
  10 +import com.cnlive.shenhe.entity.ShySites;
  11 +import com.cnlive.shenhe.entity.ShyUsers;
  12 +import com.cnlive.shenhe.entity.ShyVideos;
  13 +import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
  14 +import com.cnlive.shenhe.serviceImpl.ContentServiceImpl;
  15 +import com.cnlive.shenhe.serviceImpl.NotspeakServiceImpl;
  16 +import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
  17 +import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
  18 +import com.cnlive.shenhe.utils.AuditPass;
  19 +import com.cnlive.shenhe.utils.CommonConst;
  20 +import com.cnlive.shenhe.utils.CommonUtils;
  21 +import com.github.pagehelper.PageInfo;
  22 +import org.slf4j.Logger;
  23 +import org.slf4j.LoggerFactory;
  24 +import org.springframework.beans.factory.annotation.Autowired;
  25 +import org.springframework.beans.factory.annotation.Value;
  26 +import org.springframework.stereotype.Controller;
  27 +import org.springframework.ui.Model;
  28 +import org.springframework.web.bind.annotation.*;
  29 +
  30 +import javax.servlet.http.HttpSession;
  31 +import java.util.Date;
  32 +import java.util.List;
  33 +
  34 +
  35 +@Controller
  36 +@RequestMapping("/notSpeak")
  37 +public class NotSpeakController extends BaseController {
  38 + private static Logger logger = LoggerFactory.getLogger(NotSpeakController.class);
  39 + @Autowired
  40 + AuditPass Pass;
  41 + @Autowired
  42 + CommentsServiceImpl commentsService;
  43 + @Autowired
  44 + NotspeakServiceImpl notSpeakService;
  45 +
  46 + @Autowired
  47 + UsersServiceImpl usersService;
  48 +
  49 + @Autowired
  50 + SitesServiceImpl sitesService;
  51 + @Autowired
  52 + ContentServiceImpl contentService;
  53 +
  54 + /**
  55 + * 禁言列表页
  56 + *
  57 + * @param activity_id
  58 + * @param content
  59 + * @param is_hot
  60 + * @param start_date
  61 + * @param end_date
  62 + * @param state
  63 + * @param page
  64 + * @param pageSize
  65 + * @param orderByClause
  66 + * @return
  67 + */
  68 + @GetMapping("/page")
  69 + public String getPage(Model model, String user_name, Integer user_id,Integer state,
  70 + Integer page, Integer pageSize, String orderByClause, HttpSession session) {
  71 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  72 + if(CommonUtils.isNull(sessionUser)){
  73 + return "redirect:/users/login";
  74 + }
  75 + String userId = sessionUser.getUserId();
  76 + if (CommonUtils.isNull(page)) page = 1;
  77 + if (CommonUtils.isNull(pageSize)) pageSize = 10;
  78 + PageInfo<ShyNotspeak> shyNotspeakPage = notSpeakService.getPage(user_name,user_id, state, page, pageSize, orderByClause);
  79 + List<ShyNotspeak> list = shyNotspeakPage.getList();
  80 + if (!list.isEmpty()) {
  81 + for (ShyNotspeak notspeak : list) {
  82 + String updater = CommonUtils.isEmpty(notspeak.getUpdater()) || "null".equals(notspeak.getUpdater())? "无":notspeak.getUpdater();
  83 + String auditor_id = notspeak.getAuditor();
  84 + if (CommonUtils.isNotEmpty(auditor_id)) {
  85 + ShyUsers user = new ShyUsers();
  86 + user.setUser_id(auditor_id);
  87 + user = usersService.select(user);
  88 + if (CommonUtils.isNotNull(user)) {
  89 + String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail();
  90 + String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername();
  91 + updater = userName ;
  92 + }
  93 + }
  94 + notspeak.setUpdater(updater);
  95 + if(null!=notspeak.getSp_id()){
  96 + //显示spid简称
  97 + ShySites shySites = sitesService.findspidDescByspid(notspeak.getSp_id());
  98 + if (CommonUtils.isNotNull(shySites)) {
  99 + notspeak.setSpid_desc(shySites.getName());
  100 + }
  101 + }else{
  102 + notspeak.setSpid_desc("sp无法显示");
  103 + }
  104 + }
  105 + }
  106 + model.addAttribute("pageSize", pageSize);
  107 + model.addAttribute("notspeakPage", shyNotspeakPage);
  108 + return "page/notspeak.html";
  109 + }
  110 +
  111 +
  112 + /**
  113 + * 禁言(通过评论进入)
  114 + * @param commentId
  115 + * @param type
  116 + * @param time
  117 + * @param session
  118 + * @return
  119 + */
  120 + @PostMapping("/notSpeakByComment")
  121 + @ResponseBody
  122 + public ResponseBean notSpeakByComment(Integer commentId,Integer time, HttpSession session) {
  123 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  124 + String userId = sessionUser.getUserId();
  125 + ResponseBean success = notSpeakService.notSpeakByComment(commentId, time,userId);
  126 + return success;
  127 + }
  128 + /**
  129 + * 查询禁言状态(通过评论进入)
  130 + * @param commentId
  131 + * @param type
  132 + * @param time
  133 + * @param session
  134 + * @return
  135 + */
  136 + @PostMapping("/querySpeakState")
  137 + @ResponseBody
  138 + public ResponseBean querySpeakState(Integer commentId, HttpSession session) {
  139 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  140 + String userId = sessionUser.getUserId();
  141 + ResponseBean success = notSpeakService.querySpeakState(commentId,userId);
  142 + return success;
  143 + }
  144 + /**
  145 + * 禁言(通过禁言管理进入)
  146 + * @param notSpeakId
  147 + * @param type
  148 + * @param time
  149 + * @param session
  150 + * @return
  151 + */
  152 + @PostMapping("/speak")
  153 + @ResponseBody
  154 + public ResponseBean speak(Integer notSpeakId,Integer type,Integer time, HttpSession session) {
  155 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  156 + String userId = sessionUser.getUserId();
  157 + ResponseBean success = notSpeakService.speak(notSpeakId,type, time,userId);
  158 + return success;
  159 + }
  160 +}
... ...
src/main/java/com/cnlive/shenhe/controller/SitesController.java
... ... @@ -26,7 +26,7 @@ import java.util.List;
26 26 */
27 27 @Controller
28 28 @RequestMapping("/sites")
29   -public class SitesController {
  29 +public class SitesController extends BaseController {
30 30  
31 31 private static Logger logger = LoggerFactory.getLogger(SitesController.class);
32 32  
... ... @@ -50,7 +50,8 @@ public class SitesController {
50 50 }
51 51 Integer spid = sessionUser.getSpid();
52 52 if (!sessionUser.isMaster() && spid != 0) {
53   - return "page/error.html";
  53 + setmodel_site(model);
  54 + return "error.html";
54 55 }
55 56 if (spid == 0) spid = null;
56 57 if (CommonUtils.isNull(page)) page = 1;
... ... @@ -79,12 +80,11 @@ public class SitesController {
79 80  
80 81  
81 82 @PostMapping(value = "/write")
82   - public String write(Integer siteId, String[] write_business, HttpSession session, String redirect_url) {
  83 + public String write(Model model,Integer siteId, String[] write_business, HttpSession session, String redirect_url) {
83 84 ShySites site = sitesService.get(siteId);
84 85 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
85   - Integer spid = sessionUser.getSpid();
86   - if ((!sessionUser.isMaster() && spid != 0) ) {
87   - return "page/error.html";
  86 + if(CommonUtils.isNull(sessionUser)){
  87 + return "redirect:/users/login";
88 88 }
89 89 String write = "";
90 90 if (CommonUtils.isNotNull(write_business) && write_business.length > 0) {
... ... @@ -98,7 +98,8 @@ public class SitesController {
98 98 if (success) {
99 99 return "redirect:" + redirect_url;
100 100 } else {
101   - return "error.html";
  101 + setmodel_result(model);
  102 + return "error.html";
102 103 }
103 104 }
104 105  
... ...
src/main/java/com/cnlive/shenhe/controller/TopicController.java 0 → 100644
  1 +package com.cnlive.shenhe.controller;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.cnlive.shenhe.bean.ErrorEnum;
  5 +import com.cnlive.shenhe.bean.ResponseBean;
  6 +import com.cnlive.shenhe.bean.SessionUser;
  7 +import com.cnlive.shenhe.entity.ShyComments;
  8 +import com.cnlive.shenhe.entity.ShyContent;
  9 +import com.cnlive.shenhe.entity.ShyLive;
  10 +import com.cnlive.shenhe.entity.ShySites;
  11 +import com.cnlive.shenhe.entity.ShyTopic;
  12 +import com.cnlive.shenhe.entity.ShyUsers;
  13 +import com.cnlive.shenhe.entity.ShyVideos;
  14 +import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
  15 +import com.cnlive.shenhe.serviceImpl.ContentServiceImpl;
  16 +import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
  17 +import com.cnlive.shenhe.serviceImpl.TopicServiceImpl;
  18 +import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
  19 +import com.cnlive.shenhe.utils.AuditPass;
  20 +import com.cnlive.shenhe.utils.CommonConst;
  21 +import com.cnlive.shenhe.utils.CommonUtils;
  22 +import com.github.pagehelper.PageInfo;
  23 +
  24 +import org.apache.poi.xssf.usermodel.XSSFCell;
  25 +import org.apache.poi.xssf.usermodel.XSSFRow;
  26 +import org.apache.poi.xssf.usermodel.XSSFSheet;
  27 +import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  28 +import org.slf4j.Logger;
  29 +import org.slf4j.LoggerFactory;
  30 +import org.springframework.beans.factory.annotation.Autowired;
  31 +import org.springframework.stereotype.Controller;
  32 +import org.springframework.ui.Model;
  33 +import org.springframework.web.bind.annotation.*;
  34 +
  35 +import javax.servlet.ServletOutputStream;
  36 +import javax.servlet.http.HttpServletResponse;
  37 +import javax.servlet.http.HttpSession;
  38 +
  39 +import java.io.BufferedInputStream;
  40 +import java.io.BufferedOutputStream;
  41 +import java.io.ByteArrayInputStream;
  42 +import java.io.ByteArrayOutputStream;
  43 +import java.io.InputStream;
  44 +import java.util.Date;
  45 +import java.util.List;
  46 +
  47 +
  48 +@Controller
  49 +@RequestMapping("/topic")
  50 +public class TopicController extends BaseController {
  51 + private static Logger logger = LoggerFactory.getLogger(TopicController.class);
  52 + @Autowired
  53 + AuditPass Pass;
  54 + @Autowired
  55 + CommentsServiceImpl commentsService;
  56 + @Autowired
  57 + TopicServiceImpl topicService;
  58 + @Autowired
  59 + SitesServiceImpl sitesService;
  60 +
  61 + @Autowired
  62 + UsersServiceImpl usersService;
  63 +
  64 + /**
  65 + * 图文列表
  66 + *
  67 + * @param model
  68 + * @param title
  69 + * @param start_date
  70 + * @param end_date
  71 + * @param receive_status
  72 + * @param sp_desc
  73 + * @param page
  74 + * @param pageSize
  75 + * @param orderByClause
  76 + * @param session
  77 + * @return
  78 + */
  79 + @GetMapping("/page")
  80 + public String getPage(Model model, String topic_name,String topic_id, String topic_tag,
  81 + String start_date, String end_date, Integer shenhe_status, String sp_desc,
  82 + Integer page, Integer pageSize,Integer receive, String orderByClause, HttpSession session) {
  83 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  84 + if(CommonUtils.isNull(sessionUser)){
  85 + return "redirect:/users/login";
  86 + }
  87 + Integer spid = sessionUser.getSpid();
  88 + String userId = sessionUser.getUserId();
  89 + if (CommonUtils.isNull(page)) page = 1;
  90 + if (CommonUtils.isNull(pageSize)) pageSize = 10;
  91 + if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
  92 + ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
  93 + if(CommonUtils.isNotNull(shySite)){
  94 + spid = shySite.getSpid();
  95 + }else{
  96 + setmodel_site(model);
  97 + return "error.html";
  98 + }
  99 + } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
  100 + spid = null;
  101 + }
  102 + Date sDate = null;
  103 + Date eDate = null;
  104 +
  105 + if (CommonUtils.isNotEmpty(start_date)) {
  106 + try {
  107 + sDate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
  108 + } catch (Exception e) {
  109 + }
  110 + }
  111 + if (CommonUtils.isNotEmpty(end_date)) {
  112 + try {
  113 + eDate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
  114 + } catch (Exception e) {
  115 + }
  116 + }
  117 + PageInfo<ShyTopic> topicPage = topicService.getPage( topic_name,topic_tag,topic_id, sDate, eDate, shenhe_status, null, page, pageSize, orderByClause, spid, userId,receive);
  118 + List<ShyTopic> list = topicPage.getList();
  119 + if (!list.isEmpty()) {
  120 + for (ShyTopic topic : list) {
  121 + if (topic.getShenhe_status() != CommonConst.AUDIT_INTT) {
  122 + String auditor_id = topic.getAuditor_id();
  123 + String updater = CommonUtils.isEmpty(topic.getUpdater()) || "null".equals(topic.getUpdater())? "白名单":topic.getUpdater();
  124 + updater =sitesService.getUpdater(updater,auditor_id);
  125 + topic.setUpdater(updater);
  126 + }
  127 + //显示spid简称
  128 + if(CommonUtils.isNotNull(topic.getSp_id())){
  129 + ShySites shySites = sitesService.findspidDescByspid(topic.getSp_id());
  130 + if (CommonUtils.isNotNull(shySites)) {
  131 + topic.setSp_desc(shySites.getName());
  132 + }
  133 + }else{
  134 + topic.setSp_desc("sp无法显示");
  135 + }
  136 + }
  137 + }
  138 + model.addAttribute("topicPage", topicPage);
  139 + model.addAttribute("pageSize", pageSize);
  140 + return "page/topic.html";
  141 + }
  142 +
  143 +
  144 + /**
  145 + * 审核通过
  146 + *
  147 + * @param ids
  148 + * @return
  149 + */
  150 + @PostMapping("/pass")
  151 + @ResponseBody
  152 + public ResponseBean pass(String ids, HttpSession session) {
  153 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  154 + String userId = sessionUser.getUserId();
  155 + boolean success =false;
  156 + String[] topicIds = ids.split(",");
  157 + for (String id : topicIds) {
  158 + success = topicService.callback(id,"审核通过", CommonConst.AUDIT_SUCCESS, userId,"");
  159 + if(!success){
  160 + return new ResponseBean(ErrorEnum.ERROR);
  161 + }
  162 + }
  163 + return new ResponseBean(ErrorEnum.SUCCESS);
  164 + }
  165 +
  166 + /**
  167 + * 审核拒绝
  168 + *
  169 + * @param ids
  170 + * @return
  171 + */
  172 + @PostMapping("/refuse")
  173 + @ResponseBody
  174 + public ResponseBean refuse(String ids,String msg, HttpSession session) {
  175 + SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  176 + String userId = sessionUser.getUserId();
  177 + boolean success =false;
  178 + String[] contentIds = ids.split(",");
  179 + for (String id : contentIds) {
  180 + success = topicService.callback(id,msg, CommonConst.AUDIT_REFUSE, userId,"");
  181 + if(!success){
  182 + return new ResponseBean(ErrorEnum.ERROR);
  183 + }
  184 + }
  185 + return new ResponseBean(ErrorEnum.SUCCESS);
  186 +
  187 + }
  188 +
  189 +
  190 + /**
  191 + * 根据条件导出excel
  192 + */
  193 +// @GetMapping("excel")
  194 +// public void getExcel( String title,String contentId, String content_tag,
  195 +// String start_date, String end_date, Integer receive_status, String sp_desc,
  196 +// Integer page, Integer pageSize, String orderByClause, HttpSession session,HttpServletResponse response) {
  197 +// SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
  198 +// Integer spid = sessionUser.getSpid();
  199 +// String userId = sessionUser.getUserId();
  200 +// if (CommonUtils.isNotEmpty(sp_desc) && spid == 0) {
  201 +// ShySites shySite=sitesService.findspidBySpdesc(sp_desc);
  202 +// if(CommonUtils.isNotNull(shySite)){
  203 +// spid = shySite.getSpid();
  204 +// }
  205 +// }else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
  206 +// spid = null;
  207 +// }
  208 +// Date sDate = null;
  209 +// Date eDate = null;
  210 +//
  211 +// if (CommonUtils.isNotEmpty(start_date)) {
  212 +// try {
  213 +// sDate = CommonUtils.parseDate(start_date, "yyyy-MM-dd");
  214 +// } catch (Exception e) {
  215 +// }
  216 +// }
  217 +// if (CommonUtils.isNotEmpty(end_date)) {
  218 +// try {
  219 +// eDate = CommonUtils.parseDate(end_date, "yyyy-MM-dd");
  220 +// } catch (Exception e) {
  221 +// }
  222 +// }
  223 +// List<ShyContent> contentList = contentService.findByCondition(title,content_tag,contentId, sDate, eDate, receive_status, page, pageSize, orderByClause, spid);
  224 +//
  225 +// String fileName = "图文数据";
  226 +//
  227 +// XSSFWorkbook wb = new XSSFWorkbook();
  228 +// ServletOutputStream out = null;
  229 +// BufferedInputStream bis = null;
  230 +// BufferedOutputStream bos = null;
  231 +// try {
  232 +// XSSFSheet sheetlist = wb.createSheet(fileName);
  233 +// XSSFRow row = sheetlist.createRow(0);//行
  234 +// XSSFCell cell = row.createCell(0);//列
  235 +// cell.setCellValue("id");
  236 +// cell = row.createCell(1);//列
  237 +// cell.setCellValue("sp昵称");
  238 +// cell = row.createCell(2);//列
  239 +// cell.setCellValue("图文id");
  240 +// cell = row.createCell(3);//列
  241 +// cell.setCellValue("内容标题");
  242 +// cell = row.createCell(4);//列
  243 +// cell.setCellValue("图文标签");
  244 +// cell = row.createCell(5);//列
  245 +// cell.setCellValue("审核类型");
  246 +// cell = row.createCell(6);//列
  247 +// cell.setCellValue("内容状态");
  248 +// cell = row.createCell(7);//列
  249 +// cell.setCellValue("图文创建时间");
  250 +// cell = row.createCell(8);//列
  251 +// cell.setCellValue("图文送审时间");
  252 +// cell = row.createCell(9);//列
  253 +// cell.setCellValue("领取状态");
  254 +// cell = row.createCell(10);//列
  255 +// cell.setCellValue("审核人");
  256 +// cell = row.createCell(11);//列
  257 +// cell.setCellValue("审核意见");
  258 +// cell = row.createCell(12);//列
  259 +// cell.setCellValue("来源(昵称)");
  260 +// cell = row.createCell(13);//列
  261 +// cell.setCellValue("作者(sid)");
  262 +// cell = row.createCell(14);//列
  263 +// cell.setCellValue("图文url");
  264 +//
  265 +// for (int i = 0; i < contentList.size(); i++) {
  266 +// row = sheetlist.createRow((short) (i + 1));//行
  267 +// cell = row.createCell(0);//列
  268 +// cell.setCellValue(contentList.get(i).getId());
  269 +// cell = row.createCell(1);//列
  270 +// cell.setCellValue(sitesService.findspidDescByspid(contentList.get(i).getSp_id()).getName());
  271 +// cell = row.createCell(2);//列
  272 +// cell.setCellValue(contentList.get(i).getContent_id());
  273 +// cell = row.createCell(3);//列
  274 +// cell.setCellValue(contentList.get(i).getTitle());
  275 +// /*状态需要处理成用户可读*/
  276 +// String contentTag = "";//图文标签 content:图文发布,moment:朋友圈
  277 +// if (contentList.get(i).getContent_tag().equals("content") ) {
  278 +// contentTag = "图文发布";
  279 +// } else if (contentList.get(i).getContent_tag().equals("moment")) {
  280 +// contentTag = "朋友圈";
  281 +// }
  282 +// cell = row.createCell(4);//列
  283 +// cell.setCellValue(contentTag);
  284 +//
  285 +// /*状态需要处理成用户可读*/
  286 +// String shenheType = "";//审核类型,1:免审,2:机审,3:人工审
  287 +// if (contentList.get(i).getShenhe_type() == 1) {
  288 +// shenheType = "免审";
  289 +// } else if (contentList.get(i).getShenhe_type() == 2) {
  290 +// shenheType = "机审";
  291 +// } else {
  292 +// shenheType = "人工审";
  293 +// }
  294 +// cell = row.createCell(5);//列
  295 +// cell.setCellValue(shenheType);
  296 +//
  297 +// /*状态需要处理成用户可读*/
  298 +// String contentStatus = "";//内容状态:0:待发布,1:已发布,2:已下线,3:已删除
  299 +// if (contentList.get(i).getContent_status() == 0) {
  300 +// contentStatus = "待发布";
  301 +// } else if (contentList.get(i).getContent_status() == 1) {
  302 +// contentStatus = "已发布";
  303 +// } else if(contentList.get(i).getContent_status() == 2){
  304 +// contentStatus = "已下线";
  305 +// }else if(contentList.get(i).getContent_status() == 3){
  306 +// contentStatus = "已删除";
  307 +// }
  308 +//
  309 +// cell = row.createCell(6);//列
  310 +// cell.setCellValue(contentStatus);
  311 +// cell = row.createCell(7);//列
  312 +// cell.setCellValue(contentList.get(i).getContent_time()==null?"":CommonUtils.formatDate(contentList.get(i).getContent_time(), "yyyy-MM-dd HH:mm:ss"));
  313 +// cell = row.createCell(8);//列
  314 +// cell.setCellValue(contentList.get(i).getCreate_date()==null?"":CommonUtils.formatDate(contentList.get(i).getCreate_date(), "yyyy-MM-dd HH:mm:ss"));
  315 +//
  316 +// /*状态需要处理成用户可读*/
  317 +// String receiveStatus = "";//领取状态。0:未领取;1:已领取,2:已审核
  318 +// if (contentList.get(i).getReceive_status() == 1) {
  319 +// receiveStatus = "已领取";
  320 +// } else if (contentList.get(i).getReceive_status() == 2) {
  321 +// receiveStatus = "已审核";
  322 +// } else {
  323 +// receiveStatus = "未领取";
  324 +// }
  325 +//
  326 +// cell = row.createCell(9);//列
  327 +// cell.setCellValue(receiveStatus);
  328 +//
  329 +// /* 审核员需要做处理*/
  330 +// String updater = "";//审核员名字
  331 +// if (contentList.get(i).getReceive_status() != CommonConst.RECEIVE_BEFORE) {
  332 +// updater = CommonUtils.isEmpty(contentList.get(i).getUpdater()) || "null".equals(contentList.get(i).getUpdater())? "自动通过":contentList.get(i).getUpdater();
  333 +// String auditor_id = contentList.get(i).getAuditor_id();
  334 +// if (CommonUtils.isNotEmpty(auditor_id)) {
  335 +// ShyUsers user = new ShyUsers();
  336 +// user.setUser_id(auditor_id);
  337 +// user = usersService.select(user);
  338 +// if (CommonUtils.isNotNull(user)) {
  339 +// String email = CommonUtils.isEmpty(user.getEmail()) || "null".equals(user.getEmail()) ? "" : user.getEmail();
  340 +// String userName = CommonUtils.isEmpty(user.getUsername()) ? email : user.getUsername();
  341 +// updater = userName ;
  342 +// }
  343 +// }
  344 +// }
  345 +// cell = row.createCell(10);//列
  346 +// cell.setCellValue(updater);
  347 +//
  348 +//
  349 +//
  350 +// cell = row.createCell(11);//列
  351 +// cell.setCellValue(contentList.get(i).getShenhe_msg());
  352 +// cell = row.createCell(12);//列
  353 +// cell.setCellValue(contentList.get(i).getSource());
  354 +// cell = row.createCell(13);//列
  355 +// cell.setCellValue(contentList.get(i).getAuthor());
  356 +// cell = row.createCell(14);//列
  357 +// cell.setCellValue(contentList.get(i).getContent_url());
  358 +// }
  359 +//
  360 +// ByteArrayOutputStream os = new ByteArrayOutputStream();
  361 +// wb.write(os);
  362 +// byte[] content = os.toByteArray();
  363 +// InputStream is = new ByteArrayInputStream(content);
  364 +// response.setContentType("application/vnd.ms-excel;charset=utf-8");
  365 +// response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xlsx").getBytes(), "iso-8859-1"));
  366 +// out = response.getOutputStream();
  367 +// bis = new BufferedInputStream(is);
  368 +// bos = new BufferedOutputStream(out);
  369 +// byte[] buff = new byte[2048];
  370 +// int bytesRead;
  371 +// while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
  372 +// bos.write(buff, 0, bytesRead);
  373 +// }
  374 +// } catch (final Exception e) {
  375 +// e.printStackTrace();
  376 +// try {
  377 +// if (bis != null)
  378 +// bis.close();
  379 +// if (bos != null)
  380 +// bos.close();
  381 +// } catch (Exception e1) {
  382 +// e1.printStackTrace();
  383 +// }
  384 +// } finally {
  385 +// try {
  386 +// if (bis != null)
  387 +// bis.close();
  388 +// if (bos != null)
  389 +// bos.close();
  390 +// } catch (Exception e2) {
  391 +// e2.printStackTrace();
  392 +// }
  393 +// }
  394 +// }
  395 +}
... ...
src/main/java/com/cnlive/shenhe/controller/UsersController.java
... ... @@ -38,7 +38,7 @@ import javax.servlet.http.HttpSession;
38 38 */
39 39 @Controller
40 40 @RequestMapping("/users")
41   -public class UsersController {
  41 +public class UsersController extends BaseController {
42 42  
43 43 @Autowired
44 44 UsersServiceImpl usersService;
... ... @@ -92,9 +92,6 @@ public class UsersController {
92 92 return "redirect:/users/login";
93 93 }
94 94 Integer spid = sessionUser.getSpid();
95   - if (!sessionUser.isMaster() && spid != 0) {
96   - return "page/error.html";
97   - }
98 95 if (spid == 0) spid = null;
99 96 if (CommonUtils.isNull(page)) page = 1;
100 97 if (CommonUtils.isNull(pageSize)) pageSize = 10;
... ... @@ -145,12 +142,12 @@ public class UsersController {
145 142  
146 143  
147 144 @PostMapping(value = "/write")
148   - public String write(Integer userId, String[] write_notice, HttpSession session, String redirect_url) {
  145 + public String write(Model model,Integer userId, String[] write_notice, HttpSession session, String redirect_url) {
149 146 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
150   - Integer spid = sessionUser.getSpid();
151   - if (spid != 0) {
152   - return "page/error.html";
153   - }
  147 +// Integer spid = sessionUser.getSpid();
  148 +// if (spid != 0) {
  149 +// return "page/error.html";
  150 +// }
154 151 ShyUsers user = usersService.get(userId);
155 152 String write = "";
156 153 if (CommonUtils.isNotNull(write_notice) && write_notice.length > 0) {
... ... @@ -164,7 +161,8 @@ public class UsersController {
164 161 if (success) {
165 162 return "redirect:" + redirect_url;
166 163 } else {
167   - return "error.html";
  164 + setmodel_result(model);
  165 + return "error.html";
168 166 }
169 167 }
170 168  
... ...
src/main/java/com/cnlive/shenhe/controller/UsersFreeController.java
... ... @@ -36,7 +36,7 @@ import javax.servlet.http.HttpSession;
36 36 */
37 37 @Controller
38 38 @RequestMapping("/usersFree")
39   -public class UsersFreeController {
  39 +public class UsersFreeController extends BaseController {
40 40  
41 41 @Autowired
42 42 UsersfreeServiceImpl usersfreeService;
... ... @@ -100,8 +100,9 @@ public class UsersFreeController {
100 100  
101 101  
102 102 @PostMapping(value = "/write")
103   - public String write(String userId,String userMobile,Integer spId, String[] write_business, HttpSession session, String redirect_url) {
  103 + public String write(Model model,String userId,String userMobile,Integer spId, String[] write_business, HttpSession session, String redirect_url) {
104 104 if(CommonUtils.isEmpty(userId)&&CommonUtils.isEmpty(userMobile)){
  105 + setmodel_param(model,"userId,userMobile不能为空!");
105 106 return "error.html";
106 107 }
107 108 SessionUser sessionUser = (SessionUser) session.getAttribute(SessionUser.getSessionKey());
... ... @@ -116,6 +117,7 @@ public class UsersFreeController {
116 117 if (success) {
117 118 return "redirect:" + redirect_url;
118 119 } else {
  120 + setmodel_result(model);
119 121 return "error.html";
120 122 }
121 123 }
... ...
src/main/java/com/cnlive/shenhe/controller/VideosController.java
... ... @@ -129,7 +129,8 @@ public class VideosController extends BaseController {
129 129 if(CommonUtils.isNotNull(shySite)){
130 130 spid = shySite.getSpid();
131 131 }else{
132   - return "page/sitesError.html";
  132 + setmodel_site(model);
  133 + return "error.html";
133 134 }
134 135 } else if (CommonUtils.isEmpty(sp_desc) && spid == 0) {
135 136 spid = null;
... ...
src/main/java/com/cnlive/shenhe/entity/ShyComments.java
... ... @@ -43,6 +43,16 @@ public class ShyComments {
43 43 */
44 44 private Date comment_time;
45 45  
  46 + /**
  47 + * 评论类型,topic:话题
  48 + */
  49 + private String type;
  50 +
  51 + /**
  52 + * 评论的级别
  53 + */
  54 + private Integer level;
  55 +
46 56 private Integer spid;
47 57  
48 58 /**
... ... @@ -260,6 +270,42 @@ public class ShyComments {
260 270 }
261 271  
262 272 /**
  273 + * 获取评论类型,topic:话题
  274 + *
  275 + * @return type - 评论类型,topic:话题
  276 + */
  277 + public String getType() {
  278 + return type;
  279 + }
  280 +
  281 + /**
  282 + * 设置评论类型,topic:话题
  283 + *
  284 + * @param type 评论类型,topic:话题
  285 + */
  286 + public void setType(String type) {
  287 + this.type = type;
  288 + }
  289 +
  290 + /**
  291 + * 获取评论的级别
  292 + *
  293 + * @return level - 评论的级别
  294 + */
  295 + public Integer getLevel() {
  296 + return level;
  297 + }
  298 +
  299 + /**
  300 + * 设置评论的级别
  301 + *
  302 + * @param level 评论的级别
  303 + */
  304 + public void setLevel(Integer level) {
  305 + this.level = level;
  306 + }
  307 +
  308 + /**
263 309 * @return spid
264 310 */
265 311 public Integer getSpid() {
... ...
src/main/java/com/cnlive/shenhe/entity/ShyNotspeak.java 0 → 100644
  1 +package com.cnlive.shenhe.entity;
  2 +
  3 +import java.util.Date;
  4 +import javax.persistence.*;
  5 +
  6 +@Table(name = "shy_notSpeak")
  7 +public class ShyNotspeak {
  8 + @Id
  9 + private Integer id;
  10 +
  11 + /**
  12 + * 用户昵称
  13 + */
  14 + private String user_name;
  15 +
  16 + /**
  17 + * 用户id
  18 + */
  19 + private Integer user_id;
  20 +
  21 + /**
  22 + * 用户头像
  23 + */
  24 + private String user_avatar;
  25 +
  26 + /**
  27 + * spId
  28 + */
  29 + private Integer sp_id;
  30 +
  31 + /**
  32 + * 当前状态 1:禁言 0:解禁
  33 + */
  34 + private Integer state;
  35 +
  36 + /**
  37 + * 禁言开始时间
  38 + */
  39 + private Date start_time;
  40 +
  41 + /**
  42 + * 禁言时长(分钟)
  43 + */
  44 + private Integer time;
  45 +
  46 + /**
  47 + * 禁言结束时间
  48 + */
  49 + private Date end_time;
  50 +
  51 + /**
  52 + * 禁言次数
  53 + */
  54 + private Integer count;
  55 +
  56 + /**
  57 + * 创建时间
  58 + */
  59 + private Date created_at;
  60 +
  61 + /**
  62 + * 更新时间
  63 + */
  64 + private Date updated_at;
  65 +
  66 + /**
  67 + * 更新着
  68 + */
  69 + private String updater;
  70 +
  71 + /**
  72 + * 审核员id
  73 + */
  74 + private String auditor;
  75 +
  76 + /**
  77 + * 禁言消息
  78 + */
  79 + private String msg;
  80 +
  81 + @Transient
  82 + private String spid_desc;
  83 +
  84 + /**
  85 + * @return id
  86 + */
  87 + public Integer getId() {
  88 + return id;
  89 + }
  90 +
  91 + /**
  92 + * @param id
  93 + */
  94 + public void setId(Integer id) {
  95 + this.id = id;
  96 + }
  97 +
  98 + /**
  99 + * 获取用户昵称
  100 + *
  101 + * @return user_name - 用户昵称
  102 + */
  103 + public String getUser_name() {
  104 + return user_name;
  105 + }
  106 +
  107 + /**
  108 + * 设置用户昵称
  109 + *
  110 + * @param user_name 用户昵称
  111 + */
  112 + public void setUser_name(String user_name) {
  113 + this.user_name = user_name;
  114 + }
  115 +
  116 + /**
  117 + * 获取用户id
  118 + *
  119 + * @return user_id - 用户id
  120 + */
  121 + public Integer getUser_id() {
  122 + return user_id;
  123 + }
  124 +
  125 + /**
  126 + * 设置用户id
  127 + *
  128 + * @param user_id 用户id
  129 + */
  130 + public void setUser_id(Integer user_id) {
  131 + this.user_id = user_id;
  132 + }
  133 +
  134 + /**
  135 + * 获取用户头像
  136 + *
  137 + * @return user_avatar - 用户头像
  138 + */
  139 + public String getUser_avatar() {
  140 + return user_avatar;
  141 + }
  142 +
  143 + /**
  144 + * 设置用户头像
  145 + *
  146 + * @param user_avatar 用户头像
  147 + */
  148 + public void setUser_avatar(String user_avatar) {
  149 + this.user_avatar = user_avatar;
  150 + }
  151 +
  152 + /**
  153 + * 获取spId
  154 + *
  155 + * @return sp_id - spId
  156 + */
  157 + public Integer getSp_id() {
  158 + return sp_id;
  159 + }
  160 +
  161 + /**
  162 + * 设置spId
  163 + *
  164 + * @param sp_id spId
  165 + */
  166 + public void setSp_id(Integer sp_id) {
  167 + this.sp_id = sp_id;
  168 + }
  169 +
  170 + /**
  171 + * 获取当前状态 1:禁言 0:解禁
  172 + *
  173 + * @return state - 当前状态 1:禁言 0:解禁
  174 + */
  175 + public Integer getState() {
  176 + return state;
  177 + }
  178 +
  179 + /**
  180 + * 设置当前状态 1:禁言 0:解禁
  181 + *
  182 + * @param state 当前状态 1:禁言 0:解禁
  183 + */
  184 + public void setState(Integer state) {
  185 + this.state = state;
  186 + }
  187 +
  188 + /**
  189 + * 获取禁言开始时间
  190 + *
  191 + * @return start_time - 禁言开始时间
  192 + */
  193 + public Date getStart_time() {
  194 + return start_time;
  195 + }
  196 +
  197 + /**
  198 + * 设置禁言开始时间
  199 + *
  200 + * @param start_time 禁言开始时间
  201 + */
  202 + public void setStart_time(Date start_time) {
  203 + this.start_time = start_time;
  204 + }
  205 +
  206 + /**
  207 + * 获取禁言时长(分钟)
  208 + *
  209 + * @return time - 禁言时长(分钟)
  210 + */
  211 + public Integer getTime() {
  212 + return time;
  213 + }
  214 +
  215 + /**
  216 + * 设置禁言时长(分钟)
  217 + *
  218 + * @param time 禁言时长(分钟)
  219 + */
  220 + public void setTime(Integer time) {
  221 + this.time = time;
  222 + }
  223 +
  224 + /**
  225 + * 获取禁言结束时间
  226 + *
  227 + * @return end_time - 禁言结束时间
  228 + */
  229 + public Date getEnd_time() {
  230 + return end_time;
  231 + }
  232 +
  233 + /**
  234 + * 设置禁言结束时间
  235 + *
  236 + * @param end_time 禁言结束时间
  237 + */
  238 + public void setEnd_time(Date end_time) {
  239 + this.end_time = end_time;
  240 + }
  241 +
  242 + /**
  243 + * 获取禁言次数
  244 + *
  245 + * @return count - 禁言次数
  246 + */
  247 + public Integer getCount() {
  248 + return count;
  249 + }
  250 +
  251 + /**
  252 + * 设置禁言次数
  253 + *
  254 + * @param count 禁言次数
  255 + */
  256 + public void setCount(Integer count) {
  257 + this.count = count;
  258 + }
  259 +
  260 + /**
  261 + * 获取创建时间
  262 + *
  263 + * @return created_at - 创建时间
  264 + */
  265 + public Date getCreated_at() {
  266 + return created_at;
  267 + }
  268 +
  269 + /**
  270 + * 设置创建时间
  271 + *
  272 + * @param created_at 创建时间
  273 + */
  274 + public void setCreated_at(Date created_at) {
  275 + this.created_at = created_at;
  276 + }
  277 +
  278 + /**
  279 + * 获取更新时间
  280 + *
  281 + * @return updated_at - 更新时间
  282 + */
  283 + public Date getUpdated_at() {
  284 + return updated_at;
  285 + }
  286 +
  287 + /**
  288 + * 设置更新时间
  289 + *
  290 + * @param updated_at 更新时间
  291 + */
  292 + public void setUpdated_at(Date updated_at) {
  293 + this.updated_at = updated_at;
  294 + }
  295 +
  296 + /**
  297 + * 获取更新着
  298 + *
  299 + * @return updater - 更新着
  300 + */
  301 + public String getUpdater() {
  302 + return updater;
  303 + }
  304 +
  305 + /**
  306 + * 设置更新着
  307 + *
  308 + * @param updater 更新着
  309 + */
  310 + public void setUpdater(String updater) {
  311 + this.updater = updater;
  312 + }
  313 +
  314 + /**
  315 + * 获取审核员id
  316 + *
  317 + * @return auditor - 审核员id
  318 + */
  319 + public String getAuditor() {
  320 + return auditor;
  321 + }
  322 +
  323 + /**
  324 + * 设置审核员id
  325 + *
  326 + * @param auditor 审核员id
  327 + */
  328 + public void setAuditor(String auditor) {
  329 + this.auditor = auditor;
  330 + }
  331 +
  332 + /**
  333 + * 获取禁言消息
  334 + *
  335 + * @return msg - 禁言消息
  336 + */
  337 + public String getMsg() {
  338 + return msg;
  339 + }
  340 +
  341 + /**
  342 + * 设置禁言消息
  343 + *
  344 + * @param msg 禁言消息
  345 + */
  346 + public void setMsg(String msg) {
  347 + this.msg = msg;
  348 + }
  349 +
  350 + public String getSpid_desc() {
  351 + return spid_desc;
  352 + }
  353 +
  354 + public void setSpid_desc(String spid_desc) {
  355 + this.spid_desc = spid_desc;
  356 + }
  357 +
  358 +}
0 359 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/entity/ShyTopic.java 0 → 100644
  1 +package com.cnlive.shenhe.entity;
  2 +
  3 +import java.util.Date;
  4 +import javax.persistence.*;
  5 +
  6 +@Table(name = "shy_topic")
  7 +public class ShyTopic {
  8 + /**
  9 + * id
  10 + */
  11 + @Id
  12 + private Integer id;
  13 +
  14 + /**
  15 + * 话题id
  16 + */
  17 + private String topic_id;
  18 +
  19 + /**
  20 + * spId
  21 + */
  22 + private Integer sp_id;
  23 +
  24 + /**
  25 + * 话题图片
  26 + */
  27 + private String topic_image;
  28 +
  29 + /**
  30 + * 话题标签
  31 + */
  32 + private String topic_tag;
  33 +
  34 + /**
  35 + * 话题url
  36 + */
  37 + private String topic_url;
  38 +
  39 + /**
  40 + * 话题创建时间
  41 + */
  42 + private String topic_time;
  43 +
  44 + /**
  45 + * 审核类型,1:免审,2:机审,3:人工审
  46 + */
  47 + private Integer shenhe_type;
  48 +
  49 + /**
  50 + * 审核状态.0:未审核(未领取) 1:审核中(已领未审) 2:通过 3:拒绝
  51 + */
  52 + private Integer shenhe_status;
  53 +
  54 + /**
  55 + * 送审时间
  56 + */
  57 + private Date create_date;
  58 +
  59 + /**
  60 + * 更新时间
  61 + */
  62 + private Date update_date;
  63 +
  64 + /**
  65 + * 审核人id
  66 + */
  67 + private String auditor_id;
  68 +
  69 + /**
  70 + * 更新人名称
  71 + */
  72 + private String updater;
  73 +
  74 + /**
  75 + * 审核意见
  76 + */
  77 + private String shenhe_msg;
  78 +
  79 + /**
  80 + * 话题标题
  81 + */
  82 + private String title;
  83 +
  84 + /**
  85 + * 话题内容
  86 + */
  87 + private String topic_text;
  88 +
  89 + /**
  90 + * sp名称
  91 + */
  92 + @Transient
  93 + private String sp_desc;
  94 +
  95 + /**
  96 + * 获取id
  97 + *
  98 + * @return id - id
  99 + */
  100 + public Integer getId() {
  101 + return id;
  102 + }
  103 +
  104 + /**
  105 + * 设置id
  106 + *
  107 + * @param id id
  108 + */
  109 + public void setId(Integer id) {
  110 + this.id = id;
  111 + }
  112 +
  113 + /**
  114 + * 获取话题id
  115 + *
  116 + * @return topic_id - 话题id
  117 + */
  118 + public String getTopic_id() {
  119 + return topic_id;
  120 + }
  121 +
  122 + /**
  123 + * 设置话题id
  124 + *
  125 + * @param topic_id 话题id
  126 + */
  127 + public void setTopic_id(String topic_id) {
  128 + this.topic_id = topic_id;
  129 + }
  130 +
  131 + /**
  132 + * 获取spId
  133 + *
  134 + * @return sp_id - spId
  135 + */
  136 + public Integer getSp_id() {
  137 + return sp_id;
  138 + }
  139 +
  140 + /**
  141 + * 设置spId
  142 + *
  143 + * @param sp_id spId
  144 + */
  145 + public void setSp_id(Integer sp_id) {
  146 + this.sp_id = sp_id;
  147 + }
  148 +
  149 + /**
  150 + * 获取话题图片
  151 + *
  152 + * @return topic_image - 话题图片
  153 + */
  154 + public String getTopic_image() {
  155 + return topic_image;
  156 + }
  157 +
  158 + /**
  159 + * 设置话题图片
  160 + *
  161 + * @param topic_image 话题图片
  162 + */
  163 + public void setTopic_image(String topic_image) {
  164 + this.topic_image = topic_image;
  165 + }
  166 +
  167 + /**
  168 + * 获取话题标签
  169 + *
  170 + * @return topic_tag - 话题标签
  171 + */
  172 + public String getTopic_tag() {
  173 + return topic_tag;
  174 + }
  175 +
  176 + /**
  177 + * 设置话题标签
  178 + *
  179 + * @param topic_tag 话题标签
  180 + */
  181 + public void setTopic_tag(String topic_tag) {
  182 + this.topic_tag = topic_tag;
  183 + }
  184 +
  185 + /**
  186 + * 获取话题url
  187 + *
  188 + * @return topic_url - 话题url
  189 + */
  190 + public String getTopic_url() {
  191 + return topic_url;
  192 + }
  193 +
  194 + /**
  195 + * 设置话题url
  196 + *
  197 + * @param topic_url 话题url
  198 + */
  199 + public void setTopic_url(String topic_url) {
  200 + this.topic_url = topic_url;
  201 + }
  202 +
  203 + /**
  204 + * 获取话题创建时间
  205 + *
  206 + * @return topic_time - 话题创建时间
  207 + */
  208 + public String getTopic_time() {
  209 + return topic_time;
  210 + }
  211 +
  212 + /**
  213 + * 设置话题创建时间
  214 + *
  215 + * @param topic_time 话题创建时间
  216 + */
  217 + public void setTopic_time(String topic_time) {
  218 + this.topic_time = topic_time;
  219 + }
  220 +
  221 + /**
  222 + * 获取审核类型,1:免审,2:机审,3:人工审
  223 + *
  224 + * @return shenhe_type - 审核类型,1:免审,2:机审,3:人工审
  225 + */
  226 + public Integer getShenhe_type() {
  227 + return shenhe_type;
  228 + }
  229 +
  230 + /**
  231 + * 设置审核类型,1:免审,2:机审,3:人工审
  232 + *
  233 + * @param shenhe_type 审核类型,1:免审,2:机审,3:人工审
  234 + */
  235 + public void setShenhe_type(Integer shenhe_type) {
  236 + this.shenhe_type = shenhe_type;
  237 + }
  238 +
  239 + /**
  240 + * 获取审核状态.0:未审核(未领取) 1:审核中(已领未审) 2:通过 3:拒绝
  241 + *
  242 + * @return shenhe_status - 审核状态.0:未审核(未领取) 1:审核中(已领未审) 2:通过 3:拒绝
  243 + */
  244 + public Integer getShenhe_status() {
  245 + return shenhe_status;
  246 + }
  247 +
  248 + /**
  249 + * 设置审核状态.0:未审核(未领取) 1:审核中(已领未审) 2:通过 3:拒绝
  250 + *
  251 + * @param shenhe_status 审核状态.0:未审核(未领取) 1:审核中(已领未审) 2:通过 3:拒绝
  252 + */
  253 + public void setShenhe_status(Integer shenhe_status) {
  254 + this.shenhe_status = shenhe_status;
  255 + }
  256 +
  257 + /**
  258 + * 获取送审时间
  259 + *
  260 + * @return create_date - 送审时间
  261 + */
  262 + public Date getCreate_date() {
  263 + return create_date;
  264 + }
  265 +
  266 + /**
  267 + * 设置送审时间
  268 + *
  269 + * @param create_date 送审时间
  270 + */
  271 + public void setCreate_date(Date create_date) {
  272 + this.create_date = create_date;
  273 + }
  274 +
  275 + /**
  276 + * 获取更新时间
  277 + *
  278 + * @return update_date - 更新时间
  279 + */
  280 + public Date getUpdate_date() {
  281 + return update_date;
  282 + }
  283 +
  284 + /**
  285 + * 设置更新时间
  286 + *
  287 + * @param update_date 更新时间
  288 + */
  289 + public void setUpdate_date(Date update_date) {
  290 + this.update_date = update_date;
  291 + }
  292 +
  293 + /**
  294 + * 获取审核人id
  295 + *
  296 + * @return auditor_id - 审核人id
  297 + */
  298 + public String getAuditor_id() {
  299 + return auditor_id;
  300 + }
  301 +
  302 + /**
  303 + * 设置审核人id
  304 + *
  305 + * @param auditor_id 审核人id
  306 + */
  307 + public void setAuditor_id(String auditor_id) {
  308 + this.auditor_id = auditor_id;
  309 + }
  310 +
  311 + /**
  312 + * 获取更新人名称
  313 + *
  314 + * @return updater - 更新人名称
  315 + */
  316 + public String getUpdater() {
  317 + return updater;
  318 + }
  319 +
  320 + /**
  321 + * 设置更新人名称
  322 + *
  323 + * @param updater 更新人名称
  324 + */
  325 + public void setUpdater(String updater) {
  326 + this.updater = updater;
  327 + }
  328 +
  329 + /**
  330 + * 获取审核意见
  331 + *
  332 + * @return shenhe_msg - 审核意见
  333 + */
  334 + public String getShenhe_msg() {
  335 + return shenhe_msg;
  336 + }
  337 +
  338 + /**
  339 + * 设置审核意见
  340 + *
  341 + * @param shenhe_msg 审核意见
  342 + */
  343 + public void setShenhe_msg(String shenhe_msg) {
  344 + this.shenhe_msg = shenhe_msg;
  345 + }
  346 +
  347 + /**
  348 + * 获取话题标题
  349 + *
  350 + * @return title - 话题标题
  351 + */
  352 + public String getTitle() {
  353 + return title;
  354 + }
  355 +
  356 + /**
  357 + * 设置话题标题
  358 + *
  359 + * @param title 话题标题
  360 + */
  361 + public void setTitle(String title) {
  362 + this.title = title;
  363 + }
  364 +
  365 + /**
  366 + * 获取话题内容
  367 + *
  368 + * @return topic_text - 话题内容
  369 + */
  370 + public String getTopic_text() {
  371 + return topic_text;
  372 + }
  373 +
  374 + /**
  375 + * 设置话题内容
  376 + *
  377 + * @param topic_text 话题内容
  378 + */
  379 + public void setTopic_text(String topic_text) {
  380 + this.topic_text = topic_text;
  381 + }
  382 +
  383 + public String getSp_desc() {
  384 + return sp_desc;
  385 + }
  386 +
  387 + public void setSp_desc(String sp_desc) {
  388 + this.sp_desc = sp_desc;
  389 + }
  390 +
  391 +}
0 392 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/job/NotSpeakJob.java 0 → 100644
  1 +package com.cnlive.shenhe.job;
  2 +
  3 +import com.cnlive.shenhe.bean.ResponseBean;
  4 +import com.cnlive.shenhe.entity.ShyComments;
  5 +import com.cnlive.shenhe.entity.ShyNotspeak;
  6 +import com.cnlive.shenhe.serviceImpl.CommentsServiceImpl;
  7 +import com.cnlive.shenhe.serviceImpl.NotspeakServiceImpl;
  8 +import com.cnlive.shenhe.serviceImpl.SitesServiceImpl;
  9 +import com.cnlive.shenhe.serviceImpl.UsersServiceImpl;
  10 +import com.cnlive.shenhe.utils.AuditPass;
  11 +import com.cnlive.shenhe.utils.CommonConst;
  12 +import com.cnlive.shenhe.utils.CommonUtils;
  13 +
  14 +import org.slf4j.Logger;
  15 +import org.slf4j.LoggerFactory;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.scheduling.annotation.Scheduled;
  18 +import org.springframework.stereotype.Component;
  19 +
  20 +import java.util.List;
  21 +
  22 +@Component
  23 +public class NotSpeakJob {
  24 + private static Logger logger = LoggerFactory.getLogger(NotSpeakJob.class);
  25 + @Autowired
  26 + SitesServiceImpl sitesService;
  27 + @Autowired
  28 + AuditPass Pass;
  29 + @Autowired
  30 + CommentsServiceImpl commentsService;
  31 +
  32 + @Autowired
  33 + UsersServiceImpl usersService;
  34 +
  35 + @Autowired
  36 + NotspeakServiceImpl notSpeakService;
  37 +
  38 +
  39 + /**
  40 + * 自动解除禁言
  41 + */
  42 + @Scheduled(cron="0 0/1 * * * ? ")//每分钟一次
  43 + public void autoRetReceive() {
  44 + List<ShyNotspeak> shyNotspeakList = notSpeakService.getNotSpeakByTime();
  45 + if (shyNotspeakList.size() > 0) {
  46 + for (ShyNotspeak shyNotspeak : shyNotspeakList) {
  47 + logger.info("自动解除禁言的的speak_id:"+shyNotspeak.getId());
  48 + notSpeakService.speak(shyNotspeak.getId(), CommonConst.SPEAK_YES, 0, null);
  49 + }
  50 + }
  51 + }
  52 +
  53 +
  54 +
  55 +}
... ...
src/main/java/com/cnlive/shenhe/mapper/ShyNotspeakMapper.java 0 → 100644
  1 +package com.cnlive.shenhe.mapper;
  2 +
  3 +import com.cnlive.shenhe.entity.ShyNotspeak;
  4 +import tk.mybatis.mapper.common.Mapper;
  5 +
  6 +public interface ShyNotspeakMapper extends Mapper<ShyNotspeak> {
  7 +}
0 8 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/mapper/ShyTopicMapper.java 0 → 100644
  1 +package com.cnlive.shenhe.mapper;
  2 +
  3 +import com.cnlive.shenhe.entity.ShyTopic;
  4 +import tk.mybatis.mapper.common.Mapper;
  5 +
  6 +public interface ShyTopicMapper extends Mapper<ShyTopic> {
  7 +}
0 8 \ No newline at end of file
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/CommentsServiceImpl.java
... ... @@ -4,9 +4,8 @@ import com.alibaba.fastjson.JSONObject;
4 4 import com.cnlive.shenhe.entity.ShyComments;
5 5 import com.cnlive.shenhe.entity.ShySites;
6 6 import com.cnlive.shenhe.entity.ShyUsers;
7   -import com.cnlive.shenhe.entity.ShyUsersfree;
8   -import com.cnlive.shenhe.entity.ShyVideos;
9 7 import com.cnlive.shenhe.mapper.ShyCommentsMapper;
  8 +import com.cnlive.shenhe.mapper.ShyNotspeakMapper;
10 9 import com.cnlive.shenhe.mapper.ShySitesMapper;
11 10 import com.cnlive.shenhe.mapper.ShyUsersMapper;
12 11 import com.cnlive.shenhe.utils.AuditPass;
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/LiveApplyServiceImpl.java
... ... @@ -112,7 +112,7 @@ public class LiveApplyServiceImpl {
112 112  
113 113 //===============
114 114 public PageInfo<ShyLiveapply> getListLiveApply(String theme, String start_date, String end_date,
115   - Integer business_model, Integer page, Integer pageSize,
  115 + String business_model, Integer page, Integer pageSize,
116 116 Integer shenhe_state,Integer receive, String orderByClause, Integer spid, String userId) {
117 117 Example example = new Example(ShyLiveapply.class);
118 118 Example.Criteria criteria = example.createCriteria();
... ... @@ -144,7 +144,7 @@ public class LiveApplyServiceImpl {
144 144 }
145 145  
146 146 if (CommonUtils.isNotNull(business_model)) {
147   - criteria.andEqualTo("business_model", business_model);
  147 + criteria.andLike("organization", "%" + business_model + "%");
148 148 }
149 149 if (CommonUtils.isNotNull(spid)) {
150 150 criteria.andEqualTo("sp_id", spid);
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/NotspeakServiceImpl.java 0 → 100644
  1 +package com.cnlive.shenhe.serviceImpl;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.cnlive.shenhe.bean.ResponseBean;
  6 +import com.cnlive.shenhe.entity.ShyComments;
  7 +import com.cnlive.shenhe.entity.ShyContent;
  8 +import com.cnlive.shenhe.entity.ShyLive;
  9 +import com.cnlive.shenhe.entity.ShyNotspeak;
  10 +import com.cnlive.shenhe.entity.ShySites;
  11 +import com.cnlive.shenhe.entity.ShyTopic;
  12 +import com.cnlive.shenhe.entity.ShyUsers;
  13 +import com.cnlive.shenhe.entity.ShyVideofilter;
  14 +import com.cnlive.shenhe.entity.ShyVideos;
  15 +import com.cnlive.shenhe.mapper.ShyCommentsMapper;
  16 +import com.cnlive.shenhe.mapper.ShyContentMapper;
  17 +import com.cnlive.shenhe.mapper.ShyNotspeakMapper;
  18 +import com.cnlive.shenhe.mapper.ShySitesMapper;
  19 +import com.cnlive.shenhe.mapper.ShyTopicMapper;
  20 +import com.cnlive.shenhe.mapper.ShyUsersMapper;
  21 +import com.cnlive.shenhe.utils.AntiFraudUtil;
  22 +import com.cnlive.shenhe.utils.AuditPass;
  23 +import com.cnlive.shenhe.utils.CommonConst;
  24 +import com.cnlive.shenhe.utils.CommonUtils;
  25 +import com.cnlive.shenhe.utils.TransitServiceUtils;
  26 +import com.github.pagehelper.PageHelper;
  27 +import com.github.pagehelper.PageInfo;
  28 +import org.apache.ibatis.session.RowBounds;
  29 +import org.slf4j.Logger;
  30 +import org.slf4j.LoggerFactory;
  31 +import org.springframework.beans.factory.annotation.Autowired;
  32 +import org.springframework.beans.factory.annotation.Value;
  33 +import org.springframework.stereotype.Service;
  34 +import tk.mybatis.mapper.entity.Example;
  35 +
  36 +import java.sql.Timestamp;
  37 +import java.text.ParseException;
  38 +import java.util.ArrayList;
  39 +import java.util.Date;
  40 +import java.util.HashMap;
  41 +import java.util.List;
  42 +import java.util.Map;
  43 +import java.util.UUID;
  44 +
  45 +/**
  46 + * @Auther: liwei
  47 + * @Date: 2019/1/2 11:30
  48 + * @Description:
  49 + */
  50 +@Service
  51 +public class NotspeakServiceImpl {
  52 +
  53 + private static Logger logger = LoggerFactory.getLogger(NotspeakServiceImpl.class);
  54 + @Autowired
  55 + ShyCommentsMapper shyCommentsMapper;
  56 + @Autowired
  57 + ShyNotspeakMapper shyNotspeakMapper;
  58 + @Autowired
  59 + ShySitesMapper shySitesMapper;
  60 + @Autowired
  61 + ShyUsersMapper shyUsersMapper;
  62 + @Autowired
  63 + TransitServiceUtils transitServiceUtils;
  64 + @Autowired
  65 + SitesServiceImpl sitesService;
  66 + @Autowired
  67 + VideosServiceImpl videosService;
  68 + @Autowired
  69 + VideofilterServiceImpl videofilterServiceImpl;
  70 + @Autowired
  71 + AuditPass Pass;
  72 +
  73 + @Value("${spring.localhost.url}")
  74 + String localhost_url;
  75 +
  76 + @Value("${speak_comment}")
  77 + String speak_comment;
  78 +
  79 + public ShyNotspeak getShySpeak(ShyNotspeak shyNotspeak) {
  80 + List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.select(shyNotspeak);
  81 + if(CommonUtils.isNotNull(shyNotspeakList)&&shyNotspeakList.size()>0){
  82 + return shyNotspeakList.get(0);
  83 + }
  84 + return new ShyNotspeak();
  85 + }
  86 +
  87 + //**************************************
  88 + public List<ShyNotspeak> findshyNotspeak(ShyNotspeak shyNotspeak) {
  89 +
  90 + return shyNotspeakMapper.selectByRowBounds(shyNotspeak, new RowBounds(0, 100));
  91 + }
  92 +
  93 + //***************************
  94 + public boolean updateshyNotspeak(ShyNotspeak shyNotspeak) {
  95 + int result = shyNotspeakMapper.updateByPrimaryKey(shyNotspeak);
  96 + if (result == 0) {
  97 + return false;
  98 + }
  99 + return true;
  100 + }
  101 +
  102 + //***************************
  103 + public boolean impotshyNotspeak(ShyNotspeak shyNotspeak) {
  104 + int result = shyNotspeakMapper.insertSelective(shyNotspeak);
  105 + if (result == 0) {
  106 + return false;
  107 + }
  108 + return true;
  109 + }
  110 +
  111 + public ResponseBean notSpeakByComment(Integer commentId,Integer time, String userId) {
  112 + ResponseBean success;
  113 + ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
  114 + JSONObject json = new JSONObject();
  115 + json.put("sid", comment.getComment_user_id().toString());
  116 + json.put("type", CommonConst.SPEAK_NOT);
  117 + json.put("minute", time);
  118 + JSONObject result = new JSONObject();
  119 + try {
  120 + result = Pass.commentSpeak(json, speak_comment);
  121 + } catch (Exception e) {
  122 + logger.error("评论禁言失败,comments_id:{}", comment.getId());
  123 + success=new ResponseBean(500,"评论禁言调用互动云服务器失败!");
  124 + return success;
  125 + }
  126 + if (result == null) {
  127 + logger.error("评论禁言错误,且无返回信息。comments_id:{}", comment.getId());
  128 + success=new ResponseBean(500,"评论禁言调用互动云返回结果为空!");
  129 + return success;
  130 + } else {
  131 + Integer errorCode = result.getInteger("errorCode");
  132 + String errorMessage = result.getString("errorMessage");
  133 + if (errorCode != 0) {
  134 + logger.error("评论禁言错误,comments_id:{},errorCode:{},errorMessage:{}", comment.getId(), errorCode, errorMessage);
  135 + success=new ResponseBean(500,"评论禁言调用互动云返回结果errorCode不为0!");
  136 + return success;
  137 + }
  138 + comment.setState(CommonConst.AUDIT_REFUSE);
  139 + comment.setMsg("评论禁言操作");
  140 + comment.setAuditor_id(userId);
  141 + comment.setReceive(1);//已领取
  142 + comment.setReceive_user_id(userId);
  143 + int i = shyCommentsMapper.updateByPrimaryKeySelective(comment);
  144 + if (i != 1) {
  145 + success=new ResponseBean(500,"评论禁言修改当前评论数据失败!");
  146 + return success;
  147 + }
  148 + boolean res =writeNotSpeakByComment(commentId,time,userId);
  149 + if(res==false){
  150 + success=new ResponseBean(500,"评论禁言修改禁言表失败!");
  151 + return success;
  152 + }
  153 + }
  154 + return new ResponseBean();
  155 + }
  156 +
  157 + public ResponseBean querySpeakState(Integer commentId, String userId) {
  158 + ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
  159 + ShyNotspeak shyNotspeak=new ShyNotspeak();
  160 + shyNotspeak.setUser_id(comment.getComment_user_id());
  161 + shyNotspeak.setState(CommonConst.SPEAK_NOT);
  162 + List<ShyNotspeak> shyNotspeakList = findshyNotspeak(shyNotspeak);
  163 + if(shyNotspeakList.size()>0){
  164 + shyNotspeak =shyNotspeakList.get(0);
  165 + return new ResponseBean(500,"当前用户已被禁言,禁言剩余时长:"+(shyNotspeak.getEnd_time().getTime()-new Date().getTime())/(1000*60)+"分钟,解禁时间:"+CommonUtils.formatDate(shyNotspeak.getEnd_time(), "yyyy-MM-dd HH:mm:ss"));
  166 + }
  167 + return new ResponseBean();
  168 + }
  169 + public ResponseBean speak(Integer notSpeakId, Integer type,Integer time, String userId) {
  170 + ResponseBean success;
  171 + ShyNotspeak shyNotspeak=selectByPrimaryKey(notSpeakId);
  172 + JSONObject json = new JSONObject();
  173 + json.put("sid", shyNotspeak.getUser_id().toString());
  174 + json.put("type", type);
  175 + json.put("minute", time);
  176 + JSONObject result = new JSONObject();
  177 + try {
  178 + result = Pass.commentSpeak(json, speak_comment);
  179 + } catch (Exception e) {
  180 + logger.error("评论禁言失败,shyNotspeak_id:{}", shyNotspeak.getId());
  181 + success=new ResponseBean(500,"评论禁言调用互动云服务器失败!");
  182 + return success;
  183 + }
  184 + if (result == null) {
  185 + logger.error("评论禁言错误,且无返回信息。shyNotspeak_id:{}", shyNotspeak.getId());
  186 + success=new ResponseBean(500,"评论禁言调用互动云返回结果为空!");
  187 + return success;
  188 + } else {
  189 + Integer errorCode = result.getInteger("errorCode");
  190 + String errorMessage = result.getString("errorMessage");
  191 + if (errorCode != 0) {
  192 + logger.error("评论禁言错误,shyNotspeak_id:{},errorCode:{},errorMessage:{}", shyNotspeak.getId(), errorCode, errorMessage);
  193 + success=new ResponseBean(500,"评论禁言调用互动云返回结果errorCode不为0!");
  194 + return success;
  195 + }
  196 + String msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"解除禁言";
  197 + shyNotspeak.setState(type);
  198 + if(type==CommonConst.SPEAK_NOT){
  199 + shyNotspeak.setStart_time(CommonUtils.getCurrentTime());
  200 + shyNotspeak.setTime(time);
  201 + shyNotspeak.setEnd_time(CommonUtils.getAddTime(time));
  202 + shyNotspeak.setCount(shyNotspeak.getCount()+1);
  203 + msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"开始禁言,禁言时长为"+time+"分钟,禁言管理里面禁言的";
  204 + }
  205 + if(CommonUtils.isNotEmpty(userId)){
  206 + shyNotspeak.setAuditor(userId);
  207 + shyNotspeak.setUpdater("");
  208 + }else{
  209 + shyNotspeak.setAuditor(null);
  210 + shyNotspeak.setUpdater("自动解除");
  211 + }
  212 + shyNotspeak.setUpdated_at(CommonUtils.getCurrentTime());
  213 + shyNotspeak.setMsg(shyNotspeak.getMsg()+"\n"+msg);
  214 + boolean res =updateshyNotspeak(shyNotspeak);
  215 + if(res==false){
  216 + success=new ResponseBean(500,"评论禁言修改禁言表失败!");
  217 + return success;
  218 + }
  219 +
  220 + }
  221 + return new ResponseBean();
  222 + }
  223 +
  224 +
  225 + public boolean writeNotSpeakByComment(Integer commentId,Integer time, String userId){
  226 + boolean result=false;
  227 + ShyComments comment = shyCommentsMapper.selectByPrimaryKey(commentId);
  228 + ShyNotspeak shyNotspeak=new ShyNotspeak();
  229 + shyNotspeak.setUser_id(comment.getComment_user_id());
  230 + String msg=CommonUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss")+"开始禁言,禁言时长为"+time+"分钟,禁言的评论为:'"+comment.getComment_content()+"'";
  231 +
  232 + List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.select(shyNotspeak);
  233 + if(CommonUtils.isNotNull(shyNotspeakList)&&shyNotspeakList.size()>0){
  234 + ShyNotspeak notspeak=shyNotspeakList.get(0);
  235 + notspeak.setUser_name(comment.getComment_user_name());
  236 + notspeak.setUser_avatar(comment.getComment_user_avatar());
  237 + notspeak.setSp_id(comment.getSpid());
  238 + notspeak.setState(CommonConst.SPEAK_NOT);
  239 + notspeak.setStart_time(CommonUtils.getCurrentTime());
  240 + notspeak.setTime(time);
  241 + notspeak.setEnd_time(CommonUtils.getAddTime(time));
  242 + notspeak.setUpdated_at(CommonUtils.getCurrentTime());
  243 + notspeak.setMsg(notspeak.getMsg()+"\n"+msg);
  244 + notspeak.setCount(notspeak.getCount()+1);
  245 + notspeak.setUpdater("");
  246 + notspeak.setAuditor(userId);
  247 + result=updateshyNotspeak(notspeak);
  248 + }else{
  249 + shyNotspeak.setUser_name(comment.getComment_user_name());
  250 + shyNotspeak.setUser_id(comment.getComment_user_id());
  251 + shyNotspeak.setUser_avatar(comment.getComment_user_avatar());
  252 + shyNotspeak.setSp_id(comment.getSpid());
  253 + shyNotspeak.setState(CommonConst.SPEAK_NOT);
  254 + shyNotspeak.setStart_time(CommonUtils.getCurrentTime());
  255 + shyNotspeak.setTime(time);
  256 + shyNotspeak.setEnd_time(CommonUtils.getAddTime(time));
  257 + shyNotspeak.setCreated_at(CommonUtils.getCurrentTime());
  258 + shyNotspeak.setUpdated_at(CommonUtils.getCurrentTime());
  259 + shyNotspeak.setMsg(msg);
  260 + shyNotspeak.setCount(1);
  261 + shyNotspeak.setUpdater("");
  262 + shyNotspeak.setAuditor(userId);
  263 + result=impotshyNotspeak(shyNotspeak);
  264 +
  265 + }
  266 + return result;
  267 + }
  268 +
  269 + public PageInfo<ShyNotspeak> getPage( String user_name, Integer user_id,Integer state,
  270 + Integer page, Integer pageSize, String orderByClause) {
  271 + Example example = new Example(ShyNotspeak.class);
  272 + Example.Criteria criteria = example.createCriteria();
  273 + if (CommonUtils.isNotEmpty(orderByClause)) {
  274 + example.setOrderByClause(orderByClause);
  275 + } else {
  276 + example.setOrderByClause("state desc , updated_at desc");
  277 + }
  278 + if (CommonUtils.isNotEmpty(user_name)) {
  279 + criteria.andLike("user_name", "%" + user_name + "%");
  280 + }
  281 + if (CommonUtils.isNotNull(user_id)) {
  282 + criteria.andEqualTo("user_id", user_id);
  283 + }
  284 + if (CommonUtils.isNotNull(state)) {
  285 + criteria.andEqualTo("state", state);
  286 + }
  287 +
  288 + PageHelper.startPage(page, pageSize, true);
  289 + List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.selectByExample(example);
  290 + PageInfo<ShyNotspeak> pageInfo = new PageInfo<>(shyNotspeakList);
  291 + return pageInfo;
  292 + }
  293 +
  294 +
  295 + //**************************************
  296 + public ShyNotspeak selectByPrimaryKey(Integer id) {
  297 + ShyNotspeak shyNotspeak = shyNotspeakMapper.selectByPrimaryKey(id);
  298 + return shyNotspeak;
  299 + }
  300 +
  301 + public int updateByPrimaryKeySelective(ShyNotspeak shyNotspeak) {
  302 + return shyNotspeakMapper.updateByPrimaryKeySelective(shyNotspeak);
  303 + }
  304 +
  305 + public List<ShyNotspeak> getNotSpeakByTime() {
  306 + Example example = new Example(ShyNotspeak.class);
  307 + Example.Criteria criteria = example.createCriteria();
  308 + criteria.andEqualTo("state", CommonConst.SPEAK_NOT);
  309 + criteria.andLessThan("end_time", CommonUtils.getCurrentTime());
  310 +
  311 + List<ShyNotspeak> shyNotspeakList = shyNotspeakMapper.selectByExample(example);
  312 + return shyNotspeakList;
  313 + }
  314 +
  315 +
  316 +}
  317 +
  318 +
... ...
src/main/java/com/cnlive/shenhe/serviceImpl/TopicServiceImpl.java 0 → 100644
  1 +package com.cnlive.shenhe.serviceImpl;
  2 +
  3 +import com.alibaba.fastjson.JSONArray;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.cnlive.shenhe.entity.ShyComments;
  6 +import com.cnlive.shenhe.entity.ShyContent;
  7 +import com.cnlive.shenhe.entity.ShyLive;
  8 +import com.cnlive.shenhe.entity.ShySites;
  9 +import com.cnlive.shenhe.entity.ShyTopic;
  10 +import com.cnlive.shenhe.entity.ShyUsers;
  11 +import com.cnlive.shenhe.entity.ShyVideofilter;
  12 +import com.cnlive.shenhe.entity.ShyVideos;
  13 +import com.cnlive.shenhe.mapper.ShyCommentsMapper;
  14 +import com.cnlive.shenhe.mapper.ShyContentMapper;
  15 +import com.cnlive.shenhe.mapper.ShySitesMapper;
  16 +import com.cnlive.shenhe.mapper.ShyTopicMapper;
  17 +import com.cnlive.shenhe.mapper.ShyUsersMapper;
  18 +import com.cnlive.shenhe.utils.AntiFraudUtil;
  19 +import com.cnlive.shenhe.utils.AuditPass;
  20 +import com.cnlive.shenhe.utils.CommonConst;
  21 +import com.cnlive.shenhe.utils.CommonUtils;
  22 +import com.cnlive.shenhe.utils.TransitServiceUtils;
  23 +import com.github.pagehelper.PageHelper;
  24 +import com.github.pagehelper.PageInfo;
  25 +import org.apache.ibatis.session.RowBounds;
  26 +import org.slf4j.Logger;
  27 +import org.slf4j.LoggerFactory;
  28 +import org.springframework.beans.factory.annotation.Autowired;
  29 +import org.springframework.beans.factory.annotation.Value;
  30 +import org.springframework.stereotype.Service;
  31 +import tk.mybatis.mapper.entity.Example;
  32 +
  33 +import java.sql.Timestamp;
  34 +import java.text.ParseException;
  35 +import java.util.ArrayList;
  36 +import java.util.Date;
  37 +import java.util.HashMap;
  38 +import java.util.List;
  39 +import java.util.Map;
  40 +import java.util.UUID;
  41 +
  42 +/**
  43 + * @Auther: liwei
  44 + * @Date: 2019/5/20 17:30
  45 + * @Description:
  46 + */
  47 +@Service
  48 +public class TopicServiceImpl {
  49 +
  50 + private static Logger logger = LoggerFactory.getLogger(TopicServiceImpl.class);
  51 + @Autowired
  52 + ShyCommentsMapper shyCommentsMapper;
  53 + @Autowired
  54 + ShyTopicMapper shyTopicMapper;
  55 + @Autowired
  56 + ShySitesMapper shySitesMapper;
  57 + @Autowired
  58 + ShyUsersMapper shyUsersMapper;
  59 + @Autowired
  60 + TransitServiceUtils transitServiceUtils;
  61 + @Autowired
  62 + SitesServiceImpl sitesService;
  63 + @Autowired
  64 + VideosServiceImpl videosService;
  65 + @Autowired
  66 + VideofilterServiceImpl videofilterServiceImpl;
  67 +
  68 + @Value("${spring.localhost.url}")
  69 + String localhost_url;
  70 +
  71 + public ShyTopic getShyTopic(ShyTopic shyTopic) {
  72 + List<ShyTopic> shyTopicList = shyTopicMapper.select(shyTopic);
  73 + if(CommonUtils.isNotNull(shyTopicList)&&shyTopicList.size()>0){
  74 + return shyTopicList.get(0);
  75 + }
  76 + return new ShyTopic();
  77 + }
  78 +
  79 + //**************************************
  80 + public List<ShyTopic> findshyTopic(ShyTopic shyTopic) {
  81 +
  82 + return shyTopicMapper.selectByRowBounds(shyTopic, new RowBounds(0, 100));
  83 + }
  84 +
  85 + //***************************
  86 + public boolean updateshyTopic(ShyTopic shyTopic) {
  87 + int result = shyTopicMapper.updateByPrimaryKey(shyTopic);
  88 + if (result == 0) {
  89 + return false;
  90 + }
  91 + return true;
  92 + }
  93 +
  94 + //***************************
  95 + public boolean impotshyTopic(ShyTopic shyTopic) {
  96 + int result = shyTopicMapper.insertSelective(shyTopic);
  97 + if (result == 0) {
  98 + return false;
  99 + }
  100 + return true;
  101 + }
  102 +
  103 + public int updateComment(Integer id, Integer state, String msg) {
  104 + ShyComments shyComments = shyCommentsMapper.selectByPrimaryKey(id);
  105 + shyComments.setState(state);
  106 + shyComments.setMsg(msg);
  107 + return shyCommentsMapper.updateByPrimaryKeySelective(shyComments);
  108 + }
  109 +
  110 + public PageInfo<ShyTopic> getPage( String title,String topic_tag,String topicId, Date start_date, Date end_date, Integer shenhe_status, String updater, Integer page, Integer pageSize, String orderByClause, Integer spid, String userId,Integer receive) {
  111 + Example example = new Example(ShyTopic.class);
  112 + Example.Criteria criteria = example.createCriteria();
  113 + if (CommonUtils.isNotEmpty(orderByClause)) {
  114 + example.setOrderByClause(orderByClause);
  115 + } else {
  116 + example.setOrderByClause("create_date desc");
  117 + }
  118 + if (CommonUtils.isNotNull(start_date) ) {
  119 + criteria.andGreaterThanOrEqualTo("create_date", start_date);
  120 + }
  121 + if ( CommonUtils.isNotNull(end_date)) {
  122 + criteria.andLessThanOrEqualTo("create_date", end_date);
  123 + }
  124 + if (CommonUtils.isNotEmpty(title)) {
  125 + criteria.andLike("title", "%" + title + "%");
  126 + }
  127 + if (CommonUtils.isNotEmpty(updater)) {
  128 + criteria.andEqualTo("updater", updater);
  129 + }
  130 + if (CommonUtils.isNotEmpty(topic_tag)) {
  131 + criteria.andEqualTo("topic_tag", topic_tag);
  132 + }
  133 + if (CommonUtils.isNotNull(spid)) {
  134 + criteria.andEqualTo("sp_id", spid);
  135 + }
  136 + if (CommonUtils.isNotEmpty(topicId)) {
  137 + criteria.andEqualTo("topic_id", topicId);
  138 + }
  139 + if (CommonUtils.isNotNull(receive)&&receive==CommonConst.RECEIVE_AFTER) {
  140 + criteria.andEqualTo("auditor_id", userId);
  141 + }
  142 + if (CommonUtils.isNotNull(shenhe_status) && shenhe_status != 3) {//不是 我的已审 进来的,只查一种状态
  143 + criteria.andEqualTo("shenhe_status", shenhe_status);
  144 + } else if (CommonUtils.isNotNull(shenhe_status) && shenhe_status == 3) {//是 我的已审,查通过和拒绝的两种状态
  145 + Example.Criteria criteria1 = example.createCriteria();
  146 + criteria1.orEqualTo("shenhe_status", 1);
  147 + criteria1.orEqualTo("shenhe_status", 2);
  148 + example.and(criteria1);
  149 + }
  150 +
  151 + PageHelper.startPage(page, pageSize, true);
  152 + List<ShyTopic> topicList = shyTopicMapper.selectByExample(example);
  153 + PageInfo<ShyTopic> pageInfo = new PageInfo<>(topicList);
  154 + return pageInfo;
  155 + }
  156 +
  157 + /**
  158 + * 根据条件导出数据excel
  159 + * @return
  160 + */
  161 + public List<ShyTopic> findByCondition(String title,String content_tag,String contentId, Date start_date,
  162 + Date end_date,Integer receive_status, Integer page,
  163 + Integer pageSize, String orderByClause, Integer spid) {
  164 +
  165 + Example example = new Example(ShyContent.class);
  166 + Example.Criteria criteria = example.createCriteria();
  167 + if (CommonUtils.isNotEmpty(orderByClause)) {
  168 + example.setOrderByClause(orderByClause);
  169 + } else {
  170 + example.setOrderByClause("create_date desc");
  171 + }
  172 + if (CommonUtils.isNotNull(start_date) ) {
  173 + criteria.andGreaterThanOrEqualTo("create_date", start_date);
  174 + }
  175 + if ( CommonUtils.isNotNull(end_date)) {
  176 + criteria.andLessThanOrEqualTo("create_date", end_date);
  177 + }
  178 + if (CommonUtils.isNotEmpty(title)) {
  179 + criteria.andLike("title", "%" + title + "%");
  180 + }
  181 + if (CommonUtils.isNotNull(spid)) {
  182 + criteria.andEqualTo("sp_id", spid);
  183 + }
  184 + if (CommonUtils.isNotEmpty(contentId)) {
  185 + criteria.andEqualTo("content_id", contentId);
  186 + }
  187 + if (CommonUtils.isNotEmpty(content_tag)) {
  188 + criteria.andEqualTo("content_tag", content_tag);
  189 + }
  190 + if (CommonUtils.isNotNull(receive_status)) {
  191 + criteria.andEqualTo("receive_status", receive_status);
  192 + }
  193 + List<ShyTopic> shyContentList = shyTopicMapper.selectByExample(example);
  194 + return shyContentList;
  195 + }
  196 +
  197 +
  198 +
  199 +
  200 + //**********************
  201 + public boolean callback(String id, String msg, Integer state, String userId,String updater) {
  202 + boolean success = true;
  203 + ShyTopic topic = shyTopicMapper.selectByPrimaryKey(Integer.parseInt(id));
  204 + JSONObject params = new JSONObject();
  205 + params.put("topic_id", topic.getTopic_id());
  206 + params.put("status", state+1);
  207 + params.put("msg", msg);
  208 + success = transitServiceUtils.send("cms","updateTopicStatus", true, params);
  209 + if(!success){
  210 + logger.error("话题审核回调失败,话题表id:{}", topic.getId());
  211 + return success;
  212 + }
  213 +
  214 + topic.setShenhe_status(state);// 设置话题状态为审核后的状态
  215 + topic.setShenhe_msg(msg);// 设置审核消息
  216 + if (CommonUtils.isNotEmpty(userId)) {
  217 + topic.setAuditor_id(userId);
  218 + topic.setShenhe_type(CommonConst.AUDIT_TYPE_USER);// 设置审核类型为人工
  219 + }else{
  220 + topic.setUpdater(updater);//设置更新人
  221 + }
  222 + topic.setUpdate_date(CommonUtils.getCurrentTime());
  223 + int i = shyTopicMapper.updateByPrimaryKeySelective(topic);
  224 + if (i != 1) {
  225 + success = false;
  226 + }
  227 +
  228 + return success;
  229 + }
  230 +
  231 +
  232 + //**************************************
  233 + public ShyTopic selectByPrimaryKey(Integer id) {
  234 + ShyTopic shyTopic = shyTopicMapper.selectByPrimaryKey(id);
  235 + return shyTopic;
  236 + }
  237 +
  238 + public int updateByPrimaryKeySelective(ShyTopic topic) {
  239 + return shyTopicMapper.updateByPrimaryKeySelective(topic);
  240 + }
  241 +
  242 + /**
  243 + * 获得审核类型
  244 + * @param spId
  245 + */
  246 + public Integer getShenheType(Integer spId){
  247 +
  248 + //获取图文免审sp
  249 + List<Integer> sites = sitesService.getBusinessList(CommonConst.BUSINESS_TOPIC);
  250 + //初始化一个审核状态
  251 + Integer shenheType=3;//审核类型,1:免审,2:机审,3:人工审
  252 + //如果当前sp是免审sp
  253 + if(sites.contains(spId)){
  254 + shenheType=1;//免审
  255 + }else{
  256 + shenheType=3;//人工审
  257 + }
  258 + return shenheType;
  259 + }
  260 +
  261 +
  262 +
  263 +}
  264 +
  265 +
... ...
src/main/java/com/cnlive/shenhe/utils/AuditPass.java
... ... @@ -31,6 +31,19 @@ public class AuditPass {
31 31  
32 32 @Value("${queryUserByUserId}")
33 33 private String queryUserByUserId;//用户云查网家家用户信息(通过用户id)
  34 +
  35 + public static void main(String[] args) {
  36 + JSONObject map= new JSONObject();
  37 + map.put("platform","a" );
  38 + map.put("commentUserAvatar","http://yweb0.cnliveimg.com/images/headImg/2019/1129/1575022593286.jpg" );
  39 + map.put("appId","60#iqw7flx829" );
  40 + map.put("commentUserIP", null);
  41 + map.put("type", "topic");
  42 + map.put("activityId", "802:video:comets:604_ab79303bd0074a24965a92dd6514681a#20939");
  43 + HttpUtil httpUtil = HttpUtil.init();
  44 + httpUtil.setParam("param", map.toJSONString());
  45 + Map<String, String> post = httpUtil.post("http://test.shen.cnlive.com/api/comments/import");
  46 + }
34 47  
35 48 /**
36 49 * 点播视频回调
... ... @@ -135,6 +148,19 @@ public class AuditPass {
135 148 String result = HttpUtil.form(callBack, map);
136 149 return JSONObject.parseObject(result);
137 150 }
  151 + /**
  152 + * 评论禁言
  153 + * @param json
  154 + * @param callBack
  155 + * @return
  156 + */
  157 + public JSONObject commentSpeak(JSONObject json, String callBack) {
  158 + logger.info("评论禁言:param:{}", json);
  159 + Map<String, String> map = new HashMap<>();
  160 + map.put("param", json.toJSONString());
  161 + String result = HttpUtil.form(callBack, map);
  162 + return JSONObject.parseObject(result);
  163 + }
138 164  
139 165 /**
140 166 * 频道审核回调
... ...
src/main/java/com/cnlive/shenhe/utils/CommonConst.java
... ... @@ -34,6 +34,14 @@ public class CommonConst {
34 34 * 审核类型:人工审
35 35 */
36 36 public static Integer AUDIT_TYPE_USER = 3;
  37 + /**
  38 + * 禁言状态:禁言
  39 + */
  40 + public static Integer SPEAK_NOT = 1;
  41 + /**
  42 + * 禁言状态:解禁
  43 + */
  44 + public static Integer SPEAK_YES = 0;
37 45  
38 46 /**
39 47 * 审核状态:白名单通过回调失败
... ... @@ -100,9 +108,13 @@ public class CommonConst {
100 108 * 白名单业务:直播申请
101 109 */
102 110 public static Integer BUSINESS_LIVEAPPLY = 5;
  111 + /**
  112 + * 白名单业务:话题申请
  113 + */
  114 + public static Integer BUSINESS_TOPIC = 6;
103 115  
104 116 //白名单设置
105   - public static JSONObject BUSINESS = JSONObject.parseObject("{\"1\":\"点播业务\",\"2\":\"评论业务\",\"3\":\"图文业务\",\"4\":\"频道业务\",\"5\":\"直播申请业务\"}");
  117 + public static JSONObject BUSINESS = JSONObject.parseObject("{\"1\":\"点播业务\",\"2\":\"评论业务\",\"3\":\"图文业务\",\"4\":\"频道业务\",\"5\":\"直播申请业务\",\"6\":\"话题业务\"}");
106 118  
107 119 /**
108 120 * 弹窗消息:频道
... ... @@ -171,9 +183,13 @@ public class CommonConst {
171 183 * 栏目分类,航空节
172 184 */
173 185 public static String CATEGORY_AVIATION = "aviation";
  186 + /**
  187 + * 栏目分类,话题
  188 + */
  189 + public static String CATEGORY_TOPIC = "topic";
174 190  
175 191  
176   - public static JSONObject CATEGORY = JSONObject.parseObject("{\"witness\":\"目击者\",\"moment\":\"朋友圈\",\"sub\":\"达人\",\"snow\":\"上冰雪\",\"aviation\":\"航空节\"}");
  192 + public static JSONObject CATEGORY = JSONObject.parseObject("{\"witness\":\"目击者\",\"moment\":\"朋友圈\",\"sub\":\"达人\",\"snow\":\"上冰雪\",\"aviation\":\"航空节\",\"topic\":\"话题\"}");
177 193 /**
178 194 * 数美过滤器尺度状态:用户
179 195 */
... ...
src/main/java/com/cnlive/shenhe/utils/CommonUtils.java
... ... @@ -42,6 +42,10 @@ public class CommonUtils {
42 42 public static Timestamp getCurrentTime() {
43 43 return new Timestamp(new Date().getTime());
44 44 }
  45 + //获取当前时间加上一个时间(分钟算)
  46 + public static Timestamp getAddTime(Integer addTime) {
  47 + return new Timestamp(new Date().getTime()+addTime*60*1000);
  48 + }
45 49  
46 50 public static String getRandowUUID() {
47 51 UUID uuid = UUID.randomUUID();
... ...
src/main/java/com/cnlive/shenhe/utils/TransitServiceUtils.java 0 → 100644
  1 +package com.cnlive.shenhe.utils;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +
  5 +import org.springframework.amqp.core.AmqpTemplate;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +@Component
  10 +public class TransitServiceUtils {
  11 +
  12 + @Autowired
  13 + private AmqpTemplate rabbitTemplate;
  14 + private String exchange = "transitService";//交换机
  15 + private String routingKey = "audit";//路由
  16 +
  17 + /**
  18 + * MQ 生产者工具类
  19 + *
  20 + * @param calleeId 接收方 mall 电商 user 用户 daren 达人 cms cms 审核 audit
  21 + * @param cmdId 调用URL_ID
  22 + * @param isCallback 0需要回调 1不需要回调
  23 + * @param data 接口参数
  24 + */
  25 + public boolean send(String calleeId, String cmdId, Boolean isCallback, JSONObject data) {
  26 + boolean result=true;
  27 + try{
  28 + JSONObject json = new JSONObject();
  29 + json.put("callerId", "audit");
  30 + json.put("calleeId", calleeId);//
  31 + json.put("cmdId", cmdId);
  32 + if (isCallback) {
  33 + json.put("isCallback", "0");
  34 + } else {
  35 + json.put("isCallback", "1");
  36 + }
  37 + json.put("data", data);
  38 + this.rabbitTemplate.convertAndSend(exchange, routingKey, json.toString());
  39 + }
  40 + catch(Exception e){
  41 + result=false;
  42 + }
  43 + return result;
  44 + }
  45 +
  46 + public static void main(String[] args) {
  47 + JSONObject params = new JSONObject();
  48 + params.put("video_id", "11111");
  49 + params.put("state", "22222");
  50 + params.put("attr_tags", "33333");
  51 + params.put("msg", "4444");
  52 +// send("cms","/api/callback",true,params);
  53 + System.exit(0);
  54 + }
  55 +}
... ...
src/main/resources/application.properties
... ... @@ -39,6 +39,28 @@ mybatis.mapper-locations=classpath:mapping/*.xml
39 39 mybatis.type-aliases-package=com.cnlive.shenhe.entity
40 40 server.port=81
41 41  
  42 +#rabbitmq\u76f8\u5173\u914d\u7f6e
  43 +spring.rabbitmq.host=120.92.4.80
  44 +spring.rabbitmq.port=5672
  45 +spring.rabbitmq.username=test
  46 +spring.rabbitmq.password=password
  47 +# \u5f00\u542f\u53d1\u9001\u786e\u8ba4
  48 +spring.rabbitmq.publisher-confirms=true
  49 +# \u5f00\u542f\u53d1\u9001\u5931\u8d25\u9000\u56de
  50 +spring.rabbitmq.publisher-returns=true
  51 +# \u5f00\u542fACK
  52 +spring.rabbitmq.listener.direct.acknowledge-mode=manual
  53 +spring.rabbitmq.listener.simple.acknowledge-mode=manual
  54 +
  55 +#\u8bdd\u9898\u8bc4\u8bba\u5206\u4eabh5
  56 +topic_comment_shareH5=http://www.baidu.com?id=
  57 +
  58 +#\u5173\u95edspringboot\u63d0\u4f9b\u7684\u9ed8\u8ba4ico
  59 +spring.mvc.favicon.enabled = false
  60 +
  61 +#\u8bc4\u8bba\u7981\u8a00\u548c\u89e3\u7981\u4f7f\u7528API
  62 +speak_comment=http://comment.cnlive.com/services/commentForTopic/muted
  63 +
42 64 #logback\u65e5\u5fd7\u4e2d\u4f7f\u7528
43 65 spring.application.name=cnlive_shenhe
44 66 spring.application.home=/usr/local/cnlive_shenhe/log
... ...
src/main/resources/mapper/ShyCommentsMapper.xml
... ... @@ -13,6 +13,8 @@
13 13 <result column="platform" jdbcType="VARCHAR" property="platform" />
14 14 <result column="comment_title" jdbcType="VARCHAR" property="comment_title" />
15 15 <result column="comment_time" jdbcType="TIMESTAMP" property="comment_time" />
  16 + <result column="type" jdbcType="VARCHAR" property="type" />
  17 + <result column="level" jdbcType="INTEGER" property="level" />
16 18 <result column="spid" jdbcType="INTEGER" property="spid" />
17 19 <result column="app_id" jdbcType="VARCHAR" property="app_id" />
18 20 <result column="comment_original_url" jdbcType="VARCHAR" property="comment_original_url" />
... ...
src/main/resources/mapper/ShyNotspeakMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.cnlive.shenhe.mapper.ShyNotspeakMapper">
  4 + <resultMap id="BaseResultMap" type="com.cnlive.shenhe.entity.ShyNotspeak">
  5 + <!--
  6 + WARNING - @mbg.generated
  7 + -->
  8 + <id column="id" jdbcType="INTEGER" property="id" />
  9 + <result column="user_name" jdbcType="VARCHAR" property="user_name" />
  10 + <result column="user_id" jdbcType="INTEGER" property="user_id" />
  11 + <result column="user_avatar" jdbcType="VARCHAR" property="user_avatar" />
  12 + <result column="sp_id" jdbcType="INTEGER" property="sp_id" />
  13 + <result column="state" jdbcType="INTEGER" property="state" />
  14 + <result column="start_time" jdbcType="TIMESTAMP" property="start_time" />
  15 + <result column="time" jdbcType="INTEGER" property="time" />
  16 + <result column="end_time" jdbcType="TIMESTAMP" property="end_time" />
  17 + <result column="count" jdbcType="INTEGER" property="count" />
  18 + <result column="created_at" jdbcType="TIMESTAMP" property="created_at" />
  19 + <result column="updated_at" jdbcType="TIMESTAMP" property="updated_at" />
  20 + <result column="updater" jdbcType="VARCHAR" property="updater" />
  21 + <result column="auditor" jdbcType="VARCHAR" property="auditor" />
  22 + <result column="msg" jdbcType="LONGVARCHAR" property="msg" />
  23 + </resultMap>
  24 +</mapper>
0 25 \ No newline at end of file
... ...
src/main/resources/mapper/ShyTopicMapper.xml 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3 +<mapper namespace="com.cnlive.shenhe.mapper.ShyTopicMapper">
  4 + <resultMap id="BaseResultMap" type="com.cnlive.shenhe.entity.ShyTopic">
  5 + <!--
  6 + WARNING - @mbg.generated
  7 + -->
  8 + <id column="id" jdbcType="INTEGER" property="id" />
  9 + <result column="topic_id" jdbcType="VARCHAR" property="topic_id" />
  10 + <result column="sp_id" jdbcType="INTEGER" property="sp_id" />
  11 + <result column="topic_image" jdbcType="VARCHAR" property="topic_image" />
  12 + <result column="topic_tag" jdbcType="VARCHAR" property="topic_tag" />
  13 + <result column="topic_url" jdbcType="VARCHAR" property="topic_url" />
  14 + <result column="topic_time" jdbcType="VARCHAR" property="topic_time" />
  15 + <result column="shenhe_type" jdbcType="INTEGER" property="shenhe_type" />
  16 + <result column="shenhe_status" jdbcType="INTEGER" property="shenhe_status" />
  17 + <result column="create_date" jdbcType="TIMESTAMP" property="create_date" />
  18 + <result column="update_date" jdbcType="TIMESTAMP" property="update_date" />
  19 + <result column="auditor_id" jdbcType="VARCHAR" property="auditor_id" />
  20 + <result column="updater" jdbcType="VARCHAR" property="updater" />
  21 + <result column="shenhe_msg" jdbcType="VARCHAR" property="shenhe_msg" />
  22 + <result column="title" jdbcType="LONGVARCHAR" property="title" />
  23 + <result column="topic_text" jdbcType="LONGVARCHAR" property="topic_text" />
  24 + </resultMap>
  25 +</mapper>
0 26 \ No newline at end of file
... ...
src/main/resources/static/favicon.ico 0 → 100644
No preview for this file type
src/main/resources/templates/common/frame.html
... ... @@ -78,6 +78,7 @@ line-height: 2em; margin: 0 auto;font-size: 2em&quot; th:text=&quot;${session.sessionUser.
78 78 <li><a href="/live/page?shenhe_state=0" id="/live/page"> 直播审核</a></li>
79 79 <li><a href="/comments/page?state=0&receive=0" id="/comments/page"> 评论审核</a></li>
80 80 <li><a href="/content/page?receive_status=0" id="/content/page"> 图文审核</a></li>
  81 + <li><a href="/topic/page?shenhe_status=0&receive=0" id="/topic/page"> 话题审核</a></li>
81 82 <li><a href="/channel/page?shenhe_status=0&receive=0" id="/channel/page"> 频道审核</a></li>
82 83 <li><a href="/liveApply/page?shenhe_state=0&receive=0" id="/liveApply/page">直播申请审核</a></li>
83 84 </ul>
... ... @@ -90,8 +91,9 @@ line-height: 2em; margin: 0 auto;font-size: 2em&quot; th:text=&quot;${session.sessionUser.
90 91 <ul class="treeview-menu">
91 92 <li><a href="/users/page" id="/users/page"> 审核云用户管理</a></li>
92 93 <li><a href="/sites/page" id="/sites/page"> SP白名单管理</a></li>
93   - <li><a href="/usersFree/page" id="/usersFree/page"> 网++白名单管理</a></li>
94 94 <li><a href="/email/page" id="/email/page"> 邮件消息管理</a></li>
  95 + <li><a href="/usersFree/page" id="/usersFree/page"> 网++白名单管理</a></li>
  96 + <li><a href="/notSpeak/page" id="/notSpeak/page"> 网++禁言管理</a></li>
95 97 </ul>
96 98 </li>
97 99 </ul>
... ...
src/main/resources/templates/common/head.html
... ... @@ -14,7 +14,8 @@
14 14  
15 15 <!--JQuery-->
16 16 <script src="../../static/js/jquery.min.js"></script>
17   -
  17 +<!-- <link rel="icon" href="http://app.shineup.com.cn/goldenline/play_sel.png" type="image/x-icon"> -->
  18 + <link rel="icon" href="/static/favicon.ico" type="image/x-icon">
18 19 <!--Bootstrap-->
19 20 <link href="../../static/css/bootstrap.min.css" rel="stylesheet">
20 21 <script src="../../static/js/bootstrap.min.js"></script>
... ...
src/main/resources/templates/error.html
1 1 <!DOCTYPE html>
2   -<html>
3   -<head>
4   - <title>审核云平台</title>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
5 3  
6   - <style>
7   - html, body {
8   - height: 100%;
9   - }
10   -
11   - body {
12   - margin: 0;
13   - padding: 0;
14   - width: 100%;
15   - display: table;
16   - font-weight: 100;
17   - font-family: 'Lato', sans-serif;
18   - }
19   -
20   - .container {
21   - text-align: center;
22   - display: table-cell;
23   - vertical-align: middle;
24   - }
  4 +<head th:replace="../templates/common/head::head">
  5 +</head>
25 6  
26   - .content {
27   - text-align: center;
28   - display: inline-block;
29   - }
  7 +<body class="skin-blue sidebar-mini">
30 8  
31   - .title {
32   - font-size: 40px;
33   - }
34   - </style>
35   -</head>
36   -<body>
37   -<div class="container">
38   - <div class="content">
39   - <div class="title">出错了,请稍后再试!</div>
  9 +<div class="wrapper">
  10 + <div th:replace="../templates/common/frame::frame"></div>
  11 + <div class="content-wrapper" style="min-height: 588px;">
  12 + <section class="content-header">
  13 + <h1>
  14 + 报错页面
  15 + </h1>
  16 + <ol class="breadcrumb">
  17 + <li>首页</li>
  18 + <li class="active">报错页面</li>
  19 + </ol>
  20 + </section>
  21 + <section class="content">
  22 + <div class="row">
  23 + <div class="col-md-12">
  24 + <div class="box box-info">
  25 + <div class="box-body">
  26 + <div class="container" style="background-color:#FFF;padding:150px;text-align: center; display: table-cell; vertical-align: middle;">
  27 + <div class="content" style="text-align: center;display: inline-block;">
  28 + <div style="font-size: 40px;" th:utext="${errorMessage}">出错了,请稍后再试!</div>
  29 + <br>
  30 + <div style="font-size: 20px;color:red;" th:utext="${remindMessage}">出错了,请稍后再试!</div>
  31 + </div>
  32 + </div>
  33 +
  34 + </div>
  35 + </div>
  36 + </div>
  37 + </div>
  38 + </section>
40 39 </div>
41   -</div>
42   -</body>
43   -</html>
  40 + <footer th:replace="../templates/common/foot::foot"></footer>
  41 + <!-- Add the sidebar's background. This div must be placed
  42 + immediately after the control sidebar -->
  43 + <div class="control-sidebar-bg" style="position: fixed; height: auto;"></div>
  44 +</div><!-- ./wrapper -->
  45 +<!-- AdminLTE App -->
  46 +<script src="../../static/js/app.min.js"></script>
  47 +<!-- AdminLTE for demo purposes -->
  48 +<script src="../../static/js/sidebar.js"></script>
44 49  
  50 +</body>
  51 +</html>
45 52 \ No newline at end of file
... ...
src/main/resources/templates/error3.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +<head>
  4 + <title>审核云平台</title>
  5 +
  6 + <style>
  7 + html, body {
  8 + height: 100%;
  9 + }
  10 +
  11 + body {
  12 + margin: 0;
  13 + padding: 0;
  14 + width: 100%;
  15 + display: table;
  16 + font-weight: 100;
  17 + font-family: 'Lato', sans-serif;
  18 + }
  19 +
  20 + .container {
  21 + text-align: center;
  22 + display: table-cell;
  23 + vertical-align: middle;
  24 + }
  25 +
  26 + .content {
  27 + text-align: center;
  28 + display: inline-block;
  29 + }
  30 +
  31 + .title {
  32 + font-size: 40px;
  33 + }
  34 + .remind {
  35 + font-size: 20px;
  36 + }
  37 + </style>
  38 +</head>
  39 +<body>
  40 +<div class="container">
  41 + <div class="content">
  42 + <div class="title" th:utext="${errorMessage}">出错了,请稍后再试!</div>
  43 + <br>
  44 + <div class="remind" th:utext="${remindMessage}">出错了,请稍后再试!</div>
  45 + </div>
  46 +</div>
  47 +</body>
  48 +</html>
  49 +
... ...
src/main/resources/templates/page/comment.html
... ... @@ -193,7 +193,12 @@
193 193 </th>
194 194 <th style="text-align: center; width: 6%; " data-field="comment_user_ip"
195 195 tabindex="0">
196   - <div class="th-inner ">用户IP</div>
  196 + <div class="th-inner ">评论类型</div>
  197 + <div class="fht-cell"></div>
  198 + </th>
  199 + <th style="text-align: center; width: 4%; " data-field="is_hot_name"
  200 + tabindex="0">
  201 + <div class="th-inner ">层级</div>
197 202 <div class="fht-cell"></div>
198 203 </th>
199 204 <th style="text-align: center; width: 22%; " data-field="content"
... ... @@ -214,11 +219,6 @@
214 219 <div class="fht-cell"></div>
215 220 </th>
216 221  
217   - <th style="text-align: center; width: 4%; " data-field="is_hot_name"
218   - tabindex="0">
219   - <div class="th-inner ">热点</div>
220   - <div class="fht-cell"></div>
221   - </th>
222 222 <th style="text-align: center; width: 5%; "
223 223 data-field="state_name_short" tabindex="0">
224 224 <div class="th-inner ">状态
... ... @@ -256,7 +256,10 @@
256 256 alt="用户头像"></div>
257 257 </td>
258 258 <td style="text-align: center; width: 6%;"
259   - th:text="${comment.comment_user_ip}">114.242.177.100
  259 + th:text="${comment.type}">114.242.177.100
  260 + </td>
  261 + <td style="text-align: center; width: 4%;"
  262 + th:text="${comment.level}">1级
260 263 </td>
261 264 <td style="text-align: center; width: 22%;"><a
262 265 th:title="${comment.comment_content}"
... ... @@ -279,9 +282,6 @@
279 282 <td style="text-align: center; width: 4%;" th:if="${comment.is_hot==2}">
280 283
281 284 </td>
282   - <td style="text-align: center; width: 4%;"
283   - th:if="${comment.is_hot!=2&&comment.is_hot!=1}">全部
284   - </td>
285 285 <td style="text-align: center; width: 5%;">
286 286 <span class="btn btn-sm btn-warning"
287 287 th:if="${comment.state==0}">待审</span>
... ... @@ -296,7 +296,8 @@
296 296 2018-11-28 16:08:00
297 297 </td>
298 298 <td style="text-align: center; width: 22%;">
299   - <a class="detail" th:href="@{'/comments/details/'+${comment.id}}">
  299 + <a th:if="${comment.receive==1 and session.sessionUser.userId==comment.receive_user_id}"
  300 + class="detail" th:href="@{'/comments/details/'+${comment.id}}">
300 301 <button class="btn btn-info btn-sm">查看</button>
301 302 </a>
302 303  
... ... @@ -311,6 +312,9 @@
311 312 th:if="${comment.state==0 and comment.receive==1 and session.sessionUser.userId==comment.receive_user_id}">
312 313 <button class="btn btn-warning btn-sm">退领</button>
313 314 </a>
  315 + <a th:href="@{'javascript:speakModal('+${comment.id}+',\''+${comment.comment_user_name}+'\',\''+${comment.spid_desc}+'\')'}">
  316 + <button class="btn btn-danger btn-sm">禁言</button>
  317 + </a>
314 318  
315 319 <!-- <span th:if="${comment.receive and session.sessionUser.userId==comment.receive_user_id}"> &nbsp;</span> -->
316 320 <!-- <a class="pass_one" -->
... ... @@ -398,7 +402,7 @@
398 402 </section><!-- /.content -->
399 403 </div>
400 404 <!-- /.content-wrapper -->
401   - <!-- 模态框(Modal) -->
  405 + <!-- 模态框,拒绝框(Modal) -->
402 406 <div class="modal fade" id="msgModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
403 407 <div class="modal-dialog">
404 408 <div class="modal-content" style="margin-top: 30%;">
... ... @@ -421,6 +425,48 @@
421 425 </div><!-- /.modal-dialog -->
422 426 </div>
423 427 <!-- /.modal -->
  428 + <!-- 模态框,禁言框(Modal) -->
  429 +<div class="modal fade" id="speakModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  430 + <div class="modal-dialog">
  431 + <div class="modal-content" style="margin-top: 30%;">
  432 + <div class="modal-header">
  433 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  434 + <h4 class="modal-title" id="myModalLabel">禁言选项</h4>
  435 + </div>
  436 + <div class="modal-body">
  437 + <input type="text" name="comments_id" value="" class="hide" id="comments_id"/>
  438 + <div class="form-group">
  439 + <label class="control-label col-sm-3" style="font-size: 15px;" >用户昵称:</label>
  440 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  441 + <input class="form-control" readonly="readonly" style="width:40%;" type="text" value="" id="userName" name="userName">
  442 + </div>
  443 + </div>
  444 + <div class="form-group">
  445 + <label class="control-label col-sm-3" style="font-size: 15px;">发言平台:</label>
  446 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  447 + <input class="form-control" readonly="readonly" style="width:40%;" type="text" value="" id="sp_desc" name="sp_desc">
  448 + </div>
  449 + </div>
  450 + <div class="form-group">
  451 + <label class="control-label col-sm-3" style="font-size: 15px;">禁言时长:</label>
  452 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  453 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_days" name="noSpeak_days">
  454 + <span>&nbsp;&nbsp;天&nbsp;&nbsp;</span>
  455 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_hours" name="noSpeak_hours">
  456 + <span>&nbsp;&nbsp;时&nbsp;&nbsp;</span>
  457 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_minutes" name="noSpeak_minutes">
  458 + <span>&nbsp;&nbsp;分&nbsp;&nbsp;</span>
  459 + </div>
  460 + </div>
  461 + </div>
  462 + <div class="modal-footer">
  463 + <button type="button" class="btn btn-primary" onclick="javascript:submitSpeak();">提交</button>
  464 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  465 + </div>
  466 + </div><!-- /.modal-content -->
  467 + </div><!-- /.modal-dialog -->
  468 +</div>
  469 +<!-- /.modal -->
424 470 <script th:inline="javascript">
425 471 $(function () {
426 472 //按钮颜色设置
... ... @@ -750,6 +796,40 @@
750 796 alert("没有选中的数据!");
751 797 }
752 798 }
  799 + //禁言(弹窗)
  800 + function speakModal(comments_id,userName,sp_desc) {
  801 +
  802 + $.post("/notSpeak/querySpeakState?commentId=" + comments_id, function (data) {
  803 + if (data.errorCode != 0) {
  804 + alert(data.errorMessage);
  805 +// location.href = location.href;
  806 + } else {
  807 + $('#comments_id').val(comments_id);
  808 + $('#userName').val(userName);
  809 + $('#sp_desc').val(sp_desc);
  810 + $('#speakModal').modal('show');
  811 + }
  812 + })
  813 +
  814 + }
  815 +
  816 + //提交禁言
  817 + function submitSpeak() {
  818 + var comments_id = $("#comments_id").val();
  819 + var noSpeak_days = Number($("#noSpeak_days").val());
  820 + var noSpeak_hours = Number($("#noSpeak_hours").val());
  821 + var noSpeak_minutes = Number($("#noSpeak_minutes").val());
  822 + var time=noSpeak_days*24*60+noSpeak_hours*60+noSpeak_minutes;//单位为分钟
  823 +// alert(comments_id);
  824 + $.post("/notSpeak/notSpeakByComment?commentId=" + comments_id + "&time=" + time, function (data) {
  825 + if (data.errorCode == 0) {
  826 + alert(data.errorMessage);
  827 + location.href = location.href;
  828 + } else {
  829 + alert(data.errorMessage);
  830 + }
  831 + })
  832 + }
753 833 </script>
754 834 <script>
755 835 /*时间插件*/
... ...
src/main/resources/templates/page/error.html
... ... @@ -36,7 +36,7 @@
36 36 <body>
37 37 <div class="container">
38 38 <div class="content">
39   - <div class="title">抱歉!你没有审核云权限,请与视讯云用户中心管理员联系!</div>
  39 + <div class="title">抱歉!你没有审核云账户未激活,请与视讯云用户中心管理员联系!</div>
40 40 </div>
41 41 </div>
42 42 </body>
... ...
src/main/resources/templates/page/liveApply.html
... ... @@ -60,7 +60,6 @@
60 60 th:onclick="'javascript:quanbu()'" value="" id="quanbu">
61 61 全部
62 62 </button>
63   - </button>
64 63 <button type="button" class="btn btn-sm margin-r-5 filter " id="daishen"
65 64 th:onclick="'javascript:daishen()'" value="0">全部待领
66 65 </button>
... ... @@ -76,19 +75,19 @@
76 75 </button>
77 76 </div>
78 77 <div class="form-horizontal form-group-sm" id="forms" style="display: none;float: left;">
79   - <div class="btn-group margin-bottom col-md-6" style="padding: 0;width: 18%;float: left;">
  78 + <div class="btn-group margin-bottom col-md-6" style="padding: 0;width: 15%;float: left;">
80 79 <div class="col-md-6" style="padding: 0;width: 100%;">
81 80 <label for="liveApply_theme" class="control-label cb-toolbar">直播主题:</label>
82   - <div class="col-sm-8" style="padding: 0;">
  81 + <div class="col-sm-7" style="padding: 0;">
83 82 <input class="form-control" type="text" value="" id="liveApply_theme">
84 83 </div>
85 84 </div>
86 85 </div>
87 86  
88   - <div class="btn-group margin-bottom col-md-6" style="padding-left:10px;width: 13%;float: left;">
  87 + <div class="btn-group margin-bottom col-md-6" style="padding-left:0px;width: 13%;float: left;">
89 88 <div class="col-md-5" style="padding: 0;width: 100%;">
90 89 <label for="shenhe_state" class="control-label cb-toolbar">状态:</label>
91   - <div class="col-sm-8" style="padding: 0;">
  90 + <div class="col-sm-7" style="padding: 0;">
92 91 <select class="form-control" id="shenhe_state" name="shenhe_state">
93 92 <option value="">全部</option>
94 93 <option value="0">未审核</option>
... ... @@ -98,27 +97,35 @@
98 97 </div>
99 98 </div>
100 99 </div>
101   - <div class="btn-group margin-bottom col-md-6" style="padding-left: 10px;width: 13%;float: left;">
102   - <div class="col-md-5" style="padding: 0;width: 100%;">
103   - <label for="business_model" class="control-label cb-toolbar">模式:</label>
104   - <div class="col-sm-8" style="padding: 0;">
105   - <select class="form-control" id="business_model" name="business_model">
106   - <option value="">全部</option>
107   - <option value="0">免费</option>
108   - <option value="1">收费</option>
109   - </select>
110   - </div>
111   - </div>
  100 +<!-- <div class="btn-group margin-bottom col-md-6" style="padding-left: 10px;width: 13%;float: left;"> -->
  101 +<!-- <div class="col-md-5" style="padding: 0;width: 100%;"> -->
  102 +<!-- <label for="business_model" class="control-label cb-toolbar">模式:</label> -->
  103 +<!-- <div class="col-sm-8" style="padding: 0;"> -->
  104 +<!-- <select class="form-control" id="business_model" name="business_model"> -->
  105 +<!-- <option value="">全部</option> -->
  106 +<!-- <option value="0">免费</option> -->
  107 +<!-- <option value="1">收费</option> -->
  108 +<!-- </select> -->
  109 +<!-- </div> -->
  110 +<!-- </div> -->
  111 +<!-- </div> -->
  112 + <div class="btn-group margin-bottom col-md-6" style="padding-left: 0px;width: 15%;float: left;">
  113 + <div class="col-md-5" style="padding: 0;width: 100%;" >
  114 + <label for="business_model" class="control-label cb-toolbar">发起单位:</label>
  115 + <div class="col-sm-7" style="padding: 0;">
  116 + <input class="form-control" type="text" value="" id="business_model" name="business_model">
  117 + </div>
  118 + </div>
112 119 </div>
113   - <div class="btn-group margin-bottom col-md-6" style="padding-left: 10px;width: 18%;float: left;">
  120 + <div class="btn-group margin-bottom col-md-6" style="padding-left: 0px;width: 15%;float: left;">
114 121 <div class="col-md-6" style="padding: 0;width: 100%;" th:if="${session.sessionUser.spid==0}">
115 122 <label for="sp_desc" class="control-label cb-toolbar">sp简称:</label>
116   - <div class="col-sm-8" style="padding: 0;">
  123 + <div class="col-sm-7" style="padding: 0;">
117 124 <input class="form-control" type="text" value="" id="sp_desc">
118 125 </div>
119 126 </div>
120 127 </div>
121   - <div class="btn-group margin-bottom col-md-6" style="padding-left: 10px;width: 20%;float: left;">
  128 + <div class="btn-group margin-bottom col-md-6" style="padding-left: 0px;width: 20%;float: left;">
122 129 <div class="col-md-12" style="padding: 0;width: 100%;">
123 130 <label for="start_date" class="control-label cb-toolbar">预计时间:</label>
124 131 <div class="input-group col-md-8 date">
... ... @@ -191,22 +198,27 @@
191 198 <div class="th-inner ">sp简称</div>
192 199 <div class="fht-cell"></div>
193 200 </th>
194   - <th style="text-align: center; width: 20%; " data-field="video_title"
  201 + <th style="text-align: center; width: 18%; " data-field="video_title"
195 202 tabindex="0">
196 203 <div class="th-inner ">直播主题</div>
197 204 <div class="fht-cell"></div>
198 205 </th>
199   - <th style="text-align: center; width: 3%; " data-field="is_hot_name"
  206 + <th style="text-align: center; width: 6%; " data-field="sp_id_brief"
200 207 tabindex="0">
201   - <div class="th-inner ">商务模式</div>
  208 + <div class="th-inner ">发起单位</div>
202 209 <div class="fht-cell"></div>
203 210 </th>
  211 +<!-- <th style="text-align: center; width: 3%; " data-field="is_hot_name" -->
  212 +<!-- tabindex="0"> -->
  213 +<!-- <div class="th-inner ">商务模式</div> -->
  214 +<!-- <div class="fht-cell"></div> -->
  215 +<!-- </th> -->
204 216 <th style="text-align: center; width: 3%; " data-field="is_hot_name"
205 217 tabindex="0">
206 218 <div class="th-inner ">直播类型</div>
207 219 <div class="fht-cell"></div>
208 220 </th>
209   - <th style="text-align: center; width: 6%; " data-field="updater"
  221 + <th style="text-align: center; width: 3%; " data-field="updater"
210 222 tabindex="0">
211 223 <div class="th-inner ">审核员</div>
212 224 <div class="fht-cell"></div>
... ... @@ -221,7 +233,7 @@
221 233 <div class="th-inner ">审核类型</div>
222 234 <div class="fht-cell"></div>
223 235 </th>
224   - <th style="text-align: center; width: 5%; " data-field="state_name"
  236 + <th style="text-align: center; width: 3%; " data-field="state_name"
225 237 tabindex="0">
226 238 <div class="th-inner ">邮件通知</div>
227 239 <div class="fht-cell"></div>
... ... @@ -236,7 +248,7 @@
236 248 <div class="th-inner ">预计开播时间</div>
237 249 <div class="fht-cell"></div>
238 250 </th>
239   - <th style="text-align: center; width: 17%; " data-field="action"
  251 + <th style="text-align: center; width: 20%; " data-field="action"
240 252 tabindex="0">
241 253 <div class="th-inner ">操作</div>
242 254 <div class="fht-cell"></div>
... ... @@ -254,9 +266,10 @@
254 266 <span th:text="${liveApply.theme}">邓建国正面PK冯小刚</span>
255 267 </a>
256 268 </td>
257   - <td style="text-align: center; width: 3%;"
258   - th:text="${liveApply.business_model=='1'?'收费':'免费'}">收费
259   - </td>
  269 + <td style="text-align: center; width: 6%;" th:text="${liveApply.organization}"></td>
  270 +<!-- <td style="text-align: center; width: 3%;" -->
  271 +<!-- th:text="${liveApply.business_model=='1'?'收费':'免费'}">收费 -->
  272 +<!-- </td> -->
260 273 <td style="text-align: center; width: 3%;" th:text="${liveApply.live_type}">直播分类</td>
261 274 <td style="text-align: center; width: 6%;" th:text="${liveApply.updater}">审核员
262 275 </td>
... ...
src/main/resources/templates/page/notspeak.html 0 → 100644
  1 +<!DOCTYPE html>
  2 +<html lang="zh" xmlns:th="http://www.thymeleaf.org">
  3 +
  4 +<head th:replace="../templates/common/head::head"></head>
  5 +<style type="text/css">
  6 + .fixed-table-toolbar .bs-bars, .fixed-table-toolbar .columns, .fixed-table-toolbar .search{margin-top: 0px;}
  7 + .table{margin-bottom:0;}
  8 +
  9 +
  10 + .switch {
  11 + position: relative;
  12 + display: inline-block;
  13 + width: 60px;
  14 + height: 34px;
  15 +}
  16 +
  17 +.switch input {display:none;}
  18 +
  19 +.slider {
  20 + position: absolute;
  21 + cursor: pointer;
  22 + top: 0;
  23 + left: 0;
  24 + right: 0;
  25 + bottom: 0;
  26 + background-color: red;
  27 + -webkit-transition: .4s;
  28 + transition: .4s;
  29 +}
  30 +
  31 +.slider:before {
  32 + position: absolute;
  33 + content: "";
  34 + height: 26px;
  35 + width: 26px;
  36 + left: 4px;
  37 + bottom: 4px;
  38 + background-color: white;
  39 + -webkit-transition: .4s;
  40 + transition: .4s;
  41 +}
  42 +
  43 +input:checked + .slider {
  44 + background-color: #2196F3;
  45 +}
  46 +
  47 +input:focus + .slider {
  48 + box-shadow: 0 0 1px #2196F3;
  49 +}
  50 +
  51 +input:checked + .slider:before {
  52 + -webkit-transform: translateX(26px);
  53 + -ms-transform: translateX(26px);
  54 + transform: translateX(26px);
  55 +}
  56 +
  57 +/* Rounded sliders */
  58 +.slider.round {
  59 + border-radius: 34px;
  60 +}
  61 +
  62 +.slider.round:before {
  63 + border-radius: 50%;
  64 +}
  65 +
  66 +</style>
  67 +<body class="skin-blue sidebar-mini">
  68 +
  69 +<div class="wrapper">
  70 +
  71 + <div th:replace="../templates/common/frame::frame"></div>
  72 +
  73 + <div class="content-wrapper" style="min-height: 788px;">
  74 + <section class="content-header">
  75 + <h1>
  76 + 禁言管理
  77 + </h1>
  78 + <ol class="breadcrumb">
  79 + <li>首页</li>
  80 + <li>系统管理</li>
  81 + <li class="active">禁言管理</li>
  82 + </ol>
  83 + </section>
  84 + <section class="content">
  85 + <div class="row">
  86 + <div class="col-md-12">
  87 + <div class="box box-info">
  88 + <div class="box-body">
  89 + <div class="clearfix">
  90 + <div class="btn-group margin-bottom pull-right">
  91 + <div class="btn-group margin-bottom">
  92 + <button type="button" id="quanbu"
  93 + class="btn btn-sm margin-r-5 action_bottom"
  94 + th:onclick="'javascript:quanbu()'">全部
  95 + </button>
  96 + <button type="button" id="jinyan"
  97 + class="btn btn-sm margin-r-5 action_bottom"
  98 + >禁言中
  99 + </button>
  100 + <button type="button" id="jiejin"
  101 + class="btn btn-sm margin-r-5 action_bottom"
  102 + >已解禁
  103 + </button>
  104 +<!-- <button type="button" id="yishen" -->
  105 +<!-- class="btn btn-sm margin-r-5 action_bottom" -->
  106 +<!-- >我的已审 -->
  107 +<!-- </button> -->
  108 + </div>
  109 + <button type="button" class="btn btn-primary btn-sm margin-r-5" id="query"
  110 + onclick="openOrClose(&#39;forms&#39;)">高级查询
  111 + <span id="a_up">▼</span><span id="a_down" style="display: none;">▲</span>
  112 + </button>
  113 + </div>
  114 + </div>
  115 +
  116 +
  117 + <div class="form-horizontal form-group-sm" id="forms" style="display: none;">
  118 + <form id="commentForm">
  119 + <div class="btn-group margin-bottom col-md-6" style="padding: 0;">
  120 + <div class="col-md-5" style="padding: 0">
  121 + <label for="user_id" class="control-label cb-toolbar">用户id:</label>
  122 + <div class="col-sm-8" style="padding: 0;">
  123 + <input class="form-control" name="user_id" type="text"
  124 + id="user_id" >
  125 + </div>
  126 + </div>
  127 + <div class="col-md-5" style="padding: 0">
  128 + <label for="user_name" class="control-label cb-toolbar">用户昵称:</label>
  129 + <div class="col-sm-8" style="padding: 0;">
  130 + <input class="form-control" name="user_name" type="text" id="user_name" >
  131 + </div>
  132 + </div>
  133 +<!-- <div class="col-md-3" style="padding: 0"> -->
  134 +<!-- <label for="state" class="control-label cb-toolbar">状态:</label> -->
  135 +<!-- <div class="col-sm-6" style="padding: 0;"> -->
  136 +<!-- <select class="form-control col-sm-2" id="state" name="state"> -->
  137 +<!-- <option value="">全部</option> -->
  138 +<!-- <option value="0" >已解禁</option> -->
  139 +<!-- <option value="1" >禁言中</option> -->
  140 +<!-- </select> -->
  141 +<!-- </div> -->
  142 +<!-- </div> -->
  143 +
  144 + </div>
  145 +
  146 + </form>
  147 +
  148 + </div>
  149 +
  150 +
  151 + <div class="fixed-table-container" style="padding-bottom: 0px;">
  152 + <div class="fixed-table-body">
  153 + <table data-toggle="table" data-pagination="true" data-search="false" data-show-refresh="true"
  154 + data-show-toggle="true" data-show-columns="true" data-toolbar="#toolbar" class="table table-hover">
  155 + <thead>
  156 + <tr>
  157 + <th style="text-align: center; width: 3%;" data-field="sp_id" tabindex="0">
  158 + <div class="th-inner ">用户ID</div>
  159 + <div class="fht-cell"></div>
  160 + </th>
  161 + <th style="text-align: center; width: 10%;" data-field="sp_id_brief" tabindex="0">
  162 + <div class="th-inner ">用户昵称</div>
  163 + <div class="fht-cell"></div>
  164 + </th>
  165 + <th style="text-align: center; width: 5%;" data-field="type" tabindex="0">
  166 + <div class="th-inner ">用户头像</div>
  167 + <div class="fht-cell"></div>
  168 + </th>
  169 + <th style="text-align: center; width: 3%;" data-field="type" tabindex="0">
  170 + <div class="th-inner ">使用平台</div>
  171 + <div class="fht-cell"></div>
  172 + </th>
  173 + <th style="text-align: center; width: 3%;" data-field="type" tabindex="0">
  174 + <div class="th-inner ">禁言状态</div>
  175 + <div class="fht-cell"></div>
  176 + </th>
  177 + <th style="text-align: center; width: 3%;" data-field="type" tabindex="0">
  178 + <div class="th-inner ">禁言次数</div>
  179 + <div class="fht-cell"></div>
  180 + </th>
  181 + <th style="text-align: center; width: 3%;" data-field="type" tabindex="0">
  182 + <div class="th-inner ">修改人</div>
  183 + <div class="fht-cell"></div>
  184 + </th>
  185 + <th style="text-align: center; width: 10%;" data-field="upload_time" tabindex="0">
  186 + <div class="th-inner ">禁言开始时间</div>
  187 + <div class="fht-cell"></div>
  188 + </th>
  189 + <th style="text-align: center; width: 10%;" data-field="updated_at" tabindex="0">
  190 + <div class="th-inner ">禁言结束时间</div>
  191 + <div class="fht-cell"></div>
  192 + </th>
  193 + <th style="text-align: center; width: 30%;" data-field="msg" tabindex="0">
  194 + <div class="th-inner ">禁言消息</div>
  195 + <div class="fht-cell"></div>
  196 + </th>
  197 +<!-- <th style="text-align: center; width: 10%;" data-field="action" tabindex="0"> -->
  198 +<!-- <div class="th-inner ">操作</div> -->
  199 +<!-- <div class="fht-cell"></div> -->
  200 +<!-- </th> -->
  201 + </tr>
  202 + </thead>
  203 + <tbody>
  204 + <tr th:data-index="${notspeakStat.index}" th:each="notspeak : ${notspeakPage.list}">
  205 + <td style="text-align: center; width: 5%;" th:text="${notspeak.user_id}">82</td>
  206 + <td style="text-align: center; width: 6%;" th:text="${notspeak.user_name}">视讯中国</td>
  207 + <td style="text-align: center; width: 6%;" >
  208 + <div style="width:60px;height:60px;"><img
  209 + th:src="@{${notspeak.user_avatar}}" width="60px"
  210 + alt="用户头像"></div>
  211 + </td>
  212 + <td style="text-align: center; width: 6%;" th:text="${notspeak.spid_desc}"></td>
  213 + <td style="text-align: center; width: 6%;" th:if="${notspeak.state==0}">
  214 + <label class="switch"><input type="checkbox" checked th:id="'id'+${notspeak.id}" th:user_name="${notspeak.user_name}" th:spid_desc="${notspeak.spid_desc}"><span class="slider round" th:id="${notspeak.id}"></span></label>
  215 + </td>
  216 + <td style="text-align: center; width: 6%;" th:if="${notspeak.state==1}">
  217 + <label class="switch"><input type="checkbox" th:id="'id'+${notspeak.id}" th:user_name="${notspeak.user_name}" th:spid_desc="${notspeak.spid_desc}"><span class="slider round" th:id="${notspeak.id}"></span></label>
  218 + </td>
  219 + <td style="text-align: center; width: 6%;" th:text="${notspeak.count}"></td>
  220 + <td style="text-align: center; width: 6%;" th:text="${notspeak.updater}"></td>
  221 + <td style="text-align: center; width: 10%;" th:text="${#dates.format(notspeak.start_time, 'yyyy-MM-dd HH:mm:ss')}">2018-11-22
  222 + 23:08:48</td>
  223 + <td style="text-align: center; width: 10%;" th:text="${#dates.format(notspeak.end_time, 'yyyy-MM-dd HH:mm:ss')}">2016-08-03
  224 + 14:27:17</td>
  225 + <td style="text-align: center; width: 25%;" >
  226 +<!-- <span th:text="${notspeak.msg}"></span> -->
  227 + <textarea class="form-control" name="msg" cols="50" rows="3"
  228 + id="msg" th:text="${notspeak.msg}">禁言信息</textarea>
  229 + </td>
  230 +<!-- <td style="text-align: center; width: 10%;"> -->
  231 +<!-- <span>&nbsp;</span> -->
  232 +<!-- <a class="edit" th:href="'javascript:edit('+${notspeak.id}+',\''+${notspeak.user_name}+'\',\''+${notspeak.time}+'\',\''+${notspeak.time} +'\')'"> -->
  233 +<!-- <button class="btn btn-danger btn-xs">禁言</button> -->
  234 +<!-- </a><span> </span><span>&nbsp;</span> -->
  235 +<!-- <span>&nbsp;</span> -->
  236 +<!-- <a class="delete" th:href="'javascript:deleted('+${notspeak.id}+')'"> -->
  237 +<!-- <button class="btn btn-primary btn-xs">解除</button> -->
  238 +<!-- </a><span> </span><span>&nbsp;</span></td> -->
  239 + </tr>
  240 +
  241 + </tbody>
  242 + </table>
  243 + </div>
  244 +
  245 + <div class="fixed-table-pagination" style="display: block;">
  246 + <div class="pull-left pagination-detail">
  247 + <span class="pagination-info"
  248 + th:text="'共 '+${notspeakPage.total}+' 条记录,每页显示'">共 0 条记录</span>
  249 + <select class="" id="pageSize" name="pageSize"
  250 + onchange="selectPageSize()">
  251 + <option value="10" th:selected="${pageSize==10}">10</option>
  252 + <option value="20" th:selected="${pageSize==20}">20</option>
  253 + <option value="50" th:selected="${pageSize==50}">50</option>
  254 + <option value="100" th:selected="${pageSize==100}">100</option>
  255 + </select> <span class="pagination-info">条记录</span>
  256 + </div>
  257 + <div class="pull-right pagination">
  258 + <ul class="pagination" th:if="${notspeakPage.pages>1}">
  259 + <li class="page-pre"><a
  260 + th:href="'javascript:fanye(1);'">‹‹</a></li>
  261 + <li class="page-pre" th:if="${!notspeakPage.isFirstPage}"><a
  262 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum-1}+'\');'">‹</a>
  263 + </li>
  264 +
  265 + <li class="page-number" th:if="${notspeakPage.pageNum-3>=1}"><a
  266 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum-3}+'\');'"
  267 + th:text="${notspeakPage.pageNum-3}">2</a></li>
  268 + <li class="page-number" th:if="${notspeakPage.pageNum-2>=1}"><a
  269 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum-2}+'\');'"
  270 + th:text="${notspeakPage.pageNum-2}">2</a></li>
  271 + <li class="page-number" th:if="${notspeakPage.pageNum-1>=1}"><a
  272 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum-1}+'\');'"
  273 + th:text="${notspeakPage.pageNum-1}">2</a></li>
  274 + <li class="page-number active"><a
  275 + href="javaScript:void(0);" th:text="${notspeakPage.pageNum}">2</a></li>
  276 + <li class="page-number"
  277 + th:if="${notspeakPage.pageNum+1<=notspeakPage.pages}"><a
  278 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum+1}+'\');'"
  279 + th:text="${notspeakPage.pageNum+1}">2</a></li>
  280 + <li class="page-number"
  281 + th:if="${notspeakPage.pageNum+2<=notspeakPage.pages}"><a
  282 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum+2}+'\');'"
  283 + th:text="${notspeakPage.pageNum+2}">2</a></li>
  284 + <li class="page-number"
  285 + th:if="${notspeakPage.pageNum+3<=notspeakPage.pages}"><a
  286 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum+3}+'\');'"
  287 + th:text="${notspeakPage.pageNum+3}">2</a></li>
  288 +
  289 + <li class="page-next" th:if="${!notspeakPage.isLastPage}"><a
  290 + th:onclick="'javascript:fanye(\''+${notspeakPage.pageNum+1}+'\');'">›</a>
  291 + </li>
  292 + <li class="page-next"><a
  293 + th:onclick="'javascript:fanye(\''+${notspeakPage.pages}+'\');'">››</a>
  294 + </li>
  295 + </ul>
  296 + </div>
  297 + </div>
  298 + </div>
  299 + </div>
  300 + <div class="clearfix"></div>
  301 + </div>
  302 + </div>
  303 + </div>
  304 + </section>
  305 + </div>
  306 +
  307 +<!-- 模态框(Modal) -->
  308 +<div class="modal fade" id="editModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  309 + <div class="modal-dialog">
  310 + <div class="modal-content" style="margin-top: 30%;">
  311 + <div class="modal-header">
  312 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  313 + <h4 class="modal-title" id="myModalLabel">编辑邮件消息</h4>
  314 + </div>
  315 + <div class="modal-body">
  316 + <form action="/notspeak/write" method="post" id="editWrite">
  317 + <input type="text" name="redirect_url" value="" class="hide" id="redirect_url"/>
  318 + <div class="form-group hide">
  319 + <label class="control-label col-sm-3" style="font-size: 15px;" >Id:</label>
  320 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  321 + <input class="form-control" style="width:30%;" type="text" value="" id="id" name="id">
  322 + </div>
  323 + </div>
  324 + <div class="form-group">
  325 + <label class="control-label col-sm-3" style="font-size: 15px;">邮件地址:</label>
  326 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  327 + <input class="form-control" style="width:40%;" type="text" value="" id="notspeak_edit" name="notspeak">
  328 + </div>
  329 + </div>
  330 + <div class="form-group">
  331 + <label class="control-label col-sm-3" style="font-size: 15px;">邮件人:</label>
  332 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  333 + <input class="form-control" style="width:20%;" type="text" value="" id="remark_edit" name="remark">
  334 + </div>
  335 + </div>
  336 +
  337 + <div class="form-group">
  338 + <label class="control-label col-sm-3" style="font-size: 15px;">邮件类型:</label>
  339 + <div class="col-sm-9" style="float: left">
  340 + <div th:each="bu:${notspeak_message}" style="padding-right: 30px;" class="write_check">
  341 + <span th:text="${bu.value}" style="font-size: 15px"></span>
  342 + <input type="checkbox" name="write_business" th:value="${bu.key}" th:id="'write_check_'+${bu.key}">
  343 + </div>
  344 + </div>
  345 + </div>
  346 +
  347 + </form>
  348 + </div>
  349 + <div class="modal-footer">
  350 + <button type="button" class="btn btn-primary" onclick="javascript:$('#editWrite').submit();">提交</button>
  351 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  352 + </div>
  353 + </div><!-- /.modal-content -->
  354 + </div><!-- /.modal-dialog -->
  355 +</div>
  356 +<!-- /.modal -->
  357 + <!-- 模态框,禁言框(Modal) -->
  358 +<div class="modal fade" id="speakModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  359 + <div class="modal-dialog">
  360 + <div class="modal-content" style="margin-top: 30%;">
  361 + <div class="modal-header">
  362 + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  363 + <h4 class="modal-title" id="myModalLabel">禁言选项</h4>
  364 + </div>
  365 + <div class="modal-body">
  366 + <input type="text" name="speak_id" value="" class="hide" id="speak_id"/>
  367 + <div class="form-group">
  368 + <label class="control-label col-sm-3" style="font-size: 15px;" >用户昵称:</label>
  369 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  370 + <input class="form-control" readonly="readonly" style="width:40%;" type="text" value="" id="userName" name="userName">
  371 + </div>
  372 + </div>
  373 + <div class="form-group">
  374 + <label class="control-label col-sm-3" style="font-size: 15px;">发言平台:</label>
  375 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  376 + <input class="form-control" readonly="readonly" style="width:40%;" type="text" value="" id="sp_desc" name="sp_desc">
  377 + </div>
  378 + </div>
  379 + <div class="form-group">
  380 + <label class="control-label col-sm-3" style="font-size: 15px;">禁言时长:</label>
  381 + <div class="col-sm-9" style="margin-top: -5px;margin-bottom: 20px;">
  382 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_days" name="noSpeak_days">
  383 + <span>&nbsp;&nbsp;天&nbsp;&nbsp;</span>
  384 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_hours" name="noSpeak_hours">
  385 + <span>&nbsp;&nbsp;时&nbsp;&nbsp;</span>
  386 + <input class="form-control" onkeyup="value=value.replace(/[^\d]/g,'')" style="display:inline;width:10%;" type="text" value="0" id="noSpeak_minutes" name="noSpeak_minutes">
  387 + <span>&nbsp;&nbsp;分&nbsp;&nbsp;</span>
  388 + </div>
  389 + </div>
  390 + </div>
  391 + <div class="modal-footer">
  392 + <button type="button" class="btn btn-primary" onclick="javascript:submitSpeak();">提交</button>
  393 + <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
  394 + </div>
  395 + </div><!-- /.modal-content -->
  396 + </div><!-- /.modal-dialog -->
  397 +</div>
  398 +<!-- /.modal -->
  399 + <script th:inline="javascript">
  400 + $(function () {
  401 + //按钮颜色设置
  402 + var state = [[${param.state}]] ? [[${param.state}]][0] : null;
  403 + var stateIsNull = $.trim(state) == "";
  404 + if ( stateIsNull) {
  405 + $("#quanbu").addClass("btn-success");
  406 + } else if (state == '1') {
  407 + $("#jinyan").addClass("btn-danger");
  408 + } else if (state == '0') {
  409 + $("#jiejin").addClass("btn-info");
  410 + }
  411 +// else if (!stateIsNull && state != '0' && receive == '1') {
  412 +// $("#yishen").addClass("btn-warning");
  413 +// }
  414 +
  415 + })
  416 +
  417 +
  418 + var user_id ="";//活动id
  419 + var user_name = "";//内容
  420 + var state ="";//状态
  421 + var count = "";//每页显示数量
  422 +
  423 + function query(){
  424 + user_id = $("#user_id").val();
  425 + user_name = $("#user_name").val();
  426 + count = $("#pageSize").val();
  427 + window.location.href = "/notSpeak/page?user_id=" + user_id + "&user_name=" + user_name + "&state=" + state + "&pageSize="+count;
  428 + }
  429 +
  430 + //全部
  431 + function quanbu() {
  432 + query();
  433 + }
  434 +
  435 + //禁言
  436 + $('#jinyan').click(function () {
  437 + state=1;
  438 + query();
  439 + });
  440 + //解禁
  441 + $('#jiejin').click(function () {
  442 + state=0;
  443 + query();
  444 + });
  445 +
  446 + //开关的点击事件
  447 + $(".slider").on('click',function(e){
  448 + var myId=$(this).prop("id");
  449 + // var myIndex = $(".slider").index($(this));
  450 + var checked=$("#id"+myId).prop("checked");//获取当前状态,下一个状态用!checked表示
  451 + var user_name=$("#id"+myId).attr("user_name");
  452 + var spid_desc=$("#id"+myId).attr("spid_desc");
  453 + if(checked){//当前用户没有被禁言,现在要执行禁言操作
  454 + speakModal(myId,user_name,spid_desc);
  455 + }else{//当前用户已被禁言,现在执行解除禁言操作
  456 + var r = confirm("您确定要解除当前用户的禁言操作吗?");
  457 + if (r == true) {
  458 + $.post("/notSpeak/speak?notSpeakId=" + myId+"&type=0&time=0", function (data) {
  459 + if (data.errorCode == 0) {
  460 + alert(data.errorMessage);
  461 + location.href = location.href;
  462 + } else {
  463 + alert(data.errorMessage);
  464 + location.href = location.href;
  465 + }
  466 + })
  467 + }
  468 + }
  469 + })
  470 +
  471 + //禁言(弹窗)
  472 + function speakModal(speak_id,userName,sp_desc) {
  473 + $('#speak_id').val(speak_id);
  474 + $('#userName').val(userName);
  475 + $('#sp_desc').val(sp_desc);
  476 + $('#speakModal').modal('show');
  477 + }
  478 +
  479 + //提交禁言
  480 + function submitSpeak() {
  481 + var speak_id = $("#speak_id").val();
  482 + var noSpeak_days = Number($("#noSpeak_days").val());
  483 + var noSpeak_hours = Number($("#noSpeak_hours").val());
  484 + var noSpeak_minutes = Number($("#noSpeak_minutes").val());
  485 + var time=noSpeak_days*24*60+noSpeak_hours*60+noSpeak_minutes;//单位为分钟
  486 + $.post("/notSpeak/speak?notSpeakId=" + speak_id + "&time=" + time+ "&type=1", function (data) {
  487 + if (data.errorCode == 0) {
  488 + alert(data.errorMessage);
  489 + location.href = location.href;
  490 + } else {
  491 + alert(data.errorMessage);
  492 + }
  493 + })
  494 + }
  495 +
  496 + //翻页函数
  497 + function fanye(page) {
  498 + var param = location.search;
  499 + if (param.indexOf("page=") != -1) {
  500 + var se = param.replace("?", "");//去掉问号,防止问号和要去掉的参数相连
  501 + var split = se.split("&");
  502 + var h = "";
  503 + for (var i = 0; i < split.length; i++) {
  504 + var s = split[i];
  505 + if (s.indexOf("page=") < 0) h = h + "&" + split[i];
  506 + }
  507 + h = h.substring(1, h.length);
  508 + window.location.href = "/notSpeak/page?" + h + "&page=" + page;
  509 + } else {
  510 + param = param.substring(1, param.length);
  511 + window.location.href = "/notSpeak/page?" + param + "&page=" + page;
  512 + }
  513 + }
  514 +
  515 + //选择每页数量触发函数
  516 + function selectPageSize(){
  517 + var pageSize=$("#pageSize").val();
  518 + var param = location.search;
  519 + if (param.indexOf("pageSize=") != -1) {
  520 + var se = param.replace("?", "");//去掉问号,防止问号和要去掉的参数相连
  521 + var split = se.split("&");
  522 + var h = "";
  523 + for (var i = 0; i < split.length; i++) {
  524 + var s = split[i];
  525 + if (s.indexOf("pageSize=") < 0 &&s.indexOf("page=") < 0) h = h + "&" + split[i];
  526 + }
  527 + h = h.substring(1, h.length);
  528 + window.location.href = "/notSpeak/page?" + h + "&pageSize=" + pageSize;
  529 + } else {
  530 + var se = param.replace("?", "");//去掉问号,防止问号和要去掉的参数相连
  531 + var split = se.split("&");
  532 + var h = "";
  533 + for (var i = 0; i < split.length; i++) {
  534 + var s = split[i];
  535 + if (s.indexOf("page=") < 0) h = h + "&" + split[i];
  536 + }
  537 + h = h.substring(1, h.length);
  538 + window.location.href = "/notSpeak/page?" + h + "&pageSize=" + pageSize;
  539 + }
  540 + }
  541 +
  542 +
  543 + //鼠标回车事件
  544 + $(document).keyup(function(event){
  545 + if(event.keyCode ==13){
  546 + quanbu();
  547 + }
  548 + });
  549 + //打开编辑窗口
  550 +// function edit(Id,notspeak,remark,write_business){
  551 +// $("#myModalLabel").text("编辑邮件消息");
  552 +// $("#id").val(Id);
  553 +// $("#notspeak_edit").val(notspeak);
  554 +// $("#notspeak_edit").attr("readonly","true");
  555 +// $("#remark_edit").val(remark);
  556 +// $("#redirect_url").val(location.pathname+location.search);
  557 +// $(".write_check input").prop("checked",false);
  558 +// if($.trim(write_business)!=''){
  559 +// var array = write_business.split(",")
  560 +// for (var i=0;i<array.length;i++){
  561 +// $("#write_check_"+array[i]).prop("checked",true);
  562 +// }
  563 +// }
  564 +// $('#editModal').modal('show');
  565 +// }
  566 +
  567 + //打开添加窗口
  568 +// function add(){
  569 +// $("#id").val("");
  570 +// $("#notspeak_edit").val("");
  571 +// $("#notspeak_edit").removeAttr("readonly");
  572 +// $("#remark_edit").val("");
  573 +// $(".write_check input").prop("checked",false);
  574 +
  575 +// $("#redirect_url").val(location.pathname+location.search);
  576 +// $("#myModalLabel").text("添加邮件消息");
  577 +// $('#editModal').modal('show');
  578 +// }
  579 +
  580 + //删除操作
  581 +// function deleted(id){
  582 +// var r = confirm("您确定删除本条内容吗?");
  583 +// if (r == true) {
  584 +// $.post("/notspeak/deleted?id=" + id, function (data) {
  585 +// if (data.errorCode == 0) {
  586 +// alert(data.errorMessage);
  587 +// location.href = location.href;
  588 +// } else {
  589 +// alert(data.errorMessage);
  590 +// }
  591 +// })
  592 +// }
  593 +// }
  594 +
  595 + /*查询样式*/
  596 + function openOrClose(id_name_str) {
  597 + var id_name = '#' + id_name_str;
  598 + if ($(id_name).css('display') == 'block') {
  599 + $(id_name).slideUp(350);
  600 + $('#a_up').show();
  601 + $('#a_down').hide();
  602 + } else {
  603 + $(id_name).slideDown(350);
  604 + $('#a_up').hide();
  605 + $('#a_down').show();
  606 + }
  607 + }
  608 + </script>
  609 +
  610 + <footer th:replace="../templates/common/foot::foot" ></footer>
  611 +
  612 +
  613 + <!-- Add the sidebar's background. This div must be placed
  614 + immediately after the control sidebar -->
  615 + <div class="control-sidebar-bg" style="position: fixed; height: auto;"></div>
  616 +
  617 +</div><!-- ./wrapper -->
  618 +
  619 +
  620 +<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
  621 +<script type="text/javascript">
  622 + $('div.alert').not('.alert-danger').delay(3000).slideUp(300);
  623 +</script>
  624 +
  625 +<!-- AdminLTE App -->
  626 +<script src="../../static/js/app.min.js"></script>
  627 +<!-- AdminLTE for demo purposes -->
  628 +<script src="../../static/js/sidebar.js"></script>
  629 +
  630 +
  631 +</body>
  632 +</html>
0 633 \ No newline at end of file
... ...