瀏覽代碼

学生成绩

dzx 1 年之前
父節點
當前提交
e76353181b
共有 20 個文件被更改,包括 1226 次插入2 次删除
  1. 95 0
      src/main/java/com/xjrsoft/module/activity/controller/ActivityInfoController.java
  2. 21 0
      src/main/java/com/xjrsoft/module/activity/dto/ActivityInfoPageDto.java
  3. 38 0
      src/main/java/com/xjrsoft/module/activity/dto/AddActivityEnrollDto.java
  4. 42 0
      src/main/java/com/xjrsoft/module/activity/dto/AddActivityEnrollRangeDto.java
  5. 109 0
      src/main/java/com/xjrsoft/module/activity/dto/AddActivityInfoDto.java
  6. 24 0
      src/main/java/com/xjrsoft/module/activity/dto/UpdateActivityInfoDto.java
  7. 89 0
      src/main/java/com/xjrsoft/module/activity/entity/ActivityEnroll.java
  8. 94 0
      src/main/java/com/xjrsoft/module/activity/entity/ActivityEnrollRange.java
  9. 165 0
      src/main/java/com/xjrsoft/module/activity/entity/ActivityInfo.java
  10. 16 0
      src/main/java/com/xjrsoft/module/activity/mapper/ActivityEnrollMapper.java
  11. 16 0
      src/main/java/com/xjrsoft/module/activity/mapper/ActivityEnrollRangeMapper.java
  12. 23 0
      src/main/java/com/xjrsoft/module/activity/mapper/ActivityInfoMapper.java
  13. 46 0
      src/main/java/com/xjrsoft/module/activity/service/IActivityInfoService.java
  14. 133 0
      src/main/java/com/xjrsoft/module/activity/service/impl/ActivityInfoServiceImpl.java
  15. 43 0
      src/main/java/com/xjrsoft/module/activity/vo/ActivityEnrollRangeVo.java
  16. 40 0
      src/main/java/com/xjrsoft/module/activity/vo/ActivityEnrollVo.java
  17. 104 0
      src/main/java/com/xjrsoft/module/activity/vo/ActivityInfoPageVo.java
  18. 111 0
      src/main/java/com/xjrsoft/module/activity/vo/ActivityInfoVo.java
  19. 15 0
      src/main/resources/mapper/activity/ActivityInfoMapper.xml
  20. 2 2
      src/main/resources/sqlScript/20240718_sql.sql

+ 95 - 0
src/main/java/com/xjrsoft/module/activity/controller/ActivityInfoController.java

@@ -0,0 +1,95 @@
+package com.xjrsoft.module.activity.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xjrsoft.common.model.result.RT;
+import com.xjrsoft.common.page.ConventPage;
+import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
+import com.xjrsoft.module.activity.dto.AddActivityInfoDto;
+import com.xjrsoft.module.activity.dto.UpdateActivityInfoDto;
+import com.xjrsoft.module.activity.entity.ActivityInfo;
+import com.xjrsoft.module.activity.service.IActivityInfoService;
+import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
+import com.xjrsoft.module.activity.vo.ActivityInfoVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@RestController
+@RequestMapping("/activity" + "/activityInfo")
+@Api(value = "/activity"  + "/activityInfo",tags = "活动信息代码")
+@AllArgsConstructor
+public class ActivityInfoController {
+
+
+    private final IActivityInfoService activityInfoService;
+
+    @GetMapping(value = "/page")
+    @ApiOperation(value="活动信息列表(分页)")
+    @SaCheckPermission("activityinfo:detail")
+    public RT<PageOutput<ActivityInfoPageVo>> page(@Valid ActivityInfoPageDto dto){
+
+        Page<ActivityInfoPageVo> page = activityInfoService.getPage(new Page<>(dto.getLimit(), dto.getSize()), dto);
+        PageOutput<ActivityInfoPageVo> pageOutput = ConventPage.getPageOutput(page, ActivityInfoPageVo.class);
+        return RT.ok(pageOutput);
+    }
+
+    @GetMapping(value = "/info")
+    @ApiOperation(value="根据id查询活动信息信息")
+    @SaCheckPermission("activityinfo:detail")
+    public RT<ActivityInfoVo> info(@RequestParam Long id){
+        ActivityInfo activityInfo = activityInfoService.getByIdDeep(id);
+        if (activityInfo == null) {
+           return RT.error("找不到此数据!");
+        }
+        return RT.ok(BeanUtil.toBean(activityInfo, ActivityInfoVo.class));
+    }
+
+
+    @PostMapping
+    @ApiOperation(value = "新增活动信息")
+    @SaCheckPermission("activityinfo:add")
+    public RT<Boolean> add(@Valid @RequestBody AddActivityInfoDto dto){
+        ActivityInfo activityInfo = BeanUtil.toBean(dto, ActivityInfo.class);
+        boolean isSuccess = activityInfoService.add(activityInfo);
+        return RT.ok(isSuccess);
+    }
+
+    @PutMapping
+    @ApiOperation(value = "修改活动信息")
+    @SaCheckPermission("activityinfo:edit")
+    public RT<Boolean> update(@Valid @RequestBody UpdateActivityInfoDto dto){
+
+        ActivityInfo activityInfo = BeanUtil.toBean(dto, ActivityInfo.class);
+        return RT.ok(activityInfoService.update(activityInfo));
+
+    }
+
+    @DeleteMapping
+    @ApiOperation(value = "删除活动信息")
+    @SaCheckPermission("activityinfo:delete")
+    public RT<Boolean> delete(@Valid @RequestBody List<Long> ids){
+        return RT.ok(activityInfoService.delete(ids));
+
+    }
+
+}

