From feb943083de3b66273727f6a63cdbf3c6526e3cf Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 1 Nov 2021 19:48:38 +0800 Subject: [PATCH] 测试版本 --- src/main/java/com/subsidy/controller/AdministerController.java | 10 ++++++++-- src/main/java/com/subsidy/controller/CourseDictController.java | 2 +- src/main/java/com/subsidy/controller/DepartmentDictController.java | 6 +++--- src/main/java/com/subsidy/controller/MemberController.java | 9 +++++---- src/main/java/com/subsidy/controller/MemberDepartmentMappingController.java | 22 ++++++++++++++++++++++ src/main/java/com/subsidy/controller/SignInRecordController.java | 4 ++-- src/main/java/com/subsidy/dto/department/GetDepartmentsVO.java | 8 ++++++++ src/main/java/com/subsidy/dto/member/AddMemberDTO.java | 14 ++++++++++++++ src/main/java/com/subsidy/dto/member/ImportMemberDTO.java | 28 ++++++++++++++++++++++++++++ src/main/java/com/subsidy/mapper/DepartmentDictMapper.java | 2 +- src/main/java/com/subsidy/mapper/MemberDepartmentMappingMapper.java | 18 ++++++++++++++++++ src/main/java/com/subsidy/mapper/MemberMapper.java | 14 ++++++++++++++ src/main/java/com/subsidy/mapper/SignInRecordMapper.java | 4 ++++ src/main/java/com/subsidy/model/DepartmentDictDO.java | 5 ++++- src/main/java/com/subsidy/model/MemberDepartmentMappingDO.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/subsidy/service/AdministerService.java | 4 ++++ src/main/java/com/subsidy/service/MemberDepartmentMappingService.java | 16 ++++++++++++++++ src/main/java/com/subsidy/service/MemberService.java | 7 ++++--- src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------- src/main/java/com/subsidy/service/impl/CompanyDictServiceImpl.java | 12 ++++++++++++ src/main/java/com/subsidy/service/impl/DepartmentDictServiceImpl.java | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- src/main/java/com/subsidy/service/impl/MemberDepartmentMappingServiceImpl.java | 20 ++++++++++++++++++++ src/main/java/com/subsidy/service/impl/MemberServiceImpl.java | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------- src/main/java/com/subsidy/service/impl/SignInRecordServiceImpl.java | 2 ++ src/main/java/com/subsidy/vo/classdict/ClassDetailVO.java | 15 +++++++++------ src/main/java/com/subsidy/vo/member/ClassSignVO.java | 11 ++++++++--- src/main/java/com/subsidy/vo/member/GetAllVO.java | 14 ++++++++++++++ src/main/resources/application-prod.properties | 2 +- src/main/resources/application.properties | 2 +- src/main/resources/mapper/AdministerMapper.xml | 4 ++++ src/main/resources/mapper/ClassDictMapper.xml | 8 +++++--- src/main/resources/mapper/ClassMemberMappingMapper.xml | 2 +- src/main/resources/mapper/CourseDictMapper.xml | 7 ++++++- src/main/resources/mapper/DepartmentDictMapper.xml | 42 +++++++++++++++++++++--------------------- src/main/resources/mapper/MemberDepartmentMappingMapper.xml | 20 ++++++++++++++++++++ src/main/resources/mapper/MemberMapper.xml | 53 +++++++++++++++++++++++++++++++++++++++++++---------- src/main/resources/mapper/SignInRecordMapper.xml | 5 +++-- 37 files changed, 660 insertions(+), 169 deletions(-) create mode 100644 src/main/java/com/subsidy/controller/MemberDepartmentMappingController.java create mode 100644 src/main/java/com/subsidy/dto/member/AddMemberDTO.java create mode 100644 src/main/java/com/subsidy/dto/member/ImportMemberDTO.java create mode 100644 src/main/java/com/subsidy/mapper/MemberDepartmentMappingMapper.java create mode 100644 src/main/java/com/subsidy/model/MemberDepartmentMappingDO.java create mode 100644 src/main/java/com/subsidy/service/MemberDepartmentMappingService.java create mode 100644 src/main/java/com/subsidy/service/impl/MemberDepartmentMappingServiceImpl.java create mode 100644 src/main/java/com/subsidy/vo/member/GetAllVO.java create mode 100644 src/main/resources/mapper/MemberDepartmentMappingMapper.xml diff --git a/src/main/java/com/subsidy/controller/AdministerController.java b/src/main/java/com/subsidy/controller/AdministerController.java index e25f118..4be2380 100644 --- a/src/main/java/com/subsidy/controller/AdministerController.java +++ b/src/main/java/com/subsidy/controller/AdministerController.java @@ -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)); + } } diff --git a/src/main/java/com/subsidy/controller/CourseDictController.java b/src/main/java/com/subsidy/controller/CourseDictController.java index e74f371..570cd58 100644 --- a/src/main/java/com/subsidy/controller/CourseDictController.java +++ b/src/main/java/com/subsidy/controller/CourseDictController.java @@ -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)); } diff --git a/src/main/java/com/subsidy/controller/DepartmentDictController.java b/src/main/java/com/subsidy/controller/DepartmentDictController.java index 2d4ade9..3958245 100644 --- a/src/main/java/com/subsidy/controller/DepartmentDictController.java +++ b/src/main/java/com/subsidy/controller/DepartmentDictController.java @@ -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)); diff --git a/src/main/java/com/subsidy/controller/MemberController.java b/src/main/java/com/subsidy/controller/MemberController.java index 27d591f..9027025 100644 --- a/src/main/java/com/subsidy/controller/MemberController.java +++ b/src/main/java/com/subsidy/controller/MemberController.java @@ -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") diff --git a/src/main/java/com/subsidy/controller/MemberDepartmentMappingController.java b/src/main/java/com/subsidy/controller/MemberDepartmentMappingController.java new file mode 100644 index 0000000..640c491 --- /dev/null +++ b/src/main/java/com/subsidy/controller/MemberDepartmentMappingController.java @@ -0,0 +1,22 @@ +package com.subsidy.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.Api; + +/** + *

+ * 老师部门映射表 前端控制器 + *

+ * + * @author DengMin + * @since 2021-11-01 + */ +@RestController +@Api(tags = "老师部门映射表") +@RequestMapping("/member-department-mapping-do") +public class MemberDepartmentMappingController { + +} diff --git a/src/main/java/com/subsidy/controller/SignInRecordController.java b/src/main/java/com/subsidy/controller/SignInRecordController.java index 0ac45fd..d2036b5 100644 --- a/src/main/java/com/subsidy/controller/SignInRecordController.java +++ b/src/main/java/com/subsidy/controller/SignInRecordController.java @@ -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)); } diff --git a/src/main/java/com/subsidy/dto/department/GetDepartmentsVO.java b/src/main/java/com/subsidy/dto/department/GetDepartmentsVO.java index bf737e4..5e92e23 100644 --- a/src/main/java/com/subsidy/dto/department/GetDepartmentsVO.java +++ b/src/main/java/com/subsidy/dto/department/GetDepartmentsVO.java @@ -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 children; + + private String parentDepartmentName; + } diff --git a/src/main/java/com/subsidy/dto/member/AddMemberDTO.java b/src/main/java/com/subsidy/dto/member/AddMemberDTO.java new file mode 100644 index 0000000..8511410 --- /dev/null +++ b/src/main/java/com/subsidy/dto/member/AddMemberDTO.java @@ -0,0 +1,14 @@ +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 departmentIds; + +} diff --git a/src/main/java/com/subsidy/dto/member/ImportMemberDTO.java b/src/main/java/com/subsidy/dto/member/ImportMemberDTO.java new file mode 100644 index 0000000..4ba1069 --- /dev/null +++ b/src/main/java/com/subsidy/dto/member/ImportMemberDTO.java @@ -0,0 +1,28 @@ +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; + + + +} diff --git a/src/main/java/com/subsidy/mapper/DepartmentDictMapper.java b/src/main/java/com/subsidy/mapper/DepartmentDictMapper.java index 7824003..0d71522 100644 --- a/src/main/java/com/subsidy/mapper/DepartmentDictMapper.java +++ b/src/main/java/com/subsidy/mapper/DepartmentDictMapper.java @@ -18,7 +18,7 @@ import java.util.List; @Repository public interface DepartmentDictMapper extends BaseMapper { - List getDepartments(DepartmentDictDO departmentDictDO); + //List getDepartments(DepartmentDictDO departmentDictDO); } diff --git a/src/main/java/com/subsidy/mapper/MemberDepartmentMappingMapper.java b/src/main/java/com/subsidy/mapper/MemberDepartmentMappingMapper.java new file mode 100644 index 0000000..0dc8413 --- /dev/null +++ b/src/main/java/com/subsidy/mapper/MemberDepartmentMappingMapper.java @@ -0,0 +1,18 @@ +package com.subsidy.mapper; + +import com.subsidy.model.MemberDepartmentMappingDO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 老师部门映射表 Mapper 接口 + *

+ * + * @author DengMin + * @since 2021-11-01 + */ + @Repository +public interface MemberDepartmentMappingMapper extends BaseMapper { + +} diff --git a/src/main/java/com/subsidy/mapper/MemberMapper.java b/src/main/java/com/subsidy/mapper/MemberMapper.java index efaed52..ffc118b 100644 --- a/src/main/java/com/subsidy/mapper/MemberMapper.java +++ b/src/main/java/com/subsidy/mapper/MemberMapper.java @@ -1,8 +1,12 @@ 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 { */ List studyPage(MemberDO memberDO); + /** + * 查询学生所在部门 + */ + List getDepartments(Long memberId); + + /** + * 查询部门所有的学生 + */ + IPage getMembers(IPage iPage,Long departmentId,String userName,String status); + } diff --git a/src/main/java/com/subsidy/mapper/SignInRecordMapper.java b/src/main/java/com/subsidy/mapper/SignInRecordMapper.java index 89a32c0..2e96e16 100644 --- a/src/main/java/com/subsidy/mapper/SignInRecordMapper.java +++ b/src/main/java/com/subsidy/mapper/SignInRecordMapper.java @@ -18,6 +18,10 @@ import org.springframework.stereotype.Repository; @Repository public interface SignInRecordMapper extends BaseMapper { + /** + * 公司学习记录 + */ + IPage classSignInfo(IPage iPage,String className,String courseName,Integer id); diff --git a/src/main/java/com/subsidy/model/DepartmentDictDO.java b/src/main/java/com/subsidy/model/DepartmentDictDO.java index 469e635..f2215ed 100644 --- a/src/main/java/com/subsidy/model/DepartmentDictDO.java +++ b/src/main/java/com/subsidy/model/DepartmentDictDO.java @@ -1,5 +1,6 @@ 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; + /** *

* 部门字典表 @@ -51,7 +54,7 @@ public class DepartmentDictDO extends BaseModel { /** * 为写程序方便,数据库里为null */ - private String children; + private List children; } diff --git a/src/main/java/com/subsidy/model/MemberDepartmentMappingDO.java b/src/main/java/com/subsidy/model/MemberDepartmentMappingDO.java new file mode 100644 index 0000000..9d74c5f --- /dev/null +++ b/src/main/java/com/subsidy/model/MemberDepartmentMappingDO.java @@ -0,0 +1,46 @@ +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; + +/** + *

+ * 老师部门映射表 + *

+ * + * @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; + + +} diff --git a/src/main/java/com/subsidy/service/AdministerService.java b/src/main/java/com/subsidy/service/AdministerService.java index 8908a89..ef6985f 100644 --- a/src/main/java/com/subsidy/service/AdministerService.java +++ b/src/main/java/com/subsidy/service/AdministerService.java @@ -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 { void export(ClassDetailDTO classDetailDTO)throws Exception; + List importMember(Long companyId, MultipartFile multipartFile); + } diff --git a/src/main/java/com/subsidy/service/MemberDepartmentMappingService.java b/src/main/java/com/subsidy/service/MemberDepartmentMappingService.java new file mode 100644 index 0000000..ebe5990 --- /dev/null +++ b/src/main/java/com/subsidy/service/MemberDepartmentMappingService.java @@ -0,0 +1,16 @@ +package com.subsidy.service; + +import com.subsidy.model.MemberDepartmentMappingDO; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + *

+ * 老师部门映射表 服务类 + *

+ * + * @author DengMin + * @since 2021-11-01 + */ +public interface MemberDepartmentMappingService extends IService { + +} diff --git a/src/main/java/com/subsidy/service/MemberService.java b/src/main/java/com/subsidy/service/MemberService.java index 0edc0e3..d8de6aa 100644 --- a/src/main/java/com/subsidy/service/MemberService.java +++ b/src/main/java/com/subsidy/service/MemberService.java @@ -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 { - IPage getAll(GetAllDTO getAllDTO); + IPage 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); diff --git a/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java b/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java index a848866..cf31f82 100644 --- a/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java +++ b/src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java @@ -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() - .lambda() - .eq(RoleAdministerMappingDO::getAdministerId,operatorsDTO.getId()) - .eq(RoleAdministerMappingDO::getRoleId,1)); + .lambda() + .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 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() + //签到 + List signInRecordDOS = signInRecordMapper.selectList(new QueryWrapper() .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() + //签到 + List signInRecordDOS = signInRecordMapper.selectList(new QueryWrapper() .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= 60) { - exerciseTestVO.setResult("通过"); + exerciseTestVO.setResult("合格"); } else { - exerciseTestVO.setResult("未通过"); + exerciseTestVO.setResult("不合格"); } } else { exerciseTestVO.setScore(0); @@ -577,9 +601,9 @@ public class AdministerServiceImpl extends ServiceImpl= 60) { - exerciseTestVO.setResult("通过"); + exerciseTestVO.setResult("合格"); } else { - exerciseTestVO.setResult("未通过"); + exerciseTestVO.setResult("不合格"); } } else { exerciseTestVO.setScore(0); @@ -609,7 +633,7 @@ public class AdministerServiceImpl extends ServiceImpl importMember(Long companyId, MultipartFile multipartFile) { + + List memberDOS = new ArrayList<>(); + + ExcelUtil.readExcel(null, ImportMemberDTO.class, multipartFile).forEach(s -> { + + MemberDO memberDO = memberMapper.selectOne(new QueryWrapper() + .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 headList, List classDetailVOS, String datePattern, int colWidth, OutputStream out) { if (datePattern == null) { datePattern = "yyyy年MM月dd日"; diff --git a/src/main/java/com/subsidy/service/impl/CompanyDictServiceImpl.java b/src/main/java/com/subsidy/service/impl/CompanyDictServiceImpl.java index 7763ab6..b0980ce 100644 --- a/src/main/java/com/subsidy/service/impl/CompanyDictServiceImpl.java +++ b/src/main/java/com/subsidy/service/impl/CompanyDictServiceImpl.java @@ -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 operators(OperatorsDTO operatorsDTO) { Page pager = new Page(operatorsDTO.getPageNum(), operatorsDTO.getPageSize()); //判断该用户的角色 @@ -85,6 +90,13 @@ public class CompanyDictServiceImpl extends ServiceImpl implements DepartmentDictService { + @Autowired + private MemberDepartmentMappingMapper memberDepartmentMappingMapper; public List getDepartments(DepartmentDictDO departmentDictDO) { - return this.baseMapper.getDepartments(departmentDictDO); + + //返回结果 + List getDepartmentsVOS = new ArrayList<>(); + + List parentNodes = this.baseMapper.selectList(new QueryWrapper() + .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() + .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 getChildNodes(GetDepartmentsVO departmentDictDO) { + + List getDepartmentsVOS = new ArrayList<>(); + + List departmentDictDOS = this.baseMapper.selectList(new QueryWrapper() + .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() + .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 departmentDictDOS = this.baseMapper.selectList(new QueryWrapper() + .lambda() + .eq(DepartmentDictDO::getParentId, departmentDictDO.getId()) + ); + + for (DepartmentDictDO departmentDictDO1:departmentDictDOS){ + deleteChildNode(departmentDictDO1); + } + return ConstantUtils.DELETE_SUCCESS; } + void deleteChildNode(DepartmentDictDO departmentDictDO) { + + List departmentDictDOS = this.baseMapper.selectList(new QueryWrapper() + .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() diff --git a/src/main/java/com/subsidy/service/impl/MemberDepartmentMappingServiceImpl.java b/src/main/java/com/subsidy/service/impl/MemberDepartmentMappingServiceImpl.java new file mode 100644 index 0000000..6e191e5 --- /dev/null +++ b/src/main/java/com/subsidy/service/impl/MemberDepartmentMappingServiceImpl.java @@ -0,0 +1,20 @@ +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; + +/** + *

