Commit 8515b4a4 by 涂亚平

年前PC适配开发

1 parent b998e5ed
Showing with 1105 additions and 91 deletions
......@@ -50,7 +50,7 @@ public class ClassDictController {
}
@PostMapping("addClass")
@ApiOperation("添加课程 userId:登录人id companyId courseId className startDate endDate")
@ApiOperation("添加课程 userId:登录人id companyId courseId classType className startDate endDate memberId [] 班级学员 classNoticeDOS[noticeType isAuto noticeTime]")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO addClass(@RequestBody AddClassDTO addClassDTO){
return ResponseData.generateCreatedResponse(0,classDictService.addClass(addClassDTO));
......
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.model.ClassNoticeDO;
import com.subsidy.service.ClassNoticeService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@RestController
@Api(tags = "")
@RequestMapping("/classNotice")
public class ClassNoticeController {
@Autowired
private ClassNoticeService classNoticeService;
@PostMapping("addNotice")
@ApiOperation("新增一个通知 classId noticeType isAuto noticeTime")
public ResponseVO addNotice(@RequestBody ClassNoticeDO classNoticeDO){
return ResponseData.generateCreatedResponse(0,classNoticeService.addNotice(classNoticeDO));
}
@PostMapping("updateNotice")
@ApiOperation("修改一个通知 id noticeType isAuto noticeTime")
public ResponseVO updateNotice(@RequestBody ClassNoticeDO classNoticeDO){
return ResponseData.generateCreatedResponse(0,classNoticeService.updateNotice(classNoticeDO));
}
@PostMapping("deleteNotice")
@ApiOperation("删除一个通知 id")
public ResponseVO deleteNotice(@RequestBody ClassNoticeDO classNoticeDO){
return ResponseData.generateCreatedResponse(0,classNoticeService.deleteNotice(classNoticeDO));
}
@PostMapping("queryClassNotices")
@ApiOperation("查看某个课程的通知提醒 classId 课程id")
public ResponseVO queryClassNotices(ClassNoticeDO classNoticeDO){
return ResponseData.generateCreatedResponse(0,classNoticeService.queryClassNotices(classNoticeDO));
}
}
package com.subsidy.controller;
import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.dto.classDict.ClassTypeDTO;
import com.subsidy.model.ClassTypeDictDO;
import com.subsidy.service.ClassTypeDictService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
/**
* <p>
* 班级类型字典表 前端控制器
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@RestController
@Api(tags = "班级类型字典表")
@RequestMapping("/classType")
public class ClassTypeDictController {
@Autowired
private ClassTypeDictService classTypeDictService;
@PostMapping("addClassType")
@ApiOperation("添加课程类型 companyId 运营者公司id不传 classType")
public ResponseVO addClassType(@RequestBody ClassTypeDictDO classTypeDictDO){
return ResponseData.generateCreatedResponse(0,classTypeDictService.addClassType(classTypeDictDO));
}
@PostMapping("updateClassType")
@ApiOperation("修改课程类型 id companyId classType")
public ResponseVO updateClassType(@RequestBody ClassTypeDictDO classTypeDictDO){
return ResponseData.generateCreatedResponse(0,classTypeDictService.updateClassType(classTypeDictDO));
}
@PostMapping("deleteClassType")
@ApiOperation("删除课程类型 id")
public ResponseVO deleteClassType(@RequestBody ClassTypeDictDO classTypeDictDO){
return ResponseData.generateCreatedResponse(0,classTypeDictService.deleteClassType(classTypeDictDO));
}
@PostMapping("queryClassTypes")
@ApiOperation("查询某个公司的班级类型 userId 登录人id companyId")
public ResponseVO queryClassTypes(@RequestBody ClassTypeDTO classTypeDTO){
return ResponseData.generateCreatedResponse(0,classTypeDictService.queryClassTypes(classTypeDTO));
}
}
package com.subsidy.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
/**
* <p>
* 前端控制器
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@RestController
@Api(tags = "")
@RequestMapping("/courseField")
public class CourseFieldMappingController {
}
package com.subsidy.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
/**
* <p>
* 行业字典表 前端控制器
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@RestController
@Api(tags = "行业字典表")
@RequestMapping("/field-dict-do")
public class FieldDictController {
}
......@@ -92,7 +92,7 @@ public class MemberController {
}
@PostMapping("myCourses")
@ApiOperation("手机端:我的学习--课程 id 学员id status 状态 0:全部 1:进行中 2:待开始 3:已完成 ")
@ApiOperation("手机端:我的学习--课程 memberId 学员id status 状态 0:全部 1:进行中 2:待开始 3:已完成 ")
public ResponseVO myCourses(@RequestBody MyCoursesDTO myCoursesDTO){
return ResponseData.generateCreatedResponse(0,memberService.myCourses(myCoursesDTO));
}
......
package com.subsidy.dto.classDict;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.ClassNoticeDO;
import lombok.Data;
import java.util.List;
@Data
public class AddClassDTO extends ClassDictDO {
private Long userId;
private List<Long> memberIds;
private List<ClassNoticeDO> classNoticeDOS;
}
package com.subsidy.dto.classDict;
import lombok.Data;
@Data
public class ClassTypeDTO {
private Long userId;
private Long companyId;
}
......@@ -9,8 +9,4 @@ public class MyCoursesDTO {
private Integer status;
private Integer pageSize;
private Integer pageNum;
}
package com.subsidy.mapper;
import com.subsidy.model.ClassNoticeDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Repository
public interface ClassNoticeMapper extends BaseMapper<ClassNoticeDO> {
}
package com.subsidy.mapper;
import com.subsidy.model.ClassTypeDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* 班级类型字典表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Repository
public interface ClassTypeDictMapper extends BaseMapper<ClassTypeDictDO> {
}
package com.subsidy.mapper;
import com.subsidy.model.CourseFieldMappingDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.model.FieldDictDO;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Repository
public interface CourseFieldMappingMapper extends BaseMapper<CourseFieldMappingDO> {
/**
* 查看某个课程设计的行业
*/
List<FieldDictDO> courseFields(Long courseId);
}
package com.subsidy.mapper;
import com.subsidy.model.FieldDictDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* 行业字典表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Repository
public interface FieldDictMapper extends BaseMapper<FieldDictDO> {
}
......@@ -7,6 +7,7 @@ import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.MemberDO;
import com.subsidy.vo.administer.UserRoleVO;
import com.subsidy.vo.member.GetAllVO;
import com.subsidy.vo.member.MyCoursesVO;
import com.subsidy.vo.member.StudyPageVO;
import org.springframework.stereotype.Repository;
......@@ -30,11 +31,16 @@ public interface MemberMapper extends BaseMapper<MemberDO> {
/**
* 查看学生的课程
* 查看学生的课程[废弃]
*/
List<StudyPageVO> studyPage(MemberDO memberDO);
/**
* 查看学生的课程
*/
List<MyCoursesVO> myCourses(Long memberId,Integer status);
/**
* 查询学生所在部门
*/
List<DepartmentDictDO> getDepartments(Long memberId);
......
......@@ -48,9 +48,25 @@ public class ClassDictDO extends BaseModel {
*/
private Long courseId;
/**
* 开始时间
*/
private String startDate;
/**
* 结束时间
*/
private String endDate;
/**
* 是否按照顺序播放
*/
private Integer isOrder;
/**
* 是否允许快进
*/
private Integer isFastPlay;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("class_notice")
public class ClassNoticeDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 课程id
*/
private Long classId;
/**
* 通知类型
*/
private String noticeType;
/**
* 是否自动通知
*/
private Integer isAuto;
/**
* 通知时间
*/
private LocalDateTime noticeTime;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 班级类型字典表
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("class_type_dict")
public class ClassTypeDictDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 公司id
*/
private Long companyId;
/**
* 课程类型
*/
private String classType;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
*
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("course_field_mapping")
public class CourseFieldMappingDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long courseId;
private Long fieldMapping;
}
package com.subsidy.model;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 行业字典表
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("field_dict")
public class FieldDictDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 行业名称
*/
private String fieldName;
}
......@@ -26,6 +26,16 @@ public class OprMemDictDO {
private Long userId;
/**
* 公司id
*/
private Long companyId;
/**
* 公司名称
*/
private String companyName;
/**
* 操作类型
*/
private String oprType;
......
......@@ -70,4 +70,9 @@ public class VodDictDO extends BaseModel {
*/
private String coverPage;
/**
* 排序
*/
private Integer orderNo;
}
package com.subsidy.service;
import com.subsidy.model.ClassNoticeDO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
public interface ClassNoticeService extends IService<ClassNoticeDO> {
String addNotice(ClassNoticeDO classNoticeDO);
String updateNotice(ClassNoticeDO classNoticeDO);
String deleteNotice(ClassNoticeDO classNoticeDO);
List<ClassNoticeDO> queryClassNotices(ClassNoticeDO classNoticeDO);
}
package com.subsidy.service;
import com.subsidy.dto.classDict.ClassTypeDTO;
import com.subsidy.model.ClassTypeDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 班级类型字典表 服务类
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
public interface ClassTypeDictService extends IService<ClassTypeDictDO> {
String addClassType(ClassTypeDictDO classTypeDictDO);
String updateClassType(ClassTypeDictDO classTypeDictDO);
String deleteClassType(ClassTypeDictDO classTypeDictDO);
List<ClassTypeDictDO> queryClassTypes(ClassTypeDTO classTypeDTO);
}
package com.subsidy.service;
import com.subsidy.model.CourseFieldMappingDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
public interface CourseFieldMappingService extends IService<CourseFieldMappingDO> {
}
package com.subsidy.service;
import com.subsidy.model.FieldDictDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 行业字典表 服务类
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
public interface FieldDictService extends IService<FieldDictDO> {
}
......@@ -50,7 +50,7 @@ public interface MemberService extends IService<MemberDO> {
MemberStudyPageVO studyPage(MemberDO memberDO);
IPage<MyCoursesVO> myCourses(MyCoursesDTO myCoursesDTO);
List<MyCoursesVO> myCourses(MyCoursesDTO myCoursesDTO);
ContentVodNewVO contentVod(ContentMemberDTO contentVodDTO);
......
......@@ -6,7 +6,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.common.RedisPrefixConstant;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.administer.*;
import com.subsidy.dto.administer.ClassDailyInfoDTO;
import com.subsidy.dto.administer.ClassDetailDTO;
import com.subsidy.dto.administer.ClassVodDailyInfoDTO;
import com.subsidy.dto.administer.ClassVodInfoDTO;
import com.subsidy.dto.administer.MemberStudyLogDTO;
import com.subsidy.dto.administer.OperatorsDTO;
import com.subsidy.dto.member.ImportMemberDTO;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.mapper.AnsweringQuestionMapper;
......@@ -18,11 +23,24 @@ import com.subsidy.mapper.DepartmentDictMapper;
import com.subsidy.mapper.ExerciseDoneResultMapper;
import com.subsidy.mapper.MemberDepartmentMappingMapper;
import com.subsidy.mapper.MemberMapper;
import com.subsidy.mapper.OprAdmDictMapper;
import com.subsidy.mapper.RoleAdministerMappingMapper;
import com.subsidy.mapper.VodDictMapper;
import com.subsidy.mapper.VodPlayHistoryMapper;
import com.subsidy.model.*;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.AnsweringQuestionDO;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.ClassMemberMappingDO;
import com.subsidy.model.CompanyDictDO;
import com.subsidy.model.CourseDictDO;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.ExerciseDoneHistoryDO;
import com.subsidy.model.ExerciseDoneResultDO;
import com.subsidy.model.MemberDO;
import com.subsidy.model.MemberDepartmentMappingDO;
import com.subsidy.model.RoleAdministerMappingDO;
import com.subsidy.model.SignInRecordDO;
import com.subsidy.model.VodDictDO;
import com.subsidy.model.VodPlayHistoryDO;
import com.subsidy.mongodb.OprAdmDictDO;
import com.subsidy.service.AdministerService;
import com.subsidy.util.ConstantUtils;
......@@ -33,7 +51,18 @@ import com.subsidy.util.Localstorage;
import com.subsidy.util.MathUtil;
import com.subsidy.util.RedisUtil;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.administer.*;
import com.subsidy.vo.administer.AdministerPermissionVO;
import com.subsidy.vo.administer.ClassDailyInfoVO;
import com.subsidy.vo.administer.ClassSummaryVO;
import com.subsidy.vo.administer.ClassVodDailyInfoItemVO;
import com.subsidy.vo.administer.ClassVodInfoVO;
import com.subsidy.vo.administer.ExerciseTestVO;
import com.subsidy.vo.administer.GetMemberPapersVO;
import com.subsidy.vo.administer.GetPaperDetailVO;
import com.subsidy.vo.administer.LoginVO;
import com.subsidy.vo.administer.MemberStudyLogVO;
import com.subsidy.vo.administer.OperatorsVO;
import com.subsidy.vo.administer.PermissionsVO;
import com.subsidy.vo.classdict.ClassDetailVO;
import com.subsidy.vo.done.GetMaxScoreVO;
import com.subsidy.vo.done.TestScoreInfoVO;
......@@ -42,7 +71,6 @@ import com.subsidy.vo.sign.AnswerRecordVO;
import com.subsidy.vo.vod.ClassVodCompleteInfoVO;
import com.subsidy.vo.vod.DayInfoItemVO;
import com.subsidy.vo.vod.GetMemberStudyInfoVO;
import net.bytebuddy.description.modifier.SynchronizationState;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
......@@ -89,7 +117,13 @@ import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
......
......@@ -7,11 +7,13 @@ import com.subsidy.dto.classDict.AddMemberToClassDTO;
import com.subsidy.dto.classDict.GetSpareMembersDTO;
import com.subsidy.mapper.ClassDictMapper;
import com.subsidy.mapper.ClassMemberMappingMapper;
import com.subsidy.mapper.ClassNoticeMapper;
import com.subsidy.mapper.CompanyDictMapper;
import com.subsidy.mapper.CourseDictMapper;
import com.subsidy.mapper.RoleAdministerMappingMapper;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.ClassMemberMappingDO;
import com.subsidy.model.ClassNoticeDO;
import com.subsidy.model.CompanyDictDO;
import com.subsidy.model.CourseDictDO;
import com.subsidy.model.MemberDO;
......@@ -43,14 +45,14 @@ public class ClassDictServiceImpl extends ServiceImpl<ClassDictMapper, ClassDict
private ClassMemberMappingMapper classMemberMappingMapper;
@Autowired
private RoleAdministerMappingMapper roleAdministerMappingMapper;
@Autowired
private CourseDictMapper courseDictMapper;
@Autowired
private CompanyDictMapper companyDictMapper;
@Autowired
private ClassNoticeMapper classNoticeMapper;
public List<GetAllClassesVO> getAllClasses(ClassDictDO classDictDO) {
return this.baseMapper.getAllClasses(classDictDO);
......@@ -68,18 +70,25 @@ public class ClassDictServiceImpl extends ServiceImpl<ClassDictMapper, ClassDict
public String addClass(AddClassDTO addClassDTO) {
//查看当前登录人的角色
int count = roleAdministerMappingMapper.selectCount(new QueryWrapper<RoleAdministerMappingDO>()
.lambda()
.eq(RoleAdministerMappingDO::getAdministerId,addClassDTO.getUserId())
.eq(RoleAdministerMappingDO::getRoleId,1));
//新建一个班级
ClassDictDO classDictDO = new ClassDictDO();
BeanUtils.copyProperties(addClassDTO,classDictDO);
this.baseMapper.insert(classDictDO);
classDictDO.setClassType(count>0?"平台支持":"企业自建");
//班级里添加成员
List<Long> memberIds = addClassDTO.getMemberIds();
for (Long lg : memberIds){
ClassMemberMappingDO classMemberMappingDO = new ClassMemberMappingDO();
classMemberMappingDO.setMemberId(lg);
classMemberMappingDO.setClassId(classDictDO.getId());
}
this.baseMapper.insert(classDictDO);
//添加通知
List<ClassNoticeDO> classNoticeDOS = addClassDTO.getClassNoticeDOS();
for (ClassNoticeDO classNoticeDO :classNoticeDOS){
classNoticeDO.setClassId(classDictDO.getId());
classNoticeMapper.insert(classNoticeDO);
}
return ConstantUtils.ADD_SUCCESS;
}
......
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.model.ClassNoticeDO;
import com.subsidy.mapper.ClassNoticeMapper;
import com.subsidy.service.ClassNoticeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Service
public class ClassNoticeServiceImpl extends ServiceImpl<ClassNoticeMapper, ClassNoticeDO> implements ClassNoticeService {
public String addNotice(ClassNoticeDO classNoticeDO) {
this.baseMapper.insert(classNoticeDO);
return ConstantUtils.ADD_SUCCESS;
}
public String updateNotice(ClassNoticeDO classNoticeDO) {
this.baseMapper.updateById(classNoticeDO);
return ConstantUtils.SET_SUCCESS;
}
public String deleteNotice(ClassNoticeDO classNoticeDO) {
this.baseMapper.deleteById(classNoticeDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
public List<ClassNoticeDO> queryClassNotices(ClassNoticeDO classNoticeDO){
return this.baseMapper.selectList(new QueryWrapper<ClassNoticeDO>()
.lambda()
.eq(ClassNoticeDO::getClassId,classNoticeDO.getClassId()));
}
}
package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.dto.classDict.ClassTypeDTO;
import com.subsidy.mapper.RoleAdministerMappingMapper;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.ClassTypeDictDO;
import com.subsidy.mapper.ClassTypeDictMapper;
import com.subsidy.model.RoleAdministerMappingDO;
import com.subsidy.service.ClassTypeDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.ConstantUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 班级类型字典表 服务实现类
* </p>
*
* @author DengMin
* @since 2022-01-21
*/
@Service
public class ClassTypeDictServiceImpl extends ServiceImpl<ClassTypeDictMapper, ClassTypeDictDO> implements ClassTypeDictService {
@Autowired
private RoleAdministerMappingMapper roleAdministerMappingMapper;
public String addClassType(ClassTypeDictDO classTypeDictDO) {
this.baseMapper.insert(classTypeDictDO);
return ConstantUtils.ADD_SUCCESS;
}
public String updateClassType(ClassTypeDictDO classTypeDictDO) {
this.baseMapper.updateById(classTypeDictDO);
return ConstantUtils.SET_SUCCESS;
}
public String deleteClassType(ClassTypeDictDO classTypeDictDO) {
this.baseMapper.deleteById(classTypeDictDO.getId());
return ConstantUtils.DELETE_SUCCESS;
}
public List<ClassTypeDictDO> queryClassTypes(ClassTypeDTO classTypeDTO) {
List<ClassTypeDictDO> classTypeDictDOS = new ArrayList<>();
//查看当前登录人的角色
int count = roleAdministerMappingMapper.selectCount(new QueryWrapper<RoleAdministerMappingDO>()
.lambda()
.eq(RoleAdministerMappingDO::getAdministerId,classTypeDTO.getUserId())
.eq(RoleAdministerMappingDO::getRoleId,1));
if (count>0){
//平台支持
ClassTypeDictDO classTypeDictDO = this.baseMapper.selectById(1);
classTypeDictDOS.add(classTypeDictDO);
}
//企业自己的班级类型
List<ClassTypeDictDO> classTypeDictDOList = this.baseMapper.selectList(new QueryWrapper<ClassTypeDictDO>()
.lambda()
.eq(ClassTypeDictDO::getCompanyId,classTypeDTO.getCompanyId()));
classTypeDictDOS.addAll(classTypeDictDOList);
return classTypeDictDOList;
}
}
package com.subsidy.service.impl;
import com.subsidy.model.CourseFieldMappingDO;
import com.subsidy.mapper.CourseFieldMappingMapper;
import com.subsidy.service.CourseFieldMappingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Service
public class CourseFieldMappingServiceImpl extends ServiceImpl<CourseFieldMappingMapper, CourseFieldMappingDO> implements CourseFieldMappingService {
}
package com.subsidy.service.impl;
import com.subsidy.model.FieldDictDO;
import com.subsidy.mapper.FieldDictMapper;
import com.subsidy.service.FieldDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 行业字典表 服务实现类
* </p>
*
* @author DengMin
* @since 2022-01-20
*/
@Service
public class FieldDictServiceImpl extends ServiceImpl<FieldDictMapper, FieldDictDO> implements FieldDictService {
}
......@@ -17,6 +17,7 @@ import com.subsidy.mapper.ClassDictMapper;
import com.subsidy.mapper.ClassMemberMappingMapper;
import com.subsidy.mapper.CompanyDictMapper;
import com.subsidy.mapper.CourseContentMapper;
import com.subsidy.mapper.CourseFieldMappingMapper;
import com.subsidy.mapper.ExerciseDoneResultMapper;
import com.subsidy.mapper.FileDictMapper;
import com.subsidy.mapper.MemberDepartmentMappingMapper;
......@@ -30,6 +31,7 @@ import com.subsidy.model.CompanyDictDO;
import com.subsidy.model.CourseContentDO;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.ExerciseDoneResultDO;
import com.subsidy.model.FieldDictDO;
import com.subsidy.model.FileDictDO;
import com.subsidy.model.MemberDO;
import com.subsidy.model.MemberDepartmentMappingDO;
......@@ -101,9 +103,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
private ClassDictMapper classDictMapper;
@Autowired
private CompanyDictMapper companyDictMapper;
@Autowired
private MemberDepartmentMappingMapper memberDepartmentMappingMapper;
@Autowired
......@@ -112,6 +111,12 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
@Autowired
private MongoTemplate mongoTemplate;
@Autowired
private CourseFieldMappingMapper courseFieldMappingMapper;
@Autowired
private CompanyDictMapper companyDictMapper;
public IPage<GetAllVO> getAll(GetAllDTO getAllDTO) {
Page pager = new Page(getAllDTO.getPageNum(), getAllDTO.getPageSize());
IPage iPage = this.baseMapper.getMembers(pager, getAllDTO.getDepartmentId(), getAllDTO.getUserName(), getAllDTO.getStatus());
......@@ -225,6 +230,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
@Transactional(rollbackFor = Exception.class)
public UserRoleVO login(VerifyCodeDTO verifyCodeDTO) {
UserRoleVO userRoleVO = new UserRoleVO();
//TODO 先从redis里拿 ???
MemberDO memberDO = this.baseMapper.selectOne(new QueryWrapper<MemberDO>()
.lambda()
.eq(MemberDO::getTelephone, verifyCodeDTO.getTelephone()));
......@@ -232,14 +239,18 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
throw new HttpException(10010);
}
CompanyDictDO companyDictDO = companyDictMapper.selectById(memberDO.getCompanyId());
if ("冻结".equals(memberDO.getStatus())) {
OprMemDictDO oprMemDictDO = new OprMemDictDO();
oprMemDictDO.setUserId(memberDO.getId());
oprMemDictDO.setOprType("登录");
oprMemDictDO.setResult(0);
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
oprMemDictDO.setCompanyId(companyDictDO.getId());
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
mongoTemplate.insert(oprMemDictDO);
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + memberDO.getUserName() + ":" + companyDictDO.getCompanyName() + ":" + LocalDateTime.now(), oprMemDictDO);
throw new HttpException(10013);
......@@ -261,10 +272,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
oprMemDictDO.setOprType("登录");
oprMemDictDO.setResult(0);
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
oprMemDictDO.setCompanyId(companyDictDO.getId());
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
mongoTemplate.insert(oprMemDictDO);
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + LocalDateTime.now(), oprMemDictDO);
throw new HttpException(70010);
}
//审计日志
......@@ -273,9 +285,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
oprMemDictDO.setOprType("登录");
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setResult(1);
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + LocalDateTime.now(), oprMemDictDO);
oprMemDictDO.setCompanyId(companyDictDO.getId());
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
mongoTemplate.insert(oprMemDictDO);
return userRoleVO;
}
......@@ -298,6 +311,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
}
}
CompanyDictDO companyDictDO = companyDictMapper.selectById(memberDO.getCompanyId());
if (memberDO.getPassword().equals(passwordLoginDTO.getPassword()) && 1 == memberDO.getFirstLogin() && !"冻结".equals(memberDO.getStatus())) {
MemberVO memberVO = new MemberVO();
BeanUtils.copyProperties(memberDO, memberVO);
......@@ -306,8 +321,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
oprMemDictDO.setOprType("登录");
oprMemDictDO.setResult(1);
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
oprMemDictDO.setCompanyId(companyDictDO.getId());
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
mongoTemplate.insert(oprMemDictDO);
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + System.currentTimeMillis(), 1);
return memberVO;
......@@ -318,8 +335,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
oprMemDictDO.setOprType("登录");
oprMemDictDO.setResult(0);
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
oprMemDictDO.setCompanyId(companyDictDO.getId());
mongoTemplate.insert(oprMemDictDO);
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + System.currentTimeMillis(), oprMemDictDO);
throw new HttpException(10016);
......@@ -330,8 +349,10 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
oprMemDictDO.setOprType("登录");
oprMemDictDO.setResult(0);
oprMemDictDO.setUserName(memberDO.getUserName());
oprMemDictDO.setCreateDate(System.currentTimeMillis()+"");
oprMemDictDO.setCreateDate(System.currentTimeMillis() + "");
oprMemDictDO.setLoginDateFormat(DateFormatUtil.format(new Date(), "yyyyMMdd"));
oprMemDictDO.setCompanyName(companyDictDO.getCompanyName());
oprMemDictDO.setCompanyId(companyDictDO.getId());
mongoTemplate.insert(oprMemDictDO);
//redisUtil.set(RedisPrefixConstant.SUBSIDY_MEMBER_LOGIN_PREFIX + memberDO.getId() + ":" + System.currentTimeMillis(), 0);
throw new HttpException(10015);
......@@ -389,10 +410,13 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
return new AsyncResult<>(studyPageVO);
}
public IPage<MyCoursesVO> myCourses(MyCoursesDTO myCoursesDTO){
return null;
public List<MyCoursesVO> myCourses(MyCoursesDTO myCoursesDTO) {
List<MyCoursesVO> myCoursesVOS = this.baseMapper.myCourses(myCoursesDTO.getMemberId(),myCoursesDTO.getStatus());
for (MyCoursesVO myCoursesVO : myCoursesVOS){
List<FieldDictDO> fieldDictDOS = courseFieldMappingMapper.courseFields(myCoursesVO.getCourseId());
myCoursesVO.setFieldDictDOS(fieldDictDOS);
}
return myCoursesVOS;
}
public ContentVodNewVO contentVod(ContentMemberDTO contentVodDTO) {
......@@ -468,9 +492,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
Integer cnt = paperDictMapper.completeCount(queryPapersVO.getId());
queryPapersVO.setCompleteCnt(cnt);
//自己成绩
ExerciseDoneResultDO exerciseDoneResultDO = exerciseDoneResultMapper.getMaxScorePaper(queryPapersVO.getId(),memberId);
ExerciseDoneResultDO exerciseDoneResultDO = exerciseDoneResultMapper.getMaxScorePaper(queryPapersVO.getId(), memberId);
if (null!=exerciseDoneResultDO) {
if (null != exerciseDoneResultDO) {
queryPapersVO.setRightCounts(exerciseDoneResultDO.getRightCounts());
queryPapersVO.setTotalCount(exerciseDoneResultDO.getTotalCounts());
queryPapersVO.setResult(exerciseDoneResultDO.getResult());
......
......@@ -71,7 +71,7 @@ public class VodPlayHistoryServiceImpl extends ServiceImpl<VodPlayHistoryMapper,
public void dataFix(SignDatePlaysDTO dataFixDTO) {
//班级ids
List<String> classIds = Arrays.asList(new String[]{dataFixDTO.getClassId()});
String[] classIds = new String[]{dataFixDTO.getClassId()};
for (String str : classIds) {
......@@ -237,7 +237,7 @@ public class VodPlayHistoryServiceImpl extends ServiceImpl<VodPlayHistoryMapper,
public void signDatePlays(SignDatePlaysDTO signDatePlaysDTO) {
//班级ids
List<String> classIds = Arrays.asList(new String[]{signDatePlaysDTO.getClassId()});
String[] classIds = new String[]{signDatePlaysDTO.getClassId()};
for (String str : classIds) {
......@@ -275,7 +275,7 @@ public class VodPlayHistoryServiceImpl extends ServiceImpl<VodPlayHistoryMapper,
for (int m = 0; m < vodPlayHistoryDOS.size(); m++) {
playLength += vodPlayHistoryDOS.get(m).getPlayLength();
}
int playCounts = new Random().nextInt(2);
int playCounts = new Random().nextInt(4);
for (int i = 0; i < playCounts; i++) {
VodPlayHistoryDO vodPlayHistoryDO = new VodPlayHistoryDO();
......@@ -322,7 +322,9 @@ public class VodPlayHistoryServiceImpl extends ServiceImpl<VodPlayHistoryMapper,
public static void main(String[] args) {
while (true){
System.out.println(new Random().nextInt(4));
}
// int m = 0;
//
// int signInrecord = 4;
......@@ -386,13 +388,13 @@ public class VodPlayHistoryServiceImpl extends ServiceImpl<VodPlayHistoryMapper,
// System.out.println(integer+"=====");
// }
while (true) {
int i = getRandom();
System.out.println(i + "============");
if (i > 11 || i < 5) {
System.out.println("error");
}
}
//while (true) {
// int i = getRandom();
// System.out.println(i + "============");
// if (i > 11 || i < 5) {
// System.out.println("error");
// }
//}
}
public static Integer getRandom() {
......
......@@ -19,5 +19,6 @@ public class UserRoleVO {
private String password;
private String companyName;
}
......@@ -9,8 +9,6 @@ public class MemberVodVO {
private Integer vodLength;
private String teacherName;
private Integer percent;
private Boolean status;
......@@ -21,4 +19,6 @@ public class MemberVodVO {
private Integer playRecord;
private Integer leftLength;
}
package com.subsidy.vo.member;
import com.subsidy.model.FieldDictDO;
import lombok.Data;
import java.util.List;
@Data
public class MyCoursesVO {
private Long courseId;
private Long classId;
private String courseName;
private String endDate;
private Integer totalCnt;
private Integer studyCnt;
private Integer diffDate;
private Integer ttlMember;
private List<FieldDictDO> fieldDictDOS;
}
# 环境配置
spring.profiles.active=dev
# 端口号
spring.server.port=23460
spring.server.port=23457
#嵌入tomcat配置
#和CPU数
spring.server.acceptorThreadCount=600
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ClassNoticeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.ClassNoticeDO">
<id column="id" property="id" />
<result column="create_date" property="createDate" />
<result column="update_date" property="updateDate" />
<result column="delete_date" property="deleteDate" />
<result column="course_id" property="courseId" />
<result column="notice_type" property="noticeType" />
<result column="notice_time" property="noticeTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_date,
update_date,
delete_date,
id, course_id, notice_type, notice_time
</sql>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.ClassTypeDictMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.ClassTypeDictDO">
<id column="id" property="id" />
<result column="create_date" property="createDate" />
<result column="update_date" property="updateDate" />
<result column="delete_date" property="deleteDate" />
<result column="company_id" property="companyId" />
<result column="class_type" property="classType" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_date,
update_date,
delete_date,
id, company_id, class_type
</sql>
</mapper>
......@@ -45,30 +45,70 @@
<select id="contentVodProcess" resultType="com.subsidy.vo.member.MemberVodVO">
SELECT
t3.id,
t2.play_record,
t3.vod_length,
t3.vod_name,
t3.vod_url,
sum( t2.play_length ) AS play_length
FROM
vod_play_history t2
LEFT JOIN vod_dict t3 ON t2.vod_id = t3.id
WHERE
t2.delete_date IS NULL
AND t3.delete_date IS NULL
AND t2.vod_id IN (
SELECT
id
FROM
vod_dict t
WHERE
t.content_id = #{contentId} )
AND t2.member_id = #{memberId}
GROUP BY
t3.id,
t3.vod_name,
t2.member_id
t3.id,
t3.vod_url,
t3.vod_name,
t3.vod_type,
t3.vod_length,
t3.play_record,
IF
( t3.vod_length - t3.sumPlay > 0, t3.vod_length - t3.sumPlay, 0 ) AS leftLength,
round( t3.sumPlay * 100 / t3.vod_length, 0 ) AS percent
FROM
(
SELECT
t.id,
t.vod_url,
t.vod_name,
t.vod_type,
t.vod_length,
t.order_no,
ifnull( t2.sumPlay, 0 ) AS sumPlay,
t4.play_record
FROM
vod_dict t
LEFT JOIN (
SELECT
t.vod_id,
t.member_id,
sum( t.play_length ) AS sumPlay
FROM
vod_play_history t
WHERE
t.member_id = #{memberId}
GROUP BY
t.vod_id,
t.member_id
) t2 ON t.id = t2.vod_id
LEFT JOIN (
SELECT
t.member_id,
t.vod_id,
t2.play_record
FROM
(
SELECT
t.member_id,
t.vod_id,
max( t.create_date ) AS create_date
FROM
vod_play_history t
WHERE
t.delete_date IS NULL
AND t.member_id = #{memberId}
GROUP BY
t.member_id,
t.vod_id
) t
LEFT JOIN vod_play_history t2 ON t.vod_id = t2.vod_id
AND t.member_id = t2.member_id
AND t.create_date = t2.create_date
) t4 ON t2.vod_id = t4.vod_id
WHERE
t.content_id = #{contentId}
) t3
ORDER BY
t3.order_no
</select>
<select id="contentFiles" parameterType="long" resultType="com.subsidy.model.FileDictDO">
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.CourseFieldMappingMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.CourseFieldMappingDO">
<id column="id" property="id" />
<result column="create_date" property="createDate" />
<result column="update_date" property="updateDate" />
<result column="delete_date" property="deleteDate" />
<result column="course_id" property="courseId" />
<result column="field_mapping" property="fieldMapping" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_date,
update_date,
delete_date,
id, course_id, field_mapping
</sql>
<select id="courseFields" parameterType="long" resultType="com.subsidy.model.FieldDictDO">
SELECT
t2.id,
t2.field_name,
t2.create_date
FROM
course_field_mapping t
LEFT JOIN field_dict t2 ON t.field_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t.course_id = #{courseId}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.FieldDictMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.FieldDictDO">
<id column="id" property="id" />
<result column="create_date" property="createDate" />
<result column="update_date" property="updateDate" />
<result column="delete_date" property="deleteDate" />
<result column="field_name" property="fieldName" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
create_date,
update_date,
delete_date,
id, field_name
</sql>
</mapper>
......@@ -24,7 +24,8 @@
id, user_name, telephone, password, gender, image, id_card
</sql>
<select id="passwordLogin" parameterType="com.subsidy.dto.member.PasswordLoginDTO" resultType="com.subsidy.vo.administer.UserRoleVO">
<select id="passwordLogin" parameterType="com.subsidy.dto.member.PasswordLoginDTO"
resultType="com.subsidy.vo.administer.UserRoleVO">
SELECT
t.id,
t.telephone,
......@@ -59,6 +60,90 @@
AND t.member_id = #{id}
</select>
<select id="myCourses" parameterType="long" resultType="com.subsidy.vo.member.MyCoursesVO">
SELECT
t3.id AS courseId,
t2.id AS classId,
t3.course_name,
t2.end_date,
t4.cnt AS totalCnt,
t5.result AS studyCnt,
t6.ttlMember,
if(
TIMESTAMPDIFF(
DAY,
DATE_FORMAT( NOW(), '%Y-%m-%d' ),
t2.end_date)>0,TIMESTAMPDIFF(
DAY,
DATE_FORMAT( NOW(), '%Y-%m-%d' ),
t2.end_date),0) AS diffDate
FROM
class_member_mapping t
LEFT JOIN ( SELECT t.class_id, count( 1 ) ttlMember FROM class_member_mapping t WHERE t.delete_date IS NULL
GROUP BY t.class_id ) t6 ON t.class_id = t6.class_id
LEFT JOIN class_dict t2 ON t.class_id = t2.id
LEFT JOIN course_dict t3 ON t2.course_id = t3.id
LEFT JOIN (
SELECT
t.course_id,
count( 1 ) AS cnt
FROM
course_content t
LEFT JOIN vod_dict t2 ON t.id = t2.content_id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
GROUP BY
t.course_id
) t4 ON t3.id = t4.course_id
LEFT JOIN (
SELECT
t1.member_id,
t1.class_id,
sum( result ) AS result
FROM
(
SELECT
t.member_id,
t.vod_id,
t.class_id,
sum( t.play_length ) AS play_length,
t2.vod_length,
IF
( sum( t.play_length )>= t2.vod_length, 1, 0 ) AS result
FROM
vod_play_history t
LEFT JOIN vod_dict t2 ON t.vod_id = t2.id
WHERE
t.member_id = #{memberId}
GROUP BY
t.member_id,
t.vod_id,
t.class_id
) t1
GROUP BY
t1.member_id,
t1.class_id
) t5 ON t.class_id = t5.class_id
AND t.member_id = t5.member_id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t3.delete_date IS NULL
AND t.member_id = #{memberId}
<if test="status ==1">
AND now()>= start_date
AND now() &lt; end_date
</if>
<if test="status ==2">
AND now() &lt; start_date
</if>
<if test="status ==3">
AND now() > end_date
</if>
order by t2.end_date desc
</select>
<select id="getDepartments" parameterType="long" resultType="com.subsidy.model.DepartmentDictDO">
SELECT
......@@ -76,13 +161,13 @@
<select id="getMembers" resultType="com.subsidy.vo.member.GetAllVO">
SELECT
t2.id,
t2.user_name,
t2.account_name,
t2.telephone,
t2.gender,
t2.id_card,
t2.status
t2.id,
t2.user_name,
t2.account_name,
t2.telephone,
t2.gender,
t2.id_card,
t2.status
FROM
member_department_mapping t
LEFT JOIN member t2 ON t.member_id = t2.id
......
......@@ -149,7 +149,7 @@
vod_play_history t
WHERE
t.delete_date IS NULL
AND t.class_id = 17
AND t.class_id = #{classId}
) t
LEFT JOIN (
SELECT
......@@ -162,7 +162,7 @@
t.member_id,
t.vod_id,
IF
( max( t.play_length )>= t2.vod_length * 0.8, 1, 0 ) AS cnt
( sum( t.play_length )>= t2.vod_length, 1, 0 ) AS cnt
FROM
vod_play_history t
LEFT JOIN vod_dict t2 ON t.vod_id = t2.id
......
......@@ -6,7 +6,7 @@ setParent=com.subsidy
# mapper.xml文件生成路径
mapperPath=/src/main/resources/mapper/
# 数据库地址
url=jdbc:mysql://116.62.57.92:3306/subsidy_test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url=jdbc:mysql://47.97.19.66:3306/subsidy_test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true&useAffectedRows=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
driverName=com.mysql.cj.jdbc.Driver
userName=devloper
password=dev@1553$
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!