diff --git a/README.md b/README.md index e69de29bb..9697411cd 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,36 @@ +## 系统模块 + +~~~ +com.microservices +├── microservices-ui // 前端框架 +├── microservices-gateway // 网关模块 +├── microservices-auth // 认证中心 +├── microservices-api // 接口模块 +│ └── microservices-api-system // 系统接口 +├── microservices-common // 通用模块 +│ └── microservices-common-async // 异步线程池配置 +│ └── microservices-common-core // 核心模块 +│ └── microservices-common-datascope // 权限范围 +│ └── microservices-common-datasource // 多数据源 +│ └── microservices-common-httpClient // http调用 +│ └── microservices-common-log // 日志记录 +│ └── microservices-common-redis // 缓存服务 +│ └── microservices-common-seata // seata分布式事务 +│ └── microservices-common-security // 安全模块 +│ └── microservices-common-swagger // 系统接口 +├── microservices-modules // 业务模块 +│ └── microservices-cms // 内容管理模块 +│ └── microservices-dms // 数据管理体系模块 +│ └── microservices-dss // 数据统计系统模块 +│ └── microservices-file // 文件服务 +│ └── microservices-gen // 代码生成 +│ └── microservices-job // 定时任务 +│ └── microservices-pms // 项目管理系统模块 +│ └── microservices-system // 系统模块 +│ └── microservices-wiki // Wiki模块 +│ └── microservices-zone // 特色专区系统模块 +├── microservices-visual // 图形化管理模块 +│ └── microservices-visual-monitor // 监控中心 +├──pom.xml // 公共依赖 +~~~ + diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementDictDataController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementDictDataController.java new file mode 100644 index 000000000..8befc0269 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementDictDataController.java @@ -0,0 +1,125 @@ +package com.microservices.dms.achievementLibrary.controller; + +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.microservices.common.core.utils.StringUtils; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.system.api.domain.SysDictData; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.common.security.annotation.RequiresPermissions; +import com.microservices.dms.achievementLibrary.domain.AchievementDictData; +import com.microservices.dms.achievementLibrary.service.IAchievementDictDataService; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.page.TableDataInfo; + +/** + * 成果相关字典Controller + * + * @author microservices + * @date 2025-05-23 + */ +@Api(tags = "数据管理体系-成果字典管理") +@RestController +@RequestMapping("/achDict") +public class AchievementDictDataController extends BaseController +{ + @Autowired + private IAchievementDictDataService achievementDictDataService; + + /** + * 查询成果相关字典列表 + */ + @GetMapping("/list") + public TableDataInfo list(AchievementDictData achievementDictData) + { + startPage(); + List list = achievementDictDataService.selectAchievementDictDataList(achievementDictData); + return getDataTable(list); + } + + /** + * 导出成果相关字典列表 + */ + @Log(title = "成果相关字典", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AchievementDictData achievementDictData) + { + List list = achievementDictDataService.selectAchievementDictDataList(achievementDictData); + ExcelUtil util = new ExcelUtil(AchievementDictData.class); + util.exportExcel(response, list, "成果相关字典数据"); + } + + /** + * 获取成果相关字典详细信息 + */ + @GetMapping(value = "/{dictCode}") + public AjaxResult getInfo(@PathVariable("dictCode") Long dictCode) + { + return success(achievementDictDataService.selectAchievementDictDataByDictCode(dictCode)); + } + + /** + * 新增成果相关字典 + */ + @Log(title = "成果相关字典", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AchievementDictData achievementDictData) + { + return toAjax(achievementDictDataService.insertAchievementDictData(achievementDictData)); + } + + /** + * 修改成果相关字典 + */ + @Log(title = "成果相关字典", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AchievementDictData achievementDictData) + { + return toAjax(achievementDictDataService.updateAchievementDictData(achievementDictData)); + } + + /** + * 删除成果相关字典 + */ + @Log(title = "成果相关字典", businessType = BusinessType.DELETE) + @DeleteMapping("/{dictCodes}") + public AjaxResult remove(@PathVariable Long[] dictCodes) + { + return toAjax(achievementDictDataService.deleteAchievementDictDataByDictCodes(dictCodes)); + } + + /** + * 根据字典类型查询字典数据信息 + */ + @ApiOperation("根据成果字典分类查询成果值") + @GetMapping(value = "/getDictDateByType") + public AjaxResult getDictDateByType(String dictType) + { + List data = achievementDictDataService.selectDictDataByType(dictType); + return success(data); + } + + @ApiOperation("根据成果字典分类") + @GetMapping(value = "/getDictTypes") + public AjaxResult getDictTypes() + { + List data = achievementDictDataService.getDictTypes(); + return success(data); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java index 3a929189f..c4a034636 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java @@ -210,8 +210,9 @@ public class AchievementsController extends BaseController { } @ApiOperation("根据成果ID,获取近7日成果点击数量(折线图)") @GetMapping("/get7AddClickById") - public AjaxResult get7AddClickById(String id) { - return success(achievementsService.get7AddClickById(id)); + public AjaxResult get7AddClickById(String id,@RequestParam(value = "clickType",required = false, defaultValue = "Achievements") + String clickType) { + return success(achievementsService.get7AddClickById(id,clickType)); } @ApiOperation("根据成果ID,获取成果的相关行为数据统计(点击量、搜索量、附件下载量、收藏、关注)") @@ -219,10 +220,8 @@ public class AchievementsController extends BaseController { public AjaxResult getActDataStatisticById(Long id) { return success(achievementsService.getActDataStatisticById(id)); } - /** - * 根据领域,将成果数据进行分类 - * - */ + + @ApiOperation("根据领域,将成果数据进行分类") @GetMapping("/getAreaStatistic") public AjaxResult getAreaStatistic(String areaKey) { @@ -239,6 +238,36 @@ public class AchievementsController extends BaseController { return success(achievementsService.getRelatedAch(id,sourceId)); } + + @ApiOperation(value = "获取开源竞赛的相关成果") + @GetMapping("/getRelatedAchCompetition") + public AjaxResult getRelatedAchCompetition(Long id,Long sourceId) + { + return success(achievementsService.getRelatedAchCompetition(id,sourceId)); + } + + + @ApiOperation(value = "获取创客任务的相关成果") + @GetMapping("/getRelatedAchTask") + public AjaxResult getRelatedAchTask(Long id,Long sourceId) + { + return success(achievementsService.getRelatedAchTask(id,sourceId)); + } + + @ApiOperation(value = "获取专家-创客任务的相关成果") + @GetMapping("/getRelatedAchTaskOfExpert") + public AjaxResult getRelatedAchTaskOfExpert(Long expertId) + { + return success(achievementsService.getRelatedAchTaskOfExpert(expertId)); + } + + @ApiOperation(value = "获取专家-开源竞赛的相关成果") + @GetMapping("/getRelatedAchCompetitionOfExpert") + public AjaxResult getRelatedAchCompetitionOfExpert(Long expertId) + { + return success(achievementsService.getRelatedAchCompetitionOfExpert(expertId)); + } + @ApiOperation(value = "搜索行为数据记录") @GetMapping("/getSearchResult") public AjaxResult getSearchResult(String achName,Long userId) diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BlockChainController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BlockChainController.java new file mode 100644 index 000000000..729222209 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BlockChainController.java @@ -0,0 +1,31 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.dms.achievementLibrary.domain.TokenListVo; +import com.microservices.dms.achievementLibrary.service.IAchievementsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/blockChain") +@Api(tags = "数据产权子系统") +public class BlockChainController extends BaseController { + + @Autowired + private IAchievementsService achievementsService; + +// @GetMapping("/projectTokenList") +// @ApiOperation(value = "项目token列表") +// public TableDataInfo projectTokenList() { +// startPage(); +// List list = achievementsService.projectTokenList(); +// return getDataTable(list); +// } +} \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java index 3679191d2..737a06de6 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java @@ -37,7 +37,7 @@ public class ExpertDashboardController { } @GetMapping(value = "getExpertAduit") - @ApiOperation(value = "近一年专家评审作品数") + @ApiOperation(value = "专家评审作品数排序") public AjaxResult getExpertAduit() { return AjaxResult.success(expertDashboardService.getExpertAduit()); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java index fc4f7db10..ee973438a 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java @@ -36,25 +36,25 @@ public class MemoDashboardController { return AjaxResult.success(memoDashboardService.getMemoTotalByYear()); } - @GetMapping(value = "getForumSectionStatistic(") + @GetMapping(value = "getForumSectionStatistic") @ApiOperation(value = "帖子分类") public AjaxResult getForumSectionStatistic() { return AjaxResult.success(memoDashboardService.getForumSectionStatistic()); } - @GetMapping(value = "getAddMemoStatistic(") + @GetMapping(value = "getAddMemoStatistic") @ApiOperation(value = "近一年新增帖子数") public AjaxResult getAddMemoStatistic() { return AjaxResult.success(memoDashboardService.getAddMemoStatistic()); } - @GetMapping(value = "getTop5Memos(") + @GetMapping(value = "getTop5Memos") @ApiOperation(value = "年度帖子热度top5") public AjaxResult getTop5Memos() { return AjaxResult.success(memoDashboardService.getTop5Memos()); } - @GetMapping(value = "get7DayPaise(") + @GetMapping(value = "get7DayPaise") @ApiOperation(value = "近7日帖子点赞数") public AjaxResult get7DayPaise() { return AjaxResult.success(memoDashboardService.get7DayPaise()); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java index f2e0049b5..6bf774a70 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java @@ -43,6 +43,17 @@ public class SchoolEnterpriseAchievementsController extends BaseController return getDataTable(list); } + /** + * 查询校企成果列表 + */ + @GetMapping("/listFront") + public TableDataInfo listFront(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + startPage(); + List list = schoolEnterpriseAchievementsService.listFront(schoolEnterpriseAchievements); + return getDataTable(list); + } + /** * 导出校企成果列表 */ diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java index ec419c8bb..67bae1209 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java @@ -6,6 +6,7 @@ public class AchQueryVo { private String source;//来源 private String achievementName;//名称 private Long userId; + private String showAchievementName; public String getAreaQuery() { return areaQuery; } @@ -29,4 +30,20 @@ public class AchQueryVo { public void setAchievementName(String achievementName) { this.achievementName = achievementName; } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getShowAchievementName() { + return showAchievementName; + } + + public void setShowAchievementName(String showAchievementName) { + this.showAchievementName = showAchievementName; + } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java index 42b7ac5a9..364f4bcf8 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java @@ -9,6 +9,7 @@ public class AchRelatedVo { private String source; private Long sourceId; private String achRelateName; + private String showAchievementName; public Long getId() { return id; @@ -73,4 +74,12 @@ public class AchRelatedVo { public void setAchRelateName(String achRelateName) { this.achRelateName = achRelateName; } + + public String getShowAchievementName() { + return showAchievementName; + } + + public void setShowAchievementName(String showAchievementName) { + this.showAchievementName = showAchievementName; + } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementDictData.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementDictData.java new file mode 100644 index 000000000..86ff46f36 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementDictData.java @@ -0,0 +1,112 @@ +package com.microservices.dms.achievementLibrary.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.microservices.common.core.annotation.Excel; +import com.microservices.common.core.web.domain.BaseEntity; + +/** + * 成果相关字典对象 achievement_dict_data + * + * @author microservices + * @date 2025-05-23 + */ +public class AchievementDictData extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 字典编码 */ + private Long dictCode; + + /** 字典排序 */ + @Excel(name = "字典排序") + private Integer dictSort; + + /** 字典标签 */ + @Excel(name = "字典标签") + private String dictLabel; + + /** 字典键值 */ + @Excel(name = "字典键值") + private String dictValue; + + /** 字典类型 */ + @Excel(name = "字典类型") + private String dictType; + + /** 状态(0正常 1停用) */ + @Excel(name = "状态", readConverterExp = "0=正常,1=停用") + private String status; + + public void setDictCode(Long dictCode) + { + this.dictCode = dictCode; + } + + public Long getDictCode() + { + return dictCode; + } + public void setDictSort(Integer dictSort) + { + this.dictSort = dictSort; + } + + public Integer getDictSort() + { + return dictSort; + } + public void setDictLabel(String dictLabel) + { + this.dictLabel = dictLabel; + } + + public String getDictLabel() + { + return dictLabel; + } + public void setDictValue(String dictValue) + { + this.dictValue = dictValue; + } + + public String getDictValue() + { + return dictValue; + } + public void setDictType(String dictType) + { + this.dictType = dictType; + } + + public String getDictType() + { + return dictType; + } + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("dictCode", getDictCode()) + .append("dictSort", getDictSort()) + .append("dictLabel", getDictLabel()) + .append("dictValue", getDictValue()) + .append("dictType", getDictType()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java index fcb87b180..0fc46847d 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java @@ -2,6 +2,7 @@ package com.microservices.dms.achievementLibrary.domain; import java.util.Date; import java.util.List; +import java.util.Map; import com.fasterxml.jackson.annotation.JsonFormat; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; @@ -29,6 +30,10 @@ public class Achievements extends BaseEntity { */ @Excel(name = "成果名称") private String achievementName; + /** + * 成果展示名称 + */ + private String showAchievementName; /** * 成果领域1 @@ -181,6 +186,23 @@ public class Achievements extends BaseEntity { private String userNickName; public String gender; private String userLogin; + private List> dockingUserInfo; + + public List> getDockingUserInfo() { + return dockingUserInfo; + } + + public void setDockingUserInfo(List> dockingUserInfo) { + this.dockingUserInfo = dockingUserInfo; + } + + public String getShowAchievementName() { + return showAchievementName; + } + + public void setShowAchievementName(String showAchievementName) { + this.showAchievementName = showAchievementName; + } public String getUserImg() { return userImg; @@ -480,38 +502,4 @@ public class Achievements extends BaseEntity { return attachments; } - @Override - public String toString() { - return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("achievementName", getAchievementName()) - .append("field1", getField1()) - .append("field2", getField2()) - .append("field3", getField3()) - .append("achievementType", getAchievementType()) - .append("source", getSource()) - .append("sourceId", getSourceId()) - .append("sourceLink", getSourceLink()) - .append("tags", getTags()) - .append("summary", getSummary()) - .append("publishingUnit", getPublishingUnit()) - .append("address", getAddress()) - .append("isFeatured", getIsFeatured()) - .append("contactPerson", getContactPerson()) - .append("contactNumber", getContactNumber()) - .append("ownerId", getOwnerId()) - .append("ownerName", getOwnerName()) - .append("status", getStatus()) - .append("details", getDetails()) - .append("reviewer", getReviewer()) - .append("reviewDate", getReviewDate()) - .append("reviewComments", getReviewComments()) - .append("images", getImages()) - .append("attachments", getAttachments()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .toString(); - } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/HotAchVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/HotAchVo.java new file mode 100644 index 000000000..b45c23ddc --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/HotAchVo.java @@ -0,0 +1,95 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class HotAchVo { + + private int watcher; + private int faviter; + private int total; + private String gender; + private String name; + private String showAchievementName; + private Long id; + private String userNickName; + private String userName; + private String userImg; + + public String getUserImg() { + return userImg; + } + + public void setUserImg(String userImg) { + this.userImg = userImg; + } + + public int getWatcher() { + return watcher; + } + + public void setWatcher(int watcher) { + this.watcher = watcher; + } + + public int getFaviter() { + return faviter; + } + + public void setFaviter(int faviter) { + this.faviter = faviter; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getUserNickName() { + return userNickName; + } + + public void setUserNickName(String userNickName) { + this.userNickName = userNickName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getShowAchievementName() { + return showAchievementName; + } + + public void setShowAchievementName(String showAchievementName) { + this.showAchievementName = showAchievementName; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java index 026fb8a67..589071613 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java @@ -1,6 +1,7 @@ package com.microservices.dms.achievementLibrary.domain; import java.util.Date; +import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -167,6 +168,46 @@ public class SchoolEnterpriseAchievements extends BaseEntity { @Excel(name = "成果附件") private String attachments; private Integer achievementStatus; + //成果小类型 + private String achievementLittleType; + //成果状态 + private String achievementCurStatus; + //团队名称 + private String teamName; + + private List teamList; + + public List getTeamList() { + return teamList; + } + + public void setTeamList(List teamList) { + this.teamList = teamList; + } + + public String getTeamName() { + return teamName; + } + + public void setTeamName(String teamName) { + this.teamName = teamName; + } + + public String getAchievementLittleType() { + return achievementLittleType; + } + + public void setAchievementLittleType(String achievementLittleType) { + this.achievementLittleType = achievementLittleType; + } + + public String getAchievementCurStatus() { + return achievementCurStatus; + } + + public void setAchievementCurStatus(String achievementCurStatus) { + this.achievementCurStatus = achievementCurStatus; + } public Integer getAchievementStatus() { return achievementStatus; diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/TokenListVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/TokenListVo.java new file mode 100644 index 000000000..f76cb9f9e --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/TokenListVo.java @@ -0,0 +1,18 @@ +package com.microservices.dms.achievementLibrary.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +@Data +public class TokenListVo { + + private Long id; // 项目ID + private String name; // 项目名称 + private Long totalToken; // 项目总Token + private String createBy; // 创建人 + private Long currentToken; // 当前Token + private String repositoryName; // 仓库名称 + private Long repositoryId; // 仓库名称 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Data createdOn; // 项目创建时间(以毫秒为单位) +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementDictDataMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementDictDataMapper.java new file mode 100644 index 000000000..39747062f --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementDictDataMapper.java @@ -0,0 +1,74 @@ +package com.microservices.dms.achievementLibrary.mapper; + +import java.util.List; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.AchievementDictData; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 成果相关字典Mapper接口 + * + * @author microservices + * @date 2025-05-23 + */ +@Mapper +@Slave +public interface AchievementDictDataMapper +{ + /** + * 查询成果相关字典 + * + * @param dictCode 成果相关字典主键 + * @return 成果相关字典 + */ + public AchievementDictData selectAchievementDictDataByDictCode(Long dictCode); + + /** + * 查询成果相关字典列表 + * + * @param achievementDictData 成果相关字典 + * @return 成果相关字典集合 + */ + public List selectAchievementDictDataList(AchievementDictData achievementDictData); + + /** + * 新增成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + public int insertAchievementDictData(AchievementDictData achievementDictData); + + /** + * 修改成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + public int updateAchievementDictData(AchievementDictData achievementDictData); + + /** + * 删除成果相关字典 + * + * @param dictCode 成果相关字典主键 + * @return 结果 + */ + public int deleteAchievementDictDataByDictCode(Long dictCode); + + /** + * 批量删除成果相关字典 + * + * @param dictCodes 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAchievementDictDataByDictCodes(Long[] dictCodes); + + List selectDictDataByType(@Param("dictType") String dictType); + + int selectDictDataByLabel(@Param("label") String label,@Param("type") String type); + + List getDictTypes(); +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java index 20e5502aa..93c9fa09a 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java @@ -66,4 +66,6 @@ public interface AchievementTeamMapper public int deleteAchievementTeamByIds(Long[] ids); void deleteAchievementTeamByAId(@Param("aid") Long aid); + + List selectAchievementTeamByAchId(@Param("achId") Long achId); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java index 35284f5b3..c898e5c57 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java @@ -1,14 +1,13 @@ package com.microservices.dms.achievementLibrary.mapper; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import com.microservices.common.datasource.annotation.Master; import com.microservices.common.datasource.annotation.Slave; import com.microservices.dms.achievementLibrary.domain.*; import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.CompetitionResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.TaskResourceLibrary; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; @@ -91,7 +90,7 @@ public interface AchievementsMapper { List> getAchievement(@Param("s") Date s, @Param("e") Date e, @Param("t") String source); - List> getHotAchievement(); + List getHotAchievement(); Map indexProjectStatistic(); @@ -115,7 +114,7 @@ public interface AchievementsMapper { List> getAchievementType(); - List getAchievementActData(); + List getAchievementActData(@Param("s") Date s, @Param("e") Date e); List> getAchievementDomain(); @@ -140,4 +139,23 @@ public interface AchievementsMapper { List getExpertAreasByName(@Param("areaName") String areaName); List getAllSourceId(@Param("id")Long id, @Param("sourceId")Long sourceId); + + List getAllSourceIdCompetition(@Param("id")Long id, @Param("sourceId")Long sourceId); + + List getAllSourceIdTask(@Param("id")Long id, @Param("sourceId")Long sourceId); + + List getRelatedAchTaskOfExpert(@Param("id")Long id); + + List getRelatedAchCompetitionOfExpert(@Param("id")Long id); + + List> getAchievementAddYearlyData(@Param("s") Date s, @Param("e") Date e); + + List getAchievementActDataW(@Param("s") Date s, @Param("e") Date e); + + List getAchievementActDataC(@Param("s") Date s, @Param("e") Date e); + + List getAchievementActDataD(@Param("s") Date s, @Param("e") Date e); + List getAchievementActDataF(@Param("s") Date s, @Param("e") Date e); + + List> getDockingUserInfo(@Param("id") Long id); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/BigScreenStatisticService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/BigScreenStatisticService.java index fddf8c5a8..5b62f6a4d 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/BigScreenStatisticService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/BigScreenStatisticService.java @@ -1,5 +1,6 @@ package com.microservices.dms.achievementLibrary.service; +import com.alibaba.nacos.shaded.com.google.common.collect.Maps; import com.microservices.dms.achievementLibrary.domain.KeyValueVo; import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; @@ -23,7 +24,7 @@ public class BigScreenStatisticService { Date[] days = DateUtil.getDays(0, 6); Map m = achievementsMapper.getAchievement(days[0], days[1], source) .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); - List dateStr = DateUtil.getDateStrYYYYMMDD(days[0], days[1]); + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); Date[] lastDays = DateUtil.getDays(7, 13); long lastSum = Optional.ofNullable(achievementsMapper.countAchievementBySource(lastDays[0], lastDays[1], source)).orElse(0L); long sum = Optional.ofNullable(achievementsMapper.countAchievementBySource(null, null, source)).orElse(0L); @@ -58,18 +59,99 @@ public class BigScreenStatisticService { return achievementsMapper.getAchievementType(); } - public Map> getAchievementActData() { - List list = achievementsMapper.getAchievementActData(); - Map> res = list.stream().collect(Collectors.groupingBy(KeyValueVo::getKey)); - return res; + public List> getAchievementActData() { + Date[] days = DateUtil.getDays(0, 6); + Map wlist = achievementsMapper.getAchievementActDataW(days[0], days[1]).stream().collect(Collectors.toMap(KeyValueVo::getName, KeyValueVo::getValue)); + Map clist = achievementsMapper.getAchievementActDataC(days[0], days[1]).stream().collect(Collectors.toMap(KeyValueVo::getName, KeyValueVo::getValue)); + Map dlist = achievementsMapper.getAchievementActDataD(days[0], days[1]).stream().collect(Collectors.toMap(KeyValueVo::getName, KeyValueVo::getValue)); + Map flist = achievementsMapper.getAchievementActDataF(days[0], days[1]).stream().collect(Collectors.toMap(KeyValueVo::getName, KeyValueVo::getValue)); + + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); + List wres = new ArrayList<>(); + List cres = new ArrayList<>(); + List dres = new ArrayList<>(); + List fres = new ArrayList<>(); + + for (String s : dateStr) { + Long a = wlist.getOrDefault(s, 0L); + KeyValueVo k1 = new KeyValueVo(); + k1.setKey(s); + k1.setValue(a); + k1.setName("关注"); + wres.add(k1); + } + + for (String s : dateStr) { + Long a = clist.getOrDefault(s, 0L); + KeyValueVo k1 = new KeyValueVo(); + k1.setKey(s); + k1.setValue(a); + k1.setName("浏览"); + cres.add(k1); + } + + + for (String s : dateStr) { + Long a = dlist.getOrDefault(s, 0L); + KeyValueVo k1 = new KeyValueVo(); + k1.setKey(s); + k1.setValue(a); + k1.setName("下载"); + dres.add(k1); + } + + for (String s : dateStr) { + Long a = flist.getOrDefault(s, 0L); + KeyValueVo k1 = new KeyValueVo(); + k1.setKey(s); + k1.setValue(a); + k1.setName("收藏"); + fres.add(k1); + } + + List> r = new ArrayList<>(); + Map w = new HashMap<>(); + w.put("key", "关注"); + w.put("value", wres); + Map c = new HashMap<>(); + c.put("key","浏览"); + c.put("value", cres); + Map d = new HashMap<>(); + d.put("key","下载"); + d.put("value", dres); + Map f = new HashMap<>(); + f.put("key", "收藏"); + f.put("value", fres); + + + r.add(w); + r.add(c); + r.add(d); + r.add(f); + + return r; } public List> getAchievementDomain() { return achievementsMapper.getAchievementDomain(); } - public List> getAchievementAddYearly() { - return achievementsMapper.getAchievementAddYearly(); + public Object getAchievementAddYearly() { + + Date[] currentYear = DateUtil.getLast12Months(); + + Map m = achievementsMapper.getAchievementAddYearlyData(currentYear[0],currentYear[1]) + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + List dateStr = DateUtil.getDateStrYYYYMM(currentYear[0], currentYear[1]); + List> res = new ArrayList<>(); + for (String s : dateStr) { + Long a = m.getOrDefault(s, 0L); + KeyValVo k1 = new KeyValVo<>(); + k1.setK(s); + k1.setV(a); + res.add(k1); + } + return res; } public List> getAchievementHotRank() { @@ -102,11 +184,11 @@ public class BigScreenStatisticService { } public List> getCompetitionYearlyPaperAdd() { - Date[] currentYear = DateUtil.getCurrentYear(); + Date[] currentYear = DateUtil.getLast12Months(); Map m = competitionResourceLibraryMapper.getCompetitionYearlyPaperAdd(currentYear[0],currentYear[1]) .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); - List dateStr = DateUtil.getDateStrMMDD(currentYear[0], currentYear[1]); + List dateStr = DateUtil.getDateStrYYYYMM(currentYear[0], currentYear[1]); List> res = new ArrayList<>(); for (String s : dateStr) { Long a = m.getOrDefault(s, 0L); @@ -119,12 +201,11 @@ public class BigScreenStatisticService { } public List> getCompetitionYearlyFinish() { - Date[] currentYear = DateUtil.getCurrentYear(); - Date[] YearEndOfCur = DateUtil.getCurrentYearEndOf(LocalDate.now()); + Date[] currentYear = DateUtil.getLast12Months(); - Map m = competitionResourceLibraryMapper.getCompetitionYearlyFinish(YearEndOfCur[0],YearEndOfCur[1]) + Map m = competitionResourceLibraryMapper.getCompetitionYearlyFinish(currentYear[0],currentYear[1]) .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); - List dateStr = DateUtil.getDateStrMMDD(currentYear[0], currentYear[1]); + List dateStr = DateUtil.getDateStrYYYYMM(currentYear[0], currentYear[1]); List> res = new ArrayList<>(); for (String s : dateStr) { Long a = m.getOrDefault(s, 0L); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementDictDataService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementDictDataService.java new file mode 100644 index 000000000..2274e632c --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementDictDataService.java @@ -0,0 +1,67 @@ +package com.microservices.dms.achievementLibrary.service; + +import java.util.List; +import com.microservices.dms.achievementLibrary.domain.AchievementDictData; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import org.apache.ibatis.annotations.Param; + +/** + * 成果相关字典Service接口 + * + * @author microservices + * @date 2025-05-23 + */ +public interface IAchievementDictDataService +{ + /** + * 查询成果相关字典 + * + * @param dictCode 成果相关字典主键 + * @return 成果相关字典 + */ + public AchievementDictData selectAchievementDictDataByDictCode(Long dictCode); + + /** + * 查询成果相关字典列表 + * + * @param achievementDictData 成果相关字典 + * @return 成果相关字典集合 + */ + public List selectAchievementDictDataList(AchievementDictData achievementDictData); + + /** + * 新增成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + public int insertAchievementDictData(AchievementDictData achievementDictData); + + /** + * 修改成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + public int updateAchievementDictData(AchievementDictData achievementDictData); + + /** + * 批量删除成果相关字典 + * + * @param dictCodes 需要删除的成果相关字典主键集合 + * @return 结果 + */ + public int deleteAchievementDictDataByDictCodes(Long[] dictCodes); + + /** + * 删除成果相关字典信息 + * + * @param dictCode 成果相关字典主键 + * @return 结果 + */ + public int deleteAchievementDictDataByDictCode(Long dictCode); + + List selectDictDataByType(String dictType); + + List getDictTypes(); +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementsService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementsService.java index f56de91d5..59ecb66ac 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementsService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementsService.java @@ -5,6 +5,8 @@ import java.util.Map; import com.microservices.dms.achievementLibrary.domain.*; import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.CompetitionResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.TaskResourceLibrary; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; /** @@ -76,7 +78,7 @@ public interface IAchievementsService { Map getUerActionData(); - List> getHotAchievement(); + List getHotAchievement(); List> get7DayAdd(AchQueryVo achQueryVo); @@ -94,7 +96,7 @@ public interface IAchievementsService { AchievementBehaviorSumVo getActDataStatisticById(Long id); - List> get7AddClickById(String id); + List> get7AddClickById(String id, String clickType); AchievementBehaviorSumVo getWatchFavoriteStatusById(Long id, Long userId); @@ -107,4 +109,12 @@ public interface IAchievementsService { List getProjectAreasByName(String areaName); List getExpertAreasByName(String areaName); + + List getRelatedAchCompetition(Long id, Long sourceId); + + List getRelatedAchTask(Long id, Long sourceId); + + List getRelatedAchTaskOfExpert(Long id); + + List getRelatedAchCompetitionOfExpert(Long id); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ISchoolEnterpriseAchievementsService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ISchoolEnterpriseAchievementsService.java index e85ba935d..d42b09dfd 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ISchoolEnterpriseAchievementsService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ISchoolEnterpriseAchievementsService.java @@ -60,4 +60,6 @@ public interface ISchoolEnterpriseAchievementsService public int deleteSchoolEnterpriseAchievementsById(Long id); Long topStatistic(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + List listFront(SchoolEnterpriseAchievements schoolEnterpriseAchievements); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/MemoDashboardService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/MemoDashboardService.java index d5f8898d9..22fac0e7d 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/MemoDashboardService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/MemoDashboardService.java @@ -1,5 +1,6 @@ package com.microservices.dms.achievementLibrary.service; +import com.microservices.common.core.utils.StringUtils; import com.microservices.dms.achievementLibrary.domain.AchQueryVo; import com.microservices.dms.achievementLibrary.domain.KeyValueVo; import com.microservices.dms.achievementLibrary.domain.MemoTotalVo; @@ -33,7 +34,7 @@ public class MemoDashboardService { * 原创、非原创 * @return */ - public KeyValueVo getIsOriginalStatistic() { + public List getIsOriginalStatistic() { return memoResourceLibraryMapper.getIsOriginalStatistic(); } @@ -74,7 +75,7 @@ public class MemoDashboardService { * @return */ public List> get7DayPaise() { - Date[] days = DateUtil.getDays(1, 7); + Date[] days = DateUtil.getDays(0, 6); Map w = memoResourceLibraryMapper.get7DayPaise(days[0], days[1]) .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementDictDataServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementDictDataServiceImpl.java new file mode 100644 index 000000000..a9a46c397 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementDictDataServiceImpl.java @@ -0,0 +1,116 @@ +package com.microservices.dms.achievementLibrary.service.impl; + +import java.util.Collections; +import java.util.List; +import com.microservices.common.core.utils.DateUtils; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.microservices.dms.achievementLibrary.mapper.AchievementDictDataMapper; +import com.microservices.dms.achievementLibrary.domain.AchievementDictData; +import com.microservices.dms.achievementLibrary.service.IAchievementDictDataService; + +/** + * 成果相关字典Service业务层处理 + * + * @author microservices + * @date 2025-05-23 + */ +@Service +public class AchievementDictDataServiceImpl implements IAchievementDictDataService +{ + @Autowired + private AchievementDictDataMapper achievementDictDataMapper; + + /** + * 查询成果相关字典 + * + * @param dictCode 成果相关字典主键 + * @return 成果相关字典 + */ + @Override + public AchievementDictData selectAchievementDictDataByDictCode(Long dictCode) + { + return achievementDictDataMapper.selectAchievementDictDataByDictCode(dictCode); + } + + /** + * 查询成果相关字典列表 + * + * @param achievementDictData 成果相关字典 + * @return 成果相关字典 + */ + @Override + public List selectAchievementDictDataList(AchievementDictData achievementDictData) + { + return achievementDictDataMapper.selectAchievementDictDataList(achievementDictData); + } + + /** + * 新增成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + @Override + public int insertAchievementDictData(AchievementDictData achievementDictData) + { + //判断字典是否存在,存在则不管,不存在则新增 + String label = achievementDictData.getDictLabel(); + String type = achievementDictData.getDictType(); + int num = achievementDictDataMapper.selectDictDataByLabel(label,type); + if (num > 0){ + return 0; + }else{ + achievementDictData.setCreateTime(DateUtils.getNowDate()); + return achievementDictDataMapper.insertAchievementDictData(achievementDictData); + } + } + + /** + * 修改成果相关字典 + * + * @param achievementDictData 成果相关字典 + * @return 结果 + */ + @Override + public int updateAchievementDictData(AchievementDictData achievementDictData) + { + achievementDictData.setUpdateTime(DateUtils.getNowDate()); + return achievementDictDataMapper.updateAchievementDictData(achievementDictData); + } + + /** + * 批量删除成果相关字典 + * + * @param dictCodes 需要删除的成果相关字典主键 + * @return 结果 + */ + @Override + public int deleteAchievementDictDataByDictCodes(Long[] dictCodes) + { + return achievementDictDataMapper.deleteAchievementDictDataByDictCodes(dictCodes); + } + + /** + * 删除成果相关字典信息 + * + * @param dictCode 成果相关字典主键 + * @return 结果 + */ + @Override + public int deleteAchievementDictDataByDictCode(Long dictCode) + { + return achievementDictDataMapper.deleteAchievementDictDataByDictCode(dictCode); + } + + @Override + public List selectDictDataByType(String dictType) { + return achievementDictDataMapper.selectDictDataByType(dictType); + } + + @Override + public List getDictTypes() { + return achievementDictDataMapper.getDictTypes(); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementsServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementsServiceImpl.java index d62f21f92..d275a16ea 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementsServiceImpl.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementsServiceImpl.java @@ -5,20 +5,25 @@ import java.util.stream.Collectors; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; +import com.alibaba.fastjson2.JSONObject; import com.microservices.common.core.utils.DateUtils; import com.microservices.common.core.utils.StringUtils; +import com.microservices.common.httpClient.service.HttpAPIService; import com.microservices.common.security.utils.SecurityUtils; import com.microservices.dms.achievementLibrary.domain.*; import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; import com.microservices.dms.behaviorImage.domain.AchievementImageVo; import com.microservices.dms.behaviorImage.service.IBehaviorImageService; import com.microservices.dms.resourceLibrary.domain.Clicker; +import com.microservices.dms.resourceLibrary.domain.CompetitionResourceLibrary; import com.microservices.dms.resourceLibrary.domain.Searcher; +import com.microservices.dms.resourceLibrary.domain.TaskResourceLibrary; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; import com.microservices.dms.resourceLibrary.mapper.ExpertResourceLibraryMapper; import com.microservices.dms.resourceLibrary.mapper.ProjectResourceLibraryMapper; import com.microservices.dms.resourceLibrary.mapper.TaskResourceLibraryMapper; import com.microservices.dms.utils.DateUtil; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; @@ -26,6 +31,7 @@ import org.springframework.stereotype.Service; import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; import com.microservices.dms.achievementLibrary.service.IAchievementsService; +import static com.microservices.dms.constant.BlockChainFunConstants.QUERY_REPO; import static com.microservices.dms.utils.UrlUtil.getUrlPath; /** @@ -35,6 +41,7 @@ import static com.microservices.dms.utils.UrlUtil.getUrlPath; * @date 2025-04-02 */ @Service +@Slf4j public class AchievementsServiceImpl implements IAchievementsService { @Autowired private AchievementsMapper achievementsMapper; @@ -45,9 +52,6 @@ public class AchievementsServiceImpl implements IAchievementsService { @Autowired private ExpertResourceLibraryMapper expertResourceLibraryMapper; - @Autowired - private ProjectResourceLibraryMapper projectResourceLibraryMapper; - @Autowired private IBehaviorImageService behaviorImageService; @@ -60,7 +64,6 @@ public class AchievementsServiceImpl implements IAchievementsService { @Value("${http.gatewayUrl}") public String gatewayUrl; - /** * 查询成果 * @@ -70,20 +73,25 @@ public class AchievementsServiceImpl implements IAchievementsService { @Override public Achievements selectAchievementsById(Long id) { Achievements a = achievementsMapper.selectAchievementsById(id); - if(StringUtils.isNotNull(a)){ + if (StringUtils.isNotNull(a)) { String gender = a.getGender(); - String img = "images/avatars/User/boy.jpg"; - if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + String img = ""; + if (StringUtils.isNotEmpty(gender) && gender.equals("1")) { img = "images/avatars/User/girl.jpg"; + } else if (StringUtils.isNotEmpty(gender) && gender.equals("0")) { + img = "images/avatars/User/boy.jpg"; } a.setUserImg(img); - if(StringUtils.isNotEmpty(a.getField1())) { + if (StringUtils.isNotEmpty(a.getField1())) { String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); if (StringUtils.isNotNull(field1Name)) { a.setField1Name(field1Name); } } a.setUserImg(img); + + a.setImages(buildFileInfoByIdents(a.getImages(), a.getSource())); + a.setAttachments(buildFileInfoByIdents(a.getAttachments(), a.getSource())); } return a; } @@ -99,13 +107,15 @@ public class AchievementsServiceImpl implements IAchievementsService { List list = achievementsMapper.selectAchievementsList(achievements); for (Achievements a : list) { String gender = a.getGender(); - String img = "images/avatars/User/boy.jpg"; - if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + String img = ""; + if (StringUtils.isNotEmpty(gender) && gender.equals("1")) { img = "images/avatars/User/girl.jpg"; + } else if (StringUtils.isNotEmpty(gender) && gender.equals("0")) { + img = "images/avatars/User/boy.jpg"; } a.setUserImg(img); //根据id获取领域名称 - if(StringUtils.isNotEmpty(a.getField1())) { + if (StringUtils.isNotEmpty(a.getField1())) { String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); if (StringUtils.isNotNull(field1Name)) { a.setField1Name(field1Name); @@ -113,6 +123,10 @@ public class AchievementsServiceImpl implements IAchievementsService { } a.setImages(buildFileInfoByIdents(a.getImages(), a.getSource())); a.setAttachments(buildFileInfoByIdents(a.getAttachments(), a.getSource())); + + //拼接对接的用户信息 + List> dockingUserInfo = achievementsMapper.getDockingUserInfo(a.getId()); + a.setDockingUserInfo(dockingUserInfo); } return list; } @@ -183,25 +197,26 @@ public class AchievementsServiceImpl implements IAchievementsService { return aStr; } - List> list = JSON.parseObject(aStr,new TypeReference>>() {}); + List> list = JSON.parseObject(aStr, new TypeReference>>() { + }); if (Objects.equals(source, "1") || Objects.equals(source, "3")) { - concatUrl(list,gitLinkUrl); + concatUrl(list, gitLinkUrl); } if (Objects.equals(source, "2")) { - concatUrl(list,markerSpaceUrl); + concatUrl(list, markerSpaceUrl); } if (Objects.equals(source, "4")) { - concatUrl(list,gatewayUrl); + concatUrl(list, gatewayUrl); } return JSON.toJSONString(list); } private void concatUrl(List> list, String url) { - for (Map map : list) { + for (Map map : list) { String v = map.getOrDefault("v", ""); String urlPath = getUrlPath(v); map.put("v", url + urlPath); @@ -231,13 +246,15 @@ public class AchievementsServiceImpl implements IAchievementsService { //遍历成果数据,获取对应成果的点击数 for (Achievements a : list) { String gender = a.getGender(); - String img = "images/avatars/User/boy.jpg"; - if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + String img = ""; + if (StringUtils.isNotEmpty(gender) && gender.equals("1")) { img = "images/avatars/User/girl.jpg"; + } else if (StringUtils.isNotEmpty(gender) && gender.equals("0")) { + img = "images/avatars/User/boy.jpg"; } a.setUserImg(img); //根据id获取领域名称 - if(StringUtils.isEmpty(achQueryVo.getSource()) && StringUtils.isNotEmpty(a.getField1())) { + if (StringUtils.isEmpty(achQueryVo.getSource()) && StringUtils.isNotEmpty(a.getField1())) { String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); if (StringUtils.isNotNull(field1Name)) { a.setField1Name(field1Name); @@ -281,8 +298,21 @@ public class AchievementsServiceImpl implements IAchievementsService { } @Override - public List> getHotAchievement() { - return achievementsMapper.getHotAchievement(); + public List getHotAchievement() { + //根据查询条件获取所有的成果数据 + List resultList = achievementsMapper.getHotAchievement(); + //遍历成果数据,获取对应成果的点击数 + for (HotAchVo a : resultList) { + String gender = a.getGender(); + String img = ""; + if (StringUtils.isNotEmpty(gender) && gender.equals("1")) { + img = "images/avatars/User/girl.jpg"; + } else if (StringUtils.isNotEmpty(gender) && gender.equals("0")) { + img = "images/avatars/User/boy.jpg"; + } + a.setUserImg(img); + } + return resultList; } @Override @@ -313,7 +343,7 @@ public class AchievementsServiceImpl implements IAchievementsService { @Override public Map indexTaskStatistic() { Map res = achievementsMapper.indexTaskStatistic(); - double convertedTaskAmount = taskResourceLibraryMapper.getConvertedTaskAmount(); + double convertedTaskAmount = taskResourceLibraryMapper.getConvertedTaskAmount2(); res.put("convertedTaskAmount", convertedTaskAmount); return res; } @@ -367,10 +397,13 @@ public class AchievementsServiceImpl implements IAchievementsService { } @Override - public List> get7AddClickById(String id) { + public List> get7AddClickById(String id, String clickType) { + if (StringUtils.isEmpty(clickType)) { + clickType = "Achievements"; + } Date[] days = DateUtil.getDays(0, 6); - Map w = achievementsMapper.get7AddClickById(days[0], days[1], "Achievements", id) + Map w = achievementsMapper.get7AddClickById(days[0], days[1], clickType, id) .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); @@ -429,6 +462,55 @@ public class AchievementsServiceImpl implements IAchievementsService { return relatedResultList; } + @Override + public List getRelatedAchCompetition(Long id, Long sourceId) { + List relatedResultList = new ArrayList<>(); + //想根据开源项目id,获取对应的年度信息 + List allSourceId = achievementsMapper.getAllSourceIdCompetition(id, sourceId); + List allYear = achievementsMapper.getDistinctYear(id, allSourceId); + if (StringUtils.isNotNull(allYear)) { + //遍历年度信息,获取年度成果数据 + for (String paramYear : allYear) { + AchRelatedResult relatedResult = new AchRelatedResult(); + relatedResult.setYear(paramYear); + List tmpList = achievementsMapper.getRelatedAch(id, allSourceId, paramYear); + relatedResult.setAchRelatedVoList(tmpList); + relatedResultList.add(relatedResult); + } + } + return relatedResultList; + } + + @Override + public List getRelatedAchTask(Long id, Long sourceId) { + List relatedResultList = new ArrayList<>(); + //想根据开源项目id,获取对应的年度信息 + List allSourceId = achievementsMapper.getAllSourceIdTask(id, sourceId); + List allYear = achievementsMapper.getDistinctYear(id, allSourceId); + if (StringUtils.isNotNull(allYear)) { + //遍历年度信息,获取年度成果数据 + for (String paramYear : allYear) { + AchRelatedResult relatedResult = new AchRelatedResult(); + relatedResult.setYear(paramYear); + List tmpList = achievementsMapper.getRelatedAch(id, allSourceId, paramYear); + relatedResult.setAchRelatedVoList(tmpList); + relatedResultList.add(relatedResult); + } + } + return relatedResultList; + } + + @Override + public List getRelatedAchTaskOfExpert(Long id) { + return achievementsMapper.getRelatedAchTaskOfExpert(id); + } + + @Override + public List getRelatedAchCompetitionOfExpert(Long id) { + return achievementsMapper.getRelatedAchCompetitionOfExpert(id); + } + + /** * 根据查询内容,调用搜索行为接口 * diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/SchoolEnterpriseAchievementsServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/SchoolEnterpriseAchievementsServiceImpl.java index 25b1c4ce7..c9483f020 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/SchoolEnterpriseAchievementsServiceImpl.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/SchoolEnterpriseAchievementsServiceImpl.java @@ -1,14 +1,13 @@ package com.microservices.dms.achievementLibrary.service.impl; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import com.microservices.common.core.exception.ServiceException; import com.microservices.common.core.utils.DateUtils; +import com.microservices.common.core.utils.StringUtils; import com.microservices.common.security.utils.SecurityUtils; +import com.microservices.dms.achievementLibrary.domain.AchievementTeam; import com.microservices.dms.achievementLibrary.domain.Achievements; import com.microservices.dms.achievementLibrary.mapper.AchievementTeamMapper; import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; @@ -49,7 +48,15 @@ public class SchoolEnterpriseAchievementsServiceImpl implements ISchoolEnterpris @Override public SchoolEnterpriseAchievements selectSchoolEnterpriseAchievementsById(Long id) { - return schoolEnterpriseAchievementsMapper.selectSchoolEnterpriseAchievementsById(id); + SchoolEnterpriseAchievements sAchievements = schoolEnterpriseAchievementsMapper.selectSchoolEnterpriseAchievementsById(id); + if(StringUtils.isNotNull(sAchievements)){ + Long achId = sAchievements.getId(); + List teamList = achievementTeamMapper.selectAchievementTeamByAchId(achId); + if(StringUtils.isNotNull(teamList) && teamList.size() > 0){ + sAchievements.setTeamList(teamList); + } + } + return sAchievements; } /** @@ -74,6 +81,16 @@ public class SchoolEnterpriseAchievementsServiceImpl implements ISchoolEnterpris return list; } + @Override + public List listFront(SchoolEnterpriseAchievements schoolEnterpriseAchievements) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null) { + String username = loginUser.getUsername(); + schoolEnterpriseAchievements.setCreateBy(username); + } + return selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements); + } + /** * 新增校企成果 * diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/controller/BehaviorImageController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/controller/BehaviorImageController.java index 72ffe7020..79e935f5c 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/controller/BehaviorImageController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/controller/BehaviorImageController.java @@ -116,9 +116,8 @@ public class BehaviorImageController extends BaseController { List list = behaviorImageService.selectActivityUserLibraryList(activityUserLibrary); return getDataTable(list); } - /** - * 根据用户ID,获取用户对应的成果汇总 - */ + + @ApiOperation("/根据用户ID,获取用户对应的成果汇总") @GetMapping(value = "/getUserTypeStatistic") public AjaxResult getUserTypeStatistic(@PathVariable("userId") Long userId) { @@ -171,4 +170,12 @@ public class BehaviorImageController extends BaseController { { return AjaxResult.success(behaviorImageService.getActivityStatistic()); } + + + @GetMapping(value = "/getUserBehaviorSum") + @ApiOperation("获取用户的所有关注、点赞数") + public AjaxResult getUserBehaviorSum(Long userId) + { + return AjaxResult.success(behaviorImageService.getUserBehaviorSum(userId)); + } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementBehaviorSumVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementBehaviorSumVo.java index 9072958f6..af6c09815 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementBehaviorSumVo.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementBehaviorSumVo.java @@ -11,6 +11,16 @@ public class AchievementBehaviorSumVo { private Long favoriteSum; //下载量 private Long downloadSum; + //成果用户对接 + private Long userDockingSum; + + public Long getUserDockingSum() { + return userDockingSum; + } + + public void setUserDockingSum(Long userDockingSum) { + this.userDockingSum = userDockingSum; + } public Long getClickSum() { return clickSum; diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserTotal.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserTotal.java new file mode 100644 index 000000000..663bac382 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserTotal.java @@ -0,0 +1,36 @@ +package com.microservices.dms.behaviorImage.domain; + +import lombok.Data; + +public class ActivityUserTotal { + //活跃用户 + private Long totalUser; + //活跃用户专家数 + private Long totalExpert; + //活跃用户实名认证 + private Long authTotal; + + public Long getTotalUser() { + return totalUser; + } + + public void setTotalUser(Long totalUser) { + this.totalUser = totalUser; + } + + public Long getTotalExpert() { + return totalExpert; + } + + public void setTotalExpert(Long totalExpert) { + this.totalExpert = totalExpert; + } + + public Long getAuthTotal() { + return authTotal; + } + + public void setAuthTotal(Long authTotal) { + this.authTotal = authTotal; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/mapper/BehaviorImageMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/mapper/BehaviorImageMapper.java index 36bb29ad4..60b0200a2 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/mapper/BehaviorImageMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/mapper/BehaviorImageMapper.java @@ -2,10 +2,7 @@ package com.microservices.dms.behaviorImage.mapper; import com.microservices.common.datasource.annotation.Slave; import com.microservices.dms.achievementLibrary.domain.KeyValueVo; -import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; -import com.microservices.dms.behaviorImage.domain.ActivityUserLibrary; -import com.microservices.dms.behaviorImage.domain.BehaviorImageWeight; -import com.microservices.dms.behaviorImage.domain.UserTypeTotalVo; +import com.microservices.dms.behaviorImage.domain.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -98,5 +95,9 @@ public interface BehaviorImageMapper { List getUserTypeStatistic(@Param("userId")Long userId); - List getActivityStatistic(); + ActivityUserTotal getActivityStatistic(); + + List selectActivityUserLibraryListAll(ActivityUserLibrary activityUserLibrary); + + UserTypeTotalVo getUserBehaviorSum(@Param("userId")Long userId); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/IBehaviorImageService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/IBehaviorImageService.java index 485bb949d..526211e71 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/IBehaviorImageService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/IBehaviorImageService.java @@ -75,5 +75,7 @@ public interface IBehaviorImageService { UserExpertTotalVo getUserExpertStatistic(Long userId); - List getActivityStatistic(); + ActivityUserTotal getActivityStatistic(); + + UserTypeTotalVo getUserBehaviorSum(Long userId); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/impl/BehaviorImageServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/impl/BehaviorImageServiceImpl.java index a8e17f5b3..2b8bad3eb 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/impl/BehaviorImageServiceImpl.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/impl/BehaviorImageServiceImpl.java @@ -309,7 +309,7 @@ public class BehaviorImageServiceImpl implements IBehaviorImageService { } @Override - public List getActivityStatistic() { + public ActivityUserTotal getActivityStatistic() { return behaviorImageMapper.getActivityStatistic(); } @@ -318,19 +318,30 @@ public class BehaviorImageServiceImpl implements IBehaviorImageService { * @param activityUserLibrary 活跃用户资源库 * @return */ +// @Override +// public List selectActivityUserLibraryList(ActivityUserLibrary activityUserLibrary) { +// List list = behaviorImageMapper.selectActivityUserLibraryList(activityUserLibrary); +// for (ActivityUserLibrary a : list) { +// Long relatedProject= behaviorImageMapper.getrelatedProjectCount(a.getUserId()); +// a.setRelatedProject(relatedProject); +// Long relatedTask= behaviorImageMapper.getrelatedTaskCount(a.getUserId()); +// a.setRelatedTask(relatedTask); +// Long relatedCompetition= behaviorImageMapper.getrelatedCompetitionCount(a.getUserId()); +// a.setRelatedCompetition(relatedCompetition); +// Long relatedMemo= behaviorImageMapper.getrelatedMemoCount(a.getUserId()); +// a.setRelatedMemo(relatedMemo); +// } +// return list; +// } + @Override public List selectActivityUserLibraryList(ActivityUserLibrary activityUserLibrary) { - List list = behaviorImageMapper.selectActivityUserLibraryList(activityUserLibrary); - for (ActivityUserLibrary a : list) { - Long relatedProject= behaviorImageMapper.getrelatedProjectCount(a.getUserId()); - a.setRelatedProject(relatedProject); - Long relatedTask= behaviorImageMapper.getrelatedTaskCount(a.getUserId()); - a.setRelatedTask(relatedTask); - Long relatedCompetition= behaviorImageMapper.getrelatedCompetitionCount(a.getUserId()); - a.setRelatedCompetition(relatedCompetition); - Long relatedMemo= behaviorImageMapper.getrelatedMemoCount(a.getUserId()); - a.setRelatedMemo(relatedMemo); - } + List list = behaviorImageMapper.selectActivityUserLibraryListAll(activityUserLibrary); return list; } + + @Override + public UserTypeTotalVo getUserBehaviorSum(Long userId) { + return behaviorImageMapper.getUserBehaviorSum(userId); + } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/common/controller/OpenController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/common/controller/OpenController.java index 664e9eafb..23a40f45d 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/common/controller/OpenController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/common/controller/OpenController.java @@ -11,10 +11,23 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.http.HttpHeaders; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.List; /** @@ -157,4 +170,22 @@ public class OpenController extends BaseController { return getDataTable(list); } + @GetMapping("/downloadAch") + @ApiOperation("成果征集信息下载") + public ResponseEntity downloadAch() throws IOException { + String fileName = "红山开源优秀科研成果信息征集.zip"; + Resource resource = new ClassPathResource(fileName); + if (!resource.exists()) { + throw new RuntimeException("文件不存在: " + fileName); + } + String encodedFileName = URLEncoder.encode(fileName, String.valueOf(StandardCharsets.UTF_8)) + .replace("+", "%20"); + + return ResponseEntity.ok() + .header(HttpHeaders.CONTENT_DISPOSITION, + "attachment; filename*=UTF-8''" + encodedFileName) + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .body(resource); + } + } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/BlockChainFunConstants.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/BlockChainFunConstants.java new file mode 100644 index 000000000..c0d190986 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/BlockChainFunConstants.java @@ -0,0 +1,27 @@ +package com.microservices.dms.constant; + +/** + * 区块链方法常量 + */ +public class BlockChainFunConstants { + public static final String CREATE_REPO = "create repo"; //项目入链 + public static final String QUERY_REPO = "query repo basic info"; //项目入链信息查询 + public static final String USER_SINGLE_REPO = "query user balance of single repo"; //单个项目某个用户token + public static final String USER_ALL_REPOS = "query user balance of all repos"; //某个用户所有项目token + + public static final String CREATE_COMMIT = "upload commit info"; //Commit新增入链 + public static final String QUERY_COMMIT = "query commit info"; //Commit入链信息查询 + + public static final String CREATE_PR = "upload pull request info"; //Pr新增入链 + public static final String QUERY_PR_LATEST = "query pull request latest info"; //单个pr入链所有信息 + public static final String QUERY_PR_ALL = "query pull request all info"; //单个pr最后一次入链信息 + + public static final String CREATE_upDATE_issue = "upload issue info"; //Issue新增、修改入链 + public static final String QUERY_ISSUE_LATEST = "query issue latest info"; //单个Issue最后一次入链信息 + public static final String QUERY_ISSUE_ALL = "query issue all info"; //单个Issue入链所有信息 + + public static final String ADD_USER_BALANCE = "add user balance"; //项目分配token——用户token新增 + public static final String MINUS_USER_BALANCE = "minus user balance"; //项目分配token-用户token减少 + public static final String LOCK_USER_BALANCE = "lock user balance"; //用户转账token-将自己token分配给本项目中的其他用户 + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/TaskConstant.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/TaskConstant.java index b70c6bdaa..1b65ce24f 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/TaskConstant.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/TaskConstant.java @@ -2,7 +2,8 @@ package com.microservices.dms.constant; public class TaskConstant { - private TaskConstant() {} + private TaskConstant() { + } public static final String TASK_TYPE_WATCHERS = "MakerTask"; public static final String TASK_TYPE_JOURNALS = "makerSpaceTask"; @@ -22,4 +23,16 @@ public class TaskConstant { public static final String EXPERTS = "Experts"; public static final String ACHIEVEMENTS = "Achievements"; + // task status dict + public static final int DRAFT_STATUS = 0; //草稿状态 + public static final int TO_BE_REVIEWED_STATUS = 1; //待审核状态 + public static final int REFUSED_STATUS = 2; //已拒绝状态 + public static final int TASK_PAPER_COLLECTING_STATUS = 3; //成果征集中状态 + public static final int TASK_PAPER_CHOOSING_STATUS = 4; //成果评选中状态 + public static final int TASK_RESULT_PROOF_STATUS = 5; //公示中状态 + public static final int TASK_SIGNING_STATUS = 6; //协议签定中状态 + public static final int TASK_PAYING_STATUS = 7; //支付中状态 + public static final int TASK_COMPLETE_STATUS = 8; //任务完成状态 + public static final int TASK_TO_BE_REPAIRED_STATUS = 9; //待修缮状态 + } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/controller/TalentReferralController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/controller/TalentReferralController.java index 44a961a46..332283fa4 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/controller/TalentReferralController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/controller/TalentReferralController.java @@ -4,13 +4,17 @@ import com.microservices.common.core.web.domain.AjaxResult; import com.microservices.dms.referral.service.TalentReferralService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import lombok.Data; +import lombok.EqualsAndHashCode; import lombok.RequiredArgsConstructor; +import lombok.ToString; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -@Api(tags = "数据管理体系-人才推荐接口") +@Data +@Api(tags = "数据管理体系-推荐接口") @RestController @RequestMapping("/talentReferral") @RequiredArgsConstructor @@ -21,12 +25,33 @@ public class TalentReferralController { @GetMapping("/issueTalentReferral") @ApiOperation(value = "疑修人才推荐") public AjaxResult issueTalentReferral(@RequestParam("issueId") Long issueId, @RequestParam("projectId") Long projectId) { - return AjaxResult.success(talentReferralService.issueTalentReferral(issueId, projectId)); + return AjaxResult.success(talentReferralService.doIssueTalentReferral(issueId, projectId)); } @GetMapping("/pullRequestTalentReferral") @ApiOperation(value = "PR人才推荐") public AjaxResult pullRequestTalentReferral(@RequestParam("prId") Long prId, @RequestParam("projectId") Long projectId) { - return AjaxResult.success(talentReferralService.PRTalentReferral(prId, projectId)); + return AjaxResult.success(talentReferralService.doPRTalentReferral(prId, projectId)); } + + @GetMapping("/taskAchievementTalentReferral") + @ApiOperation(value = "任务成果推荐") + public AjaxResult taskAchievementTalentReferral(@RequestParam("taskId") Long taskId) { + return AjaxResult.success(talentReferralService.taskAchievementTalentReferral(taskId)); + } + + @GetMapping("/taskExpertTalentReferral") + @ApiOperation(value = "任务专家推荐") + public AjaxResult taskExpertTalentReferral(@RequestParam("taskId") Long taskId) { + return AjaxResult.success(talentReferralService.taskExpertTalentReferral(taskId)); + } + + + @GetMapping("/competitionExpertTalentReferral") + @ApiOperation(value = "竞赛专家推荐") + public AjaxResult competitionExpertTalentReferral(@RequestParam("competitionId") Long competitionId) { + return AjaxResult.success(talentReferralService.competitionExpertTalentReferral(competitionId)); + } + + } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/mapper/TalentReferralMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/mapper/TalentReferralMapper.java index 15bd3eea1..3d83d85b8 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/mapper/TalentReferralMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/mapper/TalentReferralMapper.java @@ -1,12 +1,14 @@ package com.microservices.dms.referral.mapper; import com.microservices.common.datasource.annotation.Slave; -import com.microservices.dms.referral.vo.IssuesVo; -import com.microservices.dms.referral.vo.PullRequestVo; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.referral.vo.*; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; @Mapper @Slave @@ -27,4 +29,21 @@ public interface TalentReferralMapper { String selectRepositoriesUrl(@Param("id") Long id); Long selectIdByLogin(@Param("login") String login); + + List selectTaskByStatus(@Param("statusIds") List statusIds); + + Map selectUsersById(@Param("id") Long id); + + TaskVo selectTaskById(@Param("id") Long id); + + List selectExpertsBy(ExpertVo expertVo); + + List> allTaskWithExpertIds(@Param("type") String type); + + TaskVo selectCompetitionById(Long competitionId); + + List selectCompetitionIdByStatus(); + + PrInfoVo selectPRInfoById(@Param("id") Integer id); + } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/service/TalentReferralService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/service/TalentReferralService.java index b1d2b043c..8f0eb3f62 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/service/TalentReferralService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/service/TalentReferralService.java @@ -2,14 +2,17 @@ package com.microservices.dms.referral.service; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import com.google.common.collect.Lists; import com.microservices.common.core.exception.ServiceException; import com.microservices.common.core.utils.StringUtils; -import com.microservices.common.httpClient.util.GitLinkRequestHelper; +import com.microservices.dms.achievementLibrary.domain.Achievements; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; import com.microservices.dms.constant.ReferralConstant; +import com.microservices.dms.constant.TaskConstant; import com.microservices.dms.referral.mapper.TalentReferralMapper; -import com.microservices.dms.referral.vo.IssueDto; -import com.microservices.dms.referral.vo.IssuesVo; -import com.microservices.dms.referral.vo.PullRequestVo; +import com.microservices.dms.referral.vo.*; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; import com.microservices.dms.utils.DmsGitLinkRequestUrl; import com.microservices.dms.utils.DmsRequestHelper; import com.microservices.dms.utils.SimilarityService; @@ -33,15 +36,17 @@ public class TalentReferralService { @Autowired private DmsRequestHelper dmsRequestHelper; + @Autowired + private AchievementsMapper achievementsMapper; + private static final Logger logger = LoggerFactory.getLogger(TalentReferralService.class); public Set getContributors(String projectFullName) { try { // 获取项目贡献者数量 - JSONArray contributorsArray = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.CONTRIBUTORS(projectFullName), "list","total_count"); + JSONArray contributorsArray = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.CONTRIBUTORS(projectFullName), "list", "total_count"); - return contributorsArray.stream().map(o -> (JSONObject) o).map(s -> s.getString("contributions")).filter(StringUtils::isNotBlank) - .mapToLong(Long::parseLong).boxed().collect(Collectors.toSet()); + return contributorsArray.stream().map(o -> (JSONObject) o).map(s -> s.getString("contributions")).filter(StringUtils::isNotBlank).mapToLong(Long::parseLong).boxed().collect(Collectors.toSet()); } catch (ServiceException e) { logger.error("【{}】获取项目贡献者数量失败:{}", projectFullName, e.getMessage()); @@ -52,10 +57,9 @@ public class TalentReferralService { public Set getCollaborators(String projectFullName) { try { // 获取项目成员者数量 - JSONArray contributorsArray = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.QUERY_USER_FROM_PROJECT(projectFullName), "members","total_count"); + JSONArray contributorsArray = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.QUERY_USER_FROM_PROJECT(projectFullName), "members", "total_count"); - return contributorsArray.stream().map(o -> (JSONObject) o).map(s -> s.getString("id")) - .filter(StringUtils::isNotBlank).mapToLong(Long::parseLong).boxed().collect(Collectors.toSet()); + return contributorsArray.stream().map(o -> (JSONObject) o).map(s -> s.getString("id")).filter(StringUtils::isNotBlank).mapToLong(Long::parseLong).boxed().collect(Collectors.toSet()); } catch (ServiceException e) { logger.error("【{}】获取项目成员者数量失败:{}", projectFullName, e.getMessage()); @@ -87,6 +91,14 @@ public class TalentReferralService { return collaborators; } + public List> doIssueTalentReferral(Long issueId , Long projectId) { + List> entries = issueTalentReferral(projectId, issueId); + return entries.stream().limit(3).map(s -> { + Map mm = talentReferralMapper.selectUsersById(s.getKey()); + return mm; + }).collect(Collectors.toList()); + } + public List> issueTalentReferral(Long projectId, Long issueId) { IssuesVo curIssue = talentReferralMapper.selectIssuesById(issueId); @@ -96,12 +108,12 @@ public class TalentReferralService { List curIssueAssigners = talentReferralMapper.selectIssuesAssigners(curIssue.getId()); if (!curIssueAssigners.isEmpty()) { - return new ArrayList<>(); + // return new ArrayList<>(); } IssuesVo vo = new IssuesVo(); vo.setProjectId(projectId); - vo.setStatusIds(Collections.singletonList(ReferralConstant.ISSUE_CLOSED)); + vo.setStatusIds(Lists.newArrayList(ReferralConstant.ISSUE_CLOSED,ReferralConstant.ISSUE_RESOLVED)); List issuesVos = talentReferralMapper.selectIssuesCondition(vo); Map userFractionMap = new HashMap<>(); // 计算与解决issue的相似度, 标题+描述 @@ -138,37 +150,41 @@ public class TalentReferralService { Map userFractionMap = new HashMap<>(); Map userNameFractionMap = new HashMap<>(); Map> PRFilesMap = new HashMap<>(); - List closedPullRequests = getPullRequests(projectId, "11"); + List closedPullRequests = getPullRequests(projectId, "11").stream() + .filter(e->StringUtils.isNotBlank(e.getAssignUserLogin())).collect(Collectors.toList()); for (IssueDto pr : prs) { + PrInfoVo curPrInfoVo = talentReferralMapper.selectPRInfoById(pr.getPullRequestId()); //关闭PR的对比 for (IssueDto dto : closedPullRequests) { - List reviewers = dto.getReviewers(); - for (String reviewer : reviewers) { - Set prFiles = getPRFiles(projectId, dto.getPullRequestNumber()); - PRFilesMap.merge(reviewer, prFiles, (a, b) -> { - HashSet set = new HashSet<>(); - set.addAll(a); - set.addAll(b); - return set; - }); - } + String reviewer = dto.getAssignUserLogin(); + Set prFiles = getPRFiles(projectId, dto.getPullRequestNumber()); + PRFilesMap.merge(reviewer, prFiles, (a, b) -> { + HashSet set = new HashSet<>(); + set.addAll(a); + set.addAll(b); + return set; + }); + + //标题、content匹配 + PrInfoVo prInfoVo = talentReferralMapper.selectPRInfoById(dto.getPullRequestId()); + double subjectFraction = SimilarityService.sentence(curPrInfoVo.getTitle(), prInfoVo.getTitle()); + double descFraction = SimilarityService.text(curPrInfoVo.getContent(), prInfoVo.getContent()); + //这个数据可以缓存下来 + userNameFractionMap.merge(dto.getAssignUserLogin(), (subjectFraction + descFraction) * 40.0D, Double::sum); } Set curPrFiles = getPRFiles(projectId, pr.getPullRequestNumber()); for (String curPrFile : curPrFiles) { PRFilesMap.forEach((k, v) -> { if (v.contains(curPrFile)) { - userNameFractionMap.merge(k, 60.0D, Double::sum); + userNameFractionMap.merge(k, 30.0D, Double::sum); } }); } // 计算每个负责人关闭的 PR数量 - closedPullRequests.stream().map(IssueDto::getReviewers).flatMap(List::stream) - .forEach(s -> userNameFractionMap.merge(s, 40.0D, Double::sum)); - - + closedPullRequests.stream().map(IssueDto::getAssignUserLogin).forEach(s -> userNameFractionMap.merge(s, 30.0D, Double::sum)); } userNameFractionMap.forEach((k, v) -> { @@ -210,7 +226,7 @@ public class TalentReferralService { } try { - JSONArray allDataByPage = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.GET_PR_FILES(projectFullName, PRNum), "issues", "files"); + JSONArray allDataByPage = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.GET_PR_FILES(projectFullName, PRNum), "files", "file_nums"); return allDataByPage.stream().map(o -> (JSONObject) o).map(o -> (String) o.get("filename")).collect(Collectors.toSet()); } catch (ServiceException e) { logger.error("【{}】获取PR文件失败:{}", projectFullName, e.getMessage()); @@ -218,25 +234,172 @@ public class TalentReferralService { return new HashSet<>(); } + public List> doPRTalentReferral(Long prId, Long projectId) { + List> entries = PRTalentReferral(projectId, prId); + return entries.stream().limit(3).map(s -> { + Map mm = talentReferralMapper.selectUsersById(s.getKey()); + return mm; + }).collect(Collectors.toList()); + } public List> PRTalentReferral(Long projectId, Long prId) { List openPullRequests = getPullRequests(projectId, "1"); - openPullRequests = openPullRequests.stream().filter(e -> e.getReviewers().isEmpty()) - .collect(Collectors.toList()); + openPullRequests = openPullRequests.stream().filter(e -> StringUtils.isEmpty(e.getAssignUserLogin())).collect(Collectors.toList()); if (prId != null) { - openPullRequests = openPullRequests.stream().filter(e -> Objects.equals((long) (e.getId()), prId)) - .filter(e -> e.getReviewers().isEmpty()) - .collect(Collectors.toList()); + openPullRequests = openPullRequests.stream().filter(e -> Objects.equals((long) (e.getPullRequestId()), prId)).collect(Collectors.toList()); return PRTalentReferral(projectId, prId, openPullRequests); } - return PRTalentReferral(projectId, prId, openPullRequests); + return PRTalentReferral(projectId, null, openPullRequests); } //定时统计 - public void projectsStatistic(){ + public void projectsStatistic() { } + /** + * 1、先查找任务状态为成果征集中、成果评选中的数据,新增存储到数据表中 + * 2、获取系统中的任务领域和数据仓库中的领域是一样 ;50% + * 3、根据1中任务标题和任务正文 与数据仓库中名称和简介、详情比较 ;取前10获取对比计算分值大于0的结果 + * 4、将2和3的结果相加,取前5个成果进行推荐 + */ + public List taskAchievementTalentReferral(Long taskId) { + TaskVo task = talentReferralMapper.selectTaskById(taskId); + Achievements tCond = new Achievements(); + tCond.setSourceId(taskId); + tCond.setSource("2"); + tCond.setStatus("1"); + List taskAchievements = achievementsMapper.selectAchievementsList(tCond); + List result; + + List trTaskIds = doTaskTalentReferral(task, taskAchievements); + result = trTaskIds.stream().map(s -> taskAchievements.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null)).filter(Objects::nonNull).limit(5).collect(Collectors.toList()); + + return result; + } + + private List doTaskTalentReferral(TaskVo task, List taskVos) { + Long taskDomain = task.getCategoryId(); + Map step1Map = new TreeMap<>(); + Map step2Map = new TreeMap<>(); + for (Achievements t1 : taskVos) { + if (Objects.equals(String.valueOf(taskDomain), t1.getField1())) { + step1Map.put(t1.getId(), 50.0D); + } + double subjectFraction = SimilarityService.sentence(task.getName(), t1.getAchievementName()); + double descFraction = SimilarityService.text(t1.getSummary(), task.getDescription()); + step2Map.put(t1.getId(), (subjectFraction + descFraction) * 50.0D); + } + + step1Map.forEach((k, v) -> step2Map.merge(k, v, Double::sum)); + step2Map.keySet().removeIf(step -> Double.compare(step2Map.get(step), 0.0D) > 0); + + List> entryList = new ArrayList<>(step2Map.entrySet()); + entryList.sort((entry1, entry2) -> Double.compare(entry2.getValue(), entry1.getValue())); + + return entryList.stream().map(Map.Entry::getKey).collect(Collectors.toList()); + } + + + /** + * 创客任务评审专家推荐 + * 1、先查找创客任务状态未结束,并且已加入评审的数据,新增存储到数据表中 + * 2、技术匹配度:系统中专家领域 与 任务是一样的领域 20% + * 3、根据1中任务标题和任务描述 与专家简介进行比较 ,匹配结果分数,取前10;30% + * 4、根据1中任务标题和任务描述 与已完成的任务标题与任务描述比较,匹配结果分数,取前3 ,前3个竞赛中对应的专家 分数*50% + */ + public Object taskExpertTalentReferral(Long taskId) { + TaskVo task = talentReferralMapper.selectTaskById(taskId); + List categories = achievementsMapper.getAreasByName(null); + List completedTasks = talentReferralMapper.selectTaskByStatus(Lists.newArrayList(TaskConstant.TASK_COMPLETE_STATUS)); + List allExperts = talentReferralMapper.selectExpertsBy(new ExpertVo()); + + List expertIds = doTaskExpertTalentReferral(task, categories, completedTasks, allExperts); + return expertIds.stream().map(s -> allExperts.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null)).filter(Objects::nonNull).limit(3).collect(Collectors.toList()); + } + + private List doTaskExpertTalentReferral(TaskVo task, List categories, List completedTasks, List allExperts) { + + Map v2k = categories.stream().collect(Collectors.toMap(KeyValueVo::getValue, KeyValueVo::getKey, (o, n) -> n)); + + String taskDomain = v2k.get(task.getCategoryId()); + Map step1Map = new TreeMap<>(); + Map step2Map = new TreeMap<>(); + for (ExpertVo t1 : allExperts) { + if (Objects.equals(taskDomain, t1.getReviewAreaOne()) || Objects.equals(taskDomain, t1.getReviewAreaTwo()) || Objects.equals(taskDomain, t1.getReviewAreaThree())) { + step1Map.put(t1.getId(), 50.0D); + } + } + + List> allTaskWithExpertIds = talentReferralMapper.allTaskWithExpertIds("1"); + Map t2e = allTaskWithExpertIds.stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV, (o, n) -> n)); + for (TaskVo t2 : completedTasks) { + double subjectFraction = SimilarityService.sentence(task.getName(), t2.getName()); + double descFraction = SimilarityService.text(t2.getDescription(), task.getDescription()); + + String[] split = t2e.getOrDefault(t2.getId(), "").split(","); + for (String s : split) { + if (StringUtils.isNotBlank(s)) { + step2Map.put(Long.parseLong(s), (subjectFraction + descFraction) * 50.0D); + } + } + } + + step1Map.forEach((k, v) -> step2Map.merge(k, v, Double::sum)); + + List> entryList = new ArrayList<>(step2Map.entrySet()); + entryList.sort((entry1, entry2) -> Double.compare(entry2.getValue(), entry1.getValue())); + + return entryList.stream().map(Map.Entry::getKey).collect(Collectors.toList()); + + } + + /** + * 开源竞赛评审专家推荐 + * 1、先查找开放竞赛状态未结束,并且已提交评审的数据,新增存储到数据表中 + * 2、技术匹配度:系统中专家领域 与 竞赛是一样的领域 ; 20% + * 3、根据1中竞赛标题和竞赛描述 与专家简介进行比较 ,匹配结果分数,取前10;30% + * 4、根据1中竞赛标题和竞赛描述 与已完成的竞赛标题与竞赛描述比较,匹配结果分数,取前3 ,前3个竞赛中对应的专家;*50% + */ + public Object competitionExpertTalentReferral(Long competitionId) { + TaskVo task = talentReferralMapper.selectCompetitionById(competitionId); + List categories = new ArrayList<>(); + List completedTasks = talentReferralMapper.selectCompetitionIdByStatus(); + List allExperts = talentReferralMapper.selectExpertsBy(new ExpertVo()); + + List expertIds = doCompetitionExpertTalentReferral(task, categories, completedTasks, allExperts); + return expertIds.stream().map(s -> allExperts.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null)).filter(Objects::nonNull).limit(3).collect(Collectors.toList()); + } + + + private List doCompetitionExpertTalentReferral(TaskVo task, List categories, List completedTasks, List allExperts) { + + Map step1Map = new TreeMap<>(); + Map step2Map = new TreeMap<>(); + + + List> allTaskWithExpertIds = talentReferralMapper.allTaskWithExpertIds("2"); + Map t2e = allTaskWithExpertIds.stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV, (o, n) -> n)); + for (TaskVo t2 : completedTasks) { + double subjectFraction = SimilarityService.sentence(task.getName(), t2.getName()); + double descFraction = SimilarityService.text(t2.getDescription(), task.getDescription()); + + String[] split = t2e.getOrDefault(t2.getId(), "").split(","); + for (String s : split) { + if (StringUtils.isNotBlank(s)) { + step2Map.put(Long.parseLong(s), (subjectFraction + descFraction) * 100.0D); + } + } + } + + step1Map.forEach((k, v) -> step2Map.merge(k, v, Double::sum)); + + List> entryList = new ArrayList<>(step2Map.entrySet()); + entryList.sort((entry1, entry2) -> Double.compare(entry2.getValue(), entry1.getValue())); + + return entryList.stream().map(Map.Entry::getKey).collect(Collectors.toList()); + + } } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/ExpertVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/ExpertVo.java new file mode 100644 index 000000000..bdc97e061 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/ExpertVo.java @@ -0,0 +1,15 @@ +package com.microservices.dms.referral.vo; + +import lombok.Data; + +@Data +public class ExpertVo { + Long id; + Long userId; + String expertName; + String nickname; + String reviewAreaOne; + String reviewAreaTwo; + String reviewAreaThree; + Integer status; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PrInfoVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PrInfoVo.java new file mode 100644 index 000000000..c3e153d25 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PrInfoVo.java @@ -0,0 +1,10 @@ +package com.microservices.dms.referral.vo; + +import lombok.Data; + +@Data +public class PrInfoVo { + private Long id; + private String title; + private String content; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/TaskVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/TaskVo.java new file mode 100644 index 000000000..03562874b --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/TaskVo.java @@ -0,0 +1,13 @@ +package com.microservices.dms.referral.vo; + +import lombok.Data; + +@Data +public class TaskVo { + private Long id; + private Long taskId; + private String name; + private String description; + private Long categoryId; + private String identifier; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CollectUserActDataController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CollectUserActDataController.java index 2bdc19773..1c5c32b16 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CollectUserActDataController.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CollectUserActDataController.java @@ -21,7 +21,7 @@ public class CollectUserActDataController { @PostMapping("/addClicker") @ApiImplicitParams({ - @ApiImplicitParam(name = "clickType", value = "点击类型(任务:makerSpaceTask、竞赛:CompetitionInfo、项目:Project、成果:Achievements、专家:Experts,校企:schoolEnterprise)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "clickType", value = "点击类型(任务:makerSpaceTask、竞赛:CompetitionInfo、项目:Project、成果:Achievements、专家:Experts,校企:schoolEnterprise,成果用户对接:userDocking)", paramType = "query", dataTypeClass = String.class), @ApiImplicitParam(name = "clickId", value = "点击对象ID", paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "query", dataTypeClass = Integer.class), @ApiImplicitParam(name = "extInfo", value = "补充信息", paramType = "query", dataTypeClass = String.class) diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/CompetitionResourceLibrary.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/CompetitionResourceLibrary.java index 8a853fa36..a88896b7e 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/CompetitionResourceLibrary.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/CompetitionResourceLibrary.java @@ -33,7 +33,7 @@ public class CompetitionResourceLibrary extends BaseEntity { */ private String competitionField; /** - * 竞赛状态 0进行中 1已结束 + * 竞赛状态 status: 0 未上架 1上架 */ private String competitionStatus; /** diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ExpertResourceLibraryMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ExpertResourceLibraryMapper.java index 14b06c960..c6be74e5a 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ExpertResourceLibraryMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ExpertResourceLibraryMapper.java @@ -112,7 +112,7 @@ public interface ExpertResourceLibraryMapper List getMemoAduit(); - KeyValueVo getIsOriginalStatistic(); + List getIsOriginalStatistic(); List getMemoTotalByYear(); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ProjectResourceLibraryMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ProjectResourceLibraryMapper.java index 0d076ebb6..a90c3a960 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ProjectResourceLibraryMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ProjectResourceLibraryMapper.java @@ -1,6 +1,7 @@ package com.microservices.dms.resourceLibrary.mapper; import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.TokenListVo; import com.microservices.dms.resourceLibrary.domain.ProjectResourceLibrary; import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; import com.microservices.dms.resourceLibrary.domain.vo.ProjectListVo; @@ -51,4 +52,8 @@ public interface ProjectResourceLibraryMapper { List> getAttachments(@Param("containerId") Long containerId); String getProjectDomainNameByKey(@Param("projectDomain") String projectDomain ); + + List selectProjectInfos(); + + Long sumProjectIssueToken(@Param("id") Long id); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/TaskResourceLibraryMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/TaskResourceLibraryMapper.java index 4737100f4..0156d62ae 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/TaskResourceLibraryMapper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/TaskResourceLibraryMapper.java @@ -108,4 +108,6 @@ public interface TaskResourceLibraryMapper { int delFavorite(Favorite favorite); int delWatcher(Watcher watcher); + + double getConvertedTaskAmount2(); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/ProjectResourceLibraryService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/ProjectResourceLibraryService.java index bd473e1af..0ce46e54d 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/ProjectResourceLibraryService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/ProjectResourceLibraryService.java @@ -83,7 +83,7 @@ public class ProjectResourceLibraryService { if (v.startsWith("http")) { String urlPath = getUrlPath(v); if (StringUtils.isNotEmpty(urlPath)) { - if (urlPath.startsWith("/")) { + if (urlPath.startsWith("/api")) { a.setV(gitLinkUrl + urlPath); }else { a.setV(gitLinkUrl +"/api"+ urlPath); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/TaskResourceLibraryService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/TaskResourceLibraryService.java index ef16e8fe3..3b505ee7e 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/TaskResourceLibraryService.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/TaskResourceLibraryService.java @@ -122,6 +122,8 @@ public class TaskResourceLibraryService { public int updateTaskResourceLibrary(TaskResourceLibrary taskResourceLibrary) { + taskResourceLibrary.setUpdateTime(DateUtils.getNowDate()); + taskResourceLibrary.setUpdateBy(SecurityUtils.getUsername()); return taskResourceLibraryMapper.updateTaskResourceLibrary(taskResourceLibrary); } diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DateUtil.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DateUtil.java index 5843e5095..18fb86961 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DateUtil.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DateUtil.java @@ -42,6 +42,20 @@ public class DateUtil { }; } + public static Date[] getLast12Months() { + LocalDate endDate = LocalDate.now(); + + LocalDate startDate = endDate.minusMonths(11); + + LocalDateTime startDateTime = LocalDateTime.of(startDate.getYear(),startDate.getMonth(),1,0,0,0); + LocalDateTime endDateTime = endDate.atTime(23, 59, 59); + + return new Date[]{ + Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()), + Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant()) + }; + } + public static Date[] getCurrentYearEndOf(LocalDate endDate) { Year year = Year.now(); @@ -68,6 +82,19 @@ public class DateUtil { .collect(Collectors.toList()); } + + public static List getDateStrYYYYMM(Date start, Date end) { + LocalDate s = start.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); + LocalDate e = end.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); + String pattern = "yyyy-MM"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + + return LongStream.range(0, s.until(e).getMonths() + 1) + .mapToObj(s::plusMonths) + .map(formatter::format) + .collect(Collectors.toList()); + } + public static List getDateStrYYYYMMDD(Date start, Date end) { LocalDate s = start.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); LocalDate e = end.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsRequestHelper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsRequestHelper.java index d2e7e4ee2..078814d2b 100644 --- a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsRequestHelper.java +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsRequestHelper.java @@ -46,7 +46,7 @@ public class DmsRequestHelper extends GitLinkRequestHelper { int pageNum = 1; // 循环分页获取gitlink组织下所有成员 while (!isAllData) { - JSONObject result = doGet(GitLinkRequestUrl.GET_LIST_BY_PAGES(url, pageNum, 50) + JSONObject result = doGet(GET_LIST_BY_PAGES(url, pageNum, 50) ); allList.addAll(result.getList(listKey, tClass)); long total = result.getLong("search_count"); @@ -84,7 +84,7 @@ public class DmsRequestHelper extends GitLinkRequestHelper { public static GitLinkRequestUrl GET_LIST_BY_PAGES(String url, Integer page, Integer limit) { - String p = url.contains("?")? "&page=%d&limit=%d": "%s?page=%d&limit=%d"; + String p = url.contains("?")? "%s&page=%s&limit=%s": "%s?page=%s&limit=%s"; return getAdminGitLinkRequestUrl(String.format(p, url, page, limit)); } diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementDictDataMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementDictDataMapper.xml new file mode 100644 index 000000000..a86a36723 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementDictDataMapper.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + select dict_code, dict_sort, dict_label, dict_value, dict_type, status, create_by, create_time, update_by, update_time, remark from achievement_dict_data + + + + + + + + insert into achievement_dict_data + + dict_sort, + dict_label, + dict_value, + dict_type, + status, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{dictSort}, + #{dictLabel}, + #{dictValue}, + #{dictType}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update achievement_dict_data + + dict_sort = #{dictSort}, + dict_label = #{dictLabel}, + dict_value = #{dictValue}, + dict_type = #{dictType}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where dict_code = #{dictCode} + + + + delete from achievement_dict_data where dict_code = #{dictCode} + + + + delete from achievement_dict_data where dict_code in + + #{dictCode} + + + + + + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementTeamMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementTeamMapper.xml index 502333c48..5c1772297 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementTeamMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementTeamMapper.xml @@ -125,4 +125,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from achievement_team where achievement_id = #{aid} + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementsMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementsMapper.xml index 365e79f64..bde774dfa 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementsMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementsMapper.xml @@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -40,12 +41,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, achievement_name,hot_rank, field_1, field_2, field_3, attachment_count,is_expert_audit,achievement_type, source, source_id, source_link, tags, summary, publishing_unit, address, is_featured, contact_person, contact_number, owner_id, owner_name, status, details, reviewer, review_date, review_comments, images, attachments, create_by, create_time, update_by, update_time from achievements + select id, IFNULL(show_ach_name,achievement_name) as "showAchievementName", achievement_name,hot_rank, field_1, field_2, field_3, attachment_count,is_expert_audit,achievement_type, source, source_id, source_link, tags, summary, publishing_unit, address, is_featured, contact_person, contact_number, owner_id, owner_name, status, details, reviewer, review_date, review_comments, images, attachments, create_by, create_time, update_by, update_time from achievements - select id, achievement_name,images,field_1,field_2,field_3,source,source_id + select id,IFNULL(show_ach_name,achievement_name) as "showAchievementName",achievement_name,images,field_1,field_2,field_3,summary,source,source_id from achievements where is_featured ='1' order by update_time desc @@ -224,6 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -249,21 +256,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select t.show_ach_name as "showAchievementName",t.achievement_name as name, t.w as watcher, t.f as faviter, (t.w + t.f) as total, t.id as `id`,t.owner_name + as userName,t.gender,t.userNickName from (select a.achievement_name, + IFNULL(a.show_ach_name,a.achievement_name) as "show_ach_name", a.id,a.owner_name, + IFNULL(u.nickname,a.owner_name) as "userNickName", + ue.gender as "gender", (select IFNULL(count(*), 0) from favorites where favorite_type = 'Achievements' and favorite_id = a.id) as f, (select IFNULL(count(*), 0) from watchers where watchable_type = 'Achievements' and watchable_id = a.id) as w - from achievements a) as t + from achievements a + left join users u on a.owner_name = u.login + left join user_extensions ue on u.id = ue.user_id + where a.status = '1' + ) as t order by (f+w) desc limit 0,3 @@ -349,33 +375,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select b.watchSum, d.favoriteSum + select b.watchSum, d.favoriteSum,c.userDockingSum from ( (select count(1) as watchSum from watchers where watchable_type = 'Achievements' and watchable_id = #{id} and user_id=#{userId}) b, - (select count(1) as favoriteSum from favorites where favorite_type = 'Achievements' and favorite_id = #{id} and user_id=#{userId}) d + (select count(1) as favoriteSum from favorites where favorite_type = 'Achievements' and favorite_id = #{id} and user_id=#{userId}) d, + (select count(1) as userDockingSum from clickers where click_type = 'userDocking' and click_id = #{id} and user_id=#{userId}) c ) @@ -443,7 +475,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(*) from achievements - and `source` = #{source} + and `source` = #{t} and create_time >= #{s} and create_time <= #{e} @@ -458,19 +490,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -490,7 +522,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" group by field_3) a group by a.domain_value order by sum(a.countResult) desc) f - right join categories c on c.id = f.name + right join categories c on c.id = f.name where f.value is not null @@ -510,24 +542,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/BehaviorImageMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/BehaviorImageMapper.xml index aaecdf7a0..865eacf60 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/BehaviorImageMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/BehaviorImageMapper.xml @@ -139,21 +139,41 @@ + + @@ -286,13 +306,32 @@ )t group by t.resultType - + select count(1) as "totalUser",sum(r.isExpert) as "totalExpert",sum(r.enterprise_certification+r.authentication) as "authTotal" from ( + select res.userId,res.loginName,res.userName,res.isExpert,res.authentication,res.enterprise_certification,res.relatedCompetition,res.relatedTask,res.p1+res.p2+res.p3 as "relatedProject" from ( + select u.id as "userId",u.login as "loginName",u.nickname as "userName",u.is_expert as "isExpert",u.authentication,u.enterprise_certification, + (select count(1) as "value" from tasks where is_delete='0' and status between 3 and 8 and user_id =u.id) as "relatedTask", + (select count(1) from competition_infos ci inner join competition_users cu on ci.id = cu.competition_info_id where cu.user_id =u.id) as "relatedCompetition", + (SELECT count(1) as "pCount" FROM `projects` WHERE id != 0 AND user_id =u.id) as p1, + ( SELECT count(1) as "pCount" + FROM `projects` INNER JOIN `members` ON `members`.`project_id` = `projects`.`id` + WHERE `projects`.`id` != 0 AND `projects`.`user_id` !=u.id AND `members`.`user_id` =u.id) as p2, + (SELECT count(1) as "pCount" + FROM `projects` + INNER JOIN `team_projects` ON `team_projects`.`project_id` = `projects`.`id` + INNER JOIN `teams` ON `teams`.`id` = `team_projects`.`team_id` + INNER JOIN `team_users` ON `team_users`.`team_id` = `teams`.`id` + WHERE `projects`.`id` != 0 AND `team_users`.`user_id` =u.id) as p3 + from users u) res + where res.relatedCompetition >0 or res.relatedTask >0 or res.p1+res.p2+res.p3>0 )r + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/CompetitionResourceLibraryMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/CompetitionResourceLibraryMapper.xml index e1457d782..dba346015 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/CompetitionResourceLibraryMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/CompetitionResourceLibraryMapper.xml @@ -284,21 +284,21 @@ select * from ( select erl.id, e.id as expert_id,e.user_id, e.expert_name, e.highest_degree, e.graduated_from, - u.nickname as "userNickName",ue.gender as "gender", + u.nickname as "userNickName", IFNULL(erl.gender, ue.gender) as "gender", e.id_number,images, attachments, e.major, e.workplace, e.phone, e.workplace_type, e.expert_email, erl.expert_summary, erl.expert_detail, e.professional_title, e.expert_type, expert_domain,u.authentication as expertAuth, e.title_rank, erl.status, e.review_area_one, e.review_area_two, e.review_area_three, e.is_delete, erl.create_by, erl.create_time, - (select COUNT(*) from task_expert where expert_id = e.id and container_type = 1 and `status` in (1,2)) as taskAuditCount, - (select COUNT(*) from task_expert where expert_id = e.id and container_type = 2 and `status` in (1,2)) as competitionAuditCount, + (select COUNT(distinct container_id) from task_expert where expert_id = e.id and container_type = 1 and `status` in (1,2)) as taskAuditCount, + (select COUNT(distinct container_id) from task_expert where expert_id = e.id and container_type = 2 and `status` in (1,2)) as competitionAuditCount, erl.update_by, erl.update_time,erl.sort_no from experts e inner join users u on e.user_id = u.id @@ -121,7 +121,7 @@ select IFNULL(SUM(competitionAuditCount), 0) - from (select (select COUNT(distinct container_id) - from task_expert - where expert_id = e.id and container_type = 2 and `status` in (1,2)) as competitionAuditCount - from experts e) tmp + from (select COUNT(distinct container_id) as competitionAuditCount + from task_expert te + join experts e on e.id = te.expert_id and te.container_type = 2 and te.`status` in (1, 2)) tmp @@ -415,6 +418,8 @@ and review_area_three is not null and review_area_three != '') a group by a.domain_value + order by count(a.domain_value) desc + limit 0,9 @@ -451,10 +452,11 @@ @@ -494,14 +496,15 @@ @@ -524,13 +527,13 @@ + + + + diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/SchoolEnterpriseAchievementsMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/SchoolEnterpriseAchievementsMapper.xml index b83b2b6ce..8e472f3b4 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/SchoolEnterpriseAchievementsMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/SchoolEnterpriseAchievementsMapper.xml @@ -35,10 +35,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + - select id, achievement_name, achievement_status,field_1, field_2, field_3, achievement_type, source, source_id, source_link, tags, summary, publishing_unit, address, is_featured, contact_person, contact_number, owner_id, owner_name, status, details, reviewer, review_date, review_comments, images, attachments, create_by, create_time, update_by, update_time from school_enterprise_achievements + select id, achievement_name, achievement_status,field_1, field_2, field_3, + achievement_type, source, source_id, source_link, tags, summary, publishing_unit, + address, is_featured, contact_person, contact_number, owner_id, owner_name, status, achievement_little_type, + details, reviewer, review_date, review_comments, images, attachments, create_by, create_time, achievement_cur_status,team_name, + update_by, update_time from school_enterprise_achievements @@ -105,6 +115,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and review_comments = #{reviewComments} and images = #{images} and attachments = #{attachments} + and achievement_cur_status = #{achievementCurStatus} + and achievement_little_type = #{achievementLittleType} + and team_name = #{teamName} @@ -140,6 +153,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, update_time, achievement_status, + achievement_cur_status, + achievement_little_type, + team_name, #{achievementName}, @@ -171,6 +187,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{updateTime}, #{achievementStatus}, + #{achievementCurStatus}, + #{achievementLittleType}, + #{teamName}, @@ -206,6 +225,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, update_time = #{updateTime}, achievement_status = #{achievementStatus}, + achievement_cur_status = #{achievementCurStatus}, + achievement_little_type = #{achievementLittleType}, + team_name = #{teamName}, where id = #{id} diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TalentReferralMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TalentReferralMapper.xml index 0029dfb43..f3894a7ad 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TalentReferralMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TalentReferralMapper.xml @@ -4,7 +4,7 @@ + + + + + + + + + + + + + + diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TaskResourceLibraryMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TaskResourceLibraryMapper.xml index b72ca6283..23f270b72 100644 --- a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TaskResourceLibraryMapper.xml +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TaskResourceLibraryMapper.xml @@ -522,11 +522,22 @@ + + + SELECT + id, pm_project_id, enterprise_identifier + FROM + issues + WHERE pm_project_id IS NOT NULL AND (enterprise_identifier IS NULL OR enterprise_identifier = ''); + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsIssueCompletionMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsIssueCompletionMapper.xml new file mode 100644 index 000000000..8faab00ba --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsIssueCompletionMapper.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + insert into pms_issue_completion + + + gitlink_issue_id, + + + description, + + + type, + + + create_time, + + + update_time, + + + gitlink_user_id, + + + + + #{gitlinkIssueId}, + + + #{description}, + + + #{type}, + + + #{createTime}, + + + #{updateTime}, + + + #{gitlinkUserId}, + + + + + update pms_issue_completion + set + + description = #{description}, + + + update_time = #{updateTime} + + where gitlink_issue_id = #{gitlinkIssueId} and gitlink_user_id = #{gitlinkUserId} + + + delete from pms_issue_completion + where gitlink_issue_id = #{gitlinkIssueId} and gitlink_user_id = #{gitlinkUserId} + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml index 853b22e3c..a747dabdd 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectMapper.xml @@ -173,6 +173,19 @@ from pms_project + + insert into pms_project diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml index cc528b3bd..4fb8a0fb6 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectSprintMapper.xml @@ -221,4 +221,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" WHERE pms_project_id = #{pmProjectId} AND status = 2 ) AS `closed_sprint_count` + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseMapper.xml index db06427f2..d70ac0497 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseMapper.xml @@ -21,11 +21,13 @@ - - - + + + + + @@ -45,9 +47,9 @@ create_by, del_flag, `index`, - reserved_field_1, - reserved_field_2, - reserved_field_3, + description, + test_method, + termination_conditions, identifier, product_req_specs_id from pms_project_testcase @@ -127,11 +129,13 @@ create_by, del_flag, `index`, - reserved_field_1, - reserved_field_2, - reserved_field_3, + description, + test_method, + termination_conditions, identifier, + test_tracking, product_req_specs_id, + is_import, #{title}, @@ -149,11 +153,13 @@ #{createBy}, #{delFlag}, #{index}, - #{reservedField1}, - #{reservedField2}, - #{reservedField3}, + #{description}, + #{testMethod}, + #{terminationConditions}, #{identifier}, + #{testTracking}, #{productReqSpecsId}, + #{isImport}, @@ -175,11 +181,13 @@ create_by = #{createBy}, del_flag = #{delFlag}, `index` = #{index}, - reserved_field_1 = #{reservedField1}, - reserved_field_2 = #{reservedField2}, - reserved_field_3 = #{reservedField3}, + description = #{description}, + test_method = #{testMethod}, + termination_conditions = #{terminationConditions}, identifier = #{identifier}, - product_req_specs_id = #{productReqSpecsId}, + #{testTracking}, + #{productReqSpecsId}, + #{isImport}, where id = #{id} @@ -296,4 +304,28 @@ #{id} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseStepMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseStepMapper.xml index 01a7d8b7c..32df69ec8 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseStepMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestcaseStepMapper.xml @@ -58,6 +58,16 @@ where `index` = #{index} and pms_testcase_id=#{testcaseId} + + + + + + + + diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestsheetMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestsheetMapper.xml index ec6dd180c..35881dc70 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestsheetMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProjectTestsheetMapper.xml @@ -53,6 +53,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + insert into pms_project_testsheet diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/sys/UserController.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/sys/UserController.java similarity index 95% rename from microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/sys/UserController.java rename to microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/sys/UserController.java index 572d55eae..7f894aa0c 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/sys/UserController.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/sys/UserController.java @@ -1,4 +1,4 @@ -package com.microservices.wiki.contoller.sys; +package com.microservices.wiki.controller.sys; import com.microservices.common.core.web.domain.AjaxResult; diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiController.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiController.java similarity index 73% rename from microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiController.java rename to microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiController.java index 2ab3a2282..5123b60fd 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiController.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiController.java @@ -1,13 +1,11 @@ -package com.microservices.wiki.contoller.wiki; +package com.microservices.wiki.controller.wiki; +import com.microservices.common.core.constant.HttpStatus; import com.microservices.common.core.exception.ServiceException; import com.microservices.common.core.web.domain.AjaxResult; import com.microservices.wiki.domain.sys.User; import com.microservices.wiki.domain.wiki.Wiki; -import com.microservices.wiki.domain.wiki.vo.WikiAllVo; -import com.microservices.wiki.domain.wiki.vo.WikiContent; -import com.microservices.wiki.domain.wiki.vo.WikiDeleteVo; -import com.microservices.wiki.domain.wiki.vo.WikiPageVo; +import com.microservices.wiki.domain.wiki.vo.*; import com.microservices.wiki.refactoring.response.HttpClientResult; import com.microservices.wiki.refactoring.utils.BeanCopyUtils; import com.microservices.wiki.refactoring.utils.FastJsonUtils; @@ -36,6 +34,9 @@ public class WikiController { @Value("${gitea-wiki-api-base-url}") private String giteaApiBaseUrl; + @Value("${gitea-hat-wiki-api-base-url}") + private String giteaHatApiBaseUrl; + @Value("${gitea-wiki-token}") private String token; @@ -138,6 +139,44 @@ public class WikiController { return new AjaxResult(httpClientResult.getCode(), "", httpClientResult.getContent()); } + @ApiOperation("getWikiRevisions") + @GetMapping("/getWikiRevisions") + public AjaxResult getWikiRevisions( + HttpServletRequest request, + @ApiParam(value = "owner of the repo", required = true) @RequestParam(defaultValue = "") String owner, + @ApiParam(value = "name of the repo", required = true) @RequestParam(defaultValue = "") String repo, + @ApiParam(value = "name of the wikipage", required = true) @RequestParam(defaultValue = "") String pageName, + @ApiParam(value = "id of the project", required = true) @RequestParam(defaultValue = "") Integer projectId) throws Exception { + String giteaToken = wikiService.getGiteaToken(request, projectId); + //未获取有效giteaToken时,赋值内置giteaToken + giteaToken = giteaToken == null ? token : giteaToken; + WikiRevisionsVo wikiRevisionsVo = wikiService.getWikiRevisions(owner, repo, pageName, giteaApiDomain+giteaApiBaseUrl, giteaToken); + return new AjaxResult(HttpStatus.SUCCESS,"操作成功", wikiRevisionsVo); + } + + @ApiOperation("getPreviousWiki") + @GetMapping("/getPreviousWiki") + public AjaxResult getPreviousWiki( + HttpServletRequest request, + @ApiParam(value = "owner of the repo", required = true) @RequestParam(defaultValue = "") String owner, + @ApiParam(value = "name of the repo", required = true) @RequestParam(defaultValue = "") String repo, + @ApiParam(value = "name of the wikipage", required = true) @RequestParam(defaultValue = "") String pageName, + @ApiParam(value = "id of the project", required = true) @RequestParam(defaultValue = "") Integer projectId, + @ApiParam(value = "sha of the project", required = true) @RequestParam(defaultValue = "") String sha) throws Exception { + String giteaToken = wikiService.getGiteaToken(request, projectId); + //未获取有效giteaToken时,赋值内置giteaToken + giteaToken = giteaToken == null ? token : giteaToken; + HttpClientResult httpClientResult = wikiService.getPreviousWiki(owner, repo, pageName, sha, giteaApiDomain+giteaHatApiBaseUrl, giteaToken); + if (httpClientResult == null) { + throw new ServiceException("获取wiki历史版本数据异常"); + } + if (httpClientResult.getCode() != 200) { + return new AjaxResult(httpClientResult.getCode(),"操作失败", httpClientResult.getContent()); + } + WikiContent wikiContent = getWikiContent(httpClientResult); + return new AjaxResult(httpClientResult.getCode(), "操作成功", wikiContent); + } + @@ -150,7 +189,10 @@ public class WikiController { WikiContent wikiContent = FastJsonUtils.toBean(httpClientResult.getContent(), WikiContent.class); if (wikiContent != null && wikiContent.getLast_commit() != null && wikiContent.getLast_commit().getAuthor() != null) { - wikiContent.setImage_url(userService.getRemoteUserLogoByUserLogin(wikiContent.getLast_commit().getAuthor().getName())); + String image_url = userService.getRemoteUserLogoByUserLogin(wikiContent.getLast_commit().getCommiter().getName()); + wikiContent.setImage_url(image_url); + wikiContent.getLast_commit().getCommiter().setImage_url(image_url); + wikiContent.getLast_commit().getAuthor().setImage_url(image_url); User commitUser = userService.getUserByLogin(wikiContent.getLast_commit().getAuthor().getName()); if(commitUser != null){ wikiContent.setUserName(StringUtils.isEmpty(commitUser.getNickname()) ? commitUser.getLogin() : commitUser.getNickname()); diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiExportController.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiExportController.java similarity index 98% rename from microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiExportController.java rename to microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiExportController.java index bf93a2b1a..b858c595a 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/contoller/wiki/WikiExportController.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/controller/wiki/WikiExportController.java @@ -1,4 +1,4 @@ -package com.microservices.wiki.contoller.wiki; +package com.microservices.wiki.controller.wiki; import com.microservices.common.core.exception.ServiceException; diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/AuthorMessage.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/AuthorMessage.java index 8afa2c137..313850c58 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/AuthorMessage.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/AuthorMessage.java @@ -12,4 +12,6 @@ public class AuthorMessage { private Date date; private String email; + + private String image_url; } diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/CommitMessage.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/CommitMessage.java index 227cb49bc..85010221e 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/CommitMessage.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/CommitMessage.java @@ -9,4 +9,6 @@ public class CommitMessage { private String message; private AuthorMessage author; + + private AuthorMessage commiter; } diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/WikiRevisionsVo.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/WikiRevisionsVo.java new file mode 100644 index 000000000..24343ed59 --- /dev/null +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/domain/wiki/vo/WikiRevisionsVo.java @@ -0,0 +1,12 @@ +package com.microservices.wiki.domain.wiki.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class WikiRevisionsVo { + private List commits; + + private Integer count; +} diff --git a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/service/wiki/WikiService.java b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/service/wiki/WikiService.java index 2f3a2e01b..7d5d7e2b9 100644 --- a/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/service/wiki/WikiService.java +++ b/microservices-modules/microservices-modules-wiki/src/main/java/com/microservices/wiki/service/wiki/WikiService.java @@ -1,18 +1,22 @@ package com.microservices.wiki.service.wiki; import cn.hutool.core.util.ZipUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.github.jhonnymertz.wkhtmltopdf.wrapper.Pdf; import com.github.jhonnymertz.wkhtmltopdf.wrapper.configurations.WrapperConfig; import com.github.jhonnymertz.wkhtmltopdf.wrapper.params.Param; import com.microservices.common.core.exception.ServiceException; +import com.microservices.common.core.web.domain.AjaxResult; import com.microservices.wiki.domain.projects.Projects; +import com.microservices.wiki.domain.sys.User; import com.microservices.wiki.domain.sys.UserVo; import com.microservices.wiki.domain.wiki.Wiki; import com.microservices.wiki.domain.wiki.WikiContentSimple; import com.microservices.wiki.domain.wiki.WikiPage; import com.microservices.wiki.domain.wiki.vo.WikiCloneLinkVo; import com.microservices.wiki.domain.wiki.vo.WikiPageVo; +import com.microservices.wiki.domain.wiki.vo.WikiRevisionsVo; import com.microservices.wiki.domain.wiki.vo.WikiVo; import com.microservices.wiki.mapper.members.MembersMapper; import com.microservices.wiki.mapper.projects.ProjectsMapper; @@ -20,6 +24,7 @@ import com.microservices.wiki.mapper.team_projects.TeamProjectsMapper; import com.microservices.wiki.refactoring.response.HttpClientResult; import com.microservices.wiki.refactoring.utils.*; import com.microservices.wiki.service.sys.UserService; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -82,9 +87,9 @@ public class WikiService { urlFormat += "?access_token=" + giteaToken; } String completeUrl = giteaApiDomain + urlFormat; - logger.info("completeUrl:" + completeUrl); + logger.info("getWikiPages completeUrl:{}", completeUrl); HttpClientResult httpClientResult = HttpClientUtils.doGet(completeUrl, null); - logger.info("httpClientResultCode:" + httpClientResult.getCode()); + logger.info("httpClientResultCode:{}", httpClientResult.getCode()); return httpClientResult; } @@ -106,7 +111,7 @@ public class WikiService { urlFormat += "?access_token=" + giteaToken; } String completeUrl = URL + urlFormat; - logger.info("completeUrl: " + completeUrl); + logger.info("getWiki completeUrl: {}", completeUrl); return HttpClientUtils.doGet(completeUrl, null, null); } @@ -117,7 +122,7 @@ public class WikiService { Map params; WikiVo wikiVo = BeanCopyUtils.beanPropertiesCopy(wiki, WikiVo.class); params = ConvertBean.convertToStringMap(wikiVo); - logger.info("completeUrl: " + URL + urlFormat); + logger.info("completeUrl: {}{}", URL, urlFormat); String completeUrl = URL + urlFormat; return HttpClientUtils.doPost(completeUrl, null, params); } @@ -129,7 +134,7 @@ public class WikiService { String pageName = wiki.getTitle(); String urlFormat = String.format("/repos/%s/%s/wiki/page/%s?access_token=%s", owner, repo, pageName, giteaToken); String completeUrl = URL + urlFormat; - logger.info("delete completeUrl " + completeUrl); + logger.info("delete completeUrl {}", completeUrl); return HttpClientUtils.doDelete(completeUrl); } @@ -140,10 +145,52 @@ public class WikiService { String urlFormat = String.format("/repos/%s/%s/wiki/page/%s?access_token=%s", owner, repo, pageName, giteaToken); WikiVo wikiVo = BeanCopyUtils.beanPropertiesCopy(wiki, WikiVo.class); String completeUrl = URL + urlFormat; - logger.info("completeUrl: " + completeUrl); + logger.info("completeUrl: {}", completeUrl); return HttpClientUtils.doPatch(completeUrl, ConvertBean.convertToStringMap(wikiVo)); } + public WikiRevisionsVo getWikiRevisions(String owner, String repo, String pageName, String URL, String giteaToken) throws Exception { + String urlFormat = String.format("/repos/%s/%s/wiki/revisions/%s", owner, repo, pageName); + if (giteaToken != null) { + urlFormat += "?access_token=" + giteaToken; + } + String completeUrl = URL + urlFormat; + logger.info("getWikiRevisions completeUrl: {}", completeUrl); + HttpClientResult httpClientResult = HttpClientUtils.doGet(completeUrl, null, null); + if (httpClientResult == null) { + throw new ServiceException("获取wiki历史版本列表数据异常"); + } + if (httpClientResult.getCode() != 200) { + throw new ServiceException(httpClientResult.getCode(),"操作失败", httpClientResult.getContent()); + } + WikiRevisionsVo wikiRevisionsVo = JSON.parseObject(httpClientResult.getContent(), WikiRevisionsVo.class); + wikiRevisionsVo.getCommits().forEach(commit -> { + commit.getCommiter().setImage_url(userService.getRemoteUserLogoByUserLogin(commit.getCommiter().getName())); + User commitUser = userService.getUserByLogin(commit.getCommiter().getName()); + if(commitUser != null){ + commit.getCommiter().setName(StringUtils.isEmpty(commitUser.getNickname()) ? commitUser.getLogin() : commitUser.getNickname()); + } + + commit.getAuthor().setImage_url(userService.getRemoteUserLogoByUserLogin(commit.getAuthor().getName())); + User authorUser = userService.getUserByLogin(commit.getAuthor().getName()); + if(authorUser != null){ + commit.getAuthor().setName(StringUtils.isEmpty(authorUser.getNickname()) ? authorUser.getLogin() : authorUser.getNickname()); + } + }); + + return wikiRevisionsVo; + } + + public HttpClientResult getPreviousWiki(String owner, String repo, String pageName, String sha, String URL, String giteaToken) throws Exception { + String urlFormat = String.format("/repos/%s/%s/wiki/revisions/%s/%s", owner, repo, pageName, sha); + if (giteaToken != null) { + urlFormat += "?access_token=" + giteaToken; + } + String completeUrl = URL + urlFormat; + logger.info("getPreviousWiki completeUrl: {}", completeUrl); + return HttpClientUtils.doGet(completeUrl, null, null); + } + public String StringToURLEncode(String s) throws UnsupportedEncodingException { s = java.net.URLEncoder.encode(s, "UTF-8").replaceAll("\\+", "-").replaceAll("\\*", "%2A"); @@ -224,7 +271,7 @@ public class WikiService { if (httpClientResult1.getCode() == 200) { WikiContentSimple wikiContentSimple = FastJsonUtils.toBean(httpClientResult1.getContent(), WikiContentSimple.class); fileUtils.writeStringToFile(wikiContentSimple.getContent_base64(), wikiContentSimple.getTitle() + ".md", dirPath); - logger.info("wikiContent" + wikiContentSimple.getSimple_content()); + logger.info("wikiContent:{}", wikiContentSimple.getSimple_content()); } } downLoadZip(response, repoName, dirPath); @@ -309,7 +356,7 @@ public class WikiService { org.apache.commons.io.FileUtils.forceDelete(new File(completeDestPath)); org.apache.commons.io.FileUtils.forceDelete(new File(dirPath)); } catch (IOException e) { - logger.warn("delete scratch zip file fail: " + completeDestPath); + logger.warn("delete scratch zip file fail: {}", completeDestPath); } } @@ -332,7 +379,7 @@ public class WikiService { try { org.apache.commons.io.FileUtils.forceDelete(new File(filePath)); } catch (IOException e) { - logger.warn("delete scratch file fail: " + filePath); + logger.warn("delete scratch file fail: {}", filePath); } } }