+ * 老师部门映射表 服务实现类 + *

+ * + * @author DengMin + * @since 2021-11-01 + */ +@Service +public class MemberDepartmentMappingServiceImpl extends ServiceImpl implements MemberDepartmentMappingService { + +} diff --git a/src/main/java/com/subsidy/service/impl/MemberServiceImpl.java b/src/main/java/com/subsidy/service/impl/MemberServiceImpl.java index 4b69b5b..45fc934 100644 --- a/src/main/java/com/subsidy/service/impl/MemberServiceImpl.java +++ b/src/main/java/com/subsidy/service/impl/MemberServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.subsidy.common.exception.HttpException; 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,6 +23,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.lang.reflect.Member; import java.time.Duration; import java.time.LocalDateTime; import java.util.ArrayList; @@ -66,9 +68,6 @@ public class MemberServiceImpl extends ServiceImpl imple private DepartmentDictMapper departmentDictMapper; @Autowired - private AdministerMapper administerMapper; - - @Autowired private ClassMemberMappingMapper classMemberMappingMapper; @Autowired @@ -77,13 +76,19 @@ public class MemberServiceImpl extends ServiceImpl imple @Autowired private CompanyDictMapper companyDictMapper; - public IPage getAll(GetAllDTO getAllDTO) { + @Autowired + private MemberDepartmentMappingMapper memberDepartmentMappingMapper; + + public IPage getAll(GetAllDTO getAllDTO) { Page pager = new Page(getAllDTO.getPageNum(), getAllDTO.getPageSize()); - return this.baseMapper.selectPage(pager, new QueryWrapper() - .lambda() - .eq(MemberDO::getDepartmentId,getAllDTO.getDepartmentId()) - .like(MemberDO::getUserName, getAllDTO.getUserName()) - .like(MemberDO::getStatus, getAllDTO.getStatus())); + IPage iPage = this.baseMapper.getMembers(pager, getAllDTO.getDepartmentId(), getAllDTO.getUserName(), getAllDTO.getStatus()); + + List getAllVOS = iPage.getRecords(); + for (GetAllVO getAllVO : getAllVOS) { + List departmentDictDOS = this.baseMapper.getDepartments(getAllVO.getId()); + getAllVO.setDepartmentDictDOS(departmentDictDOS); + } + return iPage; } public String deleteMember(MemberDO memberDO) { @@ -91,11 +96,11 @@ public class MemberServiceImpl extends ServiceImpl imple return ConstantUtils.DELETE_SUCCESS; } - public String addMember(MemberDO memberDO) { + public String addMember(AddMemberDTO addMemberDTO) { Integer count = this.baseMapper.selectCount(new QueryWrapper() .lambda() - .eq(MemberDO::getTelephone, memberDO.getTelephone())); + .eq(MemberDO::getTelephone, addMemberDTO.getTelephone())); if (count > 0) { throw new HttpException(20002); @@ -103,26 +108,38 @@ public class MemberServiceImpl extends ServiceImpl imple Integer count1 = this.baseMapper.selectCount(new QueryWrapper() .lambda() - .eq(MemberDO::getAccountName, memberDO.getAccountName()) - .eq(MemberDO::getDepartmentId, memberDO.getDepartmentId())); + .eq(MemberDO::getAccountName, addMemberDTO.getAccountName()) + .eq(MemberDO::getDepartmentId, addMemberDTO.getDepartmentId())); if (count1 > 0) { throw new HttpException(20002); } + MemberDO memberDO = new MemberDO(); + BeanUtils.copyProperties(addMemberDTO, memberDO); memberDO.setPassword("123456"); memberDO.setStatus("启用"); this.baseMapper.insert(memberDO); + + //部门 + List longs = addMemberDTO.getDepartmentIds(); + for (Long lg : longs) { + MemberDepartmentMappingDO memberDepartmentMappingDO = new MemberDepartmentMappingDO(); + memberDepartmentMappingDO.setMemberId(memberDO.getId()); + memberDepartmentMappingDO.setDepartmentId(lg); + memberDepartmentMappingMapper.insert(memberDepartmentMappingDO); + } + return ConstantUtils.ADD_SUCCESS; } - public String updateMember(MemberDO memberDO) { + public String updateMember(AddMemberDTO addMemberDTO) { Integer count = this.baseMapper.selectCount(new QueryWrapper() .lambda() - .eq(MemberDO::getTelephone, memberDO.getTelephone()) - .eq(MemberDO::getDepartmentId, memberDO.getDepartmentId()) - .ne(MemberDO::getId, memberDO.getId())); + .eq(MemberDO::getTelephone, addMemberDTO.getTelephone()) + .eq(MemberDO::getDepartmentId, addMemberDTO.getDepartmentId()) + .ne(MemberDO::getId, addMemberDTO.getId())); if (count > 0) { throw new HttpException(20002); @@ -130,14 +147,30 @@ public class MemberServiceImpl extends ServiceImpl imple Integer count1 = this.baseMapper.selectCount(new QueryWrapper() .lambda() - .eq(MemberDO::getAccountName, memberDO.getAccountName()) - .eq(MemberDO::getDepartmentId, memberDO.getDepartmentId()) - .ne(MemberDO::getId, memberDO.getId())); + .eq(MemberDO::getAccountName, addMemberDTO.getAccountName()) + .eq(MemberDO::getDepartmentId, addMemberDTO.getDepartmentId()) + .ne(MemberDO::getId, addMemberDTO.getId())); if (count1 > 0) { throw new HttpException(20002); } + MemberDO memberDO = new MemberDO(); + BeanUtils.copyProperties(addMemberDTO, memberDO); this.baseMapper.updateById(memberDO); + + memberDepartmentMappingMapper.delete(new QueryWrapper() + .lambda() + .eq(MemberDepartmentMappingDO::getMemberId, addMemberDTO.getId())); + + //部门 + List longs = addMemberDTO.getDepartmentIds(); + for (Long lg : longs) { + MemberDepartmentMappingDO memberDepartmentMappingDO = new MemberDepartmentMappingDO(); + memberDepartmentMappingDO.setMemberId(memberDO.getId()); + memberDepartmentMappingDO.setDepartmentId(lg); + memberDepartmentMappingMapper.insert(memberDepartmentMappingDO); + } + return ConstantUtils.SET_SUCCESS; } @@ -176,7 +209,7 @@ public class MemberServiceImpl extends ServiceImpl imple return userRoleVO; } - public String updatePassword(MemberDO memberDO){ + public String updatePassword(MemberDO memberDO) { this.baseMapper.updateById(memberDO); return ConstantUtils.SET_SUCCESS; } @@ -213,8 +246,8 @@ public class MemberServiceImpl extends ServiceImpl imple //该班级课程下有多少人 List classMemberMappingDOS = classMemberMappingMapper.selectList(new QueryWrapper() - .lambda() - .eq(ClassMemberMappingDO::getClassId,studyPageVO.getClassId())); + .lambda() + .eq(ClassMemberMappingDO::getClassId, studyPageVO.getClassId())); studyPageVO.setTotalMember(classMemberMappingDOS.size()); //多少人完成 @@ -232,8 +265,10 @@ public class MemberServiceImpl extends ServiceImpl imple if (vodPlayHistoryDOS.size() > 0) { if (vodPlayHistoryDOS.get(0).getPlayRecord() < vodDictDO.getVodLength()) { flag = false; - break; + //break; } + } else { + flag = false; } } if (flag) { @@ -245,13 +280,14 @@ public class MemberServiceImpl extends ServiceImpl imple memberStudyPageVO.setStudyPageVOS(studyPageVOS); - MemberDO memberDO1 = this.baseMapper.selectById(memberDO.getId()); - DepartmentDictDO departmentDictDO = departmentDictMapper.selectById(memberDO1.getDepartmentId()); - CompanyDictDO companyDictDO = companyDictMapper.selectById(departmentDictDO.getCompanyId()); - if (null!=companyDictDO){ - BeanUtils.copyProperties(companyDictDO,memberStudyPageVO); - } + List departmentDictDOS = this.baseMapper.getDepartments(memberDO.getId()); + if (departmentDictDOS.size() > 0) { + CompanyDictDO companyDictDO = companyDictMapper.selectById(departmentDictDOS.get(0).getId()); + if (null != companyDictDO) { + BeanUtils.copyProperties(companyDictDO, memberStudyPageVO); + } + } return memberStudyPageVO; } @@ -271,31 +307,31 @@ public class MemberServiceImpl extends ServiceImpl imple //目录下的视频 List vodDictDOS = vodDictMapper.selectList(new QueryWrapper() - .lambda() - .eq(VodDictDO::getContentId,courseContentDO.getId())); - for (VodDictDO vodDictDO : vodDictDOS){ + .lambda() + .eq(VodDictDO::getContentId, courseContentDO.getId())); + for (VodDictDO vodDictDO : vodDictDOS) { MemberVodVO memberVodVO = new MemberVodVO(); List vodPlayHistoryDOS = vodPlayHistoryMapper.selectList(new QueryWrapper() - .lambda() - .eq(VodPlayHistoryDO::getMemberId,contentVodDTO.getMemberId()) - .eq(VodPlayHistoryDO::getVodId,vodDictDO.getId()) - .orderByDesc(VodPlayHistoryDO::getPlayRecord)); + .lambda() + .eq(VodPlayHistoryDO::getMemberId, contentVodDTO.getMemberId()) + .eq(VodPlayHistoryDO::getVodId, vodDictDO.getId()) + .orderByDesc(VodPlayHistoryDO::getPlayRecord)); memberVodVO.setStatus(false); - if (vodPlayHistoryDOS.size()>0){ - memberVodVO.setPercent(MathUtil.intDivCeil(100*vodPlayHistoryDOS.get(0).getPlayRecord(),vodDictDO.getVodLength())); - if (memberVodVO.getPercent()>=80){ + if (vodPlayHistoryDOS.size() > 0) { + memberVodVO.setPercent(MathUtil.intDivCeil(100 * vodPlayHistoryDOS.get(0).getPlayRecord(), vodDictDO.getVodLength())); + if (memberVodVO.getPercent() >= 80) { memberVodVO.setStatus(true); } - }else { + } else { memberVodVO.setPercent(0); } List vodPlayHistoryDOS1 = vodPlayHistoryMapper.selectList(new QueryWrapper() .lambda() - .eq(VodPlayHistoryDO::getMemberId,contentVodDTO.getMemberId()) - .eq(VodPlayHistoryDO::getVodId,vodDictDO.getId()) + .eq(VodPlayHistoryDO::getMemberId, contentVodDTO.getMemberId()) + .eq(VodPlayHistoryDO::getVodId, vodDictDO.getId()) .orderByDesc(VodPlayHistoryDO::getCreateDate)); - if (vodPlayHistoryDOS1.size()>0){ + if (vodPlayHistoryDOS1.size() > 0) { memberVodVO.setPlayRecord(vodPlayHistoryDOS1.get(0).getPlayRecord()); } memberVodVO.setId(vodDictDO.getId()); @@ -312,7 +348,7 @@ public class MemberServiceImpl extends ServiceImpl imple return contentVodVOS; } - public List contentFiles(ContentMemberDTO contentMemberDTO){ + public List contentFiles(ContentMemberDTO contentMemberDTO) { List contentFilesVOS = new ArrayList<>(); @@ -323,12 +359,12 @@ public class MemberServiceImpl extends ServiceImpl imple for (CourseContentDO courseContentDO : courseContentDOS) { - ContentFilesVO contentFilesVO = new ContentFilesVO(); + ContentFilesVO contentFilesVO = new ContentFilesVO(); contentFilesVO.setContent(courseContentDO.getContent()); List fileDictDOS = fileDictMapper.selectList(new QueryWrapper() - .lambda() - .eq(FileDictDO::getContentId,courseContentDO.getId())); + .lambda() + .eq(FileDictDO::getContentId, courseContentDO.getId())); contentFilesVO.setFileDictDOS(fileDictDOS); contentFilesVOS.add(contentFilesVO); @@ -337,17 +373,17 @@ public class MemberServiceImpl extends ServiceImpl imple return contentFilesVOS; } - public IPage studyHistory(StudyHistoryDTO studyHistoryDTO){ + public IPage studyHistory(StudyHistoryDTO studyHistoryDTO) { Page pager = new Page(studyHistoryDTO.getPageNum(), studyHistoryDTO.getPageSize()); - IPage iPage = vodPlayHistoryMapper.studyHistory(pager,studyHistoryDTO.getMemberId()); + IPage iPage = vodPlayHistoryMapper.studyHistory(pager, studyHistoryDTO.getMemberId()); List studyHistoryVOS = iPage.getRecords(); - for (StudyHistoryVO studyHistoryVO : studyHistoryVOS){ - if (studyHistoryVO.getPercent()>=80){ + for (StudyHistoryVO studyHistoryVO : studyHistoryVOS) { + if (studyHistoryVO.getPercent() >= 80) { studyHistoryVO.setStatus(true); - }else { + } else { studyHistoryVO.setStatus(false); } } @@ -356,7 +392,7 @@ public class MemberServiceImpl extends ServiceImpl imple return iPage; } - public GetCourseTestVO getCourseTest(ContentMemberDTO contentMemberDTO){ + public GetCourseTestVO getCourseTest(ContentMemberDTO contentMemberDTO) { GetCourseTestVO getCourseTestVO = new GetCourseTestVO(); @@ -368,52 +404,52 @@ public class MemberServiceImpl extends ServiceImpl imple getCourseTestVO.setDeadline(classDictDO.getEndDate()); ExerciseDoneResultDO exerciseDoneResultDO = exerciseDoneResultMapper.selectOne(new QueryWrapper() - .lambda() - .eq(ExerciseDoneResultDO::getCourseId,courseDictDO.getId()) - .eq(ExerciseDoneResultDO::getMemberId,contentMemberDTO.getMemberId())); + .lambda() + .eq(ExerciseDoneResultDO::getCourseId, courseDictDO.getId()) + .eq(ExerciseDoneResultDO::getMemberId, contentMemberDTO.getMemberId())); - if (null != exerciseDoneResultDO){ + if (null != exerciseDoneResultDO) { getCourseTestVO.setRightCount(String.valueOf(exerciseDoneResultDO.getRightCounts())); getCourseTestVO.setTotalCount(String.valueOf(exerciseDoneResultDO.getTotalCounts())); - }else { + } else { getCourseTestVO.setRightCount("-"); //该课程下有多少习题 Integer count = exerciseDictMapper.selectCount(new QueryWrapper() - .lambda() - .eq(ExerciseDictDO::getCourseId,courseDictDO.getId())); + .lambda() + .eq(ExerciseDictDO::getCourseId, courseDictDO.getId())); getCourseTestVO.setTotalCount(String.valueOf(count)); } return getCourseTestVO; } - public GetStudyInfoVO getStudyInfo(MemberDO memberDO){ + public GetStudyInfoVO getStudyInfo(MemberDO memberDO) { GetStudyInfoVO getStudyInfoVO = new GetStudyInfoVO(); MemberDO memberDO1 = this.baseMapper.selectById(memberDO.getId()); //第几天 - long diff = Duration.between(LocalDateTime.now(),memberDO1.getCreateDate()).toDays(); + long diff = Duration.between(LocalDateTime.now(), memberDO1.getCreateDate()).toDays(); getStudyInfoVO.setDiff(diff); //已学课程 List classMemberMappingDOS = classMemberMappingMapper.selectList(new QueryWrapper() - .lambda() - .eq(ClassMemberMappingDO::getMemberId,memberDO.getId())); + .lambda() + .eq(ClassMemberMappingDO::getMemberId, memberDO.getId())); /** * 遍历课程,里面的视频都看过80% 则表示已学完 */ - int i = 0 ; //已学课程 - for (ClassMemberMappingDO classMemberMappingDO : classMemberMappingDOS){ + int i = 0; //已学课程 + for (ClassMemberMappingDO classMemberMappingDO : classMemberMappingDOS) { List vodDictDOS = classDictMapper.getClassVods(classMemberMappingDO.getClassId()); - for (VodDictDO vodDictDO : vodDictDOS){ + for (VodDictDO vodDictDO : vodDictDOS) { List vodPlayHistoryDOS = vodPlayHistoryMapper.selectList(new QueryWrapper() - .lambda() - .eq(VodPlayHistoryDO::getMemberId,memberDO.getId()) - .eq(VodPlayHistoryDO::getVodId,vodDictDO.getId()) - .orderByDesc(VodPlayHistoryDO::getPlayRecord)); - if (vodPlayHistoryDOS.size()>0){ - if (vodPlayHistoryDOS.get(0).getPlayRecord() 0) { + if (vodPlayHistoryDOS.get(0).getPlayRecord() < vodDictDO.getVodLength() * 0.8) { break; } } @@ -423,13 +459,13 @@ public class MemberServiceImpl extends ServiceImpl imple getStudyInfoVO.setStudyCourse(i); //累计学习时长 - int studyLength = 0 ; + int studyLength = 0; List vodPlayHistoryDOS = vodPlayHistoryMapper.selectList(new QueryWrapper() - .lambda() - .eq(VodPlayHistoryDO::getMemberId,memberDO.getId())); + .lambda() + .eq(VodPlayHistoryDO::getMemberId, memberDO.getId())); - for (VodPlayHistoryDO vodPlayHistoryDO : vodPlayHistoryDOS){ - studyLength+=vodPlayHistoryDO.getPlayLength(); + for (VodPlayHistoryDO vodPlayHistoryDO : vodPlayHistoryDOS) { + studyLength += vodPlayHistoryDO.getPlayLength(); } getStudyInfoVO.setStudyLength(studyLength); diff --git a/src/main/java/com/subsidy/service/impl/SignInRecordServiceImpl.java b/src/main/java/com/subsidy/service/impl/SignInRecordServiceImpl.java index fe8d63e..878420c 100644 --- a/src/main/java/com/subsidy/service/impl/SignInRecordServiceImpl.java +++ b/src/main/java/com/subsidy/service/impl/SignInRecordServiceImpl.java @@ -171,6 +171,8 @@ public class SignInRecordServiceImpl extends ServiceImpl classDictDOS = classMemberMappingMapper.getMemberClass(signInRecordDO.getMemberId()); + + for (ClassDictDO classDictDO : classDictDOS){ Integer count = this.baseMapper.selectCount(new QueryWrapper() .lambda() diff --git a/src/main/java/com/subsidy/vo/classdict/ClassDetailVO.java b/src/main/java/com/subsidy/vo/classdict/ClassDetailVO.java index 4d001ae..2c90300 100644 --- a/src/main/java/com/subsidy/vo/classdict/ClassDetailVO.java +++ b/src/main/java/com/subsidy/vo/classdict/ClassDetailVO.java @@ -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; diff --git a/src/main/java/com/subsidy/vo/member/ClassSignVO.java b/src/main/java/com/subsidy/vo/member/ClassSignVO.java index b42a13c..879764e 100644 --- a/src/main/java/com/subsidy/vo/member/ClassSignVO.java +++ b/src/main/java/com/subsidy/vo/member/ClassSignVO.java @@ -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; diff --git a/src/main/java/com/subsidy/vo/member/GetAllVO.java b/src/main/java/com/subsidy/vo/member/GetAllVO.java new file mode 100644 index 0000000..18a4e21 --- /dev/null +++ b/src/main/java/com/subsidy/vo/member/GetAllVO.java @@ -0,0 +1,14 @@ +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 departmentDictDOS; + +} diff --git a/src/main/resources/application-prod.properties b/src/main/resources/application-prod.properties index 8058924..b4a20a5 100644 --- a/src/main/resources/application-prod.properties +++ b/src/main/resources/application-prod.properties @@ -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 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index cd7ba36..81ef4bb 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,5 +1,5 @@ # 环境配置 -spring.profiles.active=dev +spring.profiles.active=prod # 文件编码 UTF8 spring.mandatory-file-encoding=UTF-8 diff --git a/src/main/resources/mapper/AdministerMapper.xml b/src/main/resources/mapper/AdministerMapper.xml index cc47025..b155fbd 100644 --- a/src/main/resources/mapper/AdministerMapper.xml +++ b/src/main/resources/mapper/AdministerMapper.xml @@ -47,6 +47,7 @@ SELECT t2.id, t2.user_name, + t2.id_card, t2.account_name, t2.telephone FROM @@ -58,6 +59,7 @@ and t2.user_name like concat('%',#{userName} ,'%') + order by t2.id 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 diff --git a/src/main/resources/mapper/ClassMemberMappingMapper.xml b/src/main/resources/mapper/ClassMemberMappingMapper.xml index 1d5291b..712a3c4 100644 --- a/src/main/resources/mapper/ClassMemberMappingMapper.xml +++ b/src/main/resources/mapper/ClassMemberMappingMapper.xml @@ -22,7 +22,7 @@ - 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} - + + + + + + + + + + + diff --git a/src/main/resources/mapper/MemberDepartmentMappingMapper.xml b/src/main/resources/mapper/MemberDepartmentMappingMapper.xml new file mode 100644 index 0000000..48fd063 --- /dev/null +++ b/src/main/resources/mapper/MemberDepartmentMappingMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, administer_id, department_id, create_time, update_time, delete_time + + + diff --git a/src/main/resources/mapper/MemberMapper.xml b/src/main/resources/mapper/MemberMapper.xml index d70f719..7a9f5bc 100644 --- a/src/main/resources/mapper/MemberMapper.xml +++ b/src/main/resources/mapper/MemberMapper.xml @@ -4,16 +4,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -40,4 +40,37 @@ AND t.member_id = #{id} + + + + + diff --git a/src/main/resources/mapper/SignInRecordMapper.xml b/src/main/resources/mapper/SignInRecordMapper.xml index 4110a24..44d82ef 100644 --- a/src/main/resources/mapper/SignInRecordMapper.xml +++ b/src/main/resources/mapper/SignInRecordMapper.xml @@ -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} AND t.course_name like concat('%',#{courseName} ,'%') -- libgit2 0.25.0