he2802 2 år sedan
förälder
incheckning
026d0b8719
17 ändrade filer med 748 tillägg och 3 borttagningar
  1. 13 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  2. 91 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/top/TopSysTenantRegisterController.java
  3. 6 3
      zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java
  4. 4 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/collect/bo/CollectQuestionQueryBo.java
  5. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/collect/service/impl/CollectQuestionServiceImpl.java
  6. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java
  7. 82 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterAddBo.java
  8. 88 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterEditBo.java
  9. 84 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterQueryBo.java
  10. 65 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysTenantRegister.java
  11. 15 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mapper/TopSysTenantRegisterMapper.java
  12. 53 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/service/ITopSysTenantRegisterService.java
  13. 114 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/service/impl/TopSysTenantRegisterServiceImpl.java
  14. 87 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/top/vo/TopSysTenantRegisterVo.java
  15. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserExamRecordQueryBo.java
  16. 29 0
      zhongzheng-system/src/main/resources/mapper/modules/top/TopSysTenantRegisterMapper.xml
  17. 12 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserExamRecordMapper.xml

+ 13 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -40,6 +40,8 @@ import com.zhongzheng.modules.system.domain.SysTenant;
 import com.zhongzheng.modules.system.service.ISysTenantService;
 import com.zhongzheng.modules.system.service.ISysUserService;
 import com.zhongzheng.modules.system.vo.SysTenantVo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterAddBo;
+import com.zhongzheng.modules.top.service.ITopSysTenantRegisterService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.UserExportVo;
 import com.zhongzheng.modules.wx.bo.WxShareGoodsBo;
@@ -97,6 +99,8 @@ public class CommonController
     private ISysTenantService iSysTenantService;
     @Autowired
     private IUserService iUserService;
+    @Autowired
+    private  ITopSysTenantRegisterService iTopSysTenantRegisterService;
     /**
      * 通用下载请求
      *
@@ -344,4 +348,13 @@ public class CommonController
                 .map(item -> BeanUtil.toBean(item, SysTenantVo.class)).collect(Collectors.toList());
         return AjaxResult.success(collect);
     }
+
+    @ApiOperation("机构注册开通")
+    @PostMapping("common/free/tenant/register")
+    public AjaxResult tenantRegister(@RequestBody TopSysTenantRegisterAddBo bo) {
+        if(!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(),bo.getSign())){
+            return AjaxResult.error("签名错误");
+        }
+        return AjaxResult.success("成功",iTopSysTenantRegisterService.insertByAddBo(bo) ? 1 : 0);
+    }
 }

+ 91 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/top/TopSysTenantRegisterController.java

@@ -0,0 +1,91 @@
+package com.zhongzheng.controller.top;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterAddBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterEditBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterQueryBo;
+import com.zhongzheng.modules.top.service.ITopSysTenantRegisterService;
+import com.zhongzheng.modules.top.vo.TopSysTenantRegisterVo;
+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 com.zhongzheng.common.utils.poi.ExcelUtil;
+import com.zhongzheng.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 机构注册Controller
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+@Api(value = "机构注册控制器", tags = {"机构注册管理"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/top/system/register")
+public class TopSysTenantRegisterController extends BaseController {
+
+    private final ITopSysTenantRegisterService iTopSysTenantRegisterService;
+
+    /**
+     * 查询机构注册列表
+     */
+    @ApiOperation("查询机构注册列表")
+    @PreAuthorize("@ss.hasPermi('system:register:list')")
+    @GetMapping("/list")
+    public TableDataInfo<TopSysTenantRegisterVo> list(TopSysTenantRegisterQueryBo bo) {
+        startPage();
+        List<TopSysTenantRegisterVo> list = iTopSysTenantRegisterService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+    /**
+     * 获取机构注册详细信息
+     */
+    @ApiOperation("获取机构注册详细信息")
+    @PreAuthorize("@ss.hasPermi('system:register:query')")
+    @GetMapping("/{id}")
+    public AjaxResult<TopSysTenantRegisterVo> getInfo(@PathVariable("id" ) Long id) {
+        return AjaxResult.success(iTopSysTenantRegisterService.queryById(id));
+    }
+
+    /**
+     * 新增机构注册
+     */
+    @ApiOperation("新增机构注册")
+    @PreAuthorize("@ss.hasPermi('system:register:add')")
+    @Log(title = "机构注册", businessType = BusinessType.INSERT)
+    @PostMapping()
+    public AjaxResult<Void> add(@RequestBody TopSysTenantRegisterAddBo bo) {
+        return toAjax(iTopSysTenantRegisterService.insertByAddBo(bo) ? 1 : 0);
+    }
+
+    /**
+     * 修改机构注册
+     */
+    @ApiOperation("修改机构注册")
+    @PreAuthorize("@ss.hasPermi('system:register:edit')")
+    @Log(title = "机构注册", businessType = BusinessType.UPDATE)
+    @PutMapping()
+    public AjaxResult<Void> edit(@RequestBody TopSysTenantRegisterEditBo bo) {
+        return toAjax(iTopSysTenantRegisterService.updateByEditBo(bo) ? 1 : 0);
+    }
+
+
+}

+ 6 - 3
zhongzheng-api/src/main/java/com/zhongzheng/controller/goods/GoodsController.java

@@ -123,20 +123,23 @@ public class GoodsController extends BaseController {
         CollectQuestionQueryBo collectQuestionQueryBo = new CollectQuestionQueryBo();
         collectQuestionQueryBo.setOrderGoodsId(orderGoodsId);
         collectQuestionQueryBo.setUserId(loginUser.getUser().getUserId());
-        collectQuestionQueryBo.setDoMode(1L);
+        List<Long> listMode = new ArrayList<>();
+        listMode.add(1L);
+        listMode.add(3L);
+        collectQuestionQueryBo.setDoModes(listMode);
         Integer collectNum = iCollectQuestionService.collectNum(collectQuestionQueryBo);
         numMap.put("collectNum",collectNum);
 
         UserExamRecordQueryBo userExamRecordQueryBo = new UserExamRecordQueryBo();
         userExamRecordQueryBo.setOrderGoodsId(orderGoodsId);
         userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId());
-        userExamRecordQueryBo.setDoMode(1L);
+        userExamRecordQueryBo.setDoModes(listMode);
         Long doNum = iUserExamRecordService.selectDoNum(userExamRecordQueryBo);
         numMap.put("doNum",doNum);
 
         userExamRecordQueryBo.setOrderGoodsId(orderGoodsId);
         userExamRecordQueryBo.setUserId(loginUser.getUser().getUserId());
-        userExamRecordQueryBo.setDoMode(1L);
+
         Long rightNum = iUserExamRecordService.selectRightNum(userExamRecordQueryBo);
         numMap.put("rightNum",rightNum);
         OrderGoods orderGoods = iOrderGoodsService.getOne(new LambdaQueryWrapper<OrderGoods>()

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/collect/bo/CollectQuestionQueryBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -64,4 +65,7 @@ public class CollectQuestionQueryBo extends BaseEntity {
 	/** 做题模式 1章卷 2随机练习 */
 	@ApiModelProperty("做题模式 1章卷 2随机练习")
 	private Long doMode;
+
+	@ApiModelProperty("做题模式 1章卷 2随机练习")
+	private List<Long> doModes;
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/collect/service/impl/CollectQuestionServiceImpl.java

@@ -53,6 +53,7 @@ public class CollectQuestionServiceImpl extends ServiceImpl<CollectQuestionMappe
         lqw.eq(bo.getGoodsId() != null, CollectQuestion::getGoodsId, bo.getGoodsId());
         lqw.eq(bo.getOrderGoodsId() != null, CollectQuestion::getOrderGoodsId, bo.getOrderGoodsId());
         lqw.eq(bo.getDoMode() != null, CollectQuestion::getDoMode, bo.getDoMode());
+        lqw.in(bo.getDoModes() != null, CollectQuestion::getDoMode, bo.getDoModes());
         return this.count(lqw);
     }
 

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -561,6 +561,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         if (Validator.isEmpty(orderGoods)) {
             return "班级商品不存在";
         }
+
         Long bmrq = 0L;
         if(userVo.getClassStartTime().longValue()<orderGoods.getCreateTime().longValue()){
             bmrq = orderGoods.getCreateTime();

+ 82 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterAddBo.java

@@ -0,0 +1,82 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+
+
+/**
+ * 机构注册添加对象 top_sys_tenant_register
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+@Data
+@ApiModel("机构注册添加对象")
+public class TopSysTenantRegisterAddBo {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    /** 机构名称 */
+    @ApiModelProperty("机构名称")
+    private String tenantName;
+    /** PC域名 */
+    @ApiModelProperty("PC域名")
+    private String hostPc;
+    /** h5域名 */
+    @ApiModelProperty("h5域名")
+    private String hostH5;
+    /** 直播域名 */
+    @ApiModelProperty("直播域名")
+    private String hostLive;
+    /** 公司logo */
+    @ApiModelProperty("公司logo")
+    private String logoUrl;
+    /** 微信小程序appid */
+    @ApiModelProperty("微信小程序appid")
+    private String wxSmallAppid;
+    /** 公众号appid */
+    @ApiModelProperty("公众号appid")
+    private String wxGzhAppid;
+    /** 公众号密钥 */
+    @ApiModelProperty("公众号密钥")
+    private String wxGzhAppsecret;
+    /** 商户ID */
+    @ApiModelProperty("商户ID")
+    private String wxWepayMchid;
+    /** 商户key */
+    @ApiModelProperty("商户key")
+    private String wxWepayKey;
+    /** app密钥 */
+    @ApiModelProperty("app密钥")
+    private String wxWepayAppsecret;
+    /** 支付回调地址 */
+    @ApiModelProperty("支付回调地址")
+    private String wxWepayNotifyurl;
+    /** 小程序密钥 */
+    @ApiModelProperty("小程序密钥")
+    private String wxSmallAppsecret;
+    /** 微信扫码登录URL */
+    @ApiModelProperty("微信扫码登录URL")
+    private String wxScanloginHost;
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long createTime;
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long updateTime;
+    /** 0 失效 1启用 */
+    @ApiModelProperty("0 失效 1启用")
+    private Integer status;
+}

+ 88 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterEditBo.java

@@ -0,0 +1,88 @@
+package com.zhongzheng.modules.top.bo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import java.util.Date;
+
+
+/**
+ * 机构注册编辑对象 top_sys_tenant_register
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+@Data
+@ApiModel("机构注册编辑对象")
+public class TopSysTenantRegisterEditBo {
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long id;
+
+    /** 机构名称 */
+    @ApiModelProperty("机构名称")
+    private String tenantName;
+
+    /** PC域名 */
+    @ApiModelProperty("PC域名")
+    private String hostPc;
+
+    /** h5域名 */
+    @ApiModelProperty("h5域名")
+    private String hostH5;
+
+    /** 直播域名 */
+    @ApiModelProperty("直播域名")
+    private String hostLive;
+
+    /** 公司logo */
+    @ApiModelProperty("公司logo")
+    private String logoUrl;
+
+    /** 微信小程序appid */
+    @ApiModelProperty("微信小程序appid")
+    private String wxSmallAppid;
+
+    /** 公众号appid */
+    @ApiModelProperty("公众号appid")
+    private String wxGzhAppid;
+
+    /** 公众号密钥 */
+    @ApiModelProperty("公众号密钥")
+    private String wxGzhAppsecret;
+
+    /** 商户ID */
+    @ApiModelProperty("商户ID")
+    private String wxWepayMchid;
+
+    /** 商户key */
+    @ApiModelProperty("商户key")
+    private String wxWepayKey;
+
+    /** app密钥 */
+    @ApiModelProperty("app密钥")
+    private String wxWepayAppsecret;
+
+    /** 支付回调地址 */
+    @ApiModelProperty("支付回调地址")
+    private String wxWepayNotifyurl;
+
+    /** 小程序密钥 */
+    @ApiModelProperty("小程序密钥")
+    private String wxSmallAppsecret;
+
+    /** 微信扫码登录URL */
+    @ApiModelProperty("微信扫码登录URL")
+    private String wxScanloginHost;
+
+    /** $column.columnComment */
+    @ApiModelProperty("$column.columnComment")
+    private Long updateTime;
+
+    /** 0 失效 1启用 */
+    @ApiModelProperty("0 失效 1启用")
+    private Integer status;
+
+}

+ 84 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/bo/TopSysTenantRegisterQueryBo.java

@@ -0,0 +1,84 @@
+package com.zhongzheng.modules.top.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;
+
+/**
+ * 机构注册分页查询对象 top_sys_tenant_register
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("机构注册分页查询对象")
+public class TopSysTenantRegisterQueryBo extends BaseEntity {
+
+	/** 分页大小 */
+	@ApiModelProperty("分页大小")
+	private Integer pageSize;
+	/** 当前页数 */
+	@ApiModelProperty("当前页数")
+	private Integer pageNum;
+	/** 排序列 */
+	@ApiModelProperty("排序列")
+	private String orderByColumn;
+	/** 排序的方向desc或者asc */
+	@ApiModelProperty(value = "排序的方向", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 机构名称 */
+	@ApiModelProperty("机构名称")
+	private String tenantName;
+	/** PC域名 */
+	@ApiModelProperty("PC域名")
+	private String hostPc;
+	/** h5域名 */
+	@ApiModelProperty("h5域名")
+	private String hostH5;
+	/** 直播域名 */
+	@ApiModelProperty("直播域名")
+	private String hostLive;
+	/** 公司logo */
+	@ApiModelProperty("公司logo")
+	private String logoUrl;
+	/** 微信小程序appid */
+	@ApiModelProperty("微信小程序appid")
+	private String wxSmallAppid;
+	/** 公众号appid */
+	@ApiModelProperty("公众号appid")
+	private String wxGzhAppid;
+	/** 公众号密钥 */
+	@ApiModelProperty("公众号密钥")
+	private String wxGzhAppsecret;
+	/** 商户ID */
+	@ApiModelProperty("商户ID")
+	private String wxWepayMchid;
+	/** 商户key */
+	@ApiModelProperty("商户key")
+	private String wxWepayKey;
+	/** app密钥 */
+	@ApiModelProperty("app密钥")
+	private String wxWepayAppsecret;
+	/** 支付回调地址 */
+	@ApiModelProperty("支付回调地址")
+	private String wxWepayNotifyurl;
+	/** 小程序密钥 */
+	@ApiModelProperty("小程序密钥")
+	private String wxSmallAppsecret;
+	/** 微信扫码登录URL */
+	@ApiModelProperty("微信扫码登录URL")
+	private String wxScanloginHost;
+	/** 0 失效 1启用 */
+	@ApiModelProperty("0 失效 1启用")
+	private Integer status;
+}

+ 65 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/domain/TopSysTenantRegister.java

@@ -0,0 +1,65 @@
+package com.zhongzheng.modules.top.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;
+
+/**
+ * 机构注册对象 top_sys_tenant_register
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("top_sys_tenant_register")
+public class TopSysTenantRegister implements Serializable {
+
+private static final long serialVersionUID=1L;
+
+    /** $column.columnComment */
+    @TableId(value = "id")
+    private Long id;
+    /** 机构名称 */
+    private String tenantName;
+    /** PC域名 */
+    private String hostPc;
+    /** h5域名 */
+    private String hostH5;
+    /** 直播域名 */
+    private String hostLive;
+    /** 公司logo */
+    private String logoUrl;
+    /** 微信小程序appid */
+    private String wxSmallAppid;
+    /** 公众号appid */
+    private String wxGzhAppid;
+    /** 公众号密钥 */
+    private String wxGzhAppsecret;
+    /** 商户ID */
+    private String wxWepayMchid;
+    /** 商户key */
+    private String wxWepayKey;
+    /** app密钥 */
+    private String wxWepayAppsecret;
+    /** 支付回调地址 */
+    private String wxWepayNotifyurl;
+    /** 小程序密钥 */
+    private String wxSmallAppsecret;
+    /** 微信扫码登录URL */
+    private String wxScanloginHost;
+    /** $column.columnComment */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createTime;
+    /** $column.columnComment */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateTime;
+    /** 0 失效 1启用 */
+    private Integer status;
+}

+ 15 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/mapper/TopSysTenantRegisterMapper.java

