瀏覽代碼

管乐迷需求迭代

zouxuan 2 年之前
父節點
當前提交
056a7cd8ca

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysEmployeePositionDao.java

@@ -48,4 +48,8 @@ public interface SysEmployeePositionDao extends BaseDAO<Integer, SysEmployeePosi
     Set<Integer> queryUserIdByRoleId(@Param("roleArr") SysUserRoleEnum[] roleArr, @Param("organId") Integer organId, @Param("tenantId") Integer tenantId);
     
     List<SysEmployeePositionDto> queryByUserId(Integer userId);
+
+    Boolean hasRole(@Param("roleName") String roleName,
+                    @Param("operatorId") Integer operatorId,
+                    @Param("tenantId") Integer tenantId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupQuit.java

@@ -54,6 +54,8 @@ public class MusicGroupQuit extends BaseEntity {
 	private BigDecimal returnTotalFee;
 	
 	private String currentApproveRole;
+
+	private Integer operatorId;
 	
 	private SysUser user = new SysUser();
 	
@@ -94,6 +96,14 @@ public class MusicGroupQuit extends BaseEntity {
 		}
 	}
 
+	public Integer getOperatorId() {
+		return operatorId;
+	}
+
+	public void setOperatorId(Integer operatorId) {
+		this.operatorId = operatorId;
+	}
+
 	public ReasonEnum getReasonEnum() {
 		return reasonEnum;
 	}

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVisit.java

@@ -75,7 +75,12 @@ public class StudentVisit extends BaseEntity {
     }
     public enum FeedbackTypeDescEnum implements BaseEnum<String,FeedbackTypeDescEnum> {
         PRICE("PRICE","价格原因"), TIME("TIME","时间原因"),
-        TEACHING("TEACHING","教学不满意"), OTHER("OTHER","其他");
+        TEACHING("TEACHING","教学不满意"),
+        SICK("SICK","生病"),
+        SOMETHING("SOMETHING","有事"),
+        NO_PARTICIPATE("NO_PARTICIPATE","不想参加"),
+        OTHER("OTHER","其他")
+        ;
 
         private String code;
 

+ 1 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -163,10 +163,9 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
      * 申请退团
      *
      * @param reqMusicGroupQuit
-     * @param operatorId
      * @return
      */
-    boolean applyQuitMusicGroup(List<SysUserRoleEnum> currentOperatorRoleIds, MusicGroupQuit reqMusicGroupQuit, Integer operatorId);
+    boolean applyQuitMusicGroup(List<SysUserRoleEnum> currentOperatorRoleIds, MusicGroupQuit reqMusicGroupQuit);
 
 
     /**

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
 import com.ym.mec.biz.dal.dto.CourseScheduleResponse;
 import com.ym.mec.biz.dal.dto.ExportStudentAttendanceDto;
 import com.ym.mec.biz.dal.dto.StudentAttendanceDto;
@@ -17,6 +18,8 @@ import java.util.Map;
 
 public interface StudentAttendanceService extends BaseService<Long, StudentAttendance> {
 
+	StudentAttendanceDao getDao();
+
 	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/9/11

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysEmployeePositionService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dao.SysEmployeePositionDao;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
 import com.ym.mec.biz.dal.dto.SysEmployeePositionDto;
 import com.ym.mec.biz.dal.entity.SysEmployeePosition;
@@ -12,6 +13,8 @@ import java.util.Set;
 
 public interface SysEmployeePositionService extends BaseService<Integer, SysEmployeePosition> {
 
+    SysEmployeePositionDao getDao();
+
     void batchAddPosition(Integer userId, List<Integer> positionIds, Integer tenantId);
 
     void delPosition(Integer userId, Integer tenantId);

+ 17 - 21
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -33,7 +33,6 @@ import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import com.ym.mec.util.json.JsonUtil;
 import com.ym.mec.util.validator.CommonValidator;
-
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -53,6 +52,7 @@ import java.util.*;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.entity.ApprovalStatus.APPROVED;
 import static com.ym.mec.biz.dal.entity.ApprovalStatus.PROCESSING;
 import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
@@ -204,7 +204,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private SysUserCashAccountDao sysUserCashAccountDao;
     @Autowired
     private StudentDao studentDao;
-    
     @Autowired
     private MusicGroupPaymentCalenderRepairDao musicGroupPaymentCalenderRepairDao;
 
@@ -2029,11 +2028,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean applyQuitMusicGroup(List<SysUserRoleEnum> currentOperatorRoleIds, MusicGroupQuit reqMusicGroupQuit, Integer operatorId) {
-
+    public boolean applyQuitMusicGroup(List<SysUserRoleEnum> currentOperatorRoleIds, MusicGroupQuit reqMusicGroupQuit) {
         Integer userId = reqMusicGroupQuit.getUserId();
         String musicGroupId = reqMusicGroupQuit.getMusicGroupId();
         String reason = reqMusicGroupQuit.getReason();
+        Integer operatorId = reqMusicGroupQuit.getOperatorId();
 
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         if (musicGroup == null) {
@@ -2055,6 +2054,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 throw new BizException("申请失败,存在[申请中]的记录");
             }
         }
+        if(reqMusicGroupQuit.getStatus() != APPROVED){
+            //是否是特定的可以一键退团的乐团主管
+            Boolean hasRole = employeePositionService.getDao().hasRole("一键退团",operatorId,reqMusicGroupQuit.getTenantId());
+            if(hasRole){
+                reqMusicGroupQuit.setStatus(APPROVED);
+            }
+        }
 
         musicGroupQuit = new MusicGroupQuit();
         musicGroupQuit.setCreateTime(new Date());
@@ -2231,6 +2237,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (courseScheduleList != null && courseScheduleList.size() > 0) {
             throw new BizException("退团失败,存在[进行中]的课程");
         }
+        if(reqMusicGroupQuit.getStatus() != APPROVED){
+            //是否是特定的可以一键退团的乐团主管
+            Boolean hasRole = employeePositionService.getDao().hasRole("一键退团",reqMusicGroupQuit.getOperatorId(),reqMusicGroupQuit.getTenantId());
+            if(hasRole){
+                status = APPROVED;
+            }
+        }
 
         boolean hasPaid = studentRegistration.getMusicGroupStatus().equals(StudentMusicGroupStatusEnum.NORMAL);
 
@@ -2702,23 +2715,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentInstrumentDao.update(studentMaintenance);
             }
         }
-
-        if (amount.doubleValue() > 0) {
-            //这个接口没有退费的操作了
-//            SysUserCashAccountLog sysUserCashAccountLog = new SysUserCashAccountLog();
-//            sysUserCashAccountLog.setGroupType(GroupType.MUSIC);
-//            sysUserCashAccountLog.setUserId(userId);
-//            sysUserCashAccountLog.setOrganId(musicGroup.getOrganId());
-//            sysUserCashAccountLog.setGroupId(musicGroupId);
-//            sysUserCashAccountLog.setAmount(amount);
-//            sysUserCashAccountLog.setReturnFeeType(ReturnFeeEnum.MUSIC);
-//            sysUserCashAccountLog.setComment("退出乐团");
-//            sysUserCashAccountLogDao.insert(sysUserCashAccountLog);
-            // 增加交易流水
-//            sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
-//                    PlatformCashAccountDetailTypeEnum.REFUNDS, null, SUCCESS, "退出乐团", null);
-        }
-
         return true;
     }
 

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -82,6 +82,11 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
     private static final Logger log = LoggerFactory.getLogger(StudentAttendanceServiceImpl.class);
 
     @Override
+    public StudentAttendanceDao getDao() {
+        return studentAttendanceDao;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public Map<String, Object> addStudentAttendances(StudentAttendanceDto studentAttendanceInfos) {
         LOGGER.info(JSON.toJSONString(studentAttendanceInfos));

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysEmployeePositionServiceImpl.java

@@ -37,6 +37,11 @@ public class SysEmployeePositionServiceImpl extends BaseServiceImpl<Integer, Sys
 	}
 
     @Override
+    public SysEmployeePositionDao getDao() {
+        return sysEmployeePositionDao;
+    }
+
+    @Override
 	@Transactional(rollbackFor = Exception.class)
     public void batchAddPosition(Integer userId, List<Integer> positionIds, Integer tenantId) {
 		if(positionIds != null && positionIds.size() > 0){

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/SysEmployeePositionMapper.xml

@@ -120,4 +120,9 @@
 		LEFT JOIN sys_position sp ON sp.id_ = sep.role_id_
 		WHERE sep.user_id_ = #{userId}
 	</select>
+	<select id="hasRole" resultType="java.lang.Boolean">
+		SELECT COUNT(0) FROM sys_user_role sur
+		LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
+		WHERE sr.role_name_ = #{roleName} AND sur.user_id_ = #{operatorId} AND sur.tenant_id_ = #{tenantId}
+	</select>
 </mapper>

+ 2 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -211,7 +211,8 @@ public class MusicGroupController extends BaseController {
 		musicGroupQuit.setUserComment(reason);
         musicGroupQuit.setReasonEnum(reasonEnum);
 		musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
-        return succeed(musicGroupService.applyQuitMusicGroup(null, musicGroupQuit, userId));
+        musicGroupQuit.setOperatorId(userId);
+        return succeed(musicGroupService.applyQuitMusicGroup(null, musicGroupQuit));
     }
 
     @ApiOperation(value = "取消退团申请")

+ 10 - 11
mec-teacher/src/main/java/com/ym/mec/teacher/controller/MusicGroupController.java

@@ -1,25 +1,23 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
-import javax.annotation.Resource;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.entity.ApprovalStatus;
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
+import javax.annotation.Resource;
 
 @RequestMapping("musicGroup")
 @Api(tags = "乐团服务")
@@ -45,6 +43,7 @@ public class MusicGroupController extends BaseController {
 		musicGroupQuit.setMusicGroupId(musicGroupId);
         musicGroupQuit.setApplyUserId(sysUser.getId());
 		musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
-        return succeed(musicGroupService.applyQuitMusicGroup(null, musicGroupQuit, sysUser.getId()));
+        musicGroupQuit.setOperatorId(sysUser.getId());
+        return succeed(musicGroupService.applyQuitMusicGroup(null, musicGroupQuit));
     }
 }

+ 27 - 7
mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudentController.java

@@ -1,26 +1,30 @@
 package com.ym.mec.teacher.controller;
 
 import com.ym.mec.biz.dal.dto.BaseMapDto;
+import com.ym.mec.biz.dal.entity.StudentAttendance;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.StudentManageService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
-import com.ym.mec.biz.service.SysUserService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.Date;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Api(tags = "学生管理")
 @RequestMapping("/student")
@@ -35,6 +39,8 @@ public class StudentController extends BaseController {
     private StudentManageService studentManageService;
     @Autowired
     private CourseScheduleService courseScheduleService;
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
 
     @ApiOperation(value = "获取学员异常考勤列表")
     @PostMapping("/studentAttendanceError")
@@ -45,6 +51,20 @@ public class StudentController extends BaseController {
         return succeed(courseScheduleService.endFindCourseSchedules(queryInfo));
     }
 
+    @ApiOperation(value = "获取某节课学生签到列表")
+    @RequestMapping("/findStudentAttendance")
+    public HttpResponseResult<List<StudentAttendance>> findStudentAttendance(StudentAttendanceQueryInfo queryInfo){
+        //按考勤状态和回访状态排序
+        queryInfo.setOrderFlag(true);
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        List<StudentAttendance> rows = studentAttendanceService.getDao().findStudentAttendance(params);
+        if(CollectionUtils.isNotEmpty(rows)){
+            rows = rows.stream().filter(e->e.getStatus() != StudentAttendanceStatusEnum.NORMAL && e.getVisitFlag() == YesOrNoEnum.NO).collect(Collectors.toList());
+        }
+        return succeed(rows);
+    }
+
     @ApiOperation(value = "获取学员账户信息")
     @GetMapping("/userCashAccount/get")
     public Object getStudentCashAccount(Integer id) {

+ 6 - 2
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupQuitController.java

@@ -152,7 +152,8 @@ public class MusicGroupQuitController extends BaseController {
     public HttpResponseResult applyQuitMusicGroup(@RequestBody MusicGroupQuit musicGroupQuit){
 		SysUser sysUser = sysUserService.getUser();
         List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(sysUser.getId(),sysUser.getIsSuperAdmin());
-        return succeed(musicGroupService.applyQuitMusicGroup(roleIds, musicGroupQuit, sysUser.getId()));
+        musicGroupQuit.setOperatorId(sysUser.getId());
+        return succeed(musicGroupService.applyQuitMusicGroup(roleIds, musicGroupQuit));
     }
 
     @ApiOperation(value = "退团")
@@ -164,6 +165,7 @@ public class MusicGroupQuitController extends BaseController {
 		if (!(roleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATION))) {
 			return failed("未经授权,不能操作");
 		}
+        musicGroupQuit.setOperatorId(sysUser.getId());
         return succeed(musicGroupService.approveQuitMusicGroup(roleIds, musicGroupQuit));
     }
 
@@ -172,11 +174,13 @@ public class MusicGroupQuitController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('musicGroupQuit/batchQuitMusicGroup')")
     public HttpResponseResult batchQuitMusicGroup(@RequestBody List<MusicGroupQuit> musicGroupQuits) throws Exception {
 		SysUser sysUser = sysUserService.getUser();
-        List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(sysUser.getId(),sysUser.getIsSuperAdmin());
+        Integer operatorId = sysUser.getId();
+        List<SysUserRoleEnum> roleIds = employeePositionService.queryAllRole(operatorId,sysUser.getIsSuperAdmin());
 		if (!(roleIds.contains(SysUserRoleEnum.ORGAN_MANAGER) || roleIds.contains(SysUserRoleEnum.EDUCATION))) {
 			throw new BizException("未经授权,不能操作");
 		}
         for (MusicGroupQuit musicGroupQuit : musicGroupQuits) {
+            musicGroupQuit.setOperatorId(operatorId);
             musicGroupService.approveQuitMusicGroup(roleIds, musicGroupQuit);
         }
         return succeed();