Просмотр исходного кода

Merge remote-tracking branch 'origin/dev' into dev

yangdamao 2 лет назад
Родитель
Сommit
8f82326462
33 измененных файлов с 969 добавлено и 125 удалено
  1. 7 1
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopOrderRecNoteController.java
  2. 13 0
      zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderCheckLogController.java
  3. 80 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsQuestionRelExamController.java
  4. 45 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamAddBo.java
  5. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamEditBo.java
  6. 57 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamQueryBo.java
  7. 47 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/GoodsQuestionRelExam.java
  8. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsQuestionRelExamMapper.java
  9. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsQuestionRelExamService.java
  10. 105 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsQuestionRelExamServiceImpl.java
  11. 51 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsQuestionRelExamVo.java
  12. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/service/impl/TopDivideLogServiceImpl.java
  13. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideLogVo.java
  14. 2 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideOrderVo.java
  15. 4 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderCheckLogEditBo.java
  16. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderCheckLogService.java
  17. 56 21
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderCheckLogServiceImpl.java
  18. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderVo.java
  19. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderBankPayAddBo.java
  20. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteAddBo.java
  21. 5 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteEditBo.java
  22. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteQueryBo.java
  23. 3 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/domain/TopOrderBankPay.java
  24. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/domain/TopOrderRecNote.java
  25. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/ITopOrderRecNoteService.java
  26. 212 93
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderBankPayServiceImpl.java
  27. 26 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderRecNoteServiceImpl.java
  28. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderRecNoteVo.java
  29. 20 0
      zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsQuestionRelExamMapper.xml
  30. 72 2
      zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml
  31. 12 3
      zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideOrderMapper.xml
  32. 2 1
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml
  33. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderRecNoteMapper.xml

+ 7 - 1
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/financial/TopOrderRecNoteController.java

@@ -76,5 +76,11 @@ public class TopOrderRecNoteController extends BaseController {
         return toAjax(iTopOrderRecNoteService.updateByEditBo(bo) ? 1 : 0);
     }
 
-
+    @ApiOperation("批量修改订单收款提醒")
+    @PreAuthorize("@ss.hasPermi('system:note:edit')")
+    @Log(title = "批量修改订单收款提醒", businessType = BusinessType.UPDATE)
+    @PostMapping("/editBatch")
+    public AjaxResult<Void> editBatch(@RequestBody List<TopOrderRecNoteEditBo> bo) {
+        return toAjax(iTopOrderRecNoteService.updateByBatchEditBo(bo) ? 1 : 0);
+    }
 }

+ 13 - 0
zhongzheng-admin-saas/src/main/java/com/zhongzheng/controller/order/TopOldOrderCheckLogController.java

@@ -109,4 +109,17 @@ public class TopOldOrderCheckLogController extends BaseController {
         }
         return toAjax(iTopOldOrderCheckLogService.updateBatchDivideByEditBo(bo) ? 1 : 0);
     }
+
+    @ApiOperation("批量修改月份分成审核记录")
+    @PreAuthorize("@ss.hasPermi('system:log:edit')")
+    @Log(title = "批量修改月份分成审核记录", businessType = BusinessType.UPDATE)
+    @PostMapping("/updateBatchDivideByMonthEditBo")
+    public AjaxResult<Void> updateBatchDivideByMonthEditBo(@RequestBody List<TopOldOrderCheckLogEditBo> bo) {
+        TopLoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        for(TopOldOrderCheckLogEditBo editBo : bo){
+            editBo.setLoginId(loginUser.getUser().getUserId());
+            editBo.setLoginName(loginUser.getUser().getUserName());
+        }
+        return toAjax(iTopOldOrderCheckLogService.updateBatchDivideByMonthEditBo(bo) ? 1 : 0);
+    }
 }

+ 80 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsQuestionRelExamController.java

@@ -0,0 +1,80 @@
+package com.zhongzheng.controller.goods;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.common.core.page.TableDataInfo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamAddBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamEditBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamQueryBo;
+import com.zhongzheng.modules.goods.service.IGoodsQuestionRelExamService;
+import com.zhongzheng.modules.goods.vo.GoodsQuestionRelExamVo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.zhongzheng.common.annotation.Log;
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.enums.BusinessType;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 三方题库试卷记录Controller
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Api(value = "三方题库试卷记录控制器", tags = {"三方题库试卷记录管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/goods/rel/exam")
+public class GoodsQuestionRelExamController extends BaseController {
+
+    private final IGoodsQuestionRelExamService iGoodsQuestionRelExamService;
+
+    /**
+     * 查询三方题库试卷记录列表
+     */
+    @ApiOperation("查询三方题库试卷记录列表")
+    @PreAuthorize("@ss.hasPermi('system:exam:list')")
+    @GetMapping("/list")
+    public TableDataInfo<GoodsQuestionRelExamVo> list(GoodsQuestionRelExamQueryBo bo) {
+        startPage();
+        List<GoodsQuestionRelExamVo> list = iGoodsQuestionRelExamService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    /**
+     * 获取三方题库试卷记录详细信息
+     */
+    @ApiOperation("获取三方题库试卷记录详细信息")
+    @PreAuthorize("@ss.hasPermi('system:exam:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<GoodsQuestionRelExamVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iGoodsQuestionRelExamService.queryById(id));
+    }
+
+    /**
+     * 新增三方题库试卷记录
+     */
+    @ApiOperation("新增三方题库试卷记录")
+    @PreAuthorize("@ss.hasPermi('system:exam:add')")
+    @Log(title = "三方题库试卷记录", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody GoodsQuestionRelExamAddBo bo) {
+        return toAjax(iGoodsQuestionRelExamService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+   
+}

+ 45 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamAddBo.java

@@ -0,0 +1,45 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+
+/**
+ * 三方题库试卷记录添加对象 goods_question_rel_exam
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Data
+@ApiModel("三方题库试卷记录添加对象")
+public class GoodsQuestionRelExamAddBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long relId;
+    /** 获取第三方试卷ID */
+    @ApiModelProperty("获取第三方试卷ID")
+    private Long examId;
+    /** 学员预约ID */
+    @ApiModelProperty("学员预约ID")
+    private Long userSubscribeId;
+    /** 状态 1正常 0关闭 */
+    @ApiModelProperty("状态 1正常 0关闭")
+    private Integer status;
+    /** 添加时间 */
+    @ApiModelProperty("添加时间")
+    private Long createTime;
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+    /** 用户ID */
+    @ApiModelProperty("用户ID")
+    private Long userId;
+    /** 过期时间 */
+    @ApiModelProperty("过期时间")
+    private Long expTime;
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamEditBo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.goods.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 三方题库试卷记录编辑对象 goods_question_rel_exam
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Data
+@ApiModel("三方题库试卷记录编辑对象")
+public class GoodsQuestionRelExamEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long relId;
+
+    /** 获取第三方试卷ID */
+    @ApiModelProperty("获取第三方试卷ID")
+    private Long examId;
+
+    /** 学员预约ID */
+    @ApiModelProperty("学员预约ID")
+    private Long userSubscribeId;
+
+    /** 状态 1正常 0关闭 */
+    @ApiModelProperty("状态 1正常 0关闭")
+    private Integer status;
+
+    /** 修改时间 */
+    @ApiModelProperty("修改时间")
+    private Long updateTime;
+
+
+    /** 用户ID */
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
+    /** 过期时间 */
+    @ApiModelProperty("过期时间")
+    private Long expTime;
+
+}

+ 57 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/bo/GoodsQuestionRelExamQueryBo.java

@@ -0,0 +1,57 @@
+package com.zhongzheng.modules.goods.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;
+
+/**
+ * 三方题库试卷记录分页查询对象 goods_question_rel_exam
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("三方题库试卷记录分页查询对象")
+public class GoodsQuestionRelExamQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** $column.columnComment */
+	@ApiModelProperty("$column.columnComment")
+	private Long relId;
+	/** 获取第三方试卷ID */
+	@ApiModelProperty("获取第三方试卷ID")
+	private Long examId;
+	/** 学员预约ID */
+	@ApiModelProperty("学员预约ID")
+	private Long userSubscribeId;
+	/** 状态 1正常 0关闭 */
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	/** 用户ID */
+	@ApiModelProperty("用户ID")
+	private Long userId;
+	/** 过期时间 */
+	@ApiModelProperty("过期时间")
+	private Long expTime;
+}

+ 47 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/domain/GoodsQuestionRelExam.java

@@ -0,0 +1,47 @@
+package com.zhongzheng.modules.goods.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;
+
+/**
+ * 三方题库试卷记录对象 goods_question_rel_exam
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("goods_question_rel_exam")
+public class GoodsQuestionRelExam implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** $column.columnComment */
+    private Long relId;
+    /** 获取第三方试卷ID */
+    private Long examId;
+    /** 学员预约ID */
+    private Long userSubscribeId;
+    /** 状态 1正常 0关闭 */
+    private Integer status;
+    /** 添加时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** 修改时间 */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 用户ID */
+    private Long userId;
+    /** 过期时间 */
+    private Long expTime;
+}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsQuestionRelExamMapper.java

@@ -0,0 +1,15 @@
+package com.zhongzheng.modules.goods.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.goods.domain.GoodsQuestionRelExam;
+
+/**
+ * 三方题库试卷记录Mapper接口
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+public interface GoodsQuestionRelExamMapper extends BaseMapper<GoodsQuestionRelExam> {
+
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsQuestionRelExamService.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.goods.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamAddBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamEditBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamQueryBo;
+import com.zhongzheng.modules.goods.domain.GoodsQuestionRelExam;
+import com.zhongzheng.modules.goods.vo.GoodsQuestionRelExamVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 三方题库试卷记录Service接口
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+public interface IGoodsQuestionRelExamService extends IService<GoodsQuestionRelExam> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	GoodsQuestionRelExamVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<GoodsQuestionRelExamVo> queryList(GoodsQuestionRelExamQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入三方题库试卷记录
+	 * @param bo 三方题库试卷记录新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(GoodsQuestionRelExamAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改三方题库试卷记录
+	 * @param bo 三方题库试卷记录编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(GoodsQuestionRelExamEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 105 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsQuestionRelExamServiceImpl.java

@@ -0,0 +1,105 @@
+package com.zhongzheng.modules.goods.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamAddBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamEditBo;
+import com.zhongzheng.modules.goods.bo.GoodsQuestionRelExamQueryBo;
+import com.zhongzheng.modules.goods.domain.GoodsQuestionRelExam;
+import com.zhongzheng.modules.goods.mapper.GoodsQuestionRelExamMapper;
+import com.zhongzheng.modules.goods.service.IGoodsQuestionRelExamService;
+import com.zhongzheng.modules.goods.vo.GoodsQuestionRelExamVo;
+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;
+
+/**
+ * 三方题库试卷记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Service
+public class GoodsQuestionRelExamServiceImpl extends ServiceImpl<GoodsQuestionRelExamMapper, GoodsQuestionRelExam> implements IGoodsQuestionRelExamService {
+
+    @Override
+    public GoodsQuestionRelExamVo queryById(Long id){
+        GoodsQuestionRelExam db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, GoodsQuestionRelExamVo.class);
+    }
+
+    @Override
+    public List<GoodsQuestionRelExamVo> queryList(GoodsQuestionRelExamQueryBo bo) {
+        LambdaQueryWrapper<GoodsQuestionRelExam> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRelId() != null, GoodsQuestionRelExam::getRelId, bo.getRelId());
+        lqw.eq(bo.getExamId() != null, GoodsQuestionRelExam::getExamId, bo.getExamId());
+        lqw.eq(bo.getUserSubscribeId() != null, GoodsQuestionRelExam::getUserSubscribeId, bo.getUserSubscribeId());
+        lqw.eq(bo.getStatus() != null, GoodsQuestionRelExam::getStatus, bo.getStatus());
+        lqw.eq(bo.getUserId() != null, GoodsQuestionRelExam::getUserId, bo.getUserId());
+        lqw.eq(bo.getExpTime() != null, GoodsQuestionRelExam::getExpTime, bo.getExpTime());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<GoodsQuestionRelExamVo> entity2Vo(Collection<GoodsQuestionRelExam> collection) {
+        List<GoodsQuestionRelExamVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, GoodsQuestionRelExamVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<GoodsQuestionRelExam> page = (Page<GoodsQuestionRelExam>)collection;
+            Page<GoodsQuestionRelExamVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(GoodsQuestionRelExamAddBo bo) {
+        GoodsQuestionRelExam add = BeanUtil.toBean(bo, GoodsQuestionRelExam.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(GoodsQuestionRelExamEditBo bo) {
+        GoodsQuestionRelExam update = BeanUtil.toBean(bo, GoodsQuestionRelExam.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(GoodsQuestionRelExam entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsQuestionRelExamVo.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.goods.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;
+
+
+
+/**
+ * 三方题库试卷记录视图对象 mall_package
+ *
+ * @author ruoyi
+ * @date 2023-08-14
+ */
+@Data
+@ApiModel("三方题库试卷记录视图对象")
+public class GoodsQuestionRelExamVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** $column.columnComment */
+	@Excel(name = "${comment}" , readConverterExp = "$column.readConverterExp()")
+	@ApiModelProperty("$column.columnComment")
+	private Long relId;
+	/** 获取第三方试卷ID */
+	@Excel(name = "获取第三方试卷ID")
+	@ApiModelProperty("获取第三方试卷ID")
+	private Long examId;
+	/** 学员预约ID */
+	@Excel(name = "学员预约ID")
+	@ApiModelProperty("学员预约ID")
+	private Long userSubscribeId;
+	/** 状态 1正常 0关闭 */
+	@Excel(name = "状态 1正常 0关闭")
+	@ApiModelProperty("状态 1正常 0关闭")
+	private Integer status;
+	/** 用户ID */
+	@Excel(name = "用户ID")
+	@ApiModelProperty("用户ID")
+	private Long userId;
+	/** 过期时间 */
+	@Excel(name = "过期时间")
+	@ApiModelProperty("过期时间")
+	private Long expTime;
+}

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/service/impl/TopDivideLogServiceImpl.java

@@ -65,6 +65,7 @@ public class TopDivideLogServiceImpl extends ServiceImpl<TopDivideLogMapper, Top
         SysTenantVo tenantVo = iSysTenantService.queryById(Long.parseLong(db.getTenantId()));
         TopDivideLogVo divideLogVo = BeanUtil.toBean(db, TopDivideLogVo.class);
         divideLogVo.setTenantName(tenantVo.getTenantName());
+        divideLogVo.setBillType(tenantVo.getBillType());
         return divideLogVo;
     }
 

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideLogVo.java

@@ -125,6 +125,10 @@ public class TopDivideLogVo {
 	/** 银行名称 */
 	@ApiModelProperty("银行名称")
 	private String toBankTypeName;
+	@ApiModelProperty("角色ID")
+	private Long roleId;
 
+	@ApiModelProperty("审核意见")
+	private String checkReason;
 
 }

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/vo/TopDivideOrderVo.java

@@ -132,6 +132,7 @@ public class TopDivideOrderVo {
 	private String toBankTypeName;
 	@ApiModelProperty("支付时间")
 	private Long payTime;
-
+	@ApiModelProperty("审核意见")
+	private String checkReason;
 
 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderCheckLogEditBo.java

@@ -50,7 +50,7 @@ public class TopOldOrderCheckLogEditBo {
     private Long updateTime;
 
     /** 审核来源 1退款 2机构分成应付 3业务员提成 */
-    @ApiModelProperty("审核来源 1退款 2机构分成应付 3业务员提成")
+    @ApiModelProperty("审核来源 1退款 2机构分成应付 3业务员提成 4佣金结算")
     private Integer checkFrom;
 
     /** 订单号 */
@@ -74,4 +74,7 @@ public class TopOldOrderCheckLogEditBo {
 
     @ApiModelProperty("审核角色名称")
     private String checkRoleName;
+
+    @ApiModelProperty("月份ID")
+    private Long divideLogId;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopOldOrderCheckLogService.java

@@ -47,6 +47,8 @@ public interface ITopOldOrderCheckLogService extends IService<TopOldOrderCheckLo
 
 	Boolean updateBatchDivideByEditBo(List<TopOldOrderCheckLogEditBo> bo);
 
+	Boolean updateBatchDivideByMonthEditBo(List<TopOldOrderCheckLogEditBo> bo);
+
 	/**
 	 * 校验并删除数据
 	 * @param ids 主键集合

+ 56 - 21
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderCheckLogServiceImpl.java

@@ -6,8 +6,10 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.zhongzheng.common.core.domain.entity.TopSysRole;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.activity.domain.ActivityGoodsPrice;
 import com.zhongzheng.modules.top.financial.bo.TopDivideOrderQueryBo;
 import com.zhongzheng.modules.top.financial.domain.TopDivideLog;
 import com.zhongzheng.modules.top.financial.domain.TopDivideOrder;
@@ -25,6 +27,7 @@ import com.zhongzheng.modules.top.goods.service.ITopOldOrderCheckLogService;
 import com.zhongzheng.modules.top.goods.service.ITopOldOrderService;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderCheckLogVo;
 import com.zhongzheng.modules.top.user.domain.TopSysUserRole;
+import com.zhongzheng.modules.top.user.service.ITopSysRoleService;
 import com.zhongzheng.modules.top.user.service.ITopSysUserRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -51,6 +54,9 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
     @Autowired
     private ITopSysUserRoleService topSysUserRoleService;
 
+    @Autowired
+    private ITopSysRoleService iTopSysRoleService;
+
     @Autowired
     private ITopOldOrderService iTopOldOrderService;
 
@@ -60,6 +66,7 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
     @Autowired
     private ITopDivideLogService iTopDivideLogService;
 
+
     @Override
     public TopOldOrderCheckLogVo queryById(Long id){
         TopOldOrderCheckLog db = this.baseMapper.selectById(id);
@@ -143,6 +150,12 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
         if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
             throw new CustomException("当前账号没有审核权限");
         }
+        TopSysRole checkRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
+                .eq(TopSysRole::getRoleId, checkLog.getRoleId())
+                .last("limit 1"));
+        if(Validator.isNotEmpty(checkRole)&&"统计".equals(checkRole.getRoleName())&&bo.getCheckResult()==-1){
+            throw new CustomException("统计角色无法拒绝审核");
+        }
         switch (bo.getCheckResult()) {
             case 1://同意
                 consentCheck(checkLog, bo);
@@ -165,6 +178,26 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateBatchDivideByMonthEditBo(List<TopOldOrderCheckLogEditBo> bo) {
+        for(TopOldOrderCheckLogEditBo editBo : bo){
+            if(Validator.isEmpty(editBo.getDivideLogId())||Validator.isEmpty(editBo.getCheckFrom())||Validator.isEmpty(editBo.getCheckResult())){
+                throw new CustomException("缺少月份ID或其他参数");
+            }
+            TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
+            queryBo.setDivideLogId(editBo.getDivideLogId());
+            queryBo.setOrderType(1);
+            List<TopDivideOrderVo> list = iTopDivideOrderService.queryList(queryBo);
+            for(TopDivideOrderVo vo : list){
+                editBo.setOrderSn(vo.getOrderSn());
+                updateDivideByEditBo(editBo);
+            }
+
+        }
+        return true;
+    }
+
     public void consentCheck(TopOldOrderCheckLog checkLog, TopOldOrderCheckLogEditBo bo) {
         List<TopOldOrderCheckLog> checkLogList = list(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                         .eq(TopOldOrderCheckLog::getOrderSn, checkLog.getOrderSn())
@@ -215,28 +248,30 @@ public class TopOldOrderCheckLogServiceImpl extends ServiceImpl<TopOldOrderCheck
             if (ObjectUtils.isNotNull(check)) {
                 check.setCheckSign(1);//开启当前流程
                 updateById(check);
-                TopDivideOrderQueryBo orderQueryBo = new TopDivideOrderQueryBo();
-                orderQueryBo.setOrderSn(checkLog.getOrderSn());
-                orderQueryBo.setDivideType(checkLog.getCheckFrom()-1);
-                TopDivideOrderVo orderVo = iTopDivideOrderService.getByOrderSn(orderQueryBo);
-                if(Validator.isEmpty(orderVo)){
-                    throw new CustomException("月份账单数据缺失");
-                }
-                TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
-                queryBo.setDivideLogId(orderVo.getDivideLogId());
-                List<TopDivideOrderVo> listOrder = iTopDivideOrderService.getFinishList(queryBo);
-                boolean allWaitPay = true;
-                for(TopDivideOrderVo divideOrderVo : listOrder){
-                    if(Validator.isNotEmpty(divideOrderVo.getCheckStatus())&&divideOrderVo.getCheckStatus()!=2){
-                        allWaitPay = false;
+                if(checkLog.getCheckFrom()==2||checkLog.getCheckFrom()==3){
+                    TopDivideOrderQueryBo orderQueryBo = new TopDivideOrderQueryBo();
+                    orderQueryBo.setOrderSn(checkLog.getOrderSn());
+                    orderQueryBo.setDivideType(checkLog.getCheckFrom()-1);
+                    TopDivideOrderVo orderVo = iTopDivideOrderService.getByOrderSn(orderQueryBo);
+                    if(Validator.isEmpty(orderVo)){
+                        throw new CustomException("月份账单数据缺失");
+                    }
+                    TopDivideOrderQueryBo queryBo = new TopDivideOrderQueryBo();
+                    queryBo.setDivideLogId(orderVo.getDivideLogId());
+                    List<TopDivideOrderVo> listOrder = iTopDivideOrderService.getFinishList(queryBo);
+                    boolean allWaitPay = true;
+                    for(TopDivideOrderVo divideOrderVo : listOrder){
+                        if(Validator.isNotEmpty(divideOrderVo.getCheckStatus())&&divideOrderVo.getCheckStatus()!=2){
+                            allWaitPay = false;
+                        }
+                    }
+                    if(allWaitPay){
+                        TopDivideLog divideLog = new TopDivideLog();
+                        divideLog.setId(orderVo.getDivideLogId());
+                        divideLog.setPayStatus(0);
+                        divideLog.setUpdateTime(DateUtils.getNowTime());
+                        iTopDivideLogService.updateById(divideLog);
                     }
-                }
-                if(allWaitPay){
-                    TopDivideLog divideLog = new TopDivideLog();
-                    divideLog.setId(orderVo.getDivideLogId());
-                    divideLog.setPayStatus(0);
-                    divideLog.setUpdateTime(DateUtils.getNowTime());
-                    iTopDivideLogService.updateById(divideLog);
                 }
             }
         }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderVo.java

@@ -285,4 +285,8 @@ public class TopOldOrderVo {
 	private Integer operationType;
 
 	private Long createTime;
+
+	/** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+	@ApiModelProperty("超收预期 1:7天,2:30天,3半年, 4:1年")
+	private Long exceedType;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderBankPayAddBo.java

@@ -72,4 +72,7 @@ public class TopOrderBankPayAddBo {
     /** 支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账 */
     @ApiModelProperty("支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账")
     private Integer payType;
+    /** 类型:1分成,2退款,3供应商结算 4佣金 */
+    @ApiModelProperty("类型:1分成,2退款,3供应商结算 4佣金")
+    private Integer type;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteAddBo.java

@@ -47,4 +47,7 @@ public class TopOrderRecNoteAddBo {
     private Integer status;
     @ApiModelProperty("机构ID")
     private String tenantId;
+    /** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+    @ApiModelProperty("超收预期 1:7天,2:30天,3半年, 4:1年  ")
+    private Long exceedType;
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteEditBo.java

@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -54,5 +55,9 @@ public class TopOrderRecNoteEditBo {
     private Integer status;
     @ApiModelProperty("机构ID")
     private String tenantId;
+    /** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+    @ApiModelProperty("超收预期 1:7天,2:30天,3半年, 4:1年  ")
+    private Long exceedType;
+
 
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/bo/TopOrderRecNoteQueryBo.java

@@ -57,4 +57,7 @@ public class TopOrderRecNoteQueryBo extends BaseEntity {
 	/** 状态 1正常 0关闭 */
 	@ApiModelProperty("状态 1正常 0关闭")
 	private Integer status;
+	/** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+	@ApiModelProperty("超收预期 1:7天,2:30天,3半年, 4:1年  ")
+	private Long exceedType;
 }

+ 3 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/domain/TopOrderBankPay.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.top.order.domain;
 
 import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -30,7 +31,7 @@ private static final long serialVersionUID=1L;
     private String paySn;
     /** 订单号 */
     private String orderSn;
-    /** 类型:1分成,2退款,3供应商结算 */
+    /** 类型:1分成,2退款,3供应商结算 4佣金*/
     private Integer type;
     /** 银行账号 */
     private String toBankAcount;
@@ -59,4 +60,5 @@ private static final long serialVersionUID=1L;
     private Long divideLogId;
     /** 支付平台 1微信 2支付宝 3金币 4现金 5网银支付6协议7对公转账 */
     private Integer payType;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/domain/TopOrderRecNote.java

@@ -47,4 +47,6 @@ private static final long serialVersionUID=1L;
     /** 状态 1正常 0关闭 */
     private Integer status;
     private String tenantId;
+    /** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+    private Long exceedType;
 }

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

@@ -43,6 +43,8 @@ public interface ITopOrderRecNoteService extends IService<TopOrderRecNote> {
 	 */
 	Boolean updateByEditBo(TopOrderRecNoteEditBo bo);
 
+	Boolean updateByBatchEditBo(List<TopOrderRecNoteEditBo> bo);
+
 	/**
 	 * 校验并删除数据
 	 * @param ids 主键集合

+ 212 - 93
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderBankPayServiceImpl.java

@@ -152,108 +152,227 @@ public class TopOrderBankPayServiceImpl extends ServiceImpl<TopOrderBankPayMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean payToCompany(TopOrderBankPayAddBo bo) {
-        if(Validator.isEmpty(bo.getDivideLogId())||Validator.isEmpty(bo.getTenantId())){
-            throw new CustomException("参数错误");
+        if(Validator.isEmpty(bo.getType())){
+            throw new CustomException("类型参数错误");
         }
-        if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
-            throw new CustomException("支付参数错误");
-        }
-        //校验当前角色审核权限
-        List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
-        if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
-            throw new CustomException("当前账号没有审核权限");
-        }
-        List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
-        TopDivideLog divideLog = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
-                .eq(TopDivideLog::getId, bo.getDivideLogId()));
+        if(bo.getType()==4){
+            if(Validator.isEmpty(bo.getOrderSn())||Validator.isEmpty(bo.getTenantId())){
+                throw new CustomException("参数错误");
+            }
+            if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
+                throw new CustomException("支付参数错误");
+            }
+            //校验当前角色审核权限
+            List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
+            if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+            List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
+            TopOldOrder order = iTopOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
+                    .eq(TopOldOrder::getOrderSn, bo.getOrderSn()));
+            TopOldOrderCheckLog checkLog = iTopOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
+                    .eq(TopOldOrderCheckLog::getOrderSn, bo.getOrderSn()).eq(TopOldOrderCheckLog::getCheckFrom, 4)
+                    .eq(TopOldOrderCheckLog::getCheckSign, 1));
+            if(Validator.isEmpty(checkLog)||Validator.isEmpty(order)){
+                throw new CustomException("审核数据错误");
+            }
+            if(checkLog.getCheckStatus()!=2&&checkLog.getCheckStatus()!=5){
+                throw new CustomException("非待支付状态");
+            }
 
-        if(Validator.isEmpty(divideLog)){
-            throw new CustomException("审核数据错误");
-        }
-        if(divideLog.getPayStatus()!=0&&divideLog.getPayStatus()!=4){
-            throw new CustomException("非待支付状态");
-        }
-        List<Integer> pStatus = new ArrayList<>();
-        pStatus.add(0);
-        pStatus.add(4);
-        TopDivideLog divideLogFirst = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
-                .eq(TopDivideLog::getTenantId, divideLog.getTenantId())
-                .eq(TopDivideLog::getDivideType, divideLog.getDivideType())
-                .in(TopDivideLog::getPayStatus, pStatus).last("limit 1"));
-        if(!divideLogFirst.getId().equals(divideLog.getId())){
-            throw new CustomException("存在历史未支付月份");
-        }
-        TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
-                .eq(TopSysRole::getRoleName, "出纳")
-                .eq(TopSysRole::getStatus, 1).last("limit 1"));
-        if(Validator.isEmpty(sysRole)){
-            throw new CustomException("当前系统没有出纳角色");
-        }
-        if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+            TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
+                    .eq(TopSysRole::getRoleName, "出纳")
+                    .eq(TopSysRole::getStatus, 1).last("limit 1"));
+            if(Validator.isEmpty(sysRole)){
+                throw new CustomException("当前系统没有出纳角色");
+            }
+            if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+        /*if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
             throw new CustomException("当前账号没有审核权限");
-        }
+        }*/
+            if(order.getBrokerage().compareTo(BigDecimal.ZERO)==0){
+                //免费
+                checkLog.setCheckStatus(3);
+                checkLog.setCheckTime(DateUtils.getNowTime());
+                checkLog.setUpdateTime(DateUtils.getNowTime());
+                iTopOldOrderCheckLogService.updateById(checkLog);
+                return true;
+            }
+
+            bo.setTrainOrgId(checkLog.getTenantId().toString());//旧机构ID
+            String paySn = DateUtils.getTagOrderSn("CP");
+            TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
+            add.setPaySn(paySn);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setResultStatus(0);
+            add.setPayUsername(bo.getLoginName());
+            add.setDivideLogId(bo.getDivideLogId());
+            BigDecimal money = null;
+            money =order.getBrokerage();
+            add.setMoney(money);
+            //网银支付
+            if(add.getPayType()==5){
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("MainUniqueId", paySn);
+                params.put("ToBankAcount", bo.getToBankAcount());
+                params.put("ToBankName", bo.getToBankName());
+                params.put("ToBankTypeName", bo.getToBankTypeName());
+                params.put("Money", money.toString());
+                params.put("TrainOrgId", bo.getTrainOrgId());
+                if(Validator.isNotEmpty(bo.getToBankConnetNum())){
+                    params.put("ToBankConnetNum", bo.getToBankConnetNum());
+                }
+                if(Validator.isNotEmpty(bo.getRemark())){
+                    params.put("Remark", bo.getRemark());
+                }
+                String respone = "";
+                String paramStr = JSON.toJSONString(params);
+                add.setParamJson(paramStr);
+                log.info("网银支付参数" + paramStr, "");
+                String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
+                try {
+                    respone = HttpUtils.postFormBody(path, params);
+                    if (!respone.contains("\"Status\":true")) {
+
+                        throw new CustomException("同步请求错误"+respone);
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("同步请求错误"+e.getMessage());
+                }
+            }
+
+            if(this.save(add)){
+                if(add.getPayType()==4){
+                    checkLog.setCheckStatus(3);
+                }else{
+                    checkLog.setCheckStatus(6);//支付中
+                }
+                checkLog.setCheckTime(DateUtils.getNowTime());
+                checkLog.setUpdateTime(DateUtils.getNowTime());
+                iTopOldOrderCheckLogService.updateById(checkLog);
+                return  true;
+            }
+            return false;
+        }else{
+            if(Validator.isEmpty(bo.getDivideLogId())||Validator.isEmpty(bo.getTenantId())){
+                throw new CustomException("参数错误");
+            }
+            if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
+                throw new CustomException("支付参数错误");
+            }
+            //校验当前角色审核权限
+            List<TopSysUserRole> userRoleList = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
+            if (CollectionUtils.isEmpty(userRoleList) && !bo.getLoginName().equals("admin")) {
+                throw new CustomException("当前账号没有审核权限");
+            }
+            List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
+            TopDivideLog divideLog = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
+                    .eq(TopDivideLog::getId, bo.getDivideLogId()));
+
+            if(Validator.isEmpty(divideLog)){
+                throw new CustomException("审核数据错误");
+            }
+            if(divideLog.getPayStatus()!=0&&divideLog.getPayStatus()!=4){
+                throw new CustomException("非待支付状态");
+            }
+            List<Integer> pStatus = new ArrayList<>();
+            pStatus.add(0);
+            pStatus.add(4);
+            TopDivideLog divideLogFirst = iTopDivideLogService.getOne(new LambdaQueryWrapper<TopDivideLog>()
+                    .eq(TopDivideLog::getTenantId, divideLog.getTenantId())
+                    .eq(TopDivideLog::getDivideType, divideLog.getDivideType())
+                    .in(TopDivideLog::getPayStatus, pStatus).last("limit 1"));
+            if(!divideLogFirst.getId().equals(divideLog.getId())){
+                throw new CustomException("存在历史未支付月份");
+            }
+            TopSysRole sysRole = iTopSysRoleService.getOne(new LambdaQueryWrapper<TopSysRole>()
+                    .eq(TopSysRole::getRoleName, "出纳")
+                    .eq(TopSysRole::getStatus, 1).last("limit 1"));
+            if(Validator.isEmpty(sysRole)){
+                throw new CustomException("当前系统没有出纳角色");
+            }
+            if (!roleIds.contains(sysRole.getRoleId()) && !bo.getLoginName().equals("admin") ) {
+                throw new CustomException("当前账号没有审核权限");
+            }
         /*if (!roleIds.contains(checkLog.getRoleId()) && !bo.getLoginName().equals("admin") ) {
             throw new CustomException("当前账号没有审核权限");
         }*/
-        if(divideLog.getPayMoney().compareTo(BigDecimal.ZERO)==0){
-            //免费
-            divideLog.setPayStatus(1);
-            divideLog.setPayTime(DateUtils.getNowTime());
-            divideLog.setUpdateTime(DateUtils.getNowTime());
-            iTopDivideLogService.updateById(divideLog);
-            return true;
-        }
+            if(divideLog.getPayMoney().compareTo(BigDecimal.ZERO)==0){
+                //免费
+                divideLog.setPayStatus(1);
+                divideLog.setPayTime(DateUtils.getNowTime());
+                divideLog.setUpdateTime(DateUtils.getNowTime());
+                iTopDivideLogService.updateById(divideLog);
+                return true;
+            }
 
-        bo.setTrainOrgId(divideLog.getTenantId().toString());//旧机构ID
-        String paySn = DateUtils.getTagOrderSn("CP");
-        TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
-        add.setPaySn(paySn);
-        validEntityBeforeSave(add);
-        add.setCreateTime(DateUtils.getNowTime());
-        add.setUpdateTime(DateUtils.getNowTime());
-        add.setResultStatus(0);
-        add.setPayUsername(bo.getLoginName());
-        add.setType(1);//分成
-        add.setDivideLogId(bo.getDivideLogId());
-        BigDecimal money = null;
-        money =divideLog.getPayMoney();
-        add.setMoney(money);
-        Map<String, String> params = new HashMap<>();
-        Long nowTime = DateUtils.getNowTime();
-        String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
-        params.put("stamp", nowTime.toString());
-        params.put("sign", sign);
-        params.put("MainUniqueId", paySn);
-        params.put("ToBankAcount", bo.getToBankAcount());
-        params.put("ToBankName", bo.getToBankName());
-        params.put("ToBankTypeName", bo.getToBankTypeName());
-        params.put("Money", money.toString());
-        params.put("TrainOrgId", bo.getTrainOrgId());
-        if(Validator.isNotEmpty(bo.getToBankConnetNum())){
-            params.put("ToBankConnetNum", bo.getToBankConnetNum());
-        }
-        if(Validator.isNotEmpty(bo.getRemark())){
-            params.put("Remark", bo.getRemark());
-        }
-        String respone = "";
-        String paramStr = JSON.toJSONString(params);
-        add.setParamJson(paramStr);
-        log.info("网银支付参数" + paramStr, "");
-        String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
-        try {
-            respone = HttpUtils.postFormBody(path, params);
-            if (!respone.contains("\"Status\":true")) {
+            bo.setTrainOrgId(divideLog.getTenantId().toString());//旧机构ID
+            String paySn = DateUtils.getTagOrderSn("CP");
+            TopOrderBankPay add = BeanUtil.toBean(bo, TopOrderBankPay.class);
+            add.setPaySn(paySn);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            add.setResultStatus(0);
+            add.setPayUsername(bo.getLoginName());
+            add.setDivideLogId(bo.getDivideLogId());
+            BigDecimal money = null;
+            money =divideLog.getPayMoney();
+            add.setMoney(money);
+            //网银支付
+            if(add.getPayType()==5){
+                Map<String, String> params = new HashMap<>();
+                Long nowTime = DateUtils.getNowTime();
+                String sign = ToolsUtils.EncoderByMd5(paySn+nowTime.toString()+"pubilc2022");
+                params.put("stamp", nowTime.toString());
+                params.put("sign", sign);
+                params.put("MainUniqueId", paySn);
+                params.put("ToBankAcount", bo.getToBankAcount());
+                params.put("ToBankName", bo.getToBankName());
+                params.put("ToBankTypeName", bo.getToBankTypeName());
+                params.put("Money", money.toString());
+                params.put("TrainOrgId", bo.getTrainOrgId());
+                if(Validator.isNotEmpty(bo.getToBankConnetNum())){
+                    params.put("ToBankConnetNum", bo.getToBankConnetNum());
+                }
+                if(Validator.isNotEmpty(bo.getRemark())){
+                    params.put("Remark", bo.getRemark());
+                }
+                String respone = "";
+                String paramStr = JSON.toJSONString(params);
+                add.setParamJson(paramStr);
+                log.info("网银支付参数" + paramStr, "");
+                String path = OLD_SYS_HOST+"/WitSystem/BussinessApi/NeedToPay";
+                try {
+                    respone = HttpUtils.postFormBody(path, params);
+                    if (!respone.contains("\"Status\":true")) {
 
-                throw new CustomException("同步请求错误"+respone);
+                        throw new CustomException("同步请求错误"+respone);
+                    }
+                } catch (IOException e) {
+                    throw new CustomException("同步请求错误"+e.getMessage());
+                }
             }
-        } catch (IOException e) {
-            throw new CustomException("同步请求错误"+e.getMessage());
-        }
-        if(this.save(add)){
-            divideLog.setPayStatus(3);//支付中
-            iTopDivideLogService.updateById(divideLog);
-            return  true;
+
+            if(this.save(add)){
+                if(add.getPayType()==4){
+                    divideLog.setPayStatus(1);//支付完成
+                }else{
+                    divideLog.setPayStatus(3);//支付中
+                }
+                iTopDivideLogService.updateById(divideLog);
+                return  true;
+            }
+            return false;
         }
-        return false;
+
     }
 }

+ 26 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/service/impl/TopOrderRecNoteServiceImpl.java

@@ -93,7 +93,7 @@ public class TopOrderRecNoteServiceImpl extends ServiceImpl<TopOrderRecNoteMappe
 
     @Override
     public Boolean insertByAddBo(TopOrderRecNoteAddBo bo) {
-        if(Validator.isEmpty(bo.getOrderSn())||Validator.isEmpty(bo.getTenantId())){
+        if(Validator.isEmpty(bo.getOrderSn())||Validator.isEmpty(bo.getTenantId())||Validator.isEmpty(bo.getExceedType())){
             throw new CustomException("参数缺失");
         }
         if (getOne(new LambdaQueryWrapper<TopOrderRecNote>().eq(TopOrderRecNote::getOrderSn, bo.getOrderSn()).eq(TopOrderRecNote::getTenantId, bo.getTenantId()).last("limit 1")) != null) {
@@ -132,6 +132,31 @@ public class TopOrderRecNoteServiceImpl extends ServiceImpl<TopOrderRecNoteMappe
         return this.updateById(update);
     }
 
+    @Override
+    public Boolean updateByBatchEditBo(List<TopOrderRecNoteEditBo> bo) {
+        for(TopOrderRecNoteEditBo vo : bo){
+            if(Validator.isEmpty(vo.getOrderSn())||Validator.isEmpty(vo.getExceedType())||Validator.isEmpty(vo.getTenantId())){
+                throw new CustomException("参数缺失");
+            }
+            this.remove(new LambdaQueryWrapper<TopOrderRecNote>().eq(TopOrderRecNote::getOrderSn,vo.getOrderSn()).eq(TopOrderRecNote::getTenantId,vo.getTenantId()));
+            if(Validator.isNotEmpty(vo.getStatus())&&vo.getStatus()==-1){
+                continue;
+            }
+            TopOrderRecNote add = BeanUtil.toBean(vo, TopOrderRecNote.class);
+            validEntityBeforeSave(add);
+            add.setCreateTime(DateUtils.getNowTime());
+            add.setUpdateTime(DateUtils.getNowTime());
+            if(vo.getNoteType()==1){
+                this.save(add);
+                pushOldNote(add.getOrderSn());
+            }else{
+                this.save(add);
+            }
+        }
+
+        return true;
+    }
+
     private boolean pushOldNote(String orderSn){
         TopOldOrder oldOrder = iTopOldOrderService.getOne(new LambdaQueryWrapper<TopOldOrder>()
                 .eq(TopOldOrder::getOrderSn, orderSn));

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/order/vo/TopOrderRecNoteVo.java

@@ -53,4 +53,8 @@ public class TopOrderRecNoteVo {
 	@ApiModelProperty("状态 1正常 0关闭")
 	private Integer status;
 	private String tenantId;
+	/** 超收预期 1:7天,2:30天,3半年, 4:1年   */
+	@Excel(name = "超收预期 1:7天,2:30天,3半年, 4:1年  ")
+	@ApiModelProperty("超收预期 1:7天,2:30天,3半年, 4:1年  ")
+	private Long exceedType;
 }

+ 20 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsQuestionRelExamMapper.xml

@@ -0,0 +1,20 @@
+<?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.modules.goods.mapper.GoodsQuestionRelExamMapper">
+
+    <resultMap type="com.zhongzheng.modules.goods.domain.GoodsQuestionRelExam" id="GoodsQuestionRelExamResult">
+        <result property="id" column="id"/>
+        <result property="relId" column="rel_id"/>
+        <result property="examId" column="exam_id"/>
+        <result property="userSubscribeId" column="user_subscribe_id"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="expTime" column="exp_time"/>
+    </resultMap>
+
+
+</mapper>

+ 72 - 2
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideLogMapper.xml

@@ -27,7 +27,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             dl.*,
             st.tenant_name,
                st.bill_type,
-               st.bill_day
+               st.bill_day,
+               (SELECT
+        cl.role_id
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 2
+        AND cl.check_sign = 1
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        LIMIT 1) as role_id,
+        (SELECT
+        r.role_name
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        LEFT JOIN top_sys_role r ON r.role_id = cl.role_id
+        WHERE
+        cl.check_from = 2
+        AND cl.check_sign = 1
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        LIMIT 1) as role_name,
+        (SELECT
+        cl.check_reason
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 2
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        AND cl.check_status = -1
+        ORDER BY cl.check_sort
+        LIMIT 1) as check_reason
         FROM
             top_divide_log dl
                 LEFT JOIN sys_tenant st ON dl.tenant_id = st.tenant_id
@@ -191,7 +226,42 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
         dl.*,
         st.tenant_name,
-        st.bill_day
+        st.bill_day,
+        (SELECT
+        cl.role_id
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 3
+        AND cl.check_sign = 1
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        LIMIT 1) as role_id,
+        (SELECT
+        r.role_name
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        LEFT JOIN top_sys_role r ON r.role_id = cl.role_id
+        WHERE
+        cl.check_from = 3
+        AND cl.check_sign = 1
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        LIMIT 1) as role_name,
+        (SELECT
+        cl.check_reason
+        FROM
+        top_divide_order tdo
+        LEFT JOIN top_old_order_check_log cl ON tdo.order_sn = cl.order_sn
+        WHERE
+        cl.check_from = 3
+        AND tdo.order_type = 1
+        AND tdo.divide_log_id = dl.id
+        AND cl.check_status = -1
+        ORDER BY cl.check_sort
+        LIMIT 1) as check_reason
         FROM
         top_divide_log dl
         LEFT JOIN sys_tenant st ON dl.tenant_id = st.tenant_id

+ 12 - 3
zhongzheng-system/src/main/resources/mapper/modules/top/TopDivideOrderMapper.xml

@@ -255,7 +255,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         v.order_price,
         st.tenant_name,
         v.pretax_brokerage,
-        v.pay_type,
         r.role_name,
         r.role_id,
         cl.check_status,
@@ -264,14 +263,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         bp.to_bank_acount,
         bp.to_bank_name,
         bp.to_bank_type_name,
-        bp.create_time as pay_time
+        bp.create_time as pay_time,
+        (SELECT
+        ocl.check_reason
+        FROM
+        top_old_order_check_log ocl
+        WHERE
+        ocl.check_from = 4
+        AND ocl.order_sn = v.order_sn
+        AND ocl.check_status = -1
+        ORDER BY ocl.check_sort
+        LIMIT 1) as check_reason
         FROM
         top_old_order v
         LEFT JOIN sys_tenant st ON v.tenant_id = st.tenant_id
         LEFT JOIN
         top_old_order_check_log cl ON cl.check_from = 4 AND  cl.check_sign = 1  AND  v.order_sn = cl.order_sn
         LEFT JOIN top_sys_role r ON cl.role_id = r.role_id
-        LEFT JOIN top_order_bank_pay bp ON bp.type = 3 AND bp.order_sn = v.order_sn AND bp.result_status = 1
+        LEFT JOIN top_order_bank_pay bp ON bp.type = 4 AND bp.order_sn = v.order_sn AND bp.result_status = 1
         WHERE
         1 = 1
         <if test="accomplishStartTime != null and accomplishStartTime != ''">

+ 2 - 1
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -413,7 +413,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             rn.day_time,
             rn.week_time,
             rn.month_time,
-            rn.last_time
+            rn.last_time,
+            rn.exceed_type
         FROM
             top_old_order too
                 LEFT JOIN sys_tenant st ON too.tenant_id = st.tenant_id

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopOrderRecNoteMapper.xml

@@ -15,6 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime" column="create_time"/>
         <result property="updateTime" column="update_time"/>
         <result property="status" column="status"/>
+        <result property="exceedType" column="exceed_type"/>
     </resultMap>