@@ -0,0 +1,15 @@
+package com.zhongzheng.modules.top.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.top.domain.TopSysTenantRegister;
+
+/**
+ * 机构注册Mapper接口
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+public interface TopSysTenantRegisterMapper extends BaseMapper<TopSysTenantRegister> {
+
+}

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/service/ITopSysTenantRegisterService.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.top.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterAddBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterEditBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterQueryBo;
+import com.zhongzheng.modules.top.domain.TopSysTenantRegister;
+import com.zhongzheng.modules.top.vo.TopSysTenantRegisterVo;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 机构注册Service接口
+ *
+ * @author hjl
+ * @date 2023-02-21
+ */
+public interface ITopSysTenantRegisterService extends IService<TopSysTenantRegister> {
+	/**
+	 * 查询单个
+	 * @return
+	 */
+	TopSysTenantRegisterVo queryById(Long id);
+
+	/**
+	 * 查询列表
+	 */
+	List<TopSysTenantRegisterVo> queryList(TopSysTenantRegisterQueryBo bo);
+
+	/**
+	 * 根据新增业务对象插入机构注册
+	 * @param bo 机构注册新增业务对象
+	 * @return
+	 */
+	Boolean insertByAddBo(TopSysTenantRegisterAddBo bo);
+
+	/**
+	 * 根据编辑业务对象修改机构注册
+	 * @param bo 机构注册编辑业务对象
+	 * @return
+	 */
+	Boolean updateByEditBo(TopSysTenantRegisterEditBo bo);
+
+	/**
+	 * 校验并删除数据
+	 * @param ids 主键集合
+	 * @param isValid 是否校验,true-删除前校验,false-不校验
+	 * @return
+	 */
+	Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 114 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/service/impl/TopSysTenantRegisterServiceImpl.java

@@ -0,0 +1,114 @@
+package com.zhongzheng.modules.top.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.zhongzheng.common.utils.DateUtils;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterAddBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterEditBo;
+import com.zhongzheng.modules.top.bo.TopSysTenantRegisterQueryBo;
+import com.zhongzheng.modules.top.domain.TopSysTenantRegister;
+import com.zhongzheng.modules.top.mapper.TopSysTenantRegisterMapper;
+import com.zhongzheng.modules.top.service.ITopSysTenantRegisterService;
+import com.zhongzheng.modules.top.vo.TopSysTenantRegisterVo;
+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 hjl
+ * @date 2023-02-21
+ */
+@Service
+public class TopSysTenantRegisterServiceImpl extends ServiceImpl<TopSysTenantRegisterMapper, TopSysTenantRegister> implements ITopSysTenantRegisterService {
+
+    @Override
+    public TopSysTenantRegisterVo queryById(Long id){
+        TopSysTenantRegister db = this.baseMapper.selectById(id);
+        return BeanUtil.toBean(db, TopSysTenantRegisterVo.class);
+    }
+
+    @Override
+    public List<TopSysTenantRegisterVo> queryList(TopSysTenantRegisterQueryBo bo) {
+        LambdaQueryWrapper<TopSysTenantRegister> lqw = Wrappers.lambdaQuery();
+        lqw.like(StrUtil.isNotBlank(bo.getTenantName()), TopSysTenantRegister::getTenantName, bo.getTenantName());
+        lqw.eq(StrUtil.isNotBlank(bo.getHostPc()), TopSysTenantRegister::getHostPc, bo.getHostPc());
+        lqw.eq(StrUtil.isNotBlank(bo.getHostH5()), TopSysTenantRegister::getHostH5, bo.getHostH5());
+        lqw.eq(StrUtil.isNotBlank(bo.getHostLive()), TopSysTenantRegister::getHostLive, bo.getHostLive());
+        lqw.eq(StrUtil.isNotBlank(bo.getLogoUrl()), TopSysTenantRegister::getLogoUrl, bo.getLogoUrl());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxSmallAppid()), TopSysTenantRegister::getWxSmallAppid, bo.getWxSmallAppid());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxGzhAppid()), TopSysTenantRegister::getWxGzhAppid, bo.getWxGzhAppid());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxGzhAppsecret()), TopSysTenantRegister::getWxGzhAppsecret, bo.getWxGzhAppsecret());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxWepayMchid()), TopSysTenantRegister::getWxWepayMchid, bo.getWxWepayMchid());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxWepayKey()), TopSysTenantRegister::getWxWepayKey, bo.getWxWepayKey());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxWepayAppsecret()), TopSysTenantRegister::getWxWepayAppsecret, bo.getWxWepayAppsecret());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxWepayNotifyurl()), TopSysTenantRegister::getWxWepayNotifyurl, bo.getWxWepayNotifyurl());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxSmallAppsecret()), TopSysTenantRegister::getWxSmallAppsecret, bo.getWxSmallAppsecret());
+        lqw.eq(StrUtil.isNotBlank(bo.getWxScanloginHost()), TopSysTenantRegister::getWxScanloginHost, bo.getWxScanloginHost());
+        lqw.eq(bo.getStatus() != null, TopSysTenantRegister::getStatus, bo.getStatus());
+        return entity2Vo(this.list(lqw));
+    }
+
+    /**
+    * 实体类转化成视图对象
+    *
+    * @param collection 实体类集合
+    * @return
+    */
+    private List<TopSysTenantRegisterVo> entity2Vo(Collection<TopSysTenantRegister> collection) {
+        List<TopSysTenantRegisterVo> voList = collection.stream()
+                .map(any -> BeanUtil.toBean(any, TopSysTenantRegisterVo.class))
+                .collect(Collectors.toList());
+        if (collection instanceof Page) {
+            Page<TopSysTenantRegister> page = (Page<TopSysTenantRegister>)collection;
+            Page<TopSysTenantRegisterVo> pageVo = new Page<>();
+            BeanUtil.copyProperties(page,pageVo);
+            pageVo.addAll(voList);
+            voList = pageVo;
+        }
+        return voList;
+    }
+
+    @Override
+    public Boolean insertByAddBo(TopSysTenantRegisterAddBo bo) {
+        TopSysTenantRegister add = BeanUtil.toBean(bo, TopSysTenantRegister.class);
+        validEntityBeforeSave(add);
+        add.setCreateTime(DateUtils.getNowTime());
+        add.setUpdateTime(DateUtils.getNowTime());
+        return this.save(add);
+    }
+
+    @Override
+    public Boolean updateByEditBo(TopSysTenantRegisterEditBo bo) {
+        TopSysTenantRegister update = BeanUtil.toBean(bo, TopSysTenantRegister.class);
+        validEntityBeforeSave(update);
+        update.setUpdateTime(DateUtils.getNowTime());
+        return this.updateById(update);
+    }
+
+    /**
+     * 保存前的数据校验
+     *
+     * @param entity 实体类数据
+     */
+    private void validEntityBeforeSave(TopSysTenantRegister entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return this.removeByIds(ids);
+    }
+}

