diff --git a/microservices-modules/microservices-modules-dms/pom.xml b/microservices-modules/microservices-modules-dms/pom.xml new file mode 100644 index 000000000..39fb37088 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/pom.xml @@ -0,0 +1,159 @@ + + + + com.microservices + microservices-modules + 3.6.2 + + 4.0.0 + + microservices-modules-dms + + + microservices-modules-dms数据管理体系模块 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + mysql + mysql-connector-java + + + + + com.microservices + microservices-common-async + + + + + com.microservices + microservices-common-datasource + + + + + com.microservices + microservices-common-datascope + + + + + com.microservices + microservices-common-log + + + + + com.microservices + microservices-common-swagger + + + com.microservices + microservices-common-security + + + com.microservices + microservices-common-swagger + + + org.springframework.security + spring-security-core + + + com.microservices + microservices-common-log + + + com.microservices + microservices-common-core + + + org.projectlombok + lombok + + + + org.apache.httpcomponents + httpclient + 4.5.14 + + + com.microservices + microservices-common-httpClient + 3.6.2 + compile + + + net.coobird + thumbnailator + 0.4.8 + compile + + + com.github.shibing624 + similarity + 1.1.6 + + + + + + jitpack.io + https://jitpack.io + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java new file mode 100644 index 000000000..c89588cec --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/MicroservicesDmsApplication.java @@ -0,0 +1,25 @@ +package com.microservices.dms; + +import com.microservices.common.security.annotation.EnableCustomConfig; +import com.microservices.common.security.annotation.EnableRyFeignClients; +import com.microservices.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * 项目管理模块 + * + * @author otto + */ +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableRyFeignClients +@SpringBootApplication +@EnableScheduling +public class MicroservicesDmsApplication { + public static void main(String[] args) { + SpringApplication.run(MicroservicesDmsApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ 数据管理体系模块启动成功 ლ(´ڡ`ლ)゙ \n"); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java new file mode 100644 index 000000000..5089cfe66 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementTeamController.java @@ -0,0 +1,102 @@ +package com.microservices.dms.achievementLibrary.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +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.AchievementTeam; +import com.microservices.dms.achievementLibrary.service.IAchievementTeamService; +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-04-23 + */ +@RestController +@Api(tags = "数据管理体系-成果团队接口") +@RequestMapping("/achievementsTeam") +public class AchievementTeamController extends BaseController +{ + @Autowired + private IAchievementTeamService achievementTeamService; + + /** + * 查询成果团队列表 + */ + @GetMapping("/list") + public TableDataInfo list(AchievementTeam achievementTeam) + { + startPage(); + List list = achievementTeamService.selectAchievementTeamList(achievementTeam); + return getDataTable(list); + } + + /** + * 导出成果团队列表 + */ + @Log(title = "成果团队", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AchievementTeam achievementTeam) + { + List list = achievementTeamService.selectAchievementTeamList(achievementTeam); + ExcelUtil util = new ExcelUtil(AchievementTeam.class); + util.exportExcel(response, list, "成果团队数据"); + } + + /** + * 获取成果团队详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(achievementTeamService.selectAchievementTeamById(id)); + } + + /** + * 新增成果团队 + */ + @Log(title = "成果团队", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AchievementTeam achievementTeam) + { + return toAjax(achievementTeamService.insertAchievementTeam(achievementTeam)); + } + + /** + * 修改成果团队 + */ + @Log(title = "成果团队", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AchievementTeam achievementTeam) + { + return toAjax(achievementTeamService.updateAchievementTeam(achievementTeam)); + } + + /** + * 删除成果团队 + */ + @Log(title = "成果团队", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(achievementTeamService.deleteAchievementTeamByIds(ids)); + } +} 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 new file mode 100644 index 000000000..3a929189f --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/AchievementsController.java @@ -0,0 +1,248 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.dms.achievementLibrary.domain.AchQueryVo; +import com.microservices.dms.achievementLibrary.domain.Achievements; +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.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 成果Controller + * + * @author microservices + * @date 2025-04-02 + */ +@RestController +@RequestMapping("/achievements") +@Api(tags = "数据管理体系-成果库接口") +public class AchievementsController extends BaseController { + @Autowired + private IAchievementsService achievementsService; + + /** + * 查询成果列表 + */ + @GetMapping("/list") + public TableDataInfo list(Achievements achievements) { + startPage(); + List list = achievementsService.selectAchievementsList(achievements); + return getDataTable(list); + } + + /** + * 导出成果列表 + */ + @Log(title = "成果", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, Achievements achievements) { + List list = achievementsService.selectAchievementsList(achievements); + ExcelUtil util = new ExcelUtil(Achievements.class); + util.exportExcel(response, list, "成果数据"); + } + + /** + * 获取成果详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(achievementsService.selectAchievementsById(id)); + } + + /** + * 新增成果 + */ + @Log(title = "成果", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody Achievements achievements) { + return toAjax(achievementsService.insertAchievements(achievements)); + } + + /** + * 修改成果 + */ + @Log(title = "成果", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody Achievements achievements) { + return toAjax(achievementsService.updateAchievements(achievements)); + } + + /** + * 删除成果 + */ + @Log(title = "成果", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return toAjax(achievementsService.deleteAchievementsByIds(ids)); + } + + /** + * 获取精选成果 + * + * @return + */ + @ApiOperation("获取精选成果") + @GetMapping("/getChoiceImport") + public AjaxResult getChoiceImport() { + return success(achievementsService.getChoiceImport()); + } + + /** + * 根据成果来源对成果数据进行分类统计 + * + * @return + */ + @ApiOperation("根据成果来源对成果数据进行分类统计") + @GetMapping("/getTjBySources") + public AjaxResult getTjBySources() { + return success(achievementsService.getTjBySources()); + } + + /** + * 根据成果领域对成功数据进行汇总 + * + * @return + */ + @ApiOperation("根据成果领域对成果数据进行汇总") + @GetMapping("/getTjByAreas") + public AjaxResult getTjByAreas() { + return success(achievementsService.getTjByAreas()); + } + + /** + * 根据领域分类名称,获取领域相关数据(创客任务、开放竞赛、校企成果) + */ + @ApiOperation("根据领域分类名称,获取领域相关数据") + @GetMapping("/getAreasByName") + public AjaxResult getAreasByName(String areaName) { + return success(achievementsService.getAreasByName(areaName)); + } + + + @ApiOperation("根据领域分类名称,获取项目领域") + @GetMapping("/getProjectAreasByName") + public AjaxResult getProjectAreasByName(String areaName) { + return success(achievementsService.getProjectAreasByName(areaName)); + } + + @ApiOperation("根据领域分类名称,获取专家领域") + @GetMapping("/getExpertAreasByName") + public AjaxResult getExpertAreasByName(String areaName) { + return success(achievementsService.getExpertAreasByName(areaName)); + } + + + /* 获取全部成果,根据成果名称、成果领域、成果来源进行查询 + * @return + */ + @ApiOperation("获取全部成果,根据成果名称、成果领域、成果来源进行查询") + @GetMapping("/getAllResult") + public TableDataInfo getAllResult(AchQueryVo achQueryVo) { + startPage(); + return getDataTable(achievementsService.getAllResult(achQueryVo)); + } + + @ApiOperation("近七日用户行为数据") + @GetMapping("/getUerActionData") + public AjaxResult getUerActionData() { + return success(achievementsService.getUerActionData()); + } + + @ApiOperation("热门成果") + @GetMapping("/getHotAchievement") + public AjaxResult getHotAchievement() { + return success(achievementsService.getHotAchievement()); + } + + @ApiOperation("七日新增") + @GetMapping("/get7DayAdd") + public AjaxResult get7DayAdd(AchQueryVo achQueryVo) { + return success(achievementsService.get7DayAdd(achQueryVo)); + } + + + @ApiOperation("首页项目统计") + @GetMapping("/indexProjectStatistic") + public AjaxResult indexProjectStatistic() { + return success(achievementsService.indexProjectStatistic()); + } + + @ApiOperation("首页task统计") + @GetMapping("/indexTaskStatistic") + public AjaxResult indexTaskStatistic() { + return success(achievementsService.indexTaskStatistic()); + } + + @ApiOperation("首页Competition统计") + @GetMapping("/indexCompetitionStatistic") + public AjaxResult indexCompetitionStatistic() { + return success(achievementsService.indexCompetitionStatistic()); + } + + @ApiOperation("首页SchoolEnterprise统计") + @GetMapping("/indexSchoolEnterpriseStatistic") + public AjaxResult indexSchoolEnterpriseStatistic() { + return success(achievementsService.indexSchoolEnterpriseStatistic()); + } + + + @ApiOperation("首页专家统计") + @GetMapping("/indexExpertStatistic") + public AjaxResult indexExpertStatistic() { + return success(achievementsService.indexExpertStatistic()); + } + + + @ApiOperation("根据当前用户以及成果ID,获取当前成果的 是否收藏与关注状态") + @GetMapping("/getWatchFavoriteStatusById") + public AjaxResult getWatchFavoriteStatusById(Long id, Long userId) { + return success(achievementsService.getWatchFavoriteStatusById(id, userId)); + } + @ApiOperation("根据成果ID,获取近7日成果点击数量(折线图)") + @GetMapping("/get7AddClickById") + public AjaxResult get7AddClickById(String id) { + return success(achievementsService.get7AddClickById(id)); + } + + @ApiOperation("根据成果ID,获取成果的相关行为数据统计(点击量、搜索量、附件下载量、收藏、关注)") + @GetMapping("/getActDataStatisticById") + public AjaxResult getActDataStatisticById(Long id) { + return success(achievementsService.getActDataStatisticById(id)); + } + /** + * 根据领域,将成果数据进行分类 + * + */ + @GetMapping("/getAreaStatistic") + public AjaxResult getAreaStatistic(String areaKey) + { + return success(achievementsService.getAreaStatistic(areaKey)); + } + + /** + * 获取开源项目的相关成果 + */ + @ApiOperation(value = "获取开源项目的相关成果") + @GetMapping("/getRelatedAch") + public AjaxResult getRelatedAch(Long id,Long sourceId) + { + return success(achievementsService.getRelatedAch(id,sourceId)); + } + + @ApiOperation(value = "搜索行为数据记录") + @GetMapping("/getSearchResult") + public AjaxResult getSearchResult(String achName,Long userId) + { + return success(achievementsService.getSearchResult(achName,userId)); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java new file mode 100644 index 000000000..f45d21612 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/BigScreenStatisticController.java @@ -0,0 +1,99 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.dms.achievementLibrary.service.BigScreenStatisticService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@Api(tags = "数据管理体系-大屏统计接口") +@RequestMapping("/bigScreenStatistic") +public class BigScreenStatisticController { + + private final BigScreenStatisticService bigScreenStatisticService; + + + @GetMapping(value = "/achievement/getAchievementTopStatistic") + @ApiOperation(value = "成果任务统计顶部折线图") + public AjaxResult getAchievementTopStatistic(String source) { + return AjaxResult.success(bigScreenStatisticService.getAchievementTopStatistic(source)); + } + + @GetMapping(value = "/achievement/getAchievementDataYearly") + @ApiOperation(value = "年度成果数据") + public AjaxResult getAchievementDataYearly() { + return AjaxResult.success(bigScreenStatisticService.getAchievementDataYearly()); + } + + + @GetMapping(value = "/achievement/getAchievementType") + @ApiOperation(value = "成果类型") + public AjaxResult getAchievementType() { + return AjaxResult.success(bigScreenStatisticService.getAchievementType()); + } + + + @GetMapping(value = "/achievement/getAchievementDomain") + @ApiOperation(value = "成果领域分布") + public AjaxResult getAchievementDomain() { + return AjaxResult.success(bigScreenStatisticService.getAchievementDomain()); + } + + + @GetMapping(value = "/achievement/getAchievementAddYearly") + @ApiOperation(value = "近1年新增成果数") + public AjaxResult getAchievementAddYearly() { + return AjaxResult.success(bigScreenStatisticService.getAchievementAddYearly()); + } + + @GetMapping(value = "/achievement/getAchievementActData") + @ApiOperation(value = "成果行为数据展示") + public AjaxResult getAchievementActData() { + return AjaxResult.success(bigScreenStatisticService.getAchievementActData()); + } + + @GetMapping(value = "/achievement/getAchievementHotRank") + @ApiOperation(value = "成果热度排行") + public AjaxResult getAchievementHotRank() { + return AjaxResult.success(bigScreenStatisticService.getAchievementHotRank()); + } + + + @GetMapping(value = "/competition/getCompetitionTopStatistic") + @ApiOperation(value = "competition统计顶部") + public AjaxResult getAchievementTopStatistic() { + return AjaxResult.success(bigScreenStatisticService.getCompetitionTopStatistic()); + } + + @GetMapping(value = "/competition/getCompetitionStatisticYearly") + @ApiOperation(value = "竞赛数据统计") + public AjaxResult getCompetitionStatisticYearly() { + return AjaxResult.success(bigScreenStatisticService.getCompetitionStatisticYearly()); + } + + @GetMapping(value = "/competition/getCompetitionHot") + @ApiOperation(value = "热门竞赛统计") + public AjaxResult getCompetitionHot() { + return AjaxResult.success(bigScreenStatisticService.getCompetitionHot()); + } + + @GetMapping(value = "/competition/getCompetitionYearlyPaperAdd") + @ApiOperation(value = "年度竞赛作品新增数") + public AjaxResult getCompetitionYearlyPaperAdd() { + return AjaxResult.success(bigScreenStatisticService.getCompetitionYearlyPaperAdd()); + } + + @GetMapping(value = "/competition/getCompetitionYearlyFinish") + @ApiOperation(value = "近1年竞赛完成情况") + public AjaxResult getCompetitionYearlyFinish() { + return AjaxResult.success(bigScreenStatisticService.getCompetitionYearlyFinish()); + } + + + +} 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 new file mode 100644 index 000000000..3679191d2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/ExpertDashboardController.java @@ -0,0 +1,76 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.dms.achievementLibrary.service.ExpertDashboardService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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; + +@RestController +@RequiredArgsConstructor +@Api(tags = "数据管理体系-专家可视化接口") +@RequestMapping("/expertDashboard") +public class ExpertDashboardController { + @Autowired + private ExpertDashboardService expertDashboardService; + + @GetMapping(value = "getExpertTotal") + @ApiOperation(value = "获取专家总数") + public AjaxResult getExpertTotal() { + return AjaxResult.success(expertDashboardService.getExpertTotal()); + } + + @GetMapping(value = "getAuthenticationStatistic") + @ApiOperation(value = "专家实名完成度") + public AjaxResult getAuthenticationStatistic() { + return AjaxResult.success(expertDashboardService.getAuthenticationStatistic()); + } + + @GetMapping(value = "getTitleRankStatistic") + @ApiOperation(value = "专家职称级分布") + public AjaxResult getTitleRankStatistic() { + return AjaxResult.success(expertDashboardService.getTitleRankStatistic()); + } + + @GetMapping(value = "getExpertAduit") + @ApiOperation(value = "近一年专家评审作品数") + public AjaxResult getExpertAduit() { + return AjaxResult.success(expertDashboardService.getExpertAduit()); + } + + @GetMapping(value = "getExpertTypeStatistic") + @ApiOperation(value = "专家专业类别") + public AjaxResult getExpertTypeStatistic() { + return AjaxResult.success(expertDashboardService.getExpertTypeStatistic()); + } + + @GetMapping(value = "getWorkplaceTypeStatistic") + @ApiOperation(value = "专家单位类别分布") + public AjaxResult getWorkplaceTypeStatistic() { + return AjaxResult.success(expertDashboardService.getWorkplaceTypeStatistic()); + } + + @GetMapping(value = "getHighestDegreeStatistic") + @ApiOperation(value = "专家学历分布") + public AjaxResult getHighestDegreeStatistic() { + return AjaxResult.success(expertDashboardService.getHighestDegreeStatistic()); + } + + //7、年度专家数据统计 cretate_on + @GetMapping(value = "getExpertTotalByYear") + @ApiOperation(value = "年度专家数据统计") + public AjaxResult getExpertTotalByYear() { + return AjaxResult.success(expertDashboardService.getExpertTotalByYear()); + } + + @GetMapping(value = "getReviewAreasStatistic") + @ApiOperation(value = "热门专家领域") + public AjaxResult getReviewAreasStatistic() { + return AjaxResult.success(expertDashboardService.getReviewAreasStatistic()); + } + +} 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 new file mode 100644 index 000000000..fc4f7db10 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/MemoDashboardController.java @@ -0,0 +1,62 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.dms.achievementLibrary.service.MemoDashboardService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +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; + +@RestController +@RequiredArgsConstructor +@Api(tags = "数据管理体系-社区动态可视化接口") +@RequestMapping("/memoDashboard") +public class MemoDashboardController { + @Autowired + private MemoDashboardService memoDashboardService; + + @GetMapping(value = "getMemoAduit") + @ApiOperation(value = "帖子审核通过率、帖子总数") + public AjaxResult getMemoAduit() { + return AjaxResult.success(memoDashboardService.getMemoAduit()); + } + + @GetMapping(value = "getIsOriginalStatistic") + @ApiOperation(value = "帖子原创、非原创") + public AjaxResult getIsOriginalStatistic() { + return AjaxResult.success(memoDashboardService.getIsOriginalStatistic()); + } + + @GetMapping(value = "getMemoTotalByYear") + @ApiOperation(value = "年度论坛帖子总数") + public AjaxResult getMemoTotalByYear() { + return AjaxResult.success(memoDashboardService.getMemoTotalByYear()); + } + + @GetMapping(value = "getForumSectionStatistic(") + @ApiOperation(value = "帖子分类") + public AjaxResult getForumSectionStatistic() { + return AjaxResult.success(memoDashboardService.getForumSectionStatistic()); + } + + @GetMapping(value = "getAddMemoStatistic(") + @ApiOperation(value = "近一年新增帖子数") + public AjaxResult getAddMemoStatistic() { + return AjaxResult.success(memoDashboardService.getAddMemoStatistic()); + } + + @GetMapping(value = "getTop5Memos(") + @ApiOperation(value = "年度帖子热度top5") + public AjaxResult getTop5Memos() { + return AjaxResult.success(memoDashboardService.getTop5Memos()); + } + + @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 new file mode 100644 index 000000000..f2e0049b5 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/controller/SchoolEnterpriseAchievementsController.java @@ -0,0 +1,112 @@ +package com.microservices.dms.achievementLibrary.controller; + +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.dms.achievementLibrary.domain.SchoolEnterpriseAchievements; +import com.microservices.dms.achievementLibrary.service.ISchoolEnterpriseAchievementsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 校企成果Controller + * + * @author microservices + * @date 2025-04-03 + */ +@Api(tags = "数据管理体系-校企成果接口") +@RestController +@RequestMapping("/schoolEnterpriseAchievements") +public class SchoolEnterpriseAchievementsController extends BaseController +{ + @Autowired + private ISchoolEnterpriseAchievementsService schoolEnterpriseAchievementsService; + + /** + * 查询校企成果列表 + */ + @GetMapping("/list") + public TableDataInfo list(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + startPage(); + List list = schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements); + return getDataTable(list); + } + + /** + * 导出校企成果列表 + */ + @Log(title = "校企成果", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + List list = schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements); + ExcelUtil util = new ExcelUtil(SchoolEnterpriseAchievements.class); + util.exportExcel(response, list, "校企成果数据"); + } + + /** + * 获取校企成果详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(schoolEnterpriseAchievementsService.selectSchoolEnterpriseAchievementsById(id)); + } + + /** + * 新增校企成果 + */ + @Log(title = "校企成果", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + return AjaxResult.success(schoolEnterpriseAchievementsService.insertSchoolEnterpriseAchievements(schoolEnterpriseAchievements)); + } + + /** + * 修改校企成果 + */ + @Log(title = "校企成果", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + return AjaxResult.success(schoolEnterpriseAchievementsService.updateSchoolEnterpriseAchievements(schoolEnterpriseAchievements)); + } + + /** + * 删除校企成果 + */ + @Log(title = "校企成果", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return AjaxResult.success(schoolEnterpriseAchievementsService.deleteSchoolEnterpriseAchievementsByIds(ids)); + } + + /** + * 顶部统计 + */ + @GetMapping("/topStatistic") + @ApiOperation(value = "顶部统计数据") + @ApiImplicitParams({ + @ApiImplicitParam(name = "tags", value = "成果标签", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "status", value = "成果状态", paramType = "query", dataTypeClass = Integer.class), + }) + public AjaxResult topStatistic(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + + Long value = schoolEnterpriseAchievementsService.topStatistic(schoolEnterpriseAchievements); + return AjaxResult.success(value); + } +} 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 new file mode 100644 index 000000000..ec419c8bb --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchQueryVo.java @@ -0,0 +1,32 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class AchQueryVo { + + private String areaQuery;//领域 + private String source;//来源 + private String achievementName;//名称 + private Long userId; + public String getAreaQuery() { + return areaQuery; + } + + public void setAreaQuery(String areaQuery) { + this.areaQuery = areaQuery; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getAchievementName() { + return achievementName; + } + + public void setAchievementName(String achievementName) { + this.achievementName = achievementName; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedResult.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedResult.java new file mode 100644 index 000000000..58ce387e7 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedResult.java @@ -0,0 +1,24 @@ +package com.microservices.dms.achievementLibrary.domain; + +import java.util.List; + +public class AchRelatedResult { + private String year; + private List achRelatedVoList; + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public List getAchRelatedVoList() { + return achRelatedVoList; + } + + public void setAchRelatedVoList(List achRelatedVoList) { + this.achRelatedVoList = achRelatedVoList; + } +} 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 new file mode 100644 index 000000000..42b7ac5a9 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchRelatedVo.java @@ -0,0 +1,76 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class AchRelatedVo { + private Long id; + private String attachments; + private String summary; + private String achievementType; + private String achMonthDay; + private String source; + private Long sourceId; + private String achRelateName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getAttachments() { + return attachments; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getAchievementType() { + return achievementType; + } + + public void setAchievementType(String achievementType) { + this.achievementType = achievementType; + } + + public String getAchMonthDay() { + return achMonthDay; + } + + public void setAchMonthDay(String achMonthDay) { + this.achMonthDay = achMonthDay; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public Long getSourceId() { + return sourceId; + } + + public void setSourceId(Long sourceId) { + this.sourceId = sourceId; + } + + public String getAchRelateName() { + return achRelateName; + } + + public void setAchRelateName(String achRelateName) { + this.achRelateName = achRelateName; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java new file mode 100644 index 000000000..61dff996c --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AchievementTeam.java @@ -0,0 +1,195 @@ +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_team + * + * @author microservices + * @date 2025-04-23 + */ +public class AchievementTeam extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 成果ld */ + @Excel(name = "成果ld") + private Long achievementId; + + /** 姓名 */ + @Excel(name = "姓名") + private String username; + + /** 所属单位 */ + @Excel(name = "所属单位") + private String company; + + /** 职称 */ + @Excel(name = "职称") + private String technicalTitle; + + /** 专业 */ + @Excel(name = "专业") + private String professionalTitle; + + /** 研究方向 */ + @Excel(name = "研究方向") + private String researchDirection; + + /** 联系方式 */ + @Excel(name = "联系方式") + private String phone; + + /** 个人简介 */ + @Excel(name = "个人简介") + private String summary; + + /** 本项成果中主要承担工作 */ + @Excel(name = "本项成果中主要承担工作") + private String workContent; + + /** 是否是负责人 */ + @Excel(name = "是否是负责人") + private String isLeader; + + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long status; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setAchievementId(Long achievementId) + { + this.achievementId = achievementId; + } + + public Long getAchievementId() + { + return achievementId; + } + public void setUsername(String username) + { + this.username = username; + } + + public String getUsername() + { + return username; + } + public void setCompany(String company) + { + this.company = company; + } + + public String getCompany() + { + return company; + } + public void setTechnicalTitle(String technicalTitle) + { + this.technicalTitle = technicalTitle; + } + + public String getTechnicalTitle() + { + return technicalTitle; + } + public void setProfessionalTitle(String professionalTitle) + { + this.professionalTitle = professionalTitle; + } + + public String getProfessionalTitle() + { + return professionalTitle; + } + public void setResearchDirection(String researchDirection) + { + this.researchDirection = researchDirection; + } + + public String getResearchDirection() + { + return researchDirection; + } + public void setPhone(String phone) + { + this.phone = phone; + } + + public String getPhone() + { + return phone; + } + public void setSummary(String summary) + { + this.summary = summary; + } + + public String getSummary() + { + return summary; + } + public void setWorkContent(String workContent) + { + this.workContent = workContent; + } + + public String getWorkContent() + { + return workContent; + } + public void setIsLeader(String isLeader) + { + this.isLeader = isLeader; + } + + public String getIsLeader() + { + return isLeader; + } + public void setStatus(Long status) + { + this.status = status; + } + + public Long getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("achievementId", getAchievementId()) + .append("username", getUsername()) + .append("company", getCompany()) + .append("technicalTitle", getTechnicalTitle()) + .append("professionalTitle", getProfessionalTitle()) + .append("researchDirection", getResearchDirection()) + .append("phone", getPhone()) + .append("summary", getSummary()) + .append("workContent", getWorkContent()) + .append("isLeader", getIsLeader()) + .append("status", getStatus()) + .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/Achievements.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java new file mode 100644 index 000000000..fcb87b180 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/Achievements.java @@ -0,0 +1,517 @@ +package com.microservices.dms.achievementLibrary.domain; + +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +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; + +/** + * 成果对象 achievementsll + * + * @author microservices + * @date 2025-04-02 + */ +public class Achievements extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 成果唯一标识 + */ + private Long id; + + /** + * 成果名称 + */ + @Excel(name = "成果名称") + private String achievementName; + + /** + * 成果领域1 + */ + @Excel(name = "成果领域1") + private String field1; + //成果领域名称 + private String field1Name; + + /** + * 成果领域2 + */ + @Excel(name = "成果领域2") + private String field2; + + /** + * 成果领域3 + */ + @Excel(name = "成果领域3") + private String field3; + + /** + * 成果类型 + */ + @Excel(name = "成果类型") + private String achievementType; + + /** + * 成果来源 + */ + @Excel(name = "成果来源") + private String source; + + /** + * 成果来源ID + */ + @Excel(name = "成果来源ID") + private Long sourceId; + + /** + * 成果来源跳转链接 + */ + @Excel(name = "成果来源跳转链接") + private String sourceLink; + + /** + * 成果标签 + */ + @Excel(name = "成果标签") + private String tags; + + /** + * 成果摘要 + */ + @Excel(name = "成果摘要") + private String summary; + + /** + * 发布单位 + */ + @Excel(name = "发布单位") + private String publishingUnit; + + /** + * 成果地址 + */ + @Excel(name = "成果地址") + private String address; + + /** + * 是否精选成果 + */ + @Excel(name = "是否精选成果") + private Integer isFeatured; + + /** + * 联系人 + */ + @Excel(name = "联系人") + private String contactPerson; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + private String contactNumber; + + /** + * 成果所属人ID + */ + @Excel(name = "成果所属人ID") + private String ownerId; + + /** + * 成果所属人名称 + */ + @Excel(name = "成果所属人名称") + private String ownerName; + + /** + * 成果状态 + */ + @Excel(name = "成果状态") + private String status; + + /** + * 成果详情 + */ + @Excel(name = "成果详情") + private String details; + + /** + * 成果审核人 + */ + @Excel(name = "成果审核人") + private String reviewer; + + /** + * 成果审核时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "成果审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewDate; + + /** + * 成果审核意见 + */ + @Excel(name = "成果审核意见") + private String reviewComments; + + /** + * 成果图片 + */ + @Excel(name = "成果图片") + private String images; + + /** + * 成果附件 + */ + @Excel(name = "成果附件") + private String attachments; + + private Long clickSum; + private Long watcherSum; + private Long favoriteSum; + private Float hotRank; + private Long attachmentCount; + private Integer isExpertAudit; + private String userImg; + private String userNickName; + public String gender; + private String userLogin; + + public String getUserImg() { + return userImg; + } + + public void setUserImg(String userImg) { + this.userImg = userImg; + } + + public String getUserNickName() { + return userNickName; + } + + public void setUserNickName(String userNickName) { + this.userNickName = userNickName; + } + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public String getUserLogin() { + return userLogin; + } + + public void setUserLogin(String userLogin) { + this.userLogin = userLogin; + } + + public String getField1Name() { + return field1Name; + } + + public void setField1Name(String field1Name) { + this.field1Name = field1Name; + } + + public Long getWatcherSum() { + return watcherSum; + } + + public void setWatcherSum(Long watcherSum) { + this.watcherSum = watcherSum; + } + + public Long getFavoriteSum() { + return favoriteSum; + } + + public void setFavoriteSum(Long favoriteSum) { + this.favoriteSum = favoriteSum; + } + + public Float getHotRank() { + return hotRank; + } + + public void setHotRank(Float hotRank) { + this.hotRank = hotRank; + } + + public Integer getIsExpertAudit() { + return isExpertAudit; + } + + public void setIsExpertAudit(Integer isExpertAudit) { + this.isExpertAudit = isExpertAudit; + } + + public Long getAttachmentCount() { + return attachmentCount; + } + + public void setAttachmentCount(Long attachmentCount) { + this.attachmentCount = attachmentCount; + } + + public Long getClickSum() { + return clickSum; + } + + public void setClickSum(Long clickSum) { + this.clickSum = clickSum; + } + + private List attachmentList; + + public List getAttachmentList() { + return attachmentList; + } + + public void setAttachmentList(List attachmentList) { + this.attachmentList = attachmentList; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setAchievementName(String achievementName) { + this.achievementName = achievementName; + } + + public String getAchievementName() { + return achievementName; + } + + public void setField1(String field1) { + this.field1 = field1; + } + + public String getField1() { + return field1; + } + + public void setField2(String field2) { + this.field2 = field2; + } + + public String getField2() { + return field2; + } + + public void setField3(String field3) { + this.field3 = field3; + } + + public String getField3() { + return field3; + } + + public void setAchievementType(String achievementType) { + this.achievementType = achievementType; + } + + public String getAchievementType() { + return achievementType; + } + + public void setSource(String source) { + this.source = source; + } + + public String getSource() { + return source; + } + + public void setSourceId(Long sourceId) { + this.sourceId = sourceId; + } + + public Long getSourceId() { + return sourceId; + } + + public void setSourceLink(String sourceLink) { + this.sourceLink = sourceLink; + } + + public String getSourceLink() { + return sourceLink; + } + + public void setTags(String tags) { + this.tags = tags; + } + + public String getTags() { + return tags; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getSummary() { + return summary; + } + + public void setPublishingUnit(String publishingUnit) { + this.publishingUnit = publishingUnit; + } + + public String getPublishingUnit() { + return publishingUnit; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getAddress() { + return address; + } + + public void setIsFeatured(Integer isFeatured) { + this.isFeatured = isFeatured; + } + + public Integer getIsFeatured() { + return isFeatured; + } + + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; + } + + public String getContactPerson() { + return contactPerson; + } + + public void setContactNumber(String contactNumber) { + this.contactNumber = contactNumber; + } + + public String getContactNumber() { + return contactNumber; + } + + public void setOwnerId(String ownerId) { + this.ownerId = ownerId; + } + + public String getOwnerId() { + return ownerId; + } + + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + public String getOwnerName() { + return ownerName; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + + public void setDetails(String details) { + this.details = details; + } + + public String getDetails() { + return details; + } + + public void setReviewer(String reviewer) { + this.reviewer = reviewer; + } + + public String getReviewer() { + return reviewer; + } + + public void setReviewDate(Date reviewDate) { + this.reviewDate = reviewDate; + } + + public Date getReviewDate() { + return reviewDate; + } + + public void setReviewComments(String reviewComments) { + this.reviewComments = reviewComments; + } + + public String getReviewComments() { + return reviewComments; + } + + public void setImages(String images) { + this.images = images; + } + + public String getImages() { + return images; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getAttachments() { + 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/AreaStatisticVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreaStatisticVo.java new file mode 100644 index 000000000..51a2197b5 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreaStatisticVo.java @@ -0,0 +1,74 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class AreaStatisticVo { + //领域名称 + private String areaName; + //领域key + private String areaKey; + //领域说明 + private String remark; + //开源项目汇总 + private Long kyxmSum; + //创客任务汇总 + private Long ckrwSum; + //开放竞赛汇总 + private Long kfjsSum; + //校企成果汇总 + private Long xqcgSum; + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public String getAreaKey() { + return areaKey; + } + + public void setAreaKey(String areaKey) { + this.areaKey = areaKey; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Long getKyxmSum() { + return kyxmSum; + } + + public void setKyxmSum(Long kyxmSum) { + this.kyxmSum = kyxmSum; + } + + public Long getCkrwSum() { + return ckrwSum; + } + + public void setCkrwSum(Long ckrwSum) { + this.ckrwSum = ckrwSum; + } + + public Long getKfjsSum() { + return kfjsSum; + } + + public void setKfjsSum(Long kfjsSum) { + this.kfjsSum = kfjsSum; + } + + public Long getXqcgSum() { + return xqcgSum; + } + + public void setXqcgSum(Long xqcgSum) { + this.xqcgSum = xqcgSum; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java new file mode 100644 index 000000000..12ff6a0fc --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/AreasTjVo.java @@ -0,0 +1,25 @@ +package com.microservices.dms.achievementLibrary.domain; + +import java.util.List; + + +public class AreasTjVo { + private Long areaSum; + private List areaDetails; + + public Long getAreaSum() { + return areaSum; + } + + public void setAreaSum(Long areaSum) { + this.areaSum = areaSum; + } + + public List getAreaDetails() { + return areaDetails; + } + + public void setAreaDetails(List areaDetails) { + this.areaDetails = areaDetails; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java new file mode 100644 index 000000000..4ed399082 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/ExpertTotallVo.java @@ -0,0 +1,44 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class ExpertTotallVo { + //专家名称 + private String name; + //任务审核数 + private Long taskAuditSum; + //竞赛审核数 + private Long competitionAuditSum; + //总数 + private Long total; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getTaskAuditSum() { + return taskAuditSum; + } + + public void setTaskAuditSum(Long taskAuditSum) { + this.taskAuditSum = taskAuditSum; + } + + public Long getCompetitionAuditSum() { + return competitionAuditSum; + } + + public void setCompetitionAuditSum(Long competitionAuditSum) { + this.competitionAuditSum = competitionAuditSum; + } + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java new file mode 100644 index 000000000..baf5fa5b6 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/KeyValueVo.java @@ -0,0 +1,58 @@ +package com.microservices.dms.achievementLibrary.domain; + +public class KeyValueVo { + private String key; + private String name; + private String result; + private Long value; + private Long value2; + private Long total; + + public Long getTotal() { + return total; + } + + public void setTotal(Long total) { + this.total = total; + } + + public Long getValue2() { + return value2; + } + + public void setValue2(Long value2) { + this.value2 = value2; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getResult() { + return result; + } + + public void setResult(String result) { + this.result = result; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public Long getValue() { + return value; + } + + public void setValue(Long value) { + this.value = value; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java new file mode 100644 index 000000000..d514c2f4b --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/MemoTotalVo.java @@ -0,0 +1,74 @@ +package com.microservices.dms.achievementLibrary.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +import java.util.Date; + +public class MemoTotalVo { + private Long id; + private String subject; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "发布时间", hidden = true) + private Date publishedAt; + private Long viewedCount; + private Long praisesCount; + private Long repliesCount; + private Long behavioreSum; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public Date getPublishedAt() { + return publishedAt; + } + + public void setPublishedAt(Date publishedAt) { + this.publishedAt = publishedAt; + } + + public Long getViewedCount() { + return viewedCount; + } + + public void setViewedCount(Long viewedCount) { + this.viewedCount = viewedCount; + } + + public Long getPraisesCount() { + return praisesCount; + } + + public void setPraisesCount(Long praisesCount) { + this.praisesCount = praisesCount; + } + + public Long getRepliesCount() { + return repliesCount; + } + + public void setRepliesCount(Long repliesCount) { + this.repliesCount = repliesCount; + } + + public Long getBehavioreSum() { + return behavioreSum; + } + + public void setBehavioreSum(Long behavioreSum) { + this.behavioreSum = behavioreSum; + } +} 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 new file mode 100644 index 000000000..026fb8a67 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/domain/SchoolEnterpriseAchievements.java @@ -0,0 +1,413 @@ +package com.microservices.dms.achievementLibrary.domain; + +import java.util.Date; + +import com.fasterxml.jackson.annotation.JsonFormat; +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; + +/** + * 校企成果对象 school_enterprise_achievements + * + * @author microservices + * @date 2025-04-03 + */ +public class SchoolEnterpriseAchievements extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 成果唯一标识 + */ + private Long id; + + /** + * 成果名称 + */ + @Excel(name = "成果名称") + private String achievementName; + + /** + * 成果领域1 + */ + @Excel(name = "成果领域1") + private String field1; + + /** + * 成果领域2 + */ + @Excel(name = "成果领域2") + private String field2; + + /** + * 成果领域3 + */ + @Excel(name = "成果领域3") + private String field3; + + /** + * 成果类型 + */ + @Excel(name = "成果类型") + private String achievementType; + + /** + * 成果来源 + */ + @Excel(name = "成果来源") + private String source; + + /** + * 成果来源ID + */ + @Excel(name = "成果来源ID") + private String sourceId; + + /** + * 成果来源跳转链接 + */ + @Excel(name = "成果来源跳转链接") + private String sourceLink; + + /** + * 成果标签 + */ + @Excel(name = "成果标签") + private String tags; + + /** + * 成果摘要 + */ + @Excel(name = "成果摘要") + private String summary; + + /** + * 发布单位 + */ + @Excel(name = "发布单位") + private String publishingUnit; + + /** + * 成果地址 + */ + @Excel(name = "成果地址") + private String address; + + /** + * 是否精选成果 + */ + @Excel(name = "是否精选成果") + private Integer isFeatured; + + /** + * 联系人 + */ + @Excel(name = "联系人") + private String contactPerson; + + /** + * 联系电话 + */ + @Excel(name = "联系电话") + private String contactNumber; + + /** + * 成果所属人ID + */ + @Excel(name = "成果所属人ID") + private String ownerId; + + /** + * 成果所属人名称 + */ + @Excel(name = "成果所属人名称") + private String ownerName; + + /** + * 成果状态 + */ + @Excel(name = "校企成果的状态 1是通过,3是不通过") + private String status; + + /** + * 成果详情 + */ + @Excel(name = "成果详情") + private String details; + + /** + * 成果审核人 + */ + @Excel(name = "成果审核人") + private String reviewer; + + /** + * 成果审核时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "成果审核时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date reviewDate; + + /** + * 成果审核意见 + */ + @Excel(name = "成果审核意见") + private String reviewComments; + + /** + * 成果图片 + */ + @Excel(name = "成果图片") + private String images; + + /** + * 成果附件 + */ + @Excel(name = "成果附件") + private String attachments; + private Integer achievementStatus; + + public Integer getAchievementStatus() { + return achievementStatus; + } + + public void setAchievementStatus(Integer achievementStatus) { + this.achievementStatus = achievementStatus; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setAchievementName(String achievementName) { + this.achievementName = achievementName; + } + + public String getAchievementName() { + return achievementName; + } + + public void setField1(String field1) { + this.field1 = field1; + } + + public String getField1() { + return field1; + } + + public void setField2(String field2) { + this.field2 = field2; + } + + public String getField2() { + return field2; + } + + public void setField3(String field3) { + this.field3 = field3; + } + + public String getField3() { + return field3; + } + + public void setAchievementType(String achievementType) { + this.achievementType = achievementType; + } + + public String getAchievementType() { + return achievementType; + } + + public void setSource(String source) { + this.source = source; + } + + public String getSource() { + return source; + } + + public void setSourceId(String sourceId) { + this.sourceId = sourceId; + } + + public String getSourceId() { + return sourceId; + } + + public void setSourceLink(String sourceLink) { + this.sourceLink = sourceLink; + } + + public String getSourceLink() { + return sourceLink; + } + + public void setTags(String tags) { + this.tags = tags; + } + + public String getTags() { + return tags; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public String getSummary() { + return summary; + } + + public void setPublishingUnit(String publishingUnit) { + this.publishingUnit = publishingUnit; + } + + public String getPublishingUnit() { + return publishingUnit; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getAddress() { + return address; + } + + public void setIsFeatured(Integer isFeatured) { + this.isFeatured = isFeatured; + } + + public Integer getIsFeatured() { + return isFeatured; + } + + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; + } + + public String getContactPerson() { + return contactPerson; + } + + public void setContactNumber(String contactNumber) { + this.contactNumber = contactNumber; + } + + public String getContactNumber() { + return contactNumber; + } + + public void setOwnerId(String ownerId) { + this.ownerId = ownerId; + } + + public String getOwnerId() { + return ownerId; + } + + public void setOwnerName(String ownerName) { + this.ownerName = ownerName; + } + + public String getOwnerName() { + return ownerName; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + + public void setDetails(String details) { + this.details = details; + } + + public String getDetails() { + return details; + } + + public void setReviewer(String reviewer) { + this.reviewer = reviewer; + } + + public String getReviewer() { + return reviewer; + } + + public void setReviewDate(Date reviewDate) { + this.reviewDate = reviewDate; + } + + public Date getReviewDate() { + return reviewDate; + } + + public void setReviewComments(String reviewComments) { + this.reviewComments = reviewComments; + } + + public String getReviewComments() { + return reviewComments; + } + + public void setImages(String images) { + this.images = images; + } + + public String getImages() { + return images; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getAttachments() { + 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/mapper/AchievementTeamMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java new file mode 100644 index 000000000..20e5502aa --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementTeamMapper.java @@ -0,0 +1,69 @@ +package com.microservices.dms.achievementLibrary.mapper; + +import java.util.List; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.AchievementTeam; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 成果团队Mapper接口 + * + * @author microservices + * @date 2025-04-23 + */ +@Mapper +@Slave +public interface AchievementTeamMapper +{ + /** + * 查询成果团队 + * + * @param id 成果团队主键 + * @return 成果团队 + */ + public AchievementTeam selectAchievementTeamById(Long id); + + /** + * 查询成果团队列表 + * + * @param achievementTeam 成果团队 + * @return 成果团队集合 + */ + public List selectAchievementTeamList(AchievementTeam achievementTeam); + + /** + * 新增成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + public int insertAchievementTeam(AchievementTeam achievementTeam); + + /** + * 修改成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + public int updateAchievementTeam(AchievementTeam achievementTeam); + + /** + * 删除成果团队 + * + * @param id 成果团队主键 + * @return 结果 + */ + public int deleteAchievementTeamById(Long id); + + /** + * 批量删除成果团队 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAchievementTeamByIds(Long[] ids); + + void deleteAchievementTeamByAId(@Param("aid") Long aid); +} 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 new file mode 100644 index 000000000..35284f5b3 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/AchievementsMapper.java @@ -0,0 +1,143 @@ +package com.microservices.dms.achievementLibrary.mapper; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Set; + +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.vo.KeyValVo; +import org.apache.ibatis.annotations.MapKey; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 成果Mapper接口 + * + * @author microservices + * @date 2025-04-02 + */ +@Mapper +@Slave +public interface AchievementsMapper { + /** + * 查询成果 + * + * @param id 成果主键 + * @return 成果 + */ + public Achievements selectAchievementsById(Long id); + + /** + * 查询成果列表 + * + * @param achievements 成果 + * @return 成果集合 + */ + public List selectAchievementsList(Achievements achievements); + + /** + * 新增成果 + * + * @param achievements 成果 + * @return 结果 + */ + public int insertAchievements(Achievements achievements); + + /** + * 修改成果 + * + * @param achievements 成果 + * @return 结果 + */ + public int updateAchievements(Achievements achievements); + + /** + * 删除成果 + * + * @param id 成果主键 + * @return 结果 + */ + public int deleteAchievementsById(Long id); + + /** + * 批量删除成果 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAchievementsByIds(Long[] ids); + + @MapKey("k") + @Master + List> getFileInfoByIdents(@Param("idents") Set idents); + + List getChoiceImport(); + + List getTjBySources(); + + List getTjByAreas(); + + List selectAchievementsByParam(AchQueryVo achQueryVo); + + Long getAchievementClickSum(@Param("id") Long id); + + List> getaWatcher(@Param("s") Date s, @Param("e") Date e, @Param("t") String achievements); + + List> getFavorite(@Param("s") Date s, @Param("e") Date e, @Param("t") String achievements); + + List> getAchievement(@Param("s") Date s, @Param("e") Date e, @Param("t") String source); + + List> getHotAchievement(); + + Map indexProjectStatistic(); + + Map indexTaskStatistic(); + + Map indexCompetitionStatistic(); + + Long indexSchoolEnterpriseStatistic(@Param("s") String s, @Param("t") String tags); + + List getAreasByName(@Param("areaName") String areaName); + + AchievementBehaviorSumVo getActDataStatisticById(@Param("id") Long id); + + List> get7AddClickById(@Param("s") Date s, @Param("e") Date e, @Param("t") String achievements, @Param("id") String id); + + AchievementBehaviorSumVo getWatchFavoriteStatusById(@Param("id") Long id, @Param("userId")Long userId); + + Long countAchievementBySource(@Param("s") Date s, @Param("e") Date e, @Param("t") String achievements); + + List> getAchievementDataYearly(); + + List> getAchievementType(); + + List getAchievementActData(); + + List> getAchievementDomain(); + + List> getAchievementAddYearly(); + + List> getAchievementHotRank(); + + List getAllId(); + + List getAreaStatistic(@Param("areaKey") String areaKey); + + List getRelatedAch(@Param("id")Long id, @Param("sourceId") List sourceId, @Param("paramYear")String paramYear); + + List getDistinctYear(@Param("id")Long id, @Param("sourceId")List sourceId); + + List selectAchievementsByName(@Param("achName") String achName); + + String getField1NameByParam(@Param("source")String source, @Param("id") Long id); + + List getProjectAreasByName(@Param("areaName") String areaName); + + List getExpertAreasByName(@Param("areaName") String areaName); + + List getAllSourceId(@Param("id")Long id, @Param("sourceId")Long sourceId); +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/SchoolEnterpriseAchievementsMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/SchoolEnterpriseAchievementsMapper.java new file mode 100644 index 000000000..ae89460ff --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/mapper/SchoolEnterpriseAchievementsMapper.java @@ -0,0 +1,68 @@ +package com.microservices.dms.achievementLibrary.mapper; + +import java.util.List; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.SchoolEnterpriseAchievements; +import org.apache.ibatis.annotations.Mapper; + +/** + * 校企成果Mapper接口 + * + * @author microservices + * @date 2025-04-03 + */ +@Mapper +@Slave +public interface SchoolEnterpriseAchievementsMapper +{ + /** + * 查询校企成果 + * + * @param id 校企成果主键 + * @return 校企成果 + */ + public SchoolEnterpriseAchievements selectSchoolEnterpriseAchievementsById(Long id); + + /** + * 查询校企成果列表 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 校企成果集合 + */ + public List selectSchoolEnterpriseAchievementsList(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 新增校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + public int insertSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 修改校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + public int updateSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 删除校企成果 + * + * @param id 校企成果主键 + * @return 结果 + */ + public int deleteSchoolEnterpriseAchievementsById(Long id); + + /** + * 批量删除校企成果 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSchoolEnterpriseAchievementsByIds(Long[] ids); + + Long topStatistic(SchoolEnterpriseAchievements schoolEnterpriseAchievements); +} 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 new file mode 100644 index 000000000..fddf8c5a8 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/BigScreenStatisticService.java @@ -0,0 +1,138 @@ +package com.microservices.dms.achievementLibrary.service; + +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.mapper.CompetitionResourceLibraryMapper; +import com.microservices.dms.utils.DateUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +@Service +@RequiredArgsConstructor +public class BigScreenStatisticService { + + private final AchievementsMapper achievementsMapper; + private final CompetitionResourceLibraryMapper competitionResourceLibraryMapper; + + public Map getAchievementTopStatistic(String source) { + 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]); + 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); + long cSum = m.values().stream().mapToLong(Long::longValue).sum(); + double rate; + if (lastSum == 0) rate = 100D; + else { + rate = (double) (cSum - lastSum) / lastSum; + } + + 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); + } + + Map map = new HashMap<>(); + map.put("list", res); + map.put("sum", sum); + map.put("rate", rate); + return map; + } + + public List> getAchievementDataYearly() { + return achievementsMapper.getAchievementDataYearly(); + } + + public List> getAchievementType() { + return achievementsMapper.getAchievementType(); + } + + public Map> getAchievementActData() { + List list = achievementsMapper.getAchievementActData(); + Map> res = list.stream().collect(Collectors.groupingBy(KeyValueVo::getKey)); + return res; + } + + public List> getAchievementDomain() { + return achievementsMapper.getAchievementDomain(); + } + + public List> getAchievementAddYearly() { + return achievementsMapper.getAchievementAddYearly(); + } + + public List> getAchievementHotRank() { + return achievementsMapper.getAchievementHotRank(); + } + + public Map getCompetitionTopStatistic() { + Map res = new HashMap<>(); + Long finish = competitionResourceLibraryMapper.getCompetitionFinish(); + res.put("finish", finish); + Long enroll = competitionResourceLibraryMapper.getCompetitionEnroll(); + res.put("enroll", enroll); + Long underway = competitionResourceLibraryMapper.getCompetitionUnderway(); + res.put("underway", underway); + Long submitCount = competitionResourceLibraryMapper.getCompetitionSubmitCount(); + res.put("submitCount", submitCount); + Long transfer = competitionResourceLibraryMapper.getCompetitionTransferCount(); + res.put("transfer", transfer); + Long needAudit = competitionResourceLibraryMapper.getCompetitionNeedAuditCount(); + res.put("needAudit", needAudit); + return res; + } + + public List getCompetitionStatisticYearly() { + return competitionResourceLibraryMapper.getCompetitionStatisticYearly(); + } + + public Object getCompetitionHot() { + return competitionResourceLibraryMapper.getCompetitionHot(); + } + + public List> getCompetitionYearlyPaperAdd() { + Date[] currentYear = DateUtil.getCurrentYear(); + + 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> 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> getCompetitionYearlyFinish() { + Date[] currentYear = DateUtil.getCurrentYear(); + Date[] YearEndOfCur = DateUtil.getCurrentYearEndOf(LocalDate.now()); + + Map m = competitionResourceLibraryMapper.getCompetitionYearlyFinish(YearEndOfCur[0],YearEndOfCur[1]) + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + List dateStr = DateUtil.getDateStrMMDD(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; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ExpertDashboardService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ExpertDashboardService.java new file mode 100644 index 000000000..7726c6f0f --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ExpertDashboardService.java @@ -0,0 +1,90 @@ +package com.microservices.dms.achievementLibrary.service; + + +import com.microservices.dms.achievementLibrary.domain.ExpertTotallVo; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.resourceLibrary.mapper.ExpertResourceLibraryMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ExpertDashboardService { + @Autowired + private ExpertResourceLibraryMapper expertResourceLibraryMapper; + /** + * 专家职称级分布 + * @return + */ + public List getTitleRankStatistic() { + return expertResourceLibraryMapper.getTitleRankStatistic(); + } + + /** + * 专家专业类别 + * @return + */ + public List getExpertTypeStatistic() { + return expertResourceLibraryMapper.getExpertTypeStatistic(); + } + + /** + * 专家学历分布 + * @return + */ + public List getHighestDegreeStatistic() { + return expertResourceLibraryMapper.getHighestDegreeStatistic(); + } + + /** + * 专家单位类别分布 + * @return + */ + public List getWorkplaceTypeStatistic() { + return expertResourceLibraryMapper.getWorkplaceTypeStatistic(); + } + + /** + * 获取专家总数 + * @return + */ + public Long getExpertTotal() { + return expertResourceLibraryMapper.getExpertTotal(); + } + /** + * 专家实名完成度 userId users.authentication + * @return + */ + public KeyValueVo getAuthenticationStatistic() { + return expertResourceLibraryMapper.getAuthenticationStatistic(); + } + + /** + * 年度专家数据统计 cretate_on + * @return + */ + public List getExpertTotalByYear() { + return expertResourceLibraryMapper.getExpertTotalByYear(); + } + + /** + * 热门专家领域 + * reviewAreaOne、reviewAreaTwo、reviewAreaThree + * @return + */ + public List getReviewAreasStatistic() { + return expertResourceLibraryMapper.getReviewAreasStatistic(); + } + + /** + * 近一年专家评审数 + * @return + */ + public List getExpertAduit() { + return expertResourceLibraryMapper.getExpertAduit(); + } + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementTeamService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementTeamService.java new file mode 100644 index 000000000..3f45dbfb6 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementTeamService.java @@ -0,0 +1,61 @@ +package com.microservices.dms.achievementLibrary.service; + +import java.util.List; +import com.microservices.dms.achievementLibrary.domain.AchievementTeam; + +/** + * 成果团队Service接口 + * + * @author microservices + * @date 2025-04-23 + */ +public interface IAchievementTeamService +{ + /** + * 查询成果团队 + * + * @param id 成果团队主键 + * @return 成果团队 + */ + public AchievementTeam selectAchievementTeamById(Long id); + + /** + * 查询成果团队列表 + * + * @param achievementTeam 成果团队 + * @return 成果团队集合 + */ + public List selectAchievementTeamList(AchievementTeam achievementTeam); + + /** + * 新增成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + public int insertAchievementTeam(AchievementTeam achievementTeam); + + /** + * 修改成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + public int updateAchievementTeam(AchievementTeam achievementTeam); + + /** + * 批量删除成果团队 + * + * @param ids 需要删除的成果团队主键集合 + * @return 结果 + */ + public int deleteAchievementTeamByIds(Long[] ids); + + /** + * 删除成果团队信息 + * + * @param id 成果团队主键 + * @return 结果 + */ + public int deleteAchievementTeamById(Long id); +} 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 new file mode 100644 index 000000000..f56de91d5 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/IAchievementsService.java @@ -0,0 +1,110 @@ +package com.microservices.dms.achievementLibrary.service; + +import java.util.List; +import java.util.Map; + +import com.microservices.dms.achievementLibrary.domain.*; +import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; + +/** + * 成果Service接口 + * + * @author microservices + * @date 2025-04-02 + */ +public interface IAchievementsService { + /** + * 查询成果 + * + * @param id 成果主键 + * @return 成果 + */ + public Achievements selectAchievementsById(Long id); + + /** + * 查询成果列表 + * + * @param achievements 成果 + * @return 成果集合 + */ + public List selectAchievementsList(Achievements achievements); + + /** + * 新增成果 + * + * @param achievements 成果 + * @return 结果 + */ + public int insertAchievements(Achievements achievements); + + /** + * 修改成果 + * + * @param achievements 成果 + * @return 结果 + */ + public int updateAchievements(Achievements achievements); + + /** + * 批量删除成果 + * + * @param ids 需要删除的成果主键集合 + * @return 结果 + */ + public int deleteAchievementsByIds(Long[] ids); + + /** + * 删除成果信息 + * + * @param id 成果主键 + * @return 结果 + */ + public int deleteAchievementsById(Long id); + + String buildFileInfoByIdents(String aStr, String source); + + List selectAchievementsFrontList(Achievements achievements); + + List getChoiceImport(); + + List getTjBySources(); + + List getTjByAreas(); + + List getAllResult(AchQueryVo achQueryVo); + + Map getUerActionData(); + + List> getHotAchievement(); + + List> get7DayAdd(AchQueryVo achQueryVo); + + Map indexProjectStatistic(); + + Map indexTaskStatistic(); + + Map indexCompetitionStatistic(); + + Map indexSchoolEnterpriseStatistic(); + + Map indexExpertStatistic(); + + List getAreasByName(String areaName); + + AchievementBehaviorSumVo getActDataStatisticById(Long id); + + List> get7AddClickById(String id); + + AchievementBehaviorSumVo getWatchFavoriteStatusById(Long id, Long userId); + + List getAreaStatistic(String areaKey); + + List getRelatedAch(Long id, Long sourceId); + + int getSearchResult(String achName, Long userId); + + List getProjectAreasByName(String areaName); + + List getExpertAreasByName(String areaName); +} 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 new file mode 100644 index 000000000..e85ba935d --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/ISchoolEnterpriseAchievementsService.java @@ -0,0 +1,63 @@ +package com.microservices.dms.achievementLibrary.service; + +import java.util.List; +import com.microservices.dms.achievementLibrary.domain.SchoolEnterpriseAchievements; + +/** + * 校企成果Service接口 + * + * @author microservices + * @date 2025-04-03 + */ +public interface ISchoolEnterpriseAchievementsService +{ + /** + * 查询校企成果 + * + * @param id 校企成果主键 + * @return 校企成果 + */ + public SchoolEnterpriseAchievements selectSchoolEnterpriseAchievementsById(Long id); + + /** + * 查询校企成果列表 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 校企成果集合 + */ + public List selectSchoolEnterpriseAchievementsList(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 新增校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + public Long insertSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 修改校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + public int updateSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements); + + /** + * 批量删除校企成果 + * + * @param ids 需要删除的校企成果主键集合 + * @return 结果 + */ + public int deleteSchoolEnterpriseAchievementsByIds(Long[] ids); + + /** + * 删除校企成果信息 + * + * @param id 校企成果主键 + * @return 结果 + */ + public int deleteSchoolEnterpriseAchievementsById(Long id); + + Long topStatistic(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 new file mode 100644 index 000000000..d5f8898d9 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/MemoDashboardService.java @@ -0,0 +1,97 @@ +package com.microservices.dms.achievementLibrary.service; + +import com.microservices.dms.achievementLibrary.domain.AchQueryVo; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.achievementLibrary.domain.MemoTotalVo; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.mapper.ExpertResourceLibraryMapper; +import com.microservices.dms.utils.DateUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +@RequiredArgsConstructor +public class MemoDashboardService { + @Autowired + private ExpertResourceLibraryMapper memoResourceLibraryMapper; + /** + * 审核通过率 + * @return + */ + public List getMemoAduit() { + return memoResourceLibraryMapper.getMemoAduit(); + } + + /** + * 原创、非原创 + * @return + */ + public KeyValueVo getIsOriginalStatistic() { + return memoResourceLibraryMapper.getIsOriginalStatistic(); + } + + /** + * 年度动态数据统计 + * @return + */ + public List getMemoTotalByYear() { + return memoResourceLibraryMapper.getMemoTotalByYear(); + } + + /** + * 根据帖子类型汇总 + * @return + */ + public List getForumSectionStatistic() { + return memoResourceLibraryMapper.getForumSectionStatistic(); + } + + /** + * 近一年新增帖子数 + * @return + */ + public List getAddMemoStatistic() { + return memoResourceLibraryMapper.getAddMemoStatistic(); + } + + /** + * 本年帖子热度top5(论坛评论、点击、点赞) + * @return + */ + public List getTop5Memos() { + return memoResourceLibraryMapper.getTop5Memos(); + } + + /** + * 近7日帖子点赞数 + * @return + */ + public List> get7DayPaise() { + Date[] days = DateUtil.getDays(1, 7); + Map w = memoResourceLibraryMapper.get7DayPaise(days[0], days[1]) + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); + List> res = new ArrayList<>(); + + for (String s : dateStr) { + Long a = w.getOrDefault(s, 0L); + KeyValVo k1 = new KeyValVo<>(); + k1.setK(s); + k1.setV(a); + res.add(k1); + } + return res; + } + + + + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementTeamServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementTeamServiceImpl.java new file mode 100644 index 000000000..bab54dcdb --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementTeamServiceImpl.java @@ -0,0 +1,96 @@ +package com.microservices.dms.achievementLibrary.service.impl; + +import java.util.List; +import com.microservices.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.microservices.dms.achievementLibrary.mapper.AchievementTeamMapper; +import com.microservices.dms.achievementLibrary.domain.AchievementTeam; +import com.microservices.dms.achievementLibrary.service.IAchievementTeamService; + +/** + * 成果团队Service业务层处理 + * + * @author microservices + * @date 2025-04-23 + */ +@Service +public class AchievementTeamServiceImpl implements IAchievementTeamService +{ + @Autowired + private AchievementTeamMapper achievementTeamMapper; + + /** + * 查询成果团队 + * + * @param id 成果团队主键 + * @return 成果团队 + */ + @Override + public AchievementTeam selectAchievementTeamById(Long id) + { + return achievementTeamMapper.selectAchievementTeamById(id); + } + + /** + * 查询成果团队列表 + * + * @param achievementTeam 成果团队 + * @return 成果团队 + */ + @Override + public List selectAchievementTeamList(AchievementTeam achievementTeam) + { + return achievementTeamMapper.selectAchievementTeamList(achievementTeam); + } + + /** + * 新增成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + @Override + public int insertAchievementTeam(AchievementTeam achievementTeam) + { + achievementTeam.setCreateTime(DateUtils.getNowDate()); + return achievementTeamMapper.insertAchievementTeam(achievementTeam); + } + + /** + * 修改成果团队 + * + * @param achievementTeam 成果团队 + * @return 结果 + */ + @Override + public int updateAchievementTeam(AchievementTeam achievementTeam) + { + achievementTeam.setUpdateTime(DateUtils.getNowDate()); + return achievementTeamMapper.updateAchievementTeam(achievementTeam); + } + + /** + * 批量删除成果团队 + * + * @param ids 需要删除的成果团队主键 + * @return 结果 + */ + @Override + public int deleteAchievementTeamByIds(Long[] ids) + { + return achievementTeamMapper.deleteAchievementTeamByIds(ids); + } + + /** + * 删除成果团队信息 + * + * @param id 成果团队主键 + * @return 结果 + */ + @Override + public int deleteAchievementTeamById(Long id) + { + return achievementTeamMapper.deleteAchievementTeamById(id); + } +} 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 new file mode 100644 index 000000000..d62f21f92 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/AchievementsServiceImpl.java @@ -0,0 +1,469 @@ +package com.microservices.dms.achievementLibrary.service.impl; + +import java.util.*; +import java.util.stream.Collectors; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +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.*; +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.Searcher; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; +import com.microservices.dms.achievementLibrary.service.IAchievementsService; + +import static com.microservices.dms.utils.UrlUtil.getUrlPath; + +/** + * 成果Service业务层处理 + * + * @author microservices + * @date 2025-04-02 + */ +@Service +public class AchievementsServiceImpl implements IAchievementsService { + @Autowired + private AchievementsMapper achievementsMapper; + + @Autowired + private TaskResourceLibraryMapper taskResourceLibraryMapper; + + @Autowired + private ExpertResourceLibraryMapper expertResourceLibraryMapper; + + @Autowired + private ProjectResourceLibraryMapper projectResourceLibraryMapper; + + @Autowired + private IBehaviorImageService behaviorImageService; + + @Value("${markerSpaceUrl}") + public String markerSpaceUrl; + + @Value("${http.gitLinkUrl}") + public String gitLinkUrl; + + @Value("${http.gatewayUrl}") + public String gatewayUrl; + + + /** + * 查询成果 + * + * @param id 成果主键 + * @return 成果 + */ + @Override + public Achievements selectAchievementsById(Long id) { + Achievements a = achievementsMapper.selectAchievementsById(id); + if(StringUtils.isNotNull(a)){ + String gender = a.getGender(); + String img = "images/avatars/User/boy.jpg"; + if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + img = "images/avatars/User/girl.jpg"; + } + a.setUserImg(img); + if(StringUtils.isNotEmpty(a.getField1())) { + String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); + if (StringUtils.isNotNull(field1Name)) { + a.setField1Name(field1Name); + } + } + a.setUserImg(img); + } + return a; + } + + /** + * 查询成果列表 + * + * @param achievements 成果 + * @return 成果 + */ + @Override + public List selectAchievementsList(Achievements achievements) { + 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")){ + img = "images/avatars/User/girl.jpg"; + } + a.setUserImg(img); + //根据id获取领域名称 + if(StringUtils.isNotEmpty(a.getField1())) { + String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); + if (StringUtils.isNotNull(field1Name)) { + a.setField1Name(field1Name); + } + } + a.setImages(buildFileInfoByIdents(a.getImages(), a.getSource())); + a.setAttachments(buildFileInfoByIdents(a.getAttachments(), a.getSource())); + } + return list; + } + + + @Override + public List selectAchievementsFrontList(Achievements achievements) { + List list = achievementsMapper.selectAchievementsList(achievements); + for (Achievements a : list) { + a.setDetails(null); + a.setImages(buildFileInfoByIdents(a.getImages(), a.getSource())); + a.setAttachments(buildFileInfoByIdents(a.getAttachments(), a.getSource())); + } + return list; + } + + /** + * 新增成果 + * + * @param achievements 成果 + * @return 结果 + */ + @Override + public int insertAchievements(Achievements achievements) { + achievements.setCreateTime(DateUtils.getNowDate()); + achievements.setCreateBy(SecurityUtils.getUsername()); + return achievementsMapper.insertAchievements(achievements); + } + + /** + * 修改成果 + * + * @param achievements 成果 + * @return 结果 + */ + @Override + public int updateAchievements(Achievements achievements) { + achievements.setUpdateTime(DateUtils.getNowDate()); + achievements.setUpdateBy(SecurityUtils.getUsername()); + return achievementsMapper.updateAchievements(achievements); + } + + /** + * 批量删除成果 + * + * @param ids 需要删除的成果主键 + * @return 结果 + */ + @Override + public int deleteAchievementsByIds(Long[] ids) { + return achievementsMapper.deleteAchievementsByIds(ids); + } + + /** + * 删除成果信息 + * + * @param id 成果主键 + * @return 结果 + */ + @Override + public int deleteAchievementsById(Long id) { + return achievementsMapper.deleteAchievementsById(id); + } + + @Override + public String buildFileInfoByIdents(String aStr, String source) { + if (StringUtils.isEmpty(aStr) || StringUtils.isEmpty(source)) { + return aStr; + } + + List> list = JSON.parseObject(aStr,new TypeReference>>() {}); + + if (Objects.equals(source, "1") || Objects.equals(source, "3")) { + concatUrl(list,gitLinkUrl); + } + + if (Objects.equals(source, "2")) { + concatUrl(list,markerSpaceUrl); + } + + if (Objects.equals(source, "4")) { + concatUrl(list,gatewayUrl); + } + + return JSON.toJSONString(list); + } + + private void concatUrl(List> list, String url) { + for (Map map : list) { + String v = map.getOrDefault("v", ""); + String urlPath = getUrlPath(v); + map.put("v", url + urlPath); + } + } + + + @Override + public List getChoiceImport() { + return achievementsMapper.getChoiceImport(); + } + + @Override + public List getTjBySources() { + return achievementsMapper.getTjBySources(); + } + + @Override + public List getTjByAreas() { + return achievementsMapper.getTjByAreas(); + } + + @Override + public List getAllResult(AchQueryVo achQueryVo) { + //根据查询条件获取所有的成果数据 + List list = achievementsMapper.selectAchievementsByParam(achQueryVo); + //遍历成果数据,获取对应成果的点击数 + for (Achievements a : list) { + String gender = a.getGender(); + String img = "images/avatars/User/boy.jpg"; + if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + img = "images/avatars/User/girl.jpg"; + } + a.setUserImg(img); + //根据id获取领域名称 + if(StringUtils.isEmpty(achQueryVo.getSource()) && StringUtils.isNotEmpty(a.getField1())) { + String field1Name = achievementsMapper.getField1NameByParam(a.getSource(), a.getId()); + if (StringUtils.isNotNull(field1Name)) { + a.setField1Name(field1Name); + } + } + Long clickSum = achievementsMapper.getAchievementClickSum(a.getId()); + a.setClickSum(clickSum); + } + return list; + } + + @Override + public Map getUerActionData() { + Date[] days = DateUtil.getDays(0, 6); + Map w = achievementsMapper.getaWatcher(days[0], days[1], "Achievements") + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + + Map g = achievementsMapper.getFavorite(days[0], days[1], "Achievements") + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); + List> wRes = new ArrayList<>(); + List> gRes = new ArrayList<>(); + for (String s : dateStr) { + Long a = w.getOrDefault(s, 0L); + Long b = g.getOrDefault(s, 0L); + KeyValVo k1 = new KeyValVo<>(); + k1.setK(s); + k1.setV(a); + KeyValVo k2 = new KeyValVo<>(); + k2.setK(s); + k2.setV(b); + + wRes.add(k1); + gRes.add(k2); + } + Map res = new HashMap<>(); + res.put("watcher", wRes); + res.put("favorite", gRes); + return res; + } + + @Override + public List> getHotAchievement() { + return achievementsMapper.getHotAchievement(); + } + + @Override + public List> get7DayAdd(AchQueryVo achQueryVo) { + Date[] days = DateUtil.getDays(0, 6); + Map w = achievementsMapper.getAchievement(days[0], days[1], achQueryVo.getSource()) + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); + List> res = new ArrayList<>(); + + for (String s : dateStr) { + Long a = w.getOrDefault(s, 0L); + KeyValVo k1 = new KeyValVo<>(); + k1.setK(s); + k1.setV(a); + res.add(k1); + } + return res; + } + + @Override + public Map indexProjectStatistic() { + Map res = achievementsMapper.indexProjectStatistic(); + return res; + } + + @Override + public Map indexTaskStatistic() { + Map res = achievementsMapper.indexTaskStatistic(); + double convertedTaskAmount = taskResourceLibraryMapper.getConvertedTaskAmount(); + res.put("convertedTaskAmount", convertedTaskAmount); + return res; + } + + @Override + public Map indexCompetitionStatistic() { + Map res = achievementsMapper.indexCompetitionStatistic(); + return res; + } + + @Override + public Map indexSchoolEnterpriseStatistic() { + Map res = new HashMap<>(); + Long schoolEnterpriseCount = achievementsMapper.indexSchoolEnterpriseStatistic("4", ""); + res.put("schoolEnterpriseCount", schoolEnterpriseCount); + Long schoolCount = achievementsMapper.indexSchoolEnterpriseStatistic("4", "1"); + res.put("schoolCount", schoolCount); + Long enterpriseCount = achievementsMapper.indexSchoolEnterpriseStatistic("4", "2"); + res.put("enterpriseCount", enterpriseCount); + Clicker clicker = new Clicker(); + clicker.setClickType("Achievements"); + long clickCount = taskResourceLibraryMapper.countClicker(clicker); + res.put("clickCount", clickCount); + return res; + } + + @Override + public Map indexExpertStatistic() { + Map res = new HashMap<>(); + Long expertResourceCount = expertResourceLibraryMapper.expertResourceCount(); + res.put("expertResourceCount", expertResourceCount); + Long auditTaskAuditExpertCount = expertResourceLibraryMapper.auditTaskAuditExpertCount(); + res.put("auditTaskAuditExpertCount", auditTaskAuditExpertCount); + Long auditCompetitionAuditExpertCount = expertResourceLibraryMapper.auditCompetitionAuditExpertCount(); + res.put("auditCompetitionAuditExpertCount", auditCompetitionAuditExpertCount); + Clicker clicker = new Clicker(); + clicker.setClickType("Experts"); + long clickCount = taskResourceLibraryMapper.countClickerSimple(clicker); + res.put("clickCount", clickCount); + return res; + } + + @Override + public List getAreasByName(String areaName) { + return achievementsMapper.getAreasByName(areaName); + } + + @Override + public AchievementBehaviorSumVo getActDataStatisticById(Long id) { + return achievementsMapper.getActDataStatisticById(id); + } + + @Override + public List> get7AddClickById(String id) { + + Date[] days = DateUtil.getDays(0, 6); + Map w = achievementsMapper.get7AddClickById(days[0], days[1], "Achievements", id) + .stream().collect(Collectors.toMap(KeyValVo::getK, KeyValVo::getV)); + + List dateStr = DateUtil.getDateStrMMDD(days[0], days[1]); + List> res = new ArrayList<>(); + + for (String s : dateStr) { + Long a = w.getOrDefault(s, 0L); + KeyValVo k1 = new KeyValVo<>(); + k1.setK(s); + k1.setV(a); + res.add(k1); + } + return res; + } + + @Override + public AchievementBehaviorSumVo getWatchFavoriteStatusById(Long id, Long userId) { + return achievementsMapper.getWatchFavoriteStatusById(id, userId); + } + + + @Scheduled(cron = "${cron.calculateHotRank}") + public void timingCalcHotRank() { + List ids = achievementsMapper.getAllId(); + for (Long id : ids) { + AchievementImageVo image = behaviorImageService.getAchievementImageById(id); + float score = image.getScore(); + Achievements u = new Achievements(); + u.setId(id); + u.setHotRank(score); + achievementsMapper.updateAchievements(u); + } + } + + @Override + public List getAreaStatistic(String areaKey) { + return achievementsMapper.getAreaStatistic(areaKey); + } + + @Override + public List getRelatedAch(Long id, Long sourceId) { + List relatedResultList = new ArrayList<>(); + //想根据开源项目id,获取对应的年度信息 + List allSourceId = achievementsMapper.getAllSourceId(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; + } + + /** + * 根据查询内容,调用搜索行为接口 + * + * @param achName + * @param userId + */ + @Override + public int getSearchResult(String achName, Long userId) { + int num = 0; + if (StringUtils.isEmpty(achName)) { + return num; + } + List idList = achievementsMapper.selectAchievementsByName(achName); + if (StringUtils.isNotNull(idList)) { + for (Long searchId : idList) { + Searcher e = new Searcher(); + e.setCreatedAt(DateUtils.getNowDate()); + e.setUserId(userId); + e.setSearchId(searchId); + e.setExtInfo(achName); + e.setSearchType("Achievements"); + num = taskResourceLibraryMapper.insertSearcher(e); + num++; + } + } + return num; + } + + @Override + public List getProjectAreasByName(String areaName) { + return achievementsMapper.getProjectAreasByName(areaName); + } + + @Override + public List getExpertAreasByName(String areaName) { + return achievementsMapper.getExpertAreasByName(areaName); + } +} 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 new file mode 100644 index 000000000..25b1c4ce7 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/achievementLibrary/service/impl/SchoolEnterpriseAchievementsServiceImpl.java @@ -0,0 +1,148 @@ +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.stream.Collectors; + +import com.microservices.common.core.exception.ServiceException; +import com.microservices.common.core.utils.DateUtils; +import com.microservices.common.security.utils.SecurityUtils; +import com.microservices.dms.achievementLibrary.domain.Achievements; +import com.microservices.dms.achievementLibrary.mapper.AchievementTeamMapper; +import com.microservices.dms.achievementLibrary.mapper.AchievementsMapper; +import com.microservices.dms.achievementLibrary.service.IAchievementsService; +import com.microservices.system.api.model.LoginUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.microservices.dms.achievementLibrary.mapper.SchoolEnterpriseAchievementsMapper; +import com.microservices.dms.achievementLibrary.domain.SchoolEnterpriseAchievements; +import com.microservices.dms.achievementLibrary.service.ISchoolEnterpriseAchievementsService; + +/** + * 校企成果Service业务层处理 + * + * @author microservices + * @date 2025-04-03 + */ +@Service +public class SchoolEnterpriseAchievementsServiceImpl implements ISchoolEnterpriseAchievementsService +{ + @Autowired + private SchoolEnterpriseAchievementsMapper schoolEnterpriseAchievementsMapper; + + @Autowired + private AchievementTeamMapper achievementTeamMapper; + + @Autowired + private IAchievementsService achievementsService; + @Autowired + private AchievementsMapper achievementsMapper; + + /** + * 查询校企成果 + * + * @param id 校企成果主键 + * @return 校企成果 + */ + @Override + public SchoolEnterpriseAchievements selectSchoolEnterpriseAchievementsById(Long id) + { + return schoolEnterpriseAchievementsMapper.selectSchoolEnterpriseAchievementsById(id); + } + + /** + * 查询校企成果列表 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 校企成果 + */ + @Override + public List selectSchoolEnterpriseAchievementsList(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// if (loginUser != null){ +// String username = loginUser.getUsername(); +// schoolEnterpriseAchievements.setCreateBy(username); +// } + List list = schoolEnterpriseAchievementsMapper.selectSchoolEnterpriseAchievementsList(schoolEnterpriseAchievements); + for (SchoolEnterpriseAchievements a : list) { + a.setImages(achievementsService.buildFileInfoByIdents(a.getImages(), "4")); + a.setAttachments(achievementsService.buildFileInfoByIdents(a.getAttachments(), "4")); + } + return list; + } + + /** + * 新增校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + @Override + public Long insertSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (loginUser != null){ + String username = loginUser.getUsername(); + schoolEnterpriseAchievements.setCreateBy(username); + } + schoolEnterpriseAchievements.setCreateTime(DateUtils.getNowDate()); + schoolEnterpriseAchievementsMapper.insertSchoolEnterpriseAchievements(schoolEnterpriseAchievements); + return schoolEnterpriseAchievements.getId(); + } + + /** + * 修改校企成果 + * + * @param schoolEnterpriseAchievements 校企成果 + * @return 结果 + */ + @Override + public int updateSchoolEnterpriseAchievements(SchoolEnterpriseAchievements schoolEnterpriseAchievements) + { + schoolEnterpriseAchievements.setUpdateTime(DateUtils.getNowDate()); + return schoolEnterpriseAchievementsMapper.updateSchoolEnterpriseAchievements(schoolEnterpriseAchievements); + } + + /** + * 批量删除校企成果 + * + * @param ids 需要删除的校企成果主键 + * @return 结果 + */ + @Override + public int deleteSchoolEnterpriseAchievementsByIds(Long[] ids) + { + return schoolEnterpriseAchievementsMapper.deleteSchoolEnterpriseAchievementsByIds(ids); + } + + /** + * 删除校企成果信息 + * + * @param id 校企成果主键 + * @return 结果 + */ + @Override + public int deleteSchoolEnterpriseAchievementsById(Long id) + { + // 校企成果删除前判断数据仓库是否存在数据,存在则不允许删除该数据 + Achievements achievements = new Achievements(); + achievements.setSource("4"); + achievements.setSourceId(id); + List ss = achievementsMapper.selectAchievementsList(achievements); + if (ss != null && !ss.isEmpty()) { + throw new ServiceException("数据仓库是否存在数据,不允许删除"); + } + + // 校企成果被删除,对应的成员也应该一并删除 + achievementTeamMapper.deleteAchievementTeamByAId(id); + return schoolEnterpriseAchievementsMapper.deleteSchoolEnterpriseAchievementsById(id); + } + + @Override + public Long topStatistic(SchoolEnterpriseAchievements schoolEnterpriseAchievements) { + return schoolEnterpriseAchievementsMapper.topStatistic(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 new file mode 100644 index 000000000..72ffe7020 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/controller/BehaviorImageController.java @@ -0,0 +1,174 @@ +package com.microservices.dms.behaviorImage.controller; + +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.dms.behaviorImage.domain.ActivityUserLibrary; +import com.microservices.dms.behaviorImage.domain.BehaviorImageWeight; +import com.microservices.dms.behaviorImage.service.IBehaviorImageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +import static com.microservices.common.core.utils.PageUtils.startPage; + +/** + * 成果画像Controller + * + * @author microservices + * @date 2025-04-17 + */ +@RestController +@RequestMapping("/behaviorImage") +@Api(tags = "数据管理体系-画像接口") +public class BehaviorImageController extends BaseController { + + @Autowired + private IBehaviorImageService behaviorImageService; + /** + * 根据成果ID,获取对应的成果画像 + */ + //@RequiresPermissions("dms:achievements:query") + @ApiOperation(value = "根据成果ID,获取对应的成果画像") + @GetMapping(value = "/achievementImage") + public AjaxResult getAchievementImageById(Long id) + { + return AjaxResult.success(behaviorImageService.getAchievementImageById(id)); + } + + /** + * 查询画像行为权重列表 + */ + @GetMapping("/list") + public TableDataInfo list(BehaviorImageWeight behaviorImageWeight) + { + startPage(); + List list = behaviorImageService.selectBehaviorImageWeightList(behaviorImageWeight); + return getDataTable(list); + } + + /** + * 导出画像行为权重列表 + */ + @Log(title = "画像行为权重", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, BehaviorImageWeight behaviorImageWeight) + { + List list = behaviorImageService.selectBehaviorImageWeightList(behaviorImageWeight); + ExcelUtil util = new ExcelUtil(BehaviorImageWeight.class); + util.exportExcel(response, list, "画像行为权重数据"); + } + + /** + * 获取画像行为权重详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(behaviorImageService.selectBehaviorImageWeightById(id)); + } + + /** + * 新增画像行为权重 + */ + @Log(title = "画像行为权重", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody BehaviorImageWeight behaviorImageWeight) + { + return toAjax(behaviorImageService.insertBehaviorImageWeight(behaviorImageWeight)); + } + + /** + * 修改画像行为权重 + */ + @Log(title = "画像行为权重", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BehaviorImageWeight behaviorImageWeight) + { + return toAjax(behaviorImageService.updateBehaviorImageWeight(behaviorImageWeight)); + } + + /** + * 删除画像行为权重 + */ + @Log(title = "画像行为权重", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(behaviorImageService.deleteBehaviorImageWeightByIds(ids)); + } + + /** + * 获取活跃用户数据 + */ + @GetMapping(value = "/activityList") + @ApiOperation("获取用户资源库数据") + public TableDataInfo activityList(ActivityUserLibrary activityUserLibrary) + { + startPage(); + List list = behaviorImageService.selectActivityUserLibraryList(activityUserLibrary); + return getDataTable(list); + } + /** + * 根据用户ID,获取用户对应的成果汇总 + */ + @GetMapping(value = "/getUserTypeStatistic") + public AjaxResult getUserTypeStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserTypeStatistic(userId)); + } + + + + @GetMapping(value = "/getUserProjectStatistic") + @ApiOperation("/获取用户开源项目相关数据") + public AjaxResult getUserProjectStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserProjectStatistic(userId)); + } + + @GetMapping(value = "/getUserTaskStatistic") + @ApiOperation("/获取用户创客任务相关数据") + public AjaxResult getUserTaskStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserTaskStatistic(userId)); + } + + @GetMapping(value = "/getUserCompStatistic") + @ApiOperation("/获取用户开放竞赛相关数据") + public AjaxResult getUserCompStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserCompStatistic(userId)); + } + + @GetMapping(value = "/getUserMemoStatistic") + @ApiOperation("/获取用户论坛交流相关数据") + public AjaxResult getUserMemoStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserMemoStatistic(userId)); + } + + @GetMapping(value = "/getUserExpertStatistic") + @ApiOperation("/获取用户专家资源相关数据") + public AjaxResult getUserExpertStatistic(@PathVariable("userId") Long userId) + { + return AjaxResult.success(behaviorImageService.getUserExpertStatistic(userId)); + } + + /** + * 获取活跃用户相关统计数据 + */ + @GetMapping(value = "/getActivityStatistic") + @ApiOperation("获取用户资源库相关统计数据") + public AjaxResult getActivityStatistic() + { + return AjaxResult.success(behaviorImageService.getActivityStatistic()); + } +} 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 new file mode 100644 index 000000000..9072958f6 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementBehaviorSumVo.java @@ -0,0 +1,54 @@ +package com.microservices.dms.behaviorImage.domain; + +public class AchievementBehaviorSumVo { + //点击量(浏览量) + private Long clickSum; + //关注量 + private Long watchSum; + //查询量 + private Long searchSum; + //收藏量 + private Long favoriteSum; + //下载量 + private Long downloadSum; + + public Long getClickSum() { + return clickSum; + } + + public void setClickSum(Long clickSum) { + this.clickSum = clickSum; + } + + public Long getWatchSum() { + return watchSum; + } + + public void setWatchSum(Long watchSum) { + this.watchSum = watchSum; + } + + public Long getSearchSum() { + return searchSum; + } + + public void setSearchSum(Long searchSum) { + this.searchSum = searchSum; + } + + public Long getFavoriteSum() { + return favoriteSum; + } + + public void setFavoriteSum(Long favoriteSum) { + this.favoriteSum = favoriteSum; + } + + public Long getDownloadSum() { + return downloadSum; + } + + public void setDownloadSum(Long downloadSum) { + this.downloadSum = downloadSum; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementImageVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementImageVo.java new file mode 100644 index 000000000..0fa191a60 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/AchievementImageVo.java @@ -0,0 +1,25 @@ +package com.microservices.dms.behaviorImage.domain; + +/** + * 成果画像结果 + */ +public class AchievementImageVo { + private Long id; + private float score; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public float getScore() { + return score; + } + + public void setScore(float score) { + this.score = score; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserLibrary.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserLibrary.java new file mode 100644 index 000000000..8ca3a0c6e --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/ActivityUserLibrary.java @@ -0,0 +1,128 @@ +package com.microservices.dms.behaviorImage.domain; + +import com.microservices.common.core.web.domain.BaseEntity; + +public class ActivityUserLibrary extends BaseEntity +{ + private static final long serialVersionUID = 1L; + //用户id + private Long userId; + //登录名称 + private String loginName; + //用户名称 + private String userName; + //是否是专家 + private String isExpert; + //是否已实名 + private String isAuth; + //关注领域 + private String areasStr; + //相关项目数 + private Long relatedProject; + //相关任务数 + private Long relatedTask; + //相关竞赛数 + private Long relatedCompetition; + //相关成果数 + private Long relatedAch; + //相关专家 + private Long relatedExpert; + //相关论坛 + private Long relatedMemo; + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getIsExpert() { + return isExpert; + } + + public void setIsExpert(String isExpert) { + this.isExpert = isExpert; + } + + public String getIsAuth() { + return isAuth; + } + + public void setIsAuth(String isAuth) { + this.isAuth = isAuth; + } + + public String getAreasStr() { + return areasStr; + } + + public void setAreasStr(String areasStr) { + this.areasStr = areasStr; + } + + public Long getRelatedProject() { + return relatedProject; + } + + public void setRelatedProject(Long relatedProject) { + this.relatedProject = relatedProject; + } + + public Long getRelatedTask() { + return relatedTask; + } + + public void setRelatedTask(Long relatedTask) { + this.relatedTask = relatedTask; + } + + public Long getRelatedCompetition() { + return relatedCompetition; + } + + public void setRelatedCompetition(Long relatedCompetition) { + this.relatedCompetition = relatedCompetition; + } + + public Long getRelatedAch() { + return relatedAch; + } + + public void setRelatedAch(Long relatedAch) { + this.relatedAch = relatedAch; + } + + public Long getRelatedExpert() { + return relatedExpert; + } + + public void setRelatedExpert(Long relatedExpert) { + this.relatedExpert = relatedExpert; + } + + public Long getRelatedMemo() { + return relatedMemo; + } + + public void setRelatedMemo(Long relatedMemo) { + this.relatedMemo = relatedMemo; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorContant.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorContant.java new file mode 100644 index 000000000..911323b31 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorContant.java @@ -0,0 +1,34 @@ +package com.microservices.dms.behaviorImage.domain; + +public class BehaviorContant { + /** + * 成果画像 + */ + public final static String ACHIEVEMENTS_IMAGE = "Achievements"; + + /** + * 点击行为 + */ + public final static String CLICK_BEHAVIOR = "click"; + /** + * 收藏行为 + */ + public final static String FAVORITE_BEHAVIOR = "favorite"; + /** + * 搜索行为 + */ + public final static String SEARCH_BEHAVIOR = "search"; + /** + * 关注行为 + */ + public final static String WATCH_BEHAVIOR = "watch"; + /** + * 附件下载行为 + */ + public final static String FILE_DOWNLOAD_BEHAVIOR = "file_download"; + + + + + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorImageWeight.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorImageWeight.java new file mode 100644 index 000000000..a79dd3f71 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/BehaviorImageWeight.java @@ -0,0 +1,98 @@ +package com.microservices.dms.behaviorImage.domain; + +import com.microservices.common.core.annotation.Excel; +import com.microservices.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 画像行为权重对象 behavior_image_weight + * + * @author microservices + * @date 2025-04-23 + */ +public class BehaviorImageWeight extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键 */ + private Long id; + + /** 行为编码 */ + @Excel(name = "行为编码") + private String behaviorCode; + + /** 画像分类 */ + @Excel(name = "画像分类") + private String imageType; + + /** 行为名称 */ + @Excel(name = "行为名称") + private String behaviorName; + + /** 行为权重 */ + @Excel(name = "行为权重") + private String behaviorWeight; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setBehaviorCode(String behaviorCode) + { + this.behaviorCode = behaviorCode; + } + + public String getBehaviorCode() + { + return behaviorCode; + } + public void setImageType(String imageType) + { + this.imageType = imageType; + } + + public String getImageType() + { + return imageType; + } + public void setBehaviorName(String behaviorName) + { + this.behaviorName = behaviorName; + } + + public String getBehaviorName() + { + return behaviorName; + } + public void setBehaviorWeight(String behaviorWeight) + { + this.behaviorWeight = behaviorWeight; + } + + public String getBehaviorWeight() + { + return behaviorWeight; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("behaviorCode", getBehaviorCode()) + .append("imageType", getImageType()) + .append("behaviorName", getBehaviorName()) + .append("behaviorWeight", getBehaviorWeight()) + .append("remark", getRemark()) + .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/behaviorImage/domain/UserCompetitionTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserCompetitionTotalVo.java new file mode 100644 index 000000000..048465e59 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserCompetitionTotalVo.java @@ -0,0 +1,46 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserCompetitionTotalVo { + //创建竞赛数 + private Long joinCompetitionCount; + //关注竞赛数 + private Long watchCompetitionCount; + //报名数 + private Long signUpCount; + //提交作品数 + private Long submitWorkCount; + + + public Long getJoinCompetitionCount() { + return joinCompetitionCount; + } + + public void setJoinCompetitionCount(Long joinCompetitionCount) { + this.joinCompetitionCount = joinCompetitionCount; + } + + public Long getWatchCompetitionCount() { + return watchCompetitionCount; + } + + public void setWatchCompetitionCount(Long watchCompetitionCount) { + this.watchCompetitionCount = watchCompetitionCount; + } + + public Long getSignUpCount() { + return signUpCount; + } + + public void setSignUpCount(Long signUpCount) { + this.signUpCount = signUpCount; + } + + public Long getSubmitWorkCount() { + return submitWorkCount; + } + + public void setSubmitWorkCount(Long submitWorkCount) { + this.submitWorkCount = submitWorkCount; + } + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserExpertTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserExpertTotalVo.java new file mode 100644 index 000000000..bab99b6a7 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserExpertTotalVo.java @@ -0,0 +1,44 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserExpertTotalVo { + //关注专家数 + private Long watchExpertCount; + //收藏专家数 + private Long favoriteExpertCount; + //评审竞赛数 + private Long aduitCompetitionCount; + //评审任务数 + private Long aduitTaskCount; + + public Long getWatchExpertCount() { + return watchExpertCount; + } + + public void setWatchExpertCount(Long watchExpertCount) { + this.watchExpertCount = watchExpertCount; + } + + public Long getFavoriteExpertCount() { + return favoriteExpertCount; + } + + public void setFavoriteExpertCount(Long favoriteExpertCount) { + this.favoriteExpertCount = favoriteExpertCount; + } + + public Long getAduitCompetitionCount() { + return aduitCompetitionCount; + } + + public void setAduitCompetitionCount(Long aduitCompetitionCount) { + this.aduitCompetitionCount = aduitCompetitionCount; + } + + public Long getAduitTaskCount() { + return aduitTaskCount; + } + + public void setAduitTaskCount(Long aduitTaskCount) { + this.aduitTaskCount = aduitTaskCount; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserMemoTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserMemoTotalVo.java new file mode 100644 index 000000000..7910a3a73 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserMemoTotalVo.java @@ -0,0 +1,45 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserMemoTotalVo { +// private Long managerMemoCount; + //参与帖子 + private Long joinMemoCount; + //创建帖子 + private Long createMemoCount; + //回复帖子 + private Long replayMemoCount; + //关注帖子 + private Long watchMemoCount; + + public Long getJoinMemoCount() { + return joinMemoCount; + } + + public void setJoinMemoCount(Long joinMemoCount) { + this.joinMemoCount = joinMemoCount; + } + + public Long getCreateMemoCount() { + return createMemoCount; + } + + public void setCreateMemoCount(Long createMemoCount) { + this.createMemoCount = createMemoCount; + } + + public Long getReplayMemoCount() { + return replayMemoCount; + } + + public void setReplayMemoCount(Long replayMemoCount) { + this.replayMemoCount = replayMemoCount; + } + + public Long getWatchMemoCount() { + return watchMemoCount; + } + + public void setWatchMemoCount(Long watchMemoCount) { + this.watchMemoCount = watchMemoCount; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserProjectTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserProjectTotalVo.java new file mode 100644 index 000000000..faccc01b8 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserProjectTotalVo.java @@ -0,0 +1,84 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserProjectTotalVo { + //创建项目数 + private Long createProjectCount; + //参与项目数 + private Long joinProjectCount; + //fork项目数 + private Long forkProjectCount; + //点赞项目数 + private Long praiseProjectCount; + //关注项目数 + private Long watchProjectCount; + //提交代码数 + private Long commitSum; + //issue相关数 + private Long issueSum; + //合并代码数 + private Long prSum; + + public Long getCreateProjectCount() { + return createProjectCount; + } + + public void setCreateProjectCount(Long createProjectCount) { + this.createProjectCount = createProjectCount; + } + + public Long getJoinProjectCount() { + return joinProjectCount; + } + + public void setJoinProjectCount(Long joinProjectCount) { + this.joinProjectCount = joinProjectCount; + } + + public Long getForkProjectCount() { + return forkProjectCount; + } + + public void setForkProjectCount(Long forkProjectCount) { + this.forkProjectCount = forkProjectCount; + } + + public Long getPraiseProjectCount() { + return praiseProjectCount; + } + + public void setPraiseProjectCount(Long praiseProjectCount) { + this.praiseProjectCount = praiseProjectCount; + } + + public Long getWatchProjectCount() { + return watchProjectCount; + } + + public void setWatchProjectCount(Long watchProjectCount) { + this.watchProjectCount = watchProjectCount; + } + + public Long getCommitSum() { + return commitSum; + } + + public void setCommitSum(Long commitSum) { + this.commitSum = commitSum; + } + + public Long getIssueSum() { + return issueSum; + } + + public void setIssueSum(Long issueSum) { + this.issueSum = issueSum; + } + + public Long getPrSum() { + return prSum; + } + + public void setPrSum(Long prSum) { + this.prSum = prSum; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTaskTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTaskTotalVo.java new file mode 100644 index 000000000..ad3d4cff8 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTaskTotalVo.java @@ -0,0 +1,46 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserTaskTotalVo { + //创建任务数 + private Long createTaskCount; + //任务交稿数 + private Long submitPapersCount; + //关注任务数 + private Long watchTaskCount; + //参加任务数 + private Long joinTaskCount; + + + public Long getCreateTaskCount() { + return createTaskCount; + } + + public void setCreateTaskCount(Long createTaskCount) { + this.createTaskCount = createTaskCount; + } + + public Long getSubmitPapersCount() { + return submitPapersCount; + } + + public void setSubmitPapersCount(Long submitPapersCount) { + this.submitPapersCount = submitPapersCount; + } + + public Long getWatchTaskCount() { + return watchTaskCount; + } + + public void setWatchTaskCount(Long watchTaskCount) { + this.watchTaskCount = watchTaskCount; + } + + public Long getJoinTaskCount() { + return joinTaskCount; + } + + public void setJoinTaskCount(Long joinTaskCount) { + this.joinTaskCount = joinTaskCount; + } + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTypeTotalVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTypeTotalVo.java new file mode 100644 index 000000000..f08911901 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/domain/UserTypeTotalVo.java @@ -0,0 +1,67 @@ +package com.microservices.dms.behaviorImage.domain; + +public class UserTypeTotalVo { + private String resultType; + private Long watchSum; + private Long favoriteSum; + private Long downloadSum; + private Long clickSum; + private Long searchSum; + private Long praiseSum; + + public String getResultType() { + return resultType; + } + + public void setResultType(String resultType) { + this.resultType = resultType; + } + + public Long getWatchSum() { + return watchSum; + } + + public void setWatchSum(Long watchSum) { + this.watchSum = watchSum; + } + + public Long getFavoriteSum() { + return favoriteSum; + } + + public void setFavoriteSum(Long favoriteSum) { + this.favoriteSum = favoriteSum; + } + + public Long getDownloadSum() { + return downloadSum; + } + + public void setDownloadSum(Long downloadSum) { + this.downloadSum = downloadSum; + } + + public Long getClickSum() { + return clickSum; + } + + public void setClickSum(Long clickSum) { + this.clickSum = clickSum; + } + + public Long getSearchSum() { + return searchSum; + } + + public void setSearchSum(Long searchSum) { + this.searchSum = searchSum; + } + + public Long getPraiseSum() { + return praiseSum; + } + + public void setPraiseSum(Long praiseSum) { + this.praiseSum = praiseSum; + } +} 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 new file mode 100644 index 000000000..36bb29ad4 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/mapper/BehaviorImageMapper.java @@ -0,0 +1,102 @@ +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 org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +@Slave +public interface BehaviorImageMapper { + AchievementBehaviorSumVo getBehaviorSumListByType(); + + List getWeightListByType(@Param("achievementsImage") String achievementsImage); + + Long getFavoriteSumByAchievementId(@Param("id") Long id,@Param("achievementsImage") String achievementsImage); + + Long getSearchSumByAchievementId(@Param("id") Long id,@Param("achievementsImage") String achievementsImage); + + Long getWatchSumByAchievementId(@Param("id") Long id,@Param("achievementsImage") String achievementsImage); + + Long getFileDownloadSumByAchievementId(@Param("id") Long id,@Param("achievementsImage") String achievementsImage); + + Long getClickSumByAchievementId(@Param("id") Long id, @Param("achievementsImage") String achievementsImage); + + /** + * 查询画像行为权重 + * + * @param id 画像行为权重主键 + * @return 画像行为权重 + */ + public BehaviorImageWeight selectBehaviorImageWeightById(Long id); + + /** + * 查询画像行为权重列表 + * + * @param behaviorImageWeight 画像行为权重 + * @return 画像行为权重集合 + */ + public List selectBehaviorImageWeightList(BehaviorImageWeight behaviorImageWeight); + + /** + * 新增画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + public int insertBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight); + + /** + * 修改画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + public int updateBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight); + + /** + * 删除画像行为权重 + * + * @param id 画像行为权重主键 + * @return 结果 + */ + public int deleteBehaviorImageWeightById(Long id); + + /** + * 批量删除画像行为权重 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteBehaviorImageWeightByIds(Long[] ids); + + List getUserProjecttatistic(@Param("userId")Long userId); + + List getUserTaskStatistic(@Param("userId")Long userId); + + List selectActivityUserLibraryList(ActivityUserLibrary activityUserLibrary); + + Long getrelatedProjectCount(@Param("userId")Long userId); + + Long getrelatedTaskCount(@Param("userId")Long userId); + + List getUserCompStatistic(@Param("userId")Long userId); + + Long getrelatedCompetitionCount(@Param("userId")Long userId); + + List getUserMemoStatistic(@Param("userId")Long userId); + + Long getrelatedMemoCount(@Param("userId")Long userId); + + List getUserExperttatistic(@Param("userId")Long userId); + + List getUserTypeStatistic(@Param("userId")Long userId); + + List getActivityStatistic(); +} 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 new file mode 100644 index 000000000..485bb949d --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/IBehaviorImageService.java @@ -0,0 +1,79 @@ +package com.microservices.dms.behaviorImage.service; + +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.behaviorImage.domain.*; + +import java.util.List; + +public interface IBehaviorImageService { + AchievementImageVo getAchievementImageById(Long id); + /** + * 查询画像行为权重 + * + * @param id 画像行为权重主键 + * @return 画像行为权重 + */ + public BehaviorImageWeight selectBehaviorImageWeightById(Long id); + + /** + * 查询画像行为权重列表 + * + * @param behaviorImageWeight 画像行为权重 + * @return 画像行为权重集合 + */ + public List selectBehaviorImageWeightList(BehaviorImageWeight behaviorImageWeight); + + /** + * 新增画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + public int insertBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight); + + /** + * 修改画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + public int updateBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight); + + /** + * 批量删除画像行为权重 + * + * @param ids 需要删除的画像行为权重主键集合 + * @return 结果 + */ + public int deleteBehaviorImageWeightByIds(Long[] ids); + + /** + * 删除画像行为权重信息 + * + * @param id 画像行为权重主键 + * @return 结果 + */ + public int deleteBehaviorImageWeightById(Long id); + + /** + * 查询活跃用户资源库列表 + * + * @param activityUserLibrary 活跃用户资源库 + * @return 活跃用户资源库集合 + */ + List selectActivityUserLibraryList(ActivityUserLibrary activityUserLibrary); + + List getUserTypeStatistic(Long userId); + + UserProjectTotalVo getUserProjectStatistic(Long userId); + + UserTaskTotalVo getUserTaskStatistic(Long userId); + + UserCompetitionTotalVo getUserCompStatistic(Long userId); + + UserMemoTotalVo getUserMemoStatistic(Long userId); + + UserExpertTotalVo getUserExpertStatistic(Long userId); + + List getActivityStatistic(); +} 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 new file mode 100644 index 000000000..a8e17f5b3 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/behaviorImage/service/impl/BehaviorImageServiceImpl.java @@ -0,0 +1,336 @@ +package com.microservices.dms.behaviorImage.service.impl; + +import com.microservices.common.core.utils.DateUtils; +import com.microservices.common.core.utils.StringUtils; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.behaviorImage.domain.*; +import com.microservices.dms.behaviorImage.mapper.BehaviorImageMapper; +import com.microservices.dms.behaviorImage.service.IBehaviorImageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class BehaviorImageServiceImpl implements IBehaviorImageService { + @Autowired + private BehaviorImageMapper behaviorImageMapper; + @Override + public AchievementImageVo getAchievementImageById(Long id) { + AchievementImageVo achievementImageVo = new AchievementImageVo(); + //获取所有行为汇总数据 + AchievementBehaviorSumVo achievementBehaviorSumVo = behaviorImageMapper.getBehaviorSumListByType(); + if(StringUtils.isNotNull(achievementBehaviorSumVo)) { + float score = 0f; + //从行为表中获取成果行为数据权限 + List behaviorImageWeightList = behaviorImageMapper.getWeightListByType(BehaviorContant.ACHIEVEMENTS_IMAGE); + float clickResult = 0L; + float watchResult = 0L; + float searchResult = 0L; + float favoriteResult = 0L; + float fileDownloadResult = 0L; + //简单算法 + for (KeyValueVo keyValueVo : behaviorImageWeightList) { + String bhavior = keyValueVo.getKey(); + Long weight = keyValueVo.getValue(); + if (bhavior.equals(BehaviorContant.CLICK_BEHAVIOR)) {//点击 + //根据当前成果ID,获取成果点击行为数量 + Long clickSum = achievementBehaviorSumVo.getClickSum(); + if(StringUtils.isNotNull(clickSum) && clickSum > 0) { + Long click = behaviorImageMapper.getClickSumByAchievementId(id, BehaviorContant.ACHIEVEMENTS_IMAGE); + if (StringUtils.isNotNull(click)) { + clickResult = click * weight / clickSum ; + } + } + } else if (bhavior.equals(BehaviorContant.FAVORITE_BEHAVIOR)) {//收藏 + //根据当前成果ID,获取成果收藏行为数量 + Long favoriteSum = achievementBehaviorSumVo.getFavoriteSum(); + if(StringUtils.isNotNull(favoriteSum) && favoriteSum > 0) { + Long favorite = behaviorImageMapper.getFavoriteSumByAchievementId(id,BehaviorContant.ACHIEVEMENTS_IMAGE); + if (StringUtils.isNotNull(favorite)) { + favoriteResult = favorite *weight / favoriteSum ; + } + } + } else if (bhavior.equals(BehaviorContant.SEARCH_BEHAVIOR)) {//搜索 + //根据当前成果ID,获取成果搜索行为数量 + Long searchSum = achievementBehaviorSumVo.getSearchSum(); + if(StringUtils.isNotNull(searchSum) && searchSum > 0) { + Long search = behaviorImageMapper.getSearchSumByAchievementId(id, BehaviorContant.ACHIEVEMENTS_IMAGE); + if (StringUtils.isNotNull(search)) { + searchResult = search *weight / searchSum; + } + } + } else if (bhavior.equals(BehaviorContant.WATCH_BEHAVIOR)) {//关注 + //根据当前成果ID,获取成果关注行为数量 + Long watchSum = achievementBehaviorSumVo.getFavoriteSum(); + if(StringUtils.isNotNull( watchSum) && watchSum > 0) { + Long watch = behaviorImageMapper.getWatchSumByAchievementId(id,BehaviorContant.ACHIEVEMENTS_IMAGE); + if (StringUtils.isNotNull( watch) ) { + watchResult = watch *weight / watchSum; + } + } + } else if (bhavior.equals(BehaviorContant.FILE_DOWNLOAD_BEHAVIOR)) {//文件下载 + //根据当前成果ID,获取成果文件下载行为数量 + Long fileDownloadSum = achievementBehaviorSumVo.getFavoriteSum(); + if(StringUtils.isNotNull(fileDownloadSum) && fileDownloadSum > 0) { + Long fileDownload = behaviorImageMapper.getFileDownloadSumByAchievementId(id, BehaviorContant.ACHIEVEMENTS_IMAGE); + if (StringUtils.isNotNull(fileDownload)) { + fileDownloadResult = fileDownload *weight / fileDownloadSum ; + } + } + } + } + + score = clickResult+watchResult+searchResult+favoriteResult+fileDownloadResult; + achievementImageVo.setScore(score); + } + return achievementImageVo; + } + /** + * 查询画像行为权重 + * + * @param id 画像行为权重主键 + * @return 画像行为权重 + */ + @Override + public BehaviorImageWeight selectBehaviorImageWeightById(Long id) + { + return behaviorImageMapper.selectBehaviorImageWeightById(id); + } + + /** + * 查询画像行为权重列表 + * + * @param behaviorImageWeight 画像行为权重 + * @return 画像行为权重 + */ + @Override + public List selectBehaviorImageWeightList(BehaviorImageWeight behaviorImageWeight) + { + return behaviorImageMapper.selectBehaviorImageWeightList(behaviorImageWeight); + } + + /** + * 新增画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + @Override + public int insertBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight) + { + behaviorImageWeight.setCreateTime(DateUtils.getNowDate()); + return behaviorImageMapper.insertBehaviorImageWeight(behaviorImageWeight); + } + + /** + * 修改画像行为权重 + * + * @param behaviorImageWeight 画像行为权重 + * @return 结果 + */ + @Override + public int updateBehaviorImageWeight(BehaviorImageWeight behaviorImageWeight) + { + behaviorImageWeight.setUpdateTime(DateUtils.getNowDate()); + return behaviorImageMapper.updateBehaviorImageWeight(behaviorImageWeight); + } + + /** + * 批量删除画像行为权重 + * + * @param ids 需要删除的画像行为权重主键 + * @return 结果 + */ + @Override + public int deleteBehaviorImageWeightByIds(Long[] ids) + { + return behaviorImageMapper.deleteBehaviorImageWeightByIds(ids); + } + + /** + * 删除画像行为权重信息 + * + * @param id 画像行为权重主键 + * @return 结果 + */ + @Override + public int deleteBehaviorImageWeightById(Long id) + { + return behaviorImageMapper.deleteBehaviorImageWeightById(id); + } + + + /** + * 用户新增分类数据统计 + * @param userId + * @return + */ + public List getUserTypeStatistic(Long userId) { + return behaviorImageMapper.getUserTypeStatistic(userId); + } + + + + /** + * 根据用户ID,获取开源项目相关汇总 + * @param userId + * @return + */ + @Override + public UserProjectTotalVo getUserProjectStatistic(Long userId) { + UserProjectTotalVo userProjectTotalVo = new UserProjectTotalVo(); + List resultVo = behaviorImageMapper.getUserProjecttatistic(userId); + if(StringUtils.isNotNull(resultVo)) { + for(KeyValueVo temResult : resultVo) { + Long result = temResult.getValue(); + if(temResult.getKey().equals("createProjectCount")) { + userProjectTotalVo.setCreateProjectCount(result); + }else if(temResult.getKey().equals("joinProjectCount")){ + userProjectTotalVo.setJoinProjectCount(result); + }else if(temResult.getKey().equals("forkProjectCount")){ + userProjectTotalVo.setForkProjectCount(result); + }else if(temResult.getKey().equals("issueSum")){ + userProjectTotalVo.setIssueSum(result); + }else if(temResult.getKey().equals("prSum")){ + userProjectTotalVo.setPrSum(result); + }else if(temResult.getKey().equals("commitSum")){ + userProjectTotalVo.setCommitSum(result); + }else if(temResult.getKey().equals("watchProjectCount")){ + userProjectTotalVo.setWatchProjectCount(result); + }else if(temResult.getKey().equals("praiseProjectCount")){ + userProjectTotalVo.setPraiseProjectCount(result); + } + } + } + return userProjectTotalVo; + } + + + + /** + * 根据用户ID,获取创客任务相关汇总 + * @param userId + * @return + */ + @Override + public UserTaskTotalVo getUserTaskStatistic(Long userId) { + UserTaskTotalVo userTaskTotalVo = new UserTaskTotalVo(); + List resultVo = behaviorImageMapper.getUserTaskStatistic(userId); + if(StringUtils.isNotNull(resultVo)) { + for(KeyValueVo temResult : resultVo) { + Long result = temResult.getValue(); + if(temResult.getKey().equals("createTaskCount")) { + userTaskTotalVo.setCreateTaskCount(result); + }else if(temResult.getKey().equals("submitPapersCount")){ + userTaskTotalVo.setSubmitPapersCount(result); + }else if(temResult.getKey().equals("watchTaskCount")){ + userTaskTotalVo.setWatchTaskCount(result); + } + } + } + return userTaskTotalVo; + } + + /** + * 根据用户ID,获取开放竞赛相关汇总 + * @param userId + * @return + */ + @Override + public UserCompetitionTotalVo getUserCompStatistic(Long userId) { + UserCompetitionTotalVo userCompetitionTotalVo = new UserCompetitionTotalVo(); + List resultVo = behaviorImageMapper.getUserCompStatistic(userId); + if(StringUtils.isNotNull(resultVo)) { + for(KeyValueVo temResult : resultVo) { + Long result = temResult.getValue(); + if(temResult.getKey().equals("joinCompetitionCount")) { + userCompetitionTotalVo.setJoinCompetitionCount(result); + }else if(temResult.getKey().equals("watchCompetitionCount")){ + userCompetitionTotalVo.setWatchCompetitionCount(result); + }else if(temResult.getKey().equals("signUpCount")){ + userCompetitionTotalVo.setSignUpCount(result); + }else if(temResult.getKey().equals("submitWorkCount")){ + userCompetitionTotalVo.setSubmitWorkCount(result); + } + } + } + return userCompetitionTotalVo; + } + + /** + * 根据用户ID, 获取用户论坛交流相关数据 + * @param userId + * @return + */ + @Override + public UserMemoTotalVo getUserMemoStatistic(Long userId) { + UserMemoTotalVo userMemoTotalVo = new UserMemoTotalVo(); + List resultVo = behaviorImageMapper.getUserMemoStatistic(userId); + if(StringUtils.isNotNull(resultVo)) { + for(KeyValueVo temResult : resultVo) { + Long result = temResult.getValue(); + if(temResult.getKey().equals("createMemoCount")) { + userMemoTotalVo.setCreateMemoCount(result); + }else if(temResult.getKey().equals("replayMemoCount")){ + userMemoTotalVo.setReplayMemoCount(result); + }else if(temResult.getKey().equals("watchMemoCount")){ + userMemoTotalVo.setWatchMemoCount(result); + } + } + } + return userMemoTotalVo; + } + /** + * 根据用户ID, 获取用户专家资源相关数据 + * @param userId + * @return + */ + @Override + public UserExpertTotalVo getUserExpertStatistic(Long userId) { + UserExpertTotalVo userExpertTotalVo = new UserExpertTotalVo(); + List resultVo = behaviorImageMapper.getUserExperttatistic(userId); + if(StringUtils.isNotNull(resultVo)) { + for(KeyValueVo temResult : resultVo) { + Long result = temResult.getValue(); + if(temResult.getKey().equals("watchExpertCount")) { + userExpertTotalVo.setWatchExpertCount(result); + }else if(temResult.getKey().equals("favoriteExpertCount")){ + userExpertTotalVo.setFavoriteExpertCount(result); + }else if(temResult.getKey().equals("aduitCompetitionCount")){ + userExpertTotalVo.setAduitCompetitionCount(result); + }else if(temResult.getKey().equals("aduitTaskCount")){ + userExpertTotalVo.setAduitTaskCount(result); + } + } + } + return userExpertTotalVo; + } + + @Override + public List getActivityStatistic() { + return behaviorImageMapper.getActivityStatistic(); + } + + /** + * 用户资源库 + * @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; + } +} 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 new file mode 100644 index 000000000..664e9eafb --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/common/controller/OpenController.java @@ -0,0 +1,160 @@ +package com.microservices.dms.common.controller; + +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.dms.achievementLibrary.domain.AchQueryVo; +import com.microservices.dms.achievementLibrary.service.IAchievementsService; +import com.microservices.dms.resourceLibrary.domain.ExpertResourceLibrary; +import com.microservices.dms.resourceLibrary.service.IExpertResourceLibraryService; +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.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @author otto + */ +@RestController +@Api(tags = "数据管理体系-公开接口") +@RequestMapping("/open") +@RefreshScope +public class OpenController extends BaseController { + + @Autowired + private IAchievementsService achievementsService; + + @Autowired + private IExpertResourceLibraryService expertResourceLibraryService; + + /** + * 获取精选成果 + * + * @return + */ + @ApiOperation("获取精选成果") + @GetMapping("/achievements/getChoiceImport") + public AjaxResult getChoiceImport() { + return success(achievementsService.getChoiceImport()); + } + + /** + * 根据成果来源对成果数据进行分类统计 + * + * @return + */ + @ApiOperation("根据成果来源对成果数据进行分类统计") + @GetMapping("/achievements/getTjBySources") + public AjaxResult getTjBySources() { + return success(achievementsService.getTjBySources()); + } + + /** + * 根据成果领域对成功数据进行汇总 + * + * @return + */ + @ApiOperation("根据成果领域对成果数据进行汇总") + @GetMapping("/achievements/getTjByAreas") + public AjaxResult getTjByAreas() { + return success(achievementsService.getTjByAreas()); + } + + /** + * 根据领域分类名称,获取领域相关数据 + */ + @ApiOperation("根据领域分类名称,获取领域相关数据") + @GetMapping("/achievements/getAreasByName") + public AjaxResult getAreasByName(String areaName) { + return success(achievementsService.getAreasByName(areaName)); + } + + @ApiOperation("根据领域分类名称,获取项目领域") + @GetMapping("/achievements/getProjectAreasByName") + public AjaxResult getProjectAreasByName(String areaName) { + return success(achievementsService.getProjectAreasByName(areaName)); + } + + @ApiOperation("根据领域分类名称,获取专家领域") + @GetMapping("/achievements/getExpertAreasByName") + public AjaxResult getExpertAreasByName(String areaName) { + return success(achievementsService.getExpertAreasByName(areaName)); + } + + /* 获取全部成果,根据成果名称、成果领域、成果来源进行查询 + * @return + */ + @ApiOperation("获取全部成果,根据成果名称、成果领域、成果来源进行查询") + @GetMapping("/achievements/getAllResult") + public TableDataInfo getAllResult(AchQueryVo achQueryVo) { + startPage(); + return getDataTable(achievementsService.getAllResult(achQueryVo)); + } + + @ApiOperation("近七日用户行为数据") + @GetMapping("/achievements/getUerActionData") + public AjaxResult getUerActionData() { + return success(achievementsService.getUerActionData()); + } + + @ApiOperation("热门成果") + @GetMapping("/achievements/getHotAchievement") + public AjaxResult getHotAchievement() { + return success(achievementsService.getHotAchievement()); + } + + @ApiOperation("七日新增") + @GetMapping("/achievements/get7DayAdd") + public AjaxResult get7DayAdd(AchQueryVo achQueryVo) { + return success(achievementsService.get7DayAdd(achQueryVo)); + } + + + @ApiOperation("首页项目统计") + @GetMapping("/achievements/indexProjectStatistic") + public AjaxResult indexProjectStatistic() { + return success(achievementsService.indexProjectStatistic()); + } + + @ApiOperation("首页task统计") + @GetMapping("/achievements/indexTaskStatistic") + public AjaxResult indexTaskStatistic() { + return success(achievementsService.indexTaskStatistic()); + } + + @ApiOperation("首页Competition统计") + @GetMapping("/achievements/indexCompetitionStatistic") + public AjaxResult indexCompetitionStatistic() { + return success(achievementsService.indexCompetitionStatistic()); + } + + @ApiOperation("首页SchoolEnterprise统计") + @GetMapping("/achievements/indexSchoolEnterpriseStatistic") + public AjaxResult indexSchoolEnterpriseStatistic() { + return success(achievementsService.indexSchoolEnterpriseStatistic()); + } + + + @ApiOperation("首页专家统计") + @GetMapping("/achievements/indexExpertStatistic") + public AjaxResult indexExpertStatistic() { + return success(achievementsService.indexExpertStatistic()); + } + + /** + * 查询专家资源库列表 + */ + @GetMapping("/expertResourceLibrary/listFront") + public TableDataInfo listFront(ExpertResourceLibrary expertResourceLibrary) + { + startPage(); + List list = expertResourceLibraryService.selectExpertResourceLibraryList2(expertResourceLibrary); + return getDataTable(list); + } + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/DmsConstants.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/DmsConstants.java new file mode 100644 index 000000000..02550305e --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/DmsConstants.java @@ -0,0 +1,5 @@ +package com.microservices.dms.constant; + +public class DmsConstants { + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/ReferralConstant.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/ReferralConstant.java new file mode 100644 index 000000000..cf4ee9638 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/ReferralConstant.java @@ -0,0 +1,8 @@ +package com.microservices.dms.constant; + +public class ReferralConstant { + + public static final Long ISSUE_CLOSED = 5L; + public static final Long ISSUE_RESOLVED = 3L; + public static final Long ISSUE_RESOLVING = 2L; +} 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 new file mode 100644 index 000000000..b70c6bdaa --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/constant/TaskConstant.java @@ -0,0 +1,25 @@ +package com.microservices.dms.constant; + +public class TaskConstant { + + private TaskConstant() {} + + public static final String TASK_TYPE_WATCHERS = "MakerTask"; + public static final String TASK_TYPE_JOURNALS = "makerSpaceTask"; + public static final String TASK_TYPE_PAPERS = ""; + public static final String TASK_TYPE_OTHER = "makerSpaceTask"; + + public static final String COMPETITION_TYPE_WATCHERS = "CompetitionInfo"; + public static final String COMPETITION_TYPE_CLICK = "CompetitionInfo"; + public static final String COMPETITION_TYPE_DOWNLOAD = "CompetitionOpusDownload"; + + + public static final String PROJECT_DOWNLOAD_API = "%s/api/attachments/%s"; + public static final String MARKER_SPACE_DOWNLOAD_API_BY_NAME = "%s/busiAttachments/downloadAttachment/%s"; + public static final String MARKER_SPACE_DOWNLOAD_API_BY_ID = "%s/busiAttachments/download/%s"; + + //favorites + public static final String EXPERTS = "Experts"; + public static final String ACHIEVEMENTS = "Achievements"; + +} 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 new file mode 100644 index 000000000..44a961a46 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/controller/TalentReferralController.java @@ -0,0 +1,32 @@ +package com.microservices.dms.referral.controller; + +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.RequiredArgsConstructor; +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 = "数据管理体系-人才推荐接口") +@RestController +@RequestMapping("/talentReferral") +@RequiredArgsConstructor +public class TalentReferralController { + + private final TalentReferralService talentReferralService; + + @GetMapping("/issueTalentReferral") + @ApiOperation(value = "疑修人才推荐") + public AjaxResult issueTalentReferral(@RequestParam("issueId") Long issueId, @RequestParam("projectId") Long projectId) { + return AjaxResult.success(talentReferralService.issueTalentReferral(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)); + } +} 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 new file mode 100644 index 000000000..15bd3eea1 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/mapper/TalentReferralMapper.java @@ -0,0 +1,30 @@ +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 org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +@Slave +public interface TalentReferralMapper { + + List selectIssuesCondition(IssuesVo issuesVo); + + List countIssuesAssigner(@Param("projectId") Long projectId); + + List countPRUser(@Param("projectId") Long projectId); + + IssuesVo selectIssuesById(@Param("id") Long id); + + PullRequestVo selectPRById(@Param("id") Long id); + + List selectIssuesAssigners(@Param("issueId") Long issueId); + + String selectRepositoriesUrl(@Param("id") Long id); + + Long selectIdByLogin(@Param("login") String login); +} 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 new file mode 100644 index 000000000..b1d2b043c --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/service/TalentReferralService.java @@ -0,0 +1,242 @@ +package com.microservices.dms.referral.service; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +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.constant.ReferralConstant; +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.utils.DmsGitLinkRequestUrl; +import com.microservices.dms.utils.DmsRequestHelper; +import com.microservices.dms.utils.SimilarityService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 人才推荐服务 + */ +@Service +public class TalentReferralService { + + @Autowired + private TalentReferralMapper talentReferralMapper; + + @Autowired + private DmsRequestHelper dmsRequestHelper; + + 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"); + + 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()); + } + return new HashSet<>(); + } + + public Set getCollaborators(String projectFullName) { + try { + // 获取项目成员者数量 + 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()); + + } catch (ServiceException e) { + logger.error("【{}】获取项目成员者数量失败:{}", projectFullName, e.getMessage()); + } + return new HashSet<>(); + } + + public String getRepoName(Long projectId) { + // 获取仓库的fullName,用来查询贡献者 + String s = talentReferralMapper.selectRepositoriesUrl(projectId); + return StringUtils.isNotEmpty(s) ? s : ""; + } + + public Set getContributorsByProjectId(Long projectId) { + Set contributors = new HashSet<>(); + String repoName = getRepoName(projectId); + if (StringUtils.isNotBlank(repoName)) { + contributors.addAll(getContributors(repoName)); + } + return contributors; + } + + public Set getCollaboratorsByProjectId(Long projectId) { + Set collaborators = new HashSet<>(); + String repoName = getRepoName(projectId); + if (StringUtils.isNotBlank(repoName)) { + collaborators.addAll(getCollaborators(repoName)); + } + return collaborators; + } + + public List> issueTalentReferral(Long projectId, Long issueId) { + + IssuesVo curIssue = talentReferralMapper.selectIssuesById(issueId); + if (curIssue == null) { + return new ArrayList<>(); + } + + List curIssueAssigners = talentReferralMapper.selectIssuesAssigners(curIssue.getId()); + if (!curIssueAssigners.isEmpty()) { + return new ArrayList<>(); + } + + IssuesVo vo = new IssuesVo(); + vo.setProjectId(projectId); + vo.setStatusIds(Collections.singletonList(ReferralConstant.ISSUE_CLOSED)); + List issuesVos = talentReferralMapper.selectIssuesCondition(vo); + Map userFractionMap = new HashMap<>(); + // 计算与解决issue的相似度, 标题+描述 + for (IssuesVo v : issuesVos) { + String subject = v.getSubject(); + String description = v.getDescription(); + double subjectFraction = SimilarityService.sentence(subject, curIssue.getSubject()); + double descFraction = SimilarityService.text(description, curIssue.getDescription()); + //这个数据可以缓存下来 + List assigners = talentReferralMapper.selectIssuesAssigners(v.getId()); + for (Long assigner : assigners) { + userFractionMap.merge(assigner, (subjectFraction + descFraction) * 60.0D, Double::sum); + } + } + + // 计算每个负责人关闭的issues数量 + List assIs = talentReferralMapper.countIssuesAssigner(projectId); + for (IssuesVo a : assIs) { + userFractionMap.merge(a.getId(), a.getNum() * 40.0D, Double::sum); + } + + List> entryList = new ArrayList<>(userFractionMap.entrySet()); + entryList.sort((entry1, entry2) -> Double.compare(entry2.getValue(), entry1.getValue())); + + Set contributors = getContributorsByProjectId(projectId); + if (!contributors.isEmpty() && !entryList.isEmpty()) { + entryList.removeIf(s -> !contributors.contains(s.getKey())); + } + return entryList; + } + + public List> PRTalentReferral(Long projectId, Long prId, List prs) { + + Map userFractionMap = new HashMap<>(); + Map userNameFractionMap = new HashMap<>(); + Map> PRFilesMap = new HashMap<>(); + List closedPullRequests = getPullRequests(projectId, "11"); + + for (IssueDto pr : prs) { + //关闭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; + }); + } + } + + 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); + } + }); + } + + // 计算每个负责人关闭的 PR数量 + closedPullRequests.stream().map(IssueDto::getReviewers).flatMap(List::stream) + .forEach(s -> userNameFractionMap.merge(s, 40.0D, Double::sum)); + + + } + + userNameFractionMap.forEach((k, v) -> { + Long id = talentReferralMapper.selectIdByLogin(k); + userFractionMap.put(id, v); + }); + + List> entryList = new ArrayList<>(userFractionMap.entrySet()); + entryList.sort((entry1, entry2) -> Double.compare(entry2.getValue(), entry1.getValue())); + + //必须是项目成员 + Set collaborators = getCollaboratorsByProjectId(projectId); + if (!collaborators.isEmpty() && !entryList.isEmpty()) { + entryList.removeIf(s -> !collaborators.contains(s.getKey())); + } + + return entryList; + } + + public List getPullRequests(Long projectId, String statusType) { + + String projectFullName = getRepoName(projectId); + if (StringUtils.isEmpty(projectFullName)) { + return new ArrayList<>(); + } + + try { + return dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.GET_PULL_REQUEST(projectFullName, statusType), "issues", IssueDto.class); + } catch (ServiceException e) { + logger.error("【{}】获取PR失败:{}", projectFullName, e.getMessage()); + } + return new ArrayList<>(); + } + + public Set getPRFiles(Long projectId, int PRNum) { + String projectFullName = getRepoName(projectId); + if (StringUtils.isEmpty(projectFullName)) { + return new HashSet<>(); + } + + try { + JSONArray allDataByPage = dmsRequestHelper.getAllDataByPage(DmsGitLinkRequestUrl.GET_PR_FILES(projectFullName, PRNum), "issues", "files"); + 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()); + } + return new HashSet<>(); + } + + + public List> PRTalentReferral(Long projectId, Long prId) { + List openPullRequests = getPullRequests(projectId, "1"); + openPullRequests = openPullRequests.stream().filter(e -> e.getReviewers().isEmpty()) + .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()); + return PRTalentReferral(projectId, prId, openPullRequests); + } + + return PRTalentReferral(projectId, prId, openPullRequests); + } + + //定时统计 + public void projectsStatistic(){ + + } + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssueDto.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssueDto.java new file mode 100644 index 000000000..aca2d184d --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssueDto.java @@ -0,0 +1,60 @@ +package com.microservices.dms.referral.vo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author otto + */ +@Data +public class IssueDto { + + @JsonProperty("pull_request_id") + private int pullRequestId; + @JsonProperty("pull_request_number") + private int pullRequestNumber; + @JsonProperty("pull_request_status") + private int pullRequestStatus; + @JsonProperty("pull_request_head") + private String pullRequestHead; + @JsonProperty("pull_request_base") + private String pullRequestBase; + @JsonProperty("pull_request_staus") + private String pullRequestStaus; + @JsonProperty("is_original") + private boolean isOriginal; + @JsonProperty("fork_project_id") + private String forkProjectId; + @JsonProperty("fork_project_identifier") + private String forkProjectIdentifier; + @JsonProperty("fork_project_user") + private String forkProjectUser; + @JsonProperty("fork_project_user_name") + private String forkProjectUserName; + private List reviewers; + private int id; + private String name; + @JsonProperty("pr_time") + private String prTime; + @JsonProperty("assign_user_name") + private String assignUserName; + @JsonProperty("assign_user_login") + private String assignUserLogin; + @JsonProperty("author_name") + private String authorName; + @JsonProperty("author_login") + private String authorLogin; + @JsonProperty("avatar_url") + private String avatarUrl; + private String priority; + private String version; + @JsonProperty("journals_count") + private int journalsCount; + @JsonProperty("issue_tags") + private String issueTags; + @JsonProperty("attached_issues") + private List attachedIssues; + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssuesVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssuesVo.java new file mode 100644 index 000000000..a3b9d8ce5 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/IssuesVo.java @@ -0,0 +1,16 @@ +package com.microservices.dms.referral.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class IssuesVo { + private Long id; + private Long projectId; + private String subject; + private String description; + private Long statusId; + private List statusIds; + private Long num; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PullRequestVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PullRequestVo.java new file mode 100644 index 000000000..37720de35 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/referral/vo/PullRequestVo.java @@ -0,0 +1,18 @@ +package com.microservices.dms.referral.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class PullRequestVo { + private Long id; + private Long projectId; + private Long userId; + private Long giteaNumber; + private String title; + private String description; + private Long statusId; + private List statusIds; + private Long num; +} 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 new file mode 100644 index 000000000..2bdc19773 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CollectUserActDataController.java @@ -0,0 +1,115 @@ +package com.microservices.dms.resourceLibrary.controller; + + +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.dms.resourceLibrary.domain.*; +import com.microservices.dms.resourceLibrary.service.TaskResourceLibraryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +@Api(tags = "数据管理体系-用户行为信息接口") +@RestController +@RequestMapping("/collectUserActData") +@RequiredArgsConstructor +public class CollectUserActDataController { + + private final TaskResourceLibraryService taskResourceLibraryService; + + @PostMapping("/addClicker") + @ApiImplicitParams({ + @ApiImplicitParam(name = "clickType", value = "点击类型(任务:makerSpaceTask、竞赛:CompetitionInfo、项目:Project、成果:Achievements、专家:Experts,校企:schoolEnterprise)", 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) + }) + @ApiOperation(value = "记录点击次数") + public AjaxResult addTaskClick(@RequestBody Clicker clicker) { + return AjaxResult.success(taskResourceLibraryService.addClick(clicker)); + } + + @PostMapping("/addDownloader") + @ApiOperation(value = "记录下载次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "downloadType", value = "下载类型(任务:makerSpaceTask、竞赛作品:CompetitionOpusDownload、成果:Achievements、专家:Experts)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "downloadId", 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) + }) + public AjaxResult addDownloader(@RequestBody Downloader downloader) { + return AjaxResult.success(taskResourceLibraryService.addDownloader(downloader)); + } + + @PostMapping("/addSearcher") + @ApiOperation(value = "记录搜索次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "searchType", value = "搜索类型(任务:makerSpaceTask、项目:Project、竞赛:CompetitionInfo)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "searchId", 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) + }) + public AjaxResult addSearcher(@RequestBody Searcher searcher) { + return AjaxResult.success(taskResourceLibraryService.addSearcher(searcher)); + } + + @PostMapping("/addSearcher2") + @ApiOperation(value = "记录搜索次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "searchType", value = "搜索类型(任务:makerSpaceTask、项目:Project、竞赛:CompetitionInfo)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "searchIds", 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) + }) + public AjaxResult addSearcher2(@RequestBody Searcher searcher) { + return AjaxResult.success(taskResourceLibraryService.addSearcher2(searcher)); + } + + @PostMapping("/addFavorite") + @ApiOperation(value = "记录收藏次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "favoriteType", value = "收藏类型(成果:Achievements、专家:Experts)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "favoriteId", 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) + }) + public AjaxResult addFavorite(@RequestBody Favorite favorite) { + return AjaxResult.success(taskResourceLibraryService.addFavorite(favorite)); + } + + @PostMapping("/addWatcher") + @ApiOperation(value = "记录关注次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "favoriteType", value = "关注类型(成果:Achievements、专家:Experts)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "favoriteId", 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) + }) + public AjaxResult addFavorite(@RequestBody Watcher watcher) { + return AjaxResult.success(taskResourceLibraryService.addWatcher(watcher)); + } + + @DeleteMapping("/delFavorite") + @ApiOperation(value = "删除收藏次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "favoriteType", value = "收藏类型(成果:Achievements、专家:Experts)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "favoriteId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "query", dataTypeClass = Integer.class), + }) + public AjaxResult delFavorite(Favorite favorite) { + return AjaxResult.success(taskResourceLibraryService.delFavorite(favorite)); + } + + @DeleteMapping("/delWatcher") + @ApiOperation(value = "删除关注次数") + @ApiImplicitParams({ + @ApiImplicitParam(name = "favoriteType", value = "关注类型(成果:Achievements、专家:Experts)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "favoriteId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + @ApiImplicitParam(name = "userId", value = "用户ID", paramType = "query", dataTypeClass = Integer.class), + }) + public AjaxResult delWatcher(Watcher watcher) { + return AjaxResult.success(taskResourceLibraryService.delWatcher(watcher)); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CompetitionResourceLibraryController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CompetitionResourceLibraryController.java new file mode 100644 index 000000000..e177bdd47 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/CompetitionResourceLibraryController.java @@ -0,0 +1,160 @@ +package com.microservices.dms.resourceLibrary.controller; + +import com.microservices.common.core.utils.PageUtils; +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.GenericsTableDataInfo; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.dms.resourceLibrary.domain.CompetitionResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.CompetitionListVo; +import com.microservices.dms.resourceLibrary.service.CompetitionResourceLibraryService; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.service.TaskResourceLibraryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +import static com.microservices.common.core.utils.PageUtils.startPage; +import static com.microservices.common.core.web.domain.AjaxResult.success; + +@Api(tags = "数据管理体系-竞赛资源库接口") +@RestController +@RequestMapping("/competitionResourceLibrary") +@RequiredArgsConstructor +public class CompetitionResourceLibraryController extends BaseController { + + private final TaskResourceLibraryService taskResourceLibraryService; + private final CompetitionResourceLibraryService competitionResourceLibraryService; + + @GetMapping("/selectRegisterCondition") + @ApiOperation(value = "查询用户报名") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectRegisterCondition(UserActionDataVo taskJournals) { + startPage(); + List userActionDataVos = competitionResourceLibraryService.selectRegisterCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("/selectOpusCondition") + @ApiOperation(value = "查询用户作品") + @ApiImplicitParams({ + @ApiImplicitParam(name = "status", value = "状态3", paramType = "query", dataTypeClass = Integer.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectOpusCondition(UserActionDataVo taskJournals) { + startPage(); + List userActionDataVos = competitionResourceLibraryService.selectOpusCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("/selectCompetitionListCondition") + @ApiOperation(value = "查询竞赛作品列表") + public GenericsTableDataInfo selectCompetitionListCondition(CompetitionListVo taskJournals) { + startPage(); + List userActionDataVos = competitionResourceLibraryService.selectCompetitionListCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("/list") + public TableDataInfo list(CompetitionResourceLibrary competitionResourceLibrary) { + startPage(); + List list = competitionResourceLibraryService.selectCompetitionResourceLibraryList(competitionResourceLibrary); + return getDataTable(list); + } + + @PostMapping("/export") + public void export(HttpServletResponse response, CompetitionResourceLibrary competitionResourceLibrary) { + List list = competitionResourceLibraryService.selectCompetitionResourceLibraryList(competitionResourceLibrary); + ExcelUtil util = new ExcelUtil(CompetitionResourceLibrary.class); + util.exportExcel(response, list, "数据"); + } + + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(competitionResourceLibraryService.selectCompetitionResourceLibraryById(id)); + } + + @PostMapping + public AjaxResult add(@RequestBody CompetitionResourceLibrary competitionResourceLibrary) { + return success(competitionResourceLibraryService.insertCompetitionResourceLibrary(competitionResourceLibrary)); + } + + @PutMapping + public AjaxResult edit(@RequestBody CompetitionResourceLibrary competitionResourceLibrary) { + return success(competitionResourceLibraryService.updateCompetitionResourceLibrary(competitionResourceLibrary)); + } + + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return success(competitionResourceLibraryService.deleteCompetitionResourceLibraryByIds(ids)); + } + + /** + * 返回开放竞赛总数 + * + * @return 开放竞赛总数 + */ + @ApiOperation(value = "返回开放竞赛总数") + @GetMapping(value = "/getTotalOpenCompetitions") + public AjaxResult getTotalOpenCompetitions() { + // 这里替换成你的实际逻辑,例如从数据库查询 + return AjaxResult.success(competitionResourceLibraryService.getTotalOpenCompetitions()); + } + + /** + * 返回竞赛转换成果数 + * + * @return 竞赛转换成果数 + */ + @ApiOperation(value = "返回竞赛转换成果数") + @GetMapping(value = "/getTotalCompetitionAchievements") + public AjaxResult getTotalCompetitionAchievements() { + // 这里替换成你的实际逻辑 + return AjaxResult.success(competitionResourceLibraryService.getTotalCompetitionAchievements()); + } + + /** + * 返回竞赛提交作品数 + * + * @return 竞赛提交作品数 + */ + @ApiOperation(value = "返回竞赛提交作品数") + @GetMapping(value = "/getTotalCompetitionSubmissions") + public AjaxResult getTotalCompetitionSubmissions() { + // 这里替换成你的实际逻辑 + return AjaxResult.success(competitionResourceLibraryService.getTotalCompetitionSubmissions()); + } + + /** + * 返回已结束竞赛数 + * + * @return 已结束竞赛数 + */ + @ApiOperation(value = "返回已结束竞赛数") + @GetMapping(value = "/getTotalFinishedCompetitions") + public AjaxResult getTotalFinishedCompetitions() { + // 这里替换成你的实际逻辑 + return AjaxResult.success(competitionResourceLibraryService.getTotalFinishedCompetitions()); + } + + /** + * 返回需评审竞赛数 + * + * @return 需评审竞赛数 + */ + @ApiOperation(value = "需评审竞赛数") + @GetMapping(value = "/getReviewCompetitionCount") + public AjaxResult getReviewCompetitionCount() { + // 这里替换成你的实际逻辑 + return AjaxResult.success(competitionResourceLibraryService.getReviewCompetitionCount()); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ExpertResourceLibraryController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ExpertResourceLibraryController.java new file mode 100644 index 000000000..2a0f96dbc --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ExpertResourceLibraryController.java @@ -0,0 +1,141 @@ +package com.microservices.dms.resourceLibrary.controller; + +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.dms.resourceLibrary.domain.ExpertResourceLibrary; +import com.microservices.dms.resourceLibrary.service.IExpertResourceLibraryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 专家资源库Controller + * + * @author microservices + * @date 2025-04-11 + */ +@Api(tags = "数据管理体系-优质专家库") +@RestController +@RequestMapping("/expertResourceLibrary") +public class ExpertResourceLibraryController extends BaseController +{ + @Autowired + private IExpertResourceLibraryService expertResourceLibraryService; + + /** + * 查询专家资源库列表 + */ + @GetMapping("/list") + public TableDataInfo list(ExpertResourceLibrary expertResourceLibrary) + { + startPage(); + List list = expertResourceLibraryService.selectExpertResourceLibraryList(expertResourceLibrary); + return getDataTable(list); + } + + + /** + * 查询专家资源库列表 + */ + @GetMapping("/listFront") + public TableDataInfo listFront(ExpertResourceLibrary expertResourceLibrary) + { + startPage(); + List list = expertResourceLibraryService.selectExpertResourceLibraryList2(expertResourceLibrary); + return getDataTable(list); + } + + /** + * 导出专家资源库列表 + */ + @Log(title = "专家资源库", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ExpertResourceLibrary expertResourceLibrary) + { + List list = expertResourceLibraryService.selectExpertResourceLibraryList(expertResourceLibrary); + ExcelUtil util = new ExcelUtil(ExpertResourceLibrary.class); + util.exportExcel(response, list, "专家资源库数据"); + } + + /** + * 获取专家资源库详细信息 + */ + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(expertResourceLibraryService.selectExpertResourceLibraryById(id)); + } + + /** + * 新增专家资源库 + */ + @Log(title = "专家资源库", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ExpertResourceLibrary expertResourceLibrary) + { + return toAjax(expertResourceLibraryService.insertExpertResourceLibrary(expertResourceLibrary)); + } + + /** + * 修改专家资源库 + */ + @Log(title = "专家资源库", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ExpertResourceLibrary expertResourceLibrary) + { + return toAjax(expertResourceLibraryService.updateExpertResourceLibrary(expertResourceLibrary)); + } + + /** + * 删除专家资源库 + */ + @Log(title = "专家资源库", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(expertResourceLibraryService.deleteExpertResourceLibraryByIds(ids)); + } + + @ApiOperation(value = "评审专家数") + @GetMapping("/auditExpertCount") + public AjaxResult auditExpertCount() + { + return AjaxResult.success(expertResourceLibraryService.auditExpertCount()); + } + + @ApiOperation(value = "竞赛评审数") + @GetMapping("/competitionAuditCount") + public AjaxResult competitionAuditCount() + { + return AjaxResult.success(expertResourceLibraryService.competitionAuditCount()); + } + + @ApiOperation(value = "任务评审数") + @GetMapping("/taskAuditCount") + public AjaxResult taskAuditCount() + { + return AjaxResult.success(expertResourceLibraryService.taskAuditCount()); + } + + + @ApiOperation("根据当前用户以及专家ID,获取当前专家的 是否收藏与关注状态") + @GetMapping("/getWatchFavoriteStatusById") + public AjaxResult getWatchFavoriteStatusById(Long id, Long userId) { + return success(expertResourceLibraryService.getWatchFavoriteStatusById(id, userId)); + } + + + @ApiOperation("根据成果ID,获取专家的相关行为数据统计(点击量、搜索量、附件下载量、收藏、关注)") + @GetMapping("/getActDataStatisticById") + public AjaxResult getActDataStatisticById(Long id) { + return success(expertResourceLibraryService.getActDataStatisticById(id)); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ProjectResourceLibraryController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ProjectResourceLibraryController.java new file mode 100644 index 000000000..9993c1daf --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/ProjectResourceLibraryController.java @@ -0,0 +1,172 @@ +package com.microservices.dms.resourceLibrary.controller; + +import com.microservices.common.core.utils.PageUtils; +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.GenericsTableDataInfo; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.dms.resourceLibrary.domain.ProjectResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.ProjectListVo; +import com.microservices.dms.resourceLibrary.domain.vo.TaskListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.service.ProjectResourceLibraryService; +import com.microservices.dms.resourceLibrary.service.TaskResourceLibraryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "数据管理体系-项目资源库接口") +@RestController +@RequestMapping("/projectResourceLibrary/") +@RequiredArgsConstructor +public class ProjectResourceLibraryController extends BaseController { + + private final ProjectResourceLibraryService projectResourceLibraryService; + + @GetMapping("selectSearcherCondition") + @ApiOperation(value = "查询用户搜索") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(Project)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectSearcherCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectSearchCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectCodeCommitCondition") + @ApiOperation(value = "查询用户提交") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectCodeCommitCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectCodeCommitCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectForkCondition") + @ApiOperation(value = "查询用户Fork") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectForkCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectForkCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectIssueCondition") + @ApiOperation(value = "查询用户Issue") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectIssueCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectIssueCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectPRCondition") + @ApiOperation(value = "查询用户PR") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectPRCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectPRCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectPraisesCondition") + @ApiOperation(value = "查询用户点赞") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(Project)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = Integer.class), + }) + public GenericsTableDataInfo selectPraisesCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectPraisesCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectProjectListCondition") + @ApiOperation(value = "查询项目统计列表") + public GenericsTableDataInfo selectProjectListCondition(ProjectListVo projectListVo) { + PageUtils.startPage(); + List userActionDataVos = projectResourceLibraryService.selectProjectListCondition(projectListVo); + return PageUtils.toPage(userActionDataVos); + } + + @ApiOperation(value = "查询项目资源库-列表") + @GetMapping(value = "/list") + public TableDataInfo list(ProjectResourceLibrary projectResourceLibrary) { + startPage(); + List list = projectResourceLibraryService.selectProjectResourceLibraryList(projectResourceLibrary); + return getDataTable(list); + } + + + @PostMapping("/export") + public void export(HttpServletResponse response, ProjectResourceLibrary projectResourceLibrary) { + List list = projectResourceLibraryService.selectProjectResourceLibraryList(projectResourceLibrary); + ExcelUtil util = new ExcelUtil(ProjectResourceLibrary.class); + util.exportExcel(response, list, "数据"); + } + + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(projectResourceLibraryService.selectProjectResourceLibraryById(id)); + } + + @PostMapping + public AjaxResult add(@RequestBody ProjectResourceLibrary projectResourceLibrary) { + return AjaxResult.success(projectResourceLibraryService.insertProjectResourceLibrary(projectResourceLibrary)); + } + + + @PutMapping + public AjaxResult edit(@RequestBody ProjectResourceLibrary projectResourceLibrary) { + return AjaxResult.success(projectResourceLibraryService.updateProjectResourceLibrary(projectResourceLibrary)); + } + + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return AjaxResult.success(projectResourceLibraryService.deleteProjectResourceLibraryByIds(ids)); + } + + + @ApiOperation(value = "项目转换成果数") + @GetMapping(value = "/getTotalConversionCount") + public AjaxResult getTotalConversionCount() { + return success(projectResourceLibraryService.getTotalConversionCount()); + } + + @ApiOperation(value = "项目公开数") + @GetMapping(value = "/getPublicProjectCount") + public AjaxResult getPublicProjectCount() { + return success(projectResourceLibraryService.getPublicProjectCount()); + } + + @ApiOperation(value = "项目发布版本数") + @GetMapping(value = "/getTotalReleaseCount") + public AjaxResult getTotalReleaseCount() { + return success(projectResourceLibraryService.getTotalReleaseCount()); + } + + @ApiOperation(value = "项目总数") + @GetMapping(value = "/getTotalProjectCount") + public AjaxResult getTotalProjectCount() { + return success(projectResourceLibraryService.getTotalProjectCount()); + } + + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/TaskResourceLibraryController.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/TaskResourceLibraryController.java new file mode 100644 index 000000000..b346bceaf --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/controller/TaskResourceLibraryController.java @@ -0,0 +1,187 @@ +package com.microservices.dms.resourceLibrary.controller; + +import com.microservices.common.core.utils.PageUtils; +import com.microservices.common.core.utils.poi.ExcelUtil; +import com.microservices.common.core.web.controller.BaseController; +import com.microservices.common.core.web.domain.AjaxResult; +import com.microservices.common.core.web.page.GenericsTableDataInfo; +import com.microservices.common.core.web.page.TableDataInfo; +import com.microservices.common.log.annotation.Log; +import com.microservices.common.log.enums.BusinessType; +import com.microservices.dms.resourceLibrary.domain.TaskResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.TaskListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.service.TaskResourceLibraryService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "数据管理体系-任务资源库接口") +@RestController +@RequestMapping("/taskResourceLibrary") +@RequiredArgsConstructor +public class TaskResourceLibraryController extends BaseController { + + private final TaskResourceLibraryService taskResourceLibraryService; + + + @GetMapping("/selectTaskJournalsCondition") + @ApiOperation(value = "查询用户评论") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(任务:makerSpaceTask)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectTaskJournalsCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectTaskJournalsCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectClickerCondition") + @ApiOperation(value = "查询用户点击") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(任务:makerSpaceTask)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectClickerCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectClickerCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectDownloaderCondition") + @ApiOperation(value = "查询用户下载") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemType", value = "类型(任务:makerSpaceTask)", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectDownloaderCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectDownloaderCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectVisitCondition") + @ApiOperation(value = "查询用户点击") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(任务:makerSpaceTask)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectVisitCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectVisitCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectPapersCondition") + @ApiOperation(value = "查询用户交稿") + public GenericsTableDataInfo selectPapersCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectPapersCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectWatcherCondition") + @ApiOperation(value = "查询用户关注") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(任务:MakerTask)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectWatcherCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectWatcherCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectSearcherCondition") + @ApiOperation(value = "查询用户搜索") + @ApiImplicitParams({ + @ApiImplicitParam(name = "itemType", value = "类型(任务:makerSpaceTask)", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "itemId", value = "对象ID", paramType = "query", dataTypeClass = String.class), + }) + public GenericsTableDataInfo selectSearcherCondition(UserActionDataVo taskJournals) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectSearcherCondition(taskJournals); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("selectTaskListCondition") + @ApiOperation(value = "查询任务列表") + public GenericsTableDataInfo selectTaskListCondition(TaskListVo taskListVo) { + PageUtils.startPage(); + List userActionDataVos = taskResourceLibraryService.selectTaskListCondition(taskListVo); + return PageUtils.toPage(userActionDataVos); + } + + @GetMapping("/list") + public TableDataInfo list(TaskResourceLibrary taskResourceLibrary) { + startPage(); + List list = taskResourceLibraryService.selectTaskResourceLibraryList(taskResourceLibrary); + return getDataTable(list); + } + + + @PostMapping("/export") + public void export(HttpServletResponse response, TaskResourceLibrary taskResourceLibrary) { + List list = taskResourceLibraryService.selectTaskResourceLibraryList(taskResourceLibrary); + ExcelUtil util = new ExcelUtil(TaskResourceLibrary.class); + util.exportExcel(response, list, "数据"); + } + + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) { + return success(taskResourceLibraryService.selectTaskResourceLibraryById(id)); + } + + + @PostMapping + public AjaxResult add(@RequestBody TaskResourceLibrary taskResourceLibrary) { + return AjaxResult.success(taskResourceLibraryService.insertTaskResourceLibrary(taskResourceLibrary)); + } + + @PutMapping + public AjaxResult edit(@RequestBody TaskResourceLibrary taskResourceLibrary) { + return AjaxResult.success(taskResourceLibraryService.updateTaskResourceLibrary(taskResourceLibrary)); + } + + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) { + return AjaxResult.success(taskResourceLibraryService.deleteTaskResourceLibraryByIds(ids)); + } + + @GetMapping(value = "/getTotalTasks") + @ApiOperation(value = "获取任务总数") + public AjaxResult getTotalTasks() { + return success(taskResourceLibraryService.getTotalTasks()); + } + + @GetMapping(value = "/getConvertedTaskAmount") + @ApiOperation(value = "获取转换成果任务金额") + public AjaxResult getConvertedTaskAmount() { + return success(taskResourceLibraryService.getConvertedTaskAmount()); + } + + @GetMapping(value = "/getConvertedTasksCount") + @ApiOperation(value = "获取任务转换成果数") + public AjaxResult getConvertedTasksCount() { + return success(taskResourceLibraryService.getConvertedTasksCount()); + } + + @GetMapping(value = "/getTaskAmount") + @ApiOperation(value = "获取任务金额") + public AjaxResult getTaskAmount() { + return success(taskResourceLibraryService.getTaskAmount()); + } + + @GetMapping(value = "/getReviewTaskCount") + @ApiOperation(value = "需评审任务数") + public AjaxResult getReviewTaskCount() { + return success(taskResourceLibraryService.getReviewTaskCount()); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Clicker.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Clicker.java new file mode 100644 index 000000000..1140ecfa4 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Clicker.java @@ -0,0 +1,19 @@ +package com.microservices.dms.resourceLibrary.domain; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class Clicker{ + private Long id; + private String clickType; + private Long clickId; + private Long userId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private String extInfo; +} + 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 new file mode 100644 index 000000000..8a853fa36 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/CompetitionResourceLibrary.java @@ -0,0 +1,297 @@ +package com.microservices.dms.resourceLibrary.domain; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.microservices.common.core.web.domain.BaseEntity; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; + +/** + * @author microservices + * @date 2025-04-09 + */ +public class CompetitionResourceLibrary extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long id; + /** + * 开放竞赛ID + */ + private Long openCompetitionId; + /** + * 开放竞赛名称 + */ + private String openCompetitionName; + /** + * 开放竞赛创建者 + */ + private Long competitionUserId; + /** + * 竞赛领域 + */ + private String competitionField; + /** + * 竞赛状态 0进行中 1已结束 + */ + private String competitionStatus; + /** + * 竞赛提交名称 + */ + private String competitionSubmissionName; + /** + * 作品提交时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date submissionTime; + /** + * 提交者 + */ + private String submitter; + /** + * 提交类型 + */ + private String submissionType; + /** + * 提交单位 + */ + private String submittingUnit; + /** + * 竞赛提交摘要 + */ + private String submissionSummary; + /** + * 竞赛提交详情 + */ + private String submissionDetails; + /** + * 联系人 + */ + private String contactPerson; + /** + * 联系电话 + */ + private String contactPhone; + /** + * 是否已转入成果库 0否 1是 + */ + private Integer isTransferredToResultLibrary; + /** + * 转入成果库时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date transferredToResultLibraryTime; + /** + * 是否精选成果 + */ + private Integer isFeaturedResult; + /** + * 图片 + */ + private String image; + /** + * 专家审核 + */ + private Integer isExpertAudit; + /** + * 附件 + */ + private String attachment; + private String leader; + private String identifier; + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public String getLeader() { + return leader; + } + + public void setLeader(String leader) { + this.leader = leader; + } + + private List> attachmentList = new ArrayList<>(); + + public Integer getIsExpertAudit() { + return isExpertAudit; + } + + public void setIsExpertAudit(Integer isExpertAudit) { + this.isExpertAudit = isExpertAudit; + } + + public List> getAttachmentList() { + return attachmentList; + } + + public void setAttachmentList(List> attachmentList) { + this.attachmentList = attachmentList; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setOpenCompetitionId(Long openCompetitionId) { + this.openCompetitionId = openCompetitionId; + } + + public Long getOpenCompetitionId() { + return openCompetitionId; + } + + public void setOpenCompetitionName(String openCompetitionName) { + this.openCompetitionName = openCompetitionName; + } + + public String getOpenCompetitionName() { + return openCompetitionName; + } + + public void setCompetitionUserId(Long competitionUserId) { + this.competitionUserId = competitionUserId; + } + + public Long getCompetitionUserId() { + return competitionUserId; + } + + public void setCompetitionField(String competitionField) { + this.competitionField = competitionField; + } + + public String getCompetitionField() { + return competitionField; + } + + public void setCompetitionStatus(String competitionStatus) { + this.competitionStatus = competitionStatus; + } + + public String getCompetitionStatus() { + return competitionStatus; + } + + public void setCompetitionSubmissionName(String competitionSubmissionName) { + this.competitionSubmissionName = competitionSubmissionName; + } + + public String getCompetitionSubmissionName() { + return competitionSubmissionName; + } + + public void setSubmissionTime(Date submissionTime) { + this.submissionTime = submissionTime; + } + + public Date getSubmissionTime() { + return submissionTime; + } + + public void setSubmitter(String submitter) { + this.submitter = submitter; + } + + public String getSubmitter() { + return submitter; + } + + public void setSubmissionType(String submissionType) { + this.submissionType = submissionType; + } + + public String getSubmissionType() { + return submissionType; + } + + public void setSubmittingUnit(String submittingUnit) { + this.submittingUnit = submittingUnit; + } + + public String getSubmittingUnit() { + return submittingUnit; + } + + public void setSubmissionSummary(String submissionSummary) { + this.submissionSummary = submissionSummary; + } + + public String getSubmissionSummary() { + return submissionSummary; + } + + public void setSubmissionDetails(String submissionDetails) { + this.submissionDetails = submissionDetails; + } + + public String getSubmissionDetails() { + return submissionDetails; + } + + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; + } + + public String getContactPerson() { + return contactPerson; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public String getContactPhone() { + return contactPhone; + } + + public void setIsTransferredToResultLibrary(Integer isTransferredToResultLibrary) { + this.isTransferredToResultLibrary = isTransferredToResultLibrary; + } + + public Integer getIsTransferredToResultLibrary() { + return isTransferredToResultLibrary; + } + + public void setTransferredToResultLibraryTime(Date transferredToResultLibraryTime) { + this.transferredToResultLibraryTime = transferredToResultLibraryTime; + } + + public Date getTransferredToResultLibraryTime() { + return transferredToResultLibraryTime; + } + + public void setIsFeaturedResult(Integer isFeaturedResult) { + this.isFeaturedResult = isFeaturedResult; + } + + public Integer getIsFeaturedResult() { + return isFeaturedResult; + } + + public void setImage(String image) { + this.image = image; + } + + public String getImage() { + return image; + } + + public void setAttachment(String attachment) { + this.attachment = attachment; + } + + public String getAttachment() { + return attachment; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Downloader.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Downloader.java new file mode 100644 index 000000000..96209fa7a --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Downloader.java @@ -0,0 +1,16 @@ +package com.microservices.dms.resourceLibrary.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import java.util.Date; + +@Data +public class Downloader { + private Long id; + private String downloadType; + private Long downloadId; + private Long userId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private String extInfo; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ExpertResourceLibrary.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ExpertResourceLibrary.java new file mode 100644 index 000000000..9841e3550 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ExpertResourceLibrary.java @@ -0,0 +1,372 @@ +package com.microservices.dms.resourceLibrary.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; + +/** + * 专家资源库对象 expert_resource_library + * + * @author microservices + * @date 2025-04-11 + */ +public class ExpertResourceLibrary extends BaseEntity { + private static final long serialVersionUID = 1L; + + private Long expertId; + private Long id; + //专家ID + private Long userId; + //专家名称 + private String expertName; + //最高学历 + private String highestDegree; + //毕业院校 + private String graduatedFrom; + //身份证 + private String idNumber; + + private String major; + //工作单位 + private String workplace; + //电话 + private String phone; + + private String workplaceType; + //邮箱 + private String expertEmail; + //专家简介 + private String expertSummary; + //专家详情 + private String expertDetail; + + private String professionalTitle; + + private String expertType; + //专家领域 + private String expertDomain; + + private String titleRank; + + private Long status; + //评审领域1 + private String reviewAreaOne; + //评审领域2 + private String reviewAreaTwo; + //评审领域3 + private String reviewAreaThree; + //领域查询条件 + private String areaQuery; + + private Integer isDelete; + + private Long expertAuth; + + private Integer sortNo; + + private Long taskAuditCount; + + private Long competitionAuditCount; + + private String images; + private String attachments; + private Long watcherSum; + private Long favoriteSum; + + private String userImg; + private String userNickName; + private String otherAttachments; + + public String getOtherAttachments() { + return otherAttachments; + } + + public void setOtherAttachments(String otherAttachments) { + this.otherAttachments = otherAttachments; + } + + public String getUserImg() { + return userImg; + } + + public void setUserImg(String userImg) { + this.userImg = userImg; + } + + public String getUserNickName() { + return userNickName; + } + + public void setUserNickName(String userNickName) { + this.userNickName = userNickName; + } + + public String getAreaQuery() { + return areaQuery; + } + + public void setAreaQuery(String areaQuery) { + this.areaQuery = areaQuery; + } + + public Long getWatcherSum() { + return watcherSum; + } + + public void setWatcherSum(Long watcherSum) { + this.watcherSum = watcherSum; + } + + public Long getFavoriteSum() { + return favoriteSum; + } + + public void setFavoriteSum(Long favoriteSum) { + this.favoriteSum = favoriteSum; + } + + public String getImages() { + return images; + } + + public void setImages(String images) { + this.images = images; + } + + public String getAttachments() { + return attachments; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public Long getExpertAuth() { + return expertAuth; + } + + public void setExpertAuth(Long expertAuth) { + this.expertAuth = expertAuth; + } + + public Long getTaskAuditCount() { + return taskAuditCount; + } + + public void setTaskAuditCount(Long taskAuditCount) { + this.taskAuditCount = taskAuditCount; + } + + public Long getCompetitionAuditCount() { + return competitionAuditCount; + } + + public void setCompetitionAuditCount(Long competitionAuditCount) { + this.competitionAuditCount = competitionAuditCount; + } + + public String gender; + + public String getGender() { + return gender; + } + + public void setGender(String gender) { + this.gender = gender; + } + + public Integer getSortNo() { + return sortNo; + } + + public void setSortNo(Integer sortNo) { + this.sortNo = sortNo; + } + + public Long getExpertId() { + return expertId; + } + + public void setExpertId(Long expertId) { + this.expertId = expertId; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getUserId() { + return userId; + } + + public void setExpertName(String expertName) { + this.expertName = expertName; + } + + public String getExpertName() { + return expertName; + } + + public void setHighestDegree(String highestDegree) { + this.highestDegree = highestDegree; + } + + public String getHighestDegree() { + return highestDegree; + } + + public void setGraduatedFrom(String graduatedFrom) { + this.graduatedFrom = graduatedFrom; + } + + public String getGraduatedFrom() { + return graduatedFrom; + } + + public void setIdNumber(String idNumber) { + this.idNumber = idNumber; + } + + public String getIdNumber() { + return idNumber; + } + + public void setMajor(String major) { + this.major = major; + } + + public String getMajor() { + return major; + } + + public void setWorkplace(String workplace) { + this.workplace = workplace; + } + + public String getWorkplace() { + return workplace; + } + + public void setPhone(String phone) { + this.phone = phone; + } + + public String getPhone() { + return phone; + } + + public void setWorkplaceType(String workplaceType) { + this.workplaceType = workplaceType; + } + + public String getWorkplaceType() { + return workplaceType; + } + + public void setExpertEmail(String expertEmail) { + this.expertEmail = expertEmail; + } + + public String getExpertEmail() { + return expertEmail; + } + + public void setExpertSummary(String expertSummary) { + this.expertSummary = expertSummary; + } + + public String getExpertSummary() { + return expertSummary; + } + + public void setExpertDetail(String expertDetail) { + this.expertDetail = expertDetail; + } + + public String getExpertDetail() { + return expertDetail; + } + + public void setProfessionalTitle(String professionalTitle) { + this.professionalTitle = professionalTitle; + } + + public String getProfessionalTitle() { + return professionalTitle; + } + + public void setExpertType(String expertType) { + this.expertType = expertType; + } + + public String getExpertType() { + return expertType; + } + + public void setExpertDomain(String expertDomain) { + this.expertDomain = expertDomain; + } + + public String getExpertDomain() { + return expertDomain; + } + + public void setTitleRank(String titleRank) { + this.titleRank = titleRank; + } + + public String getTitleRank() { + return titleRank; + } + + public void setStatus(Long status) { + this.status = status; + } + + public Long getStatus() { + return status; + } + + public void setReviewAreaOne(String reviewAreaOne) { + this.reviewAreaOne = reviewAreaOne; + } + + public String getReviewAreaOne() { + return reviewAreaOne; + } + + public void setReviewAreaTwo(String reviewAreaTwo) { + this.reviewAreaTwo = reviewAreaTwo; + } + + public String getReviewAreaTwo() { + return reviewAreaTwo; + } + + public void setReviewAreaThree(String reviewAreaThree) { + this.reviewAreaThree = reviewAreaThree; + } + + public String getReviewAreaThree() { + return reviewAreaThree; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } + + public Integer getIsDelete() { + return isDelete; + } + + +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Favorite.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Favorite.java new file mode 100644 index 000000000..5a7dadc84 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Favorite.java @@ -0,0 +1,19 @@ +package com.microservices.dms.resourceLibrary.domain; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class Favorite { + private Long id; + private String favoriteType; + private Long favoriteId; + private Long userId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private String extInfo; +} + diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ProjectResourceLibrary.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ProjectResourceLibrary.java new file mode 100644 index 000000000..42acbbace --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/ProjectResourceLibrary.java @@ -0,0 +1,268 @@ +package com.microservices.dms.resourceLibrary.domain; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.microservices.common.core.web.domain.BaseEntity; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; + +/** + * 对象 project_resource_library + * + * @author microservices + * @date 2025-04-07 + */ +public class ProjectResourceLibrary extends BaseEntity { + private static final long serialVersionUID = 1L; + private Long id; + //项目资源名称 + private String projectName; + //项目领域 + private String projectDomain; + //项目领域名称 + private String projectDomainName; + // + private String identifier; + private String userIdentifier; + //开源项目ID + private Long projectId; + //仓库ID + private Long repositoryId; + //版本Id + private Long versionReleasesId; + //项目是否已公开 + private Long isPublic; + //发版名称 + private String releaseName; + //发版时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date releaseDate; + //发版人 + private String releasePerson; + //发版类型 + private String releaseType; + //发版单位 + private String releaseUnit; + //发版摘要 + private String releaseSummary; + //发版详情 + private String releaseDetails; + //联系人 + private String contactPerson; + //联系时间 + private String contactPhone; + //是否已转入成果库 + private Long isTransferredToAchievement; + //转入成果库时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date transferDate; + //是否精选成果 + private Long isSelectedAchievement; + //图片 + private String images; + //附件 + private String attachments; + private List> attachmentList = new ArrayList<>(); + + public String getUserIdentifier() { + return userIdentifier; + } + + public void setUserIdentifier(String userIdentifier) { + this.userIdentifier = userIdentifier; + } + + public String getProjectDomain() { + return projectDomain; + } + + public void setProjectDomain(String projectDomain) { + this.projectDomain = projectDomain; + } + + public List> getAttachmentList() { + return attachmentList; + } + + public void setAttachmentList(List> attachmentList) { + this.attachmentList = attachmentList; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public Long getProjectId() { + return projectId; + } + + public void setRepositoryId(Long repositoryId) { + this.repositoryId = repositoryId; + } + + public Long getRepositoryId() { + return repositoryId; + } + + public void setVersionReleasesId(Long versionReleasesId) { + this.versionReleasesId = versionReleasesId; + } + + public Long getVersionReleasesId() { + return versionReleasesId; + } + + public void setIsPublic(Long isPublic) { + this.isPublic = isPublic; + } + + public Long getIsPublic() { + return isPublic; + } + + public void setReleaseName(String releaseName) { + this.releaseName = releaseName; + } + + public String getReleaseName() { + return releaseName; + } + + public void setReleaseDate(Date releaseDate) { + this.releaseDate = releaseDate; + } + + public Date getReleaseDate() { + return releaseDate; + } + + public void setReleasePerson(String releasePerson) { + this.releasePerson = releasePerson; + } + + public String getReleasePerson() { + return releasePerson; + } + + public void setReleaseType(String releaseType) { + this.releaseType = releaseType; + } + + public String getReleaseType() { + return releaseType; + } + + public void setReleaseUnit(String releaseUnit) { + this.releaseUnit = releaseUnit; + } + + public String getReleaseUnit() { + return releaseUnit; + } + + public void setReleaseSummary(String releaseSummary) { + this.releaseSummary = releaseSummary; + } + + public String getReleaseSummary() { + return releaseSummary; + } + + public void setReleaseDetails(String releaseDetails) { + this.releaseDetails = releaseDetails; + } + + public String getReleaseDetails() { + return releaseDetails; + } + + public void setContactPerson(String contactPerson) { + this.contactPerson = contactPerson; + } + + public String getContactPerson() { + return contactPerson; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public String getContactPhone() { + return contactPhone; + } + + public void setIsTransferredToAchievement(Long isTransferredToAchievement) { + this.isTransferredToAchievement = isTransferredToAchievement; + } + + public Long getIsTransferredToAchievement() { + return isTransferredToAchievement; + } + + public void setTransferDate(Date transferDate) { + this.transferDate = transferDate; + } + + public Date getTransferDate() { + return transferDate; + } + + public void setIsSelectedAchievement(Long isSelectedAchievement) { + this.isSelectedAchievement = isSelectedAchievement; + } + + public Long getIsSelectedAchievement() { + return isSelectedAchievement; + } + + public void setImages(String images) { + this.images = images; + } + + public String getImages() { + return images; + } + + public void setAttachments(String attachments) { + this.attachments = attachments; + } + + public String getAttachments() { + return attachments; + } + + public String getProjectDomainName() { + return projectDomainName; + } + + public void setProjectDomainName(String projectDomainName) { + this.projectDomainName = projectDomainName; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Searcher.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Searcher.java new file mode 100644 index 000000000..e265ab521 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Searcher.java @@ -0,0 +1,18 @@ +package com.microservices.dms.resourceLibrary.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class Searcher { + private Long id; + private String searchType; + private Long searchId; + private String searchIds; + private Long userId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private String extInfo; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/TaskResourceLibrary.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/TaskResourceLibrary.java new file mode 100644 index 000000000..985729010 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/TaskResourceLibrary.java @@ -0,0 +1,268 @@ +package com.microservices.dms.resourceLibrary.domain; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +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; + +/** + * @author microservices + * @date 2025-04-08 + */ +public class TaskResourceLibrary extends BaseEntity { + private static final long serialVersionUID = 1L; + + // + private Long id; + //创客任务ID + private Long taskId; + // + private Long paperId; + //创客任务名称 + private String taskName; + //任务领域 + private String taskDomain; + //创客任务金额 + private BigDecimal taskAmount; + //胜出交稿名称 + private String submissionName; + //交稿时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date submissionDate; + //交稿人 + private String submitterName; + //交稿类型 + private String submissionType; + //交稿单位 + private String submissionOrganization; + //交稿摘要 + private String submissionSummary; + //交稿详情 + private String releaseDetails; + //联系人 + private String contactName; + //联系电话 + private String contactPhone; + //是否已转入成果库 + private Long isTransferredToResultsLibrary; + //转入成果库时间 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date transferToResultsDate; + //是否精选成果 0否 1是 + private Long isSelectedResult; + //图片 + private String imageUrl; + //附件 + private String attachmentUrl; + private List> attachmentList; + //专家审核 + private Integer expertReview; + + public Integer getExpertReview() { + return expertReview; + } + + public void setExpertReview(Integer expertReview) { + this.expertReview = expertReview; + } + + public List> getAttachmentList() { + return attachmentList; + } + + public void setAttachmentList(List> attachmentList) { + this.attachmentList = attachmentList; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + + public Long getTaskId() { + return taskId; + } + + public void setPaperId(Long paperId) { + this.paperId = paperId; + } + + public Long getPaperId() { + return paperId; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + + public String getTaskName() { + return taskName; + } + + public void setTaskDomain(String taskDomain) { + this.taskDomain = taskDomain; + } + + public String getTaskDomain() { + return taskDomain; + } + + public void setTaskAmount(BigDecimal taskAmount) { + this.taskAmount = taskAmount; + } + + public BigDecimal getTaskAmount() { + return taskAmount; + } + + public void setSubmissionName(String submissionName) { + this.submissionName = submissionName; + } + + public String getSubmissionName() { + return submissionName; + } + + public void setSubmissionDate(Date submissionDate) { + this.submissionDate = submissionDate; + } + + public Date getSubmissionDate() { + return submissionDate; + } + + public void setSubmitterName(String submitterName) { + this.submitterName = submitterName; + } + + public String getSubmitterName() { + return submitterName; + } + + public void setSubmissionType(String submissionType) { + this.submissionType = submissionType; + } + + public String getSubmissionType() { + return submissionType; + } + + public void setSubmissionOrganization(String submissionOrganization) { + this.submissionOrganization = submissionOrganization; + } + + public String getSubmissionOrganization() { + return submissionOrganization; + } + + public void setSubmissionSummary(String submissionSummary) { + this.submissionSummary = submissionSummary; + } + + public String getSubmissionSummary() { + return submissionSummary; + } + + public void setReleaseDetails(String releaseDetails) { + this.releaseDetails = releaseDetails; + } + + public String getReleaseDetails() { + return releaseDetails; + } + + public void setContactName(String contactName) { + this.contactName = contactName; + } + + public String getContactName() { + return contactName; + } + + public void setContactPhone(String contactPhone) { + this.contactPhone = contactPhone; + } + + public String getContactPhone() { + return contactPhone; + } + + public void setIsTransferredToResultsLibrary(Long isTransferredToResultsLibrary) { + this.isTransferredToResultsLibrary = isTransferredToResultsLibrary; + } + + public Long getIsTransferredToResultsLibrary() { + return isTransferredToResultsLibrary; + } + + public void setTransferToResultsDate(Date transferToResultsDate) { + this.transferToResultsDate = transferToResultsDate; + } + + public Date getTransferToResultsDate() { + return transferToResultsDate; + } + + public void setIsSelectedResult(Long isSelectedResult) { + this.isSelectedResult = isSelectedResult; + } + + public Long getIsSelectedResult() { + return isSelectedResult; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setAttachmentUrl(String attachmentUrl) { + this.attachmentUrl = attachmentUrl; + } + + public String getAttachmentUrl() { + return attachmentUrl; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("taskId", getTaskId()) + .append("paperId", getPaperId()) + .append("taskName", getTaskName()) + .append("taskDomain", getTaskDomain()) + .append("taskAmount", getTaskAmount()) + .append("submissionName", getSubmissionName()) + .append("submissionDate", getSubmissionDate()) + .append("submitterName", getSubmitterName()) + .append("submissionType", getSubmissionType()) + .append("submissionOrganization", getSubmissionOrganization()) + .append("submissionSummary", getSubmissionSummary()) + .append("releaseDetails", getReleaseDetails()) + .append("contactName", getContactName()) + .append("contactPhone", getContactPhone()) + .append("isTransferredToResultsLibrary", getIsTransferredToResultsLibrary()) + .append("transferToResultsDate", getTransferToResultsDate()) + .append("isSelectedResult", getIsSelectedResult()) + .append("imageUrl", getImageUrl()) + .append("attachmentUrl", getAttachmentUrl()) + .toString(); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Watcher.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Watcher.java new file mode 100644 index 000000000..5ba6210a0 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/Watcher.java @@ -0,0 +1,19 @@ +package com.microservices.dms.resourceLibrary.domain; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class Watcher { + private Long id; + private String watchableType; + private Long watchableId; + private Long userId; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private String extInfo; +} + diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/CompetitionListVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/CompetitionListVo.java new file mode 100644 index 000000000..9b99feda2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/CompetitionListVo.java @@ -0,0 +1,21 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class CompetitionListVo { + + private Long id; + private String name; + private String categoryName; + private Long status; + private Long totalTaskDays; + + private Long visits; + private Long watchersCount; + private Long registrationsCount; + private Long opusCount; + private Long opusDownloadCount; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ExpertAttachmentVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ExpertAttachmentVo.java new file mode 100644 index 000000000..41f2616d2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ExpertAttachmentVo.java @@ -0,0 +1,50 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + + +public class ExpertAttachmentVo { + private Long expertId; + private Long academicAchievementsAttachments; + private Long honorsAttachments; + private Long resumeAttachments; + private Long titleCertificateAttachments; + + public Long getExpertId() { + return expertId; + } + + public void setExpertId(Long expertId) { + this.expertId = expertId; + } + + public Long getAcademicAchievementsAttachments() { + return academicAchievementsAttachments; + } + + public void setAcademicAchievementsAttachments(Long academicAchievementsAttachments) { + this.academicAchievementsAttachments = academicAchievementsAttachments; + } + + public Long getHonorsAttachments() { + return honorsAttachments; + } + + public void setHonorsAttachments(Long honorsAttachments) { + this.honorsAttachments = honorsAttachments; + } + + public Long getResumeAttachments() { + return resumeAttachments; + } + + public void setResumeAttachments(Long resumeAttachments) { + this.resumeAttachments = resumeAttachments; + } + + public Long getTitleCertificateAttachments() { + return titleCertificateAttachments; + } + + public void setTitleCertificateAttachments(Long titleCertificateAttachments) { + this.titleCertificateAttachments = titleCertificateAttachments; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/KeyValVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/KeyValVo.java new file mode 100644 index 000000000..7f831f008 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/KeyValVo.java @@ -0,0 +1,32 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + +public class KeyValVo { + private K k; + private V v; + + // 默认构造函数 + public KeyValVo() {} + + // 带参构造函数 + public KeyValVo(K k, V v) { + this.k = k; + this.v = v; + } + + // Getters and Setters + public K getK() { + return k; + } + + public void setK(K k) { + this.k = k; + } + + public V getV() { + return v; + } + + public void setV(V v) { + this.v = v; + } +} \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ProjectListVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ProjectListVo.java new file mode 100644 index 000000000..f9681739a --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/ProjectListVo.java @@ -0,0 +1,29 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class ProjectListVo { + + private Long id; + private String name; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private Date createdOn; + private Long versionReleasesCount; + private String projectLanguages; + private String projectCategories; + private Long categoryId; + private Long praisesCount; + private Long watchersCount; + private Long forkedCount; + private Long issuesCount; + private Long pullRequestsCount; + private Long commitsCount; + private Long licenseId; + private Long membersCount; + private Long membersMonthAddCount; + private Long projectSearchCount; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/TaskListVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/TaskListVo.java new file mode 100644 index 000000000..879921443 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/TaskListVo.java @@ -0,0 +1,22 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class TaskListVo { + private Long id; + private String name; + private String categoryName; + private Long categoryId; + private BigDecimal bounty; + private Long totalTaskDays; + + private Long taskClickCount; + private Long taskWatcherCount; + private Long taskPapersCount; + private Long taskJournalCount; + private Long taskSearchCount; + private Long taskDownloadCount; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/UserActionDataVo.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/UserActionDataVo.java new file mode 100644 index 000000000..9b2491b2c --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/domain/vo/UserActionDataVo.java @@ -0,0 +1,19 @@ +package com.microservices.dms.resourceLibrary.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class UserActionDataVo { + private Long id; + private String itemType; + private Long itemId; + private String itemName; + private Long userId; + private String userName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "") + private Date createdAt; + private Integer status; +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/CompetitionResourceLibraryMapper.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/CompetitionResourceLibraryMapper.java new file mode 100644 index 000000000..3973167ae --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/CompetitionResourceLibraryMapper.java @@ -0,0 +1,74 @@ +package com.microservices.dms.resourceLibrary.mapper; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.resourceLibrary.domain.CompetitionResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.CompetitionListVo; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Mapper +@Slave +public interface CompetitionResourceLibraryMapper { + + List selectRegisterCondition(UserActionDataVo clicker); + + List selectOpusCondition(UserActionDataVo searcher); + + Long countRegisterCondition(UserActionDataVo clicker); + + Long countOpusCondition(UserActionDataVo searcher); + + List selectCompetitionListCondition(CompetitionListVo downloader); + + CompetitionResourceLibrary selectCompetitionResourceLibraryById(Long id); + + List selectCompetitionResourceLibraryList(CompetitionResourceLibrary competitionResourceLibrary); + + int insertCompetitionResourceLibrary(CompetitionResourceLibrary competitionResourceLibrary); + + int updateCompetitionResourceLibrary(CompetitionResourceLibrary competitionResourceLibrary); + + int deleteCompetitionResourceLibraryById(Long id); + + int deleteCompetitionResourceLibraryByIds(Long[] ids); + + List> getAttachments(@Param("id") Long id); + + long getTotalOpenCompetitions(); + + long getTotalCompetitionAchievements(); + + long getTotalCompetitionSubmissions(); + + long getTotalFinishedCompetitions(); + + long getReviewCompetitionCount(); + + Long getCompetitionFinish(); + + Long getCompetitionEnroll(); + + Long getCompetitionUnderway(); + + Long getCompetitionSubmitCount(); + + Long getCompetitionTransferCount(); + + Long getCompetitionNeedAuditCount(); + + List getCompetitionStatisticYearly(); + + List> getCompetitionHot(); + + List> getCompetitionYearlyPaperAdd(@Param("s") Date s, @Param("e") Date e); + + List> getCompetitionYearlyFinish(@Param("s") Date s, @Param("e") Date e); +} 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 new file mode 100644 index 000000000..14b06c960 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ExpertResourceLibraryMapper.java @@ -0,0 +1,130 @@ +package com.microservices.dms.resourceLibrary.mapper; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.achievementLibrary.domain.ExpertTotallVo; +import com.microservices.dms.achievementLibrary.domain.KeyValueVo; +import com.microservices.dms.achievementLibrary.domain.MemoTotalVo; +import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.ExpertResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.ExpertAttachmentVo; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 专家资源库Mapper接口 + * + * @author microservices + * @date 2025-04-11 + */ +@Mapper +@Slave +public interface ExpertResourceLibraryMapper +{ + /** + * 查询专家资源库 + * + * @param id 专家资源库主键 + * @return 专家资源库 + */ + public ExpertResourceLibrary selectExpertResourceLibraryById(Long id); + + /** + * 查询专家资源库列表 + * + * @param expertResourceLibrary 专家资源库 + * @return 专家资源库集合 + */ + public List selectExpertResourceLibraryList(ExpertResourceLibrary expertResourceLibrary); + + /** + * 新增专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + public int insertExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary); + + /** + * 修改专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + public int updateExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary); + + /** + * 删除专家资源库 + * + * @param id 专家资源库主键 + * @return 结果 + */ + public int deleteExpertResourceLibraryById(Long id); + + /** + * 批量删除专家资源库 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteExpertResourceLibraryByIds(Long[] ids); + + List selectExpertResourceLibraryList2(ExpertResourceLibrary expertResourceLibrary); + + Long auditExpertCount(); + + Long competitionAuditCount(); + + Long taskAuditCount(); + + Long expertResourceCount(); + + Long auditTaskAuditExpertCount(); + + Long auditCompetitionAuditExpertCount(); + + + List getTitleRankStatistic(); + + List getExpertTypeStatistic(); + + List getHighestDegreeStatistic(); + + List getWorkplaceTypeStatistic(); + + KeyValueVo getAuthenticationStatistic(); + + Long getExpertTotal(); + + List getExpertTotalByYear(); + + List getReviewAreasStatistic(); + + List getExpertAduit(); + + AchievementBehaviorSumVo getActDataStatisticById(@Param("id") Long id); + + AchievementBehaviorSumVo getWatchFavoriteStatusById(@Param("id") Long id, @Param("userId")Long userId); + + List getMemoAduit(); + + KeyValueVo getIsOriginalStatistic(); + + List getMemoTotalByYear(); + + List getForumSectionStatistic(); + + List getAddMemoStatistic(); + + List getTop5Memos(); + + List> get7DayPaise(@Param("s") Date s, @Param("e") Date e); + + ExpertAttachmentVo getExpertInfoById(@Param("expertId") Long expertId); + + Map getAttachmentInfo(@Param("id") Long id); +} 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 new file mode 100644 index 000000000..0d076ebb6 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/ProjectResourceLibraryMapper.java @@ -0,0 +1,54 @@ +package com.microservices.dms.resourceLibrary.mapper; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.resourceLibrary.domain.ProjectResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.domain.vo.ProjectListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +@Slave +public interface ProjectResourceLibraryMapper { + + List selectProjectListCondition(ProjectListVo projectListVo); + + List selectCodeCommitCondition(UserActionDataVo userActionDataVo); + + List selectForkCondition(UserActionDataVo userActionDataVo); + + List selectIssueCondition(UserActionDataVo userActionDataVo); + + List selectPRCondition(UserActionDataVo userActionDataVo); + + List selectPraisesCondition(UserActionDataVo userActionDataVo); + + List selectSearchCondition(UserActionDataVo userActionDataVo); + + public ProjectResourceLibrary selectProjectResourceLibraryById(Long id); + + public List selectProjectResourceLibraryList(ProjectResourceLibrary projectResourceLibrary); + + public int insertProjectResourceLibrary(ProjectResourceLibrary projectResourceLibrary); + + public int updateProjectResourceLibrary(ProjectResourceLibrary projectResourceLibrary); + + public int deleteProjectResourceLibraryById(Long id); + + public int deleteProjectResourceLibraryByIds(Long[] ids); + + long getTotalProjectCount(); + + long getPublicProjectCount(); + + long getTotalReleaseCount(); + + long getTotalConversionCount(); + + List> getAttachments(@Param("containerId") Long containerId); + + String getProjectDomainNameByKey(@Param("projectDomain") String projectDomain ); +} 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 new file mode 100644 index 000000000..4737100f4 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/mapper/TaskResourceLibraryMapper.java @@ -0,0 +1,111 @@ +package com.microservices.dms.resourceLibrary.mapper; + +import com.microservices.common.datasource.annotation.Slave; +import com.microservices.dms.resourceLibrary.domain.*; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.domain.vo.TaskListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + + +@Slave +@Mapper +public interface TaskResourceLibraryMapper { + + int insertClicker(Clicker record); + long countClicker(Clicker record); + long countClickerSimple(Clicker record); + int insertSearcher(Searcher record); + + int insertDownloader(Downloader record); + + List selectClickerCondition(UserActionDataVo clicker); + + List selectVisitCondition(UserActionDataVo clicker); + + List selectSearcherCondition(UserActionDataVo searcher); + + List selectDownloaderCondition(UserActionDataVo downloader); + + List selectWatcherCondition(UserActionDataVo watcher); + + List selectPapersCondition(UserActionDataVo paper); + + List selectTaskJournalsCondition(UserActionDataVo taskJournals); + + List selectTaskListCondition(TaskListVo taskListVo); + + long countClickerCondition(UserActionDataVo clicker); + + long countVisitCondition(UserActionDataVo clicker); + + long countSearcherCondition(UserActionDataVo searcher); + + long countDownloaderCondition(UserActionDataVo downloader); + + long countWatcherCondition(UserActionDataVo watcher); + + long countPapersCondition(UserActionDataVo paper); + + long countTaskJournalsCondition(UserActionDataVo taskJournals); + + TaskResourceLibrary selectTaskResourceLibraryById(Long id); + + List selectTaskResourceLibraryList(TaskResourceLibrary taskResourceLibrary); + + int insertTaskResourceLibrary(TaskResourceLibrary taskResourceLibrary); + + int updateTaskResourceLibrary(TaskResourceLibrary taskResourceLibrary); + + int deleteTaskResourceLibraryById(Long id); + + int deleteTaskResourceLibraryByIds(Long[] ids); + + List> getAttachments(@Param("id") Long id); + + /** + * 获取任务总数 + * + * @return 任务总数 + */ + long getTotalTasks(); + + /** + * 获取转换成果任务金额 + * + * @return 转换成果任务金额 + */ + double getConvertedTaskAmount(); + + /** + * 获取任务转换成果数 + * + * @return 任务转换成果数 + */ + long getConvertedTasksCount(); + + /** + * 获取任务金额 + * + * @return 任务金额 + */ + Double getTaskAmount(); + + /** + * 获取需评审任务数 + * + * @return 需评审任务数 + */ + long getReviewTaskCount(); + + int insertFavorite(Favorite favorite); + + int insertWatcher(Watcher watcher); + + int delFavorite(Favorite favorite); + + int delWatcher(Watcher watcher); +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/CompetitionResourceLibraryService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/CompetitionResourceLibraryService.java new file mode 100644 index 000000000..be0cec9b4 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/CompetitionResourceLibraryService.java @@ -0,0 +1,150 @@ +package com.microservices.dms.resourceLibrary.service; + +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.resourceLibrary.domain.CompetitionResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.ProjectResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.CompetitionListVo; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.mapper.CompetitionResourceLibraryMapper; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.mapper.TaskResourceLibraryMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.List; + +import static com.microservices.dms.constant.TaskConstant.COMPETITION_TYPE_DOWNLOAD; +import static com.microservices.dms.constant.TaskConstant.PROJECT_DOWNLOAD_API; +import static com.microservices.dms.utils.UrlUtil.getUrlPath; + +@Service +@RequiredArgsConstructor +public class CompetitionResourceLibraryService { + + @Value("${http.gitLinkUrl}") + public String gitLinkUrl; + + private final CompetitionResourceLibraryMapper competitionResourceLibraryMapper; + private final TaskResourceLibraryMapper taskResourceLibraryMapper; + + public List selectRegisterCondition(UserActionDataVo vo) { + return competitionResourceLibraryMapper.selectRegisterCondition(vo); + } + + public List selectOpusCondition(UserActionDataVo vo) { + return competitionResourceLibraryMapper.selectOpusCondition(vo); + } + + public List selectCompetitionListCondition(CompetitionListVo dataVo) { + List competitionListVos = competitionResourceLibraryMapper.selectCompetitionListCondition(dataVo); + for (CompetitionListVo vo : competitionListVos) { + UserActionDataVo c = new UserActionDataVo(); + c.setItemId(vo.getId()); + c.setItemType(COMPETITION_TYPE_DOWNLOAD); + long opusDownload = taskResourceLibraryMapper.countDownloaderCondition(c); + vo.setOpusDownloadCount(opusDownload); + Long register = competitionResourceLibraryMapper.countRegisterCondition(c); + vo.setRegistrationsCount(register); + c.setStatus(3); + Long opus = competitionResourceLibraryMapper.countOpusCondition(c); + vo.setOpusCount(opus); + } + + return competitionListVos; + } + + public CompetitionResourceLibrary selectCompetitionResourceLibraryById(Long id) { + return competitionResourceLibraryMapper.selectCompetitionResourceLibraryById(id); + } + + public List selectCompetitionResourceLibraryList(CompetitionResourceLibrary competitionResourceLibrary) { + List list = competitionResourceLibraryMapper.selectCompetitionResourceLibraryList(competitionResourceLibrary); + // /api/attachments/10e9c28d-f8cb-4fbd-83c3-e46d2ff1b325 + for (CompetitionResourceLibrary l : list) { + List> attachments = competitionResourceLibraryMapper.getAttachments(l.getCompetitionUserId()); + for (KeyValVo a : attachments) { + String v = a.getV(); + if (StringUtils.isNotEmpty(v)) { + a.setV(String.format(PROJECT_DOWNLOAD_API, gitLinkUrl, v)); + } + l.setAttachmentList(attachments); + } + } + return list; + } + + public Long insertCompetitionResourceLibrary(CompetitionResourceLibrary competitionResourceLibrary) { + competitionResourceLibrary.setCreateTime(DateUtils.getNowDate()); + competitionResourceLibrary.setCreateBy(SecurityUtils.getUsername()); + competitionResourceLibrary.setTransferredToResultLibraryTime(DateUtils.getNowDate()); + competitionResourceLibraryMapper.insertCompetitionResourceLibrary(competitionResourceLibrary); + return competitionResourceLibrary.getId(); + } + + public int updateCompetitionResourceLibrary(CompetitionResourceLibrary competitionResourceLibrary) { + competitionResourceLibrary.setUpdateTime(DateUtils.getNowDate()); + return competitionResourceLibraryMapper.updateCompetitionResourceLibrary(competitionResourceLibrary); + } + + public int deleteCompetitionResourceLibraryByIds(Long[] ids) { + return competitionResourceLibraryMapper.deleteCompetitionResourceLibraryByIds(ids); + } + + public int deleteCompetitionResourceLibraryById(Long id) { + return competitionResourceLibraryMapper.deleteCompetitionResourceLibraryById(id); + } + + + /** + * 返回开放竞赛总数 + * + * @return 开放竞赛总数 + */ + public long getTotalOpenCompetitions() { + // 这里替换成你的实际逻辑,例如从数据库查询 + return competitionResourceLibraryMapper.getTotalOpenCompetitions(); + } + + /** + * 返回竞赛转换成果数 + * + * @return 竞赛转换成果数 + */ + public long getTotalCompetitionAchievements() { + // 这里替换成你的实际逻辑 + return competitionResourceLibraryMapper.getTotalCompetitionAchievements(); + } + + /** + * 返回竞赛提交作品数 + * + * @return 竞赛提交作品数 + */ + public long getTotalCompetitionSubmissions() { + // 这里替换成你的实际逻辑 + return competitionResourceLibraryMapper.getTotalCompetitionSubmissions(); + } + + /** + * 返回已结束竞赛数 + * + * @return 已结束竞赛数 + */ + public long getTotalFinishedCompetitions() { + // 这里替换成你的实际逻辑 + return competitionResourceLibraryMapper.getTotalFinishedCompetitions(); + } + + /** + * 返回需评审竞赛数 + * + * @return 需评审竞赛数 + */ + public long getReviewCompetitionCount() { + // 这里替换成你的实际逻辑 + return competitionResourceLibraryMapper.getReviewCompetitionCount(); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/IExpertResourceLibraryService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/IExpertResourceLibraryService.java new file mode 100644 index 000000000..9ae1e9568 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/IExpertResourceLibraryService.java @@ -0,0 +1,76 @@ +package com.microservices.dms.resourceLibrary.service; + +import java.util.List; + +import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.ExpertResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; + +/** + * 专家资源库Service接口 + * + * @author microservices + * @date 2025-04-11 + */ +public interface IExpertResourceLibraryService +{ + /** + * 查询专家资源库 + * + * @param id 专家资源库主键 + * @return 专家资源库 + */ + public ExpertResourceLibrary selectExpertResourceLibraryById(Long id); + + /** + * 查询专家资源库列表 + * + * @param expertResourceLibrary 专家资源库 + * @return 专家资源库集合 + */ + public List selectExpertResourceLibraryList(ExpertResourceLibrary expertResourceLibrary); + + /** + * 新增专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + public int insertExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary); + + /** + * 修改专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + public int updateExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary); + + /** + * 批量删除专家资源库 + * + * @param ids 需要删除的专家资源库主键集合 + * @return 结果 + */ + public int deleteExpertResourceLibraryByIds(Long[] ids); + + /** + * 删除专家资源库信息 + * + * @param id 专家资源库主键 + * @return 结果 + */ + public int deleteExpertResourceLibraryById(Long id); + + List selectExpertResourceLibraryList2(ExpertResourceLibrary expertResourceLibrary); + + Long auditExpertCount(); + + Long competitionAuditCount(); + + Long taskAuditCount(); + + AchievementBehaviorSumVo getActDataStatisticById(Long id); + + AchievementBehaviorSumVo getWatchFavoriteStatusById(Long id, Long userId); +} 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 new file mode 100644 index 000000000..bd473e1af --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/ProjectResourceLibraryService.java @@ -0,0 +1,143 @@ +package com.microservices.dms.resourceLibrary.service; + + +import com.alibaba.fastjson.JSON; +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.resourceLibrary.domain.ProjectResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.domain.vo.ProjectListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.mapper.ProjectResourceLibraryMapper; +import com.microservices.dms.utils.DateUtil; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +import static com.microservices.dms.constant.TaskConstant.PROJECT_DOWNLOAD_API; +import static com.microservices.dms.utils.UrlUtil.getUrlPath; + +@Service +@RequiredArgsConstructor +public class ProjectResourceLibraryService { + + private final ProjectResourceLibraryMapper projectResourceLibraryMapper; + + @Value("${http.gitLinkUrl}") + public String gitLinkUrl; + + public List selectProjectListCondition(ProjectListVo projectListVo) { + return projectResourceLibraryMapper.selectProjectListCondition(projectListVo); + } + + public List selectCodeCommitCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectCodeCommitCondition(userActionDataVo); + } + + public List selectForkCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectForkCondition(userActionDataVo); + } + + public List selectIssueCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectIssueCondition(userActionDataVo); + } + + public List selectPRCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectPRCondition(userActionDataVo); + } + + public List selectPraisesCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectPraisesCondition(userActionDataVo); + } + + public List selectSearchCondition(UserActionDataVo userActionDataVo) { + return projectResourceLibraryMapper.selectSearchCondition(userActionDataVo); + } + + + public ProjectResourceLibrary selectProjectResourceLibraryById(Long id) { + return projectResourceLibraryMapper.selectProjectResourceLibraryById(id); + } + + + public List selectProjectResourceLibraryList(ProjectResourceLibrary projectResourceLibrary) { + List list = projectResourceLibraryMapper.selectProjectResourceLibraryList(projectResourceLibrary); + // /api/attachments/10e9c28d-f8cb-4fbd-83c3-e46d2ff1b325 + for (ProjectResourceLibrary l : list) { + //根据领域key,获取领域名称 + String projectDomain = l.getProjectDomain(); + if(StringUtils.isNotBlank(projectDomain)){ + String projectDomainName = projectResourceLibraryMapper.getProjectDomainNameByKey(projectDomain); + l.setProjectDomainName(projectDomainName); + } + Date releaseDate = l.getReleaseDate(); + l.setReleaseDate(DateUtil.plusHours(releaseDate, 8)); + List> attachments = projectResourceLibraryMapper.getAttachments(l.getVersionReleasesId()); + for (KeyValVo a : attachments) { + String v = a.getV(); + if (StringUtils.isNotEmpty(v)) { + if (v.startsWith("http")) { + String urlPath = getUrlPath(v); + if (StringUtils.isNotEmpty(urlPath)) { + if (urlPath.startsWith("/")) { + a.setV(gitLinkUrl + urlPath); + }else { + a.setV(gitLinkUrl +"/api"+ urlPath); + } + } + } else { + a.setV(String.format(PROJECT_DOWNLOAD_API, gitLinkUrl, v)); + } + } + } + l.setAttachmentList(attachments); + l.setAttachments(JSON.toJSONString(attachments)); + } + return list; + } + + + public Long insertProjectResourceLibrary(ProjectResourceLibrary projectResourceLibrary) { + projectResourceLibrary.setCreateTime(DateUtils.getNowDate()); + projectResourceLibrary.setTransferDate(DateUtils.getNowDate()); + projectResourceLibrary.setCreateBy(SecurityUtils.getUsername()); + projectResourceLibraryMapper.insertProjectResourceLibrary(projectResourceLibrary); + return projectResourceLibrary.getId(); + } + + + public int updateProjectResourceLibrary(ProjectResourceLibrary projectResourceLibrary) { + projectResourceLibrary.setUpdateTime(DateUtils.getNowDate()); + return projectResourceLibraryMapper.updateProjectResourceLibrary(projectResourceLibrary); + } + + + public int deleteProjectResourceLibraryByIds(Long[] ids) { + return projectResourceLibraryMapper.deleteProjectResourceLibraryByIds(ids); + } + + + public int deleteProjectResourceLibraryById(Long id) { + return projectResourceLibraryMapper.deleteProjectResourceLibraryById(id); + } + + public long getTotalProjectCount() { + return projectResourceLibraryMapper.getTotalProjectCount(); + } + + public long getPublicProjectCount() { + return projectResourceLibraryMapper.getPublicProjectCount(); + } + + public long getTotalReleaseCount() { + return projectResourceLibraryMapper.getTotalReleaseCount(); + } + + public long getTotalConversionCount() { + return projectResourceLibraryMapper.getTotalConversionCount(); + } +} 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 new file mode 100644 index 000000000..ef16e8fe3 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/TaskResourceLibraryService.java @@ -0,0 +1,210 @@ +package com.microservices.dms.resourceLibrary.service; + +import com.microservices.common.core.utils.DateUtils; +import com.microservices.common.security.utils.SecurityUtils; +import com.microservices.dms.constant.TaskConstant; +import com.microservices.dms.resourceLibrary.domain.*; +import com.microservices.dms.resourceLibrary.domain.vo.KeyValVo; +import com.microservices.dms.resourceLibrary.domain.vo.TaskListVo; +import com.microservices.dms.resourceLibrary.domain.vo.UserActionDataVo; +import com.microservices.dms.resourceLibrary.mapper.TaskResourceLibraryMapper; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +import static com.microservices.dms.constant.TaskConstant.MARKER_SPACE_DOWNLOAD_API_BY_ID; + +@Service +@RequiredArgsConstructor +public class TaskResourceLibraryService { + private final TaskResourceLibraryMapper taskResourceLibraryMapper; + + @Value("${markerSpaceUrl}") + public String markerSpaceUrl; + + public int addClick(Clicker click) { + click.setCreatedAt(DateUtils.getNowDate()); + return taskResourceLibraryMapper.insertClicker(click); + } + + public int addSearcher(Searcher searcher) { + searcher.setCreatedAt(DateUtils.getNowDate()); + return taskResourceLibraryMapper.insertSearcher(searcher); + } + + public int addDownloader(Downloader downloader) { + downloader.setCreatedAt(DateUtils.getNowDate()); + return taskResourceLibraryMapper.insertDownloader(downloader); + } + + public List selectClickerCondition(UserActionDataVo actionDataVo) { + return taskResourceLibraryMapper.selectClickerCondition(actionDataVo); + } + + public List selectVisitCondition(UserActionDataVo actionDataVo) { + return taskResourceLibraryMapper.selectVisitCondition(actionDataVo); + } + + public List selectSearcherCondition(UserActionDataVo searcher) { + return taskResourceLibraryMapper.selectSearcherCondition(searcher); + } + + public List selectDownloaderCondition(UserActionDataVo downloader) { + return taskResourceLibraryMapper.selectDownloaderCondition(downloader); + } + + public List selectWatcherCondition(UserActionDataVo watcher) { + return taskResourceLibraryMapper.selectWatcherCondition(watcher); + } + + public List selectPapersCondition(UserActionDataVo paper) { + return taskResourceLibraryMapper.selectPapersCondition(paper); + } + + public List selectTaskJournalsCondition(UserActionDataVo taskJournals) { + return taskResourceLibraryMapper.selectTaskJournalsCondition(taskJournals); + } + + public List selectTaskListCondition(TaskListVo taskListVo) { + List taskListVos = taskResourceLibraryMapper.selectTaskListCondition(taskListVo); + for (TaskListVo vo : taskListVos) { + UserActionDataVo c = new UserActionDataVo(); + c.setItemId(vo.getId()); + c.setItemType(TaskConstant.TASK_TYPE_PAPERS); + long papers = taskResourceLibraryMapper.countPapersCondition(c); + c.setItemType(TaskConstant.TASK_TYPE_WATCHERS); + long watcher = taskResourceLibraryMapper.countWatcherCondition(c); + c.setItemType(TaskConstant.TASK_TYPE_JOURNALS); + long clicker = taskResourceLibraryMapper.countClickerCondition(c); + long downloader = taskResourceLibraryMapper.countDownloaderCondition(c); + long taskJournals = taskResourceLibraryMapper.countTaskJournalsCondition(c); + long searcher = taskResourceLibraryMapper.countSearcherCondition(c); + + vo.setTaskClickCount(clicker); + vo.setTaskWatcherCount(watcher); + vo.setTaskPapersCount(papers); + vo.setTaskDownloadCount(downloader); + vo.setTaskJournalCount(taskJournals); + vo.setTaskSearchCount(searcher); + } + return taskListVos; + } + + public TaskResourceLibrary selectTaskResourceLibraryById(Long id) { + return taskResourceLibraryMapper.selectTaskResourceLibraryById(id); + } + + + public List selectTaskResourceLibraryList(TaskResourceLibrary taskResourceLibrary) { + List list = taskResourceLibraryMapper.selectTaskResourceLibraryList(taskResourceLibrary); + for (TaskResourceLibrary l : list) { + List> attachments = taskResourceLibraryMapper.getAttachments(l.getPaperId()); + for (KeyValVo a : attachments) { + Object v = a.getV(); + a.setV(String.format(MARKER_SPACE_DOWNLOAD_API_BY_ID, markerSpaceUrl, v)); + } + l.setAttachmentList(attachments); + } + return list; + } + + + public Long insertTaskResourceLibrary(TaskResourceLibrary taskResourceLibrary) { + taskResourceLibrary.setCreateTime(DateUtils.getNowDate()); + taskResourceLibrary.setTransferToResultsDate(DateUtils.getNowDate()); + taskResourceLibrary.setCreateBy(SecurityUtils.getUsername()); + taskResourceLibraryMapper.insertTaskResourceLibrary(taskResourceLibrary); + return taskResourceLibrary.getId(); + } + + + public int updateTaskResourceLibrary(TaskResourceLibrary taskResourceLibrary) { + return taskResourceLibraryMapper.updateTaskResourceLibrary(taskResourceLibrary); + } + + public int deleteTaskResourceLibraryByIds(Long[] ids) { + return taskResourceLibraryMapper.deleteTaskResourceLibraryByIds(ids); + } + + public int deleteTaskResourceLibraryById(Long id) { + return taskResourceLibraryMapper.deleteTaskResourceLibraryById(id); + } + + + /** + * 获取任务总数 + * + * @return 任务总数 + */ + public Long getTotalTasks() { + return taskResourceLibraryMapper.getTotalTasks(); + } + + /** + * 获取转换成果任务金额 + * + * @return 转换成果任务金额 + */ + public Double getConvertedTaskAmount() { + return taskResourceLibraryMapper.getConvertedTaskAmount(); + } + + /** + * 获取任务转换成果数 + * + * @return 任务转换成果数 + */ + public Long getConvertedTasksCount() { + return taskResourceLibraryMapper.getConvertedTasksCount(); + } + + /** + * 获取任务金额 + * + * @return 任务金额 + */ + public Double getTaskAmount() { + return taskResourceLibraryMapper.getTaskAmount(); + } + + + public Long getReviewTaskCount() { + return taskResourceLibraryMapper.getReviewTaskCount(); + } + + public int addFavorite(Favorite favorite) { + favorite.setCreatedAt(DateUtils.getNowDate()); + return taskResourceLibraryMapper.insertFavorite(favorite); + } + + public int addWatcher(Watcher watcher) { + watcher.setCreatedAt(DateUtils.getNowDate()); + return taskResourceLibraryMapper.insertWatcher(watcher); + } + + public int addSearcher2(Searcher searcher) { + String[] split = searcher.getSearchIds().split(","); + Arrays.stream(split).forEach(s -> { + Searcher e = new Searcher(); + e.setCreatedAt(DateUtils.getNowDate()); + e.setSearchId(Long.parseLong(s)); + e.setUserId(searcher.getUserId()); + e.setExtInfo(searcher.getExtInfo()); + e.setSearchType(searcher.getSearchType()); + taskResourceLibraryMapper.insertSearcher(e); + }); + + return split.length; + } + + public int delFavorite(Favorite favorite) { + return taskResourceLibraryMapper.delFavorite(favorite); + } + + public int delWatcher(Watcher watcher) { + return taskResourceLibraryMapper.delWatcher(watcher); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/impl/ExpertResourceLibraryServiceImpl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/impl/ExpertResourceLibraryServiceImpl.java new file mode 100644 index 000000000..a67ecc535 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/resourceLibrary/service/impl/ExpertResourceLibraryServiceImpl.java @@ -0,0 +1,185 @@ +package com.microservices.dms.resourceLibrary.service.impl; + +import com.alibaba.fastjson.JSON; +import com.microservices.common.core.utils.DateUtils; +import com.microservices.common.core.utils.StringUtils; +import com.microservices.dms.behaviorImage.domain.AchievementBehaviorSumVo; +import com.microservices.dms.resourceLibrary.domain.ExpertResourceLibrary; +import com.microservices.dms.resourceLibrary.domain.vo.ExpertAttachmentVo; +import com.microservices.dms.resourceLibrary.mapper.ExpertResourceLibraryMapper; +import com.microservices.dms.resourceLibrary.service.IExpertResourceLibraryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.microservices.dms.constant.TaskConstant.MARKER_SPACE_DOWNLOAD_API_BY_ID; + +/** + * 专家资源库Service业务层处理 + * + * @author microservices + * @date 2025-04-11 + */ +@Service +public class ExpertResourceLibraryServiceImpl implements IExpertResourceLibraryService { + @Autowired + private ExpertResourceLibraryMapper expertResourceLibraryMapper; + + @Value("${markerSpaceUrl}") + public String markerSpaceUrl; + /** + * 查询专家资源库 + * + * @param id 专家资源库主键 + * @return 专家资源库 + */ + @Override + public ExpertResourceLibrary selectExpertResourceLibraryById(Long id) { + ExpertResourceLibrary res = expertResourceLibraryMapper.selectExpertResourceLibraryById(id); + // getSomeAttaches(res); + return res; + } + + private ExpertResourceLibrary getSomeAttaches(ExpertResourceLibrary res) { + List> mmp = new ArrayList<>(); + ExpertAttachmentVo attachmentVo = expertResourceLibraryMapper.getExpertInfoById(res.getExpertId()); + if (attachmentVo == null) { + return res; + } + Map honorsAttachments = expertResourceLibraryMapper.getAttachmentInfo(attachmentVo.getHonorsAttachments()); + buildFullUrl(honorsAttachments); + Map resumeAttachments = expertResourceLibraryMapper.getAttachmentInfo(attachmentVo.getResumeAttachments()); + buildFullUrl(resumeAttachments); + Map titleCertificateAttachments = expertResourceLibraryMapper.getAttachmentInfo(attachmentVo.getTitleCertificateAttachments()); + buildFullUrl(titleCertificateAttachments); + Map academicAchievementsAttachments = expertResourceLibraryMapper.getAttachmentInfo(attachmentVo.getAcademicAchievementsAttachments()); + buildFullUrl(academicAchievementsAttachments); + res.getParams().put("academicAchievementsAttachments", academicAchievementsAttachments); + res.getParams().put("honorsAttachments", honorsAttachments); + res.getParams().put("resumeAttachments", resumeAttachments); + res.getParams().put("titleCertificateAttachments", titleCertificateAttachments); + + mmp.add(academicAchievementsAttachments); + mmp.add(honorsAttachments); + mmp.add(resumeAttachments); + mmp.add(titleCertificateAttachments); + res.setOtherAttachments(JSON.toJSONString(mmp)); + return res; + } + + private void buildFullUrl(Map map) { + if (map != null && map.containsKey("id") && map.get("id") != null) { + String id = map.get("id").toString(); + map.put("url", String.format(MARKER_SPACE_DOWNLOAD_API_BY_ID, markerSpaceUrl, id)); + } + } + + /** + * 查询专家资源库列表 + * + * @param expertResourceLibrary 专家资源库 + * @return 专家资源库 + */ + @Override + public List selectExpertResourceLibraryList(ExpertResourceLibrary expertResourceLibrary) { + List expertResourceLibraryList = expertResourceLibraryMapper.selectExpertResourceLibraryList(expertResourceLibrary); + for (ExpertResourceLibrary a : expertResourceLibraryList) { + String gender = a.getGender(); + String img = "images/avatars/User/boy.jpg"; + if(StringUtils.isNotEmpty(gender) && gender.equals("1")){ + img = "images/avatars/User/girl.jpg"; + } + a.setUserImg(img); + + getSomeAttaches(a); + } + return expertResourceLibraryList; + } + + + /** + * 查询专家资源库列表 + * + * @param expertResourceLibrary 专家资源库 + * @return 专家资源库 + */ + @Override + public List selectExpertResourceLibraryList2(ExpertResourceLibrary expertResourceLibrary) { + return expertResourceLibraryMapper.selectExpertResourceLibraryList2(expertResourceLibrary); + } + + @Override + public Long auditExpertCount() { + return expertResourceLibraryMapper.auditExpertCount(); + } + + @Override + public Long competitionAuditCount() { + return expertResourceLibraryMapper.competitionAuditCount(); + } + + @Override + public Long taskAuditCount() { + return expertResourceLibraryMapper.taskAuditCount(); + } + + @Override + public AchievementBehaviorSumVo getActDataStatisticById(Long id) { + return expertResourceLibraryMapper.getActDataStatisticById(id); + } + + @Override + public AchievementBehaviorSumVo getWatchFavoriteStatusById(Long id, Long userId) { + return expertResourceLibraryMapper.getWatchFavoriteStatusById(id, userId); + } + + /** + * 新增专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + @Override + public int insertExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary) { + expertResourceLibrary.setCreateTime(DateUtils.getNowDate()); + return expertResourceLibraryMapper.insertExpertResourceLibrary(expertResourceLibrary); + } + + /** + * 修改专家资源库 + * + * @param expertResourceLibrary 专家资源库 + * @return 结果 + */ + @Override + public int updateExpertResourceLibrary(ExpertResourceLibrary expertResourceLibrary) { + expertResourceLibrary.setUpdateTime(DateUtils.getNowDate()); + return expertResourceLibraryMapper.updateExpertResourceLibrary(expertResourceLibrary); + } + + /** + * 批量删除专家资源库 + * + * @param ids 需要删除的专家资源库主键 + * @return 结果 + */ + @Override + public int deleteExpertResourceLibraryByIds(Long[] ids) { + return expertResourceLibraryMapper.deleteExpertResourceLibraryByIds(ids); + } + + /** + * 删除专家资源库信息 + * + * @param id 专家资源库主键 + * @return 结果 + */ + @Override + public int deleteExpertResourceLibraryById(Long id) { + return expertResourceLibraryMapper.deleteExpertResourceLibraryById(id); + } +} 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 new file mode 100644 index 000000000..5843e5095 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DateUtil.java @@ -0,0 +1,88 @@ +package com.microservices.dms.utils; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.Year; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.LongStream; + +public class DateUtil { + + public static Date[] getDays(long start, long end) { + LocalDate today = LocalDate.now(); + LocalDate startOfWeek = today.minusDays(end); + LocalDate endOfWeek = today.minusDays(start); + + LocalDateTime startDateTime = startOfWeek.atStartOfDay(); + LocalDateTime endDateTime = endOfWeek.atTime(23, 59, 59); + + return new Date[]{ + Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant()), + Date.from(endDateTime.atZone(ZoneId.systemDefault()).toInstant()), + }; + } + + + public static Date[] getCurrentYear() { + Year year = Year.now(); + + LocalDate startDate = year.atDay(1); + LocalDate endDate = year.atDay(year.length()); + + LocalDateTime startDateTime = startDate.atStartOfDay(); + 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(); + + LocalDate startOfWeek = year.atDay(1); + + LocalDateTime startDateTime = startOfWeek.atStartOfDay(); + 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 List getDateStrMMDD(Date start, Date end) { + LocalDate s = start.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); + LocalDate e = end.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime().toLocalDate(); + String pattern = "MM-dd"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + + return LongStream.range(0, s.until(e).getDays() + 1) + .mapToObj(s::plusDays) + .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(); + String pattern = "yyyy-MM-dd"; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern); + + return LongStream.range(0, s.until(e).getDays() + 1) + .mapToObj(s::plusDays) + .map(formatter::format) + .collect(Collectors.toList()); + } + + public static Date plusHours(Date date, long plusHours){ + if (date == null) {return null;} + LocalDateTime s = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime(); + return Date.from(s.plusHours(plusHours).atZone(ZoneId.systemDefault()).toInstant()); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsGitLinkRequestUrl.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsGitLinkRequestUrl.java new file mode 100644 index 000000000..82f87fe70 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsGitLinkRequestUrl.java @@ -0,0 +1,34 @@ +package com.microservices.dms.utils; + +import com.microservices.common.httpClient.domain.GitLinkRequestUrl; + +public class DmsGitLinkRequestUrl extends GitLinkRequestUrl { + + /** + * 获取项目贡献者 + */ + public static String CONTRIBUTORS(String fullName) { + return String.format("/api/%s/contributors.json", fullName); + } + + /** + * 获取项目成员// + */ + public static String QUERY_USER_FROM_PROJECT(String fullName) { + return String.format("/api/%s/collaborators.json", fullName); + } + + /** + * 获取所有的PR + */ + public static String GET_PULL_REQUEST(String fullName, String statusType) { + return String.format("/api/%s/pulls.json?status_type=%s", fullName, statusType); + } + + /** + * 获取PR的文件 + */ + public static String GET_PR_FILES(String fullName, int PRNum) { + return String.format("/api/v1/%s/pulls/%s/files.json", fullName, PRNum); + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..d2e7e4ee2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/DmsRequestHelper.java @@ -0,0 +1,99 @@ +package com.microservices.dms.utils; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.microservices.common.httpClient.domain.GitLinkRequestUrl; +import com.microservices.common.httpClient.util.GitLinkRequestHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class DmsRequestHelper extends GitLinkRequestHelper { + + private static final Logger logger = LoggerFactory.getLogger(DmsRequestHelper.class); + + /** + * 循环分页获取Gitlink列表接口所有数据 + * + * @return 所有数据列表 + */ + public JSONArray getAllDataByPage(String url, String listKey) { + JSONArray jsonArray = new JSONArray(); + boolean isAllData = false; + int pageNum = 1; + // 循环分页获取gitlink组织下所有成员 + while (!isAllData) { + JSONObject result = doGet(GET_LIST_BY_PAGES(url, pageNum, 50) + ); + jsonArray.addAll(result.getJSONArray(listKey)); + long total = result.getLong("search_count"); + if (total <= jsonArray.size()) { + isAllData = true; + } else { + pageNum++; + } + } + return jsonArray; + } + + public List getAllDataByPage(String url, String listKey, Class tClass) { + List allList = new ArrayList<>(); + boolean isAllData = false; + int pageNum = 1; + // 循环分页获取gitlink组织下所有成员 + while (!isAllData) { + JSONObject result = doGet(GitLinkRequestUrl.GET_LIST_BY_PAGES(url, pageNum, 50) + ); + allList.addAll(result.getList(listKey, tClass)); + long total = result.getLong("search_count"); + if (total <= allList.size()) { + isAllData = true; + } else { + pageNum++; + } + } + return allList; + } + + /** + * 循环分页获取Gitlink列表接口所有数据 + * + * @return 所有数据列表 + */ + public JSONArray getAllDataByPage(String url, String listKey,String countKey) { + JSONArray jsonArray = new JSONArray(); + boolean isAllData = false; + int pageNum = 1; + while (!isAllData) { + JSONObject result = doGet(GET_LIST_BY_PAGES(url, pageNum, 50) + ); + jsonArray.addAll(result.getJSONArray(listKey)); + long total = result.getLong(countKey); + if (total <= jsonArray.size()) { + isAllData = true; + } else { + pageNum++; + } + } + return jsonArray; + } + + + 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"; + return getAdminGitLinkRequestUrl(String.format(p, url, page, limit)); + } + + + protected static GitLinkRequestUrl getAdminGitLinkRequestUrl(String path) { + GitLinkRequestUrl gitLinkRequestUrl = new GitLinkRequestUrl(); + gitLinkRequestUrl.setIsOpen(false); + gitLinkRequestUrl.setIsAdmin(true); + gitLinkRequestUrl.setPath(path); + return gitLinkRequestUrl; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/SimilarityService.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/SimilarityService.java new file mode 100644 index 000000000..875c2d967 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/SimilarityService.java @@ -0,0 +1,39 @@ +package com.microservices.dms.utils; + +import org.xm.Similarity; +import org.xm.similarity.text.CosineSimilarity; +import org.xm.similarity.text.TextSimilarity; + +import java.util.Map; + +/** + * 类库地址 + */ +public class SimilarityService { + +// public static double similarity(String s1, String s2) { +// if (s1 == null || s2 == null || s1.isEmpty() || s2.isEmpty()) { +// return 0; +// } +// +// } + + public static double sentence(String s1, String s2) { + if (s1 == null || s2 == null || s1.isEmpty() || s2.isEmpty()) { + return 0; + } + return Similarity.morphoSimilarity(s1, s2); + } + + public static double text(String text1, String text2) { + if (text1 == null || text2 == null || text1.isEmpty() || text2.isEmpty()) { + return 0; + } + TextSimilarity cosSimilarity = new CosineSimilarity(); + return cosSimilarity.getSimilarity(text1, text2); + } + + public static void buildUserFractionMap(Map map, Long assId, Double fraction) { + map.merge(assId, fraction, Double::sum); + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/UrlUtil.java b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/UrlUtil.java new file mode 100644 index 000000000..03bad39c2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/java/com/microservices/dms/utils/UrlUtil.java @@ -0,0 +1,36 @@ +package com.microservices.dms.utils; + +import com.microservices.common.core.utils.StringUtils; + +import java.net.MalformedURLException; +import java.net.URL; + +public class UrlUtil { + + public static String getUrlPath(String urlString) { + if (StringUtils.isEmpty(urlString)) { + return ""; + } + + URL url; + try { + url = new URL(urlString); + } catch (MalformedURLException e) { + return ""; + } + return url.getPath(); + } + + + public static String replaceUrlIp(String urlString,String newIp) { + + urlString = getUrlPath(urlString); + + if (StringUtils.isEmpty(urlString) || StringUtils.isEmpty(newIp)) { + return ""; + } + + + return newIp + urlString; + } +} diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/banner.txt b/microservices-modules/microservices-modules-dms/src/main/resources/banner.txt new file mode 100644 index 000000000..59ae9965a --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + _ + (_) + _ __ _ _ ___ _ _ _ ______ _ __ _ __ ___ ___ +| '__|| | | | / _ \ | | | || ||______|| '_ \ | '_ ` _ \ / __| +| | | |_| || (_) || |_| || | | |_) || | | | | |\__ \ +|_| \__,_| \___/ \__, ||_| | .__/ |_| |_| |_||___/ + __/ | | | + |___/ |_| \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap-prod.yml b/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap-prod.yml new file mode 100644 index 000000000..dde1fb77e --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap-prod.yml @@ -0,0 +1,34 @@ +# Tomcat +server: + port: 9119 + +# Spring +spring: + application: + # 应用名称 + name: microservices-dms + config: + activate: + # 环境配置 + on-profile: + prod + cloud: + sentinel: + # 取消控制台懒加载 + eager: true + nacos: + discovery: + # 服务注册地址 + server-addr: ${nacos_ip}:${nacos_port} + username: ${nacos_username} + password: ${nacos_password} + config: + # 配置中心地址 + server-addr: ${nacos_ip}:${nacos_port} + username: ${nacos_username} + password: ${nacos_password} + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - { dataId: "application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}",refresh: true } diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap.yml b/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap.yml new file mode 100644 index 000000000..2e61f14d9 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/bootstrap.yml @@ -0,0 +1,32 @@ +# Tomcat +server: + port: 9119 + +# Spring +spring: + application: + # 应用名称 + name: microservices-dms + profiles: + # 环境配置 + active: dev + cloud: + sentinel: + # 取消控制台懒加载 + eager: true + nacos: + discovery: + # 服务注册地址 + server-addr: 127.0.0.1:8848 + username: nacos + password: nacos + config: + # 配置中心地址 + server-addr: 127.0.0.1:8848 + username: nacos + password: nacos + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - { dataId: "application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}",refresh: true } diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/logback.xml b/microservices-modules/microservices-modules-dms/src/main/resources/logback.xml new file mode 100644 index 000000000..b79bc799e --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/logback.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + { + "level": "%level", + "tid": "%tid", + "skyWalkingContext": "%sw_ctx", + "thread": "%thread", + "class": "%logger{1.}:%L", + "message": "%message", + "stackTrace": "%exception{10}" + } + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 000000000..502333c48 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementTeamMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + select id, achievement_id, username, company, technical_title, professional_title, research_direction, phone, summary, work_content, is_leader, status, create_by, create_time, update_by, update_time from achievement_team + + + + + + + + insert into achievement_team + + achievement_id, + username, + company, + technical_title, + professional_title, + research_direction, + phone, + summary, + work_content, + is_leader, + status, + create_by, + create_time, + update_by, + update_time, + + + #{achievementId}, + #{username}, + #{company}, + #{technicalTitle}, + #{professionalTitle}, + #{researchDirection}, + #{phone}, + #{summary}, + #{workContent}, + #{isLeader}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update achievement_team + + achievement_id = #{achievementId}, + username = #{username}, + company = #{company}, + technical_title = #{technicalTitle}, + professional_title = #{professionalTitle}, + research_direction = #{researchDirection}, + phone = #{phone}, + summary = #{summary}, + work_content = #{workContent}, + is_leader = #{isLeader}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from achievement_team where id = #{id} + + + + delete from achievement_team where id in + + #{id} + + + + + delete + 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 new file mode 100644 index 000000000..365e79f64 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/AchievementsMapper.xml @@ -0,0 +1,603 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + insert into achievements + + achievement_name, + 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, + attachment_count, + is_expert_audit, + hot_rank, + + + #{achievementName}, + #{field1}, + #{field2}, + #{field3}, + #{achievementType}, + #{source}, + #{sourceId}, + #{sourceLink}, + #{tags}, + #{summary}, + #{publishingUnit}, + #{address}, + #{isFeatured}, + #{contactPerson}, + #{contactNumber}, + #{ownerId}, + #{ownerName}, + #{status}, + #{details}, + #{reviewer}, + #{reviewDate}, + #{reviewComments}, + #{images}, + #{attachments}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{attachmentCount}, + #{isExpertAudit}, + #{hotRank}, + + + + + update achievements + + achievement_name = #{achievementName}, + field_1 = #{field1}, + field_2 = #{field2}, + field_3 = #{field3}, + achievement_type = #{achievementType}, + source = #{source}, + source_id = #{sourceId}, + source_link = #{sourceLink}, + tags = #{tags}, + summary = #{summary}, + publishing_unit = #{publishingUnit}, + address = #{address}, + is_featured = #{isFeatured}, + contact_person = #{contactPerson}, + contact_number = #{contactNumber}, + owner_id = #{ownerId}, + owner_name = #{ownerName}, + status = #{status}, + details = #{details}, + reviewer = #{reviewer}, + review_date = #{reviewDate}, + review_comments = #{reviewComments}, + images = #{images}, + attachments = #{attachments}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + attachment_count = #{attachmentCount}, + is_expert_audit = #{isExpertAudit}, + hot_rank = #{hotRank}, + + where id = #{id} + + + + delete from achievements where id = #{id} + + + + delete from achievements where id in + + #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 000000000..aaecdf7a0 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/BehaviorImageMapper.xml @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, behavior_code, image_type, behavior_name, behavior_weight, remark, create_by, create_time, update_by, update_time from behavior_image_weight + + + + + + + + insert into behavior_image_weight + + behavior_code, + image_type, + behavior_name, + behavior_weight, + remark, + create_by, + create_time, + update_by, + update_time, + + + #{behaviorCode}, + #{imageType}, + #{behaviorName}, + #{behaviorWeight}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update behavior_image_weight + + behavior_code = #{behaviorCode}, + image_type = #{imageType}, + behavior_name = #{behaviorName}, + behavior_weight = #{behaviorWeight}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete from behavior_image_weight where id = #{id} + + + + delete from behavior_image_weight where id in + + #{id} + + + + + select u.id as "userId",u.login as "loginName",u.nickname as "userName",u.is_expert as "isExpert",u.authentication as "isAuth" from users u + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 new file mode 100644 index 000000000..e1457d782 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/CompetitionResourceLibraryMapper.xml @@ -0,0 +1,407 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + open_competition_id, + open_competition_name, + competition_user_id, + competition_field, + competition_status, + competition_submission_name, + submission_time, + submitter, + submission_type, + submitting_unit, + submission_summary, + submission_details, + contact_person, + contact_phone, + is_transferred_to_result_library, + transferred_to_result_library_time, + is_featured_result, + image, + attachment, + create_by, + create_time, + update_by, + update_time + from competition_resource_library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into competition_resource_library + + open_competition_id, + open_competition_name, + competition_user_id, + competition_field, + competition_status, + competition_submission_name, + submission_time, + submitter, + submission_type, + submitting_unit, + submission_summary, + submission_details, + contact_person, + contact_phone, + is_transferred_to_result_library, + transferred_to_result_library_time, + is_featured_result, + image, + attachment, + create_by, + create_time, + update_by, + update_time, + + + #{openCompetitionId}, + #{openCompetitionName}, + #{competitionUserId}, + #{competitionField}, + #{competitionStatus}, + #{competitionSubmissionName}, + #{submissionTime}, + #{submitter}, + #{submissionType}, + #{submittingUnit}, + #{submissionSummary}, + #{submissionDetails}, + #{contactPerson}, + #{contactPhone}, + #{isTransferredToResultLibrary}, + #{transferredToResultLibraryTime}, + #{isFeaturedResult}, + #{image}, + #{attachment}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update competition_resource_library + + open_competition_id = #{openCompetitionId}, + open_competition_name = #{openCompetitionName}, + competition_user_id = #{competitionUserId}, + competition_field = #{competitionField}, + competition_status = #{competitionStatus}, + competition_submission_name = #{competitionSubmissionName}, + + submission_time = #{submissionTime}, + submitter = #{submitter}, + submission_type = #{submissionType}, + submitting_unit = #{submittingUnit}, + submission_summary = #{submissionSummary}, + submission_details = #{submissionDetails}, + contact_person = #{contactPerson}, + contact_phone = #{contactPhone}, + is_transferred_to_result_library = + #{isTransferredToResultLibrary}, + + transferred_to_result_library_time = + #{transferredToResultLibraryTime}, + + is_featured_result = #{isFeaturedResult}, + image = #{image}, + attachment = #{attachment}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where id = #{id} + + + + delete + from competition_resource_library + where id = #{id} + + + + delete from competition_resource_library where id in + + #{id} + + + + diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ExpertResourceLibraryMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ExpertResourceLibraryMapper.xml new file mode 100644 index 000000000..32d1edcad --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ExpertResourceLibraryMapper.xml @@ -0,0 +1,545 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + user_id, + expert_id, + gender, + sort_no, + expert_name, + highest_degree, + graduated_from, + id_number, + major, + workplace, + phone, + workplace_type, + expert_email, + expert_summary, + expert_detail, + professional_title, + expert_type, + expert_domain, + title_rank, + status, + review_area_one, + review_area_two, + review_area_three, + is_delete, + create_by, + create_time, + update_by, + update_time,images, attachments,gender,sort_no,status + from expert_resource_library + + + + + + + + + + + + + + + + + + insert into expert_resource_library + + user_id, + expert_id, + expert_name, + highest_degree, + graduated_from, + id_number, + major, + workplace, + phone, + workplace_type, + expert_email, + expert_summary, + expert_detail, + professional_title, + expert_type, + expert_domain, + title_rank, + status, + review_area_one, + review_area_two, + review_area_three, + is_delete, + create_by, + create_time, + update_by, + update_time, + sort_no, + gender, + + images, + attachments, + + + #{userId}, + #{expertId}, + #{expertName}, + #{highestDegree}, + #{graduatedFrom}, + #{idNumber}, + #{major}, + #{workplace}, + #{phone}, + #{workplaceType}, + #{expertEmail}, + #{expertSummary}, + #{expertDetail}, + #{professionalTitle}, + #{expertType}, + #{expertDomain}, + #{titleRank}, + #{status}, + #{reviewAreaOne}, + #{reviewAreaTwo}, + #{reviewAreaThree}, + #{isDelete}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{sortNo}, + #{gender}, + #{images}, + #{attachments}, + + + + + update expert_resource_library + + user_id = #{userId}, + expert_id = #{expertId}, + expert_name = #{expertName}, + highest_degree = #{highestDegree}, + graduated_from = #{graduatedFrom}, + id_number = #{idNumber}, + major = #{major}, + workplace = #{workplace}, + phone = #{phone}, + workplace_type = #{workplaceType}, + expert_email = #{expertEmail}, + expert_summary = #{expertSummary}, + expert_detail = #{expertDetail}, + professional_title = + #{professionalTitle}, + + expert_type = #{expertType}, + expert_domain = #{expertDomain}, + title_rank = #{titleRank}, + status = #{status}, + review_area_one = #{reviewAreaOne}, + review_area_two = #{reviewAreaTwo}, + review_area_three = #{reviewAreaThree}, + is_delete = #{isDelete}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + sort_no = #{sortNo}, + gender = #{gender}, + images = #{images}, + attachments = #{attachments}, + + where id = #{id} + + + + delete + from expert_resource_library + where id = #{id} + + + + delete from expert_resource_library where id in + + #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ProjectResourceLibraryMapper.xml b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ProjectResourceLibraryMapper.xml new file mode 100644 index 000000000..cf9729b5d --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/ProjectResourceLibraryMapper.xml @@ -0,0 +1,372 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + project_id, + repository_id, + version_releases_id, + is_public, + release_name, + release_date, + release_person, + release_type, + release_unit, + release_summary, + release_details, + contact_person, + contact_phone, + is_transferred_to_achievement, + transfer_date, + is_selected_achievement, + images, + attachments, + create_by, + create_time, + update_by, + update_time,project_domain + from project_resource_library + + + + + + + + insert into project_resource_library + + + project_id, + repository_id, + version_releases_id, + is_public, + release_name, + release_date, + release_person, + release_type, + release_unit, + release_summary, + release_details, + contact_person, + contact_phone, + is_transferred_to_achievement, + transfer_date, + is_selected_achievement, + images, + attachments, + create_by, + create_time, + update_by, + update_time, + project_domain, + + + + #{projectId}, + #{repositoryId}, + #{versionReleasesId}, + #{isPublic}, + #{releaseName}, + #{releaseDate}, + #{releasePerson}, + #{releaseType}, + #{releaseUnit}, + #{releaseSummary}, + #{releaseDetails}, + #{contactPerson}, + #{contactPhone}, + #{isTransferredToAchievement}, + #{transferDate}, + #{isSelectedAchievement}, + #{images}, + #{attachments}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{projectDomain}, + + + + + update project_resource_library + + project_id = #{projectId}, + repository_id = #{repositoryId}, + version_releases_id = #{versionReleasesId}, + is_public = #{isPublic}, + release_name = #{releaseName}, + release_date = #{releaseDate}, + release_person = #{releasePerson}, + release_type = #{releaseType}, + release_unit = #{releaseUnit}, + release_summary = #{releaseSummary}, + release_details = #{releaseDetails}, + contact_person = #{contactPerson}, + contact_phone = #{contactPhone}, + is_transferred_to_achievement = + #{isTransferredToAchievement}, + + transfer_date = #{transferDate}, + is_selected_achievement = #{isSelectedAchievement}, + images = #{images}, + attachments = #{attachments}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + project_domain = #{projectDomain}, + + where id = #{id} + + + + delete + from project_resource_library + where id = #{id} + + + + delete from project_resource_library where id in + + #{id} + + + + + + + + + + + + + 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 new file mode 100644 index 000000000..b83b2b6ce --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/SchoolEnterpriseAchievementsMapper.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + + + insert into school_enterprise_achievements + + achievement_name, + 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, + achievement_status, + + + #{achievementName}, + #{field1}, + #{field2}, + #{field3}, + #{achievementType}, + #{source}, + #{sourceId}, + #{sourceLink}, + #{tags}, + #{summary}, + #{publishingUnit}, + #{address}, + #{isFeatured}, + #{contactPerson}, + #{contactNumber}, + #{ownerId}, + #{ownerName}, + #{status}, + #{details}, + #{reviewer}, + #{reviewDate}, + #{reviewComments}, + #{images}, + #{attachments}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{achievementStatus}, + + + + + update school_enterprise_achievements + + achievement_name = #{achievementName}, + field_1 = #{field1}, + field_2 = #{field2}, + field_3 = #{field3}, + achievement_type = #{achievementType}, + source = #{source}, + source_id = #{sourceId}, + source_link = #{sourceLink}, + tags = #{tags}, + summary = #{summary}, + publishing_unit = #{publishingUnit}, + address = #{address}, + is_featured = #{isFeatured}, + contact_person = #{contactPerson}, + contact_number = #{contactNumber}, + owner_id = #{ownerId}, + owner_name = #{ownerName}, + status = #{status}, + details = #{details}, + reviewer = #{reviewer}, + review_date = #{reviewDate}, + review_comments = #{reviewComments}, + images = #{images}, + attachments = #{attachments}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + achievement_status = #{achievementStatus}, + + where id = #{id} + + + + delete from school_enterprise_achievements where id = #{id} + + + + delete from school_enterprise_achievements where id in + + #{id} + + + \ No newline at end of file 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 new file mode 100644 index 000000000..0029dfb43 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TalentReferralMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + 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 new file mode 100644 index 000000000..b72ca6283 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/resources/mapper/dms/TaskResourceLibraryMapper.xml @@ -0,0 +1,654 @@ + + + + + + INSERT INTO clickers + + + click_type, + + + click_id, + + + user_id, + + + created_at, + + + ext_info + + + + + #{clickType}, + + + #{clickId}, + + + #{userId}, + + + #{createdAt}, + + + #{extInfo} + + + + + + + + + INSERT INTO searchers + + + search_type, + + + search_id, + + + user_id, + + + created_at, + + + ext_info + + + + + #{searchType}, + + + #{searchId}, + + + #{userId}, + + + #{createdAt}, + + + #{extInfo} + + + + + + INSERT INTO downloads + + + download_type, + + + download_id, + + + user_id, + + + created_at, + + + ext_info + + + + + #{downloadType}, + + + #{downloadId}, + + + #{userId}, + + + #{createdAt}, + + + #{extInfo} + + + + + + INSERT INTO favorites + + + favorite_type, + + + favorite_id, + + + user_id, + + + created_at, + + + ext_info + + + + + #{favoriteType}, + + + #{favoriteId}, + + + #{userId}, + + + #{createdAt}, + + + #{extInfo} + + + + + + INSERT INTO watchers + + + watchable_type, + + + watchable_id, + + + user_id, + + + created_at, + + + ext_info + + + + + #{watchableType}, + + + #{watchableId}, + + + #{userId}, + + + #{createdAt}, + + + #{extInfo} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select id, + task_id, + paper_id, + task_name, + task_domain, + task_amount, + submission_name, + submission_date, + submitter_name, + submission_type, + submission_organization, + submission_summary, + release_details, + contact_name, + contact_phone, + is_transferred_to_results_library, + transfer_to_results_date, + is_selected_result, + image_url, + attachment_url + from task_resource_library + + + + + + + + + + + + + + + + + + + + insert into task_resource_library + + task_id, + paper_id, + task_name, + task_domain, + task_amount, + submission_name, + submission_date, + submitter_name, + submission_type, + submission_organization, + submission_summary, + release_details, + contact_name, + contact_phone, + is_transferred_to_results_library, + transfer_to_results_date, + is_selected_result, + image_url, + attachment_url, + + + #{taskId}, + #{paperId}, + #{taskName}, + #{taskDomain}, + #{taskAmount}, + #{submissionName}, + #{submissionDate}, + #{submitterName}, + #{submissionType}, + #{submissionOrganization}, + #{submissionSummary}, + #{releaseDetails}, + #{contactName}, + #{contactPhone}, + #{isTransferredToResultsLibrary}, + #{transferToResultsDate}, + #{isSelectedResult}, + #{imageUrl}, + #{attachmentUrl}, + + + + + update task_resource_library + + task_id = #{taskId}, + paper_id = #{paperId}, + task_name = #{taskName}, + task_domain = #{taskDomain}, + task_amount = #{taskAmount}, + submission_name = #{submissionName}, + submission_date = #{submissionDate}, + submitter_name = #{submitterName}, + submission_type = #{submissionType}, + submission_organization = #{submissionOrganization}, + submission_summary = #{submissionSummary}, + release_details = #{releaseDetails}, + contact_name = #{contactName}, + contact_phone = #{contactPhone}, + is_transferred_to_results_library = + #{isTransferredToResultsLibrary}, + + transfer_to_results_date = #{transferToResultsDate}, + is_selected_result = #{isSelectedResult}, + image_url = #{imageUrl}, + attachment_url = #{attachmentUrl}, + + where id = #{id} + + + + delete + from task_resource_library + where id = #{id} + + + + delete from task_resource_library where id in + + #{id} + + + + delete + from favorites + where user_id = #{userId} + and favorite_id = #{favoriteId} + and favorite_type = #{favoriteType} + + + + delete + from watchers + where user_id = #{userId} + and watchable_id = #{watchableId} + and watchable_type = #{watchableType} + + diff --git a/microservices-modules/microservices-modules-dms/src/main/test/com/microservices/pms/test/PmsProjectTestSheetTest.java b/microservices-modules/microservices-modules-dms/src/main/test/com/microservices/pms/test/PmsProjectTestSheetTest.java new file mode 100644 index 000000000..8a38b37c2 --- /dev/null +++ b/microservices-modules/microservices-modules-dms/src/main/test/com/microservices/pms/test/PmsProjectTestSheetTest.java @@ -0,0 +1,63 @@ +package com.microservices.pms.test; + +import com.alibaba.fastjson2.JSON; +import com.microservices.pms.enums.TestCaseStatus; +import com.microservices.pms.project.domain.PmsProjectTestsheetCases; +import com.microservices.pms.project.domain.vo.PmsProjectTestcaseStepDataVo; +import com.microservices.pms.project.domain.vo.PmsProjectTestsheetCaseStepVo; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +public class PmsProjectTestSheetTest { + + public static void main(String[] args) { + List testsheetCasesList= new ArrayList(); + PmsProjectTestsheetCases a = new PmsProjectTestsheetCases(); + a.setTestStatus(1l); + PmsProjectTestsheetCases b = new PmsProjectTestsheetCases(); + b.setTestStatus(1l); + PmsProjectTestsheetCases c = new PmsProjectTestsheetCases(); + c.setTestStatus(3l); + PmsProjectTestsheetCases d = new PmsProjectTestsheetCases(); + d.setTestStatus(3l); + + testsheetCasesList.add(a); + testsheetCasesList.add(b); + testsheetCasesList.add(c); + testsheetCasesList.add(d); + Map listMap = Optional.ofNullable(testsheetCasesList).orElse(Collections.emptyList()).stream() + .collect(Collectors.groupingBy(PmsProjectTestsheetCases::getTestStatus, Collectors.summingInt(value -> 1))); + listMap.forEach((key, value) -> System.out.println("" + key + ":" + value)); + + Long passCount = Optional.ofNullable(testsheetCasesList).orElse(Collections.emptyList()).stream() + .filter(testCase -> testCase.getTestStatus().intValue() == 1).count(); + // 总 = 失败+通过+阻塞+未执行(或者排除跳过的) + Long execTotalCount = Optional.ofNullable(testsheetCasesList).orElse(Collections.emptyList()).stream() + .filter(testCase -> testCase.getTestStatus().intValue() != 2).count(); + //Long execTotalCount = testsheetCasesList.stream().filter(testCase -> new HashSet<>(Arrays.asList(0L, 1L, 2L, 3L)).contains(testCase.getTestStatus())).count(); + // 通过率s + System.out.println(passCount); + System.out.println(execTotalCount); + System.out.println(BigDecimal.valueOf(passCount / execTotalCount.doubleValue()).setScale(2, BigDecimal.ROUND_HALF_UP)); +// System.out.println(BigDecimal.valueOf(0 / 0d).setScale(2, BigDecimal.ROUND_HALF_UP)); + System.out.println(BigDecimal.valueOf(new Double("0.1114"))); + + List testcaseStepList = new ArrayList<>(); + PmsProjectTestsheetCaseStepVo aaa = new PmsProjectTestsheetCaseStepVo(); + aaa.setStepId(1l); + aaa.setStepStatus(1); + PmsProjectTestsheetCaseStepVo bbb = new PmsProjectTestsheetCaseStepVo(); + bbb.setStepId(2l); + bbb.setStepStatus(1); + testcaseStepList.add(aaa); + testcaseStepList.add(bbb); + + System.out.println(JSON.toJSONString(Optional.ofNullable(testcaseStepList).orElse(Collections.emptyList()))); + System.out.println(JSON.parseArray("[{\"stepId\":1,\"stepStatus\":1},{\"stepId\":2,\"stepStatus\":1}]", PmsProjectTestcaseStepDataVo.class)); + System.out.println(JSON.parseArray("[{\"stepId\":1,\"stepStatus\":1},{\"stepId\":2,\"stepStatus\":1}]", HashMap.class)); + + Long[] testsheetCasesIds = testsheetCasesList.stream().map(PmsProjectTestsheetCases::getTestStatus).toArray(Long[]::new); + } +} diff --git a/microservices-modules/microservices-modules-file/src/main/java/com/microservices/file/service/impl/SysFileInfoServiceImpl.java b/microservices-modules/microservices-modules-file/src/main/java/com/microservices/file/service/impl/SysFileInfoServiceImpl.java index 2f972deb2..ab7c485c1 100644 --- a/microservices-modules/microservices-modules-file/src/main/java/com/microservices/file/service/impl/SysFileInfoServiceImpl.java +++ b/microservices-modules/microservices-modules-file/src/main/java/com/microservices/file/service/impl/SysFileInfoServiceImpl.java @@ -408,6 +408,13 @@ public class SysFileInfoServiceImpl implements ISysFileInfoService { isCommonFileType = false; break; } + case "dms": { + // 项目管理下需生成唯一标识,防止用户通过id递增访问 + sysFileInfo.setFileIdentifier(genFileIdentifier()); + baseFilePath += "/" + fileType + "/"; + isCommonFileType = false; + break; + } case "resource": { baseFilePath += "/" + fileType + "/"; isCommonFileType = false; diff --git a/microservices-modules/microservices-modules-gen/src/main/java/com/microservices/gen/controller/GenController.java b/microservices-modules/microservices-modules-gen/src/main/java/com/microservices/gen/controller/GenController.java index ace6f5a29..2000be43c 100644 --- a/microservices-modules/microservices-modules-gen/src/main/java/com/microservices/gen/controller/GenController.java +++ b/microservices-modules/microservices-modules-gen/src/main/java/com/microservices/gen/controller/GenController.java @@ -40,7 +40,7 @@ public class GenController extends BaseController /** * 查询代码生成列表 */ - @RequiresPermissions("tool:gen:list") + //@RequiresPermissions("tool:gen:list") @GetMapping("/list") public TableDataInfo genList(GenTable genTable) { @@ -52,7 +52,7 @@ public class GenController extends BaseController /** * 修改代码生成业务 */ - @RequiresPermissions("tool:gen:query") + //@RequiresPermissions("tool:gen:query") @GetMapping(value = "/{tableId}") public AjaxResult getInfo(@PathVariable Long tableId) { @@ -69,7 +69,7 @@ public class GenController extends BaseController /** * 查询数据库列表 */ - @RequiresPermissions("tool:gen:list") + //@RequiresPermissions("tool:gen:list") @GetMapping("/db/list") public TableDataInfo dataList(GenTable genTable) { @@ -94,7 +94,7 @@ public class GenController extends BaseController /** * 导入表结构(保存) */ - @RequiresPermissions("tool:gen:import") + //@RequiresPermissions("tool:gen:import") @Log(title = "代码生成", businessType = BusinessType.IMPORT) @PostMapping("/importTable") public AjaxResult importTableSave(String tables) @@ -109,7 +109,7 @@ public class GenController extends BaseController /** * 修改保存代码生成业务 */ - @RequiresPermissions("tool:gen:edit") + //@RequiresPermissions("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult editSave(@Validated @RequestBody GenTable genTable) @@ -122,7 +122,7 @@ public class GenController extends BaseController /** * 删除代码生成 */ - @RequiresPermissions("tool:gen:remove") + //@RequiresPermissions("tool:gen:remove") @Log(title = "代码生成", businessType = BusinessType.DELETE) @DeleteMapping("/{tableIds}") public AjaxResult remove(@PathVariable Long[] tableIds) @@ -134,7 +134,7 @@ public class GenController extends BaseController /** * 预览代码 */ - @RequiresPermissions("tool:gen:preview") + //@RequiresPermissions("tool:gen:preview") @GetMapping("/preview/{tableId}") public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException { @@ -145,7 +145,7 @@ public class GenController extends BaseController /** * 生成代码(下载方式) */ - @RequiresPermissions("tool:gen:code") + //@RequiresPermissions("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/download/{tableName}") public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException @@ -157,7 +157,7 @@ public class GenController extends BaseController /** * 生成代码(自定义路径) */ - @RequiresPermissions("tool:gen:code") + //@RequiresPermissions("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/genCode/{tableName}") public AjaxResult genCode(@PathVariable("tableName") String tableName) @@ -169,7 +169,7 @@ public class GenController extends BaseController /** * 同步数据库 */ - @RequiresPermissions("tool:gen:edit") + //@RequiresPermissions("tool:gen:edit") @Log(title = "代码生成", businessType = BusinessType.UPDATE) @GetMapping("/synchDb/{tableName}") public AjaxResult synchDb(@PathVariable("tableName") String tableName) @@ -181,7 +181,7 @@ public class GenController extends BaseController /** * 批量生成代码 */ - @RequiresPermissions("tool:gen:code") + //@RequiresPermissions("tool:gen:code") @Log(title = "代码生成", businessType = BusinessType.GENCODE) @GetMapping("/batchGenCode") public void batchGenCode(HttpServletResponse response, String tables) throws IOException diff --git a/microservices-modules/pom.xml b/microservices-modules/pom.xml index 70605677d..8d77d8614 100644 --- a/microservices-modules/pom.xml +++ b/microservices-modules/pom.xml @@ -18,6 +18,7 @@ microservices-modules-pms microservices-modules-wiki microservices-modules-dss + microservices-modules-dms microservices-modules