删除岗位模块,角色目录改为管理员统一管理

master
15004070936 1 week ago
parent 13c4681610
commit 76259580cd

@ -5,13 +5,10 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.xluobo.core.page.RespPage; import cn.xluobo.core.page.RespPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.core.api.APIResponse; import com.ruoyi.core.api.APIResponse;
import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail; import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail;
import com.ruoyi.school.course.domain.resp.course.RespCourseTypeSelect; import com.ruoyi.school.course.domain.resp.course.RespCourseTypeSelect;
import com.ruoyi.school.course.domain.ScCourseType;
import com.ruoyi.school.course.service.IScCourseTypeService;
import com.ruoyi.school.member.domain.ScMemberCard; import com.ruoyi.school.member.domain.ScMemberCard;
import com.ruoyi.school.member.domain.ScMemberCardCharge; import com.ruoyi.school.member.domain.ScMemberCardCharge;
import com.ruoyi.school.member.domain.ScMemberCardCourses; import com.ruoyi.school.member.domain.ScMemberCardCourses;
@ -21,14 +18,12 @@ import com.ruoyi.school.member.service.IScMemberCardService;
import com.ruoyi.school.member.service.ScMemberCardChargeService; import com.ruoyi.school.member.service.ScMemberCardChargeService;
import com.ruoyi.school.member.service.ScMemberCardCourseService; import com.ruoyi.school.member.service.ScMemberCardCourseService;
import com.ruoyi.school.member.service.ScMemberCardTypesService; import com.ruoyi.school.member.service.ScMemberCardTypesService;
import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -45,17 +40,11 @@ public class ScMemberCardTypesController {
@Autowired @Autowired
private ScMemberCardTypesService typesService; private ScMemberCardTypesService typesService;
@Autowired
private IScCourseTypeService courseTypeService;
@Autowired @Autowired
private ScMemberCardChargeService cardChargeService; private ScMemberCardChargeService cardChargeService;
@Autowired @Autowired
private ScMemberCardCourseService cardCoursesService; private ScMemberCardCourseService cardCoursesService;
@Autowired
private ISysUserService userService;
@Autowired @Autowired
private IScMemberCardService memberCardService; private IScMemberCardService memberCardService;
@ -84,32 +73,10 @@ public class ScMemberCardTypesController {
qw.last(ObjectUtil.isNotEmpty(types.getCourseTypeId())," and JSON_CONTAINS(course_types, CAST("+types.getCourseTypeId()+" AS JSON)) "); qw.last(ObjectUtil.isNotEmpty(types.getCourseTypeId())," and JSON_CONTAINS(course_types, CAST("+types.getCourseTypeId()+" AS JSON)) ");
RespPage<ScMemberCardTypes> respPage = new RespPage<>(types.getPageNum(),types.getPageSize()); RespPage<ScMemberCardTypes> respPage = new RespPage<>(types.getPageNum(),types.getPageSize());
RespPage<ScMemberCardTypes> listPage =typesService.page(respPage, qw); RespPage<ScMemberCardTypes> listPage =typesService.page(respPage, qw);
listPage.getRows().forEach(l->{ listPage.getRows().forEach(l->{
//获取课程分类 名 //获取课程分类 名
if (ObjectUtil.isNotEmpty(l.getCourseTypes())||l.getCourseTypes().length>0){ typesService.memberTypeDetail(l);
List<Long> courseTypeIds = Arrays.asList(l.getCourseTypes());
List<ScCourseType> courseTypeList=courseTypeService.listByIds(courseTypeIds);
String typesName= courseTypeList.stream().map(ScCourseType::getCourseType)
.collect(Collectors.joining(","));
l.setCourseTypesName(typesName);
}
//付费模式 default customize自定义
if (l.getChargeType().equals("customize")){
List<ReqAddMemberChargeItem> list=cardChargeService.getByMemberId(l.getCardTypeId());
l.setFeeModeHourList(list);
}
//限制教师
if (l.getRestrictedTeacher().equals("2") ){
List<SysUser> users= userService.selectUserByIds(l.getTeacherList());
String userNames= users.stream().map(SysUser::getNickName).collect(Collectors.joining(","));
l.setTeachersName(userNames);
}
//限制课程
if (l.getRestrictedCourses().equals("2")){
//课程类别名称 课程名称
List<ScMemberCardCourses> cardCoursesList=cardCoursesService.getByCardId(l.getCardTypeId());
l.setCourses(cardCoursesList);
}
}); });
return APIResponse.toAPIResponse(listPage); return APIResponse.toAPIResponse(listPage);

@ -1,129 +0,0 @@
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.service.ISysPostService;
/**
*
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/post")
public class SysPostController extends BaseController
{
@Autowired
private ISysPostService postService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:post:list')")
@GetMapping("/list")
public TableDataInfo list(SysPost post)
{
startPage();
List<SysPost> list = postService.selectPostList(post);
return getDataTable(list);
}
@Log(title = "岗位管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:post:export')")
@GetMapping("/export")
public AjaxResult export(SysPost post)
{
List<SysPost> list = postService.selectPostList(post);
ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
return util.exportExcel(list, "岗位数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:post:query')")
@GetMapping(value = "/{postId}")
public AjaxResult getInfo(@PathVariable Long postId)
{
return AjaxResult.success(postService.selectPostById(postId));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:post:add')")
@Log(title = "岗位管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysPost post)
{
if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
{
return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
{
return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
}
post.setCreateBy(getUserId());
return toAjax(postService.insertPost(post));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:post:edit')")
@Log(title = "岗位管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysPost post)
{
if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
{
return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
{
return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
}
post.setUpdateBy(getUserId());
return toAjax(postService.updatePost(post));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('system:post:remove')")
@Log(title = "岗位管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{postIds}")
public AjaxResult remove(@PathVariable Long[] postIds)
{
return toAjax(postService.deletePostByIds(postIds));
}
/**
*
*/
@GetMapping("/optionselect")
public AjaxResult optionselect()
{
List<SysPost> posts = postService.selectPostAll();
return AjaxResult.success(posts);
}
}

@ -39,7 +39,6 @@ public class SysProfileController extends BaseController
SysUser user = loginUser.getUser(); SysUser user = loginUser.getUser();
AjaxResult ajax = AjaxResult.success(user); AjaxResult ajax = AjaxResult.success(user);
ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
return ajax; return ajax;
} }

@ -11,7 +11,6 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysPostService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
@ -40,8 +39,6 @@ public class SysUserController extends BaseController
@Autowired @Autowired
private ISysRoleService roleService; private ISysRoleService roleService;
@Autowired
private ISysPostService postService;
/** /**
* *
@ -107,7 +104,6 @@ public class SysUserController extends BaseController
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
List<SysRole> roles = roleService.selectRoleAll(); List<SysRole> roles = roleService.selectRoleAll();
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
ajax.put("posts", postService.selectPostAll());
if (StringUtils.isNotNull(userId)) if (StringUtils.isNotNull(userId))
{ {
List<Integer> roleIds=roleService.selectRoleListByUserId(userId) ; List<Integer> roleIds=roleService.selectRoleListByUserId(userId) ;
@ -116,7 +112,6 @@ public class SysUserController extends BaseController
roleIds1.add(l.toString()); roleIds1.add(l.toString());
}); });
ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId)); ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
ajax.put("postIds", postService.selectPostListByUserId(userId));
ajax.put("roleIds",roleIds1 ); ajax.put("roleIds",roleIds1 );
} }
return ajax; return ajax;

@ -63,6 +63,7 @@ public class SysDept extends BaseEntity
// //
private String tenantId; private String tenantId;
//1部门 2校区
private String deptType; private String deptType;
/** 子部门 */ /** 子部门 */

