测试并修改

master
15004070936 6 hours ago
parent 33905f3040
commit 408096ad87

@ -14,8 +14,8 @@ import lombok.Setter;
@TableName("sc_commission_info") @TableName("sc_commission_info")
public class CommissionInfo { public class CommissionInfo {
@TableId(type = IdType.AUTO) @TableId(type = IdType.ASSIGN_ID)
private Integer id; private Long id;
private Integer tenantId; private Integer tenantId;

@ -1,6 +1,5 @@
package cn.xluobo.business.sc.salary.repo.model; package cn.xluobo.business.sc.salary.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter; import lombok.Getter;
@ -13,7 +12,7 @@ import java.math.BigDecimal;
@TableName("sc_salary_base") @TableName("sc_salary_base")
public class SalaryBase { public class SalaryBase {
@TableId(type = IdType.AUTO) @TableId()
private Integer id; private Integer id;
private String name; private String name;

@ -1,6 +1,5 @@
package cn.xluobo.business.sc.salary.repo.model; package cn.xluobo.business.sc.salary.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter; import lombok.Getter;
@ -13,7 +12,7 @@ import java.math.BigDecimal;
@TableName("sc_staff_salary_base") @TableName("sc_staff_salary_base")
public class StaffSalaryBase { public class StaffSalaryBase {
@TableId(type = IdType.AUTO) @TableId()
private Integer id; private Integer id;
private Long staffId; private Long staffId;

@ -1,6 +1,5 @@
package cn.xluobo.business.stock.goods.repo.model; package cn.xluobo.business.stock.goods.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -27,7 +26,7 @@ public class StockGoodsProperty implements Serializable {
/** /**
* *
*/ */
@TableId(value = "goods_id", type = IdType.INPUT) @TableId(value = "goods_id")
private Long goodsId; private Long goodsId;
/** /**

@ -1,6 +1,5 @@
package cn.xluobo.business.stock.goods.repo.model; package cn.xluobo.business.stock.goods.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -30,7 +29,7 @@ public class StockInfoChange implements Serializable {
/** /**
* *
*/ */
@TableId(value = "stock_change_id", type = IdType.AUTO) @TableId(value = "stock_change_id")
private Long stockChangeId; private Long stockChangeId;
/** /**

@ -1,15 +1,15 @@
package cn.xluobo.business.tool.impt.repo.model; package cn.xluobo.business.tool.impt.repo.model;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
/** /**
* <p> * <p>
* *
@ -26,7 +26,7 @@ public class ToolImport implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@TableId(value = "import_id", type = IdType.AUTO) @TableId(value = "import_id")
private Long importId; private Long importId;
/** /**

@ -1,6 +1,5 @@
package cn.xluobo.business.wechat.cp.repo.model; package cn.xluobo.business.wechat.cp.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -26,7 +25,7 @@ import java.util.Date;
public class WechatCpAccount implements Serializable { public class WechatCpAccount implements Serializable {
@TableId(value = "cp_account_id", type = IdType.AUTO) @TableId(value = "cp_account_id")
private Integer cpAccountId; private Integer cpAccountId;
/** /**

@ -59,7 +59,7 @@ public class AftersaleController extends BaseController {
// } // }
@ApiOperation("获取订单售后详细信息") @ApiOperation("获取订单售后详细信息")
@PreAuthorize("@ss.hasPermi('oms:aftersale:query')") @PreAuthorize("@ss.hasPermi('oms:aftersale:list')")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public ResponseEntity<ManagerRefundOrderDetailVO> getInfo(@PathVariable("id") Long orderId) { public ResponseEntity<ManagerRefundOrderDetailVO> getInfo(@PathVariable("id") Long orderId) {
return ResponseEntity.ok(service.selectById(orderId)); return ResponseEntity.ok(service.selectById(orderId));

@ -132,8 +132,14 @@ mybatis-plus:
configLocation: classpath:mybatis/mybatis-config.xml configLocation: classpath:mybatis/mybatis-config.xml
global-config: global-config:
db-config: db-config:
id-type: auto id-type: assign_id
# 配置机器 ID (影响雪花ID),范围: 0-31
worker-id: 1
# 配置数据中心 ID (影响雪花ID),范围: 0-31
data-center-id: 1
# update-strategy: ignored # update-strategy: ignored
pagehelper: pagehelper:
helperDialect: mysql helperDialect: mysql
supportMethodsArguments: true supportMethodsArguments: true

@ -1,7 +1,6 @@
package com.ruoyi.common.core.domain.entity; package com.ruoyi.common.core.domain.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
@ -24,7 +23,6 @@ public class SysDept extends BaseEntity
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 部门ID */ /** 部门ID */
@TableId
private Long deptId; private Long deptId;
/** 父部门ID */ /** 父部门ID */

@ -1,14 +1,11 @@
package com.ruoyi.common.db; package com.ruoyi.common.db;
import org.springframework.stereotype.Component;
import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener; import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@Component//尽量加上这个 //@Component//尽量加上这个
@WebListener//声明为监听器 //@WebListener//声明为监听器
public class SshContextListener implements ServletContextListener { public class SshContextListener implements ServletContextListener {
private SshTunnelConfig sshConnectionConfig; private SshTunnelConfig sshConnectionConfig;

@ -0,0 +1,12 @@
package com.ruoyi.common.utils.uuid;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
public class IdGenerator {
/**
* ID
*/
public static long nextId() {
return IdWorker.getId(); // 返回 long 类型
}
}

@ -6,15 +6,14 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.enums.AftersaleStatus; import com.ruoyi.common.enums.AftersaleStatus;
import com.ruoyi.common.enums.OrderRefundStatus; import com.ruoyi.common.enums.OrderRefundStatus;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.mall.domain.Aftersale; import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Order;
import com.ruoyi.mall.domain.OrderItem;
import com.ruoyi.mall.domain.OrderOperateHistory;
import com.ruoyi.mall.domain.form.DealWithAftersaleForm; import com.ruoyi.mall.domain.form.DealWithAftersaleForm;
import com.ruoyi.mall.domain.form.ManagerAftersaleOrderForm; import com.ruoyi.mall.domain.form.ManagerAftersaleOrderForm;
import com.ruoyi.mall.domain.vo.*; import com.ruoyi.mall.domain.vo.*;
@ -38,7 +37,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class AftersaleService { public class AftersaleService extends ServiceImpl<AftersaleMapper, Aftersale> implements IService<Aftersale> {
@Autowired @Autowired
private AftersaleMapper aftersaleMapper; private AftersaleMapper aftersaleMapper;

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.mall.domain.Brand; import com.ruoyi.mall.domain.Brand;
import com.ruoyi.mall.domain.Product;
import com.ruoyi.mall.domain.query.BrandQuery; import com.ruoyi.mall.domain.query.BrandQuery;
import com.ruoyi.mall.mapper.BrandMapper; import com.ruoyi.mall.mapper.BrandMapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -25,6 +26,9 @@ public class BrandService {
@Autowired @Autowired
private BrandMapper brandMapper; private BrandMapper brandMapper;
@Autowired
private ProductService productService;
/** /**
* *
* *
@ -98,6 +102,11 @@ public class BrandService {
* @return * @return
*/ */
public int deleteById(Long id) { public int deleteById(Long id) {
//被使用,无法删除
int productCount= productService.count(new QueryWrapper<Product>().eq("brand_id",id));
if (productCount>0){
throw new RuntimeException("品牌下有商品,无法删除!");
}
return brandMapper.deleteById(id); return brandMapper.deleteById(id);
} }
} }

@ -14,6 +14,8 @@ import com.ruoyi.mall.domain.query.DeliverProductForm;
import com.ruoyi.mall.domain.query.ManagerOrderQueryForm; import com.ruoyi.mall.domain.query.ManagerOrderQueryForm;
import com.ruoyi.mall.domain.vo.*; import com.ruoyi.mall.domain.vo.*;
import com.ruoyi.mall.mapper.*; import com.ruoyi.mall.mapper.*;
import com.ruoyi.system.domain.AppUser;
import com.ruoyi.system.service.YjAppUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
@ -47,7 +49,8 @@ public class OrderService {
@Autowired @Autowired
private OrderDeliveryHistoryMapper orderDeliveryHistoryMapper; private OrderDeliveryHistoryMapper orderDeliveryHistoryMapper;
@Autowired
private YjAppUserService appUserService;
/** /**
* *
@ -87,9 +90,9 @@ public class OrderService {
managerOrderAddressVo.setName(order.getReceiverName()); managerOrderAddressVo.setName(order.getReceiverName());
managerOrderDetailVO.setAddressInfo(managerOrderAddressVo); managerOrderDetailVO.setAddressInfo(managerOrderAddressVo);
//查询会员信息 //查询会员信息
// Member member = memberMapper.selectById(order.getMemberId()); AppUser member = appUserService.getById(order.getMemberId());
// managerOrderDetailVO.setUserName(member.getNickname()); managerOrderDetailVO.setUserName(member.getNickName());
// managerOrderDetailVO.setUserPhone(member.getPhoneHidden()); managerOrderDetailVO.setUserPhone(member.getPhoneNumber());
//查询购买商品信息 //查询购买商品信息
QueryWrapper<OrderItem> qw = new QueryWrapper<>(); QueryWrapper<OrderItem> qw = new QueryWrapper<>();
qw.eq("order_id", order.getId()); qw.eq("order_id", order.getId());

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.mall.domain.Product;
import com.ruoyi.mall.domain.ProductCategory; import com.ruoyi.mall.domain.ProductCategory;
import com.ruoyi.mall.domain.query.ProductCategoryQuery; import com.ruoyi.mall.domain.query.ProductCategoryQuery;
import com.ruoyi.mall.domain.vo.ProductCategoryVO; import com.ruoyi.mall.domain.vo.ProductCategoryVO;
@ -27,7 +28,8 @@ public class ProductCategoryService {
@Autowired @Autowired
private ProductCategoryMapper productCategoryMapper; private ProductCategoryMapper productCategoryMapper;
@Autowired
private ProductService productService;
/** /**
* *
* *
@ -147,6 +149,11 @@ public class ProductCategoryService {
* @return * @return
*/ */
public int deleteById(Long id) { public int deleteById(Long id) {
//被使用,无法删除
int productCount= productService.count(new QueryWrapper<Product>().eq("category_id",id));
if (productCount>0){
throw new RuntimeException("分类下有商品,无法删除!");
}
return productCategoryMapper.deleteById(id); return productCategoryMapper.deleteById(id);
} }

@ -6,12 +6,11 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.mall.domain.Brand; import com.ruoyi.mall.domain.*;
import com.ruoyi.mall.domain.Product;
import com.ruoyi.mall.domain.ProductCategory;
import com.ruoyi.mall.domain.Sku;
import com.ruoyi.mall.domain.query.ProductQuery; import com.ruoyi.mall.domain.query.ProductQuery;
import com.ruoyi.mall.domain.vo.ProductDetailVO; import com.ruoyi.mall.domain.vo.ProductDetailVO;
import com.ruoyi.mall.domain.vo.ProductVO; import com.ruoyi.mall.domain.vo.ProductVO;
@ -42,7 +41,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
@Slf4j @Slf4j
public class ProductService { public class ProductService extends ServiceImpl<ProductMapper, Product> implements IService<Product> {
@Autowired @Autowired
private ProductMapper productMapper; private ProductMapper productMapper;
@Autowired @Autowired
@ -54,6 +53,9 @@ public class ProductService {
@Autowired @Autowired
private YjAppUserService userService; private YjAppUserService userService;
@Autowired
private OrderItemService orderItemService;
/** /**
@ -202,12 +204,15 @@ public class ProductService {
if (ObjectUtil.isEmpty(productVO.getCustomerService())){ if (ObjectUtil.isEmpty(productVO.getCustomerService())){
throw new RuntimeException("请选择客服/顾问"); throw new RuntimeException("请选择客服/顾问");
} }
if (productVO.getIsCourse().equals(new Integer(1))&&ObjectUtil.isEmpty(productVO.getInstructor())){ if (productVO.getIsCourse().equals(new Integer(1))){
if (ObjectUtil.isEmpty(productVO.getInstructor())){
throw new RuntimeException("请选择教练"); throw new RuntimeException("请选择教练");
}else { }else {
AppUser instructor= userService.getOne(new QueryWrapper<AppUser>().eq("manage_account_id",productVO.getInstructor())); AppUser instructor= userService.getOne(new QueryWrapper<AppUser>().eq("manage_account_id",productVO.getInstructor()));
product.setInstructor(instructor.getId()); product.setInstructor(instructor.getId());
} }
}
AppUser customerService= userService.getOne(new QueryWrapper<AppUser>().eq("manage_account_id",productVO.getCustomerService())); AppUser customerService= userService.getOne(new QueryWrapper<AppUser>().eq("manage_account_id",productVO.getCustomerService()));
product.setCustomerService(customerService.getId()); product.setCustomerService(customerService.getId());
} }
@ -290,6 +295,10 @@ public class ProductService {
* @return * @return
*/ */
public int deleteById(Long id) { public int deleteById(Long id) {
int orderCount= orderItemService.count(new QueryWrapper<OrderItem>().eq("product_id",id));
if (orderCount>0){
throw new RuntimeException("商品已生成订单,无法删除!");
}
return productMapper.deleteById(id); return productMapper.deleteById(id);
} }

@ -179,7 +179,11 @@ public class ScClaTime implements Serializable {
@TableField("create_time") @TableField("create_time")
private Date createTime; private Date createTime;
/**
*
*/
@TableField("tenant_id")
private String tenantId;
/** /**
* *

@ -155,4 +155,10 @@ public class ScClaTimeAttend implements Serializable {
*/ */
@TableField(value = "fee_after") @TableField(value = "fee_after")
private BigDecimal feeAfter; private BigDecimal feeAfter;
/**
*
*/
@TableField("tenant_id")
private String tenantId;
} }

@ -29,7 +29,7 @@ public class ScCourse implements Serializable {
/** /**
* id * id
*/ */
@TableId(value = "course_id") @TableId(value = "course_id",type = IdType.ASSIGN_ID)
private Long courseId; private Long courseId;
/** /**

@ -1,6 +1,5 @@
package com.ruoyi.school.course.domain; package com.ruoyi.school.course.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -26,7 +25,7 @@ import java.util.Date;
public class ScCourseType implements Serializable { public class ScCourseType implements Serializable {
@TableId(value = "course_type_id",type = IdType.AUTO) @TableId(value = "course_type_id")
private Long courseTypeId; private Long courseTypeId;
/** /**

@ -197,6 +197,7 @@ public class BusinessClaTimeRuleService {
claTime.setClassTheme(claTimeRule.getClassTheme()); claTime.setClassTheme(claTimeRule.getClassTheme());
claTime.setTeacherId(claTimeRule.getTeacherId()); claTime.setTeacherId(claTimeRule.getTeacherId());
claTime.setCreateUser(claTimeRule.getCreateUser()); claTime.setCreateUser(claTimeRule.getCreateUser());
claTime.setTenantId(courseCla.getTenantId());
return claTime; return claTime;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
claTimeService.saveBatch(timeList); claTimeService.saveBatch(timeList);

@ -251,6 +251,7 @@ public class BusinessClaTimeService {
claTime.setTeacherFee(course.getClaFee()); claTime.setTeacherFee(course.getClaFee());
claTime.setCreateUser(loginUser.getUserId()); claTime.setCreateUser(loginUser.getUserId());
claTime.setCreateTime(new Date()); claTime.setCreateTime(new Date());
claTime.setTenantId(SecurityUtils.getLoginUser().getNowTenantId());
claTimeService.save(claTime); claTimeService.save(claTime);
return APIResponse.toOkResponse(); return APIResponse.toOkResponse();
} }

@ -11,6 +11,8 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.core.api.APIBaseResponse; import com.ruoyi.core.api.APIBaseResponse;
import com.ruoyi.core.api.APIResponse; import com.ruoyi.core.api.APIResponse;
import com.ruoyi.core.api.ApiResEnums; import com.ruoyi.core.api.ApiResEnums;
import com.ruoyi.mall.domain.Product;
import com.ruoyi.mall.service.ProductService;
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.ScCourseCla;
import com.ruoyi.school.course.domain.ScCourseType; import com.ruoyi.school.course.domain.ScCourseType;
@ -46,7 +48,7 @@ public class BusinessScCourseService {
@Autowired @Autowired
private ScCourseMapper courseMapper; private ScCourseMapper courseMapper;
@Autowired @Autowired
private IScCourseChargeService courseChargeService; private ProductService productService;
@Autowired @Autowired
private BusinessSysDeptService deptService; private BusinessSysDeptService deptService;
@Autowired @Autowired
@ -233,6 +235,11 @@ public class BusinessScCourseService {
return APIResponse.toExceptionResponse("已有会员卡项使用,无法删除"); return APIResponse.toExceptionResponse("已有会员卡项使用,无法删除");
} }
int productCount= productService.count(new QueryWrapper<Product>().in("course_id",courseIds));
if (productCount != 0) {
return APIResponse.toExceptionResponse("已在商城上架,无法删除");
}
boolean deleteScCourse = scCourseService.removeByIds(courseIds); boolean deleteScCourse = scCourseService.removeByIds(courseIds);
if (deleteScCourse) { if (deleteScCourse) {
return APIResponse.toOkResponse(); return APIResponse.toOkResponse();

@ -46,10 +46,9 @@ public interface IScClaTimeAttendService extends com.baomidou.mybatisplus.extens
* *
* @param beginDate * @param beginDate
* @param endDate * @param endDate
* @param needAttend
* @return * @return
*/ */
BigDecimal getAttendCostHour(String beginDate, String endDate, boolean needAttend); BigDecimal getAttendCostHour(String beginDate, String endDate);
/** /**
* *

@ -14,12 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/ */
public interface IScCourseClaService extends IService<ScCourseCla> { public interface IScCourseClaService extends IService<ScCourseCla> {
/**
*
* @param claId
* @return
*/
Integer selectStudentCnt(Long claId);
/** /**
* *

@ -129,6 +129,8 @@ public class BusinessScCourseClaService {
return APIResponse.toAPIResponse(resultMap); return APIResponse.toAPIResponse(resultMap);
} }
@Autowired @Autowired
private IScClaTimeRuleService claTimeRuleService; private IScClaTimeRuleService claTimeRuleService;

@ -1,12 +1,12 @@
package com.ruoyi.school.course.service.impl; package com.ruoyi.school.course.service.impl;
import com.ruoyi.school.course.domain.req.time.ReqClaTimeCount;
import com.ruoyi.school.course.mapper.ScClaTimeAttendMapper;
import com.ruoyi.school.course.domain.ScClaTimeAttend;
import com.ruoyi.school.course.service.IScClaTimeAttendService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.school.course.domain.ScClaTimeAttend;
import com.ruoyi.school.course.domain.req.time.ReqClaTimeCount;
import com.ruoyi.school.course.mapper.ScClaTimeAttendMapper;
import com.ruoyi.school.course.service.IScClaTimeAttendService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -40,15 +40,13 @@ public class ScClaTimeAttendServiceImpl extends ServiceImpl<ScClaTimeAttendMappe
} }
@Override @Override
public BigDecimal getAttendCostHour(String beginDate, String endDate, boolean needAttend) { public BigDecimal getAttendCostHour(String beginDate, String endDate) {
if(needAttend) { //会员卡 划扣课时现金价值 +划扣金额
return baseMapper.selectNeedAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId());
} else {
BigDecimal a= baseMapper.selectAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId()); BigDecimal a= baseMapper.selectAttendCostHour(beginDate, endDate, SecurityUtils.getLoginUser().getNowTenantId());
//按天的周期卡 每天的价值
BigDecimal b=baseMapper.selectMemberByDay(SecurityUtils.getLoginUser().getNowTenantId()); BigDecimal b=baseMapper.selectMemberByDay(SecurityUtils.getLoginUser().getNowTenantId());
return a.add(b).setScale(2, RoundingMode.HALF_UP); return a.add(b).setScale(2, RoundingMode.HALF_UP);
} }
}
@Override @Override
public BigDecimal getTeacherGetHour(ReqClaTimeCount reqClaTimeCount) { public BigDecimal getTeacherGetHour(ReqClaTimeCount reqClaTimeCount) {

@ -23,11 +23,7 @@ public class ScCourseClaServiceImpl extends ServiceImpl<ScCourseClaMapper, ScCou
@Autowired @Autowired
private IScClaTimeService claTimeService; private IScClaTimeService claTimeService;
//todo 当前是否有人预约
@Override
public Integer selectStudentCnt(Long claId) {
return baseMapper.selectStudentCnt(claId);
}
@Override @Override
public APIBaseResponse canChangeCourse(Long claId) { public APIBaseResponse canChangeCourse(Long claId) {

@ -34,7 +34,7 @@ public class DashboardData {
// 今日应消课时 // 今日应消课时
private BigDecimal todayNeedCostHour; private BigDecimal todayNeedCostHour;
// 今日实消课时 // 今日实收费用
private BigDecimal todayRealCostHour; private BigDecimal todayRealCostHour;
// 会员数量 // 会员数量

@ -65,25 +65,33 @@ 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);
//费用少于200元
Integer feeWillExpireCnt = memberCardMapper.selectFeeWillExpireCards(200); Integer feeWillExpireCnt = memberCardMapper.selectFeeWillExpireCards(200);
//5天内要过期的
Integer dateWillExpireCnt = memberCardMapper.selectExpiringCards(5).size(); Integer dateWillExpireCnt = memberCardMapper.selectExpiringCards(5).size();
//还剩10节课以内的
Integer hourWillExpireCnt = memberCardMapper.selectHourWillExpireCards(10); Integer hourWillExpireCnt = memberCardMapper.selectHourWillExpireCards(10);
return DashboardData.builder() return DashboardData.builder()

@ -28,7 +28,7 @@ public class ScMemberCard implements Serializable {
/** /**
* ID * ID
*/ */
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id")
private Long id; private Long id;
@TableField(value = "tenant_id") @TableField(value = "tenant_id")

@ -1,6 +1,5 @@
package com.ruoyi.school.member.domain; package com.ruoyi.school.member.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
@ -26,7 +25,7 @@ public class ScMemberCardCharge implements Serializable {
/** /**
* id * id
*/ */
@TableId(value = "charge_id",type = IdType.AUTO ) @TableId(value = "charge_id")
private Long chargeId; private Long chargeId;
private Long cardTypeId; private Long cardTypeId;

@ -1,6 +1,5 @@
package com.ruoyi.school.member.domain; package com.ruoyi.school.member.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -27,11 +26,13 @@ public class ScMemberCardCourses implements Serializable {
/** /**
* id * id
*/ */
@TableId(value = "id",type = IdType.AUTO ) @TableId(value = "id")
private Long id; private Long id;
private Long cardTypeId; private Long cardTypeId;
private Long courseTypeId; private Long courseTypeId;
private Long course_id;
@TableField(value = "courses", typeHandler = LongArrayTypeHandler.class) @TableField(value = "courses", typeHandler = LongArrayTypeHandler.class)
private Long[] courses; private Long[] courses;

@ -0,0 +1,37 @@
package com.ruoyi.school.member.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "sc_member_card_teachers",autoResultMap = true)
public class ScMemberCardTeacher implements Serializable {
/**
* id
*/
@TableId(value = "id")
private Long id;
private Long cardTypeId;
@TableField("user_id")
private Long teacherId;
}

@ -35,7 +35,7 @@ public class ScMemberCardTypes implements Serializable {
/** /**
* id * id
*/ */
@TableId(value = "card_type_id",type = IdType.AUTO) @TableId(value = "card_type_id")
private Long cardTypeId; private Long cardTypeId;
/** /**

@ -104,6 +104,8 @@ public class MemberCardDTO {
private int pageNum; private int pageNum;
private int pageSize; private int pageSize;
private String startDate;
private String endDate;
/** /**
* DTO * DTO

@ -345,7 +345,7 @@ public class ScMemberCardServiceImpl extends ServiceImpl<ScMemberCardMapper, ScM
addClaTimeAttend.setChargeType(chargeType); addClaTimeAttend.setChargeType(chargeType);
addClaTimeAttend.setAttendStatus("1"); addClaTimeAttend.setAttendStatus("1");
addClaTimeAttend.setCreateUser(SecurityUtils.getUserId()); addClaTimeAttend.setCreateUser(SecurityUtils.getUserId());
addClaTimeAttend.setTenantId(claTime.getTenantId());
bookCourseList.add(bookCourse); bookCourseList.add(bookCourse);
memberCardList.add(memberCard); memberCardList.add(memberCard);
// 保存上课记录 // 保存上课记录
@ -598,6 +598,12 @@ 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 (StrUtil.isNotEmpty(queryDTO.getStartDate())) {
queryWrapper.ge(ScMemberCard::getExpiryDate, LocalDate.parse(queryDTO.getStartDate()));
}
if (StrUtil.isNotEmpty(queryDTO.getEndDate())) {
queryWrapper.le(ScMemberCard::getExpiryDate, LocalDate.parse(queryDTO.getEndDate()));
}
// 排序 // 排序
queryWrapper.orderByDesc(ScMemberCard::getCreatedAt); queryWrapper.orderByDesc(ScMemberCard::getCreatedAt);

@ -1,6 +1,5 @@
package com.ruoyi.school.salary.domain; package com.ruoyi.school.salary.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
@ -16,7 +15,7 @@ import java.util.Date;
@TableName("sc_commission_plans") @TableName("sc_commission_plans")
public class ScCommissionPlans { public class ScCommissionPlans {
@TableId(type = IdType.AUTO) @TableId()
private Long id; private Long id;
private String planName; private String planName;

@ -21,7 +21,7 @@ public class AppUser {
//"ID") //"ID")
@TableId(value = "app_user_id",type = IdType.AUTO) @TableId(value = "app_user_id")
private Long id; private Long id;
//"昵称") //"昵称")

@ -13,6 +13,7 @@ import com.ruoyi.common.exception.ServiceException;
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.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdGenerator;
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.ScCourseCla;
import com.ruoyi.school.course.service.IScCourseClaService; import com.ruoyi.school.course.service.IScCourseClaService;
@ -265,6 +266,7 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> imp
} }
dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
dept.setTenantId(SecurityUtils.getLoginUser().getNowTenantId()); dept.setTenantId(SecurityUtils.getLoginUser().getNowTenantId());
dept.setDeptId(IdGenerator.nextId());
int i= deptMapper.insertDept(dept); int i= deptMapper.insertDept(dept);
if (dept.getDeptType().equals("2")){ if (dept.getDeptType().equals("2")){
//校区 新增门店介绍 //校区 新增门店介绍

@ -12,6 +12,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.page.RespPage; import com.ruoyi.common.page.RespPage;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.uuid.IdGenerator;
import com.ruoyi.system.domain.SysTenant; import com.ruoyi.system.domain.SysTenant;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.columns.YjStore; import com.ruoyi.system.domain.columns.YjStore;
@ -166,6 +167,7 @@ public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant
sysDept.setDeptType("2");//默认为校区 sysDept.setDeptType("2");//默认为校区
sysDept.setParentId(0l); sysDept.setParentId(0l);
sysDept.setAncestors("0"); sysDept.setAncestors("0");
sysDept.setDeptId(IdGenerator.nextId());
deptMapper.insertDept(sysDept); deptMapper.insertDept(sysDept);
//门店 //门店

@ -11,6 +11,7 @@ import com.ruoyi.common.exception.ServiceException;
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.spring.SpringUtils; import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.common.utils.uuid.IdGenerator;
import com.ruoyi.system.domain.AppUser; import com.ruoyi.system.domain.AppUser;
import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.domain.columns.SysTeacher; import com.ruoyi.system.domain.columns.SysTeacher;
@ -229,6 +230,7 @@ public class SysUserServiceImpl implements ISysUserService
@Transactional @Transactional
public int insertUser(SysUser user) public int insertUser(SysUser user)
{ {
user.setUserId(IdGenerator.nextId());
// 新增用户信息 // 新增用户信息
int rows = userMapper.insertUser(user); int rows = userMapper.insertUser(user);
// 新增用户与角色管理 // 新增用户与角色管理
@ -290,6 +292,7 @@ public class SysUserServiceImpl implements ISysUserService
@Override @Override
public boolean registerUser(SysUser user) public boolean registerUser(SysUser user)
{ {
user.setUserId(IdGenerator.nextId());
return userMapper.insertUser(user) > 0; return userMapper.insertUser(user) > 0;
} }

@ -45,31 +45,29 @@
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 a select count(1) from sc_cla_time b
LEFT JOIN sc_cla_time b on a.cla_id=b.cla_id
LEFT JOIN sc_book_course c on b.course_time_id=c.course_time_id LEFT JOIN sc_book_course c on b.course_time_id=c.course_time_id
WHERE a.tenant_id=#{tenantId} WHERE b.tenant_id=#{tenantId}
and c.book_status in ('0','1','2') and c.book_status in ('0','1','2')
and c.create_time between #{beginDate} and #{endDate} and b.cla_date between #{beginDate} and #{endDate}
</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_cla_time_attend cta
where cta.attend_status ='1' where cta.attend_status ='1'
and ct.course_time_id=cta.course_time_id and cta.tenant_id=#{tenantId}
and ct.cla_id=cc.cla_id and cta.create_time between #{beginDate} and #{endDate}
and cc.tenant_id=#{tenantId}
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_fee),0) from sc_course_cla cc,sc_cla_time_attend cta,sc_cla_time ct select ifnull(sum(cta.pay_fee),0) from
where ct.course_time_id=cta.course_time_id sc_cla_time_attend cta
and ct.cla_id=cc.cla_id where cta.attend_status='1'
and cc.tenant_id=#{tenantId} and cta.tenant_id=#{tenantId}
and ct.cla_date between #{beginDate} and #{endDate} and cta.create_time between #{beginDate} and #{endDate}
</select> </select>
<select id="selectMemberByDay" resultType="java.math.BigDecimal"> <select id="selectMemberByDay" resultType="java.math.BigDecimal">
SELECT SELECT
ifnull(sum(price/total_days),0) ifnull(sum(day_fee),0)
from sc_member_cards from sc_member_cards
where status='ACTIVE' where status='ACTIVE'
and expiry_date > CURDATE() and expiry_date > CURDATE()

@ -5,9 +5,19 @@
<select id="selectByCondition" resultType="com.ruoyi.school.course.domain.resp.time.RespClaTimeRule"> <select id="selectByCondition" resultType="com.ruoyi.school.course.domain.resp.time.RespClaTimeRule">
select b.*, select b.*,
fcn_dict_name_list(b.week_day,'week_day') as week_day_name, fcn_dict_name_list(b.week_day,'week_day') as week_day_name,
a.cla_name,c.course_name,d.nick_name staff_name a.cla_name,
from sc_course_cla a, sc_cla_time_rule b, sc_course c, sys_user d c.course_name,
where a.cla_id = b.cla_id and a.course_id=c.course_id and b.teacher_id=d.user_id and a.tenant_id=#{reqSearchScClaTimeRule.tenantId} d.nick_name staff_name
from sc_course_cla a,
sc_cla_time_rule b,
sc_course c,
sys_user d
where
a.cla_id = b.cla_id
and a.course_id=c.course_id
and b.teacher_id=d.user_id
and a.tenant_id=#{reqSearchScClaTimeRule.tenantId}
<if test="reqSearchScClaTimeRule.deptId != null"> <if test="reqSearchScClaTimeRule.deptId != null">
and a.depart_id=#{reqSearchScClaTimeRule.deptId} and a.depart_id=#{reqSearchScClaTimeRule.deptId}
</if> </if>

@ -98,7 +98,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where dept_name=#{deptName} and parent_id = #{parentId} limit 1 where dept_name=#{deptName} and parent_id = #{parentId} limit 1
</select> </select>
<insert id="insertDept" parameterType="SysDept" useGeneratedKeys="true" keyProperty="deptId"> <insert id="insertDept" parameterType="SysDept" >
insert into sys_dept( insert into sys_dept(
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>
<if test="parentId != null and parentId != 0">parent_id,</if> <if test="parentId != null and parentId != 0">parent_id,</if>

@ -157,7 +157,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</select> </select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="SysUser" >
insert into sys_user( insert into sys_user(
<if test="userId != null and userId != 0">user_id,</if> <if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if> <if test="deptId != null and deptId != 0">dept_id,</if>

Loading…
Cancel
Save