Commit 830a07ab by 梅存智

活动优化

parent 4e9acb03
...@@ -4,6 +4,43 @@ public enum TrEnrollStatusEnum { ...@@ -4,6 +4,43 @@ public enum TrEnrollStatusEnum {
NO_ENROLL(10,"无需报名"), NO_ENROLL(10,"无需报名"),
FREE_ENROLL(20,"免费报名"), FREE_ENROLL(20,"免费报名"),
PAY_ENROLL(30,"收费报名"), 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; private Integer code;
......
...@@ -2,12 +2,18 @@ package com.yizhi.training.application.feign; ...@@ -2,12 +2,18 @@ package com.yizhi.training.application.feign;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; 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; import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "trainingProject", contextId = "TpEnrollPassedClient") @FeignClient(name = "trainingProject", contextId = "TpEnrollPassedClient")
public interface TpEnrollPassedClient { public interface TpEnrollPassedClient {
@GetMapping("/TpStudentEnrollPassedVo/selectTpIdByCondition") @GetMapping("/TpStudentEnrollPassed/selectTpIdByCondition")
Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId); 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; 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.baomidou.mybatisplus.plugins.Page;
import com.yizhi.core.application.vo.DroolsVo; import com.yizhi.core.application.vo.DroolsVo;
import com.yizhi.training.application.model.BaseModel; import com.yizhi.training.application.model.BaseModel;
import com.yizhi.training.application.param.TrainingProjectParam; 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.TpAuthorizationRangeVo;
import com.yizhi.training.application.vo.domain.TrainingActivityVO;
import com.yizhi.training.application.vo.domain.TrainingProjectVo; import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo; import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo;
import com.yizhi.training.application.vo.manage.VisibleRangeExport; import com.yizhi.training.application.vo.manage.VisibleRangeExport;
import com.yizhi.training.application.vo.manage.VisibleRangeVo; import com.yizhi.training.application.vo.manage.VisibleRangeVo;
import com.yizhi.util.application.domain.BizResponse; import com.yizhi.util.application.domain.BizResponse;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; 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 * @Author: shengchenglong
...@@ -319,4 +330,14 @@ public interface TrainingProjectClient { ...@@ -319,4 +330,14 @@ public interface TrainingProjectClient {
@PostMapping("/trainingProject/shelfUp/get") @PostMapping("/trainingProject/shelfUp/get")
boolean getShelfUp(@RequestParam("id") Long trainingProjectId); 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);
} }
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 { ...@@ -28,4 +28,6 @@ public class HotEnrollParamVo {
@ApiModelProperty(value = "是否付费;0否;1是;默认为null") @ApiModelProperty(value = "是否付费;0否;1是;默认为null")
private Integer enablePay ; private Integer enablePay ;
@ApiModelProperty(value = "业务类型:1或null活动服务;2培训测试")
private Integer bizType;
} }
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; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* @Author: shengchenglong * @Author: shengchenglong
...@@ -114,4 +115,34 @@ public class TrainingProjectIntroductionVo { ...@@ -114,4 +115,34 @@ public class TrainingProjectIntroductionVo {
@ApiModelProperty(value = "购买原价格") @ApiModelProperty(value = "购买原价格")
private Integer originalPrice; 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;
} }
...@@ -32,6 +32,9 @@ public class TrainingProjectListVo { ...@@ -32,6 +32,9 @@ public class TrainingProjectListVo {
@ApiModelProperty(value = "多少人已经参与") @ApiModelProperty(value = "多少人已经参与")
private Integer JoinNumber; private Integer JoinNumber;
@ApiModelProperty(value = "应参加人数,0为不限制")
private Integer canNumber;
@ApiModelProperty(value = "是否已经完成") @ApiModelProperty(value = "是否已经完成")
private Boolean finished; private Boolean finished;
...@@ -56,5 +59,16 @@ public class TrainingProjectListVo { ...@@ -56,5 +59,16 @@ public class TrainingProjectListVo {
@ApiModelProperty(value = "是否付费报名,默认0否,1是") @ApiModelProperty(value = "是否付费报名,默认0否,1是")
private Integer enablePay; 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;
} }
...@@ -15,7 +15,7 @@ import java.util.Date; ...@@ -15,7 +15,7 @@ import java.util.Date;
@ApiModel(value = "首页--训项目列表查询参数vo") @ApiModel(value = "首页--训项目列表查询参数vo")
public class TrainingProjectParamVo { public class TrainingProjectParamVo {
@ApiModelProperty(value = "当前时间,必传") @ApiModelProperty(value = "当前时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date now; private Date now;
...@@ -31,4 +31,9 @@ public class TrainingProjectParamVo { ...@@ -31,4 +31,9 @@ public class TrainingProjectParamVo {
@ApiModelProperty(value = "是否付费筛选,默认0否,1是") @ApiModelProperty(value = "是否付费筛选,默认0否,1是")
private Integer enablePay; private Integer enablePay;
@ApiModelProperty(value = "业务类型:1或null活动服务;2培训测试")
private Integer bizType;
@ApiModelProperty(value = "活动类型,null查询全部")
private Integer activityType;
} }
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,25 @@ public class TrainingProjectVo extends Model<TrainingProjectVo> { ...@@ -140,7 +140,25 @@ public class TrainingProjectVo extends Model<TrainingProjectVo> {
@ApiModelProperty(value = "权重") @ApiModelProperty(value = "权重")
private Integer weight; 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;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; return this.id;
......
...@@ -30,6 +30,12 @@ ...@@ -30,6 +30,12 @@
<artifactId>cloud-course-api</artifactId> <artifactId>cloud-course-api</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>com.yizhi</groupId>
<artifactId>cloud-research-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- 本地依赖 --> <!-- 本地依赖 -->
<dependency> <dependency>
......
package com.yizhi.training.application.controller; package com.yizhi.training.application.controller;
import com.yizhi.core.application.context.ContextHolder; import java.util.Date;
import com.yizhi.core.application.context.RequestContext;
import com.yizhi.training.application.service.ITpStudentEnrollPassedService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; 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.RequestParam;
import org.springframework.web.bind.annotation.RestController; 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 @RestController
@RequestMapping("/TpStudentEnrollPassed") @RequestMapping("/TpStudentEnrollPassed")
public class TpStudentEnrollPassedController { public class TpStudentEnrollPassedController {
...@@ -16,9 +25,42 @@ public class TpStudentEnrollPassedController { ...@@ -16,9 +25,42 @@ public class TpStudentEnrollPassedController {
@Autowired @Autowired
ITpStudentEnrollPassedService studentEnrollPassedService; ITpStudentEnrollPassedService studentEnrollPassedService;
@Autowired
private IdGenerator idGenerator;
@Autowired
private TpStudentEnrollPassedMapper tpStudentEnrollPassedMapper;
@Autowired
private TrainingProjectMapper trainingProjectMapper;
@GetMapping("/selectTpIdByCondition") @GetMapping("/selectTpIdByCondition")
Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId){ Long selectTpIdByCondition(@RequestParam(value = "tpProjrctId")Long tpProjrctId){
RequestContext context = ContextHolder.get(); RequestContext context = ContextHolder.get();
return studentEnrollPassedService.selectTpIdByCondition(tpProjrctId,context.getAccountId(),context.getSiteId()); 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.*; ...@@ -30,6 +30,7 @@ import com.yizhi.training.application.service.*;
import com.yizhi.training.application.util.TrainingEvenSendMessage; import com.yizhi.training.application.util.TrainingEvenSendMessage;
import com.yizhi.training.application.vo.api.*; import com.yizhi.training.application.vo.api.*;
import com.yizhi.training.application.vo.domain.TpAuthorizationRangeVo; 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.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.*; import com.yizhi.training.application.vo.manage.*;
import com.yizhi.util.application.domain.BizResponse; import com.yizhi.util.application.domain.BizResponse;
...@@ -917,5 +918,17 @@ public class TrainingProjectController { ...@@ -917,5 +918,17 @@ public class TrainingProjectController {
return true; 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);
}
} }
...@@ -158,7 +158,43 @@ public class TrainingProject extends Model<TrainingProject> { ...@@ -158,7 +158,43 @@ public class TrainingProject extends Model<TrainingProject> {
@ApiModelProperty(value = "开启付费的项目是否在项目列表中显示;默认1显示") @ApiModelProperty(value = "开启付费的项目是否在项目列表中显示;默认1显示")
@TableField("enable_queue") @TableField("enable_queue")
private Integer enableQueue; 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;
@Override @Override
protected Serializable pkVal() { protected Serializable pkVal() {
return this.id; 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;
}
}
...@@ -37,4 +37,14 @@ public interface TpStudentEnrollPassedMapper extends BaseMapper<TpStudentEnrollP ...@@ -37,4 +37,14 @@ public interface TpStudentEnrollPassedMapper extends BaseMapper<TpStudentEnrollP
@Select("select id from tp_student_enroll_passed " + @Select("select id from tp_student_enroll_passed " +
"where account_id = #{accountId} and site_id = #{siteId} and training_project_id = #{tpProjrctId}") "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); 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);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.training.application.domain.TrainingProject; import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.vo.api.HotEnrollListVo; import com.yizhi.training.application.vo.api.HotEnrollListVo;
import com.yizhi.training.application.vo.api.PaidTrainingProjectVO; 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.api.TrainingProjectListVo;
import com.yizhi.training.application.vo.domain.TrainingProjectVo; import com.yizhi.training.application.vo.domain.TrainingProjectVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -54,16 +55,21 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> { ...@@ -54,16 +55,21 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
* @param siteId 站点id * @param siteId 站点id
* @param keyword 关键字(模糊查询) * @param keyword 关键字(模糊查询)
* @param enablePay 是否付费;0否 ;1是 * @param enablePay 是否付费;0否 ;1是
* @param bizType 业务类型:1或null活动服务;2培训测试
* @param activityType 活动类型,null查询全部
* @return * @return
*/ */
List<TrainingProjectVo> apiPageList(@Param("visiableTpIds") List<Long> visiableTpIds, List<TrainingProjectVo> apiPageList(@Param("visiableTpIds") List<Long> visiableTpIds,
@Param("passEnrollTpIds") List<Long> passEnrollTpIds, @Param("passEnrollTpIds") List<Long> passEnrollTpIds,
@Param("now") Date now, @Param("siteId") Long siteId, @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, Integer apiPageListCount(@Param("visiableTpIds") List<Long> visiableTpIds,
@Param("passEnrollTpIds") List<Long> passEnrollTpIds, @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> { ...@@ -71,12 +77,14 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
* @param site * @param site
* @param passIds 已经报名的培训项目id * @param passIds 已经报名的培训项目id
* @param visiableTpIds 该学员可见范围的培训项目id * @param visiableTpIds 该学员可见范围的培训项目id
* @param bizType 业务类型:1或null活动服务;2培训测试
* @return * @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<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, List<HotEnrollListVo> apiHotPageList(@Param("siteId") Long site, @Param("passIds") List<Long> passIds,
@Param("visiableTpIds") List<Long> visiableTpIds, @Param("now") Date now, @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); Integer apiHotPageListNum(@Param("siteId") Long site, @Param("passIds") List<Long> passIds, @Param("visiableTpIds") List<Long> visiableTpIds, @Param("now") Date now);
...@@ -327,4 +335,19 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> { ...@@ -327,4 +335,19 @@ public interface TrainingProjectMapper extends BaseMapper<TrainingProject> {
@Param("orderField") String orderField, @Param("order") String order); @Param("orderField") String orderField, @Param("order") String order);
TrainingProjectVo getProjectDesc(@Param("projectId") Long projectId); 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);
} }
...@@ -206,20 +206,27 @@ ...@@ -206,20 +206,27 @@
<!-- 培训项目首页列表 --> <!-- 培训项目首页列表 -->
<select id="apiPageList" resultType="com.yizhi.training.application.vo.domain.TrainingProjectVo"> <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
from training_project tb from training_project tb
left join tr_enroll en on tb.id = en.training_project_id 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 where
-- 首先用站点 id 和上架状态缩小范围 -- 首先用站点 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
( (
-- 平台可见 and 不需要报名 -- 平台可见
(tb.visible_range = 1 and tb.enable_enroll = 0) (tb.visible_range = 1)
-- 指定范围,不需报名 -- 指定范围
<if test="visiableTpIds != null and visiableTpIds.size > 0"> <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>
-- 报名通过 -- 报名通过
<if test="passEnrollTpIds != null and passEnrollTpIds.size > 0"> <if test="passEnrollTpIds != null and passEnrollTpIds.size > 0">
...@@ -240,7 +247,16 @@ ...@@ -240,7 +247,16 @@
<if test="enablePay != null and enablePay.equals(1)"> <if test="enablePay != null and enablePay.equals(1)">
and (tb.enable_enroll = 1 and tb.enable_queue = 1 and en.enable_pay = '1') and (tb.enable_enroll = 1 and tb.enable_queue = 1 and en.enable_pay = '1')
</if> </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>
<select id="apiPageListCount" resultType="java.lang.Integer"> <select id="apiPageListCount" resultType="java.lang.Integer">
...@@ -251,11 +267,11 @@ ...@@ -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') ]]>) (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
( (
-- 平台可见 and 不需要报名 -- 平台可见
(tb.visible_range = 1 and tb.enable_enroll = 0) (tb.visible_range = 1)
-- 指定范围,不需报名 -- 指定范围
<if test="visiableTpIds != null and visiableTpIds.size > 0"> <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>
-- 报名通过 -- 报名通过
<if test="passEnrollTpIds != null and passEnrollTpIds.size > 0"> <if test="passEnrollTpIds != null and passEnrollTpIds.size > 0">
...@@ -267,6 +283,12 @@ ...@@ -267,6 +283,12 @@
or or
tb.name like concat('%', #{keyword}, '%')) tb.name like concat('%', #{keyword}, '%'))
</if> </if>
<if test="bizType == null">
and tb.biz_type = 1
</if>
<if test="bizType != null">
and tb.biz_type = #{bizType}
</if>
</select> </select>
<!-- 我的培训项目列表 未开始(已上架,开始时间大于当前时间)--> <!-- 我的培训项目列表 未开始(已上架,开始时间大于当前时间)-->
...@@ -484,6 +506,12 @@ ...@@ -484,6 +506,12 @@
<if test="enablePay != null and enablePay.equals(1)"> <if test="enablePay != null and enablePay.equals(1)">
and (tb.enable_queue = 1 and en.enable_pay = '1') and (tb.enable_queue = 1 and en.enable_pay = '1')
</if> </if>
<if test="bizType == null">
and tb.biz_type = 1
</if>
<if test="bizType != null">
and tb.biz_type = #{bizType}
</if>
and ( and (
-- 可见范围之内的 或者 平台用户可见的 -- 可见范围之内的 或者 平台用户可见的
tb.visible_range = 1 tb.visible_range = 1
...@@ -838,5 +866,20 @@ ...@@ -838,5 +866,20 @@
where tp.id = #{projectId} and tp.deleted = 0 where tp.id = #{projectId} and tp.deleted = 0
</select> </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>
</mapper> </mapper>
package com.yizhi.training.application.service; 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.plugins.Page;
import com.baomidou.mybatisplus.service.IService; import com.baomidou.mybatisplus.service.IService;
import com.yizhi.core.application.context.RequestContext; import com.yizhi.core.application.context.RequestContext;
...@@ -8,17 +15,20 @@ import com.yizhi.training.application.domain.TpPlan; ...@@ -8,17 +15,20 @@ import com.yizhi.training.application.domain.TpPlan;
import com.yizhi.training.application.domain.TrainingProject; import com.yizhi.training.application.domain.TrainingProject;
import com.yizhi.training.application.model.BaseModel; import com.yizhi.training.application.model.BaseModel;
import com.yizhi.training.application.param.PaidTrainingProjectQO; 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.domain.TrainingProjectVo;
import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo; import com.yizhi.training.application.vo.manage.TrainingProjectStepThreeVo;
import com.yizhi.training.application.vo.manage.VisibleRangeExport; import com.yizhi.training.application.vo.manage.VisibleRangeExport;
import com.yizhi.training.application.vo.manage.VisibleRangeVo; 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> * <p>
...@@ -220,4 +230,13 @@ public interface ITrainingProjectService extends IService<TrainingProject> { ...@@ -220,4 +230,13 @@ public interface ITrainingProjectService extends IService<TrainingProject> {
* @param projectId 项目id * @param projectId 项目id
*/ */
TrainingProjectVo getProjectDescription(Long projectId); TrainingProjectVo getProjectDescription(Long projectId);
/**
* 获取有活动的日期
* @param bizType 业务类型:1活动服务;2培训测试
* @param startDate
* @param endDate
* @return
*/
TrainingActivityVO getTrainingActivity(Integer bizType, String startDate, String endDate);
} }
package com.yizhi.training.application.service.impl; 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.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
...@@ -17,11 +37,34 @@ import com.yizhi.course.application.feign.RecordeClient; ...@@ -17,11 +37,34 @@ import com.yizhi.course.application.feign.RecordeClient;
import com.yizhi.enroll.application.feign.EnrollFeignClient; import com.yizhi.enroll.application.feign.EnrollFeignClient;
import com.yizhi.enroll.application.vo.ProjectAccountVO; import com.yizhi.enroll.application.vo.ProjectAccountVO;
import com.yizhi.enroll.application.vo.domain.Enroll; 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.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.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.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.model.BaseModel;
import com.yizhi.training.application.param.PaidTrainingProjectQO; import com.yizhi.training.application.param.PaidTrainingProjectQO;
import com.yizhi.training.application.service.ITpAuthorizationRangeService; import com.yizhi.training.application.service.ITpAuthorizationRangeService;
...@@ -30,27 +73,29 @@ import com.yizhi.training.application.service.ITpPlanActivityService; ...@@ -30,27 +73,29 @@ import com.yizhi.training.application.service.ITpPlanActivityService;
import com.yizhi.training.application.service.ITrainingProjectService; import com.yizhi.training.application.service.ITrainingProjectService;
import com.yizhi.training.application.util.DeleteActivityAdvice; import com.yizhi.training.application.util.DeleteActivityAdvice;
import com.yizhi.training.application.util.TrainingEvenSendMessage; import com.yizhi.training.application.util.TrainingEvenSendMessage;
import com.yizhi.training.application.vo.api.*; import com.yizhi.training.application.vo.api.ActivityTypeVo;
import com.yizhi.training.application.vo.manage.*; 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.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 com.yizhi.util.application.clazz.ClassUtil;
import org.apache.commons.lang3.StringUtils; import com.yizhi.util.application.date.DateUtil;
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;
/** /**
* <p> * <p>
...@@ -119,6 +164,14 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -119,6 +164,14 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
@Autowired @Autowired
private DeleteActivityAdvice deleteActivityAdvice; 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";
@Override @Override
public Page<TrainingProject> searchPage(String name, Long tpClassificationId, public Page<TrainingProject> searchPage(String name, Long tpClassificationId,
...@@ -402,10 +455,18 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -402,10 +455,18 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
Page<TrainingProjectListVo> page = new Page<>(paramVo.getPageNo(), paramVo.getPageSize()); Page<TrainingProjectListVo> page = new Page<>(paramVo.getPageNo(), paramVo.getPageSize());
List<TrainingProjectListVo> pageList = new ArrayList<>(); 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<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)) { if (!CollectionUtils.isEmpty(list)) {
Date date = new Date();
List<Long> tpIdsForJoinNum = null; List<Long> tpIdsForJoinNum = null;
List<Long> relationIdsForJoinNum = null; List<Long> relationIdsForJoinNum = null;
for (com.yizhi.training.application.vo.domain.TrainingProjectVo tr : list) { for (com.yizhi.training.application.vo.domain.TrainingProjectVo tr : list) {
...@@ -420,9 +481,88 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -420,9 +481,88 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
vo.setJoinNumber(getJoinNumberV2(tr)); vo.setJoinNumber(getJoinNumberV2(tr));
//是否付费标签 //是否付费标签
vo.setEnablePay(tr.getEnablePay()); vo.setEnablePay(tr.getEnablePay());
vo.setCanNumber(tr.getCanNumber());
//活动名称
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 (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); pageList.add(vo);
} }
} }
//page.setTotal(trainingProjectMapper.apiPageListCount(visiableTpIds, passEnrollTpIds, paramVo.getNow(), context.getSiteId(), paramVo.getKeyword())); //page.setTotal(trainingProjectMapper.apiPageListCount(visiableTpIds, passEnrollTpIds, paramVo.getNow(), context.getSiteId(), paramVo.getKeyword()));
page.setRecords(pageList); page.setRecords(pageList);
return page; return page;
...@@ -447,7 +587,7 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -447,7 +587,7 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
enablePay = 0; enablePay = 0;
} }
Page<HotEnrollListVo> page = new Page<>(model.getObj().getPageNo(), model.getObj().getPageSize()); 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())); //page.setTotal(trainingProjectMapper.apiHotPageListNum(model.getContext().getSiteId(), passEnrollTpIds, visiableTpIds, new Date()));
return page; return page;
} }
...@@ -548,11 +688,97 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -548,11 +688,97 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
TrainingProjectDetailVo vo = new TrainingProjectDetailVo(); TrainingProjectDetailVo vo = new TrainingProjectDetailVo();
vo.setContentVo(contentVo); vo.setContentVo(contentVo);
vo.setIntroductionVo(introductionVo); vo.setIntroductionVo(introductionVo);
//获取详情图片
List<TrainingProjectDetailsImageVO> detailsImage = trainingProjectMapper.selectTrainingProjectDetailsImage(trainingProjectId);
introductionVo.setDetailsImage(detailsImage);
if (containStatistics) { if (containStatistics) {
TrainingProjectProgressVo progressVo = getProgress(project, accountId, now, context); TrainingProjectProgressVo progressVo = getProgress(project, accountId, now, context);
vo.setProgressVo(progressVo); vo.setProgressVo(progressVo);
} }
addViewRecord(accountId, context, project, now); addViewRecord(accountId, context, project, now);
//获取投票ID和名称
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 ((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 (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());
}
}
}
return vo; return vo;
} }
return null; return null;
...@@ -648,6 +874,11 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -648,6 +874,11 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
vo.setStartTime(trainingProject.getStartTime()); vo.setStartTime(trainingProject.getStartTime());
vo.setEndTime(trainingProject.getEndTime()); vo.setEndTime(trainingProject.getEndTime());
vo.setEnablePosition(trainingProject.getEnableSign().equals(1)?trainingProject.getEnablePosition():0); 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());
Boolean finished = false; Boolean finished = false;
// 如果需要报名,查看是否已经报名 // 如果需要报名,查看是否已经报名
if (trainingProject.getEnableEnroll() == 1) { if (trainingProject.getEnableEnroll() == 1) {
...@@ -1132,4 +1363,66 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe ...@@ -1132,4 +1363,66 @@ public class TrainingProjectServiceImpl extends ServiceImpl<TrainingProjectMappe
List<PaidTrainingProjectVO> list = trainingProjectMapper.apiPaidPageList(visiableTpIds, new Date(), qo.getSiteId(), qo.getKeyword(), qo.getOrderField(), qo.getOrder()); List<PaidTrainingProjectVO> list = trainingProjectMapper.apiPaidPageList(visiableTpIds, new Date(), qo.getSiteId(), qo.getKeyword(), qo.getOrderField(), qo.getOrder());
return list; 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;
}
} }
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