Commit feb94308 by 涂亚平

测试版本

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