diff --git a/src/main/java/com/nbclass/activity/controller/ContentController.java b/src/main/java/com/nbclass/activity/controller/ContentController.java index faf94ae..20a65a6 100644 --- a/src/main/java/com/nbclass/activity/controller/ContentController.java +++ b/src/main/java/com/nbclass/activity/controller/ContentController.java @@ -9,12 +9,14 @@ import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import com.nbclass.activity.model.*; +import com.nbclass.activity.service.CommentService; import com.nbclass.activity.service.DataDictService; import com.nbclass.exception.ParameterException; import com.nbclass.system.service.UserService; import com.nbclass.util.JWTUtils; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; @@ -61,6 +63,9 @@ public class ContentController extends BaseController { @Resource private DataDictService dataDictService; + @Autowired + private CommentService commentService; + /** * 案例页面 * @param model @@ -543,4 +548,31 @@ public class ContentController extends BaseController { return Result.success(map); } + /** + * 标签、索引反馈日志列表 + * @param page + * @param pageSize + * @return + */ + @PostMapping("/getLabelLogger") + @ResponseBody + public PageResultVo getLabelLogger(Integer page,Integer pageSize,Integer id){ + PageHelper.startPage(page,pageSize); + List list = commentService.getLabelLogger(id); + PageInfo pageInfo = new PageInfo<>(list); + return ResultUtil.table(list,pageInfo.getTotal()); + } + + /** + * 标签、索引反馈日志状态更新 + * @param id + * @return + */ + @PostMapping("/updateLogger") + @ResponseBody + public Result updateLogger(Integer id,Integer status){ + commentService.updateLogger(id,status); + return Result.success(); + } + } diff --git a/src/main/java/com/nbclass/activity/controller/casesfirst/CommentController.java b/src/main/java/com/nbclass/activity/controller/casesfirst/CommentController.java index 3e067eb..80b46f3 100644 --- a/src/main/java/com/nbclass/activity/controller/casesfirst/CommentController.java +++ b/src/main/java/com/nbclass/activity/controller/casesfirst/CommentController.java @@ -184,21 +184,6 @@ public class CommentController { return Result.success(); } - /** - * 标签、索引反馈日志列表 - * @param request - * @param page - * @param pageSize - * @return - */ - @GetMapping("/getLabelLogger") - public Result getLabelLogger(HttpServletRequest request,Integer page,Integer pageSize){ - String token = request.getHeader("token"); - String userId = JWTUtils.getUserId(token); - PageInfo list = commentService.getLabelLogger(page,pageSize,Long.parseLong(userId)); - return Result.success(list); - } - /** * 新建文件夹 * @param favoritesFolder diff --git a/src/main/java/com/nbclass/activity/mapper/CommentMapper.java b/src/main/java/com/nbclass/activity/mapper/CommentMapper.java index e3f833a..21c5ec7 100644 --- a/src/main/java/com/nbclass/activity/mapper/CommentMapper.java +++ b/src/main/java/com/nbclass/activity/mapper/CommentMapper.java @@ -198,10 +198,9 @@ public interface CommentMapper { /** * 标签、索引反馈日志列表 - * @param userId * @return */ - List getLabelLogger(Long userId); + List getLabelLogger(Integer id); /** * 案例打分 @@ -209,4 +208,11 @@ public interface CommentMapper { */ void saveScoring(Scoring scoring); + /** + * 标签、索引反馈日志状态更新 + * @param id + * @param status + */ + void updateLogger(@Param("id") Integer id, + @Param("status") Integer status); } diff --git a/src/main/java/com/nbclass/activity/mapper/WxUserMapper.java b/src/main/java/com/nbclass/activity/mapper/WxUserMapper.java index 749de11..4f2330d 100644 --- a/src/main/java/com/nbclass/activity/mapper/WxUserMapper.java +++ b/src/main/java/com/nbclass/activity/mapper/WxUserMapper.java @@ -8,27 +8,27 @@ import com.nbclass.activity.model.WxUser; import com.nbclass.util.MyMapper; /** - * + * * @author Leon * @datetime 2020年6月2日 下午4:42:57 */ public interface WxUserMapper extends MyMapper { - + // 这个没用,使用insertSelective方法。 public void insertCustom(WxUser entity); - + /** * 根据userid修改记录 * @param entity */ public void updateByUserId(WxUser entity); - + /** * 获取成员UserID列表 * @return */ public List getUserIds(); - + /** * 通过部门ID列表获取用户信息列表 * @param deptids @@ -42,12 +42,18 @@ public interface WxUserMapper extends MyMapper { * @return */ public List getUsersByUserIds(@Param("userids")String[] userids); - - + + /** * 删除此userids之外的用户 * @param userIds */ public void delOtherUsers(@Param("userids")List userids); - -} \ No newline at end of file + + /** + * 获取企业微信头像 + * @param username + * @return + */ + String getNickname(String username); +} diff --git a/src/main/java/com/nbclass/activity/model/LabelLogger.java b/src/main/java/com/nbclass/activity/model/LabelLogger.java index cdaf3cf..02d6ba0 100644 --- a/src/main/java/com/nbclass/activity/model/LabelLogger.java +++ b/src/main/java/com/nbclass/activity/model/LabelLogger.java @@ -45,10 +45,5 @@ public class LabelLogger implements Serializable { */ private String name; - /** - * 案例名称 - */ - private String contentName; - } diff --git a/src/main/java/com/nbclass/activity/service/CommentService.java b/src/main/java/com/nbclass/activity/service/CommentService.java index dee81fc..cc9f41a 100644 --- a/src/main/java/com/nbclass/activity/service/CommentService.java +++ b/src/main/java/com/nbclass/activity/service/CommentService.java @@ -3,6 +3,8 @@ package com.nbclass.activity.service; import com.github.pagehelper.PageInfo; import com.nbclass.activity.model.*; +import java.util.List; + public interface CommentService { /** @@ -193,11 +195,9 @@ public interface CommentService { /** * 标签、索引反馈日志列表 - * @param page - * @param pageSize * @return */ - PageInfo getLabelLogger(Integer page, Integer pageSize, Long userId); + List getLabelLogger(Integer id); /** * 案例打分 @@ -205,4 +205,9 @@ public interface CommentService { */ void saveScoring(Scoring scoring); + /** + * 标签、索引反馈日志状态更新 + * @param id + */ + void updateLogger(Integer id,Integer status); } diff --git a/src/main/java/com/nbclass/activity/service/WxUserService.java b/src/main/java/com/nbclass/activity/service/WxUserService.java index b8d139d..767b441 100644 --- a/src/main/java/com/nbclass/activity/service/WxUserService.java +++ b/src/main/java/com/nbclass/activity/service/WxUserService.java @@ -5,26 +5,32 @@ import java.util.List; import com.nbclass.activity.model.WxUser; /** - * + * * @author Leon * @datetime 2020年6月2日 下午4:50:28 */ public interface WxUserService{ - + /** * 批量保存用户 * @param userList */ public void merge(List userList); - + /** * 同步企业微信成员 */ public void syncWxUser(); - + /** * 同步企业微信部门 */ public void syncWxDepartment(); - + + /** + * 获取企业微信头像 + * @param username + * @return + */ + String getNickname(String username); } diff --git a/src/main/java/com/nbclass/activity/service/impl/CommentServiceImpl.java b/src/main/java/com/nbclass/activity/service/impl/CommentServiceImpl.java index f14854d..d5c556c 100644 --- a/src/main/java/com/nbclass/activity/service/impl/CommentServiceImpl.java +++ b/src/main/java/com/nbclass/activity/service/impl/CommentServiceImpl.java @@ -164,10 +164,8 @@ public class CommentServiceImpl implements CommentService { } @Override - public PageInfo getLabelLogger(Integer page, Integer pageSize, Long userId) { - PageHelper.startPage(page,pageSize); - List list = commentMapper.getLabelLogger(userId); - return new PageInfo<>(list); + public List getLabelLogger(Integer id) { + return commentMapper.getLabelLogger(id); } @Override @@ -175,4 +173,9 @@ public class CommentServiceImpl implements CommentService { commentMapper.saveScoring(scoring); } + @Override + public void updateLogger(Integer id, Integer status) { + commentMapper.updateLogger(id,status); + } + } diff --git a/src/main/java/com/nbclass/activity/service/impl/WxUserServiceImpl.java b/src/main/java/com/nbclass/activity/service/impl/WxUserServiceImpl.java index f34b7b4..7767083 100644 --- a/src/main/java/com/nbclass/activity/service/impl/WxUserServiceImpl.java +++ b/src/main/java/com/nbclass/activity/service/impl/WxUserServiceImpl.java @@ -28,22 +28,22 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Service public class WxUserServiceImpl implements WxUserService { - + @Resource private WxUserMapper wxUserMapper; - + @Resource private UserService userService; - + @Resource private WxDepartmentMapper deptMapper; - - + + @Transactional @Override public void merge(List userList){ if(userList == null || userList.size() == 0)return; - + List dbUserIds = wxUserMapper.getUserIds(); // 查询数据库已有的数据 List existIds = new ArrayList(); for (WxUser wxUser : userList) { @@ -57,7 +57,7 @@ public class WxUserServiceImpl implements WxUserService { account.setStatus(1); account.setPassword("szxgl.cn"); // 默认登录密码 PasswordHelper.encryptPassword(account); - + existIds.add(wxUser.getUserid()); if(dbUserIds.contains(wxUser.getUserid())){ wxUserMapper.updateByUserId(wxUser); @@ -69,7 +69,7 @@ public class WxUserServiceImpl implements WxUserService { // 删除当前企业微信不存在的用户 if(existIds.size()>0)wxUserMapper.delOtherUsers(existIds); } - + @Override public void syncWxUser() { try { @@ -135,11 +135,16 @@ public class WxUserServiceImpl implements WxUserService { log.error("同步企业部门异常", e); } } - + + @Override + public String getNickname(String username) { + return wxUserMapper.getNickname(username); + } + public static void main(String[] args) { String jsonstr = "{\"id\":1,\"Name\":\"信广龙\",\"Order\":100000000,\"parentId\":5}"; WxDepartment wxUser = JSON.toJavaObject(JSONObject.parseObject(jsonstr), WxDepartment.class); System.out.println(JSON.toJSON(wxUser)); } - + } diff --git a/src/main/java/com/nbclass/system/controller/QyWxLoginController.java b/src/main/java/com/nbclass/system/controller/QyWxLoginController.java index 2632a1f..45289a2 100644 --- a/src/main/java/com/nbclass/system/controller/QyWxLoginController.java +++ b/src/main/java/com/nbclass/system/controller/QyWxLoginController.java @@ -7,6 +7,8 @@ import java.net.URLEncoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.nbclass.activity.service.WxUserService; +import com.nbclass.vo.base.Result; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; @@ -14,6 +16,7 @@ import org.apache.shiro.authc.LockedAccountException; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.alibaba.fastjson.JSONObject; @@ -24,6 +27,7 @@ import com.nbclass.util.CommonUtils; import com.nbclass.util.HttpUtils; import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.ResponseBody; /** * 企业微信扫码登录 @@ -33,12 +37,15 @@ import lombok.extern.slf4j.Slf4j; @Slf4j @Controller @RequestMapping("/qywx") -public class QyWxLoginController { - +public class QyWxLoginController extends BaseController { + private static final int AgentId = 1000016; // 企业微信登录应用ID(信广龙广告) - + @Autowired - private UserService userService; + private UserService userService; + + @Autowired + private WxUserService wxUserService; /** * PC端网页授权(企业微信授权登录) @@ -56,7 +63,7 @@ public class QyWxLoginController { response.sendRedirect(redirectUrl); return; } - + String url = "http://show.szxgl.cn/qywx/api/sso/getUserInfo?agentid="+AgentId+"&code="+code; try { JSONObject json = HttpUtils.httpPost(url); @@ -72,7 +79,7 @@ public class QyWxLoginController { outPrintError(response, "该账号未经授权,请联系管理员授权后再试!"); return; } - + // 企业微信登录成功,下一步进行系统shiro身份验证 String username = userid; MyUsernamePasswordToken token = new MyUsernamePasswordToken(username); // 免密登录,用于扫码登录手机验证码登录等场景 @@ -90,14 +97,14 @@ public class QyWxLoginController { } //更新最后登录时间 userService.updateLastLoginTime((User) SecurityUtils.getSubject().getPrincipal()); - + response.sendRedirect(request.getContextPath()+"/admin"); } catch (Exception e) { log.error("企业微信登录授权失败", e); outPrintError(response, "企业微信授权失败,请稍候再试!"); } } - + /** * 输出错误信息到页面 * @param response @@ -127,12 +134,24 @@ public class QyWxLoginController { } } } - + private static String getBaseUrl(HttpServletRequest request){ String result = null; int port = request.getServerPort(); result = request.getScheme()+"://"+request.getServerName()+(port==80||port==443 ? "" : ":"+port)+request.getContextPath()+"/"; return result; } - + + /** + * 获取企业微信头像 + * @return + */ + @GetMapping("/getAvatar") + @ResponseBody + public Result getNickname(){ + User loginUser = getLoginUser(); + String avatar = wxUserService.getNickname(loginUser.getUsername()); + return Result.success(avatar); + } + } diff --git a/src/main/resources/mapper/activity/CommentMapper.xml b/src/main/resources/mapper/activity/CommentMapper.xml index 6972371..743969d 100644 --- a/src/main/resources/mapper/activity/CommentMapper.xml +++ b/src/main/resources/mapper/activity/CommentMapper.xml @@ -571,16 +571,20 @@ @@ -601,4 +605,12 @@ ) + + update label_logger set + + status = #{status} + + where id = #{id} + + diff --git a/src/main/resources/mapper/activity/ContentMapper.xml b/src/main/resources/mapper/activity/ContentMapper.xml index 0e77fe9..75b2b99 100644 --- a/src/main/resources/mapper/activity/ContentMapper.xml +++ b/src/main/resources/mapper/activity/ContentMapper.xml @@ -400,6 +400,24 @@ and c.label_feedback > 0 + + and DATE_FORMAT(c.createtime, '%Y-%m-%d')>= DATE_FORMAT(#{createtime}, '%Y-%m-%d') + + + and DATE_FORMAT(c.createtime, '%Y-%m-%d') <= DATE_FORMAT(#{createtimeSection}, '%Y-%m-%d') + + + and DATE_FORMAT(c.updatetime, '%Y-%m-%d')>= DATE_FORMAT(#{updatetime}, '%Y-%m-%d') + + + and DATE_FORMAT(c.updatetime, '%Y-%m-%d') <= DATE_FORMAT(#{updatetimeSection}, '%Y-%m-%d') + + + and DATE_FORMAT(c.online_time, '%Y-%m-%d')>= DATE_FORMAT(#{onlineTime}, '%Y-%m-%d') + + + and DATE_FORMAT(c.online_time, '%Y-%m-%d') <= DATE_FORMAT(#{onlineTimeSection}, '%Y-%m-%d') + and item.id in @@ -469,13 +487,13 @@ data_dict_item item LEFT JOIN content_tags tags ON item.id = tags.tid LEFT JOIN content c ON c.id = tags.cid and c.online_time is not null + + and YEARWEEK( date_format(c.online_time, '%Y-%m-%d' ), 1 ) = YEARWEEK(now()) + WHERE item.dictid = 26 GROUP BY item.id,c.id - - and YEARWEEK( date_format(c.online_time, '%Y-%m-%d' ), 1 ) = YEARWEEK(now()) - AND DATE_FORMAT( c.online_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' ) diff --git a/src/main/resources/mapper/activity/WxUserMapper.xml b/src/main/resources/mapper/activity/WxUserMapper.xml index 9a054a1..6a10d26 100644 --- a/src/main/resources/mapper/activity/WxUserMapper.xml +++ b/src/main/resources/mapper/activity/WxUserMapper.xml @@ -1,66 +1,70 @@ - + insert into wx_user (userid, name, mobile, department, position, gender, email, weixinid, - isleader, avatar, english_name, status) + isleader, avatar, english_name, status) values (#{userid}, #{name}, #{mobile}, #{department}, #{position}, #{gender}, #{email}, #{weixinid}, #{isleader}, #{avatar}, #{english_name}, #{status}) - + update wx_user set name = #{name}, mobile = #{mobile}, department = #{department} - , position = #{position} + , position = #{position} - , gender = #{gender} + , gender = #{gender} - , email = #{email} + , email = #{email} - , weixinid = #{weixinid} + , weixinid = #{weixinid} - , isleader = #{isleader} + , isleader = #{isleader} - , avatar = #{avatar} + , avatar = #{avatar} - , english_name = #{english_name} + , english_name = #{english_name} - , `status` = #{status} + , `status` = #{status} - where userid = #{userid} + where userid = #{userid} - + - + - + - + - delete from wx_user where userid not in + delete from wx_user where userid not in - #{userid} + #{userid} - - \ No newline at end of file + + + + diff --git a/src/main/resources/static/img/admin.png b/src/main/resources/static/img/admin.png new file mode 100644 index 0000000..01f01b1 Binary files /dev/null and b/src/main/resources/static/img/admin.png differ diff --git a/src/main/resources/templates/content-logger/list.html b/src/main/resources/templates/content-logger/list.html new file mode 100644 index 0000000..8e65b42 --- /dev/null +++ b/src/main/resources/templates/content-logger/list.html @@ -0,0 +1,121 @@ +
+ +
+
+
+ +
+ + +
+
+
+ +
+ + diff --git a/src/main/resources/templates/content/application.html b/src/main/resources/templates/content/application.html index 6651e86..b119517 100644 --- a/src/main/resources/templates/content/application.html +++ b/src/main/resources/templates/content/application.html @@ -8,15 +8,46 @@
@@ -263,7 +281,7 @@ {field: 'collectionNumber', title: '收藏数', align : "center"}, {field: 'comments', title: '评论数', align : "center"}, {field: 'createtime', title: '创建时间', align : "center"}, - // {field: 'updatetime', title: '修改时间', align : "center"}, + {field: 'updatetime', title: '修改时间', align : "center"}, {field: 'onlineTime', title: '上线时间', align : "center"}, {field: 'position', title: '关联部门', align : "center", width: "170", formatter:function(value,row, index){ for(var i = 0; i < row.tagList.length;i++){ @@ -294,16 +312,16 @@ let seeHtml = ""; let editHtml = ""; if(row.status === 1){ - adoptHtml = '发布'; - rejectHtml = '驳回'; - seeHtml = '查看'; + adoptHtml = ' 发布'; + rejectHtml = ' 驳回'; + seeHtml = ' 查看'; editHtml = ' 修改'; }else if(row.status === 2){ - adoptHtml = '下线'; - seeHtml = '查看'; + adoptHtml = ' 下线'; + seeHtml = ' 查看'; editHtml = ' 修改'; }else if(row.status === 3){ - seeHtml = '查看'; + seeHtml = ' 查看'; } return adoptHtml+rejectHtml+editHtml+seeHtml; }} @@ -430,6 +448,12 @@ $("#case_number").val(""); $("#title").val(""); $(".form-control").find("option:selected").attr("selected",false); + $("#createTime").find("input").val(""); + $("#createTimeSection").find("input").val(""); + $("#updateTime").find("input").val(""); + $("#updateTimeSection").find("input").val(""); + $("#onlineTime").find("input").val(""); + $("#onlineTimeSection").find("input").val(""); }); }); diff --git a/src/main/resources/templates/content/list2.html b/src/main/resources/templates/content/list2.html index dbf8ba3..9b394f1 100644 --- a/src/main/resources/templates/content/list2.html +++ b/src/main/resources/templates/content/list2.html @@ -9,15 +9,33 @@
-
+
- +
-
+
- +
-
+ +       +
+ + +
+ +       +
+ + +
+ +       +
-
+ +
+
-
+ +       +
-
- - -
-
- - -
-
+ +       +
-
+       +
-
+       +
-
+       +
-
+
+
- +
-
+
- +
- -
+       +
- +
-
+
- +
-
+       +
- +
-
+
- +
-
+ +
-
+
@@ -173,13 +191,13 @@ - +
-
+
@@ -230,9 +248,7 @@ {field: 'visibility', title: '可见性', align : "center", formatter:function(value,row, index){ return row.visibility === 1 ? "可见" : "不可见"; }}, - {field: 'labelFeedback', title: '标签反馈数', align : "center",formatter:function(value,row, index){ - - }}, + {field: 'labelFeedback', title: '标签反馈数', align : "center"}, {field: 'purposeCase', title: '案例用途', align : "center", formatter:function(value,row, index){ for(var i = 0; i < row.tagList.length;i++){ if(row.tagList[i].id === 19){ @@ -284,7 +300,7 @@ {field: 'collectionNumber', title: '收藏数', align : "center" }, {field: 'comments', title: '评论数', align : "center" }, {field: 'createtime', title: '创建时间', align : "center"}, - //{field: 'updatetime', title: '修改时间', align : "center"}, + {field: 'updatetime', title: '修改时间', align : "center"}, {field: 'onlineTime', title: '上线时间', align : "center"}, {field: 'position', title: '关联部门', align : "center",width:170,formatter:function(value,row, index){ for(var i = 0; i < row.tagList.length;i++){ @@ -325,7 +341,7 @@ seeHtml = '查看'; delHtml = ' 删除'; }*/ - submitHtml = '提交'; + submitHtml = ' 提交'; editHtml = ' 修改'; delHtml = ' 删除'; }else if(row.status === 1){ @@ -333,30 +349,30 @@ submitHtml = '撤回'; }*/ //这里的1标记为查看状态 - seeHtml = '查看'; + seeHtml = ' 查看'; delHtml = ' 删除'; - submitHtml = '撤回'; + submitHtml = ' 撤回'; }else if(row.status === 3){ /*if($("#name").val() !== 'admin'){ submitHtml = '更新'; }*/ - submitHtml = '更新'; - seeHtml = '查看'; + submitHtml = ' 更新'; + seeHtml = ' 查看'; delHtml = ' 删除'; } if(row.status === 2){ /*if($("#name").val() !== 'admin'){ offlineHtml = '下线'; }*/ - offlineHtml = '下线'; - submitHtml = '更新'; - seeHtml = '查看'; + offlineHtml = ' 下线'; + submitHtml = ' 更新'; + seeHtml = ' 查看'; } /*if(row.status === 3){ delHtml = ' 删除'; }*/ - return offlineHtml+submitHtml+editHtml + delHtml + seeHtml; + return offlineHtml+submitHtml+editHtml+delHtml+seeHtml; }} ]; var options={ diff --git a/src/main/resources/templates/fragments/navbar.html b/src/main/resources/templates/fragments/navbar.html index 8f03234..82ebfcc 100644 --- a/src/main/resources/templates/fragments/navbar.html +++ b/src/main/resources/templates/fragments/navbar.html @@ -1,7 +1,7 @@