renqianlong 1 vuosi sitten
vanhempi
commit
17f90d4f18
20 muutettua tiedostoa jossa 626 lisäystä ja 511 poistoa
  1. 1 2
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/CommonController.java
  2. 69 98
      zhongzheng-common/src/main/java/com/zhongzheng/common/utils/file/FileUtils.java
  3. 222 207
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java
  4. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java
  5. 6 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java
  6. 188 194
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  7. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodSectionVo.java
  8. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/DangAnExamListExportVo.java
  9. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java
  10. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserApplyRecordBo.java
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserCertificateQueryBo.java
  12. 59 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserDataExcelInfoBo.java
  13. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserQueryBo.java
  14. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserUsbRecordBo.java
  15. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java
  16. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserApplyRecordVo.java
  17. 21 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  18. 6 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserCertificateMapper.xml
  19. 18 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml
  20. 3 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

+ 1 - 2
zhongzheng-admin/src/main/java/com/zhongzheng/controller/CommonController.java

@@ -206,8 +206,7 @@ public class CommonController extends BaseController {
 
     @PostMapping("/common/user/data/download")
     public AjaxResult userDateDownload(@RequestBody UserDownloadBo bo){
-        iUserService.userDateDownload(bo);
-        return AjaxResult.success();
+        return AjaxResult.success(iUserService.userDateDownload(bo));
     }
 
 }

+ 69 - 98
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/file/FileUtils.java

@@ -36,8 +36,7 @@ import java.util.zip.ZipOutputStream;
  *
  * @author zhongzheng
  */
-public class FileUtils extends org.apache.commons.io.FileUtils
-{
+public class FileUtils extends org.apache.commons.io.FileUtils {
 
     private static final byte[] buf = new byte[1024];
     public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
@@ -46,52 +45,36 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * 输出指定文件的byte数组
      *
      * @param filePath 文件路径
-     * @param os 输出流
+     * @param os       输出流
      * @return
      */
-    public static void writeBytes(String filePath, OutputStream os) throws IOException
-    {
+    public static void writeBytes(String filePath, OutputStream os) throws IOException {
         FileInputStream fis = null;
-        try
-        {
+        try {
             File file = new File(filePath);
-            if (!file.exists())
-            {
+            if (!file.exists()) {
                 throw new FileNotFoundException(filePath);
             }
             fis = new FileInputStream(file);
             byte[] b = new byte[1024];
             int length;
-            while ((length = fis.read(b)) > 0)
-            {
+            while ((length = fis.read(b)) > 0) {
                 os.write(b, 0, length);
             }
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             throw e;
-        }
-        finally
-        {
-            if (os != null)
-            {
-                try
-                {
+        } finally {
+            if (os != null) {
+                try {
                     os.close();
-                }
-                catch (IOException e1)
-                {
+                } catch (IOException e1) {
                     e1.printStackTrace();
                 }
             }
-            if (fis != null)
-            {
-                try
-                {
+            if (fis != null) {
+                try {
                     fis.close();
-                }
-                catch (IOException e1)
-                {
+                } catch (IOException e1) {
                     e1.printStackTrace();
                 }
             }
@@ -104,13 +87,11 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * @param filePath 文件
      * @return
      */
-    public static boolean deleteFile(String filePath)
-    {
+    public static boolean deleteFile(String filePath) {
         boolean flag = false;
         File file = new File(filePath);
         // 路径为文件且不为空则进行删除
-        if (file.isFile() && file.exists())
-        {
+        if (file.isFile() && file.exists()) {
             file.delete();
             flag = true;
         }
@@ -123,8 +104,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * @param filename 文件名称
      * @return true 正常 false 非法
      */
-    public static boolean isValidFilename(String filename)
-    {
+    public static boolean isValidFilename(String filename) {
         return filename.matches(FILENAME_PATTERN);
     }
 
@@ -134,17 +114,14 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * @param resource 需要下载的文件
      * @return true 正常 false 非法
      */
-    public static boolean checkAllowDownload(String resource)
-    {
+    public static boolean checkAllowDownload(String resource) {
         // 禁止目录上跳级别
-        if (StrUtil.contains(resource, ".."))
-        {
+        if (StrUtil.contains(resource, "..")) {
             return false;
         }
 
         // 检查允许下载的文件规则
-        if (ArrayUtil.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
-        {
+        if (ArrayUtil.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) {
             return true;
         }
 
@@ -155,32 +132,24 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     /**
      * 下载文件名重新编码
      *
-     * @param request 请求对象
+     * @param request  请求对象
      * @param fileName 文件名
      * @return 编码后的文件名
      */
-    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
-    {
+    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException {
         final String agent = request.getHeader("USER-AGENT");
         String filename = fileName;
-        if (agent.contains("MSIE"))
-        {
+        if (agent.contains("MSIE")) {
             // IE浏览器
             filename = URLEncoder.encode(filename, "utf-8");
             filename = filename.replace("+", " ");
-        }
-        else if (agent.contains("Firefox"))
-        {
+        } else if (agent.contains("Firefox")) {
             // 火狐浏览器
             filename = new String(fileName.getBytes(), "ISO8859-1");
-        }
-        else if (agent.contains("Chrome"))
-        {
+        } else if (agent.contains("Chrome")) {
             // google浏览器
             filename = URLEncoder.encode(filename, "utf-8");
-        }
-        else
-        {
+        } else {
             // 其它浏览器
             filename = URLEncoder.encode(filename, "utf-8");
         }
@@ -190,12 +159,11 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     /**
      * 下载文件名重新编码
      *
-     * @param response 响应对象
+     * @param response     响应对象
      * @param realFileName 真实文件名
      * @return
      */
-    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException
-    {
+    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException {
         String percentEncodedFileName = percentEncode(realFileName);
 
         StringBuilder contentDispositionValue = new StringBuilder();
@@ -215,24 +183,20 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * @param s 需要百分号编码的字符串
      * @return 百分号编码后的字符串
      */
-    public static String percentEncode(String s) throws UnsupportedEncodingException
-    {
+    public static String percentEncode(String s) throws UnsupportedEncodingException {
         String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
         return encode.replaceAll("\\+", "%20");
     }
 
-    public static String encodingZipFilename(String prefix)
-    {
-        String  filename = prefix+"_"+ UUID.randomUUID().toString() + ".zip";
+    public static String encodingZipFilename(String prefix) {
+        String filename = prefix + "_" + UUID.randomUUID().toString() + ".zip";
         return filename;
     }
 
-    public static String getZipAbsoluteFile(String filename)
-    {
+    public static String getZipAbsoluteFile(String filename) {
         String downloadPath = RuoYiConfig.getDownloadPath() + filename;
         File desc = new File(downloadPath);
-        if (!desc.getParentFile().exists())
-        {
+        if (!desc.getParentFile().exists()) {
             desc.getParentFile().mkdirs();
         }
         return downloadPath;
@@ -241,18 +205,19 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     public static void deleteDirectoryStream(Path path) {
         try {
             Files.delete(path);
-            System.out.printf("删除文件成功:%s%n",path.toString());
+            System.out.printf("删除文件成功:%s%n", path.toString());
         } catch (IOException e) {
             System.err.printf("无法删除的路径 %s%n%s", path, e);
         }
     }
-    
+
     /**
      * File转MultipartFile
+     *
+     * @param file
+     * @return org.springframework.web.multipart.MultipartFile
      * @author change
      * @date 2023/4/10 11:09
-     * @param file 
-     * @return org.springframework.web.multipart.MultipartFile
      */
     public static MultipartFile getMultipartFile(File file) {
         FileItem item = new DiskFileItemFactory().createItem("file"
@@ -294,13 +259,13 @@ public class FileUtils extends org.apache.commons.io.FileUtils
         }
     }
 
-    public static void deleteFilePackage(String path){
+    public static void deleteFilePackage(String path) {
         //删除本地资源
         Path pathStr = Paths.get(path);
         try (Stream<Path> walk = Files.walk(pathStr)) {
             walk.sorted(Comparator.reverseOrder())
                     .forEach(FileUtils::deleteDirectoryStream);
-        }catch (IOException e) {
+        } catch (IOException e) {
             e.printStackTrace();
             throw new CustomException(e.getMessage());
         }
@@ -309,8 +274,8 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     /**
      * 压缩成ZIP 方法1
      *
-     * @param zipFileName       压缩文件夹路径
-     * @param sourceFileName    要压缩的文件路径
+     * @param zipFileName      压缩文件夹路径
+     * @param sourceFileName   要压缩的文件路径
      * @param KeepDirStructure 是否保留原来的目录结构,true:保留目录结构;
      *                         false:所有文件跑到压缩包根目录下(注意:不保留目录结构可能会出现同名文件,会压缩失败)
      * @throws RuntimeException 压缩失败会抛出运行时异常
@@ -342,45 +307,45 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     }
 
     /**
-     * @Title: compress
-     * @Description: TODO
-     * @param filePaths 需要压缩的文件地址列表(绝对路径)
-     * @param zipFilePath 需要压缩到哪个zip文件(无需创建这样一个zip,只需要指定一个全路径)
+     * @param filePaths        需要压缩的文件地址列表(绝对路径)
+     * @param zipFilePath      需要压缩到哪个zip文件(无需创建这样一个zip,只需要指定一个全路径)
      * @param keepDirStructure 压缩后目录是否保持原目录结构
-     * @throws IOException
      * @return int   压缩成功的文件个数
+     * @throws IOException
+     * @Title: compress
+     * @Description: TODO
      */
-    public static Boolean compressList(List<String> filePaths, String zipFilePath, Boolean keepDirStructure){
+    public static Boolean compressList(List<String> filePaths, String zipFilePath, Boolean keepDirStructure) {
         byte[] buf = new byte[1024];
         File zipFile = new File(zipFilePath);
         int fileCount = 0;//记录压缩了几个文件?
         try {
             //zip文件不存在,则创建文件,用于压缩
-            if(!zipFile.exists()){
+            if (!zipFile.exists()) {
                 zipFile.createNewFile();
             }
             ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile));
-            for(int i = 0; i < filePaths.size(); i++){
+            for (int i = 0; i < filePaths.size(); i++) {
                 String relativePath = filePaths.get(i);
-                if(StringUtils.isEmpty(relativePath)){
+                if (StringUtils.isEmpty(relativePath)) {
                     continue;
                 }
                 File sourceFile = new File(relativePath);//绝对路径找到file
-                if(sourceFile == null || !sourceFile.exists()){
+                if (sourceFile == null || !sourceFile.exists()) {
                     continue;
                 }
 
                 FileInputStream fis = new FileInputStream(sourceFile);
-                if(keepDirStructure!=null && keepDirStructure){
+                if (keepDirStructure != null && keepDirStructure) {
                     //保持目录结构
                     zos.putNextEntry(new ZipEntry(relativePath));
-                }else{
+                } else {
                     //直接放到压缩包的根目录
                     zos.putNextEntry(new ZipEntry(sourceFile.getName()));
                 }
                 //System.out.println("压缩当前文件:"+sourceFile.getName());
                 int len;
-                while((len = fis.read(buf)) > 0){
+                while ((len = fis.read(buf)) > 0) {
                     zos.write(buf, 0, len);
                 }
                 zos.closeEntry();
@@ -451,7 +416,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * 解压
      *
      * @param inputStream zip压缩文件
-     * @param descDir 指定的解压目录
+     * @param descDir     指定的解压目录
      */
     public static void unzipWithStream(InputStream inputStream, String descDir) {
         if (!descDir.endsWith(File.separator)) {
@@ -479,7 +444,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils
             }
         } catch (IOException e) {
             e.printStackTrace();
-            throw new CustomException("压缩包处理异常,异常信息{}"+ e);
+            throw new CustomException("压缩包处理异常,异常信息{}" + e);
         }
     }
 
@@ -487,7 +452,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     public static void writeFile(String filePath, ZipInputStream zipInputStream) {
         File file = new File(filePath);
         File directory = file.getParentFile();
-        if (!directory.exists()){
+        if (!directory.exists()) {
             directory.mkdirs();
         }
         try (OutputStream outputStream = new FileOutputStream(filePath)) {
@@ -506,7 +471,7 @@ public class FileUtils extends org.apache.commons.io.FileUtils
     /**
      * 打包压缩文件夹
      *
-     * @param folderPath 文件夹路径
+     * @param folderPath  文件夹路径
      * @param zipFilePath 压缩后的文件路径
      * @throws IOException IO异常
      */
@@ -533,10 +498,10 @@ public class FileUtils extends org.apache.commons.io.FileUtils
      * 将文件夹及其中的文件递归添加到压缩流中
      *
      * @param parentPath 父级路径
-     * @param folder 文件夹
-     * @param zos Zip输出流
+     * @param folder     文件夹
+     * @param zos        Zip输出流
      * @throws FileNotFoundException 文件未找到异常
-     * @throws IOException IO异常
+     * @throws IOException           IO异常
      */
     private static void addFolderToZip(String parentPath, File folder, ZipOutputStream zos) throws FileNotFoundException, IOException {
         for (File file : folder.listFiles()) {
@@ -548,8 +513,14 @@ public class FileUtils extends org.apache.commons.io.FileUtils
                 try {
                     fis = new FileInputStream(file);
 
+                    ZipEntry zipEntry = new ZipEntry(folder.getName() + "/" + file.getName());
+                    String path2 = file.getParent().substring(file.getParent().lastIndexOf("\\"),file.getParent().length() - 1);
+                    String replace = path2.replace("\\", "");
+                    String replace1 = parentPath.replace("\\", "");
+                    if (replace.equals(parentPath.replace("\\",""))){
+                        zipEntry = new ZipEntry( file.getName());
+                    }
                     // 新建Zip条目并将输入流加入到Zip包中
-                    ZipEntry zipEntry = new ZipEntry( folder.getName() + "/" + file.getName());
                     zos.putNextEntry(zipEntry);
 
                     byte[] bytes = new byte[1024];

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 222 - 207
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java


+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/bo/ClassGradeUserQueryBo.java

@@ -51,6 +51,11 @@ public class ClassGradeUserQueryBo extends BaseEntity {
 	 */
 	@ApiModelProperty("学员ID")
 	private Long userId;
+	/**
+	 * 学员ID
+	 */
+	@ApiModelProperty("学员IDs")
+	private List<Long> userIds;
 
 	/**
 	 * 模塊ID

+ 6 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java

@@ -154,17 +154,17 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
 	List<ClassPeriodStudentVo> listBKUserPeriod(ClassGradeUserQueryBo bo);
 
-	Boolean exportListBKUserPeriod(Long userId,String dirPath);
+	String exportListBKUserPeriod(List<Long> userIds,String dirPath);
 
-	Boolean exportCertificateList(Long userId,String dirPath);
+	Boolean exportCertificateList(List<Long> userId,String dirPath);
 
-	Boolean exportLiveStudyList(Long userId,String dirPath);
+	Boolean exportLiveStudyList(List<Long> userId,String dirPath);
 
-	Boolean exportHandoutsStudyList(Long userId,String dirPath);
+	String exportHandoutsStudyList(List<Long> userIds,String dirPath);
 
-	Boolean exportExamStudyList(Long userId,String dirPath);
+	Boolean exportExamStudyList(List<Long> userId,String dirPath);
 
     List<UserUsbRecordVo> getListUserSubscribe(UserUsbRecordBo bo);
-	List<ClassPeriodStudentExportListVo> getListVideoUserPeriod(Long userId);
+	List<ClassPeriodStudentExportListVo> getListVideoUserPeriod(Long userId,Long goodsId);
 
 }

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 188 - 194
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java


+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodSectionVo.java

@@ -1,5 +1,6 @@
 package com.zhongzheng.modules.grade.vo;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.zhongzheng.common.annotation.Excel;
 import com.zhongzheng.modules.user.vo.UserStudyRecordPhotoVo;
 import io.swagger.annotations.ApiModel;
@@ -189,6 +190,9 @@ public class ClassPeriodSectionVo implements Comparable<ClassPeriodSectionVo> {
 	private Long examId;
 	@Override
 	public int compareTo(ClassPeriodSectionVo o) {
+		if (ObjectUtils.isNull(this.getSort()) || ObjectUtils.isNull(o.getSort())){
+			return 0;
+		}
 		return this.getSort() - o.getSort();
 	}
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/DangAnExamListExportVo.java

@@ -28,7 +28,9 @@ public class DangAnExamListExportVo {
 
 	@Excel(name = "题库")
 	private String goodsName;
-
+	/** 年份 */
+	@Excel(name = "年份")
+	private Long year;
 	@Excel(name = "业务类型")
 	private String businessName;
 
@@ -36,6 +38,7 @@ public class DangAnExamListExportVo {
 	private String categoryName;
 
 
+
 	@Excel(name = "有效期")
 	private String serviceTimeTxt;
 

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -59,7 +59,10 @@ private static final long serialVersionUID=1L;
     private Integer refundStatus;
     /** 支付状态 1未收费 2部分收费 3完全收费 */
     private Integer payStatus;
-
+    /** 支付状态 1未收费 2部分收费 3完全收费 */
+    private Integer courseNum;
+    /** 支付状态 1未收费 2部分收费 3完全收费 */
+    private Integer examNum;
     /** 业务归属人 */
     private String businessOwner;
     /** 归属部门 */

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserApplyRecordBo.java

@@ -48,6 +48,8 @@ public class UserApplyRecordBo extends BaseEntity {
 
     @ApiModelProperty("课程名称")
     private String goodsName;
+    @ApiModelProperty("课程名称")
+    private Long goodsId;
 
     @ApiModelProperty("考试状态:1通过 0不通过")
     private Integer applyStatus;

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserCertificateQueryBo.java

@@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -40,6 +41,9 @@ public class UserCertificateQueryBo extends BaseEntity {
 	/** 用户ID */
 	@ApiModelProperty("用户ID")
 	private Long userId;
+	/** 用户IDs */
+	@ApiModelProperty("用户IDs")
+	private List<Long> userIds;
 	/** 班级ID */
 	@ApiModelProperty("班级ID")
 	private Long gradeId;

+ 59 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserDataExcelInfoBo.java

@@ -0,0 +1,59 @@
+package com.zhongzheng.modules.user.bo;
+
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年12月27日 16:06
+ */
+@Data
+public class UserDataExcelInfoBo implements Serializable {
+
+    @Excel(name = "注册时间")
+    private String registerTime;
+
+    @Excel(name = "学员编号")
+    private String userAccount;
+
+    @Excel(name = "姓名")
+    private String realname;
+
+    @Excel(name = "性别")
+    private String sex;
+
+    @Excel(name = "手机号码")
+    private String userPhone;
+
+    @Excel(name = "身份证号")
+    private String userCard;
+
+    @Excel(name = "学历")
+    private String eduLevel;
+
+    @Excel(name = "毕业院校")
+    private String school;
+
+    @Excel(name = "毕业时间")
+    private String graduationTime;
+
+    @Excel(name = "所学专业")
+    private String major;
+
+    @Excel(name = "工作年限")
+    private String workYear;
+
+    @Excel(name = "工作单位")
+    private String companyName;
+
+    @Excel(name = "单位联系人")
+    private String unitContact;
+
+    @Excel(name = "单位联系电话")
+    private String unitTel;
+
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserQueryBo.java

@@ -41,6 +41,9 @@ public class UserQueryBo extends BaseEntity {
 	/** 用户名 */
 	@ApiModelProperty("用户名")
 	private Long userId;
+	/** 用户名 */
+	@ApiModelProperty("用户名")
+	private List<Long> userIds;
 	/** 账号 */
 	@ApiModelProperty("账号")
 	private String userAccout;

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserUsbRecordBo.java

@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 /**
  * 【请填写功能名称】视图对象 mall_package
  *
@@ -45,9 +47,12 @@ public class UserUsbRecordBo extends BaseEntity {
     private Long majorId;
 
     private Long userId;
+    private List<Long> userIds;
 
     @ApiModelProperty("课程名称")
     private String goodsName;
+    @ApiModelProperty("课程名称")
+    private Long goodsId;
 
     @ApiModelProperty("预约状态:1已预约 2已取消 3已过期")
     private Integer subscribeStatus;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -148,5 +148,5 @@ public interface IUserService extends IService<User> {
 
 	Map<String, Object> importSevenUser(List<UserPeriodImportBo> userList);
 
-    void userDateDownload(UserDownloadBo bo);
+    String userDateDownload(UserDownloadBo bo);
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserApplyRecordVo.java

@@ -15,7 +15,7 @@ import java.math.BigDecimal;
  */
 @Data
 @ApiModel("【请填写功能名称】视图对象")
-public class UserApplyRecordVo {
+    public class UserApplyRecordVo {
 
     private static final long serialVersionUID = 1L;
 

+ 21 - 0
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -1905,6 +1905,12 @@
         <if test="userId != null and userId !='' ">
             AND cgu.user_id = #{userId}
         </if>
+        <if test="userIds != null ">
+            AND cgu.user_id in
+            <foreach collection="userIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="idCard != null and idCard !='' ">
             AND u.id_card = #{idCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
         </if>
@@ -2012,6 +2018,12 @@
         <if test="userId != null and userId !='' ">
             AND u.user_id = #{userId}
         </if>
+        <if test="userIds != null ">
+            AND u.user_id in
+            <foreach collection="userIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="idCard != null and idCard !='' ">
             AND u.id_card = #{idCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
         </if>
@@ -2057,6 +2069,12 @@
         <if test="userId != null and userId !='' ">
             AND us.user_id = #{userId}
         </if>
+        <if test="userIds != null and userIds !=''">
+            AND us.user_id in
+            <foreach collection="userIds" index="index" item="item"  open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="subStartTime != null and subStartTime !='' ">
             AND us.create_time &gt;= #{subStartTime}
         </if>
@@ -2075,6 +2093,9 @@
         <if test="goodsName != null and goodsName !='' ">
             AND g.goods_name = #{goodsName}
         </if>
+        <if test="goodsId != null and goodsId !='' ">
+            AND g.goods_id = #{goodsId}
+        </if>
         <if test="subscribeStatus != null and subscribeStatus != 3">
             AND us.subscribe_status = #{subscribeStatus}
         </if>

+ 6 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserCertificateMapper.xml

@@ -115,6 +115,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="userId != null and majorId != ''">
             AND uc.user_id = #{userId}
         </if>
+        <if test="userIds != null and userIds != ''">
+            AND uc.user_id in
+            <foreach collection="userIds" index="index" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="searchStartTime != null and searchStartTime != ''">
             AND uc.create_time > #{searchStartTime}
         </if>

+ 18 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

@@ -781,6 +781,12 @@
         <if test="userId != null and userId !=''">
             AND o.user_id = #{userId}
         </if>
+        <if test="userIds != null and userIds !=''">
+            AND o.user_id in
+        <foreach collection="userIds" index="index" item="item"  open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        </if>
         <if test="businessId != null and businessId != ''">
             AND g.business_id = #{businessId}
         </if>
@@ -840,6 +846,12 @@
         <if test="userId != null and userId !=''">
             AND o.user_id = #{userId}
         </if>
+        <if test="userIds != null and userIds !=''">
+            AND o.user_id in
+            <foreach collection="userIds" index="index" item="item"  open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="businessId != null and businessId != ''">
             AND g.business_id = #{businessId}
         </if>
@@ -948,6 +960,12 @@
         <if test="userId != null and userId !=''">
             AND o.user_id = #{userId}
         </if>
+        <if test="userIds != null and userIds !=''">
+            AND o.user_id in
+        <foreach collection="userIds" item="item"  index="index" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        </if>
         <if test="businessId != null and businessId != ''">
             AND g.business_id = #{businessId}
         </if>

+ 3 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserSubscribeMapper.xml

@@ -848,6 +848,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="goodsName != null and goodsName !='' ">
             AND g.goods_name = #{goodsName}
         </if>
+        <if test="goodsId != null and goodsId !='' ">
+            AND g.goods_id = #{goodsId}
+        </if>
         <if test="applyStatus != null ">
             AND us.result = #{applyStatus}
         </if>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä