From 345ca548dc74e3f489b5cfe70c6d924892afcf24 Mon Sep 17 00:00:00 2001 From: gjq Date: Mon, 6 Dec 2021 18:20:17 +0800 Subject: [PATCH] ... --- .../controller/ContentController.java | 35 ++++++++------ .../activity/mapper/ContentMapper.java | 4 +- .../com/nbclass/activity/model/Content.java | 8 ++++ .../service/impl/ContentServiceImpl.java | 10 ++-- .../impl/ElasticSearchServiceImpl.java | 8 ++-- .../nbclass/system/service/UserService.java | 5 ++ .../system/service/impl/UserServiceImpl.java | 14 ++++-- .../mapper/activity/ContentMapper.xml | 10 ++-- .../templates/content/application.html | 14 ++++-- .../resources/templates/content/census.html | 46 +++++++++++++++++++ .../resources/templates/content/edit2.html | 13 +++--- .../resources/templates/content/list2.html | 16 +++++-- src/main/resources/templates/index/index.html | 3 +- 13 files changed, 139 insertions(+), 47 deletions(-) create mode 100644 src/main/resources/templates/content/census.html diff --git a/src/main/java/com/nbclass/activity/controller/ContentController.java b/src/main/java/com/nbclass/activity/controller/ContentController.java index 780c965..55bc260 100644 --- a/src/main/java/com/nbclass/activity/controller/ContentController.java +++ b/src/main/java/com/nbclass/activity/controller/ContentController.java @@ -81,6 +81,11 @@ public class ContentController extends BaseController { return "content/application"; } + @GetMapping("/index-census") + public String census(Model model){ + return "content/census"; + } + /** * i技术开发案例页面 * @param model @@ -249,6 +254,9 @@ public class ContentController extends BaseController { entity.setTagLists(strings); entity.setCount(strings.length); } + //查询用户的职位信息 + String roleId = userService.getUserRole(user.getUserId()); + entity.setRoleId(roleId); PageHelper.startPage(PageUtil.getPageNo(limit, offset),limit); List userList = service.getList2(entity); PageInfo pages = new PageInfo<>(userList); @@ -287,7 +295,7 @@ public class ContentController extends BaseController { //更新审核申请单状态 service.updateApplicationStatus(entity.getApplicationId()); } - desc="修改案例,案例类型:"+ContentType.getNameByCode(type)+",案例ID:"+entity.getId()+",案例标题:"+entity.getTitle(); + desc="修改案例,案例类型:"+type+",案例ID:"+entity.getId()+",案例标题:"+entity.getTitle(); }else{ User loginUser = getLoginUser(); User user = userService.selectByUsername(loginUser.getUsername()); @@ -301,7 +309,7 @@ public class ContentController extends BaseController { contentTags.setTid(Long.parseLong(s)); service.addContentTags(contentTags); } - desc="添加案例,案例类型:"+ContentType.getNameByCode(type)+",案例ID:"+entity.getId()+",案例标题:"+entity.getTitle(); + desc="添加案例,案例类型:"+type+",案例ID:"+entity.getId()+",案例标题:"+entity.getTitle(); } User user = getLoginUser(); sysLogService.add(new SysLog(SysLogType.cases.key(), user.getUserId()+"("+user.getUsername()+")", getIpAddr(), desc)); @@ -314,6 +322,16 @@ public class ContentController extends BaseController { @ResponseBody public Result delete(String ids) { List IdList = CommonUtils.toLongList(ids); + for (Long aLong : IdList) { + //案例是否发布 + Content editContent = service.getEditContent(aLong); + if(editContent.getRelease() != 5 && editContent.getRelease() !=3){ + throw new ParameterException("案例已上线或审核中,无法删除!"); + } + if(editContent.getRelease() == 3){ + + } + } service.delete(IdList); //取消案例关联标签的关系 service.deleteContentTags(IdList); @@ -332,19 +350,8 @@ public class ContentController extends BaseController { public Result syncEsData(Content entity, @RequestParam(defaultValue="false")Boolean isReBuild) { long total = service.syncEsData(entity, isReBuild); User user = getLoginUser(); - String type = ""; - if(entity.getTagLists().length != 0){ - for (String tagList : entity.getTagLists()) { - if(tagList.equals("106") || tagList.equals("107") - || tagList.equals("108") || tagList.equals("109") - || tagList.equals("110") || tagList.equals("111") - || tagList.equals("112")){ - type = ContentType.getNameByCode(tagList); - } - } - } sysLogService.add(new SysLog(SysLogType.cases.key(), user.getUserId()+"("+user.getUsername()+")", getIpAddr(), - "同步案例到ElasticSearch,案例类型:"+ContentType.getNameByCode(type)+",是否重建:"+isReBuild+",受影响的记录数:"+total)); + "同步案例到ElasticSearch,是否重建:"+isReBuild+",受影响的记录数:"+total)); return Result.success(total); } diff --git a/src/main/java/com/nbclass/activity/mapper/ContentMapper.java b/src/main/java/com/nbclass/activity/mapper/ContentMapper.java index 67e110e..c292cc5 100644 --- a/src/main/java/com/nbclass/activity/mapper/ContentMapper.java +++ b/src/main/java/com/nbclass/activity/mapper/ContentMapper.java @@ -209,7 +209,9 @@ public interface ContentMapper extends MyMapper { * 更新案例状态 * @param contentId */ - void updateContentRelease(Long contentId,Integer release); + void updateContentRelease(@Param("contentId") Long contentId, + @Param("release") Integer release, + @Param("visibility") Integer visibility); /** * 根据案例id查询申请单信息 diff --git a/src/main/java/com/nbclass/activity/model/Content.java b/src/main/java/com/nbclass/activity/model/Content.java index 4d34df8..8ce2412 100644 --- a/src/main/java/com/nbclass/activity/model/Content.java +++ b/src/main/java/com/nbclass/activity/model/Content.java @@ -128,6 +128,11 @@ public class Content implements Serializable { */ private String name; + /** + * 上线时间 + */ + private Date onlineTime; + /** * 可见性 */ @@ -196,4 +201,7 @@ public class Content implements Serializable { //查询标签个数 控制前端案例列表的查看操作 private Integer count; + //用户角色Id + private String roleId; + } diff --git a/src/main/java/com/nbclass/activity/service/impl/ContentServiceImpl.java b/src/main/java/com/nbclass/activity/service/impl/ContentServiceImpl.java index 1ead819..a3afdce 100644 --- a/src/main/java/com/nbclass/activity/service/impl/ContentServiceImpl.java +++ b/src/main/java/com/nbclass/activity/service/impl/ContentServiceImpl.java @@ -303,9 +303,9 @@ public class ContentServiceImpl implements ContentService { @Override public long syncEsData(Content entity, boolean isReBuild) { - if(StringUtils.isBlank(entity.getType())) { + /*if(StringUtils.isBlank(entity.getType())) { throw new ParameterException("案例类型不能为空"); - } + }*/ if(isReBuild) { // 如果重建索引,则先把所有记录删除,这个也可用于删除脏数据。 esService.deleteDocByQuery(entity); @@ -388,7 +388,7 @@ public class ContentServiceImpl implements ContentService { mapper.saveCheck(check); } //更新案例状态(审核可能是下架重新申请的) - mapper.updateContentRelease(application.getContentId(),1); + mapper.updateContentRelease(application.getContentId(),1,2); } @Override @@ -434,7 +434,7 @@ public class ContentServiceImpl implements ContentService { //查询案例id Long contentId = mapper.getContentId(check.getApplicationId()); //更新案例状态 - mapper.updateContentRelease(contentId,2); + mapper.updateContentRelease(contentId,2,1); }else { //审核驳回 application.setStatus(3); @@ -463,7 +463,7 @@ public class ContentServiceImpl implements ContentService { //删除审核表信息 mapper.deleteCheck(application.getId()); //案例表状态修改为已下线 - mapper.updateContentRelease(contentId,4); + mapper.updateContentRelease(contentId,4,2); } diff --git a/src/main/java/com/nbclass/activity/service/impl/ElasticSearchServiceImpl.java b/src/main/java/com/nbclass/activity/service/impl/ElasticSearchServiceImpl.java index 4245dba..10e78ae 100644 --- a/src/main/java/com/nbclass/activity/service/impl/ElasticSearchServiceImpl.java +++ b/src/main/java/com/nbclass/activity/service/impl/ElasticSearchServiceImpl.java @@ -28,6 +28,7 @@ import org.elasticsearch.client.indices.CreateIndexResponse; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.BoolQueryBuilder; +import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.reindex.BulkByScrollResponse; import org.elasticsearch.index.reindex.DeleteByQueryRequest; @@ -165,13 +166,14 @@ public class ElasticSearchServiceImpl implements ElasticSearchService { // termQuery:不会对搜索词进行分词处理,而是作为一个整体与目标字段进行匹配,若完全匹配,则可查询到。 @Override public void deleteDocByQuery(Content entity) { - if(entity.getType()!=null) { + /*if(entity.getType()!=null) { throw new ParameterException("案例类型不能为空"); - } + }*/ try { DeleteByQueryRequest request = new DeleteByQueryRequest(es_index_content); request.setConflicts("proceed"); // 发生冲突即略过 - request.setQuery(QueryBuilders.termQuery("type", entity.getType())); + //request.setQuery(QueryBuilders.termQuery("type", entity.getType())); + request.setQuery(QueryBuilders.matchAllQuery()); BulkByScrollResponse bulkResponse = restHighLevelClient.deleteByQuery(request, RequestOptions.DEFAULT); TimeValue timeTaken = bulkResponse.getTook(); diff --git a/src/main/java/com/nbclass/system/service/UserService.java b/src/main/java/com/nbclass/system/service/UserService.java index 4518f9c..d619fce 100644 --- a/src/main/java/com/nbclass/system/service/UserService.java +++ b/src/main/java/com/nbclass/system/service/UserService.java @@ -98,4 +98,9 @@ public interface UserService { */ public void updateQyWxUser(User user); + /** + * 查询用户的职位信息 + * @return + */ + String getUserRole(String userId); } diff --git a/src/main/java/com/nbclass/system/service/impl/UserServiceImpl.java b/src/main/java/com/nbclass/system/service/impl/UserServiceImpl.java index e0399cf..e8cfb03 100644 --- a/src/main/java/com/nbclass/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/nbclass/system/service/impl/UserServiceImpl.java @@ -23,6 +23,7 @@ import com.nbclass.system.service.UserService; import com.nbclass.util.ResultUtil; import com.nbclass.vo.UserOnlineVo; import com.nbclass.vo.base.ResponseVo; +import tk.mybatis.mapper.entity.Example; /** * @version V1.0 @@ -42,8 +43,8 @@ public class UserServiceImpl implements UserService { @Autowired private RedisCacheManager redisCacheManager; */ - - + + @Autowired private UserMapper userMapper; @Autowired @@ -167,7 +168,7 @@ public class UserServiceImpl implements UserService { return kickoutSession; } */ - + @SuppressWarnings("unused") private UserOnlineVo getSessionBo(Session session){ //获取session登录信息。 @@ -227,5 +228,12 @@ public class UserServiceImpl implements UserService { } } + @Override + public String getUserRole(String userId) { + Example example = new Example(UserRole.class); + example.createCriteria().andEqualTo("userId",userId); + return userRoleMapper.selectOneByExample(example).getRoleId(); + } + } diff --git a/src/main/resources/mapper/activity/ContentMapper.xml b/src/main/resources/mapper/activity/ContentMapper.xml index ed2fc33..bd96b1d 100644 --- a/src/main/resources/mapper/activity/ContentMapper.xml +++ b/src/main/resources/mapper/activity/ContentMapper.xml @@ -28,6 +28,7 @@ + @@ -108,7 +109,7 @@ INNER JOIN data_dict_item item ON tags.tid = item.id INNER JOIN data_dict dict ON dict.id = item.dictid - + c.user_id = #{userId} @@ -349,8 +350,7 @@ u.user_id as name, u2.position, IF(a.status=2,c.`release`,IFNULL(a.status,5)) as status, - IFNULL(a.id,null) as applicationId, - IFNULL(ck.`status`,null) as checkStatus + IFNULL(a.id,null) as applicationId FROM content c LEFT JOIN application a on c.id = a.content_id @@ -413,8 +413,8 @@ update content set - - `release` = #{release} + + `release` = #{release},visibility = #{visibility},online_time = now() where id = #{contentId} diff --git a/src/main/resources/templates/content/application.html b/src/main/resources/templates/content/application.html index 9c9b00e..ce58d72 100644 --- a/src/main/resources/templates/content/application.html +++ b/src/main/resources/templates/content/application.html @@ -142,7 +142,7 @@ }}, {field: 'visibility', title: '可见性', align : "center", width: "60", formatter:function(value,row, index){ - return row.visibility === '1' ? "可见" : "不可见"; + return row.visibility === 1 ? "可见" : "不可见"; }}, {field: 'labelFeedback', title: '索引标签反馈次数', align : "center", width: "50"}, {field: 'purposeCase', title: '案例用途', align : "center", width: "60", formatter:function(value,row, index){ @@ -199,7 +199,7 @@ {field: 'comments', title: '评论数', align : "center", width: "50"}, {field: 'createtime', title: '创建时间', align : "center", width: "50"}, {field: 'updatetime', title: '修改时间', align : "center", width: "50"}, - {field: '', title: '上线时间', align : "center", width: "50"}, + {field: 'onlineTime', title: '上线时间', align : "center", width: "50"}, {field: 'position', title: '关联部门', align : "center", width: "50"}, {field: 'userName', title: '创建者', align : "center", width: "50"}, /* {field: 'title', title: '标题', align : "left", width: "25%", formatter: function(value, row, index) { @@ -221,16 +221,16 @@ let rejectHtml = ""; let seeHtml = ""; let editHtml = ""; - if(row.checkStatus === 1){ + if(row.status === 1){ adoptHtml = '发布'; rejectHtml = '驳回'; seeHtml = '查看'; editHtml = ' 修改'; - }else if(row.checkStatus === 2){ + }else if(row.status === 2){ adoptHtml = '下线'; seeHtml = '查看'; editHtml = ' 修改'; - }else if(row.checkStatus === 3){ + }else if(row.status === 3){ seeHtml = '查看'; } return adoptHtml+rejectHtml+editHtml+seeHtml; @@ -388,6 +388,10 @@ $("#tags").append("\n"); } }); + //使用refresh方法更新UI以匹配新状态 + $('.selectpicker').selectpicker('refresh'); + //render方法强制重新渲染引导程序 + $('.selectpicker').selectpicker('render'); }); } diff --git a/src/main/resources/templates/content/census.html b/src/main/resources/templates/content/census.html new file mode 100644 index 0000000..b57170e --- /dev/null +++ b/src/main/resources/templates/content/census.html @@ -0,0 +1,46 @@ + + + + + Title + + + +
+ + + diff --git a/src/main/resources/templates/content/edit2.html b/src/main/resources/templates/content/edit2.html index 4803e89..bc1a358 100644 --- a/src/main/resources/templates/content/edit2.html +++ b/src/main/resources/templates/content/edit2.html @@ -192,11 +192,12 @@ var caseType = [[${caseType}]]; } }); + //使用refresh方法更新UI以匹配新状态 + $('.selectpicker').selectpicker('refresh'); + //render方法强制重新渲染引导程序 + $('.selectpicker').selectpicker('render'); }); - //使用refresh方法更新UI以匹配新状态 - $('.selectpicker').selectpicker('refresh'); - //render方法强制重新渲染引导程序 - $('.selectpicker').selectpicker('render'); + } @@ -344,7 +345,6 @@ var caseType = [[${caseType}]]; function initLoad(){ - // 加载附件内容 if($('#dataid').val() > 0){ var attachment = '[[${attachment}]]'; @@ -434,11 +434,12 @@ var caseType = [[${caseType}]]; $(function () { + getDropDownBox(); + if($("#result").val() > 0){ $("#btn_save").hide(); } - getDropDownBox(); initLoad(); $('#tagNames').tagsInput({ diff --git a/src/main/resources/templates/content/list2.html b/src/main/resources/templates/content/list2.html index 948be37..6d0c62a 100644 --- a/src/main/resources/templates/content/list2.html +++ b/src/main/resources/templates/content/list2.html @@ -161,7 +161,7 @@ }}, {field: 'visibility', title: '可见性', align : "center", width: "60", formatter:function(value,row, index){ - return row.visibility === '1' ? "可见" : "不可见"; + return row.visibility === 1 ? "可见" : "不可见"; }}, {field: 'labelFeedback', title: '索引标签反馈次数', align : "center", width: "50"}, {field: 'purposeCase', title: '案例用途', align : "center", width: "60", formatter:function(value,row, index){ @@ -216,7 +216,7 @@ {field: 'comments', title: '评论数', align : "center", width: "50"}, {field: 'createtime', title: '创建时间', align : "center", width: "50"}, {field: 'updatetime', title: '修改时间', align : "center", width: "50"}, - {field: '', title: '上线时间', align : "center", width: "50"}, + {field: 'onlineTime', title: '上线时间', align : "center", width: "50"}, {field: 'position', title: '关联部门', align : "center", width: "50"}, {field: 'userName', title: '创建者', align : "center", width: "450"}, /* {field: 'title', title: '标题', align : "left", width: "25%", formatter: function(value, row, index) { @@ -247,6 +247,7 @@ }else { //这里的1标记为查看状态 seeHtml = '查看'; + delHtml = ' 删除'; } }else if(row.status === 1){ if($("#name").val() !== 'admin'){ @@ -254,21 +255,24 @@ } //这里的1标记为查看状态 seeHtml = '查看'; + delHtml = ' 删除'; }else if(row.status === 2 || row.status === 3){ if($("#name").val() !== 'admin'){ submitHtml = '更新'; } seeHtml = '查看'; + delHtml = ' 删除'; } if(row.status === 2){ if($("#name").val() !== 'admin'){ offlineHtml = '下线'; } seeHtml = '查看'; - } - if(row.status === 3){ delHtml = ' 删除'; } + /*if(row.status === 3){ + delHtml = ' 删除'; + }*/ return offlineHtml+submitHtml+editHtml + delHtml + seeHtml; }} @@ -419,6 +423,10 @@ } }); }); + //使用refresh方法更新UI以匹配新状态 + $('.selectpicker').selectpicker('refresh'); + //render方法强制重新渲染引导程序 + $('.selectpicker').selectpicker('render'); } //提交审核 diff --git a/src/main/resources/templates/index/index.html b/src/main/resources/templates/index/index.html index ee9685f..d710a38 100644 --- a/src/main/resources/templates/index/index.html +++ b/src/main/resources/templates/index/index.html @@ -40,7 +40,8 @@ - + +