school #1

Merged
dongzheqi merged 4 commits from school into master 1 week ago

@ -15,6 +15,33 @@
web服务入口
</description>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<base-common.version>1.0-SNAPSHOT</base-common.version>
<base-service.version>1.0-SNAPSHOT</base-service.version>
<base-config-redis.version>1.0-SNAPSHOT</base-config-redis.version>
<base-oauth-server.version>1.0-SNAPSHOT</base-oauth-server.version>
<spring-boot.version>2.1.10.RELEASE</spring-boot.version>
<mybatis-plus.version>3.3.0</mybatis-plus.version>
<mysql.version>8.0.16</mysql.version>
<lombok.version>1.18.10</lombok.version>
<common-lang.version>3.9</common-lang.version>
<common-io.version>2.6</common-io.version>
<spring-security-jwt.version>1.0.11.RELEASE</spring-security-jwt.version>
<common-collection.version>3.2.2</common-collection.version>
<guava.version>30.1.1-jre</guava.version>
<jackson-annotations.version>2.9.10</jackson-annotations.version>
<bitwalker.version>1.19</bitwalker.version>
<easyexcel.version>2.2.6</easyexcel.version>
<httpcomponents.version>4.5.2</httpcomponents.version>
<weixin-java-binarywang.version>4.6.0</weixin-java-binarywang.version>
<pinyin4j.version>2.5.0</pinyin4j.version>
<mail.version>1.4.7</mail.version>
</properties>
<dependencies>
<!-- spring-boot-devtools 在部分情况可能导致 类型异常或者 linkerror -->
@ -37,7 +64,7 @@
<version>1.6.2</version>
</dependency>
<!-- Mysql驱动包 -->
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
@ -98,9 +125,61 @@
<artifactId>dysmsapi20170525</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<exclusions>
<exclusion>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</exclusion>
</exclusions>
<version>${easyexcel.version}</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-cp</artifactId>
<version>${weixin-java-binarywang.version}</version>
</dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-miniapp</artifactId>
<version>4.6.0</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
@ -117,15 +196,15 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>

@ -0,0 +1,25 @@
package cn.xluobo;
import cn.xluobo.config.properties.AddressProperties;
import cn.xluobo.config.properties.UploadConfigProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import java.net.UnknownHostException;
@SpringBootApplication
@EnableConfigurationProperties({UploadConfigProperties.class, AddressProperties.class})
@EnableScheduling
@EnableAsync
public class BusinessServerApplication {
public static void main(String[] args) throws UnknownHostException {
SpringApplication.run(BusinessServerApplication.class, args);
}
}

@ -0,0 +1,21 @@
package cn.xluobo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.net.UnknownHostException;
@SpringBootApplication(scanBasePackages = {"cn.xluobo","cn.jljiayu"})
@EnableTransactionManagement
@MapperScan(value = {"cn.xluobo.*.*.*.repo.mapper"})
public class OauthServerApplication {
public static void main(String[] args) throws UnknownHostException {
SpringApplication.run(OauthServerApplication.class, args);
}
}

@ -0,0 +1,19 @@
package cn.xluobo.business.ad.intention.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchAdIntentionOrder extends ReqPageBase implements Serializable {
private String orgName;
private String contact;
private String contactPhone;
private String accountOpen;
private String hadDeal;
}

@ -0,0 +1,29 @@
package cn.xluobo.business.ad.intention.enums;
/**
*
* 2022/3/21 12:23
*
* @author zhangby
**/
public enum DealResultTypeEnum {
OPEN_ACCOUNT("01", "开通试用账号"),
WAIT("02", "犹豫"),
NOT_TRIAL("03", "产品不适用"),
OTHER("99", "其他"),
;
private String value;
private String text;
DealResultTypeEnum(String value, String text) {
this.value = value;
this.text = text;
}
public String getValue() {
return value;
}
}

@ -0,0 +1,15 @@
package cn.xluobo.business.ad.intention.repo.mapper;
import cn.xluobo.business.ad.intention.repo.model.AdIntentionOrder;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2022-03-13 09:43:27
*/
public interface AdIntentionOrderMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper<AdIntentionOrder> {
}

@ -0,0 +1,5 @@
<?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="cn.xluobo.business.ad.intention.repo.mapper.AdIntentionOrderMapper">
</mapper>

@ -0,0 +1,109 @@
package cn.xluobo.business.ad.intention.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
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;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2022-03-13 09:43:27
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ad_intention_order")
public class AdIntentionOrder implements Serializable {
@TableId(value = "order_id", type = IdType.ASSIGN_ID)
private String orderId;
/**
*
*/
@TableField("org_name")
private String orgName;
/**
*
*/
@TableField("contact")
private String contact;
/**
*
*/
@TableField("contact_phone")
private String contactPhone;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
*/
@TableField("intention_memo")
private String intentionMemo;
/**
* 1 0
*/
@TableField("account_open")
private Integer accountOpen;
/**
* 1 0
*/
@TableField("had_deal")
private Integer hadDeal;
/**
*
*/
@TableField("deal_result_type")
private String dealResultType;
/**
*
*/
@TableField("deal_result")
private String dealResult;
/**
*
*/
@TableField("deal_time")
private Date dealTime;
/**
*
*/
@TableField("user_id")
private String userId;
/**
*
*/
@TableField("user_name")
private String userName;
/**
*
*/
@TableField("account_open_date")
private Date accountOpenDate;
}

@ -0,0 +1,15 @@
package cn.xluobo.business.ad.intention.service;
import cn.xluobo.business.ad.intention.repo.model.AdIntentionOrder;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2022-03-13 09:43:27
*/
public interface IAdIntentionOrderService extends com.baomidou.mybatisplus.extension.service.IService<AdIntentionOrder> {
}

@ -0,0 +1,20 @@
package cn.xluobo.business.ad.intention.service.impl;
import cn.xluobo.business.ad.intention.repo.mapper.AdIntentionOrderMapper;
import cn.xluobo.business.ad.intention.repo.model.AdIntentionOrder;
import cn.xluobo.business.ad.intention.service.IAdIntentionOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2022-03-13 09:43:27
*/
@Service
public class AdIntentionOrderServiceImpl extends ServiceImpl<AdIntentionOrderMapper, AdIntentionOrder> implements IAdIntentionOrderService {
}

@ -0,0 +1,71 @@
package cn.xluobo.business.enums;
/**
*
*/
public enum BusinessTableEnums {
SYS_USER("sys_user","系统用户"),
SYS_STAFF("sys_staff","员工表",true),
SYS_DEPT("sys_dept","部门",true),
SYS_TAG("sys_tag","标签",true),
SYS_RECEIPT_ACCOUNT("sys_receipt_account","机构收费账户",true),
SC_SCHOOL("sc_school","学校",true),
SC_ROOM("sc_room","教室",true),
SC_TEACHER("sc_teacher","教师",true),
SC_COURSE("sc_course","课程",true),
SC_COURSE_CLA("sc_course_cla","课程班级",true),
SC_STUDENT("sc_student","学生",true),
SC_COURSE_TYPE("sc_course_type","课程类型",true),
SC_ORDER("sc_order","订单",true),
SC_STUDENT_ACCOUNT("sc_student_account","学生余额账户",true),
SC_STUDENT_COURSE("sc_student_course","学生报读课程",true),
SC_STUDENT_COURSE_LOG("sc_student_course_log","学生日志",true),
STOCK_GOODS("stock_goods","商品信息",true),
STOCK_INFO("stock_info","库存信息",true),
WECHAT_CP_ACCOUNT("wechat_cp_account","企业应用信息",true),
WECHAT_CP_CONTACT("wechat_cp_contact","企业外部联系人",true),
WECHAT_CP_CONTACT_WAY("wechat_cp_contact_way","企业客户联系我",true),
WECHAT_CP_GROUP("wechat_cp_group","企业标签组",true),
WECHAT_CP_GROUP_TAG("wechat_cp_group_tag","企业标签",true),
WECHAT_CP_USER("wechat_cp_user","企业通讯录",true),
;
private String table;
private String tableName;
/**
* table
*/
private boolean isTenant = false;
BusinessTableEnums(String table, String tableName) {
this.table = table;
this.tableName = tableName;
}
BusinessTableEnums(String table, String tableName, boolean isTenant) {
this.table = table;
this.tableName = tableName;
this.isTenant = isTenant;
}
public String getTable() {
return table;
}
public String getTableName() {
return tableName;
}
public boolean isTenant() {
return isTenant;
}
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.repo.mapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountCourse;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface MkDiscountCourseMapper extends BaseMapper<MkDiscountCourse> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.repo.mapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDept;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface MkDiscountDeptMapper extends BaseMapper<MkDiscountDept> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.repo.mapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface MkDiscountDetailMapper extends BaseMapper<MkDiscountDetail> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.repo.mapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscount;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface MkDiscountMapper extends BaseMapper<MkDiscount> {
}

@ -0,0 +1,5 @@
<?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="cn.xluobo.business.mk.discount.repo.mapper.MkDiscountCourseMapper">
</mapper>

@ -0,0 +1,5 @@
<?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="cn.xluobo.business.mk.discount.repo.mapper.MkDiscountDeptMapper">
</mapper>

@ -0,0 +1,5 @@
<?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="cn.xluobo.business.mk.discount.repo.mapper.MkDiscountDetailMapper">
</mapper>

@ -0,0 +1,5 @@
<?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="cn.xluobo.business.mk.discount.repo.mapper.MkDiscountMapper">
</mapper>

@ -0,0 +1,103 @@
package cn.xluobo.business.mk.discount.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
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;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mk_discount")
public class MkDiscount implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "discount_id", type = IdType.ASSIGN_ID)
private Long discountId;
/**
*
*/
@TableField("tenant_id")
private String tenantId;
/**
*
*/
@TableField("activity_name")
private String activityName;
/**
* 1 2 3
*/
@TableField("discount_type")
private String discountType;
/**
*
*/
@TableField("begin_date")
private Date beginDate;
/**
*
*/
@TableField("end_date")
private Date endDate;
/**
*
*/
@TableField("enable")
private Integer enable;
/**
*
*/
@TableField("version")
private Integer version;
/**
*
*/
@TableField("create_user")
private String createUser;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
*/
@TableField("last_update_user")
private String lastUpdateUser;
/**
*
*/
@TableField("last_update_time")
private Date lastUpdateTime;
}

@ -0,0 +1,40 @@
package cn.xluobo.business.mk.discount.repo.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mk_discount_course")
public class MkDiscountCourse implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableField("discount_id")
private Long discountId;
/**
* -1
*/
@TableField("course_id")
private Long courseId;
}

@ -0,0 +1,40 @@
package cn.xluobo.business.mk.discount.repo.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mk_discount_dept")
public class MkDiscountDept implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableField("discount_id")
private Long discountId;
/**
* -1
*/
@TableField("dept_id")
private Long deptId;
}

@ -0,0 +1,55 @@
package cn.xluobo.business.mk.discount.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
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;
import java.math.BigDecimal;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("mk_discount_detail")
public class MkDiscountDetail implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "discount_detail_id", type = IdType.ASSIGN_ID)
private Long discountDetailId;
/**
*
*/
@TableField("discount_id")
private Long discountId;
/**
* /
*/
@TableField("meet_condition")
private BigDecimal meetCondition;
/**
* //
*/
@TableField("gift")
private BigDecimal gift;
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.service;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountCourse;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface IMkDiscountCourseService extends IService<MkDiscountCourse> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.service;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDept;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface IMkDiscountDeptService extends IService<MkDiscountDept> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.service;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDetail;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface IMkDiscountDetailService extends IService<MkDiscountDetail> {
}

@ -0,0 +1,16 @@
package cn.xluobo.business.mk.discount.service;
import cn.xluobo.business.mk.discount.repo.model.MkDiscount;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
public interface IMkDiscountService extends IService<MkDiscount> {
}

@ -0,0 +1,20 @@
package cn.xluobo.business.mk.discount.service.impl;
import cn.xluobo.business.mk.discount.repo.mapper.MkDiscountCourseMapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountCourse;
import cn.xluobo.business.mk.discount.service.IMkDiscountCourseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Service
public class MkDiscountCourseServiceImpl extends ServiceImpl<MkDiscountCourseMapper, MkDiscountCourse> implements IMkDiscountCourseService {
}

@ -0,0 +1,20 @@
package cn.xluobo.business.mk.discount.service.impl;
import cn.xluobo.business.mk.discount.repo.mapper.MkDiscountDeptMapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDept;
import cn.xluobo.business.mk.discount.service.IMkDiscountDeptService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Service
public class MkDiscountDeptServiceImpl extends ServiceImpl<MkDiscountDeptMapper, MkDiscountDept> implements IMkDiscountDeptService {
}

@ -0,0 +1,20 @@
package cn.xluobo.business.mk.discount.service.impl;
import cn.xluobo.business.mk.discount.repo.mapper.MkDiscountDetailMapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscountDetail;
import cn.xluobo.business.mk.discount.service.IMkDiscountDetailService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Service
public class MkDiscountDetailServiceImpl extends ServiceImpl<MkDiscountDetailMapper, MkDiscountDetail> implements IMkDiscountDetailService {
}

@ -0,0 +1,20 @@
package cn.xluobo.business.mk.discount.service.impl;
import cn.xluobo.business.mk.discount.repo.mapper.MkDiscountMapper;
import cn.xluobo.business.mk.discount.repo.model.MkDiscount;
import cn.xluobo.business.mk.discount.service.IMkDiscountService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-08-21
*/
@Service
public class MkDiscountServiceImpl extends ServiceImpl<MkDiscountMapper, MkDiscount> implements IMkDiscountService {
}

@ -0,0 +1,35 @@
package cn.xluobo.business.report.analysis.controller;
import cn.xluobo.business.report.analysis.domain.resp.RespMonthCourseOrderFee;
import cn.xluobo.business.report.analysis.service.AnalysisReportService;
import cn.xluobo.business.sc.order.domain.req.ReqReportMonthCourseIncome;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author zhangbaoyu
* @date Created in 2020/12/24 19:12
*/
@RestController
@RequestMapping("/api/report/analysis")
public class AnalysisReportController {
@Autowired
private AnalysisReportService analysisReportService;
/**
*
* @return
*/
@GetMapping("/monthCourseOrderFeeReport")
public APIResponse monthCourseOrderFeeReport(ReqReportMonthCourseIncome reqReportMonthCourseIncome) {
List<RespMonthCourseOrderFee> courseOrderFeeList = analysisReportService.monthCourseOrderFeeReport(reqReportMonthCourseIncome);
return APIResponse.toAPIResponse(courseOrderFeeList);
}
}

@ -0,0 +1,29 @@
package cn.xluobo.business.report.analysis.domain.resp;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/12/24 19:27
*/
@Data
public class RespMonthCourseOrderFee {
private Integer id;
private String month;
private Long courseId;
private String courseName;
private BigDecimal income;
private List<RespMonthCourseOrderFee> children;
}

@ -0,0 +1,99 @@
package cn.xluobo.business.report.analysis.service;
import cn.xluobo.business.report.analysis.domain.resp.RespMonthCourseOrderFee;
import cn.xluobo.business.sc.order.domain.req.ReqReportMonthCourseIncome;
import cn.xluobo.business.sc.order.domain.resp.RespReportMonthCourseIncome;
import cn.xluobo.business.sc.order.repo.mapper.OrderReportMapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @author zhangbaoyu
* @date Created in 2020/12/24 19:12
*/
@Service
public class AnalysisReportService {
@Autowired
private OrderReportMapper orderReportMapper;
/**
*
*
* @return
*/
public List<RespMonthCourseOrderFee> monthCourseOrderFeeReport(ReqReportMonthCourseIncome reqReportMonthCourseIncome) {
// 查询db 按月、课程 收入情况
List<RespReportMonthCourseIncome> monthCourseIncomeList = orderReportMapper.selectMonthCourseIncomeList(reqReportMonthCourseIncome);
// 月份对应数据
Map<String, List<RespReportMonthCourseIncome>> monthMap = Maps.newHashMap();
for (RespReportMonthCourseIncome respReportMonthCourseIncome : monthCourseIncomeList) {
String month = respReportMonthCourseIncome.getMonth();
if (monthMap.containsKey(month)) {
monthMap.get(month).add(respReportMonthCourseIncome);
} else {
ArrayList<RespReportMonthCourseIncome> incomeArrayList = Lists.newArrayList(respReportMonthCourseIncome);
monthMap.put(month, incomeArrayList);
}
}
// 返回结果 月份下 包含各课程收入
List<RespMonthCourseOrderFee> courseOrderFeeList = Lists.newArrayList();
monthMap.forEach((month, value) -> {
// 一个月份 各课程收入
List<RespMonthCourseOrderFee> childrenList = Lists.newArrayList();
BigDecimal totalFee = BigDecimal.ZERO;
for (int i = 0; i < value.size(); i++) {
RespReportMonthCourseIncome respReportMonthCourseIncome = value.get(i);
totalFee = totalFee.add(respReportMonthCourseIncome.getFee());
RespMonthCourseOrderFee item = new RespMonthCourseOrderFee();
item.setId(Integer.parseInt(month + (i + 1)));
item.setCourseId(respReportMonthCourseIncome.getCourseId());
item.setCourseName(respReportMonthCourseIncome.getCourseName());
item.setIncome(respReportMonthCourseIncome.getFee());
childrenList.add(item);
}
childrenList.sort((o1, o2) -> {
BigDecimal incomeBefore = o1.getIncome();
BigDecimal incomeAfter = o2.getIncome();
return incomeBefore.compareTo(incomeAfter);
});
// 月份 总收入
RespMonthCourseOrderFee orderFee = new RespMonthCourseOrderFee();
orderFee.setId(Integer.parseInt(month));
orderFee.setMonth(month);
orderFee.setIncome(totalFee);
orderFee.setChildren(childrenList);
// 单条记录
courseOrderFeeList.add(orderFee);
});
courseOrderFeeList.sort((o1, o2) -> {
int before = Integer.parseInt(o1.getMonth());
int after = Integer.parseInt(o2.getMonth());
return before- after;
});
return courseOrderFeeList;
}
}

@ -0,0 +1,32 @@
package cn.xluobo.business.report.dashboard.controller;
import cn.xluobo.business.report.dashboard.domain.resp.DashboardData;
import cn.xluobo.business.report.dashboard.service.DashboardService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author zhangbaoyu
* @date Created in 2020/10/18 15:31
*/
@RestController
@RequestMapping("/api/report/dashboard")
public class DashboardController {
@Autowired
private DashboardService dashboardService;
/**
*
* @return
*/
@GetMapping("/data")
public APIResponse dashboardData() {
DashboardData dashboardData = dashboardService.dashboardData();
return APIResponse.toAPIResponse(dashboardData);
}
}

@ -0,0 +1,58 @@
package cn.xluobo.business.report.dashboard.domain.resp;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author zhangbaoyu
* @date Created in 2020/10/18 15:35
*/
@Data
@Builder
public class DashboardData {
// 今日排课数量
private Integer todayClaTimeCnt;
// 今日已上课数量
private Integer completeTodayClaTimeCnt;
// 今日报名
private Integer todayOrderCnt;
// 本月报名
private Integer thisMonthOrderCnt;
// 今日上课实到课人次
private Integer todayRealAttendCnt;
// 今日上课应到人次
private Integer todayNeedAttendCnt;
// 今日应消课时
private BigDecimal todayNeedCostHour;
// 今日实消课时
private BigDecimal todayRealCostHour;
// 学员数量
private Integer studentCnt;
// 班级数量
private Integer claCnt;
// 课程数量
private Integer courseCnt;
// 欠费学员数量
private Integer arrearsStudentCnt;
// 按期缴费 即将过期人数
private Integer dateWillExpireCnt;
// 按课时缴费 即将过期 数量
private Integer hourWillExpireCnt;
}

@ -0,0 +1,91 @@
package cn.xluobo.business.report.dashboard.service;
import cn.xluobo.business.report.dashboard.domain.resp.DashboardData;
import cn.xluobo.business.sc.course.domain.req.time.ReqClaTimeCount;
import cn.xluobo.business.sc.course.repo.enums.ClaTimeAttendStatusEnums;
import cn.xluobo.business.sc.course.service.IScClaTimeAttendService;
import cn.xluobo.business.sc.course.service.IScClaTimeService;
import cn.xluobo.business.sc.course.service.IScCourseClaService;
import cn.xluobo.business.sc.course.service.IScCourseService;
import cn.xluobo.business.sc.order.enums.OrderTypeEnum;
import cn.xluobo.business.sc.order.service.IScOrderService;
import cn.xluobo.business.sc.student.service.IScStudentCourseService;
import cn.xluobo.business.sc.student.service.IScStudentService;
import org.joda.time.DateTime;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
/**
* @author zhangbaoyu
* @date Created in 2020/10/18 15:34
*/
@Service
@Transactional
public class DashboardService {
@Autowired
private IScCourseClaService claService;
@Autowired
private IScCourseService courseService;
@Autowired
private IScStudentService studentService;
@Autowired
private IScClaTimeAttendService attendService;
@Autowired
private IScOrderService orderService;
@Autowired
private IScClaTimeService claTimeService;
@Autowired
private IScStudentCourseService studentCourseService;
/**
*
*
* @return
*/
public DashboardData dashboardData() {
String todayDate = DateTime.now().toString("yyyy-MM-dd");
String thisMonthBegin = DateTime.now().withDayOfMonth(1).toString("yyyy-MM-dd");
String thisMonthEnd = DateTime.now().plusMonths(1).withDayOfMonth(1).minusDays(1).toString("yyyy-MM-dd");
int claCnt = claService.count();
int courseCnt = courseService.count();
int studentCnt = studentService.count();
ReqClaTimeCount reqClaTimeCount = ReqClaTimeCount.builder().beginDate(todayDate).endDate(todayDate).hadBegin(null).build();
Integer todayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount);
reqClaTimeCount.setHadBegin(true);
Integer completeTodayClaTimeCnt = claTimeService.claTimeCount(reqClaTimeCount);
Integer todayOrderCnt = orderService.orderCount(todayDate, todayDate, OrderTypeEnum.SIGN_UP.getOrderType());
Integer thisMonthOrderCnt = orderService.orderCount(thisMonthBegin, thisMonthEnd, OrderTypeEnum.SIGN_UP.getOrderType());
Integer todayNeedAttendCnt = attendService.getNeedAttendCount(todayDate, todayDate);
Integer todayRealAttendCnt = attendService.getAttendCount(todayDate, todayDate,
new String[]{ClaTimeAttendStatusEnums.AT_CLASS.getAttendStatus()});
BigDecimal todayNeedCostHour = attendService.getAttendCostHour(todayDate, todayDate, true);
BigDecimal todayRealCostHour = attendService.getAttendCostHour(todayDate, todayDate, false);
Integer arrearsStudentCnt = orderService.arrearsStudentCount();
Integer dateWillExpireCnt = studentCourseService.getWillExpireDateCount(10);
Integer hourWillExpireCnt = studentCourseService.getWillExpireHourCount(5);
return DashboardData.builder()
.todayClaTimeCnt(todayClaTimeCnt)
.completeTodayClaTimeCnt(completeTodayClaTimeCnt)
.todayOrderCnt(todayOrderCnt)
.thisMonthOrderCnt(thisMonthOrderCnt)
.todayRealAttendCnt(todayRealAttendCnt)
.todayNeedAttendCnt(todayNeedAttendCnt)
.todayNeedCostHour(todayNeedCostHour)
.todayRealCostHour(todayRealCostHour)
.studentCnt(studentCnt)
.claCnt(claCnt)
.courseCnt(courseCnt)
.arrearsStudentCnt(arrearsStudentCnt)
.dateWillExpireCnt(dateWillExpireCnt)
.hourWillExpireCnt(hourWillExpireCnt)
.build();
}
}

@ -0,0 +1,89 @@
package cn.xluobo.business.sc.base.controller;
import cn.xluobo.business.sc.base.domain.req.ReqRoomSelect;
import cn.xluobo.business.sc.base.domain.req.ReqSearchScRoom;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import cn.xluobo.business.sc.base.service.BusinessScRoomService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-09-23 07:36:54
*/
@RestController
@RequestMapping("/api/sc/room")
public class ScRoomController {
@Autowired
private BusinessScRoomService scRoomService;
/**
*
*
* @param reqSearchScRoom
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScRoom reqSearchScRoom) {
return scRoomService.searchList(reqSearchScRoom);
}
/**
* select
*
* @return
*/
@GetMapping("/list/select")
public APIResponse select(ReqRoomSelect roomSelect) {
return scRoomService.select(roomSelect);
}
/**
*
*
* @param roomId
* @return
*/
@GetMapping("/info/detailById/{roomId}")
public APIResponse detailById(@PathVariable("roomId") Long roomId) {
return scRoomService.detailById(roomId);
}
/**
*
*
* @param scRoom
* @return
*/
@PostMapping("/add/addScRoom")
public APIResponse addScRoom(@RequestBody ScRoom scRoom) {
return scRoomService.addScRoom(scRoom);
}
/**
*
*
* @param scRoom
* @return
*/
@PutMapping("/update/updateScRoom")
public APIResponse updateScRoom(@RequestBody ScRoom scRoom) {
return scRoomService.updateScRoom(scRoom);
}
/**
*
*
* @param roomIds
* @return
*/
@DeleteMapping("/delete/deleteById/{roomIds}")
public APIResponse deleteById(@PathVariable("roomIds") Long[] roomIds) {
return scRoomService.deleteById(roomIds);
}
}

@ -0,0 +1,89 @@
package cn.xluobo.business.sc.base.controller;
import cn.xluobo.business.sc.base.domain.req.ReqSchoolSelect;
import cn.xluobo.business.sc.base.domain.req.ReqSearchScSchool;
import cn.xluobo.business.sc.base.repo.model.ScSchool;
import cn.xluobo.business.sc.base.service.BusinessScSchoolService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:36
*/
@RestController
@RequestMapping("/api/sc/school")
public class ScSchoolController {
@Autowired
private BusinessScSchoolService scSchoolService;
/**
*
*
* @param reqSearchScSchool
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScSchool reqSearchScSchool) {
return scSchoolService.searchList(reqSearchScSchool);
}
/**
* select
*
* @return
*/
@GetMapping("/list/select")
public APIResponse select(ReqSchoolSelect schoolSelect) {
return scSchoolService.select(schoolSelect);
}
/**
*
*
* @param schoolId
* @return
*/
@GetMapping("/info/detailById/{schoolId}")
public APIResponse detailById(@PathVariable("schoolId") Long schoolId) {
return scSchoolService.detailById(schoolId);
}
/**
*
*
* @param scSchool
* @return
*/
@PostMapping("/add/addScSchool")
public APIResponse addScSchool(@RequestBody ScSchool scSchool) {
return scSchoolService.addScSchool(scSchool);
}
/**
*
*
* @param scSchool
* @return
*/
@PutMapping("/update/updateScSchool")
public APIResponse updateScSchool(@RequestBody ScSchool scSchool) {
return scSchoolService.updateScSchool(scSchool);
}
/**
*
*
* @param schoolIds
* @return
*/
@DeleteMapping("/delete/deleteById/{schoolIds}")
public APIResponse deleteById(@PathVariable("schoolIds") Long[] schoolIds) {
return scSchoolService.deleteById(schoolIds);
}
}

@ -0,0 +1,16 @@
package cn.xluobo.business.sc.base.domain.req;
import lombok.Data;
/**
* select
*
* @author zhangbaoyu
* @date Created in 2020-04-27 19:41
*/
@Data
public class ReqRoomSelect {
private String deptId;
}

@ -0,0 +1,20 @@
package cn.xluobo.business.sc.base.domain.req;
import lombok.Data;
/**
* select
*
* @author zhangbaoyu
* @date Created in 2020-04-27 19:41
*/
@Data
public class ReqSchoolSelect {
private String search;
private Integer maxRecord = 50;
private String schoolId;
}

@ -0,0 +1,17 @@
package cn.xluobo.business.sc.base.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScRoom extends ReqPageBase implements Serializable {
private Long deptId;
private String roomName;
private String memo;
}

@ -0,0 +1,17 @@
package cn.xluobo.business.sc.base.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScSchool extends ReqPageBase implements Serializable {
private String provinceCode;
private String cityCode;
private String schoolName;
}

@ -0,0 +1,16 @@
package cn.xluobo.business.sc.base.domain.resp;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020/9/24 09:27
*/
@Data
public class RespRoomInfo extends ScRoom {
private String deptName;
}

@ -0,0 +1,15 @@
package cn.xluobo.business.sc.base.domain.resp;
import lombok.Data;
/**
* select
*/
@Data
public class RespRoomSelect {
private Long roomId;
private String roomName;
}

@ -0,0 +1,25 @@
package cn.xluobo.business.sc.base.domain.resp;
import lombok.Data;
/**
* select
* @author zhangbaoyu
* @date Created in 2020-04-27 19:30
*/
@Data
public class RespSchoolSelect {
private Long schoolId;
private String schoolName;
private String provinceCode;
private String cityCode;
private String provinceName;
private String cityName;
}

@ -0,0 +1,40 @@
package cn.xluobo.business.sc.base.repo.mapper;
import cn.xluobo.business.sc.base.domain.req.ReqRoomSelect;
import cn.xluobo.business.sc.base.domain.req.ReqSearchScRoom;
import cn.xluobo.business.sc.base.domain.resp.RespRoomInfo;
import cn.xluobo.business.sc.base.domain.resp.RespRoomSelect;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-09-23 07:36:54
*/
public interface ScRoomMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper<ScRoom> {
/**
*
* @param reqSearchScRoom
* @param page
* @return
*/
List<RespRoomInfo> selectList(@Param("reqSearchScRoom")ReqSearchScRoom reqSearchScRoom, @Param("page")Page page);
/**
*
*
* @param roomSelect
* @return
*/
List<RespRoomSelect> selectForSelect(ReqRoomSelect roomSelect);
}

@ -0,0 +1,27 @@
package cn.xluobo.business.sc.base.repo.mapper;
import cn.xluobo.business.sc.base.domain.req.ReqSchoolSelect;
import cn.xluobo.business.sc.base.domain.resp.RespSchoolSelect;
import cn.xluobo.business.sc.base.repo.model.ScSchool;
import java.util.List;
/**
* <p>
* Mapper
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:36
*/
public interface ScSchoolMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper<ScSchool> {
/**
*
*
* @param schoolSelect
* @return
*/
List<RespSchoolSelect> selectForSelect(ReqSchoolSelect schoolSelect);
}

@ -0,0 +1,30 @@
<?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="cn.xluobo.business.sc.base.repo.mapper.ScRoomMapper">
<select id="selectList" resultType="cn.xluobo.business.sc.base.domain.resp.RespRoomInfo">
select a.*,b.dept_name
from sc_room a left join sys_dept b on a.dept_id=b.dept_id
where 1=1
<if test="reqSearchScRoom.deptId != null and reqSearchScRoom.deptId != ''">
and a.dept_id=#{reqSearchScRoom.deptId}
</if>
<if test="reqSearchScRoom.roomName != null and reqSearchScRoom.roomName != ''">
and a.room_name like concat('%',#{reqSearchScRoom.roomName},'%')
</if>
<if test="reqSearchScRoom.memo != null and reqSearchScRoom.memo != ''">
and a.memo like concat('%',#{reqSearchScRoom.memo},'%')
</if>
</select>
<select id="selectForSelect" resultType="cn.xluobo.business.sc.base.domain.resp.RespRoomSelect">
select
a.room_id,
concat(a.room_name,'(',b.dept_name,')') as room_name
from sc_room a left join sys_dept b on a.dept_id=b.dept_id
where 1=1
<if test="deptId != null and deptId != ''">
and a.dept_id=#{deptId}
</if>
order by a.create_time desc
</select>
</mapper>

@ -0,0 +1,19 @@
<?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="cn.xluobo.business.sc.base.repo.mapper.ScSchoolMapper">
<select id="selectForSelect" resultType="cn.xluobo.business.sc.base.domain.resp.RespSchoolSelect">
select school_id,school_name,province_code,city_code,
fcn_dict_name(province_code,'province_code') as province_name,
fcn_dict_name(city_code,'city_code') as city_name
from sc_school
where 1=1
<if test="search != null and search != ''">
and school_name like concat('%',#{search} ,'%')
</if>
<if test="schoolId != null and schoolId != ''">
and school_id = #{schoolId}
</if>
limit 0,#{maxRecord}
</select>
</mapper>

@ -0,0 +1,82 @@
package cn.xluobo.business.sc.base.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
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;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-09-23 07:36:54
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sc_room")
public class ScRoom implements Serializable {
/**
*
*/
@TableId(value = "room_id", type = IdType.ASSIGN_ID)
private Long roomId;
/**
*
*/
@TableField("tenant_id")
private String tenantId;
/**
*
*/
@TableField("dept_id")
private Long deptId;
/**
*
*/
@TableField("room_name")
private String roomName;
/**
*
*/
@TableField("memo")
private String memo;
/**
*
*/
@TableField("create_user")
private Long createUser;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
*/
@TableField("last_update_user")
private Long lastUpdateUser;
/**
*
*/
@TableField("last_update_time")
private Date lastUpdateTime;
}

@ -0,0 +1,79 @@
package cn.xluobo.business.sc.base.repo.model;
import com.baomidou.mybatisplus.annotation.IdType;
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;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:36
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("sc_school")
public class ScSchool implements Serializable {
/**
* id
*/
@TableId(value = "school_id", type = IdType.AUTO)
private Long schoolId;
/**
*
*/
@TableField("tenant_id")
private String tenantId;
/**
*
*/
@TableField("province_code")
private String provinceCode;
/**
* 0431
*/
@TableField("city_code")
private String cityCode;
@TableField("school_name")
private String schoolName;
/**
*
*/
@TableField("create_user")
private Long createUser;
/**
*
*/
@TableField("create_time")
private Date createTime;
/**
*
*/
@TableField("last_update_user")
private Long lastUpdateUser;
/**
*
*/
@TableField("last_update_time")
private Date lastUpdateTime;
}

@ -0,0 +1,142 @@
package cn.xluobo.business.sc.base.service;
import cn.xluobo.business.sc.base.domain.req.ReqRoomSelect;
import cn.xluobo.business.sc.base.domain.req.ReqSearchScRoom;
import cn.xluobo.business.sc.base.domain.resp.RespRoomInfo;
import cn.xluobo.business.sc.base.domain.resp.RespRoomSelect;
import cn.xluobo.business.sc.base.repo.mapper.ScRoomMapper;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import cn.xluobo.business.sc.course.repo.model.ScClaTime;
import cn.xluobo.business.sc.course.service.IScClaTimeService;
import cn.xluobo.core.api.APIResponse;
import cn.xluobo.core.api.ApiResEnums;
import cn.xluobo.core.page.RespPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:24
*/
@Service
@Transactional
public class BusinessScRoomService {
@Autowired
private IScRoomService scRoomService;
@Autowired
private ScRoomMapper roomMapper;
@Autowired
private IScClaTimeService claTimeService;
/**
*
*
* @param reqSearchScRoom
* @return
*/
public APIResponse searchList(ReqSearchScRoom reqSearchScRoom) {
RespPage<RespRoomInfo> page = new RespPage<>(reqSearchScRoom.getPageNum(), reqSearchScRoom.getPageSize());
List<RespRoomInfo> roomSelectList = roomMapper.selectList(reqSearchScRoom, page);
page.setRows(roomSelectList);
return APIResponse.toAPIResponse(page);
}
/**
* select
*
* @return
*/
public APIResponse select(ReqRoomSelect roomSelect) {
List<RespRoomSelect> list = scRoomService.selectRoomSelect(roomSelect);
return APIResponse.toAPIResponse(list);
}
/**
*
*
* @param roomId
* @return
*/
public APIResponse detailById(Long roomId) {
if (null == roomId) {
return APIResponse.toAPIResponse(null);
}
ScRoom detailInfo = scRoomService.getById(roomId);
return APIResponse.toAPIResponse(detailInfo);
}
/**
*
*
* @param scRoom
* @return
*/
public APIResponse addScRoom(ScRoom scRoom) {
LoginUser loginUser = SecurityUtils.getLoginUser();
scRoom.setCreateUser(loginUser.getUserId());
boolean addScRoom = scRoomService.save(scRoom);
if (addScRoom) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
/**
*
*
* @param scRoom
* @return
*/
public APIResponse updateScRoom(ScRoom scRoom) {
if (null == scRoom.getRoomId()) {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
LoginUser loginUser = SecurityUtils.getLoginUser();
scRoom.setLastUpdateUser(loginUser.getUserId());
scRoom.setLastUpdateTime(new Date());
boolean updateScRoom = scRoomService.updateById(scRoom);
if (updateScRoom) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
/**
*
*
* @param roomIds
* @return
*/
public APIResponse deleteById(Long[] roomIds) {
if (null == roomIds || roomIds.length == 0) {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
// 教室有 排课未上课 不允许删除
QueryWrapper<ScClaTime> qw = new QueryWrapper<>();
qw.in("room_id", roomIds);
qw.eq("status", "1");
int unBeginClaTimeCount = claTimeService.count(qw);
if (unBeginClaTimeCount != 0) {
return APIResponse.toExceptionResponse("该教室有'"+unBeginClaTimeCount+"'待上课的排课,无法删除教室");
}
boolean deleteScRoom = scRoomService.removeByIds(Arrays.asList(roomIds));
if (deleteScRoom) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
}

@ -0,0 +1,134 @@
package cn.xluobo.business.sc.base.service;
import cn.xluobo.business.sc.base.domain.req.ReqSchoolSelect;
import cn.xluobo.business.sc.base.domain.req.ReqSearchScSchool;
import cn.xluobo.business.sc.base.domain.resp.RespSchoolSelect;
import cn.xluobo.business.sc.base.repo.model.ScSchool;
import cn.xluobo.core.api.APIResponse;
import cn.xluobo.core.api.ApiResEnums;
import cn.xluobo.core.page.RespPage;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:24
*/
@Service
@Transactional
public class BusinessScSchoolService {
@Autowired
private IScSchoolService scSchoolService;
/**
*
*
* @param reqSearchScSchool
* @return
*/
public APIResponse searchList(ReqSearchScSchool reqSearchScSchool) {
QueryWrapper qw = new QueryWrapper();
if(StringUtils.isNotEmpty(reqSearchScSchool.getProvinceCode())){
qw.eq("province_code",reqSearchScSchool.getProvinceCode());
}
if(StringUtils.isNotEmpty(reqSearchScSchool.getCityCode())){
qw.eq("city_code",reqSearchScSchool.getCityCode());
}
if(StringUtils.isNotEmpty(reqSearchScSchool.getSchoolName())){
qw.like("school_name",reqSearchScSchool.getSchoolName());
}
RespPage<ScSchool> page = new RespPage(reqSearchScSchool.getPageNum(), reqSearchScSchool.getPageSize());
RespPage<ScSchool> listPage = scSchoolService.page(page, qw);
return APIResponse.toAPIResponse(listPage);
}
/**
* select
*
* @return
*/
public APIResponse select(ReqSchoolSelect schoolSelect) {
List<RespSchoolSelect> list = scSchoolService.selectSchoolSelect(schoolSelect);
return APIResponse.toAPIResponse(list);
}
/**
*
*
* @param schoolId
* @return
*/
public APIResponse detailById(Long schoolId) {
if (null == schoolId) {
return APIResponse.toAPIResponse(null);
}
ScSchool detailInfo = scSchoolService.getById(schoolId);
return APIResponse.toAPIResponse(detailInfo);
}
/**
*
*
* @param scSchool
* @return
*/
public APIResponse addScSchool(ScSchool scSchool) {
LoginUser loginUser = SecurityUtils.getLoginUser();
scSchool.setCreateUser(loginUser.getUserId());
boolean addScSchool = scSchoolService.save(scSchool);
if (addScSchool) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
/**
*
*
* @param scSchool
* @return
*/
public APIResponse updateScSchool(ScSchool scSchool) {
if (null == scSchool.getSchoolId()) {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
LoginUser loginUser = SecurityUtils.getLoginUser();
scSchool.setLastUpdateUser(loginUser.getUserId());
scSchool.setLastUpdateTime(new Date());
boolean updateScSchool = scSchoolService.updateById(scSchool);
if (updateScSchool) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
/**
*
*
* @param schoolIds
* @return
*/
public APIResponse deleteById(Long[] schoolIds) {
if (null == schoolIds || schoolIds.length == 0) {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
boolean deleteScSchool = scSchoolService.removeByIds(Arrays.asList(schoolIds));
if (deleteScSchool) {
return APIResponse.toOkResponse();
} else {
return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE);
}
}
}

@ -0,0 +1,25 @@
package cn.xluobo.business.sc.base.service;
import cn.xluobo.business.sc.base.domain.req.ReqRoomSelect;
import cn.xluobo.business.sc.base.domain.resp.RespRoomSelect;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-09-23 07:36:54
*/
public interface IScRoomService extends com.baomidou.mybatisplus.extension.service.IService<ScRoom> {
/**
* select
* @param roomSelect
* @return
*/
List<RespRoomSelect> selectRoomSelect(ReqRoomSelect roomSelect);
}

@ -0,0 +1,34 @@
package cn.xluobo.business.sc.base.service;
import cn.xluobo.business.sc.base.domain.req.ReqSchoolSelect;
import cn.xluobo.business.sc.base.domain.resp.RespSchoolSelect;
import cn.xluobo.business.sc.base.repo.model.ScSchool;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:36
*/
public interface IScSchoolService extends com.baomidou.mybatisplus.extension.service.IService<ScSchool> {
/**
* select
*
* @param schoolSelect
* @return
*/
List<RespSchoolSelect> selectSchoolSelect(ReqSchoolSelect schoolSelect);
/**
* ,
*
* @param schoolName
* @return
*/
Long getSchoolId(String schoolName);
}

@ -0,0 +1,28 @@
package cn.xluobo.business.sc.base.service.impl;
import cn.xluobo.business.sc.base.domain.req.ReqRoomSelect;
import cn.xluobo.business.sc.base.domain.resp.RespRoomSelect;
import cn.xluobo.business.sc.base.repo.mapper.ScRoomMapper;
import cn.xluobo.business.sc.base.repo.model.ScRoom;
import cn.xluobo.business.sc.base.service.IScRoomService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-09-23 07:36:54
*/
@Service
public class ScRoomServiceImpl extends ServiceImpl<ScRoomMapper, ScRoom> implements IScRoomService {
@Override
public List<RespRoomSelect> selectRoomSelect(ReqRoomSelect roomSelect) {
return baseMapper.selectForSelect(roomSelect);
}
}

@ -0,0 +1,48 @@
package cn.xluobo.business.sc.base.service.impl;
import cn.xluobo.business.sc.base.domain.req.ReqSchoolSelect;
import cn.xluobo.business.sc.base.domain.resp.RespSchoolSelect;
import cn.xluobo.business.sc.base.repo.mapper.ScSchoolMapper;
import cn.xluobo.business.sc.base.repo.model.ScSchool;
import cn.xluobo.business.sc.base.service.IScSchoolService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:36
*/
@Service
public class ScSchoolServiceImpl extends ServiceImpl<ScSchoolMapper, ScSchool> implements IScSchoolService {
@Override
public List<RespSchoolSelect> selectSchoolSelect(ReqSchoolSelect schoolSelect) {
return baseMapper.selectForSelect(schoolSelect);
}
@Override
public Long getSchoolId(String schoolName) {
if(StringUtils.isNotEmpty(schoolName)) {
QueryWrapper<ScSchool> qw = new QueryWrapper<>();
qw.eq("school_name", schoolName);
List<ScSchool> list = this.list(qw);
if(null != list && list.size() >0 ){
return list.get(0).getSchoolId();
} else {
ScSchool scSchool = new ScSchool();
scSchool.setSchoolName(schoolName);
this.save(scSchool);
return scSchool.getSchoolId();
}
}
return null;
}
}

@ -0,0 +1,91 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.time.ReqSearchScClaTimeAttend;
import cn.xluobo.business.sc.course.domain.resp.time.RespClaTimeAttend;
import cn.xluobo.business.sc.course.repo.model.ScClaTimeAttend;
import cn.xluobo.business.sc.course.service.BusinessScClaTimeAttendService;
import cn.xluobo.core.api.APIResponse;
import cn.xluobo.core.page.RespPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-09-30 02:33:26
*/
@RestController
@RequestMapping("/api/sc/cla/time/attend")
public class ScClaTimeAttendController {
@Autowired
private BusinessScClaTimeAttendService scClaTimeAttendService;
/**
*
*
* @param reqSearchScClaTimeAttend
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScClaTimeAttend reqSearchScClaTimeAttend) {
RespPage<RespClaTimeAttend> respPage = scClaTimeAttendService.searchList(reqSearchScClaTimeAttend);
return APIResponse.toAPIResponse(respPage);
}
/**
*
* @param courseTimeId
* @return
*/
@GetMapping("/info/hadClaTimeAttendDetail/{courseTimeId}")
public APIResponse hadClaTimeAttendDetail(@PathVariable("courseTimeId") Long courseTimeId) {
return scClaTimeAttendService.hadClaTimeAttendDetail(courseTimeId);
}
/**
*
*
* @param attendId
* @return
*/
// @GetMapping("/info/detailById/{attendId}")
public APIResponse detailById(@PathVariable("attendId") Long attendId) {
return scClaTimeAttendService.detailById(attendId);
}
/**
*
*
* @param scClaTimeAttend
* @return
*/
// @PostMapping("/add/addScClaTimeAttend")
public APIResponse addScClaTimeAttend(@RequestBody ScClaTimeAttend scClaTimeAttend) {
return scClaTimeAttendService.addScClaTimeAttend(scClaTimeAttend);
}
/**
*
*
* @param scClaTimeAttend
* @return
*/
// @PutMapping("/update/updateScClaTimeAttend")
public APIResponse updateScClaTimeAttend(@RequestBody ScClaTimeAttend scClaTimeAttend) {
return scClaTimeAttendService.updateScClaTimeAttend(scClaTimeAttend);
}
/**
*
*
* @param attendIds
* @return
*/
// @DeleteMapping("/delete/deleteById/{attendIds}")
public APIResponse deleteById(@PathVariable("attendIds") Long[] attendIds) {
return scClaTimeAttendService.deleteById(attendIds);
}
}

@ -0,0 +1,125 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.time.ReqSearchClaTime;
import cn.xluobo.business.sc.course.domain.resp.time.RespBusinessClaTimeCalendar;
import cn.xluobo.business.sc.course.domain.resp.time.RespClaTime;
import cn.xluobo.business.sc.course.domain.resp.time.RespClaTimeCalendar;
import cn.xluobo.business.sc.course.repo.model.ScClaTime;
import cn.xluobo.business.sc.course.service.BusinessClaTimeService;
import cn.xluobo.business.sc.student.domain.req.ReqClaTimeAttend;
import cn.xluobo.core.api.APIResponse;
import cn.xluobo.core.page.RespPage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author zhangbaoyu
* @date Created in 2020/9/18 14:40
*/
@RestController
@RequestMapping("/api/sc/cla/time")
public class ScClaTimeController {
@Autowired
private BusinessClaTimeService claTimeService;
/**
*
*
* @param reqSearchClaTime
* @return {@link RespBusinessClaTimeCalendar}
*/
@GetMapping("/list/searchListForCalendar")
public APIResponse searchListForCalendar(ReqSearchClaTime reqSearchClaTime) {
return claTimeService.searchListForCalendar(reqSearchClaTime);
}
/**
*
*
* @param reqSearchClaTime
* @return
*/
@GetMapping("/list/searchRecentDayTimeList")
public APIResponse searchRecentDayTimeList(ReqSearchClaTime reqSearchClaTime) {
List<RespClaTimeCalendar> respClaTimeList = claTimeService.searchRecentDayTimeList(reqSearchClaTime);
return APIResponse.toAPIResponse(respClaTimeList);
}
/**
*
*
* @param reqSearchClaTime
* @return
*/
@GetMapping("/list/selectListForAttend")
public APIResponse selectListForAttend(ReqSearchClaTime reqSearchClaTime) {
RespPage<RespClaTime> respPage = claTimeService.selectListForAttend(reqSearchClaTime);
return APIResponse.toAPIResponse(respPage);
}
/**
*
*
* @param scClaTime
* @return
*/
@PostMapping("/add/addScClaTime")
public APIResponse addScClaTime(@RequestBody ScClaTime scClaTime) {
return claTimeService.addClaTime(scClaTime);
}
/**
*
*
* @param courseTimeId
* @return
*/
@GetMapping("/info/detailById/{courseTimeId}")
public APIResponse detailById(@PathVariable("courseTimeId") Long courseTimeId) {
return claTimeService.detailById(courseTimeId);
}
/**
*
*
* @param scClaTime
* @return
*/
@PutMapping("/update/updateScClaTime")
public APIResponse updateScClaTime(@RequestBody ScClaTime scClaTime) {
return claTimeService.updateClaTime(scClaTime);
}
/**
*
*
* @param courseTimeId
* @return
*/
@DeleteMapping("/delete/deleteById/{courseTimeId}")
public APIResponse deleteById(@PathVariable("courseTimeId") Long courseTimeId) {
return claTimeService.deleteById(courseTimeId);
}
/**
*
* @param reqClaTimeAttend
* @return
*/
@PostMapping("/update/changeHadClaTimeAttend")
public APIResponse changeHadClaTimeAttend(@RequestBody ReqClaTimeAttend reqClaTimeAttend) {
return claTimeService.changeHadClaTimeAttend(reqClaTimeAttend);
}
/**
*
* @return
*/
@DeleteMapping("/delete/deleteHadClaTimeAttend/{courseTimeId}")
public APIResponse deleteHadClaTimeAttend(@PathVariable("courseTimeId") Long courseTimeId) {
return claTimeService.deleteHadClaTimeAttend(courseTimeId);
}
}

@ -0,0 +1,79 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.time.ReqSearchScClaTimeRule;
import cn.xluobo.business.sc.course.repo.model.ScClaTimeRule;
import cn.xluobo.business.sc.course.service.BusinessClaTimeRuleService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-09-18 04:18:54
*/
@RestController
@RequestMapping("/api/sc/cla/time/rule")
public class ScClaTimeRuleController {
@Autowired
private BusinessClaTimeRuleService scClaTimeRuleService;
/**
*
*
* @param reqSearchScClaTimeRule
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScClaTimeRule reqSearchScClaTimeRule) {
return scClaTimeRuleService.searchList(reqSearchScClaTimeRule);
}
/**
*
*
* @param ruleId
* @return
*/
@GetMapping("/info/detailById/{ruleId}")
public APIResponse detailById(@PathVariable("ruleId") Long ruleId) {
return scClaTimeRuleService.detailById(ruleId);
}
/**
*
*
* @param scClaTimeRule
* @return
*/
@PostMapping("/add/addScClaTimeRule")
public APIResponse addScClaTimeRule(@RequestBody ScClaTimeRule scClaTimeRule) {
return scClaTimeRuleService.addClaTimeRule(scClaTimeRule);
}
/**
*
*
* @param scClaTimeRule
* @return
*/
@PutMapping("/update/updateScClaTimeRule")
public APIResponse updateScClaTimeRule(@RequestBody ScClaTimeRule scClaTimeRule) {
return scClaTimeRuleService.updateClaTimeRule(scClaTimeRule);
}
/**
*
*
* @param ruleId
* @return
*/
@DeleteMapping("/delete/deleteById/{ruleId}")
public APIResponse deleteById(@PathVariable("ruleId") Long ruleId) {
return scClaTimeRuleService.deleteById(ruleId);
}
}

@ -0,0 +1,94 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.ReqAddScCourseCla;
import cn.xluobo.business.sc.course.domain.req.ReqSearchScCourseCla;
import cn.xluobo.business.sc.course.domain.resp.cla.RespClaAllDetailInfo;
import cn.xluobo.business.sc.course.repo.model.ScCourseCla;
import cn.xluobo.business.sc.course.service.BusinessScCourseClaService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-03-17 01:11:06
*/
@RestController
@RequestMapping("/api/sc/course/cla")
public class ScCourseClaController {
@Autowired
private BusinessScCourseClaService scCourseClaService;
/**
*
*
* @param reqSearchScCourseCla
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScCourseCla reqSearchScCourseCla) {
return scCourseClaService.searchList(reqSearchScCourseCla);
}
/**
*
*
* @param claId
* @return
*/
@GetMapping("/info/detailById/{claId}")
public APIResponse detailById(@PathVariable("claId") Long claId) {
return scCourseClaService.detailById(claId);
}
/**
*
*
*
* @param claId
* @return
*/
@GetMapping("/info/allDetailInfoById/{claId}")
public APIResponse allDetailInfoById(@PathVariable("claId") Long claId) {
RespClaAllDetailInfo allDetailInfo = scCourseClaService.allDetailInfoById(claId);
return APIResponse.toAPIResponse(allDetailInfo);
}
/**
*
*
* @param scCourseCla
* @return
*/
@PostMapping("/add/addScCourseCla")
public APIResponse addScCourseCla(@RequestBody ReqAddScCourseCla scCourseCla) {
return scCourseClaService.addScCourseCla(scCourseCla);
}
/**
*
*
* @param scCourseCla
* @return
*/
@PutMapping("/update/updateScCourseCla")
public APIResponse updateScCourseCla(@RequestBody ScCourseCla scCourseCla) {
return scCourseClaService.updateScCourseCla(scCourseCla);
}
/**
*
*
* @param claIds
* @return
*/
@DeleteMapping("/delete/deleteById/{claIds}")
public APIResponse deleteById(@PathVariable("claIds") Long[] claIds) {
return scCourseClaService.deleteById(claIds);
}
}

@ -0,0 +1,155 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.ReqBusinessOrderCourseDetail;
import cn.xluobo.business.sc.course.domain.req.ReqSearchScCourse;
import cn.xluobo.business.sc.course.domain.req.ReqSelect;
import cn.xluobo.business.sc.course.domain.req.course.ReqAddScCourse;
import cn.xluobo.business.sc.course.domain.req.course.ReqChangeScCourse;
import cn.xluobo.business.sc.course.repo.model.ScCourse;
import cn.xluobo.business.sc.course.service.BusinessScCourseService;
import cn.xluobo.business.sc.course.service.IScCourseService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-03-17 11:25:55
*/
@RestController
@RequestMapping("/api/sc/course")
public class ScCourseController {
@Autowired
private BusinessScCourseService scCourseService;
@Autowired
private IScCourseService courseService;
/**
*
*
* @param reqSearchScCourse
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScCourse reqSearchScCourse) {
return scCourseService.searchList(reqSearchScCourse);
}
/**
*
*
*
* @param reqSearchScCourse
* @return
*/
@GetMapping("/list/selectCourseListWithStudentCourse")
public APIResponse selectCourseListWithStudentCourse(ReqSearchScCourse reqSearchScCourse) {
return scCourseService.selectCourseListWithStudentCourse(reqSearchScCourse);
}
/**
* select
*
* @return
*/
@GetMapping("/list/select")
public APIResponse select(ReqSelect reqSelect) {
return scCourseService.select(reqSelect);
}
/**
*
*
* @param courseId
* @return
*/
@GetMapping("/info/detailById/{courseId}")
public APIResponse detailById(@PathVariable("courseId") Long courseId) {
return scCourseService.detailById(courseId);
}
/**
*
*
* @param reqAddScCourse
* @return
*/
@PostMapping("/add/addScCourse")
public APIResponse addScCourse(@RequestBody ReqAddScCourse reqAddScCourse) {
return scCourseService.addScCourse(reqAddScCourse);
}
/**
*
*
* @param reqChangeScCourse
* @return
*/
@PutMapping("/update/updateScCourse")
public APIResponse updateScCourse(@RequestBody ReqChangeScCourse reqChangeScCourse) {
return scCourseService.updateScCourse(reqChangeScCourse);
}
/**
*
*
* @param courseIds
* @return
*/
@DeleteMapping("/delete/deleteById/{courseIds}")
public APIResponse deleteById(@PathVariable("courseIds") List<Long> courseIds) {
return scCourseService.deleteById(courseIds);
}
/**
*
*
* @param scCourse
* @return
*/
@PutMapping("/update/changeCourseSale")
public APIResponse changeCourseSale(@RequestBody ScCourse scCourse) {
return scCourseService.changeCourseSale(scCourse);
}
/**
*
*
* @param reqSearchScCourse
*/
@GetMapping("/export/exportCourse")
public APIResponse exportCourse(ReqSearchScCourse reqSearchScCourse) {
return scCourseService.exportCourse(reqSearchScCourse);
}
/**
*
*
*
* @param orderCourseDetail
* @return
*/
@GetMapping("/info/orderCourseDetail")
public APIResponse orderCourseDetail(ReqBusinessOrderCourseDetail orderCourseDetail) {
return scCourseService.orderCourseDetail(orderCourseDetail);
}
/**
*
*
* @param orderCourseDetail
* @return
*/
@GetMapping("/info/studentCanSignUpCourse")
public APIResponse studentCanSignUpCourse(ReqBusinessOrderCourseDetail orderCourseDetail) {
return scCourseService.studentCanSignUpCourse(orderCourseDetail);
}
}

@ -0,0 +1,89 @@
package cn.xluobo.business.sc.course.controller;
import cn.xluobo.business.sc.course.domain.req.ReqSearchScCourseType;
import cn.xluobo.business.sc.course.repo.model.ScCourseType;
import cn.xluobo.business.sc.course.service.BusinessScCourseTypeService;
import cn.xluobo.core.api.APIResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* Controller
* </p>
*
* @author zhangby
* @since 2020-07-09 08:10:25
*/
@RestController
@RequestMapping("/api/sc/course/type")
public class ScCourseTypeController {
@Autowired
private BusinessScCourseTypeService scCourseTypeService;
/**
*
*
* @param reqSearchScCourseType
* @return
*/
@GetMapping("/list/searchList")
public APIResponse searchList(ReqSearchScCourseType reqSearchScCourseType) {
return scCourseTypeService.searchList(reqSearchScCourseType);
}
/**
* select
*
* @param reqSearchScCourseType
* @return
*/
@GetMapping("/list/select")
public APIResponse select(ReqSearchScCourseType reqSearchScCourseType) {
return scCourseTypeService.select(reqSearchScCourseType);
}
/**
*
*
* @param courseTypeId
* @return
*/
@GetMapping("/info/detailById/{courseTypeId}")
public APIResponse detailById(@PathVariable("courseTypeId") Long courseTypeId) {
return scCourseTypeService.detailById(courseTypeId);
}
/**
*
*
* @param scCourseType
* @return
*/
@PostMapping("/add/addScCourseType")
public APIResponse addScCourseType(@RequestBody ScCourseType scCourseType) {
return scCourseTypeService.addScCourseType(scCourseType);
}
/**
*
*
* @param scCourseType
* @return
*/
@PutMapping("/update/updateScCourseType")
public APIResponse updateScCourseType(@RequestBody ScCourseType scCourseType) {
return scCourseTypeService.updateScCourseType(scCourseType);
}
/**
*
*
* @param courseTypeIds
* @return
*/
@DeleteMapping("/delete/deleteById/{courseTypeIds}")
public APIResponse deleteById(@PathVariable("courseTypeIds") Long[] courseTypeIds) {
return scCourseTypeService.deleteById(courseTypeIds);
}
}

@ -0,0 +1,66 @@
package cn.xluobo.business.sc.course.domain.export;
import cn.xluobo.business.tool.export.domain.ExportBaseBean;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @author zhangbaoyu
* @date Created in 2020/7/29 11:18
*/
@Data
@ExcelIgnoreUnannotated
public class ExpCourse extends ExportBaseBean {
private Long courseId;
private Long chargeId;
@ExcelProperty("课程名称")
private String courseName;
@ExcelProperty("课程类型")
private String courseTypeName;
@ExcelProperty("授课模式")
private String teachingMode;
@ExcelProperty("开班数")
private Integer claCount;
@ExcelProperty("创建时间")
private Date createTime;
@ExcelProperty("课程状态")
private String sale;
@ExcelProperty("课程简介")
private String courseIntro;
@ExcelProperty("开课校区")
private String departName;
@ExcelProperty("收费模式")
private String chargeTypeName;
private String chargeType;
private String dateUnit;
@ExcelProperty("时间周期")
private String dateUnitName;
@ExcelProperty("数量")
private BigDecimal count;
@ExcelProperty("总价")
private BigDecimal totalFee;
@Override
public String getPrimaryId() {
return String.valueOf(courseId);
}
}

@ -0,0 +1,12 @@
package cn.xluobo.business.sc.course.domain.export;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020/7/29 11:26
*/
@Data
public class ExpCourseCharge {
}

@ -0,0 +1,63 @@
package cn.xluobo.business.sc.course.domain.req;
import cn.xluobo.business.sc.course.repo.model.ScCourseCla;
import com.ruoyi.common.core.domain.model.LoginUser;
import lombok.Data;
import java.math.BigDecimal;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020-03-23 13:53
*/
@Data
public class ReqAddScCourseCla {
private Long courseId;
private Long departId;
private Long staffId;
private String claName;
private String claColor;
private Integer capacity;
private String recruitStatus;
private BigDecimal everyStuLoseHour;
private String openDate;
private String closeDate;
private String memo;
/**
*
*
* @param loginUser
* @return
*/
public ScCourseCla getScCourseCla(LoginUser loginUser) {
ScCourseCla cla = new ScCourseCla();
cla.setCourseId(courseId);
cla.setDepartId(departId);
cla.setStaffId(staffId);
cla.setClaName(claName);
cla.setClaColor(claColor);
cla.setCapacity(capacity);
cla.setRecruitStatus(recruitStatus);
cla.setEveryStuLoseHour(everyStuLoseHour);
cla.setEveryTeaGetHour(everyStuLoseHour);
cla.setOpenDate(openDate);
cla.setCloseDate(closeDate);
cla.setMemo(memo);
cla.setCreateUser(loginUser.getUserId());
return cla;
}
}

@ -0,0 +1,18 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author zhangbaoyu
* @date Created in 2020-04-28 19:08
*/
@Data
public class ReqBusinessAddClaStu implements Serializable {
private Long claId;
private Long[] studentIds;
}

@ -0,0 +1,18 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author zhangbaoyu
* @date Created in 2020-06-21 10:08
*/
@Data
public class ReqBusinessAddStuCla implements Serializable {
private Long[] claIds;
private Long studentId;
}

@ -0,0 +1,72 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
import java.math.BigDecimal;
/**
*
* @author zhangbaoyu
* @date Created in 2020/6/8 10:44
*/
@Data
public class ReqBusinessClaBegin implements Serializable {
private Long courseTimeId;
private Long[] studentIds;
/**
*
*/
private String startTime;
/**
*
*/
private String endTime;
/**
*
*/
private String memo;
/**
*
*/
private BigDecimal payHourCount;
/**
*
* @return
*/
public boolean checkParamForHour(){
if(null == courseTimeId || null == studentIds || studentIds.length == 0){
return false;
}
if(StringUtils.isAnyEmpty(startTime,endTime)){
return false;
}
if(null == payHourCount || "0".equals(payHourCount.toString())){
return false;
}
return true;
}
/**
*
* @return
*/
public boolean checkParamForDate(){
if(null == courseTimeId || null == studentIds || studentIds.length == 0){
return false;
}
if(StringUtils.isAnyEmpty(startTime,endTime)){
return false;
}
return true;
}
}

@ -0,0 +1,18 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020/9/3 11:08
*/
@Data
public class ReqBusinessOrderCourseDetail {
private Long studentId;
private Long[] courseIds;
private Long deptId;
}

@ -0,0 +1,18 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
/**
* select
*
* @author zhangbaoyu
* @date Created in 2020-04-27 19:41
*/
@Data
public class ReqCourseClaSelect {
private String search;
private Integer maxRecord = 500;
}

@ -0,0 +1,47 @@
package cn.xluobo.business.sc.course.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
*
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScCourse extends ReqPageBase implements Serializable {
private String courseName;
/**
*
*/
private String sale;
/**
*
*/
private String teachingMode;
/**
*
*/
private String courseTypeId;
/**
*
*/
private Long departId;
/**
*
*/
private String chargeType;
/**
*
*/
private Long studentId;
}

@ -0,0 +1,23 @@
package cn.xluobo.business.sc.course.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScCourseCla extends ReqPageBase implements Serializable {
private Long courseId;
private Long staffId;
private String claName;
private String courseTime;
private Long departId;
/**
*
*/
private String chargeType;
}

@ -0,0 +1,15 @@
package cn.xluobo.business.sc.course.domain.req;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScCourseType extends ReqPageBase implements Serializable {
private String courseType;
}

@ -0,0 +1,32 @@
package cn.xluobo.business.sc.course.domain.req;
import lombok.Data;
/**
* select
*
* @author zhangbaoyu
* @date Created in 2020-04-27 19:41
*/
@Data
public class ReqSelect {
private String search;
private Integer maxRecord = 50;
// 是否可分页
private boolean pageable;
private long pageNum = 1;
private long pageSize = 10;
public long getPageSize() {
if (pageable) {
return pageSize;
} else {
return maxRecord;
}
}
}

@ -0,0 +1,16 @@
package cn.xluobo.business.sc.course.domain.req.cla;
import cn.xluobo.core.page.ReqDeptCondition;
import lombok.Builder;
import lombok.Data;
/**
* @author zhangbaoyu
* @date Created in 2020/10/24 12:27
*/
@Data
@Builder
public class ReqClaCount extends ReqDeptCondition {
private Long teacherId;
}

@ -0,0 +1,155 @@
package cn.xluobo.business.sc.course.domain.req.course;
import cn.xluobo.core.api.APIBaseResponse;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.List;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/7/8 20:34
*/
@Data
public class ReqAddScCourse {
/**
*
*/
private String courseName;
/**
*
*/
private Long courseTypeId;
/**
*
*/
private String teachingMode;
/**
*
*/
private String courseIntro;
/**
* all part
*/
private String courseCampus;
/**
*
*/
private String[] partCampus;
/**
*
*/
private boolean feeModeHour;
/**
*
*/
private boolean feeModeDate;
/**
*
*/
private boolean feeModeCycle;
private List<ReqAddScCourseChargeItem> feeModeHourList;
private List<ReqAddScCourseChargeItem> feeModeDateList;
private List<ReqAddScCourseChargeItem> feeModeCycleList;
/**
*
*
* @return
*/
public APIBaseResponse checkParam() {
if (StringUtils.isEmpty(courseName)) {
return APIBaseResponse.fail("请输入课程名称");
} else if (StringUtils.isEmpty(teachingMode)) {
return APIBaseResponse.fail("请选择教学模式");
}
if (StringUtils.isEmpty(courseCampus)) {
return APIBaseResponse.fail("请选择上课校区");
}
if ("part".equals(courseCampus) && null == partCampus) {
return APIBaseResponse.fail("请选择上课校区");
}
if ("part".equals(courseCampus) && partCampus.length == 0) {
return APIBaseResponse.fail("请选择上课校区");
}
if (!feeModeHour && !feeModeDate && !feeModeCycle) {
return APIBaseResponse.fail("请配置收费模式");
}
if (feeModeHour && (null == feeModeHourList || feeModeHourList.isEmpty())) {
return APIBaseResponse.fail("请配置课时收费模式");
}
if (feeModeDate && (null == feeModeDateList || feeModeDateList.isEmpty())) {
return APIBaseResponse.fail("请配置时间收费模式");
}
if (feeModeCycle && (null == feeModeCycleList || feeModeCycleList.isEmpty())) {
return APIBaseResponse.fail("请配置周期收费模式");
}
BigDecimal zero = BigDecimal.ZERO;
if (feeModeHour) {
for (ReqAddScCourseChargeItem item : feeModeHourList) {
BigDecimal cnt = item.getCnt();
BigDecimal totalFee = item.getTotalFee();
String campusName = item.getCampusName();
if(null == cnt || cnt.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按课时收费 数量");
}
if(null == totalFee || totalFee.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按课时收费 金额");
}
}
}
if (feeModeDate) {
for (ReqAddScCourseChargeItem item : feeModeDateList) {
BigDecimal cnt = item.getCnt();
BigDecimal totalFee = item.getTotalFee();
String dateType = item.getDateType();
String campusName = item.getCampusName();
if(null == cnt || cnt.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按时间收费 数量");
}
if(null == totalFee || totalFee.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按时间收费 金额");
}
if(StringUtils.isEmpty(dateType)){
return APIBaseResponse.fail("请填写"+campusName+"按时间收费 时间段");
}
}
}
if(feeModeCycle) {
for (ReqAddScCourseChargeItem item : feeModeCycleList) {
BigDecimal cnt = item.getCnt();
BigDecimal totalFee = item.getTotalFee();
String campusName = item.getCampusName();
if(null == cnt || cnt.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按期收费 数量");
}
if(null == totalFee || totalFee.compareTo(zero)==0){
return APIBaseResponse.fail("请填写"+campusName+"按期收费 金额");
}
}
}
return APIBaseResponse.success();
}
}

@ -0,0 +1,42 @@
package cn.xluobo.business.sc.course.domain.req.course;
import lombok.Data;
import java.math.BigDecimal;
/**
*
* @author zhangbaoyu
* @date Created in 2020/7/23 11:07
*/
@Data
public class ReqAddScCourseChargeItem {
private Long chargeId;
/**
* id
*/
private Long campusId;
/**
*
*/
private String campusName;
/**
*
*/
private BigDecimal cnt;
/**
*
*/
private BigDecimal totalFee;
/**
*
*/
private String dateType;
}

@ -0,0 +1,28 @@
package cn.xluobo.business.sc.course.domain.req.course;
import cn.xluobo.core.api.APIBaseResponse;
import lombok.Data;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/7/8 20:34
*/
@Data
public class ReqChangeScCourse extends ReqAddScCourse{
private Long courseId;
public APIBaseResponse checkParam() {
APIBaseResponse checkParam = super.checkParam();
if(!checkParam.isSuccess()){
return checkParam;
}
if(null == courseId){
return APIBaseResponse.fail("请求参数错误,请稍后重试");
}
return APIBaseResponse.success();
}
}

@ -0,0 +1,20 @@
package cn.xluobo.business.sc.course.domain.req.time;
import cn.xluobo.core.page.ReqDeptCondition;
import lombok.Builder;
import lombok.Data;
/**
* @author zhangbaoyu
* @date Created in 2020/10/24 12:21
*/
@Data
@Builder
public class ReqClaTimeCount extends ReqDeptCondition {
private String beginDate;
private String endDate;
private Boolean hadBegin;
private Long teacherId;
}

@ -0,0 +1,69 @@
package cn.xluobo.business.sc.course.domain.req.time;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import org.joda.time.DateTime;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020/9/18 14:45
*/
@Data
public class ReqSearchClaTime extends ReqPageBase implements Serializable {
// 排课 编号
private Long courseTimeId;
// 课程
private Long courseId;
// 校区
private Long deptId;
// 当前登录用户
private String userId;
// 班级
private Long claId;
// 学生
private Long studentId;
private Long teacherId;
// 开始时间
private String beginDate;
// 结束时间
private String endDate;
/**
*
* beginDateendDate
*/
private Integer diffNowDay;
/**
*
* true
* false
*/
private Boolean attended;
/**
*
* claTimeAttend
*/
private String orderByType;
public void setDiffNowDay(Integer diffNowDay) {
this.diffNowDay = diffNowDay;
if(null != diffNowDay) {
DateTime now = DateTime.now();
this.beginDate = now.minusDays(diffNowDay).toString("yyyy-MM-dd");
this.endDate = now.plusDays(diffNowDay).toString("yyyy-MM-dd");
}
}
}

@ -0,0 +1,27 @@
package cn.xluobo.business.sc.course.domain.req.time;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScClaTimeAttend extends ReqPageBase implements Serializable {
private Long courseTimeId;
// private String chargeType;
private String attendStatus;
private Long studentCourseId;
private Long studentId;
private Long teacherId;
private String tenantId;
}

@ -0,0 +1,30 @@
package cn.xluobo.business.sc.course.domain.req.time;
import cn.xluobo.core.page.ReqPageBase;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import java.io.Serializable;
/**
* @author zhangbaoyu
* @date Created in 2020-01-14 17:30
*/
@Data
public class ReqSearchScClaTimeRule extends ReqPageBase implements Serializable {
private Long deptId;
private Long claId;
private Long teacherId;
private String[] claDate;
private Boolean filterHoliday;
private String beginDate;
private String endDate;
public void setClaDate(String[] claDate) {
this.claDate = claDate;
if (null != claDate && claDate.length == 2 && StringUtils.isAnyEmpty(beginDate, endDate)) {
this.beginDate = claDate[0];
this.endDate = claDate[1];
}
}
}

@ -0,0 +1,38 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Builder;
import lombok.Data;
import java.math.BigDecimal;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/8/26 17:16
*/
@Data
@Builder
public class RespBusinessChooseCourseCharge {
private Long chargeId;
/**
*
*/
private BigDecimal totalFee;
/**
* select label
*/
private String label;
// 收费类型
private String chargeType;
// 数量
private BigDecimal count;
// 按时间 时间单位
private String dateUnit;
}

@ -0,0 +1,33 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/8/26 17:01
*/
@Data
@Builder
public class RespBusinessChooseCourseInfo {
private Long courseId;
private String courseName;
private Long deptId;
private String deptName;
private String teachingMode;
private List<RespBusinessChooseCourseCharge> courseChargeList;
// 续报
private Boolean continueCourse;
}

@ -0,0 +1,32 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-06-21 07:13:40
*/
@Data
public class RespBusinessCla implements Serializable {
private Long claId;
private String claName;
private String chargeName;
public RespBusinessCla(Long claId, String claName, String chargeName) {
this.claId = claId;
this.claName = claName;
this.chargeName = chargeName;
}
public RespBusinessCla() {
}
}

@ -0,0 +1,20 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Builder;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020-04-03 14:15
*/
@Data
@Builder
public class RespBusinessClaInfo {
private Long claId;
private String claColor;
private String claName;
private String teacherName;
}

@ -0,0 +1,45 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:40
*/
@Data
public class RespBusinessClaStudent implements Serializable {
/**
*
*/
private List<RespBusinessStudent> students;
/**
*
*/
private List<Long> claStudentIds;
/**
*
*/
private RespBusinessClaInfo claInfo;
/**
*
*/
private RespBusinessCourseInfo courseInfo;
public RespBusinessClaStudent(List<RespBusinessStudent> students, List<Long> claStudentIds, RespBusinessClaInfo claInfo, RespBusinessCourseInfo courseInfo) {
this.students = students;
this.claStudentIds = claStudentIds;
this.claInfo = claInfo;
this.courseInfo = courseInfo;
}
}

@ -0,0 +1,18 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Builder;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020-04-03 14:15
*/
@Data
@Builder
public class RespBusinessCourseInfo {
private Long courseId;
private String courseName;
}

@ -0,0 +1,30 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Data;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-04-27 07:13:40
*/
@Data
public class RespBusinessStudent implements Serializable {
private Long studentId;
private String studentName;
public RespBusinessStudent(Long studentId) {
this.studentId = studentId;
}
public RespBusinessStudent(Long studentId, String studentName) {
this.studentId = studentId;
this.studentName = studentName;
}
}

@ -0,0 +1,41 @@
package cn.xluobo.business.sc.course.domain.resp;
import cn.xluobo.business.sc.student.repo.model.ScStudent;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author zhangby
* @since 2020-06-21 07:13:40
*/
@Data
public class RespBusinessStudentCla implements Serializable {
/**
*
*/
private List<RespBusinessCla> claInfoList;
/**
*
*/
private List<Long> claIds;
/**
*
*/
private ScStudent student;
public RespBusinessStudentCla(List<RespBusinessCla> claInfoList, List<Long> claIds, ScStudent student) {
this.claInfoList = claInfoList;
this.claIds = claIds;
this.student = student;
}
}

@ -0,0 +1,40 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020-03-23 19:36
*/
@Data
public class RespCourseClaInfo {
private Long claId;
private String claName;
// 当前人数
private Integer studentCnt;
// 满班人数
private String capacity;
private String recruitStatus;
private String openDate;
private Long courseId;
private String courseName;
private Long staffId;
private String staffName;
private String deptName;
// 上课星期
private String weekDay;
}

@ -0,0 +1,27 @@
package cn.xluobo.business.sc.course.domain.resp;
import lombok.Data;
/**
* select
* @author zhangbaoyu
* @date Created in 2020/5/6 13:11
*/
@Data
public class RespCourseClaSelectInfo {
private Long claId;
private String claName;
private Long courseId;
private String courseName;
private String staffName;
private Long deptId;
private String deptName;
}

@ -0,0 +1,31 @@
package cn.xluobo.business.sc.course.domain.resp.cla;
import cn.xluobo.business.sc.course.domain.resp.RespBusinessChooseCourseCharge;
import cn.xluobo.business.sc.course.repo.model.ScCourse;
import cn.xluobo.business.sc.course.repo.model.ScCourseCla;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
*
* @author zhangbaoyu
* @date Created in 2020/9/29 18:36
*/
@Data
@Builder
public class RespClaAllDetailInfo {
// 班级信息
private ScCourseCla courseCla;
// 课程信息
private ScCourse course;
// 收费方式
private List<RespBusinessChooseCourseCharge> courseChargeList;
// 上课时间
private List<String> claTimeList;
}

@ -0,0 +1,19 @@
package cn.xluobo.business.sc.course.domain.resp.course;
import cn.xluobo.business.sc.course.domain.req.course.ReqAddScCourse;
import lombok.Data;
/**
*
*
* @author zhangbaoyu
* @date Created in 2020/7/8 20:34
*/
@Data
public class RespScCourseDetail extends ReqAddScCourse {
private Long courseId;
private String courseTypeName;
}

@ -0,0 +1,65 @@
package cn.xluobo.business.sc.course.domain.resp.course;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author zhangbaoyu
* @date Created in 2020/7/25 11:11
*/
@Data
public class RespSearchCourse implements Serializable {
private Long courseId;
private String courseName;
private Long courseTypeId;
/**
*
*/
private String courseTypeName;
/**
*
*/
private String teachingMode;
/**
*
*/
private Integer claCount;
/**
*
*/
private String chargeNames;
/**
*
*/
private String campusIds;
/**
*
*/
private Date createTime;
/**
*
*/
private String sale;
/**
*
*/
private String courseIntro;
/**
*
*/
private Long studentCourseId;
}

@ -0,0 +1,58 @@
package cn.xluobo.business.sc.course.domain.resp.time;
import cn.xluobo.core.constants.SysConstant;
import lombok.Data;
/**
*
* @author zhangbaoyu
* @date Created in 2020/9/23 18:54
*/
@Data
public class ClaTimeCalendarItem {
private Long courseTimeId;
private String claName;
private String courseName;
// 日期
private String claDate;
// 星期
private String weekDay;
private String startTime;
private String endTime;
private String staffName;
private int studentCount;
// 教室
private String roomName;
private String claColor;
// 上课状态
private String claTimeStatus;
public ClaTimeCalendarItem transfer(RespClaTimeCalendar respClaTime) {
this.courseTimeId = respClaTime.getCourseTimeId();
this.claName = respClaTime.getClaName();
this.courseName = respClaTime.getCourseName();
this.claDate = respClaTime.getClaDate();
this.weekDay = SysConstant.WEEK_DAY_MAP.get(respClaTime.getWeekDay());
this.startTime = respClaTime.getStartTime().substring(0,5);
this.endTime = respClaTime.getEndTime().substring(0,5);
this.staffName = respClaTime.getStaffName();
this.studentCount = respClaTime.getStudentCount();
this.roomName = respClaTime.getRoomName();
this.claColor = respClaTime.getClaColor();
this.claTimeStatus = respClaTime.getStatus();
return this;
}
}

@ -0,0 +1,22 @@
package cn.xluobo.business.sc.course.domain.resp.time;
import lombok.Data;
/**
* title
* @author zhangbaoyu
* @date Created in 2020/9/23 17:16
*/
@Data
public class ClaTimeColumnTitle {
// 星期
private String weekName;
// 日期
private String day;
// 排课数量
private int count;
}

@ -0,0 +1,23 @@
package cn.xluobo.business.sc.course.domain.resp.time;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
*
* table
* @author zhangbaoyu
* @date Created in 2020/9/23 18:59
*/
@Data
public class ClaTimeContainer {
// 上课时间
private String time;
// 排课信息
private Map<Integer,List<ClaTimeCalendarItem>> claTimeWeekDayMap;
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save