Commit 410ac9d1 by liangkaiping

copy

parent e9cc1124
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-enroll-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>cloud-enroll-api</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.enroll.application.enums;
import java.util.Arrays;
import java.util.List;
/**
*
*/
public enum EvenType {
COURSE_UP(1L,Arrays.asList(1,2)),//"课程上架通知"
COURSE_FINISH(2L, Arrays.asList(1,2)),//课程完成通知
ENROLL_START(3L, Arrays.asList(1,3,4,5)),//报名开始
TRAINING_AUDIT_PASS(4L, Arrays.asList(1,3,4,5)),//项目审核通过通知
TRAINING_AUDIT_FAIL(5L, Arrays.asList(1,3,4,5)),//项目审核不通过通知
SIGN_SUCCESS(6L, Arrays.asList(1,3,4,5)),//签到成功通知
TRAINING_FINISH(7L, Arrays.asList(1,3,4,5)),//项目完成通知
ASSIGNMENT_AUDIT_FINISH(8L, Arrays.asList(1,6,7,8)),//作业已被批阅通知
EXAM_AUDIT_FINISH(9L, Arrays.asList(1,9,10,11)),//考试已被批阅通知
POINT_CHANGE(10L, Arrays.asList(1,12,13,14));//积分变动原因
//数据库message表的id
private Long key;
//数据库message_parameter表的field_type
private List<Integer> fieldType;
private EvenType(Long key, List<Integer> fieldType) {
this.key = key;
this.fieldType = fieldType;
}
public Long getKey() {
return key;
}
public List<Integer> getName() {
return fieldType;
}
}
package com.yizhi.enroll.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.enroll.application.vo.domain.Enroll;
import com.yizhi.enroll.application.vo.domain.EnrollRecord;
import com.yizhi.enroll.application.vo.*;
import com.yizhi.util.application.domain.BizResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@FeignClient(name = "enroll", contextId = "EnrollFeignClient")
public interface EnrollFeignClient {
@RequestMapping(value="/remote/manage/enroll/insertEnroll", method=RequestMethod.POST)
Long insertEnroll(@RequestBody Enroll enroll);
/**
* 新增项目 版本2
* 相对insertEnroll()方法;新增参数校验;2.修改返回值
*/
@PostMapping("/remote/manage/enroll/insertEnroll/v2")
BizResponse<String> insertEnrollV2(@RequestBody Enroll enroll);
@RequestMapping(value="/remote/manage/enroll/updateEnroll", method=RequestMethod.POST)
Long updateEnroll(@RequestBody Enroll enroll);
@RequestMapping(value="/remote/manage/enroll/view/{id}", method=RequestMethod.GET)
Enroll selectByProjectId(@PathVariable("id") Long id);
@RequestMapping(value="/remote/manage/enroll/auditEnroll", method=RequestMethod.POST)
boolean auditEnroll(@RequestBody AuditVO vo);
@RequestMapping(value="/remote/api/enroll/student/insertTrEnrollRecord/{id}", method=RequestMethod.POST)
Long insertTrEnrollRecord(@PathVariable("id") Long id);
@RequestMapping(value="/remote/api/enroll/selectTrainningEnroll", method=RequestMethod.POST)
List<TrainningEnrollVO> selectTrainningEnroll(@RequestBody List<Long> idList);
@PostMapping("/remote/manage/enroll/selectEnrollByProjectId")
ReturnEnrollVO selectEnrollByProjectId(@RequestBody ProjectAccountVO vo);
@GetMapping("/remote/manage/enroll/listEnroll")
Page<EnrollerVo> listEnroll(@RequestBody EnrollerParam enrollerParam);
@PostMapping("/remote/manage/enroll/state/update")
Integer updateState(@RequestBody EnrollRecord enrollRecord);
@GetMapping("/remote/api/enroll/getEnroll")
GetEnrollVO getEnrollByProjectId(@RequestParam("projectId") Long projectId, @RequestParam("accountId") Long accountId);
@GetMapping("/remote/api/enroll/pc/getEnroll")
public GetEnrollVO pcGetEnrollByProjectId(@RequestParam("projectId") Long projectId, @RequestParam("accountId") Long accountId);
/**
* 根据项目id删除报名
* @return 1 成功;-1失败
*/
@PostMapping("/remote/manage/enroll/delete")
Integer deleteEnrollByProjectId(@RequestBody ProjectAccountVO vo);
}
package com.yizhi.enroll.application.vo;
import lombok.Data;
@Data
public class AuditVO {
private Long trainingProjectId;
private Long accountId;
private Integer auditStatus;
}
package com.yizhi.enroll.application.vo;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value = "EnrollListVO", description = "报名新增对象")
@Data
public class EnrollListVO {
private Long id;
private Long trainingProjectId;
private Date startTime;
private Date endTime;
private Integer needAudit;
private Integer personLimitNum;
private String notice;
@ApiModelProperty(value = "是否付费报名,默认0")
private Integer enablePay;
@ApiModelProperty(value = "购买实际价格")
private Integer actualPrice;
@ApiModelProperty(value = "购买原价格")
private Integer originalPrice;
}
package com.yizhi.enroll.application.vo;
import lombok.Data;
@Data
public class EnrollManageVO {
private String userName;
private String orgIds;
private Long trainningProjectId;
private Integer state;
private Integer pageNo;
private Integer pageSize;
}
package com.yizhi.enroll.application.vo;
import java.util.List;
import lombok.Data;
/**
* 报名参数类
* @author mei
*
*/
@Data
public class EnrollerParam {
List<Long> userIdList;
List<String> asList;
Long trainningProjectId;
Integer enableEnroll;
Integer state;
Integer pageNo;
Integer pageSize;
Long site;
Long companyId;
Long orgId;
List<Long> orgIds;
}
package com.yizhi.enroll.application.vo;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 报名主体表,入口在培训项目
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@Data
@ApiModel(value = "EnrollerVo", description = "学员报名管理表")
public class EnrollerVo {
@ApiModelProperty("用户状态")
private Integer accountState;
@ApiModelProperty(notes="学员ID")
private Long accountId;
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty(notes="姓名")
private String name;
@ApiModelProperty("部门ID")
private Long orgId;
@ApiModelProperty("所在部门名称")
private String orgName;
@ApiModelProperty("所在上级部门")
private String orgNames;
@ApiModelProperty("报名时间")
private Date applyTime;
@ApiModelProperty("报名状态")
private Integer state;
@ApiModelProperty("审核结果")
private Integer auditResult;
@ApiModelProperty("项目报名花费金币数")
private Integer expenditure;
}
package com.yizhi.enroll.application.vo;
import lombok.Data;
@Data
public class ExportRequestVO {
private String userKeyWord;
private String orgIds;
private Integer auditStatus;
private Long trainingProjectId;
}
package com.yizhi.enroll.application.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class GetEnrollVO {
private Long id;
private Long trainingProjectId;
private Date startTime;
private Date endTime;
private String notice;
private Boolean needAudit = false;
private Integer limit = 0;
private Integer hasEnrolledNum = 0;
private Boolean hasEnrolled = false;
/**
* 审核状态:0:不需要审核,1:待审核,2:审核通过,3:审核不通过
*/
private Integer auditStatus = 0;
//根据这个判断报名是否有限制人数
private Boolean hasLimitNums;
@ApiModelProperty(value = "是否付费报名,默认false")
private Integer enablePay;
@ApiModelProperty(value = "购买实际价格")
private Integer actualPrice;
@ApiModelProperty(value = "购买原价格")
private Integer originalPrice;
}
package com.yizhi.enroll.application.vo;
import lombok.Data;
@Data
public class IdEnrollVO {
private Long id;
}
package com.yizhi.enroll.application.vo;
import java.util.List;
import lombok.Data;
@Data
public class IdListVO {
private List<Long> idList;
}
package com.yizhi.enroll.application.vo;
import com.yizhi.core.application.context.RequestContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "MessageRemindVo", description = "各个业务设置提醒时的数据")
public class MessageRemindVo implements Serializable {
private static final long serialVersionUID = -7621642684091133619l;
@ApiModelProperty(value = "提醒id ")
private Long id;
@ApiModelProperty(value = "消息id")
private Long messageId;
@ApiModelProperty(value = "消息类型:1、自定义消息;2、系统消息;3、事件触发消息")
private Integer messageType;
@ApiModelProperty(value = "用户id 主要用于触发消息 个人完成发消息类型")
private Long accountId;
@ApiModelProperty(value = "消息内容(完整版)")
private String messageContext;
@ApiModelProperty(value = "关联模块类型(1:学习计划、2:考试、3:调研、4、投票5:报名、6:作业、7:签到、8:项目、9:直播、10:积分)")
private Integer relationType;
@ApiModelProperty(value = "关联的业务id: 比如调研id")
private Long relationId;
@ApiModelProperty(value = "发送方式:1、站内信;2、短信;3、邮件")
private Integer sendType;
@ApiModelProperty(value = "该业务提醒是被关闭,关闭则为true,默认false")
private Boolean hasDeleted = false;
@ApiModelProperty(value = "该业务提醒是否有变化,有则为true,默认false")
private Boolean isChangge = false;
@ApiModelProperty(value = "专门存放提醒时间设置")
private List<MessageTaskRemindVo> messageTaskRemindVos = new ArrayList<>();
@ApiModelProperty(value = "目前只有培训项目需要,计划同步项目可见范围")
private Boolean visibleRangeUpdate = false;
@ApiModelProperty(value = "指定范围(0:全平台,1:指定用户)")
private Integer visibleRange;
@ApiModelProperty(value = "业务参数对象")
private TaskVo taskVo;
@ApiModelProperty(value = "触发消息专用 发送时间")
private Date sendTime;
@ApiModelProperty(value = "是否设置为上架状态")
private Boolean hasUp = false;
@ApiModelProperty(value = "是否是 修改业务状态 ")
private Boolean taskStatusUpdate = false;
@ApiModelProperty(value = "业务状态 1:才允上架许发送(业务上架)0:不允许发送(业务非上架) 仅针对于系统消息")
private Integer taskStatus;
@ApiModelProperty(value = "上下文 必传,主要需要 siteId companyId accountId accountName 都不能是空")
private RequestContext requestContext;
@ApiModelProperty(value = "调研是否为复制类型")
private Boolean isCopy = false;
@ApiModelProperty(value = "复制调研时,旧的调研id")
private Long oldRelationId;
}
package com.yizhi.enroll.application.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "MessageTaskRemindVo", description = "各个业务设置提醒时的数据")
public class MessageTaskRemindVo implements Serializable {
@ApiModelProperty(value = "待发消息id")
private Long messageRemindId;
@ApiModelProperty(value = "提醒时间事件类型 1:业务开始时间、 2:业务结束时间、3:自定义时间")
private Integer timeEventType;
@ApiModelProperty(value = "发生时间枚举:1:五分钟前、2:十分钟前、3:三十分钟前、4:一个小时前、5:两个小时前、6:一天前、7:两天前")
private Integer timeType;
@ApiModelProperty(value = "最终发送时间")
private Date sendTime;
}
package com.yizhi.enroll.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "ProjectAccountVO", description = "报名信息,是否报名")
public class ProjectAccountVO {
@ApiModelProperty(value = "项目id")
private Long projectId;
@ApiModelProperty(value = "学员id")
private Long accountId;
}
package com.yizhi.enroll.application.vo;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "ReturnEnrollVO", description = "报名信息,是否报名")
public class ReturnEnrollVO {
@ApiModelProperty(value = "是否报名, 0 未报名 1 报名")
private Integer isEnroll;
@ApiModelProperty(notes = "主键id")
private Long id;
@ApiModelProperty(notes = "培训项目_id")
private Long trainingProjectId;
@ApiModelProperty(notes = "学员_id")
private Long accountId;
@ApiModelProperty(notes = "报名时间")
private Date applyTime;
@ApiModelProperty(notes = "审核状态:0:不需要审核,1:待审核,2:审核通过,3:审核不通过, 4: 报名未开始, 5:报名已结束 , 6:未报名, 7:未获取该培训报名信息 默认0。")
private Integer auditStatus;
@ApiModelProperty(notes = "审核人id")
private Long auditUserId;
@ApiModelProperty(notes = "审核人姓名")
private String auditUserName;
@ApiModelProperty(notes = "审核时间")
private Date auditTime;
}
package com.yizhi.enroll.application.vo;
import com.yizhi.enroll.application.enums.EvenType;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 消息
* </p>
*
* @author hutao123
* @since 2019-09-09
*/
@Data
@Api(tags = "TaskVo", description = "业务参数对象")
public class TaskVo implements Serializable {
@ApiModelProperty(value = "业务名称")
private String taskName;
@ApiModelProperty(value = "业务开始时间")
private Date taskStratTime;
@ApiModelProperty(value = "业务结束时间")
private Date taskEndTime;
@ApiModelProperty(value = "业务得分")
private Double taskScore;
@ApiModelProperty(value = "业务发生原因(主要用于积分)")
private String reason;
@ApiModelProperty(value = "业务时间(主要用于积分)")
private Date taskTime;
@ApiModelProperty(value = "事件类型")
private EvenType evenType;
}
package com.yizhi.enroll.application.vo;
import java.util.Date;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel(value="TrainningEnrollVO", description="火热报名信息")
@Data
public class TrainningEnrollVO {
@ApiModelProperty(value="培训id")
private Long projectId;
@ApiModelProperty(value="报名id")
private Long enrollId;
@ApiModelProperty(value="是否报名, 1 报名 0 未报名")
private Integer isEnroll;
@ApiModelProperty(value="开始时间")
private Date startTime;
@ApiModelProperty(value="结束时间")
private Date endTime;
}
package com.yizhi.enroll.application.vo.domain;
import com.baomidou.mybatisplus.annotations.TableField;
import com.yizhi.enroll.application.vo.MessageRemindVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* <p>
* 报名主体表,入口在培训项目
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@Data
@ApiModel(value = "Enroll", description = "报名主体表")
public class Enroll {
private static final long serialVersionUID = 1L;
@ApiModelProperty(notes = "主键id")
private Long id;
@ApiModelProperty(notes = "培训项目_id")
private Long trainingProjectId;
@ApiModelProperty(notes = "报名开始时间")
private Date startTime;
@ApiModelProperty(notes = "报名结束时间")
private Date endTime;
@ApiModelProperty(notes = "报名人数限制(0:不限制)默认0")
private Integer personLimitNum;
@ApiModelProperty(notes = "是否需要审核(0:不需要;1:需要)。默认0")
private Integer needAudit;
@ApiModelProperty(notes = "报名须知")
private String notice;
@ApiModelProperty(notes = "创建者id", hidden = true)
private Long createById;
@ApiModelProperty(notes = "创建者名称", hidden = true)
private String createByName;
@ApiModelProperty(notes = "创建时间", hidden = true)
private Date createTime;
@ApiModelProperty(notes = "更新者id", hidden = true)
private Long updateById;
@ApiModelProperty(notes = "修改者名称", hidden = true)
private String updateByName;
@ApiModelProperty(notes = "修改时间", hidden = true)
private Date updateTime;
@ApiModelProperty(notes = "企业_ID", hidden = true)
private Long companyId;
@ApiModelProperty(notes = "部门_ID", hidden = true)
private Long orgId;
@ApiModelProperty(notes = "站点_ID", hidden = true)
private Long siteId;
@ApiModelProperty(value = "各个业务设置提醒时的数据")
private MessageRemindVo messageRemindVo;
@ApiModelProperty(value = "是否付费报名,默认0")
private Integer enablePay;
@ApiModelProperty(value = "购买实际价格")
private Integer actualPrice;
@ApiModelProperty(value = "购买原价格")
private Integer originalPrice;
}
package com.yizhi.enroll.application.vo.domain;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 记录学员报名信息
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@Data
@ApiModel(value = "EnrollRecord", description = "学员报名信息")
public class EnrollRecord {
private static final long serialVersionUID = 2937169388796143250L;
@ApiModelProperty(notes = "主键id")
private Long id;
@ApiModelProperty(notes = "培训项目_id")
private Long trainingProjectId;
@ApiModelProperty(notes = "学员_id")
private Long accountId;
@ApiModelProperty(notes = "所在部门_ID")
private Long orgId;
@ApiModelProperty(notes = "报名时间")
private Date applyTime;
@ApiModelProperty(notes = "审核状态:0:不需要审核,1:待审核,2:审核通过,3:审核不通过。默认0。")
private Integer auditStatus;
@ApiModelProperty(notes = "审核人id")
private Long auditUserId;
@ApiModelProperty(notes = "审核人姓名")
private String auditUserName;
@ApiModelProperty(notes = "审核时间")
private Date auditTime;
@ApiModelProperty("项目报名花费金币数")
private Integer expenditure;
}
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.yizhi</groupId>
<artifactId>cloud-enroll-service</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>cloud-enroll</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-core</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-common-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-util</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-enroll-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-newMessage-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-system-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-training-project-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-orm</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- deploy 时跳过该模块 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.yizhi.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
/**
* @Author: shengchenglong
* @Date: 2018/3/6 14:29
*/
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yizhi"})
@ComponentScan(basePackages = {"com.yizhi"})
public class EnrollApplication {
public static void main(String[] args) {
SpringApplication.run(EnrollApplication.class, args);
}
}
package com.yizhi.application;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author: shengchenglong
* @Date: 2018/3/6 14:30
* docs.html
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.groupName("培训项目-报名")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.fulan.application"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("报名")
//版本
.version("1.0")
.build();
}
}
package com.yizhi.application.constant;
public interface EnrollConstant {
public static final Integer ZERO = 0;
public static final Integer FIRST = 1;
public static final Integer TWO = 2;
}
package com.yizhi.application.controller.api;
import com.yizhi.application.service.EnrollService;
import com.yizhi.enroll.application.vo.GetEnrollVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 报名主体表,入口在培训项目 前端控制器 学员端
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@RestController
@RequestMapping("/remote/api/enroll")
public class EnrollApiController {
@Autowired
private EnrollService enrollService;
@GetMapping("/getEnroll")
public GetEnrollVO getEnrollByProjectId(@RequestParam("projectId") Long projectId, @RequestParam("accountId") Long accountId) {
return enrollService.getEnrollByProjectId(projectId, accountId);
}
@GetMapping("/pc/getEnroll")
public GetEnrollVO pcGetEnrollByProjectId(@RequestParam("projectId") Long projectId, @RequestParam("accountId") Long accountId) {
return enrollService.getEnrollByProjectId(projectId, accountId);
}
}
package com.yizhi.application.controller.api;
import java.util.List;
import com.yizhi.application.service.EnrollRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.yizhi.enroll.application.vo.TrainningEnrollVO;
/**
* <p>
* 记录学员报名信息 前端控制器 学员端
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@RestController
@RequestMapping("/remote")
public class EnrollRecordApiController {
@Autowired
private EnrollRecordService enrollRecordService;
@PostMapping("/api/enroll/student/insertTrEnrollRecord/{id}")
public Long insertTrEnrollRecord(@PathVariable Long id) {
return enrollRecordService.insertTrEnrollRecord(id);
}
@PostMapping("/api/enroll/selectTrainningEnroll")
public List<TrainningEnrollVO> selectTrainningEnroll(@RequestBody List<Long> idList) {
return enrollRecordService.selectTrainningEnroll(idList);
}
}
package com.yizhi.application.controller.manage;
import com.yizhi.application.domain.Enroll;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.EnrollService;
import com.yizhi.enroll.application.vo.ProjectAccountVO;
import com.yizhi.enroll.application.vo.ReturnEnrollVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.swing.plaf.basic.BasicScrollPaneUI;
/**
* <p>
* 报名主体表,入口在培训项目 前端控制器 管理端
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@RestController(value = "enrollManageController1")
public class EnrollManageController {
private static final Logger LOGGER = LoggerFactory.getLogger(EnrollManageController.class);
@Autowired
private EnrollService enrollService;
@Autowired
IdGenerator idGenerator;
@PostMapping("/manage/enroll/insertEnroll")
public Long insertEnroll(@RequestBody Enroll enroll) {
return enrollService.insertEnroll(enroll);
}
@PostMapping("/manage/enroll/updateEnroll")
public Long updateEnroll(@RequestBody Enroll enroll) {
return enrollService.updateEnroll(enroll);
}
@GetMapping("/manage/enroll/view/{id}")
public Enroll selectByProjectId(@PathVariable("id") Long id) {
/* MessageReceiverVO messageReceiverVO;
MessageVO messageVO;
List<Integer> sendTypes = new ArrayList<Integer>();
LOGGER.info("调用消息提醒");
List<MessageReceiverVO> messageReceiverVOS = null;
List<MessageVO> messageVOS = new ArrayList<MessageVO>();
messageVO = new MessageVO();
messageVO.setSubject("test message 7/7"); // 消息标题
messageVO.setMessageType(Integer.parseInt(MessageType.KS.getKey())); // 消息类型(0自定义消息1学习计划2考试3调研4投票5报名6作业7签到8项目)
messageVO.setTaskId(800000L); // 关联业务id,自定义消息为0
messageVO.setContext("mcz"); // 消息内容
messageVO.setHappenTime(new Date());
messageVO.setAheadType(AheadType.ODAY.getCode()); // 提前时间类型
messageVO.setVisibleRange(2);
// 更加可见范围来设置
messageReceiverVOS = new ArrayList<MessageReceiverVO>();
for (int i = 0; i < 10; i++) {
messageReceiverVO = new MessageReceiverVO();
messageReceiverVO.setType(2);
messageReceiverVO.setReceiverId(idGenerator.generate());
messageReceiverVOS.add(messageReceiverVO);
}
messageVO.setReceiverVOs(messageReceiverVOS); // 关联人列表
sendTypes.add(Integer.parseInt(SendType.MAIL.getCode()));// 邮件mcz
sendTypes.add(Integer.parseInt(SendType.INSITE.getCode()));// 站内消息 mcz
messageVO.setSendTypes(sendTypes);
messageVOS.add(messageVO);
try {
// systemMessageClient.add(messageVOS);
// List<MessageVO> list = systemMessageClient.list(800000L);
messageVO.setId(1004631225070448640L);
// systemMessageClient.update(messageVOS);
systemMessageClient.delete(messageVOS);
LOGGER.info("调用消息提醒成功ok");
} catch (Exception e) {
LOGGER.error("调用消息提醒失败");
e.printStackTrace();
}*/
return enrollService.selectByProjectId(id);
}
@PostMapping("/manage/enroll/selectEnrollByProjectId")
public ReturnEnrollVO selectEnrollByProjectId(@RequestBody ProjectAccountVO vo) {
return enrollService.selectEnrollByProjectId(vo);
}
}
package com.yizhi.application.controller.manage;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import com.yizhi.application.domain.EnrollRecord;
import com.yizhi.application.service.EnrollRecordService;
import com.yizhi.util.application.constant.ReturnCode;
import com.yizhi.util.application.domain.Response;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.enroll.application.vo.AuditVO;
import com.yizhi.enroll.application.vo.EnrollerParam;
import com.yizhi.enroll.application.vo.EnrollerVo;
import io.swagger.annotations.ApiParam;
/**
* <p>
* 记录学员报名信息 前端控制器 管理端
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@RestController
@RequestMapping("/remote")
public class EnrollRecordManageController {
private static final Logger LOG = LoggerFactory.getLogger(EnrollRecordManageController.class);
@Resource
private EnrollRecordService enrollRecordService;
@PostMapping("/manage/enroll/auditEnroll")
public boolean auditEnroll(@RequestBody AuditVO vo) {
return enrollRecordService.auditEnroll(vo);
}
@PostMapping("/manage/enroll/exportRegistered")
public Response<String> exportRegistered(@ApiParam(value = "用户关键字") String userKeyWord,
@ApiParam(value = "所在部门") String orgIds, @ApiParam(value = "审核状态") Integer auditStatus,
@ApiParam(value = "项目ID") Long trainingProjectId, HttpServletResponse response) {
try {
// 根据用户关键字 获取 所有用户信息 (模糊匹配)
List<Long> userIdList = new ArrayList<Long>();
List<Long> orgIdsList = new ArrayList<Long>();
if (!StringUtils.isBlank(orgIds)) {
Long[] strArrNum = (Long[]) ConvertUtils.convert(orgIds.split(","), long.class);
orgIdsList = Arrays.asList(strArrNum);
}
Map<String, Object> map = new HashMap<String, Object>();
map.put("userIdList", userIdList);
map.put("orgIdsList", orgIdsList);
map.put("auditStatus", auditStatus);
map.put("trainingProjectId", trainingProjectId);
// List<EnrollerVo> exportRegisteredList =
// trEnrollRecordService.exportRegisteredList(map);
// 账户集合
// List<String> accountIdList =
// null;//exportRegisteredList.stream().map(EnrollerVo::getAccountId).collect(Collectors.toList());
// ID集合 获取用户信息 (用户名, 用户状态)
// List<User> userList = null;
// HSSFWorkbook workBook = new
// ExportUtil().export(exportRegisteredList);
// workBook.write(response.getOutputStream());
return Response.ok();
} catch (Exception e) {
LOG.error("导出已报名用户:" + e);
return Response.fail(ReturnCode.SERVICE_UNAVAILABLE);
}
}
@GetMapping("/manage/enroll/listEnroll")
public Page<EnrollerVo> listEnroll(@RequestBody EnrollerParam enrollerParam) {
if (null == enrollerParam) {
return null;
}
LOG.error("***************************************{}", enrollerParam.getUserIdList());
Map<String, Object> map = new HashMap<String, Object>();
map.put("userIdList", enrollerParam.getUserIdList());
map.put("orgIdList", enrollerParam.getOrgIds());
map.put("trainningProjectId", enrollerParam.getTrainningProjectId());
map.put("enableEnroll", enrollerParam.getEnableEnroll());
map.put("state", enrollerParam.getState());
map.put("pageNo", enrollerParam.getPageNo());
map.put("pageSize", enrollerParam.getPageSize());
Page<EnrollerVo> page = new Page<EnrollerVo>
(Integer.valueOf(map.get("pageNo").toString()), Integer.valueOf(map.get("pageSize").toString()));
return enrollRecordService.listEnroll(map, page);
}
@PostMapping("/manage/enroll/state/update")
public Integer updateState(@RequestBody EnrollRecord enrollRecord) {
return enrollRecordService.updateState(enrollRecord);
}
}
package com.yizhi.application.controller.remote;
import com.alibaba.fastjson.JSONObject;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.EnrollService;
import com.yizhi.core.application.enums.InternationalEnums;
import com.yizhi.enroll.application.vo.ProjectAccountVO;
import com.yizhi.enroll.application.vo.ReturnEnrollVO;
import com.yizhi.enroll.application.vo.domain.Enroll;
import com.yizhi.util.application.domain.BizResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 报名主体表,入口在培训项目 前端控制器 管理端
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@RestController
@RequestMapping(path = "/remote/")
public class EnrollManageController {
private static final Logger LOGGER = LoggerFactory.getLogger(EnrollManageController.class);
@Autowired
private EnrollService enrollService;
@Autowired
IdGenerator idGenerator;
@PostMapping("/manage/enroll/insertEnroll")
public Long insertEnroll(@RequestBody Enroll enroll) {
com.yizhi.application.domain.Enroll enrollDomain = new com.yizhi.application.domain.Enroll();
BeanUtils.copyProperties(enroll,enrollDomain);
return enrollService.insertEnroll(enrollDomain);
}
/**
* 新增项目 版本2
* 相对insertEnroll()方法;新增参数校验;2.修改返回值
*/
@PostMapping("/manage/enroll/insertEnroll/v2")
public BizResponse<String> insertEnrollV2(@RequestBody Enroll enroll) {
com.yizhi.application.domain.Enroll enrollDomain = new com.yizhi.application.domain.Enroll();
enrollDomain.setNeedAudit(enroll.getNeedAudit());
Integer enablePay = enroll.getEnablePay();
enrollDomain.setEnablePay(enablePay);
if (null != enablePay && enablePay.equals(1)){
//开启报名付费,不需要审核
enrollDomain.setNeedAudit(0);
enrollDomain.setActualPrice(enroll.getActualPrice());
enrollDomain.setOriginalPrice(enroll.getOriginalPrice());
}
enrollDomain.setStartTime(enroll.getStartTime());
enrollDomain.setEndTime(enroll.getEndTime());
enrollDomain.setNotice(enroll.getNotice());
enrollDomain.setPersonLimitNum(enroll.getPersonLimitNum());
enrollDomain.setTrainingProjectId(enroll.getTrainingProjectId());
Long aLong = enrollService.insertEnroll(enrollDomain);
if (null == aLong || aLong.compareTo(0L) < 0){
LOGGER.error("报名新增失败;入参 = {}", JSONObject.toJSONString(enroll));
return BizResponse.fail(InternationalEnums.INTERNATIONALIZATIONWORDCONTROLLER4.getCode());
}
return BizResponse.ok();
}
@PostMapping("/manage/enroll/updateEnroll")
public Long updateEnroll(@RequestBody Enroll enroll) {
com.yizhi.application.domain.Enroll enrollDomain = new com.yizhi.application.domain.Enroll();
BeanUtils.copyProperties(enroll,enrollDomain);
return enrollService.updateEnroll(enrollDomain);
}
@GetMapping("/manage/enroll/view/{id}")
public com.yizhi.enroll.application.vo.domain.Enroll selectByProjectId(@PathVariable("id") Long id) {
/* MessageReceiverVO messageReceiverVO;
MessageVO messageVO;
List<Integer> sendTypes = new ArrayList<Integer>();
LOGGER.info("调用消息提醒");
List<MessageReceiverVO> messageReceiverVOS = null;
List<MessageVO> messageVOS = new ArrayList<MessageVO>();
messageVO = new MessageVO();
messageVO.setSubject("test message 7/7"); // 消息标题
messageVO.setMessageType(Integer.parseInt(MessageType.KS.getKey())); // 消息类型(0自定义消息1学习计划2考试3调研4投票5报名6作业7签到8项目)
messageVO.setTaskId(800000L); // 关联业务id,自定义消息为0
messageVO.setContext("mcz"); // 消息内容
messageVO.setHappenTime(new Date());
messageVO.setAheadType(AheadType.ODAY.getCode()); // 提前时间类型
messageVO.setVisibleRange(2);
// 更加可见范围来设置
messageReceiverVOS = new ArrayList<MessageReceiverVO>();
for (int i = 0; i < 10; i++) {
messageReceiverVO = new MessageReceiverVO();
messageReceiverVO.setType(2);
messageReceiverVO.setReceiverId(idGenerator.generate());
messageReceiverVOS.add(messageReceiverVO);
}
messageVO.setReceiverVOs(messageReceiverVOS); // 关联人列表
sendTypes.add(Integer.parseInt(SendType.MAIL.getCode()));// 邮件mcz
sendTypes.add(Integer.parseInt(SendType.INSITE.getCode()));// 站内消息 mcz
messageVO.setSendTypes(sendTypes);
messageVOS.add(messageVO);
try {
// systemMessageClient.add(messageVOS);
// List<MessageVO> list = systemMessageClient.list(800000L);
messageVO.setId(1004631225070448640L);
// systemMessageClient.update(messageVOS);
systemMessageClient.delete(messageVOS);
LOGGER.info("调用消息提醒成功ok");
} catch (Exception e) {
LOGGER.error("调用消息提醒失败");
e.printStackTrace();
}*/
com.yizhi.application.domain.Enroll enroll = enrollService.selectByProjectId(id);
if (null == enroll){
return null;
}
com.yizhi.enroll.application.vo.domain.Enroll enrollVo = new Enroll();
BeanUtils.copyProperties(enroll,enrollVo);
return enrollVo;
}
@PostMapping("/manage/enroll/selectEnrollByProjectId")
public ReturnEnrollVO selectEnrollByProjectId(@RequestBody ProjectAccountVO vo) {
return enrollService.selectEnrollByProjectId(vo);
}
@PostMapping("/manage/enroll/delete")
public Integer deleteEnrollByProjectId(@RequestBody ProjectAccountVO vo){
return enrollService.deleteEnrollByProjectId(vo);
}
}
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 报名主体表,入口在培训项目
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@Data
@TableName("tr_enroll")
public class Enroll extends Model<Enroll> {
private static final long serialVersionUID = 1L;
@TableField(value = "id")
private Long id;
@TableField("training_project_id")
private Long trainingProjectId;
@TableField("start_time")
private Date startTime;
@TableField("end_time")
private Date endTime;
@TableField("person_limit_num")
private Integer personLimitNum;
@TableField("need_audit")
private Integer needAudit;
private String notice;
@TableField("create_by_id")
private Long createById;
@TableField("create_by_name")
private String createByName;
@TableField("create_time")
private Date createTime;
@TableField("update_by_id")
private Long updateById;
@TableField("update_by_name")
private String updateByName;
@TableField("update_time")
private Date updateTime;
@TableField("company_id")
private Long companyId;
@TableField("org_id")
private Long orgId;
@TableField("site_id")
private Long siteId;
@ApiModelProperty(value = "是否付费报名,默认false")
@TableField("enable_pay")
private Integer enablePay;
@ApiModelProperty(value = "购买实际价格")
@TableField("actual_price")
private Integer actualPrice;
@ApiModelProperty(value = "购买原价格")
@TableField("original_price")
private Integer originalPrice;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 记录学员报名信息
* </p>
*
* @author bob123
* @since 2018-03-07
*/
@Data
@TableName("tr_enroll_record")
public class EnrollRecord extends Model<EnrollRecord> {
private static final long serialVersionUID = 2937169388796143250L;
private Long id;
@TableField("training_project_id")
private Long trainingProjectId;
@TableField("account_id")
private Long accountId;
@TableField("org_id")
private Long orgId;
@TableField("apply_time")
private Date applyTime;
@TableField("audit_status")
private Integer auditStatus;
@TableField("audit_user_id")
private Long auditUserId;
@TableField("audit_user_name")
private String auditUserName;
@TableField("audit_time")
private Date auditTime;
@TableField("expenditure")
@ApiModelProperty("项目报名花费金币数")
private Integer expenditure;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.application.mapper;
import java.util.List;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.yizhi.application.domain.Enroll;
import org.apache.ibatis.annotations.Param;
/**
* <p>
* 报名主体表,入口在培训项目 Mapper 接口
* </p>
*
* @author bob123
* @since 2018-03-07
*/
public interface EnrollMapper extends BaseMapper<Enroll> {
List<Enroll> selectByProjectId(@Param("trainingProjectId") Long trainingProjectId);
}
package com.yizhi.application.mapper;
import java.util.List;
import java.util.Map;
import com.yizhi.application.domain.EnrollRecord;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.enroll.application.vo.EnrollerVo;
import com.yizhi.enroll.application.vo.GetEnrollVO;
/**
* <p>
* 记录学员报名信息 Mapper 接口
* </p>
*
* @author bob123
* @since 2018-03-07
*/
public interface EnrollRecordMapper extends BaseMapper<EnrollRecord> {
List<EnrollerVo> exportRegisteredList(Map<String, Object> map);
public List<EnrollerVo> list(@Param("map")Map<String, Object> map, @Param("page")Page<EnrollerVo> page);
public void insert(Map<String, Object> map);
List<EnrollRecord> selectByProjectAndAccountId(Map<String, Object> map);
int updateState(@Param("id")Long id,@Param("auditStatus")Integer auditStatus);
GetEnrollVO getEnrollByProjectId(@Param("projectId")Long projectId);
}
package com.yizhi.application.service;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.application.domain.EnrollRecord;
import com.yizhi.enroll.application.vo.AuditVO;
import com.yizhi.enroll.application.vo.EnrollerVo;
import com.yizhi.enroll.application.vo.TrainningEnrollVO;
/**
* <p>
* 记录学员报名信息 服务类
* </p>
*
* @author bob123
* @since 2018-03-07
*/
public interface EnrollRecordService extends IService<EnrollRecord> {
List<EnrollerVo> exportRegisteredList(Map<String, Object> map);
/**
* 报名管理分页查询
*
* @param map
* 条件
* @param pageIndex
* 页码
* @param pageSize
* 页数量
* @return
*/
Page<EnrollerVo> listEnroll(Map<String, Object> map,Page<EnrollerVo> page);
/**
* 添加学员报名信息
*
* @param trainingProjectId
* @return
*/
Long insertTrEnrollRecord(Long trainingProjectId);
/**
* 审核
*
* @param trPid
* @param aId
* @param auditStatus
*/
boolean auditEnroll(AuditVO vo);
/**
* 项目id 获取学员项目 报名 信息
* @param idList
* @return
*/
List<TrainningEnrollVO> selectTrainningEnroll(List<Long> idList);
/**
* 更新报名状态
*/
Integer updateState(EnrollRecord enrollRecord);
}
package com.yizhi.application.service;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.application.domain.Enroll;
import com.yizhi.enroll.application.vo.GetEnrollVO;
import com.yizhi.enroll.application.vo.ProjectAccountVO;
import com.yizhi.enroll.application.vo.ReturnEnrollVO;
/**
* <p>
* 报名主体表,入口在培训项目 服务类
* </p>
*
* @author bob123
* @since 2018-03-07
*/
public interface EnrollService extends IService<Enroll> {
/**
* 新增
* @param trEnroll
* @return
*/
Long insertEnroll(Enroll enroll);
/**
* 修改
* @param trEnroll
* @return
*/
Long updateEnroll(Enroll trEnroll);
/**
* 通过项目ID获取项目下学员是否需要审核
* @param trainingProjectId
* @return
*/
Integer queryNeedAuditByTrainingProjectId(Long trainingProjectId);
/**
* 通过项目ID获取 报名信息
* @param trainingProjectId
* @return
*/
Enroll selectByProjectId(Long trainingProjectId);
/**
* 培训项目id, 学员id 查找 报名信息,是否报名
* @param vo
* @return
*/
ReturnEnrollVO selectEnrollByProjectId(ProjectAccountVO vo);
/**培训项目 id, 学员 id 查找是否审核,报名开始结束时间
* @param projectId
* @return
*/
GetEnrollVO getEnrollByProjectId(Long projectId, Long accountId);
/**
* 根据项目id删除对应的报名配置;
* @param vo 项目id
* @return 成功返回1;否则返回-1
*/
Integer deleteEnrollByProjectId(ProjectAccountVO vo);
}
package com.yizhi.application.util;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.core.application.publish.CloudEventPublisher;
import com.yizhi.enroll.application.enums.EvenType;
import com.yizhi.enroll.application.vo.MessageRemindVo;
import com.yizhi.enroll.application.vo.TaskVo;
import com.yizhi.message.application.enums.RelationType;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class EnrollEvenSendMessage {
@Autowired
private CloudEventPublisher cloudEventPublisher;
private Logger logger = LoggerFactory.getLogger(EnrollEvenSendMessage.class);
/**
* 触发事件,根据可见范围发消息
*
* @param trainingProject 业务参数对象
* @param accountId
*/
public void evenSendMessage(TrainingProjectVo trainingProject, Long enrollId, Date enrollEndTime, Long accountId, EvenType evenType) {
if (enrollEndTime == null) {
logger.info("缺失必需参数!!");
}
TaskVo taskVo = new TaskVo();
if (trainingProject != null) {
taskVo.setTaskName(trainingProject.getName());
taskVo.setTaskEndTime(trainingProject.getEndTime());
taskVo.setTaskStratTime(trainingProject.getStartTime());
}
MessageRemindVo vo = new MessageRemindVo();
vo.setTaskVo(taskVo);
vo.setVisibleRange(trainingProject.getVisibleRange());
vo.setMessageId(evenType.getKey());
vo.setMessageType(3);
vo.setRelationId(enrollId);
vo.setRelationType(RelationType.BM.getKey());
vo.setSendType(1);
//定时任务默认五分钟执行一次 这里默认暂时不延迟时间
vo.setSendTime(DateUtils.addMinutes(new Date(), 0));
if (accountId != null) {
vo.setAccountId(accountId);
}
RequestContext requestContext = new RequestContext();
requestContext.setCompanyId(trainingProject.getCompanyId());
requestContext.setSiteId(trainingProject.getSiteId());
requestContext.setAccountId(trainingProject.getCreateById());
requestContext.setAccountName(trainingProject.getCreateByName());
vo.setRequestContext(requestContext);
try {
//临时取消触发功能
// cloudEventPublisher.publish(Constans.MESSAGE_QUEUE, new EventWrapper<MessageRemindVo>(null, vo));
// logger.error("发送消息成功===========");
} catch (Exception e) {
e.printStackTrace();
logger.error("发送消息失败=====================", e);
}
}
// /**
// * 系统模板,发消息
// *
// * @param trainingProject 业务参数对象
// */
// public void systemSendMessage(TrainingProject trainingProject, Date enrollEndTime, MessageRemindVo remindVo, RequestContext context) {
// MessageRemindVo vo = new MessageRemindVo();
// if (remindVo.getMessageType() == null || remindVo.getIsChangge() == null || remindVo.getSendType() == null) {
// logger.info("相关参数缺失!!");
// }
//
//
// if (remindVo.getHasDeleted()) {
// vo.setHasDeleted(remindVo.getHasDeleted());
// cloudEventPublisher.publish(Constans.MESSAGE_QUEUE, new EventWrapper<MessageRemindVo>(null, vo));
// } else {
//
// if (trainingProject != null) {
// if (!CollectionUtils.isEmpty(remindVo.getMessageTaskRemindVos())) {
//
// TaskVo taskVo = new TaskVo();
// taskVo.setTaskName(trainingProject.getName());
// taskVo.setTaskStratTime(trainingProject.getStartTime());
// taskVo.setTaskEndTime(trainingProject.getEndTime());
//
// vo.setRelationId(trainingProject.getId());
// vo.setRelationType(RelationType.BM.getKey());
// vo.setMessageType(remindVo.getMessageType());
// vo.setMessageId(remindVo.getMessageId());
// vo.setIsChangge(vo.getIsChangge());
// vo.setMessageTaskRemindVos(remindVo.getMessageTaskRemindVos());
// vo.setSendType(remindVo.getSendType());
// vo.setVisibleRange(trainingProject.getVisibleRange());
// if (context == null) {
// context = new RequestContext();
// context.setCompanyId(trainingProject.getCompanyId());
// context.setSiteId(trainingProject.getSiteId());
// context.setAccountName(trainingProject.getCreateByName());
// context.setAccountId(trainingProject.getCreateById());
// }
// vo.setRequestContext(context);
// vo.setTaskVo(taskVo);
// try {
// cloudEventPublisher.publish(Constans.MESSAGE_QUEUE, new EventWrapper<MessageRemindVo>(null, vo));
// logger.error("发送消息成功=====================");
// } catch (Exception e) {
// e.printStackTrace();
// logger.error("发送消息失败=====================", e);
// }
// }
// }
// }
// }
}
package com.yizhi.application.util;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import com.yizhi.util.application.date.DateUtil;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.util.CellRangeAddress;
import com.yizhi.enroll.application.vo.EnrollerVo;
public class ExportUtil {
public HSSFWorkbook export(List<EnrollerVo> list) throws IOException {
// 创建新的Excel 工作簿
HSSFWorkbook workBook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
HSSFSheet sheet = workBook.createSheet("已报名用户统计表");
sheet.setDefaultColumnWidth(15);
CellRangeAddress cellRangeAddress = new CellRangeAddress(0, 0, 0, 5);
sheet.addMergedRegion(cellRangeAddress);
// 第一行
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow(0);
// 在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell(0);
cell.setCellValue(new HSSFRichTextString("已报名用户统计表"));
// 第二行
cellRangeAddress = new CellRangeAddress(1, 1, 0, 5);
sheet.addMergedRegion(cellRangeAddress);
row = sheet.createRow(1);
cell = row.createCell(0);
cell.setCellValue("统计周期:截止" + DateUtil.toSeconds(new Date()));
// 第三行
cellRangeAddress = new CellRangeAddress(2, 2, 0, 5);
sheet.addMergedRegion(cellRangeAddress);
row = sheet.createRow(2);
cell = row.createCell(0);
cell.setCellValue("用户名");
cell = row.createCell(1);
cell.setCellValue("所在部门");
cell = row.createCell(2);
cell.setCellValue("报名时间");
cell = row.createCell(3);
cell.setCellValue("报名状态");
cell = row.createCell(4);
cell.setCellValue("审核状态");
cell = row.createCell(5);
cell.setCellValue("用户状态");
// 填充数据
for (int i = 0; i < list.size(); i++) {
EnrollerVo ev = list.get(i);
row = sheet.createRow(2 + i);
row.createCell(0).setCellValue(ev.getUserName());
row.createCell(1).setCellValue(ev.getOrgName());
row.createCell(2).setCellValue(ev.getApplyTime());
row.createCell(3).setCellValue(ev.getState());
row.createCell(4).setCellValue(ev.getAuditResult());
row.createCell(5).setCellValue(ev.getAccountState());
}
return workBook;
}
}
server.port=33004
spring.application.name=enroll
ACTIVE=${spring.profiles.active}
spring.profiles.active=dev
# nacos
spring.cloud.nacos.config.shared-dataids=common-${spring.profiles.active}.properties
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=192.168.1.22:3333,192.168.1.22:4444,192.168.1.22:5555
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="${LOG_PATH}"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) %blue([%thread]) %-5level %green(%logger{70}) - %cyan(%msg%n)</pattern>
<charset>UTF-8</charset>
</encoder>
<param name="Encoding" value="UTF-8"/>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名 -->
<FileNamePattern>${LOG_HOME}/${LOG_FILE}-%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<param name="Encoding" value="UTF-8"/>
<!--日志文件最大的大小 -->
<triggeringPolicy
class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>200MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="FILE"/>
<!-- 生产环境将请stdout,testfile去掉 -->
<appender-ref ref="STDOUT"/>
</root>
<logger name="com.fulan.application.mapper" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
</configuration>
\ No newline at end of file
<?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.yizhi.application.mapper.EnrollMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yizhi.application.domain.Enroll">
<id column="id" property="id" />
<result column="training_project_id" property="trainingProjectId" />
<result column="start_time" property="startTime" />
<result column="end_time" property="endTime" />
<result column="person_limit_num" property="personLimitNum" />
<result column="need_audit" property="needAudit" />
<result column="notice" property="notice" />
<result column="create_by_id" property="createById" />
<result column="create_by_name" property="createByName" />
<result column="create_time" property="createTime" />
<result column="update_by_id" property="updateById" />
<result column="update_by_name" property="updateByName" />
<result column="update_time" property="updateTime" />
<result column="company_id" property="companyId" />
<result column="org_id" property="orgId" />
<result column="site_id" property="siteId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, training_project_id, start_time, end_time, person_limit_num, need_audit, notice, create_by_id, create_by_name, create_time,
update_by_id, update_by_name, update_time, company_id, org_id, site_id
</sql>
<select id="selectByProjectId" resultType="com.yizhi.application.domain.Enroll">
select
*
from tr_enroll where training_project_id = #{trainingProjectId}
</select>
</mapper>
<?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.yizhi.application.mapper.EnrollRecordMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap"
type="com.yizhi.application.domain.EnrollRecord">
<id column="id" property="id" />
<result column="training_project_id"
property="trainingProjectId" />
<result column="account_id" property="accountId" />
<result column="org_id" property="orgId" />
<result column="apply_time" property="applyTime" />
<result column="audit_status" property="auditStatus" />
<result column="audit_user_id" property="auditUserId" />
<result column="audit_user_name" property="auditUserName" />
<result column="audit_time" property="auditTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
er.id, er.training_project_id, er.account_id, er.org_id,
er.apply_time,
er.audit_status, er.audit_user_id, er.audit_user_name,
er.audit_time
</sql>
<select id="exportRegisteredList">
select er.account_id as accountId, er.org_id as orgId, er.apply_time
as applyTime, audit_status as state
<!-- <include refid="Base_Column_List" /> -->
from tr_enroll_record er where 1=1
<if test="auditStatus != null and auditStatus != ''">
and er.audit_status = #{auditStatus}
</if>
<if test="trainingProjectId != null and trainingProjectId != ''">
and er.training_project_id = #{trainingProjectId}
</if>
<if test="userIdList != null and userIdList.size() > 0">
and er.account_id in
<foreach item="item" index="index" collection="userIdList"
open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="orgIdsList != null and orgIdsList.size() > 0">
and er.account_id in
<foreach item="item1" index="index" collection="orgIdsList"
open="(" separator="," close=")">
#{item1}
</foreach>
</if>
order by er.audit_status, er.apply_time desc
</select>
<select id="list"
resultType="com.yizhi.enroll.application.vo.EnrollerVo">
select account_id AS accountId,org_id AS orgId,apply_time AS
applyTime,audit_status AS auditResult,expenditure
from tr_enroll_record where 1=1
<if test="map.userIdList!=null">
and account_id in
<foreach item="userId" collection="map.userIdList" index="index"
open="(" separator="," close=")">
#{userId}
</foreach>
</if>
<if test="map.orgIdList!=null">
and org_id in
<foreach item="orgId" collection="map.orgIdList" index="index"
open="(" separator="," close=")">
#{orgId}
</foreach>
</if>
<if test="map.trainningProjectId!=null and map.trainningProjectId!='' ">
and training_project_id = ${map.trainningProjectId}
</if>
<if test="map.state!=null and map.state!='' ">
and audit_status = ${map.state}
</if>
group by account_id
<choose>
<when test="0==map.enableEnroll">
order by apply_time desc
</when>
<otherwise>
order by audit_status,apply_time desc
</otherwise>
</choose>
</select>
<select id="selectByProjectId" resultType="String">
select * from enroll
where training_project_id=${trainningProjectId}
</select>
<select id="selectByProjectAndAccountId"
resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tr_enroll_record er where er.training_project_id = #{projectId}
and er.account_id = #{accountId}
</select>
<select id="getEnrollByProjectId"
resultType="com.yizhi.enroll.application.vo.GetEnrollVO">
SELECT
tr_enroll.training_project_id ,
tr_enroll.start_time,
tr_enroll.end_time,
tr_enroll_record.account_id,
tr_enroll_record.apply_time,
tr_enroll_record.audit_status
FROM
tr_enroll LEFT JOIN
tr_enroll_record
ON tr_enroll.training_project_id = tr_enroll_record.training_project_id
WHERE
tr_enroll.training_project_id = #{projectId}
</select>
<update id="updateState">
update tr_enroll_record a set
a.audit_status=#{auditStatus} where a.id=#{id}
</update>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>sign-assignment-enroll</artifactId>
<groupId>com.yizhi</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<groupId>com.yizhi</groupId>
<artifactId>cloud-enroll-service</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>cloud-enroll-api</module>
<module>cloud-enroll</module>
</modules>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>wmy-parent</artifactId>
<groupId>com.yizhi</groupId>
<version>1.0-SNAPSHOT</version>
<relativePath/>
</parent>
<groupId>com.yizhi</groupId>
<artifactId>sign-assignment-enroll</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>cloud-enroll</module>
</modules>
<packaging>pom</packaging>
<repositories>
<repository>
<id>wmy4.0</id>
<url>http://mvn.km365.pw/nexus/content/groups/wmy4.0-group/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment