Commit 88eec7a7 by 梅存智

Merge branch 'dev' into 'master'

Dev

See merge request !1
parents 3fa8e1ed cadb7555
......@@ -4,6 +4,43 @@ public enum TrEnrollStatusEnum {
NO_ENROLL(10,"无需报名"),
FREE_ENROLL(20,"免费报名"),
PAY_ENROLL(30,"收费报名"),
/**
* 活动待开始
*/
ACT_WAIT_START(0,"待开始"),
/**
* 活动待报名
*/
ACT_WAIT_ENROLL(1,"待报名"),
/**
* 活动待签到
*/
ACT_WAIT_SIGN(2,"待签到"),
/**
* 活动报名
*/
ACT_ENROLL(3,"报名"),
/**
* 活动签到
*/
ACT_SIGN(4,"签到"),
/**
* 活动进行中
*/
ACT_RUN(5,"进行中"),
/**
* 活动已结束
*/
ACT_END(6,"已结束"),
/**
* 活动未报名
*/
ACT_NO_ENROLL(7,"未报名"),
/**
* 活动未签到
*/
ACT_NO_SIGN(8,"未签到")
;
private Integer code;
......
......@@ -22,6 +22,7 @@ public interface TpCommentClient {
@GetMapping("/tpComment/list")
Page<PageCommentVo> list(
@RequestParam(name = "trainingProjectId")Long trainingProjectId,
@RequestParam(name = "bizType", required = false) Integer bizType,
@RequestParam(name = "accountId")Long accountId,
@RequestParam(name = "pageNo")Integer pageNo,
@RequestParam(name = "pageSize")Integer pageSize,
......
......@@ -2,12 +2,18 @@ package com.yizhi.training.application.feign;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "trainingProject", contextId = "TpEnrollPassedClient")
public interface TpEnrollPassedClient {
@GetMapping("/TpStudentEnrollPassedVo/selectTpIdByCondition")
@GetMapping("/TpStudentEnrollPassed/selectTpIdByCondition")
Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId);
@RequestMapping(value="/TpStudentEnrollPassed/insertTpStudentEnrollPassed", method=RequestMethod.GET)
Long insertTpStudentEnrollPassed(@RequestParam(value = "projrctId") Long projrctId, @RequestParam(value = "enrollId") Long enrollId);
}
package com.yizhi.training.application.feign;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.core.application.vo.DroolsVo;
import com.yizhi.training.application.model.BaseModel;
import com.yizhi.training.application.param.TrainingProjectParam;
import com.yizhi.training.application.vo.api.*;
import com.yizhi.training.application.vo.api.CalendarTaskParamVo;
import com.yizhi.training.application.vo.api.HotEnrollListVo;
import com.yizhi.training.application.vo.api.HotEnrollParamVo;
import com.yizhi.training.application.vo.api.MyPageVO;
import com.yizhi.training.application.vo.api.TrainingProjectDetailVo;
import com.yizhi.training.application.vo.api.TrainingProjectListVo;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectVoPortalVo;
import com.yizhi.training.application.vo.domain.TpAuthorizationRangeVo;
import com.yizhi.training.application.vo.domain.TrainingActivityVO;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo;
import com.yizhi.training.application.vo.manage.VisibleRangeExport;
import com.yizhi.training.application.vo.manage.VisibleRangeVo;
import com.yizhi.util.application.domain.BizResponse;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Collection;
import java.util.Date;
import java.util.List;
/**
* @Author: shengchenglong
......@@ -319,4 +330,22 @@ public interface TrainingProjectClient {
@PostMapping("/trainingProject/shelfUp/get")
boolean getShelfUp(@RequestParam("id") Long trainingProjectId);
/**
* 获取有活动的日期
* @param bizType 业务类型:1活动服务;2培训测试
* @param startDate
* @param endDate
* @return
*/
@GetMapping("/trainingProject/getTrainingActivity")
TrainingActivityVO getTrainingActivity(@RequestParam("bizType") Integer bizType, @RequestParam(name = "startDate", required = false) String startDate, @RequestParam(name = "endDate", required = false) String endDate);
/**
* 获取置顶的项目
* @param id
* @return
*/
@GetMapping("/trainingProject/top/get")
List<TrainingProjectVo> getTop();
}
package com.yizhi.training.application.vo.api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 活动类型
*
*/
@Data
@ApiModel(value = "培活动类型vo")
public class ActivityTypeVo {
@ApiModelProperty(value = "名称")
private String activityName;
@ApiModelProperty(value = "值")
private String activityType;
}
......@@ -28,4 +28,6 @@ public class HotEnrollParamVo {
@ApiModelProperty(value = "是否付费;0否;1是;默认为null")
private Integer enablePay ;
@ApiModelProperty(value = "业务类型:1或null活动服务;2培训测试")
private Integer bizType;
}
......@@ -9,6 +9,9 @@ import lombok.Data;
public class TrCommentVo {
@ApiModelProperty(value = "培训项目Id 必传",required = true)
Long trainingProjectId;
@ApiModelProperty(value = "关联业务类型:1活动服务;2新闻资讯;3培训测试;4培训资讯")
Integer bizType;
@ApiModelProperty(value = "评论分页参数")
Integer pageNo = 1;
......
package com.yizhi.training.application.vo.api;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* <p>
* 培训项目详情图片
* </p>
*
* @author shengchenglong
* @since 2018-03-27
*/
@Data
@Api(tags = "TrainingProjectDetailsImageVO", description = "培训项目详情图片")
public class TrainingProjectDetailsImageVO {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
private Long id;
@ApiModelProperty(value = "培训项目id")
@TableField("training_id")
private Long trainingId;
@ApiModelProperty(value = "图片")
private String img;
@ApiModelProperty(value = "图片排序")
private Integer sort;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
@ApiModelProperty(value = "创建者id")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建者名称")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新者id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改者名称")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
}
......@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author: shengchenglong
......@@ -114,4 +115,43 @@ public class TrainingProjectIntroductionVo {
@ApiModelProperty(value = "购买原价格")
private Integer originalPrice;
@ApiModelProperty(value = "项目详情图片")
private List<TrainingProjectDetailsImageVO> detailsImage;
@ApiModelProperty(value = "活动地址")
private String activityAddress;
@ApiModelProperty(value = "组织方")
private String organizer;
@ApiModelProperty(value = "协办方")
private String coOrganizer;
@ApiModelProperty(value = "温馨提示")
private String tips;
@ApiModelProperty(value = "其它提示")
private String other;
@ApiModelProperty(value = "活动状态名称")
private String activityStateName;
@ApiModelProperty(value = "活动状态CODE")
private Integer activityStateCode;
@ApiModelProperty(value = "关联投票ID")
private Long researchId;
@ApiModelProperty(value = "关联投票名称")
private String researchName;
@ApiModelProperty(value = "视频地址")
private String videoUrl;
@ApiModelProperty(value = "签到时间段id")
private Long signTimeId;
@ApiModelProperty(value = "签到途径:0:平台签到,1:自定义项目签到")
private Integer signType;
}
......@@ -32,6 +32,9 @@ public class TrainingProjectListVo {
@ApiModelProperty(value = "多少人已经参与")
private Integer JoinNumber;
@ApiModelProperty(value = "应参加人数,0为不限制")
private Integer canNumber;
@ApiModelProperty(value = "是否已经完成")
private Boolean finished;
......@@ -56,5 +59,22 @@ public class TrainingProjectListVo {
@ApiModelProperty(value = "是否付费报名,默认0否,1是")
private Integer enablePay;
@ApiModelProperty(value = "活动名称")
private String activityName;
@ApiModelProperty(value = "活动栏目")
private List<ActivityTypeVo> activityTypeList;
@ApiModelProperty(value = "活动状态名称")
private String activityStateName;
@ApiModelProperty(value = "活动状态CODE")
private Integer activityStateCode;
@ApiModelProperty(value = "创建人")
private String createbyName;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
......@@ -15,7 +15,7 @@ import java.util.Date;
@ApiModel(value = "首页--训项目列表查询参数vo")
public class TrainingProjectParamVo {
@ApiModelProperty(value = "当前时间,必传")
@ApiModelProperty(value = "当前时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date now;
......@@ -31,4 +31,9 @@ public class TrainingProjectParamVo {
@ApiModelProperty(value = "是否付费筛选,默认0否,1是")
private Integer enablePay;
@ApiModelProperty(value = "业务类型:1或null活动服务;2培训测试")
private Integer bizType;
@ApiModelProperty(value = "活动类型,null查询全部")
private Integer activityType;
}
......@@ -65,7 +65,9 @@ public class TpCommentVo extends Model<TpCommentVo> {
@ApiModelProperty(value = "用户头像")
private String userAvatar;
@ApiModelProperty(value = "业务类型:1活动服务;2新闻资讯;3培训测试;4培训资讯")
private Integer bizType;
@Override
protected Serializable pkVal() {
return this.id;
......
package com.yizhi.training.application.vo.domain;
import java.util.List;
import com.yizhi.training.application.vo.api.ActivityTypeVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@Api(tags = "TrainingActivityVO", description = "项目活动")
public class TrainingActivityVO {
@ApiModelProperty(value = "当天有活动的日期")
private List<String> theDay;
@ApiModelProperty(value = "活动类型")
private List<ActivityTypeVo> activityType;
}
......@@ -140,7 +140,28 @@ public class TrainingProjectVo extends Model<TrainingProjectVo> {
@ApiModelProperty(value = "权重")
private Integer weight;
@ApiModelProperty(value = "应参加人数,0为不限制")
private Integer canNumber;
@ApiModelProperty(value = "报名开始时间")
private Date enrollStartTime;
@ApiModelProperty(value = "报名结束时间")
private Date enrollEndTime;
@ApiModelProperty(value = "签到开始时间")
private Date signStartTime;
@ApiModelProperty(value = "签到结束时间")
private Date signEndTime;
@ApiModelProperty(value = "活动类型CODE")
private Integer activityType;
@ApiModelProperty(value = "业务类型:1活动服务;2培训测试")
private Integer bizType;
@Override
protected Serializable pkVal() {
return this.id;
......
......@@ -30,6 +30,12 @@
<artifactId>cloud-course-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 本地依赖 -->
<dependency>
......
......@@ -85,13 +85,14 @@ public class TpCommentController {
@GetMapping("/list")
public Page<PageCommentVo> list(
@RequestParam(name = "trainingProjectId") Long trainingProjectId,
@RequestParam(name = "bizType", required = false) Integer bizType,
@RequestParam(name = "accountId") Long accountId,
@RequestParam(name = "pageNo") Integer pageNo,
@RequestParam(name = "pageSize") Integer pageSize,
@RequestParam(name = "type") Integer type
) {
Page<PageCommentVo> page = iTpCommentService.getCommentPage(trainingProjectId, accountId, pageNo, pageSize, type);
Page<PageCommentVo> page = iTpCommentService.getCommentPage(trainingProjectId, bizType, accountId, pageNo, pageSize, type);
String fullName;
String name;
TpCommentReply reply = new TpCommentReply();
......
package com.yizhi.training.application.controller;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.training.application.service.ITpStudentEnrollPassedService;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.training.application.domain.TpStudentEnrollPassed;
import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.mapper.TpStudentEnrollPassedMapper;
import com.yizhi.training.application.mapper.TrainingProjectMapper;
import com.yizhi.training.application.service.ITpStudentEnrollPassedService;
@RestController
@RequestMapping("/TpStudentEnrollPassed")
public class TpStudentEnrollPassedController {
......@@ -16,9 +25,42 @@ public class TpStudentEnrollPassedController {
@Autowired
ITpStudentEnrollPassedService studentEnrollPassedService;
@Autowired
private IdGenerator idGenerator;
@Autowired
private TpStudentEnrollPassedMapper tpStudentEnrollPassedMapper;
@Autowired
private TrainingProjectMapper trainingProjectMapper;
@GetMapping("/selectTpIdByCondition")
Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId){
RequestContext context = ContextHolder.get();
return studentEnrollPassedService.selectTpIdByCondition(tpProjrctId,context.getAccountId(),context.getSiteId());
}
@RequestMapping(value="/insertTpStudentEnrollPassed", method=RequestMethod.GET)
Long insertTpStudentEnrollPassed(@RequestParam(value = "projrctId") Long projrctId, @RequestParam(value = "enrollId") Long enrollId) {
RequestContext requestContext = ContextHolder.get();
TrainingProject tp = trainingProjectMapper.selectById(projrctId);
if (null != tp) {
TpStudentEnrollPassed tep = new TpStudentEnrollPassed();
tep.setId(idGenerator.generate());
tep.setTrainingProjectId(projrctId);
tep.setEnrollId(enrollId);
tep.setAccountId(requestContext.getAccountId());
tep.setStartTime(tp.getStartTime());
tep.setEndTime(tp.getEndTime());
tep.setJoinTime(new Date());
tep.setSiteId(requestContext.getSiteId());
tpStudentEnrollPassedMapper.insert(tep);
return tep.getId();
}
return null;
}
}
......@@ -30,6 +30,7 @@ import com.yizhi.training.application.service.*;
import com.yizhi.training.application.util.TrainingEvenSendMessage;
import com.yizhi.training.application.vo.api.*;
import com.yizhi.training.application.vo.domain.TpAuthorizationRangeVo;
import com.yizhi.training.application.vo.domain.TrainingActivityVO;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.*;
import com.yizhi.util.application.domain.BizResponse;
......@@ -917,5 +918,30 @@ public class TrainingProjectController {
return true;
}
/**
* 获取有活动的日期
* @param bizType 业务类型:1活动服务;2培训测试
* @param startDate
* @param endDate
* @return
*/
@GetMapping("/getTrainingActivity")
public TrainingActivityVO getTrainingActivity(@RequestParam("bizType") Integer bizType,
@RequestParam(name = "startDate", required = false) String startDate, @RequestParam(name = "endDate", required = false) String endDate) {
return trainingProjectService.getTrainingActivity(bizType, startDate, endDate);
}
/**
* 获取置顶的项目
* @param id
* @return
*/
@GetMapping("/top/get")
List<TrainingProjectVo> getTop() {
RequestContext context = ContextHolder.get();
Long siteId = context.getSiteId();
List<TrainingProjectVo> list = trainingProjectService.getTop(siteId);
return list;
}
}
......@@ -83,7 +83,9 @@ public class TpComment extends Model<TpComment> {
@TableField("user_avatar")
private String userAvatar;
@ApiModelProperty(value = "关联业务类型:1活动服务;2新闻资讯;3培训测试;4培训资讯")
private Integer bizType;
@Override
protected Serializable pkVal() {
return this.id;
......
......@@ -158,7 +158,46 @@ public class TrainingProject extends Model<TrainingProject> {
@ApiModelProperty(value = "开启付费的项目是否在项目列表中显示;默认1显示")
@TableField("enable_queue")
private Integer enableQueue;
@ApiModelProperty(value = "业务类型:1活动服务;2培训测试")
private Integer bizType;
@ApiModelProperty(value = "活动CODE")
private String activityCode;
@ApiModelProperty(value = "副标题")
private String subtitle;
@ApiModelProperty(value = "活动类型:1支部主题党日;2特色活动;3献计献策;4其他(当业务类型是1时是这些枚举值)")
private String activityType;
@ApiModelProperty(value = "图片来源")
private String pictureSource;
@ApiModelProperty(value = "活动地址")
private String activityAddress;
@ApiModelProperty(value = "组织方")
private String organizer;
@ApiModelProperty(value = "协办方")
private String coOrganizer;
@ApiModelProperty(value = "温馨提示")
private String tips;
@ApiModelProperty(value = "其它提示")
private String other;
@ApiModelProperty(value = "关联投票ID")
private Long researchId;
@ApiModelProperty(value = "是否置顶:true是;false否")
private Boolean topUp;
@ApiModelProperty(value = "视频地址")
private String videoUrl;
@Override
protected Serializable pkVal() {
return this.id;
......
package com.yizhi.training.application.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 培训项目主体表(报名、签到 是在报名签到表中记录项目id,论坛是单独的关系表)
* </p>
*
* @author shengchenglong
* @since 2018-03-27
*/
@Data
@Api(tags = "TrainingProjectDetailsImage", description = "培训项目详情图片")
@TableName("training_project_details_image")
public class TrainingProjectDetailsImage extends Model<TrainingProjectDetailsImage> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键id")
private Long id;
@ApiModelProperty(value = "培训项目id")
@TableField("training_id")
private Long trainingId;
@ApiModelProperty(value = "图片")
private String img;
@ApiModelProperty(value = "图片排序")
private Integer sort;
@ApiModelProperty(value = "是否删除(0:否,1:是)")
private Integer deleted;
@ApiModelProperty(value = "创建者id")
@TableField(value = "create_by_id", fill = FieldFill.INSERT)
private Long createById;
@ApiModelProperty(value = "创建者名称")
@TableField(value = "create_by_name", fill = FieldFill.INSERT)
private String createByName;
@ApiModelProperty(value = "创建时间")
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新者id")
@TableField(value = "update_by_id", fill = FieldFill.INSERT)
private Long updateById;
@ApiModelProperty(value = "修改者名称")
@TableField(value = "update_by_name", fill = FieldFill.INSERT)
private String updateByName;
@ApiModelProperty(value = "修改时间")
@TableField(value = "update_time", fill = FieldFill.INSERT)
private Date updateTime;
@Override
protected Serializable pkVal() {
return this.id;
}
}
......@@ -21,12 +21,13 @@ public interface TpCommentMapper extends BaseMapper<TpComment> {
/**
* 培训项目列表分页查询 RowBounds
* @param trainingProjectId
* @param bizType 关联业务类型:1活动服务;2新闻资讯;3培训测试;4培训资讯
* @param rowBounds
* @return
*/
List<PageCommentVo> searchPage(@Param("trainingProjectId") Long trainingProjectId,@Param("accountId") Long accountId, RowBounds rowBounds,@Param("type") Integer type);
List<PageCommentVo> searchPage(@Param("trainingProjectId") Long trainingProjectId, @Param("bizType") Integer bizType, @Param("accountId") Long accountId, RowBounds rowBounds,@Param("type") Integer type);
Integer searchPageCount(@Param("trainingProjectId") Long trainingProjectId,@Param("accountId") Long accountId,@Param("type") Integer type);
Integer searchPageCount(@Param("trainingProjectId") Long trainingProjectId, @Param("bizType") Integer bizType, @Param("accountId") Long accountId,@Param("type") Integer type);
List<PageCommentVo> getList(@Param("trainingProjectId") Long trainingProjectId,@Param("accountId") Long accountId);
List<PageCommentVo> getList(@Param("trainingProjectId") Long trainingProjectId, @Param("bizType") Integer bizType, @Param("accountId") Long accountId);
}
......@@ -98,6 +98,12 @@
AND tuu.`account_id` = #{accountId}
WHERE
c.`training_project_id` = #{trainingProjectId}
<if test="bizType == null">
AND c.biz_type=1
</if>
<if test="bizType != null">
AND c.biz_type=#{bizType}
</if>
AND c.`audit_status` = 0
<if test="type != 0 ">
and c.state=0
......@@ -157,6 +163,12 @@
AND tuu.`account_id` = #{accountId}
WHERE
c.`training_project_id` = #{trainingProjectId}
<if test="bizType == null">
AND c.biz_type=1
</if>
<if test="bizType != null">
AND c.biz_type=#{bizType}
</if>
AND c.`audit_status` = 0
<if test="type != 0 ">
and c.state=0
......@@ -220,6 +232,12 @@
AND tuu.`account_id` = #{accountId}
WHERE
c.`training_project_id` = #{trainingProjectId}
<if test="bizType == null">
AND c.biz_type=1
</if>
<if test="bizType != null">
AND c.biz_type=#{bizType}
</if>
AND c.`audit_status` = 0
GROUP BY
c.`id`
......
......@@ -37,4 +37,24 @@ public interface TpStudentEnrollPassedMapper extends BaseMapper<TpStudentEnrollP
@Select("select id from tp_student_enroll_passed " +
"where account_id = #{accountId} and site_id = #{siteId} and training_project_id = #{tpProjrctId}")
Long selectTpIdByCondition(@Param("tpProjrctId")Long tpProjrctId,@Param("accountId") Long accountId,@Param("siteId")Long siteId);
/**
* 查询已经签到的培训项目id
*
* @param accountId
* @return
*/
@Select("select training_project_id from tr_sign_record " +
"where account_id = #{accountId}")
List<Long> selectSignTpIds(@Param("accountId") Long accountId);
/**
* 查询签到ID
*
* @param accountId
* @return
*/
@Select("select id from tr_sign_time " +
"where training_project_id = #{tpProjrctId} AND deleted=0 GROUP BY id")
Long selectSignTimeId(@Param("tpProjrctId") Long tpProjrctId);
}
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.vo.api.HotEnrollListVo;
import com.yizhi.training.application.vo.api.PaidTrainingProjectVO;
import com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO;
import com.yizhi.training.application.vo.api.TrainingProjectListVo;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import org.apache.ibatis.annotations.Param;
......@@ -54,16 +55,21 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
* @param siteId 站点id
* @param keyword 关键字(模糊查询)
* @param enablePay 是否付费;0否 ;1是
* @param bizType 业务类型:1或null活动服务;2培训测试
* @param activityType 活动类型,null查询全部
* @return
*/
List<TrainingProjectVo> apiPageList(@Param("visiableTpIds") List<Long> visiableTpIds,
@Param("passEnrollTpIds") List<Long> passEnrollTpIds,
@Param("now") Date now, @Param("siteId") Long siteId,
@Param("keyword") String keyword,@Param("enablePay") Integer enablePay, Page<TrainingProjectListVo> page);
@Param("keyword") String keyword,@Param("enablePay") Integer enablePay,
@Param("bizType") Integer bizType,
@Param("activityType") Integer activityType, Page<TrainingProjectListVo> page);
Integer apiPageListCount(@Param("visiableTpIds") List<Long> visiableTpIds,
@Param("passEnrollTpIds") List<Long> passEnrollTpIds,
@Param("now") Date now, @Param("siteId") Long siteId, @Param("keyword") String keyword);
@Param("now") Date now, @Param("siteId") Long siteId, @Param("keyword") String keyword,
@Param("bizType") Integer bizType);
/**
* 火热报名列表
......@@ -71,12 +77,14 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
* @param site
* @param passIds 已经报名的培训项目id
* @param visiableTpIds 该学员可见范围的培训项目id
* @param bizType 业务类型:1或null活动服务;2培训测试
* @return
*/
// List<TrainingProjectVo> apiHotPageList(@Param("siteId") Long site, @Param("passIds") List<Long> passIds, @Param("visiableTpIds") List<Long> visiableTpIds, @Param("now") Date now, RowBounds rowBounds);
List<HotEnrollListVo> apiHotPageList(@Param("siteId") Long site, @Param("passIds") List<Long> passIds,
@Param("visiableTpIds") List<Long> visiableTpIds, @Param("now") Date now,
@Param("enablePay") Integer enablePay,Page<HotEnrollListVo> page);
@Param("enablePay") Integer enablePay,
@Param("bizType") Integer bizType,Page<HotEnrollListVo> page);
Integer apiHotPageListNum(@Param("siteId") Long site, @Param("passIds") List<Long> passIds, @Param("visiableTpIds") List<Long> visiableTpIds, @Param("now") Date now);
......@@ -327,4 +335,26 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
@Param("orderField") String orderField, @Param("order") String order);
TrainingProjectVo getProjectDesc(@Param("projectId") Long projectId);
/**
* 获取培训项目详情图片
* @param projectId
* @return
*/
List<TrainingProjectDetailsImageVO> selectTrainingProjectDetailsImage(@Param("projectId") Long projectId);
/**
* 获取项目项目时间、报名时间、签到时间
* @param siteId
* @param projectId
* @return
*/
TrainingProjectVo selectTrainingProjectTime(@Param("siteId") Long siteId, @Param("projectId") Long projectId);
/**
* 获取置顶的项目
* @param siteId
* @return
*/
List<TrainingProjectVo> getTop(@Param("siteId") Long siteId);
}
......@@ -206,20 +206,27 @@
<!-- 培训项目首页列表 -->
<select id="apiPageList" resultType="com.yizhi.training.application.vo.domain.TrainingProjectVo">
select tb.*,en.enable_pay,en.actual_price
select tb.*,en.enable_pay,en.actual_price,en.person_limit_num AS canNumber,en.start_time AS enrollStartTime, en.end_time AS enrollEndTime,
sg.start_time AS signStartTime, sg.end_time AS signEndTime,tb.activity_type,tb.biz_type
from training_project tb
left join tr_enroll en on tb.id = en.training_project_id
left join tr_sign_time sg on tb.id = sg.training_project_id
where
-- 首先用站点 id 和上架状态缩小范围
(tb.site_id = #{siteId} and tb.status = 1 and tb.deleted = 0 and <![CDATA[ DATE_FORMAT(tb.end_time, '%Y-%m-%d') >= DATE_FORMAT(#{now}, '%Y-%m-%d') ]]>)
(tb.site_id = #{siteId} and tb.status = 1 and tb.deleted = 0
<if test="now == null">
)
</if>
<if test="now != null">
and <![CDATA[ DATE_FORMAT(tb.end_time, '%Y-%m-%d') >= DATE_FORMAT(#{now}, '%Y-%m-%d') ]]>)
</if>
and
(
-- 平台可见 and 不需要报名
(tb.visible_range = 1 and tb.enable_enroll = 0)
-- 指定范围,不需报名
-- 平台可见
(tb.visible_range = 1)
-- 指定范围
<if test="visiableTpIds != null and visiableTpIds.size > 0">
or (tb.id in <foreach collection="visiableTpIds" open="(" close=")" separator="," item="item">#{item}</foreach> and tb.enable_enroll = 0)
or (tb.id in <foreach collection="visiableTpIds" open="(" close=")" separator="," item="item">#{item}</foreach>)
</if>
-- 报名通过
<if test="passEnrollTpIds != null and passEnrollTpIds.size > 0">
......@@ -240,7 +247,16 @@
<if test="enablePay != null and enablePay.equals(1)">
and (tb.enable_enroll = 1 and tb.enable_queue = 1 and en.enable_pay = '1')
</if>
order by tb.start_time desc,tb.create_time desc
<if test="bizType == null">
and tb.biz_type = 1
</if>
<if test="bizType != null">
and tb.biz_type = #{bizType}
</if>
<if test="activityType != null">
and tb.activity_type = #{activityType}
</if>
order by tb.end_time desc,tb.create_time desc
</select>
<select id="apiPageListCount" resultType="java.lang.Integer">
......@@ -251,11 +267,11 @@
(tb.site_id = #{siteId} and tb.status = 1 and tb.deleted = 0 and <![CDATA[ DATE_FORMAT(tb.end_time, '%Y-%m-%d') >= DATE_FORMAT(#{now}, '%Y-%m-%d') ]]>)
and
(
-- 平台可见 and 不需要报名
(tb.visible_range = 1 and tb.enable_enroll = 0)
-- 指定范围,不需报名
-- 平台可见
(tb.visible_range = 1)
-- 指定范围
<if test="visiableTpIds != null and visiableTpIds.size > 0">
or (tb.id in <foreach collection="visiableTpIds" open="(" close=")" separator="," item="item">#{item}</foreach> and tb.enable_enroll = 0)
or (tb.id in <foreach collection="visiableTpIds" open="(" close=")" separator="," item="item">#{item}</foreach>)
</if>
-- 报名通过
<if test="passEnrollTpIds != null and passEnrollTpIds.size > 0">
......@@ -267,6 +283,12 @@
or
tb.name like concat('%', #{keyword}, '%'))
</if>
<if test="bizType == null">
and tb.biz_type = 1
</if>
<if test="bizType != null">
and tb.biz_type = #{bizType}
</if>
</select>
<!-- 我的培训项目列表 未开始(已上架,开始时间大于当前时间)-->
......@@ -484,6 +506,12 @@
<if test="enablePay != null and enablePay.equals(1)">
and (tb.enable_queue = 1 and en.enable_pay = '1')
</if>
<if test="bizType == null">
and tb.biz_type = 1
</if>
<if test="bizType != null">
and tb.biz_type = #{bizType}
</if>
and (
-- 可见范围之内的 或者 平台用户可见的
tb.visible_range = 1
......@@ -838,5 +866,26 @@
where tp.id = #{projectId} and tp.deleted = 0
</select>
<select id="selectTrainingProjectDetailsImage" resultType="com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO">
select a.img
from training_project_details_image a
where a.training_id = #{projectId} and a.deleted = 0
order by a.sort
</select>
<select id="selectTrainingProjectTime" resultType="com.yizhi.training.application.vo.domain.TrainingProjectVo">
select tb.enable_enroll,tb.enable_sign,tb.start_time,tb.end_time,tb.id,en.enable_pay,en.actual_price,en.person_limit_num AS canNumber,en.start_time AS enrollStartTime, en.end_time AS enrollEndTime,
sg.start_time AS signStartTime, sg.end_time AS signEndTime,tb.activity_type
from training_project tb
left join tr_enroll en on tb.id = en.training_project_id
left join tr_sign_time sg on tb.id = sg.training_project_id
where tb.id=#{projectId} and tb.site_id = #{siteId} and tb.status = 1 and tb.deleted = 0
</select>
<select id="getTop" resultType="com.yizhi.training.application.vo.domain.TrainingProjectVo">
select tb.id,tb.name,tb.logo_img,tb.create_by_name,tb.create_time
from training_project tb
where tb.site_id = #{siteId} and tb.biz_type = 2 and tb.status = 1 and tb.top_up = 1 and tb.deleted = 0
</select>
</mapper>
......@@ -17,7 +17,7 @@ import com.yizhi.training.application.vo.manage.PageCommentVo;
*/
public interface ITpCommentService extends IService<TpComment> {
Page<PageCommentVo> getCommentPage(Long trainingProjectId,Long accountId, int pageNo, int pageSize,int type);
Page<PageCommentVo> getCommentPage(Long trainingProjectId, Integer bizType, Long accountId, int pageNo, int pageSize,int type);
List<PageCommentVo> getList(Long trainingProjectId,Long accountId);
List<PageCommentVo> getList(Long trainingProjectId, Integer bizType, Long accountId);
}
package com.yizhi.training.application.service;
import java.io.IOException;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.core.application.context.RequestContext;
......@@ -8,17 +15,20 @@ import com.yizhi.training.application.domain.TpPlan;
import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.model.BaseModel;
import com.yizhi.training.application.param.PaidTrainingProjectQO;
import com.yizhi.training.application.vo.api.*;
import com.yizhi.training.application.vo.api.HotEnrollListVo;
import com.yizhi.training.application.vo.api.HotEnrollParamVo;
import com.yizhi.training.application.vo.api.MyPageVO;
import com.yizhi.training.application.vo.api.PaidTrainingProjectVO;
import com.yizhi.training.application.vo.api.TrainingProjectDetailVo;
import com.yizhi.training.application.vo.api.TrainingProjectListVo;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectVoPortalVo;
import com.yizhi.training.application.vo.domain.TrainingActivityVO;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo;
import com.yizhi.training.application.vo.manage.VisibleRangeExport;
import com.yizhi.training.application.vo.manage.VisibleRangeVo;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.IOException;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
/**
* <p>
......@@ -220,4 +230,20 @@ public interface ITrainingProjectService extends IService<TrainingProject> {
* @param projectId 项目id
*/
TrainingProjectVo getProjectDescription(Long projectId);
/**
* 获取有活动的日期
* @param bizType 业务类型:1活动服务;2培训测试
* @param startDate
* @param endDate
* @return
*/
TrainingActivityVO getTrainingActivity(Integer bizType, String startDate, String endDate);
/**
* 获取置顶的项目信息
* @param siteId
* @return
*/
List<TrainingProjectVo> getTop(Long siteId);
}
......@@ -24,17 +24,17 @@ import org.springframework.stereotype.Service;
public class TpCommentServiceImpl extends ServiceImpl<TpCommentMapper, TpComment> implements ITpCommentService {
@Override
public Page<PageCommentVo> getCommentPage(Long trainingProjectId, Long accountId, int pageNo, int pageSize, int type) {
public Page<PageCommentVo> getCommentPage(Long trainingProjectId, Integer bizType, Long accountId, int pageNo, int pageSize, int type) {
Page<PageCommentVo> page = new Page<PageCommentVo>(pageNo, pageSize);
page.setRecords(this.baseMapper.searchPage(trainingProjectId,accountId, new RowBounds(page.getOffset(), page.getLimit()),type));
Integer count = this.baseMapper.searchPageCount(trainingProjectId,accountId,type);
page.setRecords(this.baseMapper.searchPage(trainingProjectId, bizType, accountId, new RowBounds(page.getOffset(), page.getLimit()),type));
Integer count = this.baseMapper.searchPageCount(trainingProjectId, bizType, accountId,type);
page.setTotal(count);
return page;
}
@Override
public List<PageCommentVo> getList(Long trainingProjectId,Long accountId){
List<PageCommentVo> list = this.baseMapper.getList(trainingProjectId, accountId);
public List<PageCommentVo> getList(Long trainingProjectId, Integer bizType, Long accountId){
List<PageCommentVo> list = this.baseMapper.getList(trainingProjectId, bizType, accountId);
return list;
}
}
package com.yizhi.training.application.service.impl;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
......@@ -17,11 +37,34 @@ import com.yizhi.course.application.feign.RecordeClient;
import com.yizhi.enroll.application.feign.EnrollFeignClient;
import com.yizhi.enroll.application.vo.ProjectAccountVO;
import com.yizhi.enroll.application.vo.domain.Enroll;
import com.yizhi.research.application.feign.ResearchClient;
import com.yizhi.research.application.vo.domain.ResearchVo;
import com.yizhi.sign.application.feign.SignRecordApiClient;
import com.yizhi.site.application.feign.PortalManageFeignClients;
import com.yizhi.site.application.vo.domain.SiteDicVo;
import com.yizhi.training.application.constant.ProjectConstant;
import com.yizhi.training.application.domain.*;
import com.yizhi.training.application.domain.TpAuthorizationRange;
import com.yizhi.training.application.domain.TpPlan;
import com.yizhi.training.application.domain.TpPlanActivity;
import com.yizhi.training.application.domain.TpStudentEnrollPassed;
import com.yizhi.training.application.domain.TpStudentProjectRecord;
import com.yizhi.training.application.domain.TpViewRecord;
import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.enums.TrEnrollStatusEnum;
import com.yizhi.training.application.mapper.*;
import com.yizhi.training.application.mapper.TpAuthorizationRangeMapper;
import com.yizhi.training.application.mapper.TpPlanActivityConditionPostMapper;
import com.yizhi.training.application.mapper.TpPlanActivityConditionPreMapper;
import com.yizhi.training.application.mapper.TpPlanActivityMapper;
import com.yizhi.training.application.mapper.TpPlanConditionPostMapper;
import com.yizhi.training.application.mapper.TpPlanConditionPreMapper;
import com.yizhi.training.application.mapper.TpPlanMapper;
import com.yizhi.training.application.mapper.TpPlanRemindMapper;
import com.yizhi.training.application.mapper.TpRemindMapper;
import com.yizhi.training.application.mapper.TpStudentActivityRecordMapper;
import com.yizhi.training.application.mapper.TpStudentEnrollPassedMapper;
import com.yizhi.training.application.mapper.TpStudentProjectRecordMapper;
import com.yizhi.training.application.mapper.TpViewRecordMapper;
import com.yizhi.training.application.mapper.TrainingProjectMapper;
import com.yizhi.training.application.model.BaseModel;
import com.yizhi.training.application.param.PaidTrainingProjectQO;
import com.yizhi.training.application.service.ITpAuthorizationRangeService;
......@@ -30,27 +73,30 @@ import com.yizhi.training.application.service.ITpPlanActivityService;
import com.yizhi.training.application.service.ITrainingProjectService;
import com.yizhi.training.application.util.DeleteActivityAdvice;
import com.yizhi.training.application.util.TrainingEvenSendMessage;
import com.yizhi.training.application.vo.api.*;
import com.yizhi.training.application.vo.manage.*;
import com.yizhi.training.application.vo.api.ActivityTypeVo;
import com.yizhi.training.application.vo.api.HotEnrollListVo;
import com.yizhi.training.application.vo.api.HotEnrollParamVo;
import com.yizhi.training.application.vo.api.MyPageVO;
import com.yizhi.training.application.vo.api.PaidTrainingProjectVO;
import com.yizhi.training.application.vo.api.TrainingProjectContentVo;
import com.yizhi.training.application.vo.api.TrainingProjectDetailVo;
import com.yizhi.training.application.vo.api.TrainingProjectDetailsImageVO;
import com.yizhi.training.application.vo.api.TrainingProjectIntroductionVo;
import com.yizhi.training.application.vo.api.TrainingProjectListVo;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectParamVo;
import com.yizhi.training.application.vo.api.TrainingProjectProgressVo;
import com.yizhi.training.application.vo.api.TrainingProjectVoPortalVo;
import com.yizhi.training.application.vo.domain.TrainingActivityVO;
import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.MessageRemindVo;
import com.yizhi.training.application.vo.manage.RelationIdVo;
import com.yizhi.training.application.vo.manage.TpRemindVo;
import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo;
import com.yizhi.training.application.vo.manage.VisibleRangeExport;
import com.yizhi.training.application.vo.manage.VisibleRangeVo;
import com.yizhi.util.application.clazz.ClassUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.yizhi.util.application.date.DateUtil;
/**
* <p>
......@@ -119,6 +165,19 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
@Autowired
private DeleteActivityAdvice deleteActivityAdvice;
@Autowired
private PortalManageFeignClients portalManageFeignClients;
@Autowired
ResearchClient researchClient;
private static final String ACTIVITY_KEY = "activity";
private static final String REDIS_PRO_ACTIVITY_TYPE_KEY = "REDIS_PRO_ACTIVITY_TYPE";
/**
* 业务类型:1活动服务
*/
private static final Integer PROJECT_BIZ_TYPE = 1;
@Override
public Page<TrainingProject> searchPage(String name, Long tpClassificationId,
......@@ -402,12 +461,20 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
Page<TrainingProjectListVo> page = new Page<>(paramVo.getPageNo(), paramVo.getPageSize());
List<TrainingProjectListVo> pageList = new ArrayList<>();
List<com.yizhi.training.application.vo.domain.TrainingProjectVo> list = trainingProjectMapper.apiPageList(visiableTpIds, passEnrollTpIds, paramVo.getNow(), context.getSiteId(), paramVo.getKeyword(),enablePay, page);
List<com.yizhi.training.application.vo.domain.TrainingProjectVo> list = trainingProjectMapper.apiPageList(visiableTpIds, passEnrollTpIds, paramVo.getNow(), context.getSiteId(), paramVo.getKeyword(),enablePay,
paramVo.getBizType(),paramVo.getActivityType(),page);
List<Long> finishedTpIds = tpStudentProjectRecordMapper.getByAccountId(context.getAccountId());
//获取活动栏目
List<SiteDicVo> siteDics = (List<SiteDicVo>) redisCache.get(REDIS_PRO_ACTIVITY_TYPE_KEY);
if(siteDics == null){
siteDics = portalManageFeignClients.list(ACTIVITY_KEY);
redisCache.set(REDIS_PRO_ACTIVITY_TYPE_KEY, siteDics, 7200L);
}
if (!CollectionUtils.isEmpty(list)) {
/*Date date = new Date();
List<Long> tpIdsForJoinNum = null;
List<Long> relationIdsForJoinNum = null;
List<Long> relationIdsForJoinNum = null;*/
for (com.yizhi.training.application.vo.domain.TrainingProjectVo tr : list) {
TrainingProjectListVo vo = new TrainingProjectListVo();
vo.setEndTime(tr.getEndTime());
......@@ -420,9 +487,89 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
vo.setJoinNumber(getJoinNumberV2(tr));
//是否付费标签
vo.setEnablePay(tr.getEnablePay());
vo.setCanNumber(tr.getCanNumber());
vo.setCreateTime(tr.getCreateTime());
vo.setCreatebyName(tr.getCreateByName());
//活动名称
if(siteDics != null){
for(SiteDicVo dic : siteDics){
if(dic.getType().equals(String.valueOf(tr.getActivityType()))){
vo.setActivityName(dic.getName());
}
}
}
/**
* 设置活动状态:
* 1、先根据项目的开始和结束时间设置活动状态
*/
TrEnrollStatusEnum state = compareTime(tr.getStartTime(), tr.getEndTime());
vo.setActivityStateCode(state.getCode());
vo.setActivityStateName(state.getValue());
//活动没结束
if (tr.getBizType().equals(PROJECT_BIZ_TYPE) && state != TrEnrollStatusEnum.ACT_END) {
//2、活动要报名和签到
if((tr.getEnableEnroll() == 1 && tr.getEnableSign() == 1) || tr.getEnableEnroll() == 1){
//判断学员是否报名了该项目
if (CollectionUtils.isEmpty(passEnrollTpIds) || !passEnrollTpIds.contains(tr.getId())) {
//没有报名:判断活动状态是未报名还是报名,默认待报名
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getValue());
//根据报名开始时间和签到开始时间设置活动状态
state = compareTime(tr.getEnrollStartTime(), tr.getSignStartTime() == null ? tr.getEnrollEndTime() : tr.getSignStartTime());
if(state == TrEnrollStatusEnum.ACT_RUN){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_ENROLL.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_ENROLL.getValue());
} else if(state == TrEnrollStatusEnum.ACT_END){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_ENROLL.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_ENROLL.getValue());
}
} else {
//查询签到记录
List<Long> passSignTpIds = tpStudentEnrollPassedMapper.selectSignTpIds(context.getAccountId());
if (CollectionUtils.isEmpty(passSignTpIds) || !passSignTpIds.contains(tr.getId())) {
//没有签到:判断活动状态是签到还是未签到,默认待签到
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_SIGN.getValue());
//根据签到开始时间和签到结束时间设置活动状态
state = compareTime(tr.getSignStartTime(), tr.getSignEndTime());
if(state == TrEnrollStatusEnum.ACT_RUN){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_SIGN.getValue());
} else if(state == TrEnrollStatusEnum.ACT_END){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_SIGN.getValue());
}
}
}
} else if(tr.getEnableEnroll() == 0 && tr.getEnableSign() == 1){
//3、活动要签到
//查询签到记录
List<Long> passSignTpIds = tpStudentEnrollPassedMapper.selectSignTpIds(context.getAccountId());
if (CollectionUtils.isEmpty(passSignTpIds) || !passSignTpIds.contains(tr.getId())) {
//没有签到:判断活动状态是签到还是未签到,默认待签到
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_SIGN.getValue());
//根据签到开始时间和签到结束时间设置活动状态
state = compareTime(tr.getSignStartTime(), tr.getSignEndTime());
if(state == TrEnrollStatusEnum.ACT_RUN){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_SIGN.getValue());
} else if(state == TrEnrollStatusEnum.ACT_END){
vo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_SIGN.getCode());
vo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_SIGN.getValue());
}
}
}
}
pageList.add(vo);
}
}
//page.setTotal(trainingProjectMapper.apiPageListCount(visiableTpIds, passEnrollTpIds, paramVo.getNow(), context.getSiteId(), paramVo.getKeyword()));
page.setRecords(pageList);
return page;
......@@ -447,7 +594,7 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
enablePay = 0;
}
Page<HotEnrollListVo> page = new Page<>(model.getObj().getPageNo(), model.getObj().getPageSize());
page.setRecords(trainingProjectMapper.apiHotPageList(model.getContext().getSiteId(), passEnrollTpIds, visiableTpIds, new Date(),enablePay, page));
page.setRecords(trainingProjectMapper.apiHotPageList(model.getContext().getSiteId(), passEnrollTpIds, visiableTpIds, new Date(),enablePay, model.getObj().getBizType(), page));
//page.setTotal(trainingProjectMapper.apiHotPageListNum(model.getContext().getSiteId(), passEnrollTpIds, visiableTpIds, new Date()));
return page;
}
......@@ -548,11 +695,103 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
TrainingProjectDetailVo vo = new TrainingProjectDetailVo();
vo.setContentVo(contentVo);
vo.setIntroductionVo(introductionVo);
//获取详情图片
List<TrainingProjectDetailsImageVO> detailsImage = trainingProjectMapper.selectTrainingProjectDetailsImage(trainingProjectId);
introductionVo.setDetailsImage(detailsImage);
if (containStatistics) {
TrainingProjectProgressVo progressVo = getProgress(project, accountId, now, context);
vo.setProgressVo(progressVo);
}
addViewRecord(accountId, context, project, now);
//获取投票ID和名称
if(project.getResearchId() != null){
ResearchVo researchVo = researchClient.viewInfo(project.getResearchId());
if(researchVo != null){
introductionVo.setResearchId(researchVo.getId());
introductionVo.setResearchName(researchVo.getName());
}
}
/**
* 设置活动状态: 1、先根据项目的开始和结束时间设置活动状态
*/
com.yizhi.training.application.vo.domain.TrainingProjectVo tr = trainingProjectMapper.selectTrainingProjectTime(context.getSiteId(), trainingProjectId);
TrEnrollStatusEnum state = compareTime(tr.getStartTime(), tr.getEndTime());
introductionVo.setActivityStateCode(state.getCode());
introductionVo.setActivityStateName(state.getValue());
//活动结束了返回
if (state == TrEnrollStatusEnum.ACT_END) {
return vo;
}
// 2、活动要报名和签到
if (project.getBizType().equals(PROJECT_BIZ_TYPE) && (tr.getEnableEnroll() == 1 && tr.getEnableSign() == 1) || tr.getEnableEnroll() == 1) {
// 报名通过的
List<Long> passEnrollTpIds = tpStudentEnrollPassedMapper.selectTpIds(context.getAccountId());
// 判断学员是否报名了该项目
if (CollectionUtils.isEmpty(passEnrollTpIds) || !passEnrollTpIds.contains(tr.getId())) {
// 没有报名:判断活动状态是未报名还是报名,默认待报名
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_ENROLL.getValue());
// 根据报名开始时间和签到开始时间设置活动状态
state = compareTime(tr.getEnrollStartTime(),
tr.getSignStartTime() == null ? tr.getEnrollEndTime() : tr.getSignStartTime());
if (state == TrEnrollStatusEnum.ACT_RUN) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_ENROLL.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_ENROLL.getValue());
} else if (state == TrEnrollStatusEnum.ACT_END) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_ENROLL.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_ENROLL.getValue());
}
} else {
// 查询签到记录
List<Long> passSignTpIds = tpStudentEnrollPassedMapper.selectSignTpIds(context.getAccountId());
if (CollectionUtils.isEmpty(passSignTpIds) || !passSignTpIds.contains(tr.getId())) {
// 没有签到:判断活动状态是签到还是未签到,默认待签到
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_SIGN.getValue());
// 根据签到开始时间和签到结束时间设置活动状态
state = compareTime(tr.getSignStartTime(), tr.getSignEndTime());
if (state == TrEnrollStatusEnum.ACT_RUN) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_SIGN.getValue());
} else if (state == TrEnrollStatusEnum.ACT_END) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_SIGN.getValue());
}
}
}
} else if (project.getBizType().equals(PROJECT_BIZ_TYPE) && tr.getEnableEnroll() == 0 && tr.getEnableSign() == 1) {
// 3、活动要签到
// 查询签到记录
List<Long> passSignTpIds = tpStudentEnrollPassedMapper.selectSignTpIds(context.getAccountId());
if (CollectionUtils.isEmpty(passSignTpIds) || !passSignTpIds.contains(tr.getId())) {
// 没有签到:判断活动状态是签到还是未签到,默认待签到
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_WAIT_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_WAIT_SIGN.getValue());
// 根据签到开始时间和签到结束时间设置活动状态
state = compareTime(tr.getSignStartTime(), tr.getSignEndTime());
if (state == TrEnrollStatusEnum.ACT_RUN) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_SIGN.getValue());
} else if (state == TrEnrollStatusEnum.ACT_END) {
introductionVo.setActivityStateCode(TrEnrollStatusEnum.ACT_NO_SIGN.getCode());
introductionVo.setActivityStateName(TrEnrollStatusEnum.ACT_NO_SIGN.getValue());
}
}
}
Long signTimeId = tpStudentEnrollPassedMapper.selectSignTimeId(project.getId());
introductionVo.setSignTimeId(signTimeId);
introductionVo.setSignType(0);
return vo;
}
return null;
......@@ -648,6 +887,12 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
vo.setStartTime(trainingProject.getStartTime());
vo.setEndTime(trainingProject.getEndTime());
vo.setEnablePosition(trainingProject.getEnableSign().equals(1)?trainingProject.getEnablePosition():0);
vo.setActivityAddress(trainingProject.getActivityAddress());
vo.setTips(trainingProject.getTips());
vo.setOther(trainingProject.getOther());
vo.setOrganizer(trainingProject.getOrganizer());
vo.setCoOrganizer(trainingProject.getCoOrganizer());
vo.setVideoUrl(trainingProject.getVideoUrl());
Boolean finished = false;
// 如果需要报名,查看是否已经报名
if (trainingProject.getEnableEnroll() == 1) {
......@@ -1132,4 +1377,71 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
List<PaidTrainingProjectVO> list = trainingProjectMapper.apiPaidPageList(visiableTpIds, new Date(), qo.getSiteId(), qo.getKeyword(), qo.getOrderField(), qo.getOrder());
return list;
}
/**
* 比较活动的开始时间和结束时间,返回活动状态
* @param start
* @param end
* @return
*/
private TrEnrollStatusEnum compareTime(Date start, Date end) {
Date curDate = new Date();
if(end.before(curDate)){
return TrEnrollStatusEnum.ACT_END;
}
if(start.before(curDate) || start.equals(curDate)){
return TrEnrollStatusEnum.ACT_RUN;
}
return TrEnrollStatusEnum.ACT_WAIT_START;
}
@Override
public TrainingActivityVO getTrainingActivity(Integer bizType, String startDate, String endDate) {
RequestContext context = ContextHolder.get();
TrainingActivityVO item = new TrainingActivityVO();
//目前只需要统计一天,调用以前的方法就行
Date theDay = new Date();
Integer count = trainingProjectMapper.apiPageListCount(null, null, theDay, context.getSiteId(), null, bizType);
if(count > 0){
List<String> list = new ArrayList<String>(1);
list.add(DateUtil.toDay(theDay));
item.setTheDay(list);
}
//获取活动栏目
List<SiteDicVo> siteDics = (List<SiteDicVo>) redisCache.get(REDIS_PRO_ACTIVITY_TYPE_KEY);
if(siteDics == null){
siteDics = portalManageFeignClients.list(ACTIVITY_KEY);
redisCache.set(REDIS_PRO_ACTIVITY_TYPE_KEY, siteDics, 7200L);
}
if (!CollectionUtils.isEmpty(siteDics)) {
siteDics.sort(new Comparator<SiteDicVo>() {
@Override
public int compare(SiteDicVo d1, SiteDicVo d2) {
Integer sort1= d1.getSort();
Integer sort2= d2.getSort();
return sort1.compareTo(sort2);
}
});
List<ActivityTypeVo> activityType = new ArrayList<ActivityTypeVo>(4);
for(SiteDicVo dic : siteDics){
ActivityTypeVo type = new ActivityTypeVo();
type.setActivityName(dic.getName());
type.setActivityType(dic.getType());
activityType.add(type);
}
item.setActivityType(activityType);
}
return item;
}
@Override
public List<TrainingProjectVo> getTop(Long siteId) {
return trainingProjectMapper.getTop(siteId);
}
}
......@@ -72,7 +72,7 @@ public class CommentListExportAsync extends
fileDir.mkdir();
}
//项目评论开始组装
List<PageCommentVo> list = tpCommentService.getList(trainingProjectId, accountId);
List<PageCommentVo> list = tpCommentService.getList(trainingProjectId, null, accountId);
List<PageCommentVo> listVO = new ArrayList<PageCommentVo>();
TpCommentReply reply=new TpCommentReply();
PageCommentVo vo = new PageCommentVo();
......
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