diff --git a/bs-sams/pom.xml b/bs-sams/pom.xml new file mode 100644 index 00000000..4541045a --- /dev/null +++ b/bs-sams/pom.xml @@ -0,0 +1,32 @@ + + + 4.0.0 + + com.ruoyi + ruoyi + 3.8.9 + + + bs-sams + + + 17 + 17 + UTF-8 + + + + + com.ruoyi + ruoyi-common + + + + com.ruoyi + ruoyi-system + + + + \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsActivityController.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsActivityController.java new file mode 100644 index 00000000..99175277 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsActivityController.java @@ -0,0 +1,107 @@ +package com.ruoyi.sams.ams.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.sams.ams.domain.AmsActivity; +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ams.domain.vo.ActivityListVO; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sams.ams.service.IAmsActivityService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 活动列表Controller + * + * @author ruoyi + * @date 2025-05-06 + */ +@RestController +@RequestMapping("/ams/activity") +public class AmsActivityController extends BaseController +{ + @Autowired + private IAmsActivityService amsActivityService; + + /** + * 查询活动列表列表 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:list')") + @GetMapping("/list") + public TableDataInfo list(ActivityListGetVO amsActivity) + { + startPage(); + List list = amsActivityService.selectAmsActivityList(amsActivity); + return getDataTable(list); + } + + /** + * 导出活动列表列表 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:export')") + @Log(title = "活动列表", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ActivityListGetVO amsActivity) + { + List list = amsActivityService.selectAmsActivityList(amsActivity); + ExcelUtil util = new ExcelUtil(ActivityListVO.class); + util.exportExcel(response, list, "活动列表数据"); + } + + /** + * 获取活动列表详细信息 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:query')") + @GetMapping(value = "/{actId}") + public AjaxResult getInfo(@PathVariable("actId") Long actId) + { + return success(amsActivityService.selectAmsActivityByActId(actId)); + } + + /** + * 新增活动列表 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:add')") + @Log(title = "活动列表", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AmsActivity amsActivity) + { + return toAjax(amsActivityService.insertAmsActivity(amsActivity)); + } + + /** + * 修改活动列表 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:edit')") + @Log(title = "活动列表", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AmsActivity amsActivity) + { + return toAjax(amsActivityService.updateAmsActivity(amsActivity)); + } + + /** + * 删除活动列表 + */ + @PreAuthorize("@ss.hasPermi('ams:activity:remove')") + @Log(title = "活动列表", businessType = BusinessType.DELETE) + @DeleteMapping("/{actIds}") + public AjaxResult remove(@PathVariable Long[] actIds) + { + return toAjax(amsActivityService.deleteAmsActivityByActIds(actIds)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsCommentController.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsCommentController.java new file mode 100644 index 00000000..8cf5dbb6 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsCommentController.java @@ -0,0 +1,106 @@ +package com.ruoyi.sams.ams.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.sams.ams.domain.AmsComment; +import com.ruoyi.sams.ams.domain.vo.AmsCommentListVO; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sams.ams.service.IAmsCommentService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 活动评论Controller + * + * @author ruoyi + * @date 2025-05-06 + */ +@RestController +@RequestMapping("/ams/comment") +public class AmsCommentController extends BaseController +{ + @Autowired + private IAmsCommentService amsCommentService; + + /** + * 查询活动评论列表 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:list')") + @GetMapping("/list") + public TableDataInfo list(AmsCommentListVO amsComment) + { + startPage(); + List list = amsCommentService.selectAmsCommentList(amsComment); + return getDataTable(list); + } + + /** + * 导出活动评论列表 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:export')") + @Log(title = "活动评论", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AmsCommentListVO amsComment) + { + List list = amsCommentService.selectAmsCommentList(amsComment); + ExcelUtil util = new ExcelUtil(AmsCommentListVO.class); + util.exportExcel(response, list, "活动评论数据"); + } + + /** + * 获取活动评论详细信息 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:query')") + @GetMapping(value = "/{commentId}") + public AjaxResult getInfo(@PathVariable("commentId") Long commentId) + { + return success(amsCommentService.selectAmsCommentByCommentId(commentId)); + } + + /** + * 新增活动评论 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:add')") + @Log(title = "活动评论", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AmsComment amsComment) + { + return toAjax(amsCommentService.insertAmsComment(amsComment)); + } + + /** + * 修改活动评论 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:edit')") + @Log(title = "活动评论", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AmsComment amsComment) + { + return toAjax(amsCommentService.updateAmsComment(amsComment)); + } + + /** + * 删除活动评论 + */ + @PreAuthorize("@ss.hasPermi('ams:comment:remove')") + @Log(title = "活动评论", businessType = BusinessType.DELETE) + @DeleteMapping("/{commentIds}") + public AjaxResult remove(@PathVariable Long[] commentIds) + { + return toAjax(amsCommentService.deleteAmsCommentByCommentIds(commentIds)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsReactionController.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsReactionController.java new file mode 100644 index 00000000..3fea21e5 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsReactionController.java @@ -0,0 +1,106 @@ +package com.ruoyi.sams.ams.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.sams.ams.domain.AmsReaction; +import com.ruoyi.sams.ams.domain.vo.AmsReactionVO; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sams.ams.service.IAmsReactionService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 点赞记录Controller + * + * @author ruoyi + * @date 2025-05-06 + */ +@RestController +@RequestMapping("/ams/reaction") +public class AmsReactionController extends BaseController +{ + @Autowired + private IAmsReactionService amsReactionService; + + /** + * 查询点赞记录列表 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:list')") + @GetMapping("/list") + public TableDataInfo list(AmsReactionVO amsReaction) + { + startPage(); + List list = amsReactionService.selectAmsReactionList(amsReaction); + return getDataTable(list); + } + + /** + * 导出点赞记录列表 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:export')") + @Log(title = "点赞记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AmsReactionVO amsReaction) + { + List list = amsReactionService.selectAmsReactionList(amsReaction); + ExcelUtil util = new ExcelUtil(AmsReactionVO.class); + util.exportExcel(response, list, "点赞记录数据"); + } + + /** + * 获取点赞记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:query')") + @GetMapping(value = "/{reactionId}") + public AjaxResult getInfo(@PathVariable("reactionId") Long reactionId) + { + return success(amsReactionService.selectAmsReactionByReactionId(reactionId)); + } + + /** + * 新增点赞记录 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:add')") + @Log(title = "点赞记录", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AmsReaction amsReaction) + { + return toAjax(amsReactionService.insertAmsReaction(amsReaction)); + } + + /** + * 修改点赞记录 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:edit')") + @Log(title = "点赞记录", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AmsReaction amsReaction) + { + return toAjax(amsReactionService.updateAmsReaction(amsReaction)); + } + + /** + * 删除点赞记录 + */ + @PreAuthorize("@ss.hasPermi('ams:reaction:remove')") + @Log(title = "点赞记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{reactionIds}") + public AjaxResult remove(@PathVariable Long[] reactionIds) + { + return toAjax(amsReactionService.deleteAmsReactionByReactionIds(reactionIds)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsRegistrationController.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsRegistrationController.java new file mode 100644 index 00000000..285e99f8 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/controller/AmsRegistrationController.java @@ -0,0 +1,104 @@ +package com.ruoyi.sams.ams.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sams.ams.domain.AmsRegistration; +import com.ruoyi.sams.ams.service.IAmsRegistrationService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 活动报名Controller + * + * @author ruoyi + * @date 2025-05-08 + */ +@RestController +@RequestMapping("/ams/registration") +public class AmsRegistrationController extends BaseController +{ + @Autowired + private IAmsRegistrationService amsRegistrationService; + + /** + * 查询活动报名列表 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:list')") + @GetMapping("/list") + public TableDataInfo list(AmsRegistration amsRegistration) + { + startPage(); + List list = amsRegistrationService.selectAmsRegistrationList(amsRegistration); + return getDataTable(list); + } + + /** + * 导出活动报名列表 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:export')") + @Log(title = "活动报名", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AmsRegistration amsRegistration) + { + List list = amsRegistrationService.selectAmsRegistrationList(amsRegistration); + ExcelUtil util = new ExcelUtil(AmsRegistration.class); + util.exportExcel(response, list, "活动报名数据"); + } + + /** + * 获取活动报名详细信息 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:query')") + @GetMapping(value = "/{regId}") + public AjaxResult getInfo(@PathVariable("regId") Long regId) + { + return success(amsRegistrationService.selectAmsRegistrationByRegId(regId)); + } + + /** + * 新增活动报名 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:add')") + @Log(title = "活动报名", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AmsRegistration amsRegistration) + { + return toAjax(amsRegistrationService.insertAmsRegistration(amsRegistration)); + } + + /** + * 修改活动报名 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:edit')") + @Log(title = "活动报名", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AmsRegistration amsRegistration) + { + return toAjax(amsRegistrationService.updateAmsRegistration(amsRegistration)); + } + + /** + * 删除活动报名 + */ + @PreAuthorize("@ss.hasPermi('ams:registration:remove')") + @Log(title = "活动报名", businessType = BusinessType.DELETE) + @DeleteMapping("/{regIds}") + public AjaxResult remove(@PathVariable Long[] regIds) + { + return toAjax(amsRegistrationService.deleteAmsRegistrationByRegIds(regIds)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsActivity.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsActivity.java new file mode 100644 index 00000000..25246de8 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsActivity.java @@ -0,0 +1,274 @@ +package com.ruoyi.sams.ams.domain; + +import java.math.BigDecimal; +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.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 活动列表对象 ams_activity + * + * @author ruoyi + * @date 2025-05-07 + */ +public class AmsActivity extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 活动ID */ + private Long actId; + + /** 活动标题 */ + @Excel(name = "活动标题") + private String title; + + /** 活动描述 */ + @Excel(name = "活动描述") + private String description; + + /** 封面图 */ + @Excel(name = "封面图") + private String coverImage; + + /** 开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startTime; + + /** 结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date endTime; + + /** 活动地点 */ + @Excel(name = "活动地点") + private String location; + + /** 预算金额 */ + @Excel(name = "预算金额") + private BigDecimal budget; + + /** 最大参与人数 */ + @Excel(name = "最大参与人数") + private Long maxParticipants; + + /** 创建人ID(sys_user) */ + @Excel(name = "创建人ID", readConverterExp = "s=ys_user") + private Long creatorId; + + /** 所属社团ID(sms_club) */ + @Excel(name = "所属社团ID", readConverterExp = "s=ms_club") + private Long clubId; + + /** 所属院系ID(sys_dept) */ + @Excel(name = "所属院系ID", readConverterExp = "s=ys_dept") + private Long deptId; + + /** 活动类型 */ + @Excel(name = "活动类型") + private String activityType; + + /** 活动状态 */ + @Excel(name = "活动状态") + private String status; + + /** 是否公开 */ + @Excel(name = "是否公开") + private String visibility; + + /** 当前审批人ID */ + @Excel(name = "当前审批人ID") + private Long currentApproverId; + + public void setActId(Long actId) + { + this.actId = actId; + } + + public Long getActId() + { + return actId; + } + + public void setTitle(String title) + { + this.title = title; + } + + public String getTitle() + { + return title; + } + + public void setDescription(String description) + { + this.description = description; + } + + public String getDescription() + { + return description; + } + + public void setCoverImage(String coverImage) + { + this.coverImage = coverImage; + } + + public String getCoverImage() + { + return coverImage; + } + + public void setStartTime(Date startTime) + { + this.startTime = startTime; + } + + public Date getStartTime() + { + return startTime; + } + + public void setEndTime(Date endTime) + { + this.endTime = endTime; + } + + public Date getEndTime() + { + return endTime; + } + + public void setLocation(String location) + { + this.location = location; + } + + public String getLocation() + { + return location; + } + + public void setBudget(BigDecimal budget) + { + this.budget = budget; + } + + public BigDecimal getBudget() + { + return budget; + } + + public void setMaxParticipants(Long maxParticipants) + { + this.maxParticipants = maxParticipants; + } + + public Long getMaxParticipants() + { + return maxParticipants; + } + + public void setCreatorId(Long creatorId) + { + this.creatorId = creatorId; + } + + public Long getCreatorId() + { + return creatorId; + } + + public void setClubId(Long clubId) + { + this.clubId = clubId; + } + + public Long getClubId() + { + return clubId; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setActivityType(String activityType) + { + this.activityType = activityType; + } + + public String getActivityType() + { + return activityType; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setVisibility(String visibility) + { + this.visibility = visibility; + } + + public String getVisibility() + { + return visibility; + } + + public void setCurrentApproverId(Long currentApproverId) + { + this.currentApproverId = currentApproverId; + } + + public Long getCurrentApproverId() + { + return currentApproverId; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("actId", getActId()) + .append("title", getTitle()) + .append("description", getDescription()) + .append("coverImage", getCoverImage()) + .append("startTime", getStartTime()) + .append("endTime", getEndTime()) + .append("location", getLocation()) + .append("budget", getBudget()) + .append("maxParticipants", getMaxParticipants()) + .append("creatorId", getCreatorId()) + .append("clubId", getClubId()) + .append("deptId", getDeptId()) + .append("activityType", getActivityType()) + .append("status", getStatus()) + .append("visibility", getVisibility()) + .append("currentApproverId", getCurrentApproverId()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } + + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsComment.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsComment.java new file mode 100644 index 00000000..cc6d0f43 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsComment.java @@ -0,0 +1,102 @@ +package com.ruoyi.sams.ams.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 活动评论对象 ams_comment + * + * @author ruoyi + * @date 2025-05-06 + */ +public class AmsComment extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 评论ID */ + private Long commentId; + + /** 活动ID */ + @Excel(name = "活动ID") + private Long actId; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 父评论ID(嵌套结构) */ + @Excel(name = "父评论ID", readConverterExp = "嵌=套结构") + private Long parentCommentId; + + /** 评论内容 */ + @Excel(name = "评论内容") + private String content; + + public void setCommentId(Long commentId) + { + this.commentId = commentId; + } + + public Long getCommentId() + { + return commentId; + } + + public void setActId(Long actId) + { + this.actId = actId; + } + + public Long getActId() + { + return actId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public void setParentCommentId(Long parentCommentId) + { + this.parentCommentId = parentCommentId; + } + + public Long getParentCommentId() + { + return parentCommentId; + } + + public void setContent(String content) + { + this.content = content; + } + + public String getContent() + { + return content; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("commentId", getCommentId()) + .append("actId", getActId()) + .append("userId", getUserId()) + .append("parentCommentId", getParentCommentId()) + .append("content", getContent()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsReaction.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsReaction.java new file mode 100644 index 00000000..b79ce76e --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsReaction.java @@ -0,0 +1,87 @@ +package com.ruoyi.sams.ams.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 点赞记录对象 ams_reaction + * + * @author ruoyi + * @date 2025-05-06 + */ +public class AmsReaction extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 互动ID */ + private Long reactionId; + + /** 活动ID */ + @Excel(name = "活动ID") + private Long actId; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 反应类型(like点赞 / dislike点踩) */ + @Excel(name = "反应类型", readConverterExp = "l=ike点赞,/=,d=islike点踩") + private String reactionType; + + public void setReactionId(Long reactionId) + { + this.reactionId = reactionId; + } + + public Long getReactionId() + { + return reactionId; + } + + public void setActId(Long actId) + { + this.actId = actId; + } + + public Long getActId() + { + return actId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public void setReactionType(String reactionType) + { + this.reactionType = reactionType; + } + + public String getReactionType() + { + return reactionType; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("reactionId", getReactionId()) + .append("actId", getActId()) + .append("userId", getUserId()) + .append("reactionType", getReactionType()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsRegistration.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsRegistration.java new file mode 100644 index 00000000..add1eedb --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/AmsRegistration.java @@ -0,0 +1,132 @@ +package com.ruoyi.sams.ams.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.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 活动报名对象 ams_registration + * + * @author ruoyi + * @date 2025-05-08 + */ +public class AmsRegistration extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 报名ID */ + private Long regId; + + /** 活动ID */ + @Excel(name = "活动ID") + private Long actId; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 角色 */ + @Excel(name = "角色") + private String role; + + /** 报名状态 */ + @Excel(name = "报名状态") + private String status; + + /** 报名时间 */ + private Date registerTime; + + /** 签到时间 */ + private Date attendTime; + + public void setRegId(Long regId) + { + this.regId = regId; + } + + public Long getRegId() + { + return regId; + } + + public void setActId(Long actId) + { + this.actId = actId; + } + + public Long getActId() + { + return actId; + } + + public void setUserId(Long userId) + { + this.userId = userId; + } + + public Long getUserId() + { + return userId; + } + + public void setRole(String role) + { + this.role = role; + } + + public String getRole() + { + return role; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + public void setRegisterTime(Date registerTime) + { + this.registerTime = registerTime; + } + + public Date getRegisterTime() + { + return registerTime; + } + + public void setAttendTime(Date attendTime) + { + this.attendTime = attendTime; + } + + public Date getAttendTime() + { + return attendTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("regId", getRegId()) + .append("actId", getActId()) + .append("userId", getUserId()) + .append("role", getRole()) + .append("status", getStatus()) + .append("registerTime", getRegisterTime()) + .append("attendTime", getAttendTime()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListGetVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListGetVO.java new file mode 100644 index 00000000..00887747 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListGetVO.java @@ -0,0 +1,57 @@ +package com.ruoyi.sams.ams.domain.vo; + +/** + * 活动列表查询参数封装 + */ + +public class ActivityListGetVO { + private String title; // 活动标题(模糊查询) + private String status; // 状态筛选 + private Long clubId; // 所属社团 + private Long creatorId; // 创建人ID + + /** + * 是否排除他人草稿(管理员筛选使用) + */ + private Boolean excludeOtherDraft; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } + + public Long getCreatorId() { + return creatorId; + } + + public void setCreatorId(Long creatorId) { + this.creatorId = creatorId; + } + + public Boolean getExcludeOtherDraft() { + return excludeOtherDraft; + } + + public void setExcludeOtherDraft(Boolean excludeOtherDraft) { + this.excludeOtherDraft = excludeOtherDraft; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListVO.java new file mode 100644 index 00000000..b26a309d --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/ActivityListVO.java @@ -0,0 +1,231 @@ +package com.ruoyi.sams.ams.domain.vo; + +import com.ruoyi.common.annotation.Excel; + +import java.math.BigDecimal; +import java.util.Date; + +public class ActivityListVO { + @Excel(name = "活动ID") + private Long actId; + + @Excel(name = "活动标题") + private String title; + + @Excel(name = "活动描述") + private String description; + + /** 封面图 */ + @Excel(name = "封面图") + private String coverImage; + + @Excel(name = "预算") + private BigDecimal budget; + + @Excel(name = "创建人ID") + private Long creatorId; + + @Excel(name = "创建人姓名") + private String creatorName; + + @Excel(name = "所属社团ID") + private Long clubId; + + @Excel(name = "社团名称") + private String clubName; + + @Excel(name = "所属院系ID") + private Long deptId; + + @Excel(name = "院系名称") + private String deptName; + + @Excel(name = "活动地点") + private String location; + + @Excel(name = "活动类型") + private String activityType; + + @Excel(name = "活动状态") + private String status; + + @Excel(name = "可见性") + private String visibility; + + @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + + @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + + @Excel(name = "备注") + private String remark; + + public Long getActId() { + return actId; + } + + public void setActId(Long actId) { + this.actId = actId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCoverImage() { + return coverImage; + } + + public void setCoverImage(String coverImage) { + this.coverImage = coverImage; + } + + public BigDecimal getBudget() { + return budget; + } + + public void setBudget(BigDecimal budget) { + this.budget = budget; + } + + public Long getCreatorId() { + return creatorId; + } + + public void setCreatorId(Long creatorId) { + this.creatorId = creatorId; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } + + public String getClubName() { + return clubName; + } + + public void setClubName(String clubName) { + this.clubName = clubName; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getActivityType() { + return activityType; + } + + public void setActivityType(String activityType) { + this.activityType = activityType; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getVisibility() { + return visibility; + } + + public void setVisibility(String visibility) { + this.visibility = visibility; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + @Override + public String toString() { + return "ActivityListVO{" + + "actId=" + actId + + ", title='" + title + '\'' + + ", description='" + description + '\'' + + ", coverImage='" + coverImage + '\'' + + ", budget=" + budget + + ", creatorId=" + creatorId + + ", creatorName='" + creatorName + '\'' + + ", clubId=" + clubId + + ", clubName='" + clubName + '\'' + + ", deptId=" + deptId + + ", deptName='" + deptName + '\'' + + ", location='" + location + '\'' + + ", activityType='" + activityType + '\'' + + ", status='" + status + '\'' + + ", visibility='" + visibility + '\'' + + ", startTime=" + startTime + + ", endTime=" + endTime + + ", remark='" + remark + '\'' + + '}'; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsCommentListVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsCommentListVO.java new file mode 100644 index 00000000..64db1105 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsCommentListVO.java @@ -0,0 +1,106 @@ +package com.ruoyi.sams.ams.domain.vo; + +import com.ruoyi.common.annotation.Excel; +import java.util.Date; + +public class AmsCommentListVO { + + @Excel(name = "评论ID") + private Long commentId; + + @Excel(name = "活动ID") + private Long actId; + + @Excel(name = "活动名称") + private String activityName; + + @Excel(name = "用户ID") + private Long userId; + + @Excel(name = "用户名") + private String userName; + + @Excel(name = "父评论ID") + private Long parentCommentId; + + @Excel(name = "评论内容") + private String content; + + @Excel(name = "备注") + private String remark; + + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + public Long getCommentId() { + return commentId; + } + + public void setCommentId(Long commentId) { + this.commentId = commentId; + } + + public Long getActId() { + return actId; + } + + public void setActId(Long actId) { + this.actId = actId; + } + + public String getActivityName() { + return activityName; + } + + public void setActivityName(String activityName) { + this.activityName = activityName; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public Long getParentCommentId() { + return parentCommentId; + } + + public void setParentCommentId(Long parentCommentId) { + this.parentCommentId = parentCommentId; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsReactionVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsReactionVO.java new file mode 100644 index 00000000..69c9f364 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsReactionVO.java @@ -0,0 +1,96 @@ +package com.ruoyi.sams.ams.domain.vo; + +import com.ruoyi.common.annotation.Excel; +/** + * 点赞记录视图对象 AmsReactionVO + */ +public class AmsReactionVO { + + @Excel(name = "互动ID") + private Long reactionId; + + @Excel(name = "活动ID") + private Long actId; + + @Excel(name = "活动名称") + private String actTitle; + + @Excel(name = "用户ID") + private Long userId; + + @Excel(name = "用户名") + private String userName; + + @Excel(name = "反应类型", dictType = "ams_reaction_type") + private String reactionType; + + @Excel(name = "备注") + private String remark; + + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private String createTime; + + public Long getReactionId() { + return reactionId; + } + + public void setReactionId(Long reactionId) { + this.reactionId = reactionId; + } + + public Long getActId() { + return actId; + } + + public void setActId(Long actId) { + this.actId = actId; + } + + public String getActTitle() { + return actTitle; + } + + public void setActTitle(String actTitle) { + this.actTitle = actTitle; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getReactionType() { + return reactionType; + } + + public void setReactionType(String reactionType) { + this.reactionType = reactionType; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationGetVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationGetVO.java new file mode 100644 index 00000000..538e7808 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationGetVO.java @@ -0,0 +1,69 @@ +package com.ruoyi.sams.ams.domain.vo; + +import java.util.Date; + +public class AmsRegistrationGetVO { + private Long actId; + private Long userId; + private String role; + private String activityName; // 活动名称(模糊查询) + private String userName; // 用户名(模糊查询) + private Date registerTime; + private Date attendTime; + + public Long getActId() { + return actId; + } + + public void setActId(Long actId) { + this.actId = actId; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getActivityName() { + return activityName; + } + + public void setActivityName(String activityName) { + this.activityName = activityName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public Date getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(Date registerTime) { + this.registerTime = registerTime; + } + + public Date getAttendTime() { + return attendTime; + } + + public void setAttendTime(Date attendTime) { + this.attendTime = attendTime; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationVO.java new file mode 100644 index 00000000..2b3d3abb --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/domain/vo/AmsRegistrationVO.java @@ -0,0 +1,162 @@ +package com.ruoyi.sams.ams.domain.vo; + +import com.ruoyi.common.annotation.Excel; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +public class AmsRegistrationVO { + @Excel(name = "报名ID") + private Long regId; + + @Excel(name = "活动ID") + private Long actId; + + @Excel(name = "活动名称") + private String activityName; + + @Excel(name = "用户ID") + private Long userId; + + @Excel(name = "用户姓名") + private String userName; + + @Excel(name = "报名角色") + private String role; + + @Excel(name = "报名状态") + private String status; + + @Excel(name = "报名时间", dateFormat = "yyyy-MM-dd") + private LocalDate registerTime; + + @Excel(name = "签到时间", dateFormat = "yyyy-MM-dd") + private LocalDate attendTime; + + @Excel(name = "创建人") + private String createBy; + + @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @Excel(name = "更新人") + private String updateBy; + + @Excel(name = "更新时间", dateFormat = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @Excel(name = "备注") + private String remark; + + public Long getRegId() { + return regId; + } + + public void setRegId(Long regId) { + this.regId = regId; + } + + public Long getActId() { + return actId; + } + + public void setActId(Long actId) { + this.actId = actId; + } + + public String getActivityName() { + return activityName; + } + + public void setActivityName(String activityName) { + this.activityName = activityName; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public LocalDate getRegisterTime() { + return registerTime; + } + + public void setRegisterTime(LocalDate registerTime) { + this.registerTime = registerTime; + } + + public LocalDate getAttendTime() { + return attendTime; + } + + public void setAttendTime(LocalDate attendTime) { + this.attendTime = attendTime; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public LocalDateTime getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsActivityMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsActivityMapper.java new file mode 100644 index 00000000..50835f8b --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsActivityMapper.java @@ -0,0 +1,75 @@ +package com.ruoyi.sams.ams.mapper; + +import java.util.List; + +import com.ruoyi.sams.ams.domain.vo.ActivityListVO; +import com.ruoyi.sams.ams.domain.AmsActivity; +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ui.domain.vo.ActivityQueryDTO; +import com.ruoyi.sams.ui.domain.vo.HotClubVO; +import org.apache.ibatis.annotations.Param; + +/** + * 活动列表Mapper接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface AmsActivityMapper +{ + /** + * 查询活动列表 + * + * @param actId 活动列表主键 + * @return 活动列表 + */ + public ActivityListVO selectAmsActivityByActId(Long actId); + + /** + * 查询活动列表列表 + * + * @param amsActivity 活动列表 + * @return 活动列表集合 + */ + public List selectAmsActivityList(ActivityListGetVO amsActivity); + + /** + * 新增活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + public int insertAmsActivity(AmsActivity amsActivity); + + /** + * 修改活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + public int updateAmsActivity(AmsActivity amsActivity); + + /** + * 删除活动列表 + * + * @param actId 活动列表主键 + * @return 结果 + */ + public int deleteAmsActivityByActId(Long actId); + + /** + * 批量删除活动列表 + * + * @param actIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAmsActivityByActIds(Long[] actIds); + + List selectBannerActivities(); + + List selectApprovedActivities(); + + List selectTopClubsByActivityCount(@Param("limit") int limit); + + List selectMyRegisteredActivities(@Param("userId") Long userId); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsCommentMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsCommentMapper.java new file mode 100644 index 00000000..63e92464 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsCommentMapper.java @@ -0,0 +1,70 @@ +package com.ruoyi.sams.ams.mapper; + +import java.util.List; +import com.ruoyi.sams.ams.domain.AmsComment; +import com.ruoyi.sams.ams.domain.vo.AmsCommentListVO; +import org.apache.ibatis.annotations.Param; + +/** + * 活动评论Mapper接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface AmsCommentMapper +{ + /** + * 查询活动评论 + * + * @param commentId 活动评论主键 + * @return 活动评论 + */ + public AmsComment selectAmsCommentByCommentId(Long commentId); + + /** + * 查询活动评论列表 + * + * @param amsComment 活动评论 + * @return 活动评论集合 + */ + public List selectAmsCommentList(AmsCommentListVO amsComment); + + /** + * 新增活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + public int insertAmsComment(AmsComment amsComment); + + /** + * 修改活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + public int updateAmsComment(AmsComment amsComment); + + /** + * 删除活动评论 + * + * @param commentId 活动评论主键 + * @return 结果 + */ + public int deleteAmsCommentByCommentId(Long commentId); + + /** + * 批量删除活动评论 + * + * @param commentIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAmsCommentByCommentIds(Long[] commentIds); + + /** + * 查询某个活动下的评论(分页用) + * @param actId 活动ID + * @return 评论列表 + */ + List selectCommentListByActId(@Param("actId") Long actId); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsReactionMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsReactionMapper.java new file mode 100644 index 00000000..978c884f --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsReactionMapper.java @@ -0,0 +1,74 @@ +package com.ruoyi.sams.ams.mapper; + +import java.util.List; +import java.util.Map; + +import com.ruoyi.sams.ams.domain.AmsReaction; +import com.ruoyi.sams.ams.domain.vo.AmsReactionVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 点赞记录Mapper接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Mapper +public interface AmsReactionMapper +{ + /** + * 查询点赞记录 + * + * @param reactionId 点赞记录主键 + * @return 点赞记录 + */ + public AmsReaction selectAmsReactionByReactionId(Long reactionId); + + /** + * 查询点赞记录列表 + * + * @param amsReaction 点赞记录 + * @return 点赞记录集合 + */ + public List selectAmsReactionList(AmsReactionVO amsReaction); + + /** + * 新增点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + public int insertAmsReaction(AmsReaction amsReaction); + + /** + * 修改点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + public int updateAmsReaction(AmsReaction amsReaction); + + /** + * 删除点赞记录 + * + * @param reactionId 点赞记录主键 + * @return 结果 + */ + public int deleteAmsReactionByReactionId(Long reactionId); + + /** + * 批量删除点赞记录 + * + * @param reactionIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAmsReactionByReactionIds(Long[] reactionIds); + + /** + * 查询某活动的点赞/点踩统计 + * @param actId 活动ID + * @return 每种类型和数量 + */ + List> countReactionByType(@Param("actId") Long actId); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsRegistrationMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsRegistrationMapper.java new file mode 100644 index 00000000..0e01fc37 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/mapper/AmsRegistrationMapper.java @@ -0,0 +1,61 @@ +package com.ruoyi.sams.ams.mapper; + +import java.util.List; +import com.ruoyi.sams.ams.domain.AmsRegistration; + +/** + * 活动报名Mapper接口 + * + * @author ruoyi + * @date 2025-05-08 + */ +public interface AmsRegistrationMapper +{ + /** + * 查询活动报名 + * + * @param regId 活动报名主键 + * @return 活动报名 + */ + public AmsRegistration selectAmsRegistrationByRegId(Long regId); + + /** + * 查询活动报名列表 + * + * @param amsRegistration 活动报名 + * @return 活动报名集合 + */ + public List selectAmsRegistrationList(AmsRegistration amsRegistration); + + /** + * 新增活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + public int insertAmsRegistration(AmsRegistration amsRegistration); + + /** + * 修改活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + public int updateAmsRegistration(AmsRegistration amsRegistration); + + /** + * 删除活动报名 + * + * @param regId 活动报名主键 + * @return 结果 + */ + public int deleteAmsRegistrationByRegId(Long regId); + + /** + * 批量删除活动报名 + * + * @param regIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAmsRegistrationByRegIds(Long[] regIds); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsActivityService.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsActivityService.java new file mode 100644 index 00000000..446a9e0d --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsActivityService.java @@ -0,0 +1,84 @@ +package com.ruoyi.sams.ams.service; + +import java.util.List; + +import com.ruoyi.sams.ams.domain.AmsActivity; +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ams.domain.vo.ActivityListVO; +import com.ruoyi.sams.ui.domain.vo.ActivityQueryDTO; +import com.ruoyi.sams.ui.domain.vo.HotClubVO; + +/** + * 活动列表Service接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface IAmsActivityService +{ + /** + * 查询活动列表 + * + * @param actId 活动列表主键 + * @return 活动列表 + */ + public ActivityListVO selectAmsActivityByActId(Long actId); + + /** + * 查询活动列表列表 + * + * @param amsActivity 活动列表 + * @return 活动列表集合 + */ + public List selectAmsActivityList(ActivityListGetVO amsActivity); + + /** + * 新增活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + public int insertAmsActivity(AmsActivity amsActivity); + + /** + * 修改活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + public int updateAmsActivity(AmsActivity amsActivity); + + /** + * 批量删除活动列表 + * + * @param actIds 需要删除的活动列表主键集合 + * @return 结果 + */ + public int deleteAmsActivityByActIds(Long[] actIds); + + /** + * 删除活动列表信息 + * + * @param actId 活动列表主键 + * @return 结果 + */ + public int deleteAmsActivityByActId(Long actId); + + /** + * 获取轮播图活动(最多4条) + */ + List listBannerActivities(); + + /** + * 获取分页活动列表(已审批通过,按开始时间排序) + */ + List listApprovedActivities(); + + /** + * 获取活动最多的前4个社团 + */ + List listTop4ByActivityCount(); + + List selectMyRegisteredActivities(Long userId); + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsCommentService.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsCommentService.java new file mode 100644 index 00000000..77a193ac --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsCommentService.java @@ -0,0 +1,72 @@ +package com.ruoyi.sams.ams.service; + +import java.util.List; + +import com.ruoyi.sams.ams.domain.AmsComment; +import com.ruoyi.sams.ams.domain.vo.AmsCommentListVO; + +/** + * 活动评论Service接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface IAmsCommentService +{ + /** + * 查询活动评论 + * + * @param commentId 活动评论主键 + * @return 活动评论 + */ + public AmsComment selectAmsCommentByCommentId(Long commentId); + + /** + * 查询活动评论列表 + * + * @param amsComment 活动评论 + * @return 活动评论集合 + */ + public List selectAmsCommentList(AmsCommentListVO amsComment); + + /** + * 新增活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + public int insertAmsComment(AmsComment amsComment); + + /** + * 修改活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + public int updateAmsComment(AmsComment amsComment); + + /** + * 批量删除活动评论 + * + * @param commentIds 需要删除的活动评论主键集合 + * @return 结果 + */ + public int deleteAmsCommentByCommentIds(Long[] commentIds); + + /** + * 删除活动评论信息 + * + * @param commentId 活动评论主键 + * @return 结果 + */ + public int deleteAmsCommentByCommentId(Long commentId); + + /** + * 分页查询指定活动下的评论列表 + * @param actId 活动ID + * @return 评论列表 + */ + List selectCommentListByActId(Long actId); + + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsReactionService.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsReactionService.java new file mode 100644 index 00000000..4b5a7b44 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsReactionService.java @@ -0,0 +1,71 @@ +package com.ruoyi.sams.ams.service; + +import java.util.List; +import java.util.Map; + +import com.ruoyi.sams.ams.domain.AmsReaction; +import com.ruoyi.sams.ams.domain.vo.AmsReactionVO; + +/** + * 点赞记录Service接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface IAmsReactionService +{ + /** + * 查询点赞记录 + * + * @param reactionId 点赞记录主键 + * @return 点赞记录 + */ + public AmsReaction selectAmsReactionByReactionId(Long reactionId); + + /** + * 查询点赞记录列表 + * + * @param amsReaction 点赞记录 + * @return 点赞记录集合 + */ + public List selectAmsReactionList(AmsReactionVO amsReaction); + + /** + * 新增点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + public int insertAmsReaction(AmsReaction amsReaction); + + /** + * 修改点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + public int updateAmsReaction(AmsReaction amsReaction); + + /** + * 批量删除点赞记录 + * + * @param reactionIds 需要删除的点赞记录主键集合 + * @return 结果 + */ + public int deleteAmsReactionByReactionIds(Long[] reactionIds); + + /** + * 删除点赞记录信息 + * + * @param reactionId 点赞记录主键 + * @return 结果 + */ + public int deleteAmsReactionByReactionId(Long reactionId); + + /** + * 获取活动点赞统计(like/dislike 数量) + * @param actId 活动ID + * @return Map:{"like": 12, "dislike": 3} + */ + Map getReactionStats(Long actId); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsRegistrationService.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsRegistrationService.java new file mode 100644 index 00000000..2595736f --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/IAmsRegistrationService.java @@ -0,0 +1,61 @@ +package com.ruoyi.sams.ams.service; + +import java.util.List; +import com.ruoyi.sams.ams.domain.AmsRegistration; + +/** + * 活动报名Service接口 + * + * @author ruoyi + * @date 2025-05-08 + */ +public interface IAmsRegistrationService +{ + /** + * 查询活动报名 + * + * @param regId 活动报名主键 + * @return 活动报名 + */ + public AmsRegistration selectAmsRegistrationByRegId(Long regId); + + /** + * 查询活动报名列表 + * + * @param amsRegistration 活动报名 + * @return 活动报名集合 + */ + public List selectAmsRegistrationList(AmsRegistration amsRegistration); + + /** + * 新增活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + public int insertAmsRegistration(AmsRegistration amsRegistration); + + /** + * 修改活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + public int updateAmsRegistration(AmsRegistration amsRegistration); + + /** + * 批量删除活动报名 + * + * @param regIds 需要删除的活动报名主键集合 + * @return 结果 + */ + public int deleteAmsRegistrationByRegIds(Long[] regIds); + + /** + * 删除活动报名信息 + * + * @param regId 活动报名主键 + * @return 结果 + */ + public int deleteAmsRegistrationByRegId(Long regId); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsActivityServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsActivityServiceImpl.java new file mode 100644 index 00000000..9e469df4 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsActivityServiceImpl.java @@ -0,0 +1,126 @@ +package com.ruoyi.sams.ams.service.impl; + +import java.util.List; +import java.util.Map; + +import com.ruoyi.sams.ams.domain.AmsActivity; +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ams.domain.vo.ActivityListVO; +import com.ruoyi.sams.ams.mapper.AmsActivityMapper; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.sams.ui.domain.vo.ActivityQueryDTO; +import com.ruoyi.sams.ui.domain.vo.HotClubVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.sams.ams.service.IAmsActivityService; + +/** + * 活动列表Service业务层处理 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Service +public class AmsActivityServiceImpl implements IAmsActivityService +{ + @Autowired + private AmsActivityMapper amsActivityMapper; + + /** + * 查询活动列表 + * + * @param actId 活动列表主键 + * @return 活动列表 + */ + @Override + public ActivityListVO selectAmsActivityByActId(Long actId) + { + return amsActivityMapper.selectAmsActivityByActId(actId); + } + + /** + * 查询活动列表列表 + * + * @param amsActivity 活动列表 + * @return 活动列表 + */ + @Override + public List selectAmsActivityList(ActivityListGetVO amsActivity) + { + return amsActivityMapper.selectAmsActivityList(amsActivity); + } + + /** + * 新增活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + @Override + public int insertAmsActivity(AmsActivity amsActivity) + { + amsActivity.setCreateTime(DateUtils.getNowDate()); + return amsActivityMapper.insertAmsActivity(amsActivity); + } + + /** + * 修改活动列表 + * + * @param amsActivity 活动列表 + * @return 结果 + */ + @Override + public int updateAmsActivity(AmsActivity amsActivity) + { + amsActivity.setUpdateTime(DateUtils.getNowDate()); + return amsActivityMapper.updateAmsActivity(amsActivity); + } + + /** + * 批量删除活动列表 + * + * @param actIds 需要删除的活动列表主键 + * @return 结果 + */ + @Override + public int deleteAmsActivityByActIds(Long[] actIds) + { + return amsActivityMapper.deleteAmsActivityByActIds(actIds); + } + + /** + * 删除活动列表信息 + * + * @param actId 活动列表主键 + * @return 结果 + */ + @Override + public int deleteAmsActivityByActId(Long actId) + { + return amsActivityMapper.deleteAmsActivityByActId(actId); + } + + @Override + public List listBannerActivities() { + System.out.println(amsActivityMapper.selectBannerActivities()); + return amsActivityMapper.selectBannerActivities(); + } + + @Override + public List listApprovedActivities() { + System.out.println(amsActivityMapper.selectApprovedActivities()); + return amsActivityMapper.selectApprovedActivities(); + } + + @Override + public List listTop4ByActivityCount() { + System.out.println(amsActivityMapper.selectTopClubsByActivityCount(4)); + return amsActivityMapper.selectTopClubsByActivityCount(4); + } + + @Override + public List selectMyRegisteredActivities(Long userId ) { + return amsActivityMapper.selectMyRegisteredActivities(userId); + } + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsCommentServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsCommentServiceImpl.java new file mode 100644 index 00000000..adf2fc6b --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsCommentServiceImpl.java @@ -0,0 +1,103 @@ +package com.ruoyi.sams.ams.service.impl; + +import java.util.List; + +import com.ruoyi.sams.ams.domain.AmsComment; +import com.ruoyi.sams.ams.domain.vo.AmsCommentListVO; +import com.ruoyi.sams.ams.mapper.AmsCommentMapper; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.sams.ams.service.IAmsCommentService; + +/** + * 活动评论Service业务层处理 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Service +public class AmsCommentServiceImpl implements IAmsCommentService +{ + @Autowired + private AmsCommentMapper amsCommentMapper; + + /** + * 查询活动评论 + * + * @param commentId 活动评论主键 + * @return 活动评论 + */ + @Override + public AmsComment selectAmsCommentByCommentId(Long commentId) + { + return amsCommentMapper.selectAmsCommentByCommentId(commentId); + } + + /** + * 查询活动评论列表 + * + * @param amsComment 活动评论 + * @return 活动评论 + */ + @Override + public List selectAmsCommentList(AmsCommentListVO amsComment) + { + return amsCommentMapper.selectAmsCommentList(amsComment); + } + + /** + * 新增活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + @Override + public int insertAmsComment(AmsComment amsComment) + { + amsComment.setCreateTime(DateUtils.getNowDate()); + return amsCommentMapper.insertAmsComment(amsComment); + } + + /** + * 修改活动评论 + * + * @param amsComment 活动评论 + * @return 结果 + */ + @Override + public int updateAmsComment(AmsComment amsComment) + { + amsComment.setUpdateTime(DateUtils.getNowDate()); + return amsCommentMapper.updateAmsComment(amsComment); + } + + /** + * 批量删除活动评论 + * + * @param commentIds 需要删除的活动评论主键 + * @return 结果 + */ + @Override + public int deleteAmsCommentByCommentIds(Long[] commentIds) + { + return amsCommentMapper.deleteAmsCommentByCommentIds(commentIds); + } + + /** + * 删除活动评论信息 + * + * @param commentId 活动评论主键 + * @return 结果 + */ + @Override + public int deleteAmsCommentByCommentId(Long commentId) + { + return amsCommentMapper.deleteAmsCommentByCommentId(commentId); + } + + @Override + public List selectCommentListByActId(Long actId) { + return amsCommentMapper.selectCommentListByActId(actId); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsReactionServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsReactionServiceImpl.java new file mode 100644 index 00000000..d221e49d --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsReactionServiceImpl.java @@ -0,0 +1,116 @@ +package com.ruoyi.sams.ams.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.ruoyi.sams.ams.domain.AmsReaction; +import com.ruoyi.sams.ams.mapper.AmsReactionMapper; +import com.ruoyi.sams.ams.domain.vo.AmsReactionVO; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.sams.ams.service.IAmsReactionService; + +/** + * 点赞记录Service业务层处理 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Service +public class AmsReactionServiceImpl implements IAmsReactionService +{ + @Autowired + private AmsReactionMapper amsReactionMapper; + + /** + * 查询点赞记录 + * + * @param reactionId 点赞记录主键 + * @return 点赞记录 + */ + @Override + public AmsReaction selectAmsReactionByReactionId(Long reactionId) + { + return amsReactionMapper.selectAmsReactionByReactionId(reactionId); + } + + /** + * 查询点赞记录列表 + * + * @param amsReaction 点赞记录 + * @return 点赞记录 + */ + @Override + public List selectAmsReactionList(AmsReactionVO amsReaction) + { + return amsReactionMapper.selectAmsReactionList(amsReaction); + } + + /** + * 新增点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + @Override + public int insertAmsReaction(AmsReaction amsReaction) + { + amsReaction.setCreateTime(DateUtils.getNowDate()); + return amsReactionMapper.insertAmsReaction(amsReaction); + } + + /** + * 修改点赞记录 + * + * @param amsReaction 点赞记录 + * @return 结果 + */ + @Override + public int updateAmsReaction(AmsReaction amsReaction) + { + amsReaction.setUpdateTime(DateUtils.getNowDate()); + return amsReactionMapper.updateAmsReaction(amsReaction); + } + + /** + * 批量删除点赞记录 + * + * @param reactionIds 需要删除的点赞记录主键 + * @return 结果 + */ + @Override + public int deleteAmsReactionByReactionIds(Long[] reactionIds) + { + return amsReactionMapper.deleteAmsReactionByReactionIds(reactionIds); + } + + /** + * 删除点赞记录信息 + * + * @param reactionId 点赞记录主键 + * @return 结果 + */ + @Override + public int deleteAmsReactionByReactionId(Long reactionId) + { + return amsReactionMapper.deleteAmsReactionByReactionId(reactionId); + } + + @Override + public Map getReactionStats(Long actId) { + List> rawStats = amsReactionMapper.countReactionByType(actId); + Map result = new HashMap<>(); + result.put("like", 0); + result.put("dislike", 0); + + for (Map row : rawStats) { + String type = (String) row.get("reaction_type"); + Long count = (Long) row.get("cnt"); + result.put(type, count.intValue()); + } + + return result; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsRegistrationServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsRegistrationServiceImpl.java new file mode 100644 index 00000000..5f5fd7f8 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ams/service/impl/AmsRegistrationServiceImpl.java @@ -0,0 +1,96 @@ +package com.ruoyi.sams.ams.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.sams.ams.mapper.AmsRegistrationMapper; +import com.ruoyi.sams.ams.domain.AmsRegistration; +import com.ruoyi.sams.ams.service.IAmsRegistrationService; + +/** + * 活动报名Service业务层处理 + * + * @author ruoyi + * @date 2025-05-08 + */ +@Service +public class AmsRegistrationServiceImpl implements IAmsRegistrationService +{ + @Autowired + private AmsRegistrationMapper amsRegistrationMapper; + + /** + * 查询活动报名 + * + * @param regId 活动报名主键 + * @return 活动报名 + */ + @Override + public AmsRegistration selectAmsRegistrationByRegId(Long regId) + { + return amsRegistrationMapper.selectAmsRegistrationByRegId(regId); + } + + /** + * 查询活动报名列表 + * + * @param amsRegistration 活动报名 + * @return 活动报名 + */ + @Override + public List selectAmsRegistrationList(AmsRegistration amsRegistration) + { + return amsRegistrationMapper.selectAmsRegistrationList(amsRegistration); + } + + /** + * 新增活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + @Override + public int insertAmsRegistration(AmsRegistration amsRegistration) + { + amsRegistration.setCreateTime(DateUtils.getNowDate()); + return amsRegistrationMapper.insertAmsRegistration(amsRegistration); + } + + /** + * 修改活动报名 + * + * @param amsRegistration 活动报名 + * @return 结果 + */ + @Override + public int updateAmsRegistration(AmsRegistration amsRegistration) + { + amsRegistration.setUpdateTime(DateUtils.getNowDate()); + return amsRegistrationMapper.updateAmsRegistration(amsRegistration); + } + + /** + * 批量删除活动报名 + * + * @param regIds 需要删除的活动报名主键 + * @return 结果 + */ + @Override + public int deleteAmsRegistrationByRegIds(Long[] regIds) + { + return amsRegistrationMapper.deleteAmsRegistrationByRegIds(regIds); + } + + /** + * 删除活动报名信息 + * + * @param regId 活动报名主键 + * @return 结果 + */ + @Override + public int deleteAmsRegistrationByRegId(Long regId) + { + return amsRegistrationMapper.deleteAmsRegistrationByRegId(regId); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubController.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubController.java new file mode 100644 index 00000000..fcf16969 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubController.java @@ -0,0 +1,106 @@ +package com.ruoyi.sams.sms.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.sams.sms.domain.SmsClub; +import com.ruoyi.sams.sms.domain.vo.ClubReturnVO; +import com.ruoyi.sams.sms.service.ISmsClubService; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 社团信息Controller + * + * @author ruoyi + * @date 2025-05-06 + */ +@RestController +@RequestMapping("/sms/club") +public class SmsClubController extends BaseController +{ + @Autowired + private ISmsClubService smsClubService; + + /** + * 查询社团信息列表 + */ + @PreAuthorize("@ss.hasPermi('sms:club:list')") + @GetMapping("/list") + public TableDataInfo list(SmsClub smsClub) + { + startPage(); + List list = smsClubService.selectSmsClubList(smsClub); + return getDataTable(list); + } + + /** + * 导出社团信息列表 + */ + @PreAuthorize("@ss.hasPermi('sms:club:export')") + @Log(title = "社团信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, SmsClub smsClub) + { + List list = smsClubService.selectSmsClubList(smsClub); + ExcelUtil util = new ExcelUtil<>(ClubReturnVO.class); + util.exportExcel(response, list, "社团信息数据"); + } + + /** + * 获取社团信息详细信息 + */ + @PreAuthorize("@ss.hasPermi('sms:club:query')") + @GetMapping(value = "/{clubId}") + public AjaxResult getInfo(@PathVariable("clubId") Long clubId) + { + return success(smsClubService.selectSmsClubByClubId(clubId)); + } + + /** + * 新增社团信息 + */ + @PreAuthorize("@ss.hasPermi('sms:club:add')") + @Log(title = "社团信息", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SmsClub smsClub) + { + return toAjax(smsClubService.insertSmsClub(smsClub)); + } + + /** + * 修改社团信息 + */ + @PreAuthorize("@ss.hasPermi('sms:club:edit')") + @Log(title = "社团信息", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SmsClub smsClub) + { + return toAjax(smsClubService.updateSmsClub(smsClub)); + } + + /** + * 删除社团信息 + */ + @PreAuthorize("@ss.hasPermi('sms:club:remove')") + @Log(title = "社团信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{clubIds}") + public AjaxResult remove(@PathVariable Long[] clubIds) + { + return toAjax(smsClubService.deleteSmsClubByClubIds(clubIds)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubUserController.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubUserController.java new file mode 100644 index 00000000..95fe1e06 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/controller/SmsClubUserController.java @@ -0,0 +1,107 @@ +package com.ruoyi.sams.sms.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.sams.sms.domain.SmsClubUser; +import com.ruoyi.sams.sms.domain.vo.ClubUserReturnVO; +import com.ruoyi.sams.sms.domain.vo.ClubUserSelectVO; +import com.ruoyi.sams.sms.service.ISmsClubUserService; +import org.springframework.security.access.prepost.PreAuthorize; +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.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 成员管理Controller + * + * @author ruoyi + * @date 2025-05-06 + */ +@RestController +@RequestMapping("/sms/user") +public class SmsClubUserController extends BaseController +{ + @Autowired + private ISmsClubUserService smsClubUserService; + + /** + * 查询成员管理列表 + */ + @PreAuthorize("@ss.hasPermi('sms:user:list')") + @GetMapping("/list") + public TableDataInfo list(ClubUserSelectVO smsClubUser) + { + startPage(); + List list = smsClubUserService.selectSmsClubUserList(smsClubUser); + return getDataTable(list); + } + + /** + * 导出成员管理列表 + */ + @PreAuthorize("@ss.hasPermi('sms:user:export')") + @Log(title = "成员管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ClubUserSelectVO smsClubUser) + { + List list = smsClubUserService.selectSmsClubUserList(smsClubUser); + ExcelUtil util = new ExcelUtil(ClubUserReturnVO.class); + util.exportExcel(response, list, "成员管理数据"); + } + + /** + * 获取成员管理详细信息 + */ + @PreAuthorize("@ss.hasPermi('sms:user:query')") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(smsClubUserService.selectSmsClubUserById(id)); + } + + /** + * 新增成员管理 + */ + @PreAuthorize("@ss.hasPermi('sms:user:add')") + @Log(title = "成员管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody SmsClubUser smsClubUser) + { + return toAjax(smsClubUserService.insertSmsClubUser(smsClubUser)); + } + + /** + * 修改成员管理 + */ + @PreAuthorize("@ss.hasPermi('sms:user:edit')") + @Log(title = "成员管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody SmsClubUser smsClubUser) + { + return toAjax(smsClubUserService.updateSmsClubUser(smsClubUser)); + } + + /** + * 删除成员管理 + */ + @PreAuthorize("@ss.hasPermi('sms:user:remove')") + @Log(title = "成员管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(smsClubUserService.deleteSmsClubUserByIds(ids)); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClub.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClub.java new file mode 100644 index 00000000..e3a0065d --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClub.java @@ -0,0 +1,146 @@ +package com.ruoyi.sams.sms.domain; + +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 社团信息对象 sms_club + * + * @author ruoyi + * @date 2025-05-06 + */ +public class SmsClub extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 社团ID */ + private Long clubId; + + /** 社团名称 */ + @Excel(name = "社团名称") + private String clubName; + + /** 社团简介 */ + private String description; + + /** 社团类型 */ + @Excel(name = "社团类型") + private String category; + + /** 所属院系ID(sys_dept) */ + @Excel(name = "所属院系ID", readConverterExp = "s=ys_dept") + private Long deptId; + + /** 负责人ID(sys_user) */ + @Excel(name = "负责人ID", readConverterExp = "s=ys_user") + private Long leaderId; + + /** logo */ + @Excel(name = "logo") + private String logo; + + /** 状态 */ + @Excel(name = "状态") + private String status; + + public void setClubId(Long clubId) + { + this.clubId = clubId; + } + + public Long getClubId() + { + return clubId; + } + + public void setClubName(String clubName) + { + this.clubName = clubName; + } + + public String getClubName() + { + return clubName; + } + + public void setDescription(String description) + { + this.description = description; + } + + public String getDescription() + { + return description; + } + + public void setCategory(String category) + { + this.category = category; + } + + public String getCategory() + { + return category; + } + + public void setDeptId(Long deptId) + { + this.deptId = deptId; + } + + public Long getDeptId() + { + return deptId; + } + + public void setLeaderId(Long leaderId) + { + this.leaderId = leaderId; + } + + public Long getLeaderId() + { + return leaderId; + } + + public void setLogo(String logo) + { + this.logo = logo; + } + + public String getLogo() + { + return logo; + } + + public void setStatus(String status) + { + this.status = status; + } + + public String getStatus() + { + return status; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("clubId", getClubId()) + .append("clubName", getClubName()) + .append("description", getDescription()) + .append("category", getCategory()) + .append("deptId", getDeptId()) + .append("leaderId", getLeaderId()) + .append("logo", getLogo()) + .append("status", getStatus()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClubUser.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClubUser.java new file mode 100644 index 00000000..fa12ff45 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/SmsClubUser.java @@ -0,0 +1,105 @@ +package com.ruoyi.sams.sms.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.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 成员管理对象 sms_club_user + * + * @author ruoyi + * @date 2025-05-06 + */ +public class SmsClubUser extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 主键ID */ + private Long id; + + /** 用户ID */ + @Excel(name = "用户ID") + private Long userId; + + /** 社团ID */ + @Excel(name = "社团ID") + private Long clubId; + + /** 是否活跃 */ + @Excel(name = "是否活跃") + private Integer isActive; + + /** 加入社团时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "加入社团时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date joinDate; + + 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 setClubId(Long clubId) + { + this.clubId = clubId; + } + + public Long getClubId() + { + return clubId; + } + + public void setIsActive(Integer isActive) + { + this.isActive = isActive; + } + + public Integer getIsActive() + { + return isActive; + } + + public void setJoinDate(Date joinDate) + { + this.joinDate = joinDate; + } + + public Date getJoinDate() + { + return joinDate; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("userId", getUserId()) + .append("clubId", getClubId()) + .append("isActive", getIsActive()) + .append("joinDate", getJoinDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubReturnVO.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubReturnVO.java new file mode 100644 index 00000000..3d006124 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubReturnVO.java @@ -0,0 +1,141 @@ +package com.ruoyi.sams.sms.domain.vo; + +import java.io.Serializable; + +public class ClubReturnVO implements Serializable { + private Long clubId; + private String clubName; + private String description; + private String category; + private Long deptId; + private String deptName; // 院系名称 + private Long leaderId; + private String leaderName; // 负责人名称 + private String logo; + private String status; + private String remark; + private String createBy; + private String updateBy; + private String createTime; + private String updateTime; + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } + + public String getClubName() { + return clubName; + } + + public void setClubName(String clubName) { + this.clubName = clubName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public Long getDeptId() { + return deptId; + } + + public void setDeptId(Long deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public Long getLeaderId() { + return leaderId; + } + + public void setLeaderId(Long leaderId) { + this.leaderId = leaderId; + } + + public String getLeaderName() { + return leaderName; + } + + public void setLeaderName(String leaderName) { + this.leaderName = leaderName; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserReturnVO.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserReturnVO.java new file mode 100644 index 00000000..6241fea6 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserReturnVO.java @@ -0,0 +1,71 @@ +package com.ruoyi.sams.sms.domain.vo; + +import com.ruoyi.common.core.domain.BaseEntity; + +import java.time.LocalDateTime; + +public class ClubUserReturnVO extends BaseEntity { + private Long id; + private Long userId; + private String userName; + private Long clubId; + private String clubName; + private Integer isActive; + private LocalDateTime joinDate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } + + public String getClubName() { + return clubName; + } + + public void setClubName(String clubName) { + this.clubName = clubName; + } + + public Integer getIsActive() { + return isActive; + } + + public void setIsActive(Integer isActive) { + this.isActive = isActive; + } + + public LocalDateTime getJoinDate() { + return joinDate; + } + + public void setJoinDate(LocalDateTime joinDate) { + this.joinDate = joinDate; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserSelectVO.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserSelectVO.java new file mode 100644 index 00000000..ea296f9d --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/domain/vo/ClubUserSelectVO.java @@ -0,0 +1,72 @@ +package com.ruoyi.sams.sms.domain.vo; + +/** + * 查询条件封装:社团成员查询 VO + */ +public class ClubUserSelectVO { + /** + * 用户名(模糊查询) + */ + private String userName; + + /** + * 社团名称(模糊查询) + */ + private String clubName; + + /** + * 是否活跃 + */ + private Integer isActive; + + /** + * 用户ID(精确查询) + */ + private Long userId; + + /** + * 社团ID(精确查询) + */ + private Long clubId; + + // ---------- Getters & Setters ---------- + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getClubName() { + return clubName; + } + + public void setClubName(String clubName) { + this.clubName = clubName; + } + + public Integer getIsActive() { + return isActive; + } + + public void setIsActive(Integer isActive) { + this.isActive = isActive; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubMapper.java new file mode 100644 index 00000000..9275aa75 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.sams.sms.mapper; + +import java.util.List; + +import com.ruoyi.sams.sms.domain.SmsClub; +import com.ruoyi.sams.sms.domain.vo.ClubReturnVO; + +/** + * 社团信息Mapper接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface SmsClubMapper +{ + /** + * 查询社团信息 + * + * @param clubId 社团信息主键 + * @return 社团信息 + */ + public ClubReturnVO selectSmsClubByClubId(Long clubId); + + /** + * 查询社团信息列表 + * + * @param smsClub 社团信息 + * @return 社团信息集合 + */ + public List selectSmsClubList(SmsClub smsClub); + + /** + * 新增社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + public int insertSmsClub(SmsClub smsClub); + + /** + * 修改社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + public int updateSmsClub(SmsClub smsClub); + + /** + * 删除社团信息 + * + * @param clubId 社团信息主键 + * @return 结果 + */ + public int deleteSmsClubByClubId(Long clubId); + + /** + * 批量删除社团信息 + * + * @param clubIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSmsClubByClubIds(Long[] clubIds); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubUserMapper.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubUserMapper.java new file mode 100644 index 00000000..59821cec --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/mapper/SmsClubUserMapper.java @@ -0,0 +1,65 @@ +package com.ruoyi.sams.sms.mapper; + +import java.util.List; + +import com.ruoyi.sams.sms.domain.vo.ClubUserReturnVO; +import com.ruoyi.sams.sms.domain.SmsClubUser; +import com.ruoyi.sams.sms.domain.vo.ClubUserSelectVO; +import org.apache.ibatis.annotations.Param; + +/** + * 成员管理Mapper接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface SmsClubUserMapper +{ + /** + * 查询成员管理 + * + * @param id 成员管理主键 + * @return 成员管理 + */ + public ClubUserReturnVO selectSmsClubUserById(Long id); + + /** + * 查询成员管理列表 + * + * @param smsClubUser 成员管理 + * @return 成员管理集合 + */ + public List selectSmsClubUserList(@Param("vo") ClubUserSelectVO smsClubUser); + + /** + * 新增成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + public int insertSmsClubUser(SmsClubUser smsClubUser); + + /** + * 修改成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + public int updateSmsClubUser(SmsClubUser smsClubUser); + + /** + * 删除成员管理 + * + * @param id 成员管理主键 + * @return 结果 + */ + public int deleteSmsClubUserById(Long id); + + /** + * 批量删除成员管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteSmsClubUserByIds(Long[] ids); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubService.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubService.java new file mode 100644 index 00000000..4011a51a --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubService.java @@ -0,0 +1,64 @@ +package com.ruoyi.sams.sms.service; + +import java.util.List; +import com.ruoyi.sams.sms.domain.SmsClub; +import com.ruoyi.sams.sms.domain.vo.ClubReturnVO; +import com.ruoyi.sams.ui.domain.vo.HotClubVO; + +/** + * 社团信息Service接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface ISmsClubService +{ + /** + * 查询社团信息 + * + * @param clubId 社团信息主键 + * @return 社团信息 + */ + public ClubReturnVO selectSmsClubByClubId(Long clubId); + + /** + * 查询社团信息列表 + * + * @param smsClub 社团信息 + * @return 社团信息集合 + */ + public List selectSmsClubList(SmsClub smsClub); + + /** + * 新增社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + public int insertSmsClub(SmsClub smsClub); + + /** + * 修改社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + public int updateSmsClub(SmsClub smsClub); + + /** + * 批量删除社团信息 + * + * @param clubIds 需要删除的社团信息主键集合 + * @return 结果 + */ + public int deleteSmsClubByClubIds(Long[] clubIds); + + /** + * 删除社团信息信息 + * + * @param clubId 社团信息主键 + * @return 结果 + */ + public int deleteSmsClubByClubId(Long clubId); + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubUserService.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubUserService.java new file mode 100644 index 00000000..12f55eff --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/ISmsClubUserService.java @@ -0,0 +1,64 @@ +package com.ruoyi.sams.sms.service; + +import java.util.List; + +import com.ruoyi.sams.sms.domain.vo.ClubUserReturnVO; +import com.ruoyi.sams.sms.domain.SmsClubUser; +import com.ruoyi.sams.sms.domain.vo.ClubUserSelectVO; + +/** + * 成员管理Service接口 + * + * @author ruoyi + * @date 2025-05-06 + */ +public interface ISmsClubUserService +{ + /** + * 查询成员管理 + * + * @param id 成员管理主键 + * @return 成员管理 + */ + public ClubUserReturnVO selectSmsClubUserById(Long id); + + /** + * 查询成员管理列表 + * + * @param smsClubUser 成员管理 + * @return 成员管理集合 + */ + public List selectSmsClubUserList(ClubUserSelectVO smsClubUser); + + /** + * 新增成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + public int insertSmsClubUser(SmsClubUser smsClubUser); + + /** + * 修改成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + public int updateSmsClubUser(SmsClubUser smsClubUser); + + /** + * 批量删除成员管理 + * + * @param ids 需要删除的成员管理主键集合 + * @return 结果 + */ + public int deleteSmsClubUserByIds(Long[] ids); + + /** + * 删除成员管理信息 + * + * @param id 成员管理主键 + * @return 结果 + */ + public int deleteSmsClubUserById(Long id); +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubServiceImpl.java new file mode 100644 index 00000000..2e291d40 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubServiceImpl.java @@ -0,0 +1,99 @@ +package com.ruoyi.sams.sms.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.sams.sms.domain.SmsClub; +import com.ruoyi.sams.sms.domain.vo.ClubReturnVO; +import com.ruoyi.sams.sms.mapper.SmsClubMapper; +import com.ruoyi.sams.sms.service.ISmsClubService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 社团信息Service业务层处理 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Service +public class SmsClubServiceImpl implements ISmsClubService +{ + @Autowired + private SmsClubMapper smsClubMapper; + + /** + * 查询社团信息 + * + * @param clubId 社团信息主键 + * @return 社团信息 + */ + @Override + public ClubReturnVO selectSmsClubByClubId(Long clubId) + { + return smsClubMapper.selectSmsClubByClubId(clubId); + } + + /** + * 查询社团信息列表 + * + * @param smsClub 社团信息 + * @return 社团信息 + */ + @Override + public List selectSmsClubList(SmsClub smsClub) + { + return smsClubMapper.selectSmsClubList(smsClub); + } + + /** + * 新增社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + @Override + public int insertSmsClub(SmsClub smsClub) + { + smsClub.setCreateTime(DateUtils.getNowDate()); + return smsClubMapper.insertSmsClub(smsClub); + } + + /** + * 修改社团信息 + * + * @param smsClub 社团信息 + * @return 结果 + */ + @Override + public int updateSmsClub(SmsClub smsClub) + { + smsClub.setUpdateTime(DateUtils.getNowDate()); + return smsClubMapper.updateSmsClub(smsClub); + } + + /** + * 批量删除社团信息 + * + * @param clubIds 需要删除的社团信息主键 + * @return 结果 + */ + @Override + public int deleteSmsClubByClubIds(Long[] clubIds) + { + return smsClubMapper.deleteSmsClubByClubIds(clubIds); + } + + /** + * 删除社团信息信息 + * + * @param clubId 社团信息主键 + * @return 结果 + */ + @Override + public int deleteSmsClubByClubId(Long clubId) + { + return smsClubMapper.deleteSmsClubByClubId(clubId); + } + + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubUserServiceImpl.java b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubUserServiceImpl.java new file mode 100644 index 00000000..16429be7 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/sms/service/impl/SmsClubUserServiceImpl.java @@ -0,0 +1,98 @@ +package com.ruoyi.sams.sms.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.sams.sms.domain.SmsClubUser; +import com.ruoyi.sams.sms.domain.vo.ClubUserReturnVO; +import com.ruoyi.sams.sms.domain.vo.ClubUserSelectVO; +import com.ruoyi.sams.sms.mapper.SmsClubUserMapper; +import com.ruoyi.sams.sms.service.ISmsClubUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 成员管理Service业务层处理 + * + * @author ruoyi + * @date 2025-05-06 + */ +@Service +public class SmsClubUserServiceImpl implements ISmsClubUserService +{ + @Autowired + private SmsClubUserMapper smsClubUserMapper; + + /** + * 查询成员管理 + * + * @param id 成员管理主键 + * @return 成员管理 + */ + @Override + public ClubUserReturnVO selectSmsClubUserById(Long id) + { + return smsClubUserMapper.selectSmsClubUserById(id); + } + + /** + * 查询成员管理列表 + * + * @param smsClubUser 成员管理 + * @return 成员管理 + */ + @Override + public List selectSmsClubUserList(ClubUserSelectVO smsClubUser) + { + return smsClubUserMapper.selectSmsClubUserList(smsClubUser); + } + + /** + * 新增成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + @Override + public int insertSmsClubUser(SmsClubUser smsClubUser) + { + smsClubUser.setCreateTime(DateUtils.getNowDate()); + return smsClubUserMapper.insertSmsClubUser(smsClubUser); + } + + /** + * 修改成员管理 + * + * @param smsClubUser 成员管理 + * @return 结果 + */ + @Override + public int updateSmsClubUser(SmsClubUser smsClubUser) + { + smsClubUser.setUpdateTime(DateUtils.getNowDate()); + return smsClubUserMapper.updateSmsClubUser(smsClubUser); + } + + /** + * 批量删除成员管理 + * + * @param ids 需要删除的成员管理主键 + * @return 结果 + */ + @Override + public int deleteSmsClubUserByIds(Long[] ids) + { + return smsClubUserMapper.deleteSmsClubUserByIds(ids); + } + + /** + * 删除成员管理信息 + * + * @param id 成员管理主键 + * @return 结果 + */ + @Override + public int deleteSmsClubUserById(Long id) + { + return smsClubUserMapper.deleteSmsClubUserById(id); + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/DashboardController.java b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/DashboardController.java new file mode 100644 index 00000000..adc00d50 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/DashboardController.java @@ -0,0 +1,61 @@ +package com.ruoyi.sams.ui.controller; + + +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ams.service.IAmsActivityService; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.sams.sms.domain.SmsClub; +import com.ruoyi.sams.sms.service.ISmsClubService; +import com.ruoyi.system.service.ISysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.Map; + +/** + * 首页统计控制器 + */ +@RestController +@RequestMapping("/sams/dashboard") +public class DashboardController { + + @Autowired + private IAmsActivityService activityService; + + @Autowired + private ISmsClubService clubService; + + @Autowired + private ISysUserService userService; + + @GetMapping("/list") + public AjaxResult getDashboardStats() { + // 所有活动数量 + int activityCount = activityService.selectAmsActivityList(new ActivityListGetVO()).size(); + + // 状态为待审批的活动数量 + ActivityListGetVO pendingVO = new ActivityListGetVO(); + pendingVO.setStatus("pending"); + int pendingCount = activityService.selectAmsActivityList(pendingVO).size(); + + // 社团数量 + int clubCount = clubService.selectSmsClubList(new SmsClub()).size(); + + // 用户数量 + int userCount = userService.selectUserList(new SysUser()).size(); + + Map data =new HashMap<>(); + + data.put("activityCount", activityCount); + data.put("pendingCount", pendingCount); + data.put("clubCount", clubCount); + data.put("userCount", userCount); + // 返回数据 + AjaxResult result = AjaxResult.success(); + result.put("data", data); + + return result; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontActivityController.java b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontActivityController.java new file mode 100644 index 00000000..04373321 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontActivityController.java @@ -0,0 +1,86 @@ +package com.ruoyi.sams.ui.controller; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.sams.ams.domain.AmsComment; +import com.ruoyi.sams.ams.domain.vo.ActivityListGetVO; +import com.ruoyi.sams.ams.domain.vo.ActivityListVO; +import com.ruoyi.sams.ams.service.IAmsActivityService; +import com.ruoyi.sams.ams.service.IAmsCommentService; +import com.ruoyi.sams.ams.service.IAmsReactionService; +import com.ruoyi.sams.ui.domain.vo.ActivityQueryDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/front/activity") +public class FrontActivityController extends BaseController { + + @Autowired + private IAmsActivityService activityService; + + @Autowired + private IAmsReactionService reactionService; + + @Autowired + private IAmsCommentService commentService; + + /** + * 获取轮播图活动(最多4条) + */ + @GetMapping("/banner") + public AjaxResult listBannerActivities() { + + return AjaxResult.success(activityService.listBannerActivities()); + } + + /** + * 分页获取活动列表(已审批通过,按开始时间升序) + */ + @GetMapping("/list") + public AjaxResult listActivities() { + return AjaxResult.success(activityService.listApprovedActivities()); + } + + /** + * 获取活动最多的前4个社团 + */ + @GetMapping("/hot") + public AjaxResult listHotClubs() { + return AjaxResult.success(activityService.listTop4ByActivityCount()); + } + + /** + * 获取活动点赞/点踩统计(不分页) + */ + @GetMapping("/reaction") + public AjaxResult getReactionStats(Long actId) { + return AjaxResult.success(reactionService.getReactionStats(actId)); + } + + /** + * 分页获取活动评论列表 + */ + @GetMapping("/comment") + public TableDataInfo listComments(Long actId) { + startPage(); // 启用分页 + List list = commentService.selectCommentListByActId(actId); + return getDataTable(list); + } + + /** + * 获取当前用户报名的活动(分页) + */ + @GetMapping("/my-regist") + public TableDataInfo listMyRegisteredActivities(Long userId) { + startPage(); + List list = activityService.selectMyRegisteredActivities(userId); + return getDataTable(list); + } + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontClubController.java b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontClubController.java new file mode 100644 index 00000000..a53d034a --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ui/controller/FrontClubController.java @@ -0,0 +1,18 @@ +package com.ruoyi.sams.ui.controller; + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.sams.sms.service.ISmsClubService; +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 +@RequestMapping("/front/club") +public class FrontClubController { + + @Autowired + private ISmsClubService clubService; + + +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/ActivityQueryDTO.java b/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/ActivityQueryDTO.java new file mode 100644 index 00000000..4d334620 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/ActivityQueryDTO.java @@ -0,0 +1,22 @@ +package com.ruoyi.sams.ui.domain.vo; + +public class ActivityQueryDTO { + private String title; + private Long clubId; + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } +} diff --git a/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/HotClubVO.java b/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/HotClubVO.java new file mode 100644 index 00000000..5a9e2d12 --- /dev/null +++ b/bs-sams/src/main/java/com/ruoyi/sams/ui/domain/vo/HotClubVO.java @@ -0,0 +1,49 @@ +package com.ruoyi.sams.ui.domain.vo; + +public class HotClubVO { + private Long clubId; + private String clubName; + private String logo; + private Integer activityCount; + + public Long getClubId() { + return clubId; + } + + public void setClubId(Long clubId) { + this.clubId = clubId; + } + + public String getClubName() { + return clubName; + } + + public void setClubName(String clubName) { + this.clubName = clubName; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public Integer getActivityCount() { + return activityCount; + } + + public void setActivityCount(Integer activityCount) { + this.activityCount = activityCount; + } + + @Override + public String toString() { + return "HotClubVO{" + + "clubId=" + clubId + + ", clubName='" + clubName + '\'' + + ", activityCount=" + activityCount + + '}'; + } +} \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/ams/AmsActivityMapper.xml b/bs-sams/src/main/resources/mapper/ams/AmsActivityMapper.xml new file mode 100644 index 00000000..b5159e15 --- /dev/null +++ b/bs-sams/src/main/resources/mapper/ams/AmsActivityMapper.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + a.act_id, a.title, a.description ,a.cover_image, + a.budget, a.creator_id, u.nick_name AS creator_name, + a.club_id, c.club_name, a.dept_id, d.dept_name, + a.location, a.activity_type, a.status, a.visibility, + a.start_time, a.end_time, a.remark + FROM ams_activity a + LEFT JOIN sys_user u ON a.creator_id = u.user_id + LEFT JOIN sms_club c ON a.club_id = c.club_id + LEFT JOIN sys_dept d ON a.dept_id = d.dept_id + + + + + + + + insert into ams_activity + + title, + description, + cover_image, + start_time, + end_time, + location, + budget, + max_participants, + creator_id, + club_id, + dept_id, + activity_type, + status, + visibility, + current_approver_id, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{title}, + #{description}, + #{coverImage}, + #{startTime}, + #{endTime}, + #{location}, + #{budget}, + #{maxParticipants}, + #{creatorId}, + #{clubId}, + #{deptId}, + #{activityType}, + #{status}, + #{visibility}, + #{currentApproverId}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update ams_activity + + title = #{title}, + description = #{description}, + cover_image = #{coverImage}, + start_time = #{startTime}, + end_time = #{endTime}, + location = #{location}, + budget = #{budget}, + max_participants = #{maxParticipants}, + creator_id = #{creatorId}, + club_id = #{clubId}, + dept_id = #{deptId}, + activity_type = #{activityType}, + status = #{status}, + visibility = #{visibility}, + current_approver_id = #{currentApproverId}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where act_id = #{actId} + + + + delete from ams_activity where act_id = #{actId} + + + + delete from ams_activity where act_id in + + #{actId} + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/ams/AmsCommentMapper.xml b/bs-sams/src/main/resources/mapper/ams/AmsCommentMapper.xml new file mode 100644 index 00000000..5ab68ccb --- /dev/null +++ b/bs-sams/src/main/resources/mapper/ams/AmsCommentMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + SELECT c.comment_id, + c.act_id, + a.title, + c.user_id, + u.user_name, + c.parent_comment_id, + c.content, + c.remark, + c.create_time + FROM ams_comment c + LEFT JOIN ams_activity a ON c.act_id = a.act_id + LEFT JOIN sys_user u ON c.user_id = u.user_id + + + + + + + + insert into ams_comment + + act_id, + user_id, + parent_comment_id, + content, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{actId}, + #{userId}, + #{parentCommentId}, + #{content}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update ams_comment + + act_id = #{actId}, + user_id = #{userId}, + parent_comment_id = #{parentCommentId}, + content = #{content}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where comment_id = #{commentId} + + + + delete + from ams_comment + where comment_id = #{commentId} + + + + delete from ams_comment where comment_id in + + #{commentId} + + + + + + + \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/ams/AmsReactionMapper.xml b/bs-sams/src/main/resources/mapper/ams/AmsReactionMapper.xml new file mode 100644 index 00000000..e45742db --- /dev/null +++ b/bs-sams/src/main/resources/mapper/ams/AmsReactionMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + SELECT + r.reaction_id, + r.act_id, + a.title, + r.user_id, + u.user_name, + r.reaction_type, + r.remark, + r.create_time + FROM ams_reaction r + LEFT JOIN ams_activity a ON r.act_id = a.act_id + LEFT JOIN sys_user u ON r.user_id = u.user_id + + + + + + + + insert into ams_reaction + + act_id, + user_id, + reaction_type, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{actId}, + #{userId}, + #{reactionType}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update ams_reaction + + act_id = #{actId}, + user_id = #{userId}, + reaction_type = #{reactionType}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where reaction_id = #{reactionId} + + + + delete from ams_reaction where reaction_id = #{reactionId} + + + + delete from ams_reaction where reaction_id in + + #{reactionId} + + + + + + \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/ams/AmsRegistrationMapper.xml b/bs-sams/src/main/resources/mapper/ams/AmsRegistrationMapper.xml new file mode 100644 index 00000000..7ef3c1f7 --- /dev/null +++ b/bs-sams/src/main/resources/mapper/ams/AmsRegistrationMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + select reg_id, act_id, user_id, role, status, register_time, attend_time, create_by, create_time, update_by, update_time, remark from ams_registration + + + + + + + + insert into ams_registration + + act_id, + user_id, + role, + status, + register_time, + attend_time, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{actId}, + #{userId}, + #{role}, + #{status}, + #{registerTime}, + #{attendTime}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update ams_registration + + act_id = #{actId}, + user_id = #{userId}, + role = #{role}, + status = #{status}, + register_time = #{registerTime}, + attend_time = #{attendTime}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where reg_id = #{regId} + + + + delete from ams_registration where reg_id = #{regId} + + + + delete from ams_registration where reg_id in + + #{regId} + + + \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/sms/SmsClubMapper.xml b/bs-sams/src/main/resources/mapper/sms/SmsClubMapper.xml new file mode 100644 index 00000000..a9ee8b5b --- /dev/null +++ b/bs-sams/src/main/resources/mapper/sms/SmsClubMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + SELECT + c.club_id, + c.club_name, + c.description, + c.category, + c.dept_id, + d.dept_name, + c.leader_id, + u.nick_name AS leader_name, + c.logo, + c.status, + c.remark, + c.create_by, + c.update_by, + c.create_time, + c.update_time + FROM sms_club c + LEFT JOIN sys_dept d ON c.dept_id = d.dept_id + LEFT JOIN sys_user u ON c.leader_id = u.user_id + + + + + + + + insert into sms_club + + club_name, + description, + category, + dept_id, + leader_id, + logo, + status, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{clubName}, + #{description}, + #{category}, + #{deptId}, + #{leaderId}, + #{logo}, + #{status}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update sms_club + + club_name = #{clubName}, + description = #{description}, + category = #{category}, + dept_id = #{deptId}, + leader_id = #{leaderId}, + logo = #{logo}, + status = #{status}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where club_id = #{clubId} + + + + delete from sms_club where club_id = #{clubId} + + + + delete from sms_club where club_id in + + #{clubId} + + + \ No newline at end of file diff --git a/bs-sams/src/main/resources/mapper/sms/SmsClubUserMapper.xml b/bs-sams/src/main/resources/mapper/sms/SmsClubUserMapper.xml new file mode 100644 index 00000000..583d7bb0 --- /dev/null +++ b/bs-sams/src/main/resources/mapper/sms/SmsClubUserMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + SELECT + scu.id, + scu.user_id, + scu.club_id, + u.nick_name AS user_name, + c.club_name, + scu.is_active, + scu.join_date, + scu.create_by, + scu.create_time, + scu.update_by, + scu.update_time, + scu.remark + FROM sms_club_user scu + LEFT JOIN sys_user u ON scu.user_id = u.user_id + LEFT JOIN sms_club c ON scu.club_id = c.club_id + + + + + + + + insert into sms_club_user + + user_id, + club_id, + is_active, + join_date, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{userId}, + #{clubId}, + #{isActive}, + #{joinDate}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update sms_club_user + + user_id = #{userId}, + club_id = #{clubId}, + is_active = #{isActive}, + join_date = #{joinDate}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from sms_club_user where id = #{id} + + + + delete from sms_club_user where id in + + #{id} + + + \ No newline at end of file diff --git a/pic/PULM/审批流程图.png b/pic/PULM/审批流程图.png new file mode 100644 index 00000000..2ffbc7ab Binary files /dev/null and b/pic/PULM/审批流程图.png differ diff --git a/pic/PULM/审批流程图.puml b/pic/PULM/审批流程图.puml new file mode 100644 index 00000000..b64ef523 --- /dev/null +++ b/pic/PULM/审批流程图.puml @@ -0,0 +1,31 @@ +@startuml +start + +:发起活动申请; +:选择活动类型(社团/院级/校级); +:提交活动信息; + +if (是否为社团内部活动?) then (是) + :社团管理员审批; + if (审批通过?) then (是) + :活动发布; + else (否) + :退回修改; + endif +else (否) + :社团管理员初审; + if (初审通过?) then (是) + :提交至对应上级审批; + :院级/校级管理员终审; + if (终审通过?) then (是) + :活动发布; + else (否) + :退回修改; + endif + else (否) + :退回修改; + endif +endif + +stop +@enduml \ No newline at end of file diff --git a/pic/PULM/管理员用例图.png b/pic/PULM/管理员用例图.png new file mode 100644 index 00000000..8e80adf6 Binary files /dev/null and b/pic/PULM/管理员用例图.png differ diff --git a/pic/PULM/管理员用例图.puml b/pic/PULM/管理员用例图.puml new file mode 100644 index 00000000..04747207 --- /dev/null +++ b/pic/PULM/管理员用例图.puml @@ -0,0 +1,22 @@ +@startuml +left to right direction + +actor 系统管理员 + + usecase "用户管理" as UC1 + usecase "社团管理" as UC2 + usecase "成员管理" as UC3 + usecase "活动管理" as UC4 + usecase "审批管理" as UC5 + usecase "统计总览" as UC6 + usecase "账户管理" as UC7 + +系统管理员 --> UC1 +系统管理员 --> UC2 +系统管理员 --> UC3 +系统管理员 --> UC4 +系统管理员 --> UC5 +系统管理员 --> UC6 +系统管理员 --> UC7 + +@enduml \ No newline at end of file diff --git a/pic/学生端界面/个人中心@1x.jpg b/pic/学生端界面/个人中心@1x.jpg new file mode 100644 index 00000000..f0a9927d Binary files /dev/null and b/pic/学生端界面/个人中心@1x.jpg differ diff --git a/pic/学生端界面/活动@1x.jpg b/pic/学生端界面/活动@1x.jpg new file mode 100644 index 00000000..fb6f071d Binary files /dev/null and b/pic/学生端界面/活动@1x.jpg differ diff --git a/pic/学生端界面/活动详情@1x.jpg b/pic/学生端界面/活动详情@1x.jpg new file mode 100644 index 00000000..43b517e4 Binary files /dev/null and b/pic/学生端界面/活动详情@1x.jpg differ diff --git a/pic/学生端界面/社团中心@1x.jpg b/pic/学生端界面/社团中心@1x.jpg new file mode 100644 index 00000000..088fff7f Binary files /dev/null and b/pic/学生端界面/社团中心@1x.jpg differ diff --git a/pic/学生端界面/首页@1x.jpg b/pic/学生端界面/首页@1x.jpg new file mode 100644 index 00000000..a34f2b51 Binary files /dev/null and b/pic/学生端界面/首页@1x.jpg differ diff --git a/pic/登录@1x.jpg b/pic/登录@1x.jpg new file mode 100644 index 00000000..c1b4b05b Binary files /dev/null and b/pic/登录@1x.jpg differ diff --git a/pic/管理端界面/审批列表@1x.jpg b/pic/管理端界面/审批列表@1x.jpg new file mode 100644 index 00000000..c7a2d47f Binary files /dev/null and b/pic/管理端界面/审批列表@1x.jpg differ diff --git a/pic/管理端界面/成员管理@1x.jpg b/pic/管理端界面/成员管理@1x.jpg new file mode 100644 index 00000000..7ad0011a Binary files /dev/null and b/pic/管理端界面/成员管理@1x.jpg differ diff --git a/pic/管理端界面/活动管理@1x.jpg b/pic/管理端界面/活动管理@1x.jpg new file mode 100644 index 00000000..b84f67ed Binary files /dev/null and b/pic/管理端界面/活动管理@1x.jpg differ diff --git a/pic/管理端界面/活动管理(待审批@1x.jpg b/pic/管理端界面/活动管理(待审批@1x.jpg new file mode 100644 index 00000000..5df56c1d Binary files /dev/null and b/pic/管理端界面/活动管理(待审批@1x.jpg differ diff --git a/pic/管理端界面/社团列表@1x.jpg b/pic/管理端界面/社团列表@1x.jpg new file mode 100644 index 00000000..30d9adcb Binary files /dev/null and b/pic/管理端界面/社团列表@1x.jpg differ diff --git a/pic/管理端界面/首页@1x.jpg b/pic/管理端界面/首页@1x.jpg new file mode 100644 index 00000000..4b0c42ee Binary files /dev/null and b/pic/管理端界面/首页@1x.jpg differ diff --git a/pom.xml b/pom.xml index 9d6f39a1..a1ca58cc 100644 --- a/pom.xml +++ b/pom.xml @@ -218,6 +218,18 @@ ${ruoyi.version} + + com.ruoyi + bs-sms + ${ruoyi.version} + + + + com.ruoyi + bs-sams + ${ruoyi.version} + + @@ -228,6 +240,7 @@ ruoyi-quartz ruoyi-generator ruoyi-common + bs-sams pom diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 34a40e84..e8ceb209 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -61,6 +61,13 @@ ruoyi-generator + + com.ruoyi + bs-sams + 3.8.9 + compile + + diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index bcfad3ea..c9b69095 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://localhost:3306/SAMS-R?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: password + password: admin123 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index e70ea3e1..590cc016 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -105,7 +105,6 @@ mybatis: mapperLocations: classpath*:mapper/**/*Mapper.xml # 加载全局的配置文件 configLocation: classpath:mybatis/mybatis-config.xml - # PageHelper分页插件 pagehelper: helperDialect: mysql diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index 187fd192..307cdf98 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -1894,4 +1894,5 @@ public class ExcelUtil } return method; } + } diff --git a/ruoyi-ui/src/api/ams/activity.js b/ruoyi-ui/src/api/ams/activity.js new file mode 100644 index 00000000..8f400504 --- /dev/null +++ b/ruoyi-ui/src/api/ams/activity.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' + +// 查询活动列表列表 +export function listActivity(query) { + return request({ + url: '/ams/activity/list', + method: 'get', + params: query + }) +} + +// 查询活动列表详细 +export function getActivity(actId) { + return request({ + url: '/ams/activity/' + actId, + method: 'get' + }) +} + +// 新增活动列表 +export function addActivity(data) { + return request({ + url: '/ams/activity', + method: 'post', + data: data + }) +} + +// 修改活动列表 +export function updateActivity(data) { + return request({ + url: '/ams/activity', + method: 'put', + data: data + }) +} + +// 删除活动列表 +export function delActivity(actId) { + return request({ + url: '/ams/activity/' + actId, + method: 'delete' + }) +} + + diff --git a/ruoyi-ui/src/api/ams/comment.js b/ruoyi-ui/src/api/ams/comment.js new file mode 100644 index 00000000..dd4e7b6b --- /dev/null +++ b/ruoyi-ui/src/api/ams/comment.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询活动评论列表 +export function listComment(query) { + return request({ + url: '/ams/comment/list', + method: 'get', + params: query + }) +} + +// 查询活动评论详细 +export function getComment(commentId) { + return request({ + url: '/ams/comment/' + commentId, + method: 'get' + }) +} + +// 新增活动评论 +export function addComment(data) { + return request({ + url: '/ams/comment', + method: 'post', + data: data + }) +} + +// 修改活动评论 +export function updateComment(data) { + return request({ + url: '/ams/comment', + method: 'put', + data: data + }) +} + +// 删除活动评论 +export function delComment(commentId) { + return request({ + url: '/ams/comment/' + commentId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/ams/reaction.js b/ruoyi-ui/src/api/ams/reaction.js new file mode 100644 index 00000000..68f8090a --- /dev/null +++ b/ruoyi-ui/src/api/ams/reaction.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询点赞记录列表 +export function listReaction(query) { + return request({ + url: '/ams/reaction/list', + method: 'get', + params: query + }) +} + +// 查询点赞记录详细 +export function getReaction(reactionId) { + return request({ + url: '/ams/reaction/' + reactionId, + method: 'get' + }) +} + +// 新增点赞记录 +export function addReaction(data) { + return request({ + url: '/ams/reaction', + method: 'post', + data: data + }) +} + +// 修改点赞记录 +export function updateReaction(data) { + return request({ + url: '/ams/reaction', + method: 'put', + data: data + }) +} + +// 删除点赞记录 +export function delReaction(reactionId) { + return request({ + url: '/ams/reaction/' + reactionId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/ams/registration.js b/ruoyi-ui/src/api/ams/registration.js new file mode 100644 index 00000000..020e14eb --- /dev/null +++ b/ruoyi-ui/src/api/ams/registration.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询活动报名列表 +export function listRegistration(query) { + return request({ + url: '/ams/registration/list', + method: 'get', + params: query + }) +} + +// 查询活动报名详细 +export function getRegistration(regId) { + return request({ + url: '/ams/registration/' + regId, + method: 'get' + }) +} + +// 新增活动报名 +export function addRegistration(data) { + return request({ + url: '/ams/registration', + method: 'post', + data: data + }) +} + +// 修改活动报名 +export function updateRegistration(data) { + return request({ + url: '/ams/registration', + method: 'put', + data: data + }) +} + +// 删除活动报名 +export function delRegistration(regId) { + return request({ + url: '/ams/registration/' + regId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/sms/club.js b/ruoyi-ui/src/api/sms/club.js new file mode 100644 index 00000000..fc02547e --- /dev/null +++ b/ruoyi-ui/src/api/sms/club.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询社团信息列表 +export function listClub(query) { + return request({ + url: '/sms/club/list', + method: 'get', + params: query + }) +} + +// 查询社团信息详细 +export function getClub(clubId) { + return request({ + url: '/sms/club/' + clubId, + method: 'get' + }) +} + +// 新增社团信息 +export function addClub(data) { + return request({ + url: '/sms/club', + method: 'post', + data: data + }) +} + +// 修改社团信息 +export function updateClub(data) { + return request({ + url: '/sms/club', + method: 'put', + data: data + }) +} + +// 删除社团信息 +export function delClub(clubId) { + return request({ + url: '/sms/club/' + clubId, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/sms/user.js b/ruoyi-ui/src/api/sms/user.js new file mode 100644 index 00000000..da21af1e --- /dev/null +++ b/ruoyi-ui/src/api/sms/user.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询成员管理列表 +export function listUser(query) { + return request({ + url: '/sms/user/list', + method: 'get', + params: query + }) +} + +// 查询成员管理详细 +export function getUser(id) { + return request({ + url: '/sms/user/' + id, + method: 'get' + }) +} + +// 新增成员管理 +export function addUser(data) { + return request({ + url: '/sms/user', + method: 'post', + data: data + }) +} + +// 修改成员管理 +export function updateUser(data) { + return request({ + url: '/sms/user', + method: 'put', + data: data + }) +} + +// 删除成员管理 +export function delUser(id) { + return request({ + url: '/sms/user/' + id, + method: 'delete' + }) +} diff --git a/ruoyi-ui/src/api/ui/dashboard.js b/ruoyi-ui/src/api/ui/dashboard.js new file mode 100644 index 00000000..09e3cf51 --- /dev/null +++ b/ruoyi-ui/src/api/ui/dashboard.js @@ -0,0 +1,8 @@ +import request from '@/utils/request' + +export function getDashboardStats() { + return request({ + url: '/sams/dashboard/list', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/api/ui/stufront.js b/ruoyi-ui/src/api/ui/stufront.js new file mode 100644 index 00000000..e4591576 --- /dev/null +++ b/ruoyi-ui/src/api/ui/stufront.js @@ -0,0 +1,58 @@ +import request from '@/utils/request' + +// 获取轮播图活动(最多4条) +export function listBannerActivities() { + return request({ + url: '/front/activity/banner', + method: 'get' + }) +} + +// 获取分页活动列表(已审批通过,按开始时间排序) +export function listActivities(query) { + return request({ + url: '/front/activity/list', + method: 'get', + params: query + }) +} + +// 获取活动最多的前4个社团 +export function listHotClubs() { + return request({ + url: '/front/activity/hot', + method: 'get' + }) +} + +/** + * 查询活动评论(分页) + * @param {Object} query 查询参数(包含 actId, pageNum, pageSize 等) + */ +export function listComment(query) { + return request({ + url: '/front/activity/comment', + method: 'get', + params: query + }) +} + +/** + * 查询活动点赞记录(分页或全量) + * @param {Object} query 查询参数(包含 actId,可选 pageNum/pageSize) + */ +export function listReaction(query) { + return request({ + url: '/front/activity/reaction', + method: 'get', + params: query + }) +} + +export function listMyRegisteredActivity(query) { + return request({ + url: '/front/activity/my-regist', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/assets/images/loading.png b/ruoyi-ui/src/assets/images/loading.png new file mode 100644 index 00000000..6dcc78c7 Binary files /dev/null and b/ruoyi-ui/src/assets/images/loading.png differ diff --git a/ruoyi-ui/src/assets/images/loading2.png b/ruoyi-ui/src/assets/images/loading2.png new file mode 100644 index 00000000..3a8b5d27 Binary files /dev/null and b/ruoyi-ui/src/assets/images/loading2.png differ diff --git a/ruoyi-ui/src/assets/images/pay.png b/ruoyi-ui/src/assets/images/pay.png deleted file mode 100644 index bb8b9672..00000000 Binary files a/ruoyi-ui/src/assets/images/pay.png and /dev/null differ diff --git a/ruoyi-ui/src/views/ams/activity/index.vue b/ruoyi-ui/src/views/ams/activity/index.vue new file mode 100644 index 00000000..eacf3700 --- /dev/null +++ b/ruoyi-ui/src/views/ams/activity/index.vue @@ -0,0 +1,507 @@ + + + diff --git a/ruoyi-ui/src/views/ams/comment/index.vue b/ruoyi-ui/src/views/ams/comment/index.vue new file mode 100644 index 00000000..9e20ed46 --- /dev/null +++ b/ruoyi-ui/src/views/ams/comment/index.vue @@ -0,0 +1,291 @@ + + + diff --git a/ruoyi-ui/src/views/ams/reaction/index.vue b/ruoyi-ui/src/views/ams/reaction/index.vue new file mode 100644 index 00000000..6dc2cc34 --- /dev/null +++ b/ruoyi-ui/src/views/ams/reaction/index.vue @@ -0,0 +1,309 @@ + + + diff --git a/ruoyi-ui/src/views/ams/registration/index.vue b/ruoyi-ui/src/views/ams/registration/index.vue new file mode 100644 index 00000000..db77db57 --- /dev/null +++ b/ruoyi-ui/src/views/ams/registration/index.vue @@ -0,0 +1,336 @@ + + + diff --git a/ruoyi-ui/src/views/index.vue b/ruoyi-ui/src/views/index.vue index 397346f1..1b9fcd20 100644 --- a/ruoyi-ui/src/views/index.vue +++ b/ruoyi-ui/src/views/index.vue @@ -1,1100 +1,246 @@ - +.section-title { + font-size: 20px; + font-weight: 600; + margin-bottom: 16px; + border-left: 4px solid #409EFF; + padding-left: 12px; +} + +/* 轮播图样式 */ +::v-deep(.el-carousel__item) { + height: 300px !important; + position: relative; +} +.carousel-item-wrapper { + width: 100%; + height: 100%; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; +} +.carousel-img { + width: 100%; + height: 100%; + object-fit: cover; + display: block; +} +.carousel-title { + position: absolute; + bottom: 12px; + left: 16px; + background-color: rgba(0, 0, 0, 0.4); + color: #fff; + padding: 6px 12px; + border-radius: 4px; + font-size: 16px; +} + +/* 社团推荐样式 */ +.club-section { + margin-bottom: 40px; +} +.club-card { + text-align: center; + padding: 16px; +} +.card-link { + display: block; + color: inherit; + text-decoration: none; +} +.club-logo { + width: 80px; + height: 80px; + border-radius: 50%; +} +.club-name { + margin-top: 12px; + font-weight: bold; +} +.activity-section { + margin-top: 20px; + margin-bottom: 40px; +} + +.activity-card { + cursor: pointer; + transition: all 0.2s; + padding: 0; +} + +.activity-card:hover { + transform: translateY(-2px); +} + +.activity-cover { + width: 100%; + height: 160px; + object-fit: cover; + border-radius: 4px 4px 0 0; +} + +.activity-info { + padding: 12px; +} + +.activity-title { + font-weight: bold; + font-size: 16px; + margin-bottom: 8px; +} + +.activity-time, +.activity-location { + font-size: 13px; + color: #666; + margin-bottom: 4px; +} + + diff --git a/ruoyi-ui/src/views/sams/active/all/index.vue b/ruoyi-ui/src/views/sams/active/all/index.vue new file mode 100644 index 00000000..0539096a --- /dev/null +++ b/ruoyi-ui/src/views/sams/active/all/index.vue @@ -0,0 +1,109 @@ + + + diff --git a/ruoyi-ui/src/views/sams/active/detail/index.vue b/ruoyi-ui/src/views/sams/active/detail/index.vue new file mode 100644 index 00000000..750d49bc --- /dev/null +++ b/ruoyi-ui/src/views/sams/active/detail/index.vue @@ -0,0 +1,431 @@ + + + + + diff --git a/ruoyi-ui/src/views/sams/active/my/index.vue b/ruoyi-ui/src/views/sams/active/my/index.vue new file mode 100644 index 00000000..a5a092e3 --- /dev/null +++ b/ruoyi-ui/src/views/sams/active/my/index.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/ruoyi-ui/src/views/sams/admin/index.vue b/ruoyi-ui/src/views/sams/admin/index.vue new file mode 100644 index 00000000..c5409d63 --- /dev/null +++ b/ruoyi-ui/src/views/sams/admin/index.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/ruoyi-ui/src/views/sams/club/all/index.vue b/ruoyi-ui/src/views/sams/club/all/index.vue new file mode 100644 index 00000000..48014d5b --- /dev/null +++ b/ruoyi-ui/src/views/sams/club/all/index.vue @@ -0,0 +1,114 @@ + + + diff --git a/ruoyi-ui/src/views/sams/club/detail/index.vue b/ruoyi-ui/src/views/sams/club/detail/index.vue new file mode 100644 index 00000000..eee4e7d4 --- /dev/null +++ b/ruoyi-ui/src/views/sams/club/detail/index.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/ruoyi-ui/src/views/sams/club/my/index.vue b/ruoyi-ui/src/views/sams/club/my/index.vue new file mode 100644 index 00000000..574439bb --- /dev/null +++ b/ruoyi-ui/src/views/sams/club/my/index.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/ruoyi-ui/src/views/sms/club/index.vue b/ruoyi-ui/src/views/sms/club/index.vue new file mode 100644 index 00000000..e4d66fc8 --- /dev/null +++ b/ruoyi-ui/src/views/sms/club/index.vue @@ -0,0 +1,364 @@ + + + diff --git a/ruoyi-ui/src/views/sms/user/index.vue b/ruoyi-ui/src/views/sms/user/index.vue new file mode 100644 index 00000000..faecc65c --- /dev/null +++ b/ruoyi-ui/src/views/sms/user/index.vue @@ -0,0 +1,313 @@ + + + diff --git a/sql/activityMenu.sql b/sql/activityMenu.sql new file mode 100644 index 00000000..96047d80 --- /dev/null +++ b/sql/activityMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表', '2049', '1', 'activity', 'ams/activity/index', 1, 0, 'C', '0', '0', 'ams:activity:list', '#', 'admin', sysdate(), '', null, '活动列表菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'ams:activity:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'ams:activity:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'ams:activity:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'ams:activity:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动列表导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'ams:activity:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file diff --git a/sql/commentMenu.sql b/sql/commentMenu.sql new file mode 100644 index 00000000..c08648bb --- /dev/null +++ b/sql/commentMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论', '2049', '1', 'comment', 'ams/comment/index', 1, 0, 'C', '0', '0', 'ams:comment:list', '#', 'admin', sysdate(), '', null, '活动评论菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'ams:comment:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'ams:comment:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'ams:comment:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'ams:comment:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动评论导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'ams:comment:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file diff --git a/sql/reactionMenu.sql b/sql/reactionMenu.sql new file mode 100644 index 00000000..4233dd00 --- /dev/null +++ b/sql/reactionMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录', '2049', '1', 'reaction', 'ams/reaction/index', 1, 0, 'C', '0', '0', 'ams:reaction:list', '#', 'admin', sysdate(), '', null, '点赞记录菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'ams:reaction:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'ams:reaction:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'ams:reaction:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'ams:reaction:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('点赞记录导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'ams:reaction:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file diff --git a/sql/registrationMenu.sql b/sql/registrationMenu.sql new file mode 100644 index 00000000..85c58707 --- /dev/null +++ b/sql/registrationMenu.sql @@ -0,0 +1,22 @@ +-- 菜单 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名', '2049', '1', 'registration', 'ams/registration/index', 1, 0, 'C', '0', '0', 'ams:registration:list', '#', 'admin', sysdate(), '', null, '活动报名菜单'); + +-- 按钮父菜单ID +SELECT @parentId := LAST_INSERT_ID(); + +-- 按钮 SQL +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'ams:registration:query', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'ams:registration:add', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'ams:registration:edit', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'ams:registration:remove', '#', 'admin', sysdate(), '', null, ''); + +insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark) +values('活动报名导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'ams:registration:export', '#', 'admin', sysdate(), '', null, ''); \ No newline at end of file