@ -13,6 +13,8 @@ public class ClaTimeCalendarItem {
private String courseTimeId; private String courseTimeId;
private String claId;
private String claName; private String claName;
private String courseName; private String courseName;
@ -44,6 +46,7 @@ public class ClaTimeCalendarItem {
this.claName = respClaTime.getClaName(); this.claName = respClaTime.getClaName();
this.courseName = respClaTime.getCourseName(); this.courseName = respClaTime.getCourseName();
this.claDate = respClaTime.getClaDate(); this.claDate = respClaTime.getClaDate();
this.claId = respClaTime.getClaId();
this.weekDay = SysConstant.WEEK_DAY_MAP.get(respClaTime.getWeekDay()); this.weekDay = SysConstant.WEEK_DAY_MAP.get(respClaTime.getWeekDay());
this.startTime = respClaTime.getStartTime().substring(0,5); this.startTime = respClaTime.getStartTime().substring(0,5);
this.endTime = respClaTime.getEndTime().substring(0,5); this.endTime = respClaTime.getEndTime().substring(0,5);

@ -50,9 +50,18 @@ public class RespClaTime {
// 实到 // 实到
private Integer realAttendCnt; private Integer realAttendCnt;
private Integer leaveCnt; /**
*
*/
private Integer atClassCnt;
/**
*
*/
private Integer lessCnt;
private Integer outCnt;
private BigDecimal payHour; private BigDecimal payHour;

@ -73,6 +73,7 @@ public interface ScClaTimeAttendMapper extends com.baomidou.mybatisplus.core.map
BigDecimal selectAttendCostHour(@Param("beginDate") String beginDate BigDecimal selectAttendCostHour(@Param("beginDate") String beginDate
, @Param("endDate") String endDate , @Param("endDate") String endDate
, @Param("tenantId") String tenantId); , @Param("tenantId") String tenantId);
BigDecimal selectMemberByDay( @Param("tenantId") String tenantId);
/** /**
* *

@ -10,6 +10,7 @@ import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List; import java.util.List;
/** /**
@ -43,7 +44,9 @@ public class ScClaTimeAttendServiceImpl extends ServiceImpl<ScClaTimeAttendMappe
if(needAttend) { if(needAttend) {
return baseMapper.selectNeedAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId()); return baseMapper.selectNeedAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId());
} else { } else {
return baseMapper.selectAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId()); BigDecimal a= baseMapper.selectAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId());
BigDecimal b=baseMapper.selectMemberByDay(SecurityUtils.getLoginUser().getNowTenantId());
return a.add(b).setScale(2, RoundingMode.HALF_UP);
} }
} }

@ -17,4 +17,6 @@ import org.springframework.stereotype.Service;
@Service @Service
public class ScCourseTypeServiceImpl extends ServiceImpl<ScCourseTypeMapper, ScCourseType> implements IScCourseTypeService { public class ScCourseTypeServiceImpl extends ServiceImpl<ScCourseTypeMapper, ScCourseType> implements IScCourseTypeService {
} }

@ -5,9 +5,16 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.school.course.domain.ScCourse; import com.ruoyi.school.course.domain.ScCourse;
import com.ruoyi.school.course.domain.ScCourseCla;
import com.ruoyi.school.course.domain.req.time.ReqClaTimeCount;
import com.ruoyi.school.course.enums.ClaTimeAttendStatusEnums;
import com.ruoyi.school.course.service.IScClaTimeAttendService;
import com.ruoyi.school.course.service.IScClaTimeService;
import com.ruoyi.school.course.service.IScCourseClaService;
import com.ruoyi.school.course.service.IScCourseService; import com.ruoyi.school.course.service.IScCourseService;
import com.ruoyi.school.dashboard.domain.resp.DashboardData; import com.ruoyi.school.dashboard.domain.resp.DashboardData;
import com.ruoyi.school.member.domain.ScStudent; import com.ruoyi.school.member.domain.ScStudent;
import com.ruoyi.school.member.mapper.ScMemberCardMapper;
import com.ruoyi.school.member.service.IScMemberCardService; import com.ruoyi.school.member.service.IScMemberCardService;
import com.ruoyi.school.order.enums.OrderTypeEnum; import com.ruoyi.school.order.enums.OrderTypeEnum;
import com.ruoyi.school.order.service.IScOrderService; import com.ruoyi.school.order.service.IScOrderService;
@ -16,6 +23,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
/** /**
* @author zhangbaoyu * @author zhangbaoyu
* @date Created in 2020/10/18 15:34 * @date Created in 2020/10/18 15:34
@ -32,6 +41,18 @@ public class DashboardService {
private IScStudentService studentService; private IScStudentService studentService;
@Autowired @Autowired
private IScOrderService orderService; private IScOrderService orderService;
@Autowired
private IScCourseClaService claService;
@Autowired
private IScClaTimeService claTimeService;
@Autowired
private IScClaTimeAttendService attendService;
@Autowired
private ScMemberCardMapper memberCardMapper;
// //
/** /**
@ -44,42 +65,42 @@ public class DashboardService {
String thisMonthBegin = DateUtil.beginOfMonth(DateTime.now()).toString("yyyy-MM-dd"); String thisMonthBegin = DateUtil.beginOfMonth(DateTime.now()).toString("yyyy-MM-dd");
String thisMonthEnd = DateUtil.endOfMonth(DateTime.now()).toString("yyyy-MM-dd"); String thisMonthEnd = DateUtil.endOfMonth(DateTime.now()).toString("yyyy-MM-dd");
String tenantId=SecurityUtils.getLoginUser().getNowTenantId(); String tenantId=SecurityUtils.getLoginUser().getNowTenantId();
// int claCnt = claService.count(new QueryWrapper<ScCourseCla>().eq("tenant_id",tenantId)); int claCnt = claService.count(new QueryWrapper<ScCourseCla>().eq("tenant_id",tenantId));
int courseCnt = courseService.count(new QueryWrapper<ScCourse>().eq("tenant_id",tenantId)); int courseCnt = courseService.count(new QueryWrapper<ScCourse>().eq("tenant_id",tenantId));
int studentCnt = studentService.count(new QueryWrapper<ScStudent>().eq("tenant_id",tenantId)); int studentCnt = studentService.count(new QueryWrapper<ScStudent>().eq("tenant_id",tenantId));
// ReqClaTimeCount reqClaTimeCount = ReqClaTimeCount.builder().beginDate(todayDate).endDate(todayDate).hadBegin(null).tenantId(tenantId).build(); ReqClaTimeCount reqClaTimeCount = ReqClaTimeCount.builder().beginDate(todayDate).endDate(todayDate).hadBegin(null).tenantId(tenantId).build();
// Integer todayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount); Integer todayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount);
// reqClaTimeCount.setHadBegin(true); reqClaTimeCount.setHadBegin(true);
// Integer completeTodayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount); Integer completeTodayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount);
Integer todayOrderCnt = orderService.orderCount(todayDate, todayDate, OrderTypeEnum.SIGN_UP.getOrderType()); Integer todayOrderCnt = orderService.orderCount(todayDate, todayDate, OrderTypeEnum.SIGN_UP.getOrderType());
Integer thisMonthOrderCnt = orderService.orderCount(thisMonthBegin, thisMonthEnd, OrderTypeEnum.SIGN_UP.getOrderType()); Integer thisMonthOrderCnt = orderService.orderCount(thisMonthBegin, thisMonthEnd, OrderTypeEnum.SIGN_UP.getOrderType());
// Integer todayNeedAttendCnt = attendService.getNeedAttendCount(todayDate, todayDate); Integer todayNeedAttendCnt = attendService.getNeedAttendCount(todayDate, todayDate);
// Integer todayRealAttendCnt = attendService.getAttendCount(todayDate, todayDate, Integer todayRealAttendCnt = attendService.getAttendCount(todayDate, todayDate,
// new String[]{ClaTimeAttendStatusEnums.AT_CLASS.getAttendStatus()}); new String[]{ClaTimeAttendStatusEnums.AT_CLASS.getAttendStatus()});
// BigDecimal todayNeedCostHour = attendService.getAttendCostHour(todayDate, todayDate, true); // BigDecimal todayNeedCostHour = attendService.getAttendCostHour(todayDate, todayDate, true);
// BigDecimal todayRealCostHour = attendService.getAttendCostHour(todayDate, todayDate, false); BigDecimal todayRealCostHour = attendService.getAttendCostHour(todayDate, todayDate, false);
// Integer feeWillExpireCnt = orderService.arrearsStudentCount(); Integer feeWillExpireCnt = memberCardMapper.selectFeeWillExpireCards(200);
// Integer dateWillExpireCnt = studentCourseService.getWillExpireDateCount(10); Integer dateWillExpireCnt = memberCardMapper.selectExpiringCards(5).size();
// Integer hourWillExpireCnt = studentCourseService.getWillExpireHourCount(5); Integer hourWillExpireCnt = memberCardMapper.selectHourWillExpireCards(10);
return DashboardData.builder() return DashboardData.builder()
// .todayClaTimeCnt(todayClaTimeCnt) .todayClaTimeCnt(todayClaTimeCnt)
// .completeTodayClaTimeCnt(completeTodayClaTimeCnt) .completeTodayClaTimeCnt(completeTodayClaTimeCnt)
.todayOrderCnt(todayOrderCnt) .todayOrderCnt(todayOrderCnt)
.thisMonthOrderCnt(thisMonthOrderCnt) .thisMonthOrderCnt(thisMonthOrderCnt)
// .todayRealAttendCnt(todayRealAttendCnt) .todayRealAttendCnt(todayRealAttendCnt)
// .todayNeedAttendCnt(todayNeedAttendCnt) .todayNeedAttendCnt(todayNeedAttendCnt)
// .todayNeedCostHour(todayNeedCostHour) // .todayNeedCostHour(todayNeedCostHour)
// .todayRealCostHour(todayRealCostHour) .todayRealCostHour(todayRealCostHour)
.studentCnt(studentCnt) .studentCnt(studentCnt)
// .claCnt(claCnt) .claCnt(claCnt)
.courseCnt(courseCnt) .courseCnt(courseCnt)
// .feeWillExpireCnt(arrearsStudentCnt) .feeWillExpireCnt(feeWillExpireCnt)
// .dateWillExpireCnt(dateWillExpireCnt) .dateWillExpireCnt(dateWillExpireCnt)
// .hourWillExpireCnt(hourWillExpireCnt) .hourWillExpireCnt(hourWillExpireCnt)
.build(); .build();
} }

@ -67,6 +67,10 @@ public class ScMemberCard implements Serializable {
*/ */
@TableField("remaining_count") @TableField("remaining_count")
private BigDecimal remainingCount; private BigDecimal remainingCount;
@TableField("count_fee")
private BigDecimal countFee;
@TableField("day_fee")
private BigDecimal dayFee;
/** /**
* *

@ -24,6 +24,7 @@ public class MemberCardDTO {
//"卡类型ID") //"卡类型ID")
private Long cardTypeId; private Long cardTypeId;
//"卡类型名称") //"卡类型名称")
private String cardTypeName; private String cardTypeName;

@ -1,5 +1,6 @@
package com.ruoyi.school.member.domain.resp; package com.ruoyi.school.member.domain.resp;
import com.ruoyi.school.member.domain.ScMemberCardTypes;
import lombok.Data; import lombok.Data;
import java.time.LocalDate; import java.time.LocalDate;
@ -29,7 +30,7 @@ public class MemberCardVO extends MemberCardDTO {
//"剩余有效期(天)") //"剩余有效期(天)")
private Long remainingValidDays; private Long remainingValidDays;
private ScMemberCardTypes cardTypes;//

@ -43,6 +43,11 @@ public interface ScMemberCardMapper extends BaseMapper<ScMemberCard> {
@Select("SELECT * FROM sc_member_cards WHERE expiry_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL #{days} DAY) AND status = 'ACTIVE' AND is_deleted = 0") @Select("SELECT * FROM sc_member_cards WHERE expiry_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL #{days} DAY) AND status = 'ACTIVE' AND is_deleted = 0")
List<ScMemberCard> selectExpiringCards(@Param("days") Integer days); List<ScMemberCard> selectExpiringCards(@Param("days") Integer days);
@Select("SELECT count(1) FROM sc_member_cards WHERE remaining_total_fee <= #{fee} AND status = 'ACTIVE' AND is_deleted = 0")
Integer selectFeeWillExpireCards(@Param("fee") Integer fee);
@Select("SELECT count(1) FROM sc_member_cards WHERE remaining_count <= #{hour} AND status = 'ACTIVE' AND is_deleted = 0")
Integer selectHourWillExpireCards(@Param("hour") Integer hour);
/** /**
* *
*/ */

@ -10,5 +10,5 @@ public interface ScMemberCardTypesService extends IService<ScMemberCardTypes> {
APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail); APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail);
void memberTypeDetail(ScMemberCardTypes l);
} }

@ -28,6 +28,8 @@ import com.ruoyi.school.member.mapper.ScMemberCardMapper;
import com.ruoyi.school.member.mapper.ScMemberCardTypesMapper; import com.ruoyi.school.member.mapper.ScMemberCardTypesMapper;
import com.ruoyi.school.member.mapper.ScStudentMapper; import com.ruoyi.school.member.mapper.ScStudentMapper;
import com.ruoyi.school.member.service.IScMemberCardService; import com.ruoyi.school.member.service.IScMemberCardService;
import com.ruoyi.school.member.service.ScMemberCardCourseService;
import com.ruoyi.school.member.service.ScMemberCardTypesService;
import com.ruoyi.school.order.domain.ScOrder; import com.ruoyi.school.order.domain.ScOrder;
import com.ruoyi.school.order.service.IScOrderService; import com.ruoyi.school.order.service.IScOrderService;
import com.ruoyi.school.salary.domain.ScCommissionPlans; import com.ruoyi.school.salary.domain.ScCommissionPlans;
@ -45,6 +47,7 @@ import org.springframework.util.StringUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@ -68,6 +71,8 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
@Resource @Resource
private ScMemberCardTypesMapper cardTypeMapper; private ScMemberCardTypesMapper cardTypeMapper;
@Resource
private ScMemberCardTypesService cardTypesService;
@Autowired @Autowired
private ISysDeptService deptService; private ISysDeptService deptService;
@ -80,6 +85,9 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
@Autowired @Autowired
private IScOrderService scOrderService; private IScOrderService scOrderService;
@Autowired
private ScMemberCardCourseService cardCoursesService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public MemberCardDTO createMemberCard(CreateMemberCardDTO dto) { public MemberCardDTO createMemberCard(CreateMemberCardDTO dto) {
@ -139,10 +147,12 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
if (dto.getChargeType().equals("count")){ if (dto.getChargeType().equals("count")){
card.setRemainingCount(card.getTotalCount()); card.setRemainingCount(card.getTotalCount());
card.setCountFee(card.getPrice().divide(card.getTotalCount()));
} }
if (dto.getChargeType().equals("total_fee")){ if (dto.getChargeType().equals("total_fee")){
card.setRemainingTotalFee(card.getTotalFee()); card.setRemainingTotalFee(card.getTotalFee());
card.setDayFee(card.getPrice().divide(new BigDecimal(card.getTotalDays())));
} }
// if (dto.getChargeType().equals("days")){ // if (dto.getChargeType().equals("days")){
@ -263,25 +273,25 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
ScMemberCard memberCard=memberCardService.getOne(new QueryWrapper<ScMemberCard>() ScMemberCard memberCard=memberCardService.getOne(new QueryWrapper<ScMemberCard>()
.eq("card_no",bookCourse.getCardNo()) .eq("card_no",bookCourse.getCardNo())
.eq("charge_type",bookCourse.getChargeType())
.eq("is_deleted",0) .eq("is_deleted",0)
.last(" and expiry_date > CURDATE() ") .last(" and expiry_date > CURDATE() ")
); );
if (ObjectUtil.isEmpty(memberCard)){ if (ObjectUtil.isEmpty(memberCard)){
return APIResponse.toExceptionResponse(bookCourse.getCardNo()+"会员卡状态异常,请与教练核实!"); return APIResponse.toExceptionResponse(bookCourse.getCardNo()+"会员卡状态异常,请与教练核实!");
} }
String chargeType=memberCard.getChargeType(); //预约时的扣费类型
String chargeType=bookCourse.getChargeType();
// 上课记出勤表 // 上课记出勤表
ScClaTimeAttend addClaTimeAttend = new ScClaTimeAttend(); ScClaTimeAttend addClaTimeAttend = new ScClaTimeAttend();
if (chargeType.equals("count")){ if (chargeType.equals("count")){
if (memberCard.getRemainingCount().compareTo(bookCourse.getDeductCnt())>-1){ if (memberCard.getRemainingCount().compareTo(bookCourse.getDeductCnt())>-1){
addClaTimeAttend.setPayHour(bookCourse.getDeductCnt()); addClaTimeAttend.setPayHour(bookCourse.getDeductCnt());
addClaTimeAttend.setCountBefore(memberCard.getRemainingCount()); addClaTimeAttend.setCountBefore(memberCard.getRemainingCount());
addClaTimeAttend.setPayFee(memberCard.getPrice().divide(memberCard.getTotalCount(),2, RoundingMode.HALF_UP));
BigDecimal countAfter= memberCard.getRemainingCount().subtract(bookCourse.getDeductCnt()); BigDecimal countAfter= memberCard.getRemainingCount().subtract(bookCourse.getDeductCnt());
addClaTimeAttend.setCountAfter(countAfter); addClaTimeAttend.setCountAfter(countAfter);
memberCard.setRemainingCount(countAfter); memberCard.setRemainingCount(countAfter);
@ -574,18 +584,6 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
if (queryDTO.getCardTypeId() != null) { if (queryDTO.getCardTypeId() != null) {
queryWrapper.eq(ScMemberCard::getCardTypeId, queryDTO.getCardTypeId()); queryWrapper.eq(ScMemberCard::getCardTypeId, queryDTO.getCardTypeId());
} }
// if (queryDTO.getMinPrice() != null) {
// queryWrapper.ge(ScMemberCard::getPrice, queryDTO.getMinPrice());
// }
// if (queryDTO.getMaxPrice() != null) {
// queryWrapper.le(ScMemberCard::getPrice, queryDTO.getMaxPrice());
// }
// if (queryDTO.getStartDate() != null) {
// queryWrapper.ge(ScMemberCard::getCreatedAt, queryDTO.getStartDate());
// }
// if (queryDTO.getEndDate() != null) {
// queryWrapper.le(ScMemberCard::getCreatedAt, queryDTO.getEndDate());
// }
// 排序 // 排序
queryWrapper.orderByDesc(ScMemberCard::getCreatedAt); queryWrapper.orderByDesc(ScMemberCard::getCreatedAt);
@ -598,6 +596,13 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
List<MemberCardVO> voList = listPage.getRows().stream() List<MemberCardVO> voList = listPage.getRows().stream()
.map(this::convertToVO) .map(this::convertToVO)
.collect(Collectors.toList()); .collect(Collectors.toList());
voList.forEach(l->{
//课程类别名称 课程名称
ScMemberCardTypes types=cardTypesService.getById(l.getCardTypeId());
cardTypesService.memberTypeDetail(types);
l.setCardTypes(types);
});
// 构建返回结果 // 构建返回结果
RespPage<MemberCardVO> result = new RespPage<>(queryDTO.getPageNum(), queryDTO.getPageSize()); RespPage<MemberCardVO> result = new RespPage<>(queryDTO.getPageNum(), queryDTO.getPageSize());
result.setRows(voList); result.setRows(voList);

@ -1,18 +1,29 @@
package com.ruoyi.school.member.service.impl; package com.ruoyi.school.member.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.core.api.APIResponse; import com.ruoyi.core.api.APIResponse;
import com.ruoyi.school.course.domain.ScCourseType;
import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail; import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail;
import com.ruoyi.school.course.domain.resp.course.RespBusinessChooseCourseInfo; import com.ruoyi.school.course.domain.resp.course.RespBusinessChooseCourseInfo;
import com.ruoyi.school.course.service.IScCourseTypeService;
import com.ruoyi.school.member.domain.ScMemberCardCourses;
import com.ruoyi.school.member.domain.ScMemberCardTypes; import com.ruoyi.school.member.domain.ScMemberCardTypes;
import com.ruoyi.school.member.domain.req.ReqAddMemberChargeItem;
import com.ruoyi.school.member.domain.resp.MemberCardVO; import com.ruoyi.school.member.domain.resp.MemberCardVO;
import com.ruoyi.school.member.mapper.ScMemberCardTypesMapper; import com.ruoyi.school.member.mapper.ScMemberCardTypesMapper;
import com.ruoyi.school.member.service.IScMemberCardService; import com.ruoyi.school.member.service.IScMemberCardService;
import com.ruoyi.school.member.service.ScMemberCardChargeService;
import com.ruoyi.school.member.service.ScMemberCardCourseService;
import com.ruoyi.school.member.service.ScMemberCardTypesService; import com.ruoyi.school.member.service.ScMemberCardTypesService;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* <p> * <p>
@ -25,8 +36,44 @@ public class ScMemberCardTypesServiceImpl extends ServiceImpl<ScMemberCardTypesM
@Autowired @Autowired
private IScMemberCardService memberCardService; private IScMemberCardService memberCardService;
@Autowired
private IScCourseTypeService courseTypeService;
@Autowired
private ScMemberCardChargeService cardChargeService;
@Autowired
private ScMemberCardCourseService cardCoursesService;
@Autowired
private ISysUserService userService;
@Override
public void memberTypeDetail(ScMemberCardTypes l){
if (ObjectUtil.isNotEmpty(l.getCourseTypes())||l.getCourseTypes().length>0){
List<Long> courseTypeIds = Arrays.asList(l.getCourseTypes());
List<ScCourseType> courseTypeList=courseTypeService.listByIds(courseTypeIds);
String typesName= courseTypeList.stream().map(ScCourseType::getCourseType)
.collect(Collectors.joining(","));
l.setCourseTypesName(typesName);
}
//付费模式 default customize自定义
if (l.getChargeType().equals("customize")){
List<ReqAddMemberChargeItem> list=cardChargeService.getByMemberId(l.getCardTypeId());
l.setFeeModeHourList(list);
}
//限制教师
if (l.getRestrictedTeacher().equals("2") ){
List<SysUser> users= userService.selectUserByIds(l.getTeacherList());
String userNames= users.stream().map(SysUser::getNickName).collect(Collectors.joining(","));
l.setTeachersName(userNames);
}
//限制课程
if (l.getRestrictedCourses().equals("2")){
//课程类别名称 课程名称
List<ScMemberCardCourses> cardCoursesList=cardCoursesService.getByCardId(l.getCardTypeId());
l.setCourses(cardCoursesList);
}
}
@Override @Override
public APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail){ public APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail){
Long cardTypeId = orderCourseDetail.getCardTypeId(); Long cardTypeId = orderCourseDetail.getCardTypeId();

@ -1,133 +0,0 @@
package com.ruoyi.system.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.annotation.Excel.ColumnType;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* sys_post
*
* @author ruoyi
*/
public class SysPost extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 岗位序号 */
@Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
private Long postId;
/** 岗位编码 */
@Excel(name = "岗位编码")
private String postCode;
/** 岗位名称 */
@Excel(name = "岗位名称")
private String postName;
/** 岗位排序 */
@Excel(name = "岗位排序")
private String postSort;
/** 状态0正常 1停用 */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
private String tenantId;
public String getTenantId() {
return tenantId;
}
public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}
/** 用户是否存在此岗位标识 默认不存在 */
private boolean flag = false;
public Long getPostId()
{
return postId;
}
public void setPostId(Long postId)
{
this.postId = postId;
}
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
public String getPostCode()
{
return postCode;
}
public void setPostCode(String postCode)
{
this.postCode = postCode;
}
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
public String getPostName()
{
return postName;
}
public void setPostName(String postName)
{
this.postName = postName;
}
@NotBlank(message = "显示顺序不能为空")
public String getPostSort()
{
return postSort;
}
public void setPostSort(String postSort)
{
this.postSort = postSort;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public boolean isFlag()
{
return flag;
}
public void setFlag(boolean flag)
{
this.flag = flag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("postId", getPostId())
.append("postCode", getPostCode())
.append("postName", getPostName())
.append("postSort", getPostSort())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
}

@ -1,101 +0,0 @@
package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.SysPost;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
* @author ruoyi
*/
public interface SysPostMapper
{
/**
*
*
* @param post
* @return
*/
public List<SysPost> selectPostList(SysPost post);
/**
*
*
* @return
*/
public List<SysPost> selectPostAll(String tenantId);
/**
* ID
*
* @param postId ID
* @return
*/
public SysPost selectPostById(Long postId);
/**
* ID
*
* @param userId ID
* @return ID
*/
public List<Integer> selectPostListByUserId(@Param("userId") Long userId,@Param("tenantId") String tenantId);
/**
*
*
* @param userName
* @return
*/
public List<SysPost> selectPostsByUserName(String userName);
/**
*
*
* @param postId ID
* @return
*/
public int deletePostById(Long postId);
/**
*
*
* @param postIds ID
* @return
*/
public int deletePostByIds(Long[] postIds);
/**
*
*
* @param post
* @return
*/
public int updatePost(SysPost post);
/**
*
*
* @param post
* @return
*/
public int insertPost(SysPost post);
/**
*
*
* @param postName
* @return
*/
public SysPost checkPostNameUnique(String postName);
/**
*
*
* @param postCode
* @return
*/
public SysPost checkPostCodeUnique(String postCode);
}

@ -1,100 +0,0 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.SysPost;
/**
*
*
* @author ruoyi
*/
public interface ISysPostService
{
/**
*
*
* @param post
* @return
*/
public List<SysPost> selectPostList(SysPost post);
/**
*
*
* @return
*/
public List<SysPost> selectPostAll();
/**
* ID
*
* @param postId ID
* @return
*/
public SysPost selectPostById(Long postId);
/**
* ID
*
* @param userId ID
* @return ID
*/
public List<Integer> selectPostListByUserId(Long userId);
/**
*
*
* @param post
* @return
*/
public String checkPostNameUnique(SysPost post);
/**
*
*
* @param post
* @return
*/
public String checkPostCodeUnique(SysPost post);
/**
* ID使
*
* @param postId ID
* @return
*/
public int countUserPostById(Long postId);
/**
*
*
* @param postId ID
* @return
*/
public int deletePostById(Long postId);
/**
*
*
* @param postIds ID
* @return
* @throws Exception
*/
public int deletePostByIds(Long[] postIds);
/**
*
*
* @param post
* @return
*/
public int insertPost(SysPost post);
/**
*
*
* @param post
* @return
*/
public int updatePost(SysPost post);
}

@ -45,13 +45,6 @@ public interface ISysUserService
*/ */
public String selectUserRoleGroup(String userName); public String selectUserRoleGroup(String userName);
/**
* ID
*
* @param userName
* @return
*/
public String selectUserPostGroup(String userName);
/** /**
* *

@ -1,184 +0,0 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.service.ISysPostService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
*
* @author ruoyi
*/
@Service
public class SysPostServiceImpl implements ISysPostService
{
@Autowired
private SysPostMapper postMapper;
@Autowired
private SysUserPostMapper userPostMapper;
/**
*
*
* @param post
* @return
*/
@Override
public List<SysPost> selectPostList(SysPost post)
{
post.setTenantId(SecurityUtils.getLoginUser().getNowTenantId());
return postMapper.selectPostList(post);
}
/**
*
*
* @return
*/
@Override
public List<SysPost> selectPostAll()
{
return postMapper.selectPostAll(SecurityUtils.getLoginUser().getNowTenantId());
}
/**
* ID
*
* @param postId ID
* @return
*/
@Override
public SysPost selectPostById(Long postId)
{
return postMapper.selectPostById(postId);
}
/**
* ID
*
* @param userId ID
* @return ID
*/
@Override
public List<Integer> selectPostListByUserId(Long userId)
{
return postMapper.selectPostListByUserId(userId,SecurityUtils.getLoginUser().getNowTenantId());
}
/**
*
*
* @param post
* @return
*/
@Override
public String checkPostNameUnique(SysPost post)
{
Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId();
SysPost info = postMapper.checkPostNameUnique(post.getPostName());
if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue())
{
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
/**
*
*
* @param post
* @return
*/
@Override
public String checkPostCodeUnique(SysPost post)
{
Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId();
SysPost info = postMapper.checkPostCodeUnique(post.getPostCode());
if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue())
{
return UserConstants.NOT_UNIQUE;
}
return UserConstants.UNIQUE;
}
/**
* ID使
*
* @param postId ID
* @return
*/
@Override
public int countUserPostById(Long postId)
{
return userPostMapper.countUserPostById(postId);
}
/**
*
*
* @param postId ID
* @return
*/
@Override
public int deletePostById(Long postId)
{
return postMapper.deletePostById(postId);
}
/**
*
*
* @param postIds ID
* @return
* @throws Exception
*/
@Override
public int deletePostByIds(Long[] postIds)
{
for (Long postId : postIds)
{
SysPost post = selectPostById(postId);
if (countUserPostById(postId) > 0)
{
throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName()));
}
}
return postMapper.deletePostByIds(postIds);
}
/**
*
*
* @param post
* @return
*/
@Override
public int insertPost(SysPost post)
{
post.setTenantId(SecurityUtils.getLoginUser().getNowTenantId());
return postMapper.insertPost(post);
}
/**
*
*
* @param post
* @return
*/
@Override
public int updatePost(SysPost post)
{
return postMapper.updatePost(post);
}
}

@ -52,7 +52,7 @@ public class SysRoleServiceImpl implements ISysRoleService
@DataScope(deptAlias = "d") @DataScope(deptAlias = "d")
public List<SysRole> selectRoleList(SysRole role) public List<SysRole> selectRoleList(SysRole role)
{ {
role.setTenantId(SecurityUtils.getLoginUser().getNowTenantId()); // role.setTenantId(SecurityUtils.getLoginUser().getNowTenantId());
return roleMapper.selectRoleList(role); return roleMapper.selectRoleList(role);
} }

@ -147,8 +147,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
sysTenant.setEndTime(DateUtil.parse(DateUtil.format(sysTenant.getEndTime(),"yyyy-MM-dd 23:59:59")));//,"yyyy-MM-dd 23:59:59" sysTenant.setEndTime(DateUtil.parse(DateUtil.format(sysTenant.getEndTime(),"yyyy-MM-dd 23:59:59")));//,"yyyy-MM-dd 23:59:59"
this.save(sysTenant); this.save(sysTenant);
// try {
// TenantContextHolder.setTenant(sysTenant.getTenantId());
// 保存用户 // 保存用户
if (StringUtils.isAnyEmpty(reqBusinessAddTenant.getUsername(), reqBusinessAddTenant.getPassword())) { if (StringUtils.isAnyEmpty(reqBusinessAddTenant.getUsername(), reqBusinessAddTenant.getPassword())) {
return RestResponse.failure("请求参数错误,请完善后重试"); return RestResponse.failure("请求参数错误,请完善后重试");
@ -164,10 +163,11 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
SysDept sysDept=new SysDept(); SysDept sysDept=new SysDept();
sysDept.setTenantId(sysTenant.getTenantId()); sysDept.setTenantId(sysTenant.getTenantId());
sysDept.setDeptName(sysTenant.getTenantName()); sysDept.setDeptName(sysTenant.getTenantName());
sysDept.setDeptType("2"); sysDept.setDeptType("2");//默认为校区
sysDept.setParentId(0l); sysDept.setParentId(0l);
sysDept.setAncestors("0"); sysDept.setAncestors("0");
deptMapper.insertDept(sysDept); deptMapper.insertDept(sysDept);
//门店 //门店
YjStore store=new YjStore(); YjStore store=new YjStore();
store.setDeptId(sysDept.getDeptId()); store.setDeptId(sysDept.getDeptId());
@ -192,11 +192,8 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
userRoleMapper.batchUserRole(list); userRoleMapper.batchUserRole(list);
//角色menu //角色menu
roleMenuMapper.insertForNewTenant(sysTenant.getTenantId()); // roleMenuMapper.insertForNewTenant(sysTenant.getTenantId());
// } catch (Exception e) {
// e.printStackTrace();
// }
return RestResponse.success(); return RestResponse.success();
} }

@ -12,10 +12,10 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.AppUser; import com.ruoyi.system.domain.AppUser;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.*; import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.YjAppUserService; import com.ruoyi.system.service.YjAppUserService;
@ -44,14 +44,11 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired @Autowired
private SysRoleMapper roleMapper; private SysRoleMapper roleMapper;
@Autowired
private SysPostMapper postMapper;
@Autowired @Autowired
private SysUserRoleMapper userRoleMapper; private SysUserRoleMapper userRoleMapper;
@Autowired
private SysUserPostMapper userPostMapper;
@Autowired @Autowired
private ISysConfigService configService; private ISysConfigService configService;
@ -127,27 +124,7 @@ public class SysUserServiceImpl implements ISysUserService
return idsStr.toString(); return idsStr.toString();
} }
/**
*
*
* @param userName
* @return
*/
@Override
public String selectUserPostGroup(String userName)
{
List<SysPost> list = postMapper.selectPostsByUserName(userName);
StringBuffer idsStr = new StringBuffer();
for (SysPost post : list)
{
idsStr.append(post.getPostName()).append(",");
}
if (StringUtils.isNotEmpty(idsStr.toString()))
{
return idsStr.substring(0, idsStr.length() - 1);
}
return idsStr.toString();
}
/** /**
* *
@ -248,8 +225,6 @@ public class SysUserServiceImpl implements ISysUserService
{ {
// 新增用户信息 // 新增用户信息
int rows = userMapper.insertUser(user); int rows = userMapper.insertUser(user);
// 新增用户岗位关联
insertUserPost(user);
// 新增用户与角色管理 // 新增用户与角色管理
insertUserRole(user); insertUserRole(user);
//新增app用户 //新增app用户
@ -316,10 +291,6 @@ public class SysUserServiceImpl implements ISysUserService
userRoleMapper.deleteUserRoleByUserId(userId); userRoleMapper.deleteUserRoleByUserId(userId);
// 新增用户与角色管理 // 新增用户与角色管理
insertUserRole(user); insertUserRole(user);
// 删除用户与岗位关联
userPostMapper.deleteUserPostByUserId(userId);
// 新增用户与岗位管理
insertUserPost(user);
//如果账号停用【帐号状态0正常 1停用】取消与app登录用户的关联 //如果账号停用【帐号状态0正常 1停用】取消与app登录用户的关联
if (user.getStatus().equals("1")){ if (user.getStatus().equals("1")){
removeAppUserManager(userId); removeAppUserManager(userId);
@ -432,31 +403,7 @@ public class SysUserServiceImpl implements ISysUserService
} }
} }
/**
*
*
* @param user
*/
public void insertUserPost(SysUser user)
{
Long[] posts = user.getPostIds();
if (StringUtils.isNotNull(posts))
{
// 新增用户与岗位管理
List<SysUserPost> list = new ArrayList<SysUserPost>();
for (Long postId : posts)
{
SysUserPost up = new SysUserPost();
up.setUserId(user.getUserId());
up.setPostId(postId);
list.add(up);
}
if (list.size() > 0)
{
userPostMapper.batchUserPost(list);
}
}
}
/** /**
* *
@ -513,8 +460,6 @@ public class SysUserServiceImpl implements ISysUserService
} }
// 删除用户与角色关联 // 删除用户与角色关联
userRoleMapper.deleteUserRole(userIds); userRoleMapper.deleteUserRole(userIds);
// 删除用户与岗位关联
userPostMapper.deleteUserPost(userIds);
return userMapper.deleteUserByIds(userIds); return userMapper.deleteUserByIds(userIds);
} }

@ -44,37 +44,36 @@
and exists(select 1 from sc_cla_time b where a.course_time_id=b.course_time_id and b.real_cla_date between #{beginDate} and #{endDate} ) and exists(select 1 from sc_cla_time b where a.course_time_id=b.course_time_id and b.real_cla_date between #{beginDate} and #{endDate} )
</select> </select>
<select id="selectNeedAttendCount" resultType="java.lang.Integer"> <select id="selectNeedAttendCount" resultType="java.lang.Integer">
select count(1) from sc_course_cla cc,sc_cla_time ct,sc_student_course sc select count(1) from sc_course_cla a
where ct.cla_date between #{beginDate} and #{endDate} LEFT JOIN sc_cla_time b on a.cla_id=b.cla_id
and cc.cla_id=ct.cla_id LEFT JOIN sc_book_course c on b.course_time_id=c.course_time_id
and cc.cla_id=sc.cla_id WHERE a.tenant_id=#{tenantId}
and sc.status='1' and c.book_status in ('0','1','2')
and cc.tenant_id=#{tenantId} and c.create_time between #{beginDate} and #{endDate}
and (sc.charge_type in ('hour','cycle')
or (charge_type='date' and exists(
select 1 from sc_student_course_order sco
where sc.student_course_id=sco.student_course_id
and sco.valid=1
and date_format(now(),'%Y-%m-%d') between sco.begin_date and sco.end_date)))
</select> </select>
<select id="selectAttendCount" resultType="java.lang.Integer"> <select id="selectAttendCount" resultType="java.lang.Integer">
select count(1) from sc_course_cla cc,sc_cla_time_attend cta,sc_cla_time ct select count(1) from sc_course_cla cc,sc_cla_time_attend cta,sc_cla_time ct
where cta.attend_status in where cta.attend_status ='1'
<foreach collection="attendStatus" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and ct.course_time_id=cta.course_time_id and ct.course_time_id=cta.course_time_id
and ct.cla_id=cc.cla_id and ct.cla_id=cc.cla_id
and cc.tenant_id=#{tenantId} and cc.tenant_id=#{tenantId}
and ct.cla_date between #{beginDate} and #{endDate} and ct.cla_date between #{beginDate} and #{endDate}
</select> </select>
<select id="selectAttendCostHour" resultType="java.math.BigDecimal"> <select id="selectAttendCostHour" resultType="java.math.BigDecimal">
select ifnull(sum(cta.pay_hour),0) from sc_course_cla cc,sc_cla_time_attend cta,sc_cla_time ct select ifnull(sum(cta.pay_fee),0) from sc_course_cla cc,sc_cla_time_attend cta,sc_cla_time ct
where ct.course_time_id=cta.course_time_id where ct.course_time_id=cta.course_time_id
and ct.cla_id=cc.cla_id and ct.cla_id=cc.cla_id
and cc.tenant_id=#{tenantId} and cc.tenant_id=#{tenantId}
and ct.cla_date between #{beginDate} and #{endDate} and ct.cla_date between #{beginDate} and #{endDate}
</select> </select>
<select id="selectMemberByDay" resultType="java.math.BigDecimal">
SELECT
ifnull(sum(price/total_days),0)
from sc_member_cards
where status='ACTIVE'
and expiry_date > CURDATE()
and tenant_id=#{tenantId}
</select>
<select id="selectNeedAttendCostHour" resultType="java.math.BigDecimal"> <select id="selectNeedAttendCostHour" resultType="java.math.BigDecimal">
select ifnull(sum(ct.pay_hour),0) select ifnull(sum(ct.pay_hour),0)
from sc_course_cla cc,sc_cla_time ct,sc_student_course sc from sc_course_cla cc,sc_cla_time ct,sc_student_course sc

@ -78,6 +78,8 @@
ct.real_attend_cnt, ct.real_attend_cnt,
ct.room_name, ct.room_name,
ct.class_theme, ct.class_theme,
ct.at_class_cnt,
ct.less_cnt,
ct.memo, ct.memo,
(select u.user_name from sys_user u where u.user_id=ct.last_update_user) as last_update_user_name, (select u.user_name from sys_user u where u.user_id=ct.last_update_user) as last_update_user_name,
(select sum(cta.pay_fee) from sc_cla_time_attend cta where cta.course_time_id=ct.course_time_id) as pay_total_fee, (select sum(cta.pay_fee) from sc_cla_time_attend cta where cta.course_time_id=ct.course_time_id) as pay_total_fee,

@ -62,7 +62,7 @@
left join sys_role ro on ur.role_id = ro.role_id left join sys_role ro on ur.role_id = ro.role_id
where ur.user_id = #{userId} where ur.user_id = #{userId}
and m.visible='0' and m.visible='0'
AND rm.tenant_id = #{tenantId} AND rm.tenant_id = '1'
order by m.parent_id, m.order_num order by m.parent_id, m.order_num
</select> </select>
@ -72,7 +72,7 @@
left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_role_menu rm on m.menu_id = rm.menu_id
left join sys_user_role ur on rm.role_id = ur.role_id left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role ro on ur.role_id = ro.role_id left join sys_role ro on ur.role_id = ro.role_id
left join sys_user u on ur.user_id = u.user_id and u.tenant_id=rm.tenant_id left join sys_user u on ur.user_id = u.user_id
where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0 where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0
order by m.parent_id, m.order_num order by m.parent_id, m.order_num
</select> </select>
@ -81,7 +81,8 @@
select m.menu_id select m.menu_id
from sys_menu m from sys_menu m
left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_role_menu rm on m.menu_id = rm.menu_id
where rm.role_id = #{roleId} and rm.tenant_id=#{tenantId} where rm.role_id = #{roleId}
and rm.tenant_id='1'
<if test="menuCheckStrictly"> <if test="menuCheckStrictly">
and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId}) and m.menu_id not in (select m.parent_id from sys_menu m inner join sys_role_menu rm on m.menu_id = rm.menu_id and rm.role_id = #{roleId})
</if> </if>
@ -102,7 +103,10 @@
left join sys_user_role ur on rm.role_id = ur.role_id left join sys_user_role ur on rm.role_id = ur.role_id
left join sys_role r on r.role_id = ur.role_id left join sys_role r on r.role_id = ur.role_id
where m.status = '0' and r.status = '0' and ur.user_id = #{userId} and rm.tenant_id=#{tenantId} where m.status = '0'
and r.status = '0'
and ur.user_id = #{userId}
and rm.tenant_id='1'
</select> </select>
<select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult"> <select id="selectMenuById" parameterType="Long" resultMap="SysMenuResult">

@ -1,130 +0,0 @@
<?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.ruoyi.system.mapper.SysPostMapper">
<resultMap type="SysPost" id="SysPostResult">
<id property="postId" column="post_id" />
<result property="postCode" column="post_code" />
<result property="postName" column="post_name" />
<result property="postSort" column="post_sort" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectPostVo">
select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark
from sys_post
</sql>
<select id="selectPostList" parameterType="SysPost" resultMap="SysPostResult">
<include refid="selectPostVo"/>
<where>
tenant_id = #{tenantId}
<if test="postCode != null and postCode != ''">
AND post_code like concat('%', #{postCode}, '%')
</if>
<if test="status != null and status != ''">
AND status = #{status}
</if>
<if test="postName != null and postName != ''">
AND post_name like concat('%', #{postName}, '%')
</if>
</where>
</select>
<select id="selectPostAll" resultMap="SysPostResult">
<include refid="selectPostVo"/>
where 1=1
<if test="tenantId != null and tenantId != ''">
and tenant_id=#{tenantId}
</if>
</select>
<select id="selectPostById" parameterType="Long" resultMap="SysPostResult">
<include refid="selectPostVo"/>
where post_id = #{postId}
</select>
<select id="selectPostListByUserId" resultType="Integer">
select p.post_id
from sys_post p
left join sys_user_post up on up.post_id = p.post_id
left join sys_user u on u.user_id = up.user_id
where u.user_id = #{userId} and p.tenant_id=#{tenantId}
</select>
<select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult">
select p.post_id, p.post_name, p.post_code
from sys_post p
left join sys_user_post up on up.post_id = p.post_id
left join sys_user u on u.user_id = up.user_id
where u.user_name = #{userName}
</select>
<select id="checkPostNameUnique" parameterType="String" resultMap="SysPostResult">
<include refid="selectPostVo"/>
where post_name=#{postName} limit 1
</select>
<select id="checkPostCodeUnique" parameterType="String" resultMap="SysPostResult">
<include refid="selectPostVo"/>
where post_code=#{postCode} limit 1
</select>
<update id="updatePost" parameterType="SysPost">
update sys_post
<set>
<if test="postCode != null and postCode != ''">post_code = #{postCode},</if>
<if test="postName != null and postName != ''">post_name = #{postName},</if>
<if test="postSort != null and postSort != ''">post_sort = #{postSort},</if>
<if test="status != null and status != ''">status = #{status},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
update_time = sysdate()
</set>
where post_id = #{postId}
</update>
<insert id="insertPost" parameterType="SysPost" useGeneratedKeys="true" keyProperty="postId">
insert into sys_post(
<if test="postId != null and postId != 0">post_id,</if>
<if test="postCode != null and postCode != ''">post_code,</if>
<if test="postName != null and postName != ''">post_name,</if>
<if test="postSort != null and postSort != ''">post_sort,</if>
<if test="status != null and status != ''">status,</if>
<if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="tenantId != null">tenant_id,</if>
create_time
)values(
<if test="postId != null and postId != 0">#{postId},</if>
<if test="postCode != null and postCode != ''">#{postCode},</if>
<if test="postName != null and postName != ''">#{postName},</if>
<if test="postSort != null and postSort != ''">#{postSort},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="tenantId != null">#{tenantId},</if>
sysdate()
)
</insert>
<delete id="deletePostById" parameterType="Long">
delete from sys_post where post_id = #{postId}
</delete>
<delete id="deletePostByIds" parameterType="Long">
delete from sys_post where post_id in
<foreach collection="array" item="postId" open="(" separator="," close=")">
#{postId}
</foreach>
</delete>
</mapper>

@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult"> <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult">
<include refid="selectRoleVo"/> <include refid="selectRoleVo"/>
where r.del_flag = '0' and r.role_id!=1 where r.del_flag = '0'
<if test="roleId != null and roleId != 0"> <if test="roleId != null and roleId != 0">
AND r.role_id = #{roleId} AND r.role_id = #{roleId}
</if> </if>
@ -51,9 +51,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 --> <if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
and date_format(r.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d') and date_format(r.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if> </if>
and (r.tenant_id=1 or r.tenant_id=#{tenantId})
<!-- 数据范围过滤 -->
-- ${params.dataScope}
order by r.role_sort order by r.role_sort
</select> </select>
@ -71,9 +68,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_role r from sys_role r
left join sys_user_role ur on ur.role_id = r.role_id left join sys_user_role ur on ur.role_id = r.role_id
left join sys_user u on u.user_id = ur.user_id left join sys_user u on u.user_id = ur.user_id
where u.user_id = #{userId} and r.tenant_id in (#{tenantId},"1") where u.user_id = #{userId}
</select> </select>
<select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult"> <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult">
<include refid="selectRoleVo"/> <include refid="selectRoleVo"/>
where r.role_id = #{roleId} where r.role_id = #{roleId}
@ -106,7 +102,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">status,</if> <if test="status != null and status != ''">status,</if>
<if test="remark != null and remark != ''">remark,</if> <if test="remark != null and remark != ''">remark,</if>
<if test="createBy != null">create_by,</if> <if test="createBy != null">create_by,</if>
<if test="tenantId != null">tenant_id,</if>
create_time create_time
)values( )values(
<if test="roleId != null and roleId != 0">#{roleId},</if> <if test="roleId != null and roleId != 0">#{roleId},</if>
@ -119,7 +114,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null and status != ''">#{status},</if> <if test="status != null and status != ''">#{status},</if>
<if test="remark != null and remark != ''">#{remark},</if> <if test="remark != null and remark != ''">#{remark},</if>
<if test="createBy != null">#{createBy},</if> <if test="createBy != null">#{createBy},</if>
<if test="tenantId != null">#{tenantId},</if>
sysdate() sysdate()
) )
</insert> </insert>

Loading…
Cancel
Save