+ 21 - 0
src/main/java/com/xjrsoft/module/activity/dto/ActivityInfoPageDto.java

@@ -0,0 +1,21 @@
+package com.xjrsoft.module.activity.dto;
+
+import com.xjrsoft.common.page.PageInput;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+* @title: 活动信息分页查询入参
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ActivityInfoPageDto extends PageInput {
+
+    @ApiModelProperty("活动类别(1:校企合作活动 2:赛事活动)")
+    private Integer category;
+}

+ 38 - 0
src/main/java/com/xjrsoft/module/activity/dto/AddActivityEnrollDto.java

@@ -0,0 +1,38 @@
+package com.xjrsoft.module.activity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+/**
+* @title: 活动登记表
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class AddActivityEnrollDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 活动(activity_info)
+    */
+    @ApiModelProperty("活动(activity_info)")
+    private Long activityInfoId;
+    /**
+    * 参与人(xjr_user)
+    */
+    @ApiModelProperty("参与人(xjr_user)")
+    private Date userId;
+    /**
+    * 状态(0:待确认 1:未参与 2:已参与)
+    */
+    @ApiModelProperty("状态(0:待确认 1:未参与 2:已参与)")
+    private Integer STATUS;
+
+}

+ 42 - 0
src/main/java/com/xjrsoft/module/activity/dto/AddActivityEnrollRangeDto.java

@@ -0,0 +1,42 @@
+package com.xjrsoft.module.activity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+
+/**
+* @title: 活动报名范围
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class AddActivityEnrollRangeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 所属班级id
+    */
+    @ApiModelProperty("所属班级id")
+    private Long classId;
+    /**
+    * 所属部门id
+    */
+    @ApiModelProperty("所属部门id")
+    private Long deptId;
+    /**
+    * 用id
+    */
+    @ApiModelProperty("用id")
+    private Long userId;
+    /**
+    * 活动(activity)
+    */
+    @ApiModelProperty("活动(activity)")
+    private Long activityInfoId;
+
+}

+ 109 - 0
src/main/java/com/xjrsoft/module/activity/dto/AddActivityInfoDto.java