+ 87 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/vo/TopSysTenantRegisterVo.java

@@ -0,0 +1,87 @@
+package com.zhongzheng.modules.top.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 hjl
+ * @date 2023-02-21
+ */
+@Data
+@ApiModel("机构注册视图对象")
+public class TopSysTenantRegisterVo {
+	private static final long serialVersionUID = 1L;
+
+	/** $pkColumn.columnComment */
+	@ApiModelProperty("$pkColumn.columnComment")
+	private Long id;
+
+	/** 机构名称 */
+	@Excel(name = "机构名称")
+	@ApiModelProperty("机构名称")
+	private String tenantName;
+	/** PC域名 */
+	@Excel(name = "PC域名")
+	@ApiModelProperty("PC域名")
+	private String hostPc;
+	/** h5域名 */
+	@Excel(name = "h5域名")
+	@ApiModelProperty("h5域名")
+	private String hostH5;
+	/** 直播域名 */
+	@Excel(name = "直播域名")
+	@ApiModelProperty("直播域名")
+	private String hostLive;
+	/** 公司logo */
+	@Excel(name = "公司logo")
+	@ApiModelProperty("公司logo")
+	private String logoUrl;
+	/** 微信小程序appid */
+	@Excel(name = "微信小程序appid")
+	@ApiModelProperty("微信小程序appid")
+	private String wxSmallAppid;
+	/** 公众号appid */
+	@Excel(name = "公众号appid")
+	@ApiModelProperty("公众号appid")
+	private String wxGzhAppid;
+	/** 公众号密钥 */
+	@Excel(name = "公众号密钥")
+	@ApiModelProperty("公众号密钥")
+	private String wxGzhAppsecret;
+	/** 商户ID */
+	@Excel(name = "商户ID")
+	@ApiModelProperty("商户ID")
+	private String wxWepayMchid;
+	/** 商户key */
+	@Excel(name = "商户key")
+	@ApiModelProperty("商户key")
+	private String wxWepayKey;
+	/** app密钥 */
+	@Excel(name = "app密钥")
+	@ApiModelProperty("app密钥")
+	private String wxWepayAppsecret;
+	/** 支付回调地址 */
+	@Excel(name = "支付回调地址")
+	@ApiModelProperty("支付回调地址")
+	private String wxWepayNotifyurl;
+	/** 小程序密钥 */
+	@Excel(name = "小程序密钥")
+	@ApiModelProperty("小程序密钥")
+	private String wxSmallAppsecret;
+	/** 微信扫码登录URL */
+	@Excel(name = "微信扫码登录URL")
+	@ApiModelProperty("微信扫码登录URL")
+	private String wxScanloginHost;
+	/** 0 失效 1启用 */
+	@Excel(name = "0 失效 1启用")
+	@ApiModelProperty("0 失效 1启用")
+	private Integer status;
+}

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

@@ -6,6 +6,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.HashMap;
 
@@ -73,6 +74,8 @@ public class UserExamRecordQueryBo extends BaseEntity {
 	/** 做题模式 1章卷 2随机练习 */
 	@ApiModelProperty("做题模式 1章卷 2随机练习3模拟随机")
 	private Long doMode;
+	@ApiModelProperty("做题模式 1章卷 2随机练习 3模拟随机")
+	private List<Long> doModes;
 	/** 模拟做题试卷ID */
 	@ApiModelProperty("模拟做题试卷ID")
 	private Long simulateExamId;

+ 29 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopSysTenantRegisterMapper.xml

@@ -0,0 +1,29 @@
+<?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.top.mapper.TopSysTenantRegisterMapper">
+
+    <resultMap type="com.zhongzheng.modules.top.domain.TopSysTenantRegister" id="TopSysTenantRegisterResult">
+        <result property="id" column="id"/>
+        <result property="tenantName" column="tenant_name"/>
+        <result property="hostPc" column="host_pc"/>
+        <result property="hostH5" column="host_h5"/>
+        <result property="hostLive" column="host_live"/>
+        <result property="logoUrl" column="logo_url"/>
+        <result property="wxSmallAppid" column="wx_small_appid"/>
+        <result property="wxGzhAppid" column="wx_gzh_appid"/>
+        <result property="wxGzhAppsecret" column="wx_gzh_appsecret"/>
+        <result property="wxWepayMchid" column="wx_wepay_mchid"/>
+        <result property="wxWepayKey" column="wx_wepay_key"/>
+        <result property="wxWepayAppsecret" column="wx_wepay_appsecret"/>
+        <result property="wxWepayNotifyurl" column="wx_wepay_notifyUrl"/>
+        <result property="wxSmallAppsecret" column="wx_small_appsecret"/>
+        <result property="wxScanloginHost" column="wx_scanLogin_host"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+
+</mapper>

+ 12 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserExamRecordMapper.xml

@@ -449,6 +449,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 FROM
                     ( SELECT exam_id, group_concat( do_question_ids ) AS ids FROM user_exam_record WHERE user_id = #{userId}
                                                                                                      AND order_goods_id = #{orderGoodsId}
+                                                                                                    <if test="doModes != null and doModes.size()!=0 ">
+                                                                                                        AND do_mode in
+                                                                                                        <foreach collection="doModes" item="item" index="index" open="(" close=")" separator=",">
+                                                                                                            #{item}
+                                                                                                        </foreach>
+                                                                                                    </if>
                                                                                                     <if test="doMode != null and doMode != ''">
                                                                                                         AND do_mode = #{doMode}
                                                                                                     </if>
@@ -471,6 +477,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 WHERE
                         record_id IN ( SELECT MAX( record_id ) record_id FROM user_exam_record WHERE user_id = #{userId}
                                                                                                  AND order_goods_id = #{orderGoodsId}
+                                                                                                <if test="doModes != null and doModes.size()!=0 ">
+                                                                                                    AND do_mode in
+                                                                                                    <foreach collection="doModes" item="item" index="index" open="(" close=")" separator=",">
+                                                                                                        #{item}
+                                                                                                    </foreach>
+                                                                                                </if>
                                                                                                 <if test="doMode != null and doMode != ''">
                                                                                                     AND do_mode = #{doMode}
                                                                                                 </if>