he2802 4 år sedan
förälder
incheckning
11048ab59c
21 ändrade filer med 589 tillägg och 1 borttagningar
  1. 53 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/course/TeacherController.java
  2. 7 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/face/FaceController.java
  3. 49 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java
  4. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/TeacherQueryBo.java
  5. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/TeacherServiceImpl.java
  6. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamNote.java
  7. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamNoteMapper.java
  8. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamNoteService.java
  9. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNoteServiceImpl.java
  10. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamNoteVo.java
  11. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/IFaceService.java
  12. 26 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/impl/FaceServiceImpl.java
  13. 42 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrAddBo.java
  14. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrEditBo.java
  15. 55 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrQueryBo.java
  16. 54 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserOcr.java
  17. 14 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserOcrMapper.java
  18. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserOcrService.java
  19. 103 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserOcrServiceImpl.java
  20. 48 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserOcrVo.java
  21. 19 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserOcrMapper.xml

+ 53 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/course/TeacherController.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.controller.course;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.modules.course.bo.TeacherAddBo;
+import com.zhongzheng.modules.course.bo.TeacherEditBo;
+import com.zhongzheng.modules.course.bo.TeacherQueryBo;
+import com.zhongzheng.modules.course.service.ITeacherService;
+import com.zhongzheng.modules.course.vo.TeacherVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 名师Controller
+ *
+ * @author hjl
+ * @date 2021-05-19
+ */
+@Api(value = "名师控制器", tags = {"名师管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/common/course/teacher")
+public class TeacherController extends BaseController {
+
+    private final ITeacherService iTeacherService;
+
+    /**
+     * 查询名师列表
+     */
+    @ApiOperation("查询名师列表")
+    @GetMapping("/list")
+    public TableDataInfo<TeacherVo> list(TeacherQueryBo bo) {
+        List<Integer> statusList = new ArrayList<>();
+        statusList.add(1);
+        bo.setStatus(statusList);
+        startPage();
+        List<TeacherVo> list = iTeacherService.queryList(bo);
+        return getDataTable(list);
+    }
+
+}

+ 7 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/face/FaceController.java

@@ -40,4 +40,11 @@ public class FaceController extends BaseController {
         return AjaxResult.success(face);
     }
 
+    @ApiOperation("获取识别结果")
+    @GetMapping("/certification/DetectInfo/{bizToken}")
+    public AjaxResult getDetectInfo(@PathVariable("bizToken") String bizToken) throws Exception {
+        iFaceService.getDetectInfo(bizToken);
+        return AjaxResult.success();
+    }
+
 }

+ 49 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -0,0 +1,49 @@
+package com.zhongzheng.controller.user;
+
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.modules.user.bo.UserAddBo;
+import com.zhongzheng.modules.user.bo.UserEditBo;
+import com.zhongzheng.modules.user.bo.UserQueryBo;
+import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.user.vo.UserVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 客户端用户Controller
+ *
+ * @author ruoyi
+ * @date 2021-06-08
+ */
+@Api(value = "客户端用户控制器", tags = {"客户端用户管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/app/user")
+public class UserController extends BaseController {
+
+    private final IUserService iUserService;
+
+    /**
+     * 修改客户端用户
+     */
+    @ApiOperation("修改客户端用户")
+    @Log(title = "客户端用户", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    public AjaxResult<Void> edit(@RequestBody UserEditBo bo) {
+        return toAjax(iUserService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/bo/TeacherQueryBo.java

@@ -49,5 +49,8 @@ public class TeacherQueryBo extends BaseEntity {
 	/** 状态 0关闭 1开启 */
 	@ApiModelProperty("状态 0关闭 1开启")
 	private List<Integer> status;
+	/** 教师ID数组 */
+	@ApiModelProperty("教师ID数组")
+	private List<Integer> teacherIds;
 
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/TeacherServiceImpl.java

@@ -42,6 +42,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
         LambdaQueryWrapper<Teacher> lqw = Wrappers.lambdaQuery();
         lqw.like(StrUtil.isNotBlank(bo.getTeacherName()), Teacher::getTeacherName, bo.getTeacherName());
         lqw.in(bo.getStatus() != null, Teacher::getStatus, bo.getStatus());
+        lqw.in(bo.getTeacherIds() != null, Teacher::getTeacherId, bo.getTeacherIds());
         return entity2Vo(this.list(lqw));
     }
 

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/domain/ExamNote.java

@@ -1,12 +1,16 @@
 package com.zhongzheng.modules.exam.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import com.zhongzheng.modules.course.vo.TeacherVo;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
 import java.io.Serializable;
 import java.util.Date;
 import java.math.BigDecimal;
+import java.util.List;
+
 import com.zhongzheng.common.annotation.Excel;
 
 /**
@@ -64,4 +68,5 @@ private static final long serialVersionUID=1L;
     private Long sort;
     @TableField(exist = false)
     private String categoryName;
+
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/mapper/ExamNoteMapper.java

@@ -14,5 +14,6 @@ import java.util.List;
  * @date 2021-05-21
  */
 public interface ExamNoteMapper extends BaseMapper<ExamNote> {
+
     List<ExamNoteVo> selectExamNoteList(ExamNoteQueryBo bo);
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/IExamNoteService.java

@@ -23,6 +23,7 @@ public interface IExamNoteService extends IService<ExamNote> {
 	 */
 	ExamNoteVo queryById(Long fileId);
 
+
 	/**
 	 * 查询列表
 	 */

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/service/impl/ExamNoteServiceImpl.java

@@ -39,6 +39,7 @@ public class ExamNoteServiceImpl extends ServiceImpl<ExamNoteMapper, ExamNote> i
         return BeanUtil.toBean(db, ExamNoteVo.class);
     }
 
+
     @Override
     public List<ExamNoteVo> queryList(ExamNoteQueryBo bo) {
         LambdaQueryWrapper<ExamNote> lqw = Wrappers.lambdaQuery();

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/exam/vo/ExamNoteVo.java

@@ -3,11 +3,13 @@ package com.zhongzheng.modules.exam.vo;
 import com.zhongzheng.common.annotation.Excel;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.math.BigDecimal;
+
+import com.zhongzheng.modules.course.vo.TeacherVo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import java.util.Date;
-
+import java.util.List;
 
 
 /**
@@ -64,4 +66,5 @@ public class ExamNoteVo {
 	@ApiModelProperty("分类名")
 	private String categoryName;
 
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/IFaceService.java

@@ -7,4 +7,6 @@ public interface IFaceService {
 
     FaceVo getFaceDetectAuth();
 
+    void getDetectInfo(String bizToken);
+
 }

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/impl/FaceServiceImpl.java

@@ -9,6 +9,8 @@ import com.tencentcloudapi.common.profile.HttpProfile;
 import com.tencentcloudapi.faceid.v20180301.FaceidClient;
 import com.tencentcloudapi.faceid.v20180301.models.DetectAuthRequest;
 import com.tencentcloudapi.faceid.v20180301.models.DetectAuthResponse;
+import com.tencentcloudapi.faceid.v20180301.models.GetDetectInfoRequest;
+import com.tencentcloudapi.faceid.v20180301.models.GetDetectInfoResponse;
 import com.zhongzheng.modules.exam.domain.ExamArrangementGuide;
 import com.zhongzheng.modules.face.bo.FaceVo;
 import com.zhongzheng.modules.face.service.IFaceService;
@@ -48,4 +50,28 @@ public class FaceServiceImpl implements IFaceService {
         }
         return null;
     }
+
+    @Override
+    public void getDetectInfo(String bizToken) {
+        try{
+            Credential cred = new Credential(SecretId, SecretKey);
+
+            HttpProfile httpProfile = new HttpProfile();
+            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
+
+            ClientProfile clientProfile = new ClientProfile();
+            clientProfile.setHttpProfile(httpProfile);
+
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
+
+            GetDetectInfoRequest req = new GetDetectInfoRequest();
+            req.setBizToken(bizToken);
+            req.setRuleId("0");
+            GetDetectInfoResponse resp = client.GetDetectInfo(req);
+
+            System.out.println(GetDetectInfoResponse.toJsonString(resp));
+        } catch (TencentCloudSDKException e) {
+            System.out.println(e.toString());
+        }
+    }
 }

+ 42 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrAddBo.java

@@ -0,0 +1,42 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 用户ocr信息添加对象 user_ocr
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Data
+@ApiModel("用户ocr信息添加对象")
+public class UserOcrAddBo {
+
+    /** 身份证正面 */
+    @ApiModelProperty("身份证正面")
+    private String ocrFront;
+    /** 身份证反面 */
+    @ApiModelProperty("身份证反面")
+    private String ocrBack;
+    /** 视频最佳帧截图 */
+    @ApiModelProperty("视频最佳帧截图")
+    private String bestFrame;
+    /** ocr信息 */
+    @ApiModelProperty("ocr信息")
+    private String ocrInfo;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 状态 1正常 0关闭 */
+    @ApiModelProperty("状态 1正常 0关闭")
+    private Integer status;
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrEditBo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 用户ocr信息编辑对象 user_ocr
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Data
+@ApiModel("用户ocr信息编辑对象")
+public class UserOcrEditBo {
+
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long ocrId;
+
+    /** 身份证正面 */
+    @ApiModelProperty("身份证正面")
+    private String ocrFront;
+
+    /** 身份证反面 */
+    @ApiModelProperty("身份证反面")
+    private String ocrBack;
+
+    /** 视频最佳帧截图 */
+    @ApiModelProperty("视频最佳帧截图")
+    private String bestFrame;
+
+    /** ocr信息 */
+    @ApiModelProperty("ocr信息")
+    private String ocrInfo;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+    /** 状态 1正常 0关闭 */
+    @ApiModelProperty("状态 1正常 0关闭")
+    private Integer status;
+}

+ 55 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserOcrQueryBo.java

@@ -0,0 +1,55 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.HashMap;
+
+import com.zhongzheng.common.core.domain.BaseEntity;
+
+/**
+ * 用户ocr信息分页查询对象 user_ocr
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("用户ocr信息分页查询对象")
+public class UserOcrQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 身份证正面 */
+	@ApiModelProperty("身份证正面")
+	private String ocrFront;
+	/** 身份证反面 */
+	@ApiModelProperty("身份证反面")
+	private String ocrBack;
+	/** 视频最佳帧截图 */
+	@ApiModelProperty("视频最佳帧截图")
+	private String bestFrame;
+	/** ocr信息 */
+	@ApiModelProperty("ocr信息")
+	private String ocrInfo;
+	/** 状态 1正常 0关闭 */
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+
+}

+ 54 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/UserOcr.java

@@ -0,0 +1,54 @@
+package com.zhongzheng.modules.user.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.zhongzheng.common.annotation.Excel;
+
+/**
+ * 用户ocr信息对象 user_ocr
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("user_ocr")
+public class UserOcr implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+
+    /** $column.columnComment */
+    @TableId(value = "ocr_id")
+    private Long ocrId;
+
+    /** 身份证正面 */
+    private String ocrFront;
+
+    /** 身份证反面 */
+    private String ocrBack;
+
+    /** 视频最佳帧截图 */
+    private String bestFrame;
+
+    /** ocr信息 */
+    private String ocrInfo;
+
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+
+    /** 状态 1正常 0关闭 */
+    private Integer status;
+
+}

+ 14 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserOcrMapper.java

@@ -0,0 +1,14 @@
+package com.zhongzheng.modules.user.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.user.domain.UserOcr;
+
+/**
+ * 用户ocr信息Mapper接口
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+public interface UserOcrMapper extends BaseMapper<UserOcr> {
+
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserOcrService.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.user.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.user.bo.UserOcrAddBo;
+import com.zhongzheng.modules.user.bo.UserOcrEditBo;
+import com.zhongzheng.modules.user.bo.UserOcrQueryBo;
+import com.zhongzheng.modules.user.domain.UserOcr;
+import com.zhongzheng.modules.user.vo.UserOcrVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 用户ocr信息Service接口
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+public interface IUserOcrService extends IService<UserOcr> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	UserOcrVo queryById(Long ocrId);
+
+	/**
+	 * 查询列表
+	 */
+	List<UserOcrVo> queryList(UserOcrQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入用户ocr信息
+	 * @param bo 用户ocr信息新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(UserOcrAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改用户ocr信息
+	 * @param bo 用户ocr信息编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(UserOcrEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 103 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserOcrServiceImpl.java

@@ -0,0 +1,103 @@
+package com.zhongzheng.modules.user.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.user.bo.UserOcrAddBo;
+import com.zhongzheng.modules.user.bo.UserOcrEditBo;
+import com.zhongzheng.modules.user.bo.UserOcrQueryBo;
+import com.zhongzheng.modules.user.domain.UserOcr;
+import com.zhongzheng.modules.user.mapper.UserOcrMapper;
+import com.zhongzheng.modules.user.service.IUserOcrService;
+import com.zhongzheng.modules.user.vo.UserOcrVo;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.pagehelper.Page;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户ocr信息Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Service
+public class UserOcrServiceImpl extends ServiceImpl<UserOcrMapper, UserOcr> implements IUserOcrService {
+
+    @Override
+    public UserOcrVo queryById(Long ocrId){
+        UserOcr db = this.baseMapper.selectById(ocrId);
+        return BeanUtil.toBean(db, UserOcrVo.class);
+    }
+
+    @Override
+    public List<UserOcrVo> queryList(UserOcrQueryBo bo) {
+        LambdaQueryWrapper<UserOcr> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StrUtil.isNotBlank(bo.getOcrFront()), UserOcr::getOcrFront, bo.getOcrFront());
+        lqw.eq(StrUtil.isNotBlank(bo.getOcrBack()), UserOcr::getOcrBack, bo.getOcrBack());
+        lqw.eq(StrUtil.isNotBlank(bo.getBestFrame()), UserOcr::getBestFrame, bo.getBestFrame());
+        lqw.eq(StrUtil.isNotBlank(bo.getOcrInfo()), UserOcr::getOcrInfo, bo.getOcrInfo());
+        lqw.eq(bo.getStatus() != null, UserOcr::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<UserOcrVo> entity2Vo(Collection<UserOcr> collection) {
+        List<UserOcrVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, UserOcrVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<UserOcr> page = (Page<UserOcr>)collection;
+            Page<UserOcrVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(UserOcrAddBo bo) {
+        UserOcr add = BeanUtil.toBean(bo, UserOcr.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(UserOcrEditBo bo) {
+        UserOcr update = BeanUtil.toBean(bo, UserOcr.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(UserOcr entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 48 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserOcrVo.java

@@ -0,0 +1,48 @@
+package com.zhongzheng.modules.user.vo;
+
+import com.zhongzheng.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 用户ocr信息视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2021-06-21
+ */
+@Data
+@ApiModel("用户ocr信息视图对象")
+public class UserOcrVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long ocrId;
+
+	/** 身份证正面 */
+	@Excel(name = "身份证正面")
+	@ApiModelProperty("身份证正面")
+	private String ocrFront;
+	/** 身份证反面 */
+	@Excel(name = "身份证反面")
+	@ApiModelProperty("身份证反面")
+	private String ocrBack;
+	/** 视频最佳帧截图 */
+	@Excel(name = "视频最佳帧截图")
+	@ApiModelProperty("视频最佳帧截图")
+	private String bestFrame;
+	/** ocr信息 */
+	@Excel(name = "ocr信息")
+	@ApiModelProperty("ocr信息")
+	private String ocrInfo;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+
+}

+ 19 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserOcrMapper.xml

@@ -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="com.zhongzheng.system.mapper.UserOcrMapper">
+
+    <resultMap type="com.zhongzheng.system.domain.UserOcr" id="UserOcrResult">
+        <result property="ocrId" column="ocr_id"/>
+        <result property="ocrFront" column="ocr_front"/>
+        <result property="ocrBack" column="ocr_back"/>
+        <result property="bestFrame" column="best_frame"/>
+        <result property="ocrInfo" column="ocr_info"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+
+</mapper>