@@ -0,0 +1,109 @@
+package com.xjrsoft.module.activity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class AddActivityInfoDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 赛事名称
+    */
+    @ApiModelProperty("赛事名称")
+    private String name;
+    /**
+    * 活动地点
+    */
+    @ApiModelProperty("活动地点")
+    private String place;
+    /**
+    * 活动开始时间
+    */
+    @ApiModelProperty("活动开始时间")
+    private Date startDate;
+    /**
+    * 活动结束时间
+    */
+    @ApiModelProperty("活动结束时间")
+    private Date endDate;
+    /**
+    * 活动类型(xjr_dictionary_detail[match_activity_type])
+    */
+    @ApiModelProperty("活动类型(xjr_dictionary_detail[match_activity_type])")
+    private String type;
+    /**
+    * 组织部门(xjr_department)
+    */
+    @ApiModelProperty("组织部门(xjr_department)")
+    private Long orgId;
+    /**
+    * 报名结束时间
+    */
+    @ApiModelProperty("报名结束时间")
+    private Date enrollEndTime;
+    /**
+    * 活动负责人
+    */
+    @ApiModelProperty("活动负责人")
+    private String dutyPerson;
+    /**
+    * 活动负责人电话
+    */
+    @ApiModelProperty("活动负责人电话")
+    private String dutyPersonMobile;
+    /**
+    * 封面图片
+    */
+    @ApiModelProperty("封面图片")
+    private String coverFileId;
+    /**
+    * 报名范围
+    */
+    @ApiModelProperty("报名范围")
+    private String enrollRange;
+    /**
+    * 状态(0:未发布 1:报名中 2:报名结束 3:活动结束)
+    */
+    @ApiModelProperty("状态(0:未发布 1:报名中 2:报名结束 3:活动结束)")
+    private Integer status;
+    /**
+    * 活动内容
+    */
+    @ApiModelProperty("活动内容")
+    private String content;
+    /**
+    * 合作企业
+    */
+    @ApiModelProperty("合作企业")
+    private Long enterpriseId;
+    /**
+    * 1:校企合作活动 2:赛事活动
+    */
+    @ApiModelProperty("1:校企合作活动 2:赛事活动")
+    private Integer category;
+
+    /**
+    * activityEnrollRange
+    */
+    @ApiModelProperty("activityEnrollRange子表")
+    private List<AddActivityEnrollRangeDto> activityEnrollRangeList;
+    /**
+    * activityEnroll
+    */
+    @ApiModelProperty("activityEnroll子表")
+    private List<AddActivityEnrollDto> activityEnrollList;
+}

+ 24 - 0
src/main/java/com/xjrsoft/module/activity/dto/UpdateActivityInfoDto.java

@@ -0,0 +1,24 @@
+package com.xjrsoft.module.activity.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class UpdateActivityInfoDto extends AddActivityInfoDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+}

+ 89 - 0
src/main/java/com/xjrsoft/module/activity/entity/ActivityEnroll.java

@@ -0,0 +1,89 @@
+package com.xjrsoft.module.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 活动登记表
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+@TableName("activity_enroll")
+@ApiModel(value = "activity_enroll", description = "活动登记表")
+public class ActivityEnroll implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改日期
+    */
+    @ApiModelProperty("修改日期")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标记
+    */
+    @ApiModelProperty("有效标记")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 活动(activity_info)
+    */
+    @ApiModelProperty("活动(activity_info)")
+    private Long activityInfoId;
+    /**
+    * 参与人(xjr_user)
+    */
+    @ApiModelProperty("参与人(xjr_user)")
+    private Date userId;
+    /**
+    * 状态(0:待确认 1:未参与 2:已参与)
+    */
+    @ApiModelProperty("状态(0:待确认 1:未参与 2:已参与)")
+    private Integer STATUS;
+
+
+}

+ 94 - 0
src/main/java/com/xjrsoft/module/activity/entity/ActivityEnrollRange.java

@@ -0,0 +1,94 @@
+package com.xjrsoft.module.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+* @title: 活动报名范围
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+@TableName("activity_enroll_range")
+@ApiModel(value = "activity_enroll_range", description = "活动报名范围")
+public class ActivityEnrollRange implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 所属班级id
+    */
+    @ApiModelProperty("所属班级id")
+    private Long classId;
+    /**
+    * 所属部门id
+    */
+    @ApiModelProperty("所属部门id")
+    private Long deptId;
+    /**
+    * 用id
+    */
+    @ApiModelProperty("用id")
+    private Long userId;
+    /**
+    * 活动(activity)
+    */
+    @ApiModelProperty("活动(activity)")
+    private Long activityInfoId;
+
+
+}

+ 165 - 0
src/main/java/com/xjrsoft/module/activity/entity/ActivityInfo.java

@@ -0,0 +1,165 @@
+package com.xjrsoft.module.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.github.yulichang.annotation.EntityMapping;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+@TableName("activity_info")
+@ApiModel(value = "activity_info", description = "活动信息")
+public class ActivityInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    @TableId
+    private Long id;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private Long createUserId;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+    /**
+    * 修改人
+    */
+    @ApiModelProperty("修改人")
+    @TableField(fill = FieldFill.UPDATE)
+    private Long modifyUserId;
+    /**
+    * 修改日期
+    */
+    @ApiModelProperty("修改日期")
+    @TableField(fill = FieldFill.UPDATE)
+    private Date modifyDate;
+    /**
+    * 删除标记
+    */
+    @ApiModelProperty("删除标记")
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer deleteMark;
+    /**
+    * 有效标记
+    */
+    @ApiModelProperty("有效标记")
+    @TableField(fill = FieldFill.INSERT)
+    private Integer enabledMark;
+    /**
+    * 赛事名称
+    */
+    @ApiModelProperty("赛事名称")
+    private String name;
+    /**
+    * 活动地点
+    */
+    @ApiModelProperty("活动地点")
+    private String place;
+    /**
+    * 活动开始时间
+    */
+    @ApiModelProperty("活动开始时间")
+    private Date startDate;
+    /**
+    * 活动结束时间
+    */
+    @ApiModelProperty("活动结束时间")
+    private Date endDate;
+    /**
+    * 活动类型(xjr_dictionary_detail[match_activity_type])
+    */
+    @ApiModelProperty("活动类型(xjr_dictionary_detail[match_activity_type])")
+    private String type;
+    /**
+    * 组织部门(xjr_department)
+    */
+    @ApiModelProperty("组织部门(xjr_department)")
+    private Long orgId;
+    /**
+    * 报名结束时间
+    */
+    @ApiModelProperty("报名结束时间")
+    private Date enrollEndTime;
+    /**
+    * 活动负责人
+    */
+    @ApiModelProperty("活动负责人")
+    private String dutyPerson;
+    /**
+    * 活动负责人电话
+    */
+    @ApiModelProperty("活动负责人电话")
+    private String dutyPersonMobile;
+    /**
+    * 封面图片
+    */
+    @ApiModelProperty("封面图片")
+    private String coverFileId;
+    /**
+    * 报名范围
+    */
+    @ApiModelProperty("报名范围")
+    private String enrollRange;
+    /**
+    * 状态(0:未发布 1:报名中 2:报名结束 3:活动结束)
+    */
+    @ApiModelProperty("状态(0:未发布 1:报名中 2:报名结束 3:活动结束)")
+    private Integer status;
+    /**
+    * 活动内容
+    */
+    @ApiModelProperty("活动内容")
+    private String content;
+    /**
+    * 合作企业
+    */
+    @ApiModelProperty("合作企业")
+    private Long enterpriseId;
+    /**
+    * 1:校企合作活动 2:赛事活动
+    */
+    @ApiModelProperty("活动类别(1:校企合作活动 2:赛事活动)")
+    private Integer category;
+
+    /**
+    * activityEnrollRange
+    */
+    @ApiModelProperty("activityEnrollRange子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "activityInfoId")
+    private List<ActivityEnrollRange> activityEnrollRangeList;
+    /**
+    * activityEnroll
+    */
+    @ApiModelProperty("activityEnroll子表")
+    @TableField(exist = false)
+    @EntityMapping(thisField = "id", joinField = "activityInfoId")
+    private List<ActivityEnroll> activityEnrollList;
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/activity/mapper/ActivityEnrollMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.activity.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.activity.entity.ActivityEnroll;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 活动登记表
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Mapper
+public interface ActivityEnrollMapper extends MPJBaseMapper<ActivityEnroll> {
+
+}

+ 16 - 0
src/main/java/com/xjrsoft/module/activity/mapper/ActivityEnrollRangeMapper.java

@@ -0,0 +1,16 @@
+package com.xjrsoft.module.activity.mapper;
+
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.activity.entity.ActivityEnrollRange;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+* @title: 活动报名范围
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Mapper
+public interface ActivityEnrollRangeMapper extends MPJBaseMapper<ActivityEnrollRange> {
+
+}

+ 23 - 0
src/main/java/com/xjrsoft/module/activity/mapper/ActivityInfoMapper.java

@@ -0,0 +1,23 @@
+package com.xjrsoft.module.activity.mapper;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseMapper;
+import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
+import com.xjrsoft.module.activity.entity.ActivityInfo;
+import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
+import com.xjrsoft.module.xycxedu.dto.ExamSubjectScoreDto;
+import com.xjrsoft.module.xycxedu.vo.ExamSubjectScorePageVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Mapper
+public interface ActivityInfoMapper extends MPJBaseMapper<ActivityInfo> {
+
+    Page<ActivityInfoPageVo> getPage(Page<ActivityInfoPageVo> page, @Param("dto") ActivityInfoPageDto dto);
+}

+ 46 - 0
src/main/java/com/xjrsoft/module/activity/service/IActivityInfoService.java

@@ -0,0 +1,46 @@
+package com.xjrsoft.module.activity.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
+import com.xjrsoft.module.activity.entity.ActivityInfo;
+import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+
+public interface IActivityInfoService extends MPJBaseService<ActivityInfo> {
+    /**
+    * 新增
+    *
+    * @param activityInfo
+    * @return
+    */
+    Boolean add(ActivityInfo activityInfo);
+
+    /**
+    * 更新
+    *
+    * @param activityInfo
+    * @return
+    */
+    Boolean update(ActivityInfo activityInfo);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+
+    Page<ActivityInfoPageVo> getPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto);
+}

+ 133 - 0
src/main/java/com/xjrsoft/module/activity/service/impl/ActivityInfoServiceImpl.java

@@ -0,0 +1,133 @@
+package com.xjrsoft.module.activity.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.activity.dto.ActivityInfoPageDto;
+import com.xjrsoft.module.activity.entity.ActivityEnroll;
+import com.xjrsoft.module.activity.entity.ActivityEnrollRange;
+import com.xjrsoft.module.activity.entity.ActivityInfo;
+import com.xjrsoft.module.activity.mapper.ActivityEnrollMapper;
+import com.xjrsoft.module.activity.mapper.ActivityEnrollRangeMapper;
+import com.xjrsoft.module.activity.mapper.ActivityInfoMapper;
+import com.xjrsoft.module.activity.service.IActivityInfoService;
+import com.xjrsoft.module.activity.vo.ActivityInfoPageVo;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+* @title: 活动信息
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class ActivityInfoServiceImpl extends MPJBaseServiceImpl<ActivityInfoMapper, ActivityInfo> implements IActivityInfoService {
+    private final ActivityInfoMapper activityInfoActivityInfoMapper;
+
+    private final ActivityEnrollRangeMapper activityInfoActivityEnrollRangeMapper;
+    private final ActivityEnrollMapper activityInfoActivityEnrollMapper;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(ActivityInfo activityInfo) {
+        activityInfoActivityInfoMapper.insert(activityInfo);
+        for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
+            activityEnrollRange.setActivityInfoId(activityInfo.getId());
+            activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
+        }
+        for (ActivityEnroll activityEnroll : activityInfo.getActivityEnrollList()) {
+            activityEnroll.setActivityInfoId(activityInfo.getId());
+            activityInfoActivityEnrollMapper.insert(activityEnroll);
+        }
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean update(ActivityInfo activityInfo) {
+        activityInfoActivityInfoMapper.updateById(activityInfo);
+        //********************************* ActivityEnrollRange  增删改  开始 *******************************************/
+        {
+            // 查出所有子级的id
+            List<ActivityEnrollRange> activityEnrollRangeList = activityInfoActivityEnrollRangeMapper.selectList(Wrappers.lambdaQuery(ActivityEnrollRange.class).eq(ActivityEnrollRange::getActivityInfoId, activityInfo.getId()).select(ActivityEnrollRange::getId));
+            List<Long> activityEnrollRangeIds = activityEnrollRangeList.stream().map(ActivityEnrollRange::getId).collect(Collectors.toList());
+            //原有子表单 没有被删除的主键
+            List<Long> activityEnrollRangeOldIds = activityInfo.getActivityEnrollRangeList().stream().map(ActivityEnrollRange::getId).filter(Objects::nonNull).collect(Collectors.toList());
+            //找到需要删除的id
+            List<Long> activityEnrollRangeRemoveIds = activityEnrollRangeIds.stream().filter(item -> !activityEnrollRangeOldIds.contains(item)).collect(Collectors.toList());
+
+            for (ActivityEnrollRange activityEnrollRange : activityInfo.getActivityEnrollRangeList()) {
+                //如果不等于空则修改
+                if (activityEnrollRange.getId() != null) {
+                    activityInfoActivityEnrollRangeMapper.updateById(activityEnrollRange);
+                }
+                //如果等于空 则新增
+                else {
+                    //已经不存在的id 删除
+                    activityEnrollRange.setActivityInfoId(activityInfo.getId());
+                    activityInfoActivityEnrollRangeMapper.insert(activityEnrollRange);
+                }
+            }
+            //已经不存在的id 删除
+            if(activityEnrollRangeRemoveIds.size() > 0){
+                activityInfoActivityEnrollRangeMapper.deleteBatchIds(activityEnrollRangeRemoveIds);
+            }
+        }
+        //********************************* ActivityEnrollRange  增删改  结束 *******************************************/
+
+        //********************************* ActivityEnroll  增删改  开始 *******************************************/
+        {
+            // 查出所有子级的id
+            List<ActivityEnroll> activityEnrollList = activityInfoActivityEnrollMapper.selectList(Wrappers.lambdaQuery(ActivityEnroll.class).eq(ActivityEnroll::getActivityInfoId, activityInfo.getId()).select(ActivityEnroll::getId));
+            List<Long> activityEnrollIds = activityEnrollList.stream().map(ActivityEnroll::getId).collect(Collectors.toList());
+            //原有子表单 没有被删除的主键
+            List<Long> activityEnrollOldIds = activityInfo.getActivityEnrollList().stream().map(ActivityEnroll::getId).filter(Objects::nonNull).collect(Collectors.toList());
+            //找到需要删除的id
+            List<Long> activityEnrollRemoveIds = activityEnrollIds.stream().filter(item -> !activityEnrollOldIds.contains(item)).collect(Collectors.toList());
+
+            for (ActivityEnroll activityEnroll : activityInfo.getActivityEnrollList()) {
+                //如果不等于空则修改
+                if (activityEnroll.getId() != null) {
+                    activityInfoActivityEnrollMapper.updateById(activityEnroll);
+                }
+                //如果等于空 则新增
+                else {
+                    //已经不存在的id 删除
+                    activityEnroll.setActivityInfoId(activityInfo.getId());
+                    activityInfoActivityEnrollMapper.insert(activityEnroll);
+                }
+            }
+            //已经不存在的id 删除
+            if(activityEnrollRemoveIds.size() > 0){
+                activityInfoActivityEnrollMapper.deleteBatchIds(activityEnrollRemoveIds);
+            }
+        }
+        //********************************* ActivityEnroll  增删改  结束 *******************************************/
+
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        activityInfoActivityInfoMapper.deleteBatchIds(ids);
+        activityInfoActivityEnrollRangeMapper.delete(Wrappers.lambdaQuery(ActivityEnrollRange.class).in(ActivityEnrollRange::getActivityInfoId, ids));
+        activityInfoActivityEnrollMapper.delete(Wrappers.lambdaQuery(ActivityEnroll.class).in(ActivityEnroll::getActivityInfoId, ids));
+
+        return true;
+    }
+
+    @Override
+    public Page<ActivityInfoPageVo> getPage(Page<ActivityInfoPageVo> page, ActivityInfoPageDto dto) {
+        return this.baseMapper.getPage(page, dto);
+    }
+}

+ 43 - 0
src/main/java/com/xjrsoft/module/activity/vo/ActivityEnrollRangeVo.java

@@ -0,0 +1,43 @@
+package com.xjrsoft.module.activity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+* @title: 活动报名范围表单出参
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class ActivityEnrollRangeVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 所属班级id
+    */
+    @ApiModelProperty("所属班级id")
+    private Long classId;
+    /**
+    * 所属部门id
+    */
+    @ApiModelProperty("所属部门id")
+    private Long deptId;
+    /**
+    * 用id
+    */
+    @ApiModelProperty("用id")
+    private Long userId;
+    /**
+    * 活动(activity)
+    */
+    @ApiModelProperty("活动(activity)")
+    private Long activityInfoId;
+
+
+
+}

+ 40 - 0
src/main/java/com/xjrsoft/module/activity/vo/ActivityEnrollVo.java

@@ -0,0 +1,40 @@
+package com.xjrsoft.module.activity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+* @title: 活动登记表表单出参
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class ActivityEnrollVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 活动(activity_info)
+    */
+    @ApiModelProperty("活动(activity_info)")
+    private Long activityInfoId;
+    /**
+    * 参与人(xjr_user)
+    */
+    @ApiModelProperty("参与人(xjr_user)")
+    private Date userId;
+    /**
+    * 状态(0:待确认 1:未参与 2:已参与)
+    */
+    @ApiModelProperty("状态(0:待确认 1:未参与 2:已参与)")
+    private Integer STATUS;
+
+
+
+}

+ 104 - 0
src/main/java/com/xjrsoft/module/activity/vo/ActivityInfoPageVo.java

@@ -0,0 +1,104 @@
+package com.xjrsoft.module.activity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+* @title: 活动信息分页列表出参
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class ActivityInfoPageVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private String id;
+    /**
+    * 赛事名称
+    */
+    @ApiModelProperty("活动名称")
+    private String name;
+    /**
+    * 活动地点
+    */
+    @ApiModelProperty("活动地点")
+    private String place;
+    /**
+    * 活动开始时间
+    */
+    @ApiModelProperty("活动开始时间")
+    private Date startDate;
+    /**
+    * 活动结束时间
+    */
+    @ApiModelProperty("活动结束时间")
+    private Date endDate;
+    /**
+    * 活动类型(xjr_dictionary_detail[match_activity_type])
+    */
+    @ApiModelProperty("活动类型(xjr_dictionary_detail[match_activity_type])")
+    private String type;
+
+    @ApiModelProperty("活动类型-中文")
+    private String typeCn;
+    /**
+    * 组织部门(xjr_department)
+    */
+    @ApiModelProperty("组织部门(xjr_department)")
+    private Long orgId;
+    /**
+    * 报名结束时间
+    */
+    @ApiModelProperty("报名结束时间")
+    private Date enrollEndTime;
+    /**
+    * 活动负责人
+    */
+    @ApiModelProperty("活动负责人")
+    private String dutyPerson;
+    /**
+    * 活动负责人电话
+    */
+    @ApiModelProperty("活动负责人电话")
+    private String dutyPersonMobile;
+    /**
+    * 封面图片
+    */
+    @ApiModelProperty("封面图片")
+    private String coverFileId;
+    /**
+    * 报名范围
+    */
+    @ApiModelProperty("报名范围")
+    private String enrollRange;
+    /**
+    * 状态(0:未发布 1:报名中 2:报名结束 3:活动结束)
+    */
+    @ApiModelProperty("状态(0:未发布 1:报名中 2:报名结束 3:活动结束)")
+    private Integer status;
+    /**
+    * 活动内容
+    */
+    @ApiModelProperty("活动内容")
+    private String content;
+    /**
+    * 合作企业
+    */
+    @ApiModelProperty("合作企业")
+    private Long enterpriseId;
+    /**
+    * 1:校企合作活动 2:赛事活动
+    */
+    @ApiModelProperty("1:校企合作活动 2:赛事活动")
+    private Integer category;
+
+    @ApiModelProperty("合作企业名称")
+    private Long enterpriseName;
+
+}

+ 111 - 0
src/main/java/com/xjrsoft/module/activity/vo/ActivityInfoVo.java

@@ -0,0 +1,111 @@
+package com.xjrsoft.module.activity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 活动信息表单出参
+* @Author dzx
+* @Date: 2024-07-19
+* @Version 1.0
+*/
+@Data
+public class ActivityInfoVo {
+
+    /**
+    * 
+    */
+    @ApiModelProperty("")
+    private Long id;
+    /**
+    * 赛事名称
+    */
+    @ApiModelProperty("赛事名称")
+    private String name;
+    /**
+    * 活动地点
+    */
+    @ApiModelProperty("活动地点")
+    private String place;
+    /**
+    * 活动开始时间
+    */
+    @ApiModelProperty("活动开始时间")
+    private Date startDate;
+    /**
+    * 活动结束时间
+    */
+    @ApiModelProperty("活动结束时间")
+    private Date endDate;
+    /**
+    * 活动类型(xjr_dictionary_detail[match_activity_type])
+    */
+    @ApiModelProperty("活动类型(xjr_dictionary_detail[match_activity_type])")
+    private String type;
+    /**
+    * 组织部门(xjr_department)
+    */
+    @ApiModelProperty("组织部门(xjr_department)")
+    private Long orgId;
+    /**
+    * 报名结束时间
+    */
+    @ApiModelProperty("报名结束时间")
+    private Date enrollEndTime;
+    /**
+    * 活动负责人
+    */
+    @ApiModelProperty("活动负责人")
+    private String dutyPerson;
+    /**
+    * 活动负责人电话
+    */
+    @ApiModelProperty("活动负责人电话")
+    private String dutyPersonMobile;
+    /**
+    * 封面图片
+    */
+    @ApiModelProperty("封面图片")
+    private String coverFileId;
+    /**
+    * 报名范围
+    */
+    @ApiModelProperty("报名范围")
+    private String enrollRange;
+    /**
+    * 状态(0:未发布 1:报名中 2:报名结束 3:活动结束)
+    */
+    @ApiModelProperty("状态(0:未发布 1:报名中 2:报名结束 3:活动结束)")
+    private Integer status;
+    /**
+    * 活动内容
+    */
+    @ApiModelProperty("活动内容")
+    private String content;
+    /**
+    * 合作企业
+    */
+    @ApiModelProperty("合作企业")
+    private Long enterpriseId;
+    /**
+    * 1:校企合作活动 2:赛事活动
+    */
+    @ApiModelProperty("1:校企合作活动 2:赛事活动")
+    private Integer category;
+
+
+    /**
+    * activityEnrollRange
+    */
+    @ApiModelProperty("activityEnrollRange子表")
+    private List<ActivityEnrollRangeVo> activityEnrollRangeList;
+    /**
+    * activityEnroll
+    */
+    @ApiModelProperty("activityEnroll子表")
+    private List<ActivityEnrollVo> activityEnrollList;
+
+}

+ 15 - 0
src/main/resources/mapper/activity/ActivityInfoMapper.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xjrsoft.module.activity.mapper.ActivityInfoMapper">
+    <select id="getPage" parameterType="com.xjrsoft.module.activity.dto.ActivityInfoPageDto" resultType="com.xjrsoft.module.activity.vo.ActivityInfoPageVo">
+        SELECT t1.id,t2.name AS type_cn,t3.company_name AS enterprise_name,t1.name,t1.place,t1.start_date,t1.end_date,
+        t1.type, t4.name AS org_name, t1.enroll_end_time, t1.duty_person,t1.duty_person_mobile, t1.cover_file_id,
+        t1.enroll_range, t1.status,t1.content,t1.category FROM activity_info t1
+        LEFT JOIN xjr_dictionary_detail t2 ON t1.type = t2.code
+        LEFT JOIN company_coop t3 ON t1.enterprise_id = t3.id
+        LEFT JOIN xjr_department t4 ON t1.org_id = t4.id
+        WHERE t1.delete_mark = 0 and t1.category = #{dto.category}
+    </select>
+</mapper>

+ 2 - 2
src/main/resources/sqlScript/20240718_sql.sql

@@ -308,8 +308,8 @@ CREATE TABLE `activity_info` (
   `enroll_range` LONGTEXT DEFAULT NULL COMMENT '报名范围',
   STATUS INT DEFAULT 0 COMMENT '状态(0:未发布 1:报名中 2:报名结束 3:活动结束)',
   `content` LONGTEXT DEFAULT NULL COMMENT '活动内容',
-  enterprise_id BIGINT DEFAULT NULL COMMENT '合作企业',
-  category INT DEFAULT NULL COMMENT '1:校企合作活动 2:赛事活动',
+  enterprise_id BIGINT DEFAULT NULL COMMENT '合作企业(company_coop)',
+  category INT DEFAULT NULL COMMENT '活动类别(1:校企合作活动 2:赛事活动)',
   PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='活动信息';