he2802 vor 2 Jahren
Ursprung
Commit
73d385b0ad
27 geänderte Dateien mit 606 neuen und 14 gelöschten Zeilen
  1. 30 1
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 2 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java
  3. 60 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java
  4. 9 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java
  5. 15 1
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java
  6. 31 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java
  7. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java
  8. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/IClassGradeUserService.java
  9. 88 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  10. 16 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentVo.java
  11. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodUserVo.java
  12. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodVo.java
  13. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodItemExportVo.java
  14. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java
  15. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java
  16. 32 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  17. 6 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderListVo.java
  18. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java
  19. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMapper.java
  20. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java
  21. 7 5
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserLoginErrorServiceImpl.java
  22. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/SectionStudyRecordVo.java
  23. 11 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java
  24. 143 0
      zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml
  25. 102 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml
  26. 21 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml
  27. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserStudyRecordMapper.xml

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

@@ -36,6 +36,8 @@ import com.zhongzheng.modules.base.bo.ConfigQueryBo;
 import com.zhongzheng.modules.base.service.ICertificateTpService;
 import com.zhongzheng.modules.course.bo.ExternalQuestionBo;
 import com.zhongzheng.modules.course.bo.ReplenishExamBo;
+import com.zhongzheng.modules.course.domain.Major;
+import com.zhongzheng.modules.course.service.IMajorService;
 import com.zhongzheng.modules.course.vo.CourseChapterVo;
 import com.zhongzheng.modules.course.vo.ExternalQuestionVo;
 import com.zhongzheng.modules.course.vo.ReplenishExamVo;
@@ -55,9 +57,11 @@ import com.zhongzheng.modules.goods.bo.UserGoodsListBo;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.*;
 import com.zhongzheng.modules.grade.bo.*;
+import com.zhongzheng.modules.grade.mapper.ClassGradeUserMapper;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
 import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.service.IUserPeriodService;
+import com.zhongzheng.modules.grade.vo.ClassGradeUserVo;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
 import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
@@ -164,9 +168,17 @@ public class CommonController extends BaseController {
     @Autowired
     private ICertificateTpService iCertificateTpService;
 
+<<<<<<< HEAD
 
     @Autowired
     private IZsBankService iZsBankService;
+=======
+    @Autowired
+    private ClassGradeUserMapper classGradeUserMapper;
+
+    @Autowired
+    private IMajorService iMajorService;
+>>>>>>> dangAn
     /**
      * 通用下载请求
      *
@@ -807,7 +819,24 @@ public class CommonController extends BaseController {
     @ApiOperation("旧系统post请求")
     @PostMapping("/common/free/clientPost")
     public AjaxResult<Void> clientPost(@RequestBody ClientPostAddBo bo) {
-        return AjaxResult.success(iClassGradeUserService.sendClientPost(bo));
+        ClassGradeUserQueryBo queryBo = new ClassGradeUserQueryBo();
+        queryBo.setUserId(434L);
+        queryBo.setGradeId(1738L);
+        queryBo.setOrderGoodsId(5252L);
+        ClassGradeUserVo userVo = classGradeUserMapper.selectUser(queryBo);
+        Major major = iMajorService.getOne(new LambdaQueryWrapper<Major>()
+                .eq(Major::getId, 38));
+        if("材料员".equals(major.getCategoryName())||"劳务员".equals(major.getCategoryName())||"资料员".equals(major.getCategoryName())){
+            if(userVo.getEduLevel().equals("小学")||userVo.getEduLevel().equals("中学")){
+                userVo.setEduLevel("高中");
+            }
+        }else{
+            if(userVo.getEduLevel().equals("小学")||userVo.getEduLevel().equals("中学")||userVo.getEduLevel().equals("职高")||userVo.getEduLevel().equals("高中")){
+                userVo.setEduLevel("专科");
+            }
+        }
+        System.out.println(userVo);
+        return AjaxResult.success();
     }
 
     @ApiOperation("新考题库导入")

+ 2 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/grade/ClassGradeController.java

@@ -771,4 +771,6 @@ public class ClassGradeController extends BaseController {
         return util.exportExcel(exportVos, goodsVo.getGoodsName());
     }
 
+
+
 }

+ 60 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/DangAnController.java

@@ -0,0 +1,60 @@
+package com.zhongzheng.controller.user;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo;
+import com.zhongzheng.modules.grade.service.IClassGradeUserService;
+import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
+import com.zhongzheng.modules.order.bo.OrderQueryBo;
+import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.OrderListVo;
+import com.zhongzheng.modules.user.bo.UserVisitLogQueryBo;
+import com.zhongzheng.modules.user.service.IUserVisitLogService;
+import com.zhongzheng.modules.user.vo.UserVisitLogVo;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 用户档案Controller
+ *
+ * @author hjl
+ * @date 2022-08-17
+ */
+@Api(value = "用户档案控制器", tags = {"用户档案管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/user/dangAn")
+public class DangAnController extends BaseController {
+
+    private final IClassGradeUserService iClassGradeUserService;
+
+    private final IOrderService iOrderService;
+
+    @ApiOperation("查询档案网课列表")
+    @PreAuthorize("@ss.hasPermi('grade:user:list')")
+    @GetMapping("/listVideoUserPeriod")
+    public TableDataInfo<ClassPeriodStudentVo> listVideoUserPeriod(ClassGradeUserQueryBo bo) {
+        startPage();
+        List<ClassPeriodStudentVo> list = iClassGradeUserService.listVideoUserPeriod(bo);
+        return getDataTable(list);
+    }
+
+    @ApiOperation("查询档案订单列表")
+    @PreAuthorize("@ss.hasPermi('grade:user:list')")
+    @GetMapping("/listOrder")
+    public TableDataInfo<OrderListVo> listDangAnOrder(OrderQueryBo bo) {
+        startPage();
+        List<OrderListVo> list = iOrderService.selectDangAnOrderList(bo);
+        return getDataTable(list);
+    }
+
+
+}

+ 9 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -222,4 +222,13 @@ public class UserController extends BaseController {
     public AjaxResult<Void> updatePwd(@RequestBody UserAppUpdatePwdBo bo) {
         return toAjax(iUserService.updatePwdByClient(bo)? 1 : 0);
     }
+
+    @ApiOperation("查询档案列表")
+    @PreAuthorize("@ss.hasPermi('app:user:list')")
+    @GetMapping("/dangAnList")
+    public TableDataInfo<UserVo> dangAnList(UserQueryBo bo) {
+        startPage();
+        List<UserVo> list = iUserService.dangAnList(bo);
+        return getDataTable(list);
+    }
 }

+ 15 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -235,6 +235,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return list;
     }
 
+    @Override
+    public List<UserVo> dangAnList(UserQueryBo bo) {
+        List<User> list = baseMapper.dangAnList(bo);
+        return entity2UserVo(list);
+    }
+
     @Override
     public List<UserStatstVo> statsList(UserQueryBo bo) {
         List<UserStatstVo> list = new ArrayList<>();
@@ -729,7 +735,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         if(!save(inertData)){
             throw new CustomException("注册失败");
         }
-        iSmsService.sendPwdSms(bo.getTel(),pwd);
+//        iSmsService.sendPwdSms(bo.getTel(),pwd);
         return inertData.getUserId();
     }
 
@@ -1753,20 +1759,28 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         if(Validator.isEmpty(user)){
             iUserLoginErrorService.saveErrorLog(bo.getAccount());
             //判断旧系统是否有账号
+<<<<<<< HEAD
             if (share > 0){
                 oldAccountLogin(bo,1);
             }else {
                 throw new CustomException("登录信息错误");
             }
+=======
+            oldAccountLogin(bo,1);
+>>>>>>> dangAn
         }
         else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
         {
             //判断旧系统是否有账号
+<<<<<<< HEAD
             if (share > 0){
                 oldAccountLogin(bo,1);
             }else {
                 throw new CustomException("对不起,您的账号:已停用");
             }
+=======
+            oldAccountLogin(bo,1);
+>>>>>>> dangAn
         }
         String password = null;
         if(bo.getPwd().length()>20){

+ 31 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/base/service/impl/UserProfileServiceImpl.java

@@ -501,7 +501,7 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
         String keyValue = bo.getKeyValue();
         if (Validator.isNotEmpty(keyValue)) {
             Map<String, String> maps = JSONObject.parseObject(keyValue, Map.class);
-            String recent_photos, idcard_face_photo, idcard_national_photo,work_unit,idcard,name,education,apply_post,telphone,sex;
+            String recent_photos, idcard_face_photo, idcard_national_photo,work_unit,idcard,name,education,apply_post,telphone,sex,school,unit_contact,unit_tel,graduation_time,major;
             LambdaUpdateWrapper<User> objectLambdaUpdateWrapper = Wrappers.lambdaUpdate();
             objectLambdaUpdateWrapper.eq(User::getUserId, bo.getUserId());
             UserVo user = iUserService.queryById(bo.getUserId());
@@ -582,6 +582,36 @@ public class UserProfileServiceImpl extends ServiceImpl<UserProfileMapper, UserP
                     objectLambdaUpdateWrapper.set(User::getSex, sex.equals("男")?1:2);
                 }
             }
+            if (maps.containsKey("school")) {
+                school = JSONObject.parseObject(String.valueOf(maps.get("school")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(school)){
+                    objectLambdaUpdateWrapper.set(User::getSchool, school);
+                }
+            }
+            if (maps.containsKey("unit_contact")) {
+                unit_contact = JSONObject.parseObject(String.valueOf(maps.get("unit_contact")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(unit_contact)){
+                    objectLambdaUpdateWrapper.set(User::getUnitContact, unit_contact);
+                }
+            }
+            if (maps.containsKey("unit_tel")) {
+                unit_tel = JSONObject.parseObject(String.valueOf(maps.get("unit_tel")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(unit_tel)){
+                    objectLambdaUpdateWrapper.set(User::getUnitTel, unit_tel);
+                }
+            }
+            if (maps.containsKey("graduation_time")) {
+                graduation_time = JSONObject.parseObject(String.valueOf(maps.get("graduation_time")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(graduation_time)){
+                    objectLambdaUpdateWrapper.set(User::getGraduationTime, graduation_time);
+                }
+            }
+            if (maps.containsKey("major")) {
+                major = JSONObject.parseObject(String.valueOf(maps.get("major")), UserProfileFit.class).getValue();
+                if(Validator.isNotEmpty(major)){
+                    objectLambdaUpdateWrapper.set(User::getMajor, major);
+                }
+            }
             objectLambdaUpdateWrapper.set(User::getUpdateTime, DateUtils.getNowTime());
             iUserService.update(null, objectLambdaUpdateWrapper);
         }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -100,4 +100,6 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
     Long getPeriodEndTime(ClassGradeUserQueryBo bo);
 
     List<ClassGradeUser> getClassInfoByUser(Long userId);
+
+    List<ClassPeriodStudentVo> listVideoUserPeriod(ClassGradeUserQueryBo bo);
 }

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

@@ -142,4 +142,6 @@ public interface IClassGradeUserService extends IService<ClassGradeUser> {
 
     List<ClassGradeUser> getClassInfoByUser(Long userId);
 
+
+	List<ClassPeriodStudentVo> listVideoUserPeriod(ClassGradeUserQueryBo bo);
 }

+ 88 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -29,10 +29,8 @@ import com.zhongzheng.modules.alioss.service.OssService;
 import com.zhongzheng.modules.base.service.IUserProfileService;
 import com.zhongzheng.modules.course.bo.CourseBusinessQueryBo;
 import com.zhongzheng.modules.course.bo.CourseProjectTypeQueryBo;
-import com.zhongzheng.modules.course.service.ICourseBusinessService;
-import com.zhongzheng.modules.course.service.ICourseEducationTypeService;
-import com.zhongzheng.modules.course.service.ICourseModuleService;
-import com.zhongzheng.modules.course.service.ICourseProjectTypeService;
+import com.zhongzheng.modules.course.domain.Major;
+import com.zhongzheng.modules.course.service.*;
 import com.zhongzheng.modules.course.vo.CourseBusinessVo;
 import com.zhongzheng.modules.course.vo.CourseChapterVo;
 import com.zhongzheng.modules.course.vo.CourseModuleVo;
@@ -191,6 +189,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     @Autowired
     private ISysOldOrgService sysOldOrgService;
 
+    @Autowired
+    private IMajorService iMajorService;
+
 
     private String SEVEN_OFFICIALPUSH_INFOACCOUNT;
     private String SEVEN_OFFICIALPUSH_TOKEN;
@@ -619,7 +620,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         queryBo.setId(goods.getBusinessId());
         String fullName = iCourseBusinessService.queryFullName(queryBo);
         if(fullName.contains("继续教育")&&fullName.contains("施工现场专业人员")){
-            return pushSevenOfficialInfo(bo,userVo,orderGoods);
+            return pushSevenOfficialInfo(bo,userVo,orderGoods,goods);
         }
         Long bmrq = 0L;
         if (Validator.isEmpty(userVo.getClassStartTime())) {
@@ -633,6 +634,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         if (Validator.isEmpty(userVo.getRealName()) || Validator.isEmpty(userVo.getIdCard()) || Validator.isEmpty(userVo.getTelPhone())) {
             return "用户信息缺失";
         }
+        userVo.setRealName(userVo.getRealName().trim());
         if(Validator.isNotEmpty(configService.selectConfigByKeyNoCache("office.account"))){
             OFFICIALPUSH_INFOACCOUNT = configService.selectConfigByKeyNoCache("office.account");
             OFFICIALPUSH_TOKEN = configService.selectConfigByKeyNoCache("office.token");
@@ -689,7 +691,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
     }
 
 
-    public String pushSevenOfficialInfo(ClassGradeUserQueryBo bo,ClassGradeUserVo userVo,OrderGoodsVo orderGoods) {
+    public String pushSevenOfficialInfo(ClassGradeUserQueryBo bo,ClassGradeUserVo userVo,OrderGoodsVo orderGoods,Goods goods) {
         SEVEN_OFFICIALPUSH_INFOACCOUNT=null;
         SEVEN_OFFICIALPUSH_TOKEN=null;
         log.info("报名信息推送" + JSON.toJSONString(bo));
@@ -747,6 +749,20 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         if (Validator.isEmpty(userVo.getEduLevel()) || Validator.isEmpty(userVo.getCompanyName()) || Validator.isEmpty(userVo.getSex())) {
             return "用户详细信息缺失";
         }
+        if(Validator.isEmpty(goods.getMajorId())){
+            throw new CustomException("商品专业不存在");
+        }
+        Major major = iMajorService.getOne(new LambdaQueryWrapper<Major>()
+                .eq(Major::getId, goods.getMajorId()));
+        if("材料员".equals(major.getCategoryName())||"劳务员".equals(major.getCategoryName())||"资料员".equals(major.getCategoryName())){
+            if(userVo.getEduLevel().equals("小学")||userVo.getEduLevel().equals("中学")){
+                userVo.setEduLevel("高中");
+            }
+        }else{
+            if(userVo.getEduLevel().equals("小学")||userVo.getEduLevel().equals("中学")||userVo.getEduLevel().equals("职高")||userVo.getEduLevel().equals("高中")){
+                userVo.setEduLevel("专科");
+            }
+        }
         if (Validator.isEmpty(orderGoods.getSevenYear())) {
             return "商品年份缺失";
         }
@@ -1050,6 +1066,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         if (Validator.isEmpty(userVo)) {
             return "用户不存在";
         }
+        if(Validator.isNotEmpty(userVo.getRealName())){
+            userVo.setRealName(userVo.getRealName().trim());
+        }
         if (Validator.isEmpty(userVo.getInterfacePushId())) {
             return "没开通信息推送";
         }
@@ -1602,6 +1621,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                     exportVo.setStatus(0);
                     exportVo.setDurationTime(classPeriodSectionVo.getDurationTime());
                     exportVo.setSectionType(classPeriodSectionVo.getSectionType());
+                    exportVo.setFromPlat(vo.getFromPlat());
                     studyList.add(exportVo);
                 }
                 endTime = vo.getEndTime();
@@ -2785,15 +2805,20 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         Long startTotalTime = 0L;
         Long endTotalTime = 0L;
         Long secTotalTime = 0L;
+        Long moduleTotal = 0L;
+        Long chapterTotal = 0L;
+        Long sectionTotal = 0L;
         for (ClassPeriodVo classPeriodVo : classPeriodVos) {
             //为模块搜索下面的章 和节 并搜索学时记录
             if (classPeriodVo.getType() == 1) {
+                moduleTotal++;
                 CourseModuleVo moduleVo = iCourseModuleService.queryById(classPeriodVo.getId());
                 List<ClassPeriodChapterVo> classPeriodChapterVos = baseMapper.listperiodChapter(classPeriodVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId(), bo.getGradeId(),bo.getOrderGoodsId());
                 Collections.sort(classPeriodChapterVos);
                 classPeriodChapterVos.addAll(baseMapper.listperiodModuleExam(bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId(), classPeriodVo.getId()));
                 for (ClassPeriodChapterVo classPeriodChapterVo : classPeriodChapterVos) {
                     if (classPeriodChapterVo.getType() == 2) {
+                        chapterTotal++;
                         Long ChapterEndTime = 0L;
                         Long ChapterStartTime = 0L;
                         List<ClassPeriodSectionVo> classPeriodSectionVos = baseMapper.listPeriodSection(classPeriodChapterVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId());
@@ -2801,6 +2826,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                         classPeriodSectionVos.addAll(baseMapper.listperiodExam(classPeriodChapterVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId(), classPeriodVo.getId()));
                         for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos) {
                             if (classPeriodSectionVo.getType() == 3) {
+                                sectionTotal++;
                                 secTotalTime += classPeriodSectionVo.getDurationTime();
                                 //节
                                 UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
@@ -2954,11 +2980,13 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             }
             //为章搜索节记录和学时记录
             if (classPeriodVo.getType() == 2) {
+                chapterTotal++;
                 Long ChapterEndTime = 0L;
                 Long ChapterStartTime = 0L;
                 List<ClassPeriodSectionVo> classPeriodSectionVos = baseMapper.listPeriodSection(classPeriodVo.getId(), bo.getGoodsId(), classPeriodVo.getCourseId(), bo.getUserId());
                 Collections.sort(classPeriodSectionVos);
                 for (ClassPeriodSectionVo classPeriodSectionVo : classPeriodSectionVos) {
+                    sectionTotal++;
                     secTotalTime += classPeriodSectionVo.getDurationTime();
                     UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
                     userPeriodQueryBo.setSectionId(classPeriodSectionVo.getId());
@@ -3075,6 +3103,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
 
             //为节搜索学时记录
             if (classPeriodVo.getType() == 3) {
+                sectionTotal++;
                 secTotalTime += classPeriodVo.getDurationTime();
                 UserPeriodQueryBo userPeriodQueryBo = new UserPeriodQueryBo();
                 userPeriodQueryBo.setSectionId(classPeriodVo.getId());
@@ -3132,6 +3161,9 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
             classPeriodVos.get(0).setStartTotalTime(startTotalTime);
             classPeriodVos.get(0).setEndTotalTime(endTotalTime);
             classPeriodVos.get(0).setSecTotalTime(secTotalTime);
+            classPeriodVos.get(0).setModuleTotal(moduleTotal);
+            classPeriodVos.get(0).setChapterTotal(chapterTotal);
+            classPeriodVos.get(0).setSectionTotal(sectionTotal);
 
         }
         return classPeriodVos;
@@ -3389,6 +3421,56 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         return baseMapper.getClassInfoByUser(userId);
     }
 
+    @Override
+    public List<ClassPeriodStudentVo> listVideoUserPeriod(ClassGradeUserQueryBo bo) {
+        //查询班级学员信息
+        List<ClassPeriodStudentVo> classPeriodStudentVos = baseMapper.listVideoUserPeriod(bo);
+        //查找学员学习记录
+        for (ClassPeriodStudentVo classPeriodStudentVo : classPeriodStudentVos) {
+            Long secLong = 0L;
+            Long studyLong = 0L;
+
+            SubjectStudyRecordQueryBo subjectStudyRecordQueryBo = new SubjectStudyRecordQueryBo();
+            subjectStudyRecordQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            subjectStudyRecordQueryBo.setUserId(classPeriodStudentVo.getUserId());
+            subjectStudyRecordQueryBo.setGradeId(classPeriodStudentVo.getGradeId());
+            List<SubjectStudyRecordVo> subjectStudyRecordVos = iUserStudyRecordService.listSubject(subjectStudyRecordQueryBo);
+            for (SubjectStudyRecordVo subjectStudyRecordVo : subjectStudyRecordVos) {
+                secLong = new BigDecimal(secLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getSectionNum().toString())).longValue();
+                studyLong = new BigDecimal(studyLong.toString()).add(new BigDecimal(subjectStudyRecordVo.getRecordNum().toString())).longValue();
+            }
+            //总节数
+            classPeriodStudentVo.setSecAllNum(secLong);
+            //学习节数
+            classPeriodStudentVo.setStuAllNum(studyLong);
+
+            //总的审核状态按照策划规则
+            ClassGradeUserQueryBo classGradeUserQueryBo = new ClassGradeUserQueryBo();
+            classGradeUserQueryBo.setGradeId(classPeriodStudentVo.getGradeId());
+            classGradeUserQueryBo.setUserId(classPeriodStudentVo.getUserId());
+            classGradeUserQueryBo.setGoodsId(classPeriodStudentVo.getGoodsId());
+            List<ClassPeriodUserVo> classPeriodUserVos1 = baseMapper.listPeriod(classGradeUserQueryBo);
+            ClassPeriodUserVo classPeriodUserVos = classPeriodUserVos1.get(0);
+            classPeriodUserVos.setPending(classPeriodStudentVo.getSecAllNum() - classPeriodUserVos.getPass() - classPeriodUserVos.getCheat());
+            classPeriodUserVos.setExamPending(classPeriodUserVos.getExamNum() - classPeriodUserVos.getExamPass() - classPeriodUserVos.getExamCheat());
+            //當前班級學員審核狀態 -1不可审核 0待審  1未通过 2通过
+            Integer gradePeriodStatus = 0; //班级里的审核状态字段,保持一致 0 未通过 1通过 2待审核 -1 不可审核
+
+            classPeriodStudentVo.setAllStatus(changePeriodStatus(classPeriodStudentVo.getPeriodStatus()));
+
+            classPeriodStudentVo.setWaitRebuildNum(classPeriodUserVos.getCheat() + classPeriodUserVos.getExamCheat());
+            if (!CollectionUtils.isEmpty(baseMapper.selectStart(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId()))) {
+                //查找开始学习时间
+                classPeriodStudentVo.setStartTime(baseMapper.selectStart(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId()).get(0));
+            }else{
+                classPeriodStudentVo.setStartTime(baseMapper.selectStartNoPhoto(classPeriodStudentVo.getUserId(), classPeriodStudentVo.getGoodsId(), classPeriodStudentVo.getGradeId(),classPeriodStudentVo.getOrderGoodsId())
+                );
+            }
+
+        }
+        return classPeriodStudentVos;
+    }
+
 
     /**
      * 实体类转化成视图对象

+ 16 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassPeriodStudentVo.java

@@ -239,4 +239,20 @@ public class ClassPeriodStudentVo {
 	private Long cheat;
 	@ApiModelProperty("試卷作弊节")
 	private Long examCheat;
+	/** 业务名称 */
+	@ApiModelProperty("业务名称")
+	private String businessName;
+
+	/** 项目名称 */
+	@ApiModelProperty("项目名称")
+	private String projectName;
+
+
+	/** 项目名称 */
+	@ApiModelProperty("教育名")
+	private String educationName;
+
+	@ApiModelProperty("专业名")
+	private String categoryName;
+
 }

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

@@ -146,4 +146,8 @@ public class ClassPeriodUserVo {
 	@ApiModelProperty("官方班级")
 	private String officialName;
 	private String sevenYear;
+
+	private Integer sex;
+	@ApiModelProperty("1有效 0无效")
+	private Integer gradeStatus;
 }

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

@@ -217,6 +217,10 @@ public class ClassPeriodVo implements Comparable<ClassPeriodVo> {
 	private Integer doType;
 	@ApiModelProperty("公共标识:1公共章 0非公共章")
 	private Integer commonSign;
+
+	private Long moduleTotal;
+	private Long chapterTotal;
+	private Long sectionTotal;
 	@Override
 	public int compareTo(ClassPeriodVo o) {
 		if(o.getCourseSort()==this.getCourseSort()){

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/UserPeriodItemExportVo.java

@@ -43,5 +43,7 @@ public class UserPeriodItemExportVo {
 	@com.zhongzheng.common.annotation.Excel(name = "准确率")
 	@ApiModelProperty("准确率")
 	private BigDecimal rightRate;
+	@ApiModelProperty("来源平台 1小程序 2PC网站 3h5")
+	private Integer fromPlat;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -23,6 +23,8 @@ import java.util.List;
 public interface OrderMapper extends BaseMapper<Order> {
     List<OrderListVo> selectListByBo(OrderQueryBo bo);
 
+    List<OrderListVo> selectDangAnOrderList(OrderQueryBo bo);
+
     Integer selectUserClass(@Param("goodsId") Long goodsId,@Param("userId") Long userId);
 
     List<OrderListVo> selectListApp(OrderQueryBo bo);

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -39,6 +39,8 @@ public interface IOrderService extends IService<Order> {
 
 	List<OrderListVo> selectList(OrderQueryBo bo);
 
+	List<OrderListVo> selectDangAnOrderList(OrderQueryBo bo);
+
 	List<OrderListVo> selectRebuyList(OrderQueryBo bo);
 
 	List<OrderUserCheckBuyBo> userCheckBuyList(List<OrderUserCheckBuyBo> list);

+ 32 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -280,6 +280,38 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return orderListVos;
     }
 
+    @Override
+    public List<OrderListVo> selectDangAnOrderList(OrderQueryBo bo) {
+        if (Validator.isNotEmpty(bo.getOrderGoodsStatus())) {
+            if (bo.getOrderGoodsStatus() == -1) {
+                Integer[] orderStatus = new Integer[]{-2, -1};
+                bo.setOrderStatus(orderStatus);
+            } else if (bo.getOrderGoodsStatus() == 0) {
+                bo.setGoodsPayStatus(1);
+            } else if (bo.getOrderGoodsStatus() == 1) {
+                //已支付 sql实现
+            } else if (bo.getOrderGoodsStatus() == 2) {
+                bo.setRefundStatus(2);
+            }
+        }
+        List<OrderListVo> orderListVos = this.baseMapper.selectListByBo(bo);
+        for (OrderListVo vo : orderListVos) {
+            //商品订单状态 -1关闭 0待支付 1已支付 2已退款
+            if (Validator.isEmpty(vo.getRefundStatus())) {
+                vo.setOrderGoodsStatus(-1);
+            } else if (vo.getRefundStatus() == 2) {
+                vo.setOrderGoodsStatus(2);
+            } else if (vo.getOrderStatus() < 0) {
+                vo.setOrderGoodsStatus(-1);
+            } else if (vo.getGoodsPayStatus() == 1) {
+                vo.setOrderGoodsStatus(0);
+            } else if (vo.getGoodsPayStatus() > 1) {
+                vo.setOrderGoodsStatus(1);
+            }
+        }
+        return orderListVos;
+    }
+
     @Override
     public List<OrderListVo> selectRebuyList(OrderQueryBo bo) {
         List<OrderListVo> orderListVos = this.baseMapper.selectRebuyList(bo);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderListVo.java

@@ -248,4 +248,10 @@ public class OrderListVo {
 
     @ApiModelProperty("审批状态 0 待审核 1初审通过 2复审通过待退款  -1初审不通过 -2复审不通过 3已退款")
     private Integer periodStatus;
+
+    @ApiModelProperty("服务有效期开始")
+    private Long serviceStartTime;
+
+    @ApiModelProperty("服务有效期结束")
+    private Long serviceEndTime;
 }

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/domain/User.java

@@ -228,4 +228,11 @@ private static final long serialVersionUID=1L;
     /** 题库商家名称 */
     private String questionMerchantName;
 
+    private String unitContact;
+
+    private String unitTel;
+
+    private String school;
+
+    private String graduationTime;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMapper.java

@@ -35,6 +35,8 @@ public interface UserMapper extends BaseMapper<User> {
 //    @InterceptorIgnore(tenantLine = "true")
     List<User> selectListNoTenant(UserQueryBo bo);
 
+    List<User> dangAnList(UserQueryBo bo);
+
     List<UserStudyRecordVo> selectStudyRecordList(UserStudyRecordQueryBo bo);
 
     Integer selectByRankOneByTime(@Param("hourse") Integer toInt,@Param("startTime") long startTime,@Param("endTime") long endTime);

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

@@ -35,6 +35,9 @@ public interface IUserService extends IService<User> {
 
 	List<UserVo> selectList(UserQueryBo bo);
 
+
+	List<UserVo> dangAnList(UserQueryBo bo);
+
 	List<UserStatstVo> statsList(UserQueryBo bo);
 
 	List<UserExportVo> selectListExport(UserQueryBo bo);

+ 7 - 5
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserLoginErrorServiceImpl.java

@@ -103,11 +103,13 @@ public class UserLoginErrorServiceImpl extends ServiceImpl<UserLoginErrorMapper,
         lqwExam.eq(UserLoginError::getDate, DateUtils.getTodayZeroTime());
         Integer count = baseMapper.selectCount(lqwExam);
         String jsonStr = configService.selectConfigByKey("home.header");
-        JSONObject objectJson = JSON.parseObject(jsonStr);
-        if(Validator.isNotEmpty(objectJson)&&objectJson.containsKey("loginLimit")){
-            Integer maxCount = objectJson.getInteger("loginLimit");
-            if(maxCount>0&&count>=maxCount){
-                throw new CustomException("今天你的错误次数已超过"+maxCount+"次,请明天再登录");
+        if(Validator.isNotEmpty(jsonStr)){
+            JSONObject objectJson = JSON.parseObject(jsonStr);
+            if(Validator.isNotEmpty(objectJson)&&objectJson.containsKey("loginLimit")){
+                Integer maxCount = objectJson.getInteger("loginLimit");
+                if(maxCount>0&&count>=maxCount){
+                    throw new CustomException("今天你的错误次数已超过"+maxCount+"次,请明天再登录");
+                }
             }
         }
         return true;

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/SectionStudyRecordVo.java

@@ -128,4 +128,6 @@ public class SectionStudyRecordVo {
     private Long examId;
     /** 题卷类型 1章卷 2节卷 3模块卷 */
     private Integer examType;
+    @ApiModelProperty("来源平台 1小程序 2PC网站 3h5")
+    private Integer fromPlat;
 }

+ 11 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserVo.java

@@ -297,6 +297,17 @@ public class UserVo {
 	@ApiModelProperty("教务电话")
 	private String eduPhone;
 
+	@ApiModelProperty("单位联系人")
+	private String unitContact;
+
+	@ApiModelProperty("单位联系电话")
+	private String unitTel;
+
+	@ApiModelProperty("毕业院校")
+	private String school;
+	@ApiModelProperty("毕业时间")
+	private String graduationTime;
+
 	public void setNull(){
 		this.setOpenId(null);
 /*		this.setIdCardImg1(null);

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

@@ -136,6 +136,10 @@
         <result property="onLineTime" column="on_line_time"/>
         <result property="orderGoodsId" column="order_goods_id"/>
         <result property="sevenYear" column="seven_year"/>
+        <result property="businessName" column="business_name"/>
+        <result property="projectName" column="project_name"/>
+        <result property="educationName" column="education_name"/>
+        <result property="categoryName" column="category_name"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodUserVo" id="ClassPeriodUserVo">
@@ -168,6 +172,8 @@
         <result property="classEndTime" column="class_end_time"/>
         <result property="officialName" column="official_name"/>
         <result property="sevenYear" column="seven_year"/>
+        <result property="gradeStatus" column="grade_status"/>
+        <result property="sex" column="sex"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassPeriodVo" id="ClassPeriodVo">
@@ -865,6 +871,7 @@
         u.id_card,
         u.user_id,
         u.telphone,
+        u.sex,
         g.goods_id,
         g.goods_name,
         cg.class_name,
@@ -872,6 +879,7 @@
         cg.class_start_time,
         cg.class_end_time,
         cg.official_name,
+        cg.status as grade_status,
         g.class_hours,
         u.one_inch_photos,
         u.id_card_img1,
@@ -1752,4 +1760,139 @@
 	            ) > 0
 	            AND cgu.user_id = #{userId}
     </select>
+
+    <select id="listVideoUserPeriod" parameterType="com.zhongzheng.modules.grade.bo.ClassGradeUserQueryBo"
+            resultMap="ClassPeriodStudentVo">
+        SELECT
+        u.user_account,
+        u.user_id,
+        cgu.`status`,
+        u.realname,
+        og.goods_id,
+        u.id_card,
+        cgu.grade_id,
+        u.telphone,
+        u.one_inch_photos,
+        g.class_hours as class_hours,
+        g.study_start_time as study_start_time,
+        g.study_end_time as study_end_time,
+        g.goods_name,
+        g.code as goods_code,
+        g.stand_price,
+        cgu.period_status,
+        cg.class_start_time,
+        cg.class_end_time,
+        cg.class_name,
+        cgu.period_plush,
+        cgu.period_status_num,
+        cgu.period_time,
+        cgu.order_goods_id,
+        IFNULL(ge.exam_num,0) as exam_num,
+        cgu.period_wait_time as end_time,
+        (SELECT og.seven_year FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as seven_year,
+        (SELECT og.service_start_time FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as service_start_time,
+        (SELECT og.service_end_time FROM order_goods og  where og.order_goods_id = cgu.order_goods_id ) as service_end_time,
+        (SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.`type` in (1,3) and ubr.report_status=1 and ubr.order_goods_id = cgu.order_goods_id and ubr.grade_id = cgu.grade_id and ubr.user_id = cgu.user_id and ubr.current_status = 1) as record_num,
+        cet.education_name,
+        cpt.project_name,
+        m.category_name,
+        cb.business_name
+        FROM
+        class_grade_user cgu
+        LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+        LEFT JOIN order_goods og ON cgu.order_goods_id = og.order_goods_id
+        LEFT JOIN `user` u ON u.user_id = cgu.user_id
+        LEFT JOIN goods g on og.goods_id = g.goods_id
+        LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        LEFT JOIN course_business cb ON g.business_id = cb.id
+        LEFT JOIN major m ON g.major_id = m.id
+        LEFT JOIN (SELECT
+        COUNT( m.id ) AS exam_num,
+        c.goods_id
+        FROM
+        course_menu_exam m
+        LEFT JOIN goods_course c ON m.course_id = c.course_id
+        where
+        m.type in (1,3)
+        GROUP BY c.goods_id ) ge on og.goods_id = ge.goods_id
+        where 1=1
+        and cgu.`status` =1
+        <if test="periodPlush != null and periodPlush != ''">
+            AND cgu.period_plush = #{periodPlush}
+        </if>
+        <if test="officialStatus != null and officialStatus != ''">
+            AND cgu.official_status = #{officialStatus}
+        </if>
+        <if test="changeGrade != null and changeGrade != ''">
+            AND cgu.change_grade = #{changeGrade}
+        </if>
+        <if test="profileStatus != null and profileStatus != ''">
+            AND up.status = #{profileStatus}
+        </if>
+        <if test="gradeId != null and gradeId !='' ">
+            and cgu.grade_id = #{gradeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="projectId != null and projectId != ''">
+            AND g.project_id = #{projectId}
+        </if>
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="schoolId != null and schoolId != ''">
+            AND g.school_id = #{schoolId}
+        </if>
+        <if test="majorId != null and majorId != ''">
+            AND g.major_id = #{majorId}
+        </if>
+        <if test="periodStatus != null ">
+            and cgu.period_status = #{periodStatus}
+        </if>
+        <if test="classStartTime != null and classStartTime != '' ">
+            AND cg.class_start_time >= #{classStartTime}
+        </if>
+        <if test="classEndTime != null and classEndTime != '' ">
+            AND #{classEndTime} >=  cg.class_end_time
+        </if>
+        <if test="studyStatus != null and studyStatus == 1 ">
+            and cgu.period_status = -1
+        </if>
+        <if test="studyStatus != null and studyStatus == 2 ">
+            and cgu.period_status != -1
+        </if>
+        <if test="className != null and className !='' ">
+            and  cg.class_name like concat('%', #{className}, '%')
+        </if>
+        <if test="searchKey != null and searchKey != '' ">
+            and (u.realname like concat('%', #{searchKey}, '%')
+            or u.id_card like concat('%', #{searchKey,typeHandler=com.zhongzheng.common.type.EncryptHandler}, '%')
+            or g.goods_name like concat('%', #{searchKey}, '%')
+            or cg.class_name like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="userId != null and userId !='' ">
+            AND u.user_id = #{userId}
+        </if>
+        <if test="idCard != null and idCard !='' ">
+            AND u.id_card = #{idCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
+        </if>
+        <if test="telphone != null and telphone !='' ">
+            AND u.telphone = #{telphone,typeHandler=com.zhongzheng.common.type.EncryptHandler}
+        </if>
+        <if test="searchStartTime != null and searchStartTime !='' ">
+            AND cgu.create_time >=#{searchStartTime}
+        </if>
+        <if test="searchEndTime != null and searchEndTime !='' ">
+            AND #{searchEndTime} >= cgu.create_time
+        </if>
+        <if test="periodStartTime != null and periodStartTime !='' ">
+            AND cgu.period_time >=#{periodStartTime}
+        </if>
+        <if test="periodEndTime != null and periodEndTime !='' ">
+            AND #{periodEndTime} >= cgu.period_time
+        </if>
+        order by cgu.create_time desc
+    </select>
 </mapper>

+ 102 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -76,6 +76,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="goodsPayStatus" column="goods_pay_status"/>
         <result property="goodsType" column="goods_type"/>
         <result property="invoiceStatus" column="invoice_status"/>
+        <result property="serviceStartTime" column="service_start_time"/>
+        <result property="serviceEndTime" column="service_end_time"/>
     </resultMap>
 
     <select id="getGradePeriod" parameterType="Map" resultType="integer">
@@ -199,6 +201,106 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY o.order_id DESC
     </select>
 
+    <select id="selectDangAnOrderList" parameterType="com.zhongzheng.modules.order.bo.OrderQueryBo" resultMap="OrderResultVo">
+        SELECT
+        o.*,
+        g.goods_id,
+        g.goods_name,
+        g.year,
+        g.cover_url,
+        g.code,
+        g.goods_type,
+        og.goods_price,
+        og.rebuy_order_goods_id,
+        og.order_goods_id,
+        og.goods_real_price,
+        u.telphone,
+        u.realname,
+        u.id_card,
+        cet.education_name,
+        cpt.project_name,
+        cb.business_name,
+        og.goods_received,
+        og.refund_status,
+        og.pay_status as goods_pay_status,
+        og.service_start_time,
+        og.service_end_time
+        FROM
+        `order` o
+        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        LEFT JOIN `user` u ON o.user_id = u.user_id
+        LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        LEFT JOIN course_business cb ON g.business_id = cb.id
+        WHERE 1=1
+
+        <if test="educationTypeId != null and educationTypeId != ''">
+            AND g.education_type_id = #{educationTypeId}
+        </if>
+        <if test="businessId != null and businessId != ''">
+            AND g.business_id = #{businessId}
+        </if>
+        <if test="orderSn != null and orderSn != ''">
+            AND o.order_sn = #{orderSn}
+        </if>
+        <if test="orderStatus != null ">
+            AND o.order_status in
+            <foreach collection="orderStatus" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="status != null ">
+            AND o.status in
+            <foreach collection="status" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="orderGoodsStatus == 1">
+            AND og.pay_status in (2,3,4) AND og.refund_status != 2
+        </if>
+        <if test="startTime != null">
+            AND o.create_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            AND #{endTime} >= o.create_time
+        </if>
+        <if test="payStatus != null">
+            AND o.pay_status = #{payStatus}
+        </if>
+        <if test="goodsPayStatus != null">
+            AND og.pay_status = #{goodsPayStatus}
+        </if>
+        <if test="refundStatus != null">
+            AND og.refund_status = #{refundStatus}
+        </if>
+        <if test="goodsType != null">
+            AND g.goods_type = #{goodsType}
+        </if>
+        <if test="userId != null">
+            AND u.user_id = #{userId}
+        </if>
+        <if test="inputOrderSn != null">
+            AND o.input_order_sn = #{inputOrderSn}
+        </if>
+        <if test="searchKey != null and searchKey != ''">
+            AND (u.realname like concat('%', #{searchKey}, '%') or o.order_sn = #{searchKey} or u.id_card = #{searchKey} or g.goods_name like concat('%', #{searchKey}, '%'))
+        </if>
+        <if test="orderGoodsIds != null ">
+            AND og.order_goods_id in
+            <foreach collection="orderGoodsIds" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="orderFroms != null ">
+            AND o.order_from in
+            <foreach collection="orderFroms" item="item" index="index" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY o.order_id DESC
+    </select>
+
     <select id="selectRebuyList" parameterType="com.zhongzheng.modules.order.bo.OrderQueryBo" resultMap="OrderResultVo">
         SELECT
         o.*,

+ 21 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -60,6 +60,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="job" column="job"/>
         <result property="shareCode" column="share_code"/>
         <result property="pwdTime" column="pwd_time"/>
+        <result property="unitContact" column="unit_contact"/>
+        <result property="unitTel" column="unit_tel"/>
+        <result property="school" column="school"/>
+        <result property="graduationTime" column="graduation_time"/>
     </resultMap>
 
 
@@ -695,4 +699,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	        AND o.tenant_id = #{tenantId}
     </select>
 
+    <select id="dangAnList" parameterType="com.zhongzheng.modules.user.bo.UserQueryBo" resultMap="UserResult">
+        SELECT u.* from `user` u where  1=1
+        <if test="telphone != null and telphone != ''" >
+            AND u.telphone like concat('%', #{telphone,typeHandler=com.zhongzheng.common.type.EncryptHandler}, '%')
+        </if>
+        <if test="idCard != null and idCard != ''" >
+            AND u.id_card like concat('%', #{idCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}, '%')
+        </if>
+        <if test="realname != null and realname != ''" >
+            AND u.realname like concat('%', #{realname}, '%')
+        </if>
+        <if test="companyName != null and companyName != ''" >
+            AND u.company_name like concat('%', #{companyName}, '%')
+        </if>
+        order by u.user_id desc
+    </select>
+
 </mapper>

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

@@ -99,6 +99,7 @@
         <result property="liveEndTime" column="live_end_time"/>
         <result property="recordingUrl" column="recording_url"/>
         <result property="updateTime" column="update_time"/>
+        <result property="fromPlat" column="from_plat"/>
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.user.vo.ExamStudyRecordVo" id="ExamStudyRecordVoResult">