Commit feb94308 by 涂亚平

测试版本

1 parent 7acaa6ac
Showing with 543 additions and 88 deletions
......@@ -21,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.Api;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -82,14 +83,14 @@ public class AdministerController {
@PostMapping("classSummary")
@ApiOperation("课程汇总 id 班级id ")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
//@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO classSummary(@RequestBody ClassDetailDTO classDetailDTO){
return ResponseData.generateCreatedResponse(0,administerService.classSummary(classDetailDTO));
}
@PostMapping("classDetail")
@ApiOperation("班级管理--班级成员 id 班级id userName")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
//@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO classDetail(@RequestBody ClassDetailDTO classDetailDTO){
return ResponseData.generateCreatedResponse(0,administerService.classDetail(classDetailDTO));
}
......@@ -155,5 +156,10 @@ public class AdministerController {
administerService.export(classDetailDTO);
}
@PostMapping("importMember")
@ApiOperation("导入学生 {companyId 公司id file}")
public ResponseVO importMember(Long companyId,@RequestParam("file") MultipartFile file){
return ResponseData.generateCreatedResponse(0,administerService.importMember(companyId,file));
}
}
......@@ -46,7 +46,7 @@ public class CourseDictController {
@PostMapping("queryCourses")
@ApiOperation("平台运营者--查询课程 pageSize pageNum administerId companyId courseName categoryId courseType courseSource")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
//@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO queryCourses(@RequestBody QueryCoursesDTO queryCoursesDTO){
return ResponseData.generateCreatedResponse(0,courseDictService.queryCourses(queryCoursesDTO));
}
......
......@@ -33,14 +33,14 @@ public class DepartmentDictController {
private DepartmentDictService departmentDictService;
@PostMapping("getDepartments")
@ApiOperation("获取所有部门 ** companyId 企业id")
@ApiOperation("获取所有部门 companyId 企业id")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO getDepartments(@RequestBody DepartmentDictDO departmentDictDO){
return ResponseData.generateCreatedResponse(0,departmentDictService.getDepartments(departmentDictDO));
}
@PostMapping("addDepartment")
@ApiOperation("添加部门 ** companyId departmentName leaderName")
@ApiOperation("添加部门 ** companyId departmentName leaderName parentId 父节点")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO addDepartment(@RequestBody DepartmentDictDO departmentDictDO){
return ResponseData.generateCreatedResponse(0,departmentDictService.addDepartment(departmentDictDO));
......@@ -54,7 +54,7 @@ public class DepartmentDictController {
}
@PostMapping("updateDepartment")
@ApiOperation("编辑部门 id ** companyId departmentName leaderName")
@ApiOperation("编辑部门 id ** companyId departmentName leaderName parentId")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO updateDepartment(@RequestBody DepartmentDictDO departmentDictDO){
return ResponseData.generateCreatedResponse(0,departmentDictService.updateDepartment(departmentDictDO));
......
......@@ -5,6 +5,7 @@ import com.subsidy.common.ResponseData;
import com.subsidy.common.ResponseVO;
import com.subsidy.common.interceptor.LoginRequired;
import com.subsidy.dto.administer.VerifyCodeDTO;
import com.subsidy.dto.member.AddMemberDTO;
import com.subsidy.dto.member.ContentMemberDTO;
import com.subsidy.dto.member.GetAllDTO;
import com.subsidy.dto.member.StudyHistoryDTO;
......@@ -54,15 +55,15 @@ public class MemberController {
@PostMapping("addMember")
@ApiOperation("新增成员 departmentId userName accountName telephone gender image idCard")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO addMember(@RequestBody MemberDO memberDO){
return ResponseData.generateCreatedResponse(0,memberService.addMember(memberDO));
public ResponseVO addMember(@RequestBody AddMemberDTO addMemberDTO){
return ResponseData.generateCreatedResponse(0,memberService.addMember(addMemberDTO));
}
@PostMapping("updateMember")
@ApiOperation("编辑成员 {id departmentId userName accountName telephone gender image idCard status}")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO updateMember(@RequestBody MemberDO memberDO){
return ResponseData.generateCreatedResponse(0,memberService.updateMember(memberDO));
public ResponseVO updateMember(@RequestBody AddMemberDTO addMemberDTO){
return ResponseData.generateCreatedResponse(0,memberService.updateMember(addMemberDTO));
}
@PostMapping(value = "/login")
......
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 2021-11-01
*/
@RestController
@Api(tags = "老师部门映射表")
@RequestMapping("/member-department-mapping-do")
public class MemberDepartmentMappingController {
}
......@@ -49,8 +49,8 @@ public class SignInRecordController {
}
@PostMapping("classStudyHistory")
@ApiOperation("班级学习记录 ** id 班级id className courseName pageSize pageNum")
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
@ApiOperation("校区学习记录 id 校区id className courseName pageSize pageNum")
//@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public ResponseVO classSignInfo(@RequestBody ClassSignInfoDTO classSignInfoDTO){
return ResponseData.generateCreatedResponse(0,signInRecordService.classSignInfo(classSignInfoDTO));
}
......
......@@ -2,6 +2,8 @@ package com.subsidy.dto.department;
import lombok.Data;
import java.util.List;
@Data
public class GetDepartmentsVO {
......@@ -13,4 +15,10 @@ public class GetDepartmentsVO {
private Integer cnt;
private Long parentId;
private List<GetDepartmentsVO> children;
private String parentDepartmentName;
}
package com.subsidy.dto.member;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.MemberDO;
import lombok.Data;
import java.util.List;
@Data
public class AddMemberDTO extends MemberDO {
private List<Long> departmentIds;
}
package com.subsidy.dto.member;
import com.subsidy.util.excel.ExcelColumn;
import com.subsidy.util.excel.ExcelColumnUtil;
import lombok.Data;
@Data
public class ImportMemberDTO {
@ExcelColumnUtil(value = "姓名", col = 1)
private String userName;
@ExcelColumnUtil(value = "性别", col = 2)
private String gender;
@ExcelColumnUtil(value = "账号", col = 3)
private String accountName;
@ExcelColumnUtil(value = "手机", col = 4)
private String telephone;
@ExcelColumnUtil(value = "身份证号", col = 5)
private String idCard;
}
......@@ -18,7 +18,7 @@ import java.util.List;
@Repository
public interface DepartmentDictMapper extends BaseMapper<DepartmentDictDO> {
List<GetDepartmentsVO> getDepartments(DepartmentDictDO departmentDictDO);
//List<GetDepartmentsVO> getDepartments(DepartmentDictDO departmentDictDO);
}
package com.subsidy.mapper;
import com.subsidy.model.MemberDepartmentMappingDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
/**
* <p>
* 老师部门映射表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-11-01
*/
@Repository
public interface MemberDepartmentMappingMapper extends BaseMapper<MemberDepartmentMappingDO> {
}
package com.subsidy.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.MemberDO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.subsidy.vo.member.GetAllVO;
import com.subsidy.vo.member.StudyPageVO;
import io.swagger.models.auth.In;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -23,4 +27,14 @@ public interface MemberMapper extends BaseMapper<MemberDO> {
*/
List<StudyPageVO> studyPage(MemberDO memberDO);
/**
* 查询学生所在部门
*/
List<DepartmentDictDO> getDepartments(Long memberId);
/**
* 查询部门所有的学生
*/
IPage<GetAllVO > getMembers(IPage iPage,Long departmentId,String userName,String status);
}
......@@ -18,6 +18,10 @@ import org.springframework.stereotype.Repository;
@Repository
public interface SignInRecordMapper extends BaseMapper<SignInRecordDO> {
/**
* 公司学习记录
*/
IPage<ClassSignInfoVO> classSignInfo(IPage iPage,String className,String courseName,Integer id);
......
package com.subsidy.model;
import com.subsidy.dto.department.GetDepartmentsVO;
import com.subsidy.util.BaseModel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
......@@ -7,6 +8,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* <p>
* 部门字典表
......@@ -51,7 +54,7 @@ public class DepartmentDictDO extends BaseModel {
/**
* 为写程序方便,数据库里为null
*/
private String children;
private List<GetDepartmentsVO> children;
}
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 2021-11-01
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("member_department_mapping")
public class MemberDepartmentMappingDO extends BaseModel {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 老师id
*/
private Long memberId;
/**
* 部门id
*/
private Long departmentId;
private LocalDateTime createTime;
private LocalDateTime updateTime;
private LocalDateTime deleteTime;
}
......@@ -6,10 +6,12 @@ import com.subsidy.dto.administer.OperatorsDTO;
import com.subsidy.model.AdministerDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.subsidy.model.ClassDictDO;
import com.subsidy.model.MemberDO;
import com.subsidy.vo.administer.*;
import com.subsidy.vo.classdict.ClassDetailVO;
import com.subsidy.vo.member.ClassSignVO;
import com.subsidy.vo.sign.AnswerRecordVO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -56,4 +58,6 @@ public interface AdministerService extends IService<AdministerDO> {
void export(ClassDetailDTO classDetailDTO)throws Exception;
List<MemberDO> importMember(Long companyId, MultipartFile multipartFile);
}
package com.subsidy.service;
import com.subsidy.model.MemberDepartmentMappingDO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 老师部门映射表 服务类
* </p>
*
* @author DengMin
* @since 2021-11-01
*/
public interface MemberDepartmentMappingService extends IService<MemberDepartmentMappingDO> {
}
......@@ -2,6 +2,7 @@ package com.subsidy.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.subsidy.dto.administer.VerifyCodeDTO;
import com.subsidy.dto.member.AddMemberDTO;
import com.subsidy.dto.member.ContentMemberDTO;
import com.subsidy.dto.member.GetAllDTO;
import com.subsidy.dto.member.StudyHistoryDTO;
......@@ -22,13 +23,13 @@ import java.util.List;
*/
public interface MemberService extends IService<MemberDO> {
IPage<MemberDO> getAll(GetAllDTO getAllDTO);
IPage<GetAllVO> getAll(GetAllDTO getAllDTO);
String deleteMember(MemberDO memberDO);
String addMember(MemberDO memberDO);
String addMember(AddMemberDTO addMemberDTO);
String updateMember(MemberDO memberDO);
String updateMember(AddMemberDTO addMemberDTO);
UserRoleVO login(VerifyCodeDTO verifyCodeDTO);
......
......@@ -6,15 +6,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.administer.ClassDetailDTO;
import com.subsidy.dto.administer.OperatorsDTO;
import com.subsidy.dto.member.ImportMemberDTO;
import com.subsidy.mapper.*;
import com.subsidy.model.*;
import com.subsidy.service.AdministerService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.subsidy.util.*;
import com.subsidy.util.excel.ExcelUtil;
import com.subsidy.vo.administer.*;
import com.subsidy.vo.classdict.ClassDetailVO;
import com.subsidy.vo.member.ClassSignVO;
import com.subsidy.vo.sign.AnswerRecordVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.util.CellRangeAddress;
......@@ -30,15 +33,15 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.lang.reflect.Member;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
......@@ -82,6 +85,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
@Autowired
private RoleAdministerMappingMapper roleAdministerMappingMapper;
@Autowired
private MemberMapper memberMapper;
public LoginVO login(AdministerDO administerDO) {
LoginVO loginVO = new LoginVO();
......@@ -140,14 +146,14 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
//判断该用户的角色
Integer count = roleAdministerMappingMapper.selectCount(new QueryWrapper<RoleAdministerMappingDO>()
.lambda()
.eq(RoleAdministerMappingDO::getAdministerId,operatorsDTO.getId())
.eq(RoleAdministerMappingDO::getRoleId,1));
.eq(RoleAdministerMappingDO::getAdministerId, operatorsDTO.getId())
.eq(RoleAdministerMappingDO::getRoleId, 1));
if (count > 0){
if (count > 0) {
operatorsDTO.setId(null);
}
return companyDictMapper.operators(pager, operatorsDTO.getCompanyName(),operatorsDTO.getId(), operatorsDTO.getUserName(), 0);
return companyDictMapper.operators(pager, operatorsDTO.getCompanyName(), operatorsDTO.getId(), operatorsDTO.getUserName(), 0);
}
public String addAdminister(AdministerDO administerDO) {
......@@ -227,17 +233,19 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
.eq(VodPlayHistoryDO::getMemberId, classMemberMappingDO.getId())
.eq(VodPlayHistoryDO::getVodId, vodDictDO.getId())
.orderByDesc(VodPlayHistoryDO::getPlayRecord));
for (VodPlayHistoryDO vodPlayHistoryDO : vodPlayHistoryDOS) {
totalStudyLength += vodPlayHistoryDO.getPlayLength();
}
if (vodPlayHistoryDOS.size() > 0) {
if (vodPlayHistoryDOS.get(0).getPlayRecord() > vodDictDO.getVodLength() * 0.8) {
if (vodPlayHistoryDOS.get(0).getPlayRecord() < vodDictDO.getVodLength() * 0.8) {
totalStudyVods++;
}
}
}
}
classSummaryVO.setStudyVodCounts(MathUtil.intDivFloorPercent(totalStudyVods, vodDictDOS.size()));
classSummaryVO.setStudyVodCounts(MathUtil.intDivCeil(totalStudyVods, vodDictDOS.size()));
//平均完成时长 学生观看课程视频的全部时长/总人数
int avg = MathUtil.intDivCeil(totalStudyLength, classMemberMappingDOS.size());
......@@ -255,7 +263,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
passNum++;
}
}
classSummaryVO.setPassRate(100 * MathUtil.intDivFloorPercent(passNum, classMemberMappingDOS.size()));
classSummaryVO.setPassRate(MathUtil.intDivFloorPercent(passNum, classMemberMappingDOS.size()));
//平均签到数 向上取整
......@@ -320,7 +328,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
if (null != exerciseDoneResultDO) {
classDetailVO.setRightCounts(exerciseDoneResultDO.getRightCounts());
classDetailVO.setTotalExeCounts(exerciseDoneResultDO.getTotalCounts());
classDetailVO.setScore(MathUtil.intDivCeil(exerciseDoneResultDO.getRightCounts(), exerciseDoneResultDO.getTotalCounts()));
classDetailVO.setScore(MathUtil.intDivFloorPercent(exerciseDoneResultDO.getRightCounts(), exerciseDoneResultDO.getTotalCounts()));
}
//答疑
......@@ -451,12 +459,20 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
String percent = MathUtil.getPercentAvgIndexWithPercent(new BigDecimal(i), new BigDecimal(vodDictDOS.size()));
classSignVO.setPercent(percent);
//签到次数
Integer count = signInRecordMapper.selectCount(new QueryWrapper<SignInRecordDO>()
//签到
List<SignInRecordDO> signInRecordDOS = signInRecordMapper.selectList(new QueryWrapper<SignInRecordDO>()
.lambda()
.eq(SignInRecordDO::getMemberId, classSignVO.getId())
.eq(SignInRecordDO::getClassId, classDetailDTO.getId()));
classSignVO.setSignCounts(count);
classSignVO.setSignCounts(signInRecordDOS.size());
StringBuilder stringBuilder = new StringBuilder();
//签到时间
for (SignInRecordDO signInRecordDO : signInRecordDOS) {
stringBuilder.append(signInRecordDO.getSignInDate().toString().replace("T", " ")).append(";");
}
String signInDate = stringBuilder.toString().substring(0, stringBuilder.length() - 1);
classSignVO.setSignInDateList(signInDate);
//培训时长
classSignVO.setTrainingLength(i);
......@@ -503,12 +519,20 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
String percent = MathUtil.getPercentAvgIndexWithPercent(new BigDecimal(i), new BigDecimal(vodDictDOS.size()));
classSignVO.setPercent(percent);
//签到次数
Integer count = signInRecordMapper.selectCount(new QueryWrapper<SignInRecordDO>()
//签到
List<SignInRecordDO> signInRecordDOS = signInRecordMapper.selectList(new QueryWrapper<SignInRecordDO>()
.lambda()
.eq(SignInRecordDO::getMemberId, classSignVO.getId())
.eq(SignInRecordDO::getClassId, classDetailDTO.getId()));
classSignVO.setSignCounts(count);
classSignVO.setSignCounts(signInRecordDOS.size());
StringBuilder stringBuilder = new StringBuilder();
//签到时间
for (SignInRecordDO signInRecordDO : signInRecordDOS) {
stringBuilder.append(signInRecordDO.getSignInDate().toString().replace("T", " ")).append(";");
}
String signInDate = stringBuilder.toString().substring(0, stringBuilder.length() - 1);
classSignVO.setSignInDateList(signInDate);
//培训时长
classSignVO.setTrainingLength(i);
......@@ -541,9 +565,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
int score = MathUtil.intDivCeil(rights, total);
exerciseTestVO.setScore(score);
if (score >= 60) {
exerciseTestVO.setResult("通过");
exerciseTestVO.setResult("合格");
} else {
exerciseTestVO.setResult("未通过");
exerciseTestVO.setResult("不合格");
}
} else {
exerciseTestVO.setScore(0);
......@@ -577,9 +601,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
int score = MathUtil.intDivCeil(rights, total);
exerciseTestVO.setScore(score);
if (score >= 60) {
exerciseTestVO.setResult("通过");
exerciseTestVO.setResult("合格");
} else {
exerciseTestVO.setResult("未通过");
exerciseTestVO.setResult("不合格");
}
} else {
exerciseTestVO.setScore(0);
......@@ -609,7 +633,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
ZipOutputStream zipOutputStream = new ZipOutputStream(sos);
String zipname = "summary.zip";
response.reset();
response.setHeader("Access-Control-Allow-Origin","*");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setContentType("application/zip;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + new String((zipname).getBytes("UTF-8"), "ISO8859-1"));
......@@ -667,6 +691,40 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
}
public List<MemberDO> importMember(Long companyId, MultipartFile multipartFile) {
List<MemberDO> memberDOS = new ArrayList<>();
ExcelUtil.readExcel(null, ImportMemberDTO.class, multipartFile).forEach(s -> {
MemberDO memberDO = memberMapper.selectOne(new QueryWrapper<MemberDO>()
.lambda()
.eq(MemberDO::getTelephone, s.getTelephone()));
try {
if (null != memberDO) {
memberDOS.add(memberDO);
} else {
MemberDO memberDO1 = new MemberDO();
memberDO1.setUserName(s.getUserName());
memberDO1.setGender(s.getGender());
memberDO1.setAccountName(s.getAccountName());
memberDO1.setTelephone(s.getTelephone());
memberDO1.setIdCard(s.getIdCard());
memberDO1.setStatus("启用");
memberMapper.insert(memberDO);
}
} catch (Exception e) {
memberDOS.add(memberDO);
}
});
return memberDOS;
}
public static void membersListExcel(String title, List<String> headList, List<ClassDetailVO> classDetailVOS, String datePattern, int colWidth, OutputStream out) {
if (datePattern == null) {
datePattern = "yyyy年MM月dd日";
......
......@@ -8,10 +8,12 @@ import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.administer.OperatorsDTO;
import com.subsidy.dto.company.AddCompanyDTO;
import com.subsidy.mapper.AdministerMapper;
import com.subsidy.mapper.DepartmentDictMapper;
import com.subsidy.mapper.RoleAdministerMappingMapper;
import com.subsidy.model.AdministerDO;
import com.subsidy.model.CompanyDictDO;
import com.subsidy.mapper.CompanyDictMapper;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.RoleAdministerMappingDO;
import com.subsidy.service.CompanyDictService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -39,6 +41,9 @@ public class CompanyDictServiceImpl extends ServiceImpl<CompanyDictMapper, Compa
@Autowired
private RoleAdministerMappingMapper roleAdministerMappingMapper;
@Autowired
private DepartmentDictMapper departmentDictMapper;
public IPage<OperatorsVO> operators(OperatorsDTO operatorsDTO) {
Page pager = new Page(operatorsDTO.getPageNum(), operatorsDTO.getPageSize());
//判断该用户的角色
......@@ -85,6 +90,13 @@ public class CompanyDictServiceImpl extends ServiceImpl<CompanyDictMapper, Compa
roleAdministerMappingDO.setRoleId(2L);
roleAdministerMappingMapper.insert(roleAdministerMappingDO);
//添加默认部门 名称为公司名称
DepartmentDictDO departmentDictDO = new DepartmentDictDO();
departmentDictDO.setCompanyId(companyDictDO.getId());
departmentDictDO.setDepartmentName(companyDictDO.getCompanyName());
//departmentDictDO.setParentId(1L);
departmentDictMapper.insert(departmentDictDO);
return ConstantUtils.ADD_SUCCESS;
}
......
......@@ -3,13 +3,18 @@ package com.subsidy.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.subsidy.common.exception.HttpException;
import com.subsidy.dto.department.GetDepartmentsVO;
import com.subsidy.mapper.MemberDepartmentMappingMapper;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.mapper.DepartmentDictMapper;
import com.subsidy.model.MemberDepartmentMappingDO;
import com.subsidy.service.DepartmentDictService;
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;
/**
......@@ -23,9 +28,73 @@ import java.util.List;
@Service
public class DepartmentDictServiceImpl extends ServiceImpl<DepartmentDictMapper, DepartmentDictDO> implements DepartmentDictService {
@Autowired
private MemberDepartmentMappingMapper memberDepartmentMappingMapper;
public List<GetDepartmentsVO> getDepartments(DepartmentDictDO departmentDictDO) {
return this.baseMapper.getDepartments(departmentDictDO);
//返回结果
List<GetDepartmentsVO> getDepartmentsVOS = new ArrayList<>();
List<DepartmentDictDO> parentNodes = this.baseMapper.selectList(new QueryWrapper<DepartmentDictDO>()
.lambda()
.isNull(DepartmentDictDO::getParentId)
.eq(DepartmentDictDO::getCompanyId, departmentDictDO.getCompanyId()));
for (DepartmentDictDO dd : parentNodes) {
GetDepartmentsVO getDepartmentsVO = new GetDepartmentsVO();
BeanUtils.copyProperties(dd,getDepartmentsVO);
Integer count = memberDepartmentMappingMapper.selectCount(new QueryWrapper<MemberDepartmentMappingDO>()
.lambda()
.eq(MemberDepartmentMappingDO::getDepartmentId,dd.getId()));
getDepartmentsVO.setCnt(count);
getDepartmentsVO.setChildren(getChildNodes(getDepartmentsVO));
DepartmentDictDO departmentDictDO1 = this.baseMapper.selectById(dd.getParentId());
if (null != departmentDictDO1){
getDepartmentsVO.setParentDepartmentName(departmentDictDO1.getDepartmentName());
}
getDepartmentsVOS.add(getDepartmentsVO);
}
return getDepartmentsVOS;
}
/**
* 递归部门列表 不包含老师信息和人数信息
*
* @param departmentDictDO
* @return
*/
public List<GetDepartmentsVO> getChildNodes(GetDepartmentsVO departmentDictDO) {
List<GetDepartmentsVO> getDepartmentsVOS = new ArrayList<>();
List<DepartmentDictDO> departmentDictDOS = this.baseMapper.selectList(new QueryWrapper<DepartmentDictDO>()
.lambda()
.eq(DepartmentDictDO::getParentId, departmentDictDO.getId()));
for (DepartmentDictDO departmentDictDO1 : departmentDictDOS) {
GetDepartmentsVO getDepartmentsVO = new GetDepartmentsVO();
BeanUtils.copyProperties(departmentDictDO1,getDepartmentsVO);
getDepartmentsVO.setChildren(getChildNodes(getDepartmentsVO));
Integer count = memberDepartmentMappingMapper.selectCount(new QueryWrapper<MemberDepartmentMappingDO>()
.lambda()
.eq(MemberDepartmentMappingDO::getDepartmentId,getDepartmentsVO.getId()));
getDepartmentsVO.setCnt(count);
DepartmentDictDO departmentDictDO2 = this.baseMapper.selectById(departmentDictDO1.getParentId());
if (null != departmentDictDO2){
getDepartmentsVO.setParentDepartmentName(departmentDictDO2.getDepartmentName());
}
getDepartmentsVOS.add(getDepartmentsVO);
}
if (getDepartmentsVOS.size() == 0) {
return null;
}
return getDepartmentsVOS;
}
public String addDepartment(DepartmentDictDO departmentDictDO) {
......@@ -46,9 +115,31 @@ public class DepartmentDictServiceImpl extends ServiceImpl<DepartmentDictMapper,
public String deleteDepartment(DepartmentDictDO departmentDictDO) {
this.baseMapper.deleteById(departmentDictDO.getId());
List<DepartmentDictDO> departmentDictDOS = this.baseMapper.selectList(new QueryWrapper<DepartmentDictDO>()
.lambda()
.eq(DepartmentDictDO::getParentId, departmentDictDO.getId())
);
for (DepartmentDictDO departmentDictDO1:departmentDictDOS){
deleteChildNode(departmentDictDO1);
}
return ConstantUtils.DELETE_SUCCESS;
}
void deleteChildNode(DepartmentDictDO departmentDictDO) {
List<DepartmentDictDO> departmentDictDOS = this.baseMapper.selectList(new QueryWrapper<DepartmentDictDO>()
.lambda()
.eq(DepartmentDictDO::getParentId, departmentDictDO.getId()));
for (DepartmentDictDO departmentDictDO1 : departmentDictDOS) {
deleteChildNode(departmentDictDO1);
}
this.baseMapper.deleteById(departmentDictDO.getId());
}
public String updateDepartment(DepartmentDictDO departmentDictDO) {
Integer counter = this.baseMapper.selectCount(new QueryWrapper<DepartmentDictDO>()
......
package com.subsidy.service.impl;
import com.subsidy.model.MemberDepartmentMappingDO;
import com.subsidy.mapper.MemberDepartmentMappingMapper;
import com.subsidy.service.MemberDepartmentMappingService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 老师部门映射表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-11-01
*/
@Service
public class MemberDepartmentMappingServiceImpl extends ServiceImpl<MemberDepartmentMappingMapper, MemberDepartmentMappingDO> implements MemberDepartmentMappingService {
}
......@@ -171,6 +171,8 @@ public class SignInRecordServiceImpl extends ServiceImpl<SignInRecordMapper, Sig
//获取有效课程
List<ClassDictDO> classDictDOS = classMemberMappingMapper.getMemberClass(signInRecordDO.getMemberId());
for (ClassDictDO classDictDO : classDictDOS){
Integer count = this.baseMapper.selectCount(new QueryWrapper<SignInRecordDO>()
.lambda()
......
......@@ -15,13 +15,16 @@ public class ClassDetailVO {
@ExcelColumn(col = 2,value = "账号")
private String accountName;
@ExcelColumn(col = 3,value = "联系方式")
@ExcelColumn(col = 3,value = "身份证号")
private String idCards;
@ExcelColumn(col = 4,value = "联系方式")
private String telephone;
/**
* 签到次数
*/
@ExcelColumn(col = 4,value = "签到次数")
@ExcelColumn(col = 5,value = "签到次数")
private Integer signCounts;
/**
......@@ -34,10 +37,10 @@ public class ClassDetailVO {
*/
private Integer allVodCounts;
@ExcelColumn(col = 5,value = "课程进度")
@ExcelColumn(col = 6,value = "课程进度")
private String classProcess;
@ExcelColumn(col = 6,value = "培训时长")
@ExcelColumn(col = 7,value = "培训时长")
private Integer trainingLength;
/**
......@@ -53,13 +56,13 @@ public class ClassDetailVO {
/**
* 评价测试
*/
@ExcelColumn(col = 7,value = "评价测试")
@ExcelColumn(col = 8,value = "评价测试")
private Integer score;
/**
* 答疑个数
*/
@ExcelColumn(col = 8,value = "答题数")
@ExcelColumn(col = 9,value = "答题数")
private Integer askCounts;
......
......@@ -3,6 +3,8 @@ package com.subsidy.vo.member;
import com.subsidy.util.excel.ExcelColumn;
import lombok.Data;
import java.util.List;
@Data
public class ClassSignVO {
......@@ -17,10 +19,13 @@ public class ClassSignVO {
@ExcelColumn(col = 2,value = "签到次数")
private Integer signCounts;
@ExcelColumn(col =3,value = "签到日期")
private String signInDateList;
/**
* 培训时长
*/
@ExcelColumn(col = 3,value = "培训时长")
@ExcelColumn(col = 4,value = "培训时长")
private Integer trainingLength;
/**
......@@ -33,13 +38,13 @@ public class ClassSignVO {
*/
private Integer allVodCounts;
@ExcelColumn(col = 4,value = "课程进度")
@ExcelColumn(col = 5,value = "课程进度")
private String classProcess;
/**
* 完成率
*/
@ExcelColumn(col = 5,value = "完成率")
@ExcelColumn(col = 6,value = "完成率")
private String percent;
......
package com.subsidy.vo.member;
import com.subsidy.model.DepartmentDictDO;
import com.subsidy.model.MemberDO;
import lombok.Data;
import java.util.List;
@Data
public class GetAllVO extends MemberDO {
private List<DepartmentDictDO> departmentDictDOS;
}
......@@ -4,7 +4,7 @@
server.port=23454
# 数据源配置
spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/shixi-ai?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.url=jdbc:mysql://rm-uf69w46mo6agw0ahao.mysql.rds.aliyuncs.com:3306/subsidy?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=ykadmin_new
......
# 环境配置
spring.profiles.active=dev
spring.profiles.active=prod
# 文件编码 UTF8
spring.mandatory-file-encoding=UTF-8
......
......@@ -47,6 +47,7 @@
SELECT
t2.id,
t2.user_name,
t2.id_card,
t2.account_name,
t2.telephone
FROM
......@@ -58,6 +59,7 @@
<if test="userName != null and userName !=''">
and t2.user_name like concat('%',#{userName} ,'%')
</if>
order by t2.id
</select>
<select id="classSign" resultType="com.subsidy.vo.member.ClassSignVO">
......@@ -75,6 +77,7 @@
<if test="userName != null and userName !=''">
and t2.user_name like concat('%',#{userName} ,'%')
</if>
order by t2.id
</select>
<select id="exerciseTest" resultType="com.subsidy.vo.administer.ExerciseTestVO">
......@@ -92,6 +95,7 @@
<if test="userName != null and userName !=''">
and t2.user_name like concat('%',#{userName} ,'%')
</if>
order by t2.id
</select>
<select id="answerRecord" resultType="com.subsidy.vo.sign.AnswerRecordVO">
......
......@@ -63,14 +63,16 @@
<select id="getSpareMembers" parameterType="com.subsidy.dto.classDict.GetSpareMembersDTO"
resultType="com.subsidy.model.MemberDO">
SELECT
t2.*
distinct t2.*
FROM
member t2
LEFT JOIN department_dict t ON t.id = t2.department_id
LEFT JOIN member_department_mapping t ON t.member_id = t2.id
left join department_dict t3 on t.department_id = t3.id
left join company_dict t4 on t3.company_id = t4.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t.company_id = #{companyId}
AND t3.company_id = #{companyId}
AND t2.id NOT IN (
SELECT
t3.id
......
......@@ -22,7 +22,7 @@
<select id="getMemberClass" parameterType="long" resultType="com.subsidy.model.ClassDictDO">
SELECT
*
t2.*
FROM
class_member_mapping t
LEFT JOIN class_dict t2 ON t.class_id = t2.id
......
......@@ -24,7 +24,12 @@
left join category t2 on t.category_id = t2.id
WHERE
t.delete_date IS NULL
<if test="companyId != null and companyId !=''" >
and t.company_id = #{companyId}
</if>
<if test="companyId ==null">
and t.company_id is null
</if>
<if test="categoryId != null">
AND t.category_id = #{categoryId}
</if>
......
......@@ -2,16 +2,16 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.subsidy.mapper.DepartmentDictMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.DepartmentDictDO">
<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="department_name" property="departmentName" />
<result column="parent_id" property="parentId" />
<result column="children" property="children" />
</resultMap>
<!-- &lt;!&ndash; 通用查询映射结果 &ndash;&gt;-->
<!-- <resultMap id="BaseResultMap" type="com.subsidy.model.DepartmentDictDO">-->
<!-- <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="department_name" property="departmentName" />-->
<!-- <result column="parent_id" property="parentId" />-->
<!-- <result column="children" property="children" />-->
<!-- </resultMap>-->
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
......@@ -21,16 +21,16 @@
id, department_name, department_leader_id, parent_id, children
</sql>
<select id="getDepartments" parameterType="long" resultType="com.subsidy.dto.department.GetDepartmentsVO">
SELECT
t.*,
t2.cnt
FROM
department_dict t
LEFT JOIN ( SELECT id, sum( 1 ) AS cnt FROM member t WHERE t.delete_date IS NULL GROUP BY t.department_id ) t2 ON t.id = t2.id
WHERE
t.delete_date IS NULL
AND t.company_id =#{companyId}
</select>
<!-- <select id="getDepartments" parameterType="long" resultType="com.subsidy.dto.department.GetDepartmentsVO">-->
<!-- SELECT-->
<!-- t.*,-->
<!-- t2.cnt-->
<!-- FROM-->
<!-- department_dict t-->
<!-- LEFT JOIN ( SELECT id, sum( 1 ) AS cnt FROM member t WHERE t.delete_date IS NULL GROUP BY t.department_id ) t2 ON t.id = t2.id-->
<!-- WHERE-->
<!-- t.delete_date IS NULL-->
<!-- AND t.company_id =#{companyId}-->
<!-- </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.MemberDepartmentMappingMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.MemberDepartmentMappingDO">
<id column="id" property="id" />
<result column="administer_id" property="administerId" />
<result column="department_id" property="departmentId" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="delete_time" property="deleteTime" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, administer_id, department_id, create_time, update_time, delete_time
</sql>
</mapper>
......@@ -4,16 +4,16 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.subsidy.model.MemberDO">
<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="user_name" property="userName" />
<result column="telephone" property="telephone" />
<result column="password" property="password" />
<result column="gender" property="gender" />
<result column="image" property="image" />
<result column="id_card" property="idCard" />
<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="user_name" property="userName"/>
<result column="telephone" property="telephone"/>
<result column="password" property="password"/>
<result column="gender" property="gender"/>
<result column="image" property="image"/>
<result column="id_card" property="idCard"/>
</resultMap>
<!-- 通用查询结果列 -->
......@@ -40,4 +40,37 @@
AND t.member_id = #{id}
</select>
<select id="getDepartments" parameterType="long" resultType="com.subsidy.model.DepartmentDictDO">
SELECT
t2.id,
t2.department_name,
t2.parent_id
FROM
member_department_mapping t
LEFT JOIN department_dict t2 ON t.department_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t.member_id = #{memberId}
</select>
<select id="getMembers" resultType="com.subsidy.vo.member.GetAllVO">
SELECT
t2.*
FROM
member_department_mapping t
LEFT JOIN member t2 ON t.member_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
and t.department_id = #{departmentId}
<if test="userName = null and userName !=''">
and t2.user_name like concat('%',#{userName} ,'%')
</if>
<if test="status != null and status !=''">
and t2.status = #{status}
</if>
</select>
</mapper>
......@@ -30,12 +30,13 @@
t.start_date,
t.end_date
FROM
class_dict t
company_dict t3
left join class_dict t on t3.id = t.company_id
LEFT JOIN course_dict t2 ON t.course_id = t2.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
and t.id = #{id}
and t3.id = #{id}
<if test="courseName != null and courseName !=''">
AND t.course_name like concat('%',#{courseName} ,'%')
</if>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!