管理端:学习进度/会员证书
This commit is contained in:
parent
902a9a3d97
commit
5bf8a27887
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
|
|
@ -46,7 +46,7 @@
|
|||
pagination: $.common.visible(options.pagination), // 是否显示分页(*)
|
||||
pageNumber: 1, // 初始化加载第一页,默认第一页
|
||||
pageSize: 10, // 每页的记录行数(*)
|
||||
pageList: [10, 25, 50,100,500,1000], // 可供选择的每页的行数(*)
|
||||
pageList: [10,50,100,'1000'], // 可供选择的每页的行数(*)
|
||||
clickToSelect: true, // 点击行选中
|
||||
iconSize: 'outline', // 图标大小:undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
|
||||
toolbar: '#toolbar', // 指定工作栏
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
<ul class="nav" id="side-menu">
|
||||
<li class="nav-header">
|
||||
<div class="dropdown profile-element"> <span>
|
||||
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" alt="image" class="img-circle" height="60" width="60"/></span>
|
||||
<img th:src="@{/juncong.jpg}" alt="image" class="img-circle" height="60" width="60"/></span>
|
||||
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
|
||||
<span class="clear"><span class="block m-t-xs"><strong class="font-bold" th:text="${user.userName}">用户</strong></span>
|
||||
<span class="text-muted text-xs block"><span th:text="${user.dept?.deptName}">部门</span> <b class="caret"></b></span> </span> </a>
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ public class EntityUtils {
|
|||
for (Method m : methods) {
|
||||
if (m.getName().equals( "setCreateBy" )) {
|
||||
m.invoke( entity,com.ruoyi.framework.web.util.ShiroUtils.getLoginName() );
|
||||
} else if (m.getName().equals( "setCreateDate" )) {
|
||||
m.invoke( entity, new Date() );
|
||||
} else if (m.getName().equals( "setCreateTime" )) {
|
||||
m.invoke( entity, new Date() );
|
||||
}
|
||||
|
|
@ -60,6 +62,8 @@ public class EntityUtils {
|
|||
for (Method m : methods) {
|
||||
if (m.getName().equals( "setUpdateBy" )) {
|
||||
m.invoke( entity,com.ruoyi.framework.web.util.ShiroUtils.getLoginName());
|
||||
} else if (m.getName().equals( "setUpdateDate" )) {
|
||||
m.invoke( entity, new Date() );
|
||||
} else if (m.getName().equals( "setUpdateTime" )) {
|
||||
m.invoke( entity, new Date() );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
(select id from train_course_category where FIND_IN_SET(#{trainCourseCategoryId},parent_ids))
|
||||
or train_course.train_course_category_id = #{trainCourseCategoryId} )
|
||||
</if>
|
||||
<if test="name != null and name != '' "> and train_course.name = #{name}</if>
|
||||
<if test="name != null and name != '' "> and train_course.name like CONCAT('%', #{name},'%')</if>
|
||||
<if test="cover != null and cover != '' "> and train_course.cover = #{cover}</if>
|
||||
<if test="description != null and description != '' "> and train_course.description = #{description}</if>
|
||||
<if test="state != null and state != '' "> and train_course.state = #{state}</if>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.ruoyi.vip.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
|
@ -20,8 +22,8 @@ import com.ruoyi.common.base.AjaxResult;
|
|||
import com.ruoyi.common.utils.ExcelUtil;
|
||||
|
||||
/**
|
||||
* 我的订单 信息操作处理
|
||||
*
|
||||
* 证书管理 信息操作处理
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
|
|
@ -29,98 +31,99 @@ import com.ruoyi.common.utils.ExcelUtil;
|
|||
@RequestMapping("/vip/vipUserCertificate")
|
||||
public class VipUserCertificateController extends BaseController
|
||||
{
|
||||
private String prefix = "vip/vipUserCertificate";
|
||||
|
||||
private String prefix = "vip/vipUserCertificate";
|
||||
|
||||
@Autowired
|
||||
private IVipUserCertificateService vipUserCertificateService;
|
||||
|
||||
|
||||
@RequiresPermissions("vip:vipUserCertificate:view")
|
||||
@GetMapping()
|
||||
public String vipUserCertificate()
|
||||
{
|
||||
return prefix + "/vipUserCertificate";
|
||||
return prefix + "/vipUserCertificate";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询我的订单列表
|
||||
* 查询证书管理列表
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCertificate:list")
|
||||
@PostMapping("/list")
|
||||
@ResponseBody
|
||||
public TableDataInfo list(VipUserCertificate vipUserCertificate)
|
||||
public TableDataInfo list(VipUserCertificateVO vipUserCertificate)
|
||||
{
|
||||
List<VipUserCertificate> list = vipUserCertificateService.selectVipUserCertificatePage(vipUserCertificate);
|
||||
List<VipUserCertificateVO> list = vipUserCertificateService.selectVipUserCertificatePage(vipUserCertificate);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导出我的订单列表
|
||||
* 导出证书管理列表
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCertificate:export")
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(VipUserCertificate vipUserCertificate)
|
||||
{
|
||||
List<VipUserCertificate> list = vipUserCertificateService.selectVipUserCertificateList(vipUserCertificate);
|
||||
ExcelUtil<VipUserCertificate> util = new ExcelUtil<VipUserCertificate>(VipUserCertificate.class);
|
||||
return util.exportExcel(list, "vipUserCertificate");
|
||||
}
|
||||
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(VipUserCertificateVO vipUserCertificate)
|
||||
{
|
||||
List<VipUserCertificateVO> list = vipUserCertificateService.selectVipUserCertificateList(vipUserCertificate);
|
||||
ExcelUtil<VipUserCertificateVO> util = new ExcelUtil<VipUserCertificateVO>(VipUserCertificateVO.class);
|
||||
return util.exportExcel(list, "vipUserCertificate");
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增我的订单
|
||||
* 新增证书管理
|
||||
*/
|
||||
@GetMapping("/add")
|
||||
public String add()
|
||||
{
|
||||
return prefix + "/add";
|
||||
return prefix + "/add";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增保存我的订单
|
||||
* 新增保存证书管理
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCertificate:add")
|
||||
@Log(title = "我的订单", businessType = BusinessType.INSERT)
|
||||
@Log(title = "证书管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping("/add")
|
||||
@ResponseBody
|
||||
public AjaxResult addSave(VipUserCertificate vipUserCertificate)
|
||||
{
|
||||
{
|
||||
vipUserCertificate.setDelFlag( "0" );
|
||||
return toAjax(vipUserCertificateService.insert(vipUserCertificate));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改我的订单
|
||||
* 修改证书管理
|
||||
*/
|
||||
@GetMapping("/edit/{id}")
|
||||
public String edit(@PathVariable("id") Integer id, ModelMap mmap)
|
||||
{
|
||||
VipUserCertificate vipUserCertificate = vipUserCertificateService.selectById(id);
|
||||
mmap.put("vipUserCertificate", vipUserCertificate);
|
||||
return prefix + "/edit";
|
||||
return prefix + "/edit";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改保存我的订单
|
||||
* 修改保存证书管理
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCertificate:edit")
|
||||
@Log(title = "我的订单", businessType = BusinessType.UPDATE)
|
||||
@Log(title = "证书管理", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/edit")
|
||||
@ResponseBody
|
||||
public AjaxResult editSave(VipUserCertificate vipUserCertificate)
|
||||
{
|
||||
return toAjax(vipUserCertificateService.updateById(vipUserCertificate));
|
||||
{
|
||||
return toAjax(vipUserCertificateService.updateSelectiveById(vipUserCertificate));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除我的订单
|
||||
* 删除证书管理
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCertificate:remove")
|
||||
@Log(title = "我的订单", businessType = BusinessType.DELETE)
|
||||
@Log(title = "证书管理", businessType = BusinessType.DELETE)
|
||||
@PostMapping( "/remove")
|
||||
@ResponseBody
|
||||
public AjaxResult remove(String ids)
|
||||
{
|
||||
{
|
||||
return toAjax(vipUserCertificateService.deleteByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.ruoyi.vip.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
|
@ -21,7 +23,7 @@ import com.ruoyi.common.utils.ExcelUtil;
|
|||
|
||||
/**
|
||||
* 我的课程学习 信息操作处理
|
||||
*
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
|
|
@ -29,53 +31,53 @@ import com.ruoyi.common.utils.ExcelUtil;
|
|||
@RequestMapping("/vip/vipUserCourseSection")
|
||||
public class VipUserCourseSectionController extends BaseController
|
||||
{
|
||||
private String prefix = "vip/vipUserCourseSection";
|
||||
|
||||
private String prefix = "vip/vipUserCourseSection";
|
||||
|
||||
@Autowired
|
||||
private IVipUserCourseSectionService vipUserCourseSectionService;
|
||||
|
||||
|
||||
@RequiresPermissions("vip:vipUserCourseSection:view")
|
||||
@GetMapping()
|
||||
public String vipUserCourseSection()
|
||||
{
|
||||
return prefix + "/vipUserCourseSection";
|
||||
return prefix + "/vipUserCourseSection";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询我的课程学习列表
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCourseSection:list")
|
||||
@PostMapping("/list")
|
||||
@ResponseBody
|
||||
public TableDataInfo list(VipUserCourseSection vipUserCourseSection)
|
||||
public TableDataInfo list(VipUserCourseSectionVO vipUserCourseSection)
|
||||
{
|
||||
List<VipUserCourseSection> list = vipUserCourseSectionService.selectVipUserCourseSectionPage(vipUserCourseSection);
|
||||
List<VipUserCourseSectionVO> list = vipUserCourseSectionService.selectVipUserCourseSectionPage(vipUserCourseSection);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 导出我的课程学习列表
|
||||
*/
|
||||
@RequiresPermissions("vip:vipUserCourseSection:export")
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(VipUserCourseSection vipUserCourseSection)
|
||||
{
|
||||
List<VipUserCourseSection> list = vipUserCourseSectionService.selectVipUserCourseSectionList(vipUserCourseSection);
|
||||
ExcelUtil<VipUserCourseSection> util = new ExcelUtil<VipUserCourseSection>(VipUserCourseSection.class);
|
||||
return util.exportExcel(list, "vipUserCourseSection");
|
||||
}
|
||||
|
||||
@PostMapping("/export")
|
||||
@ResponseBody
|
||||
public AjaxResult export(VipUserCourseSectionVO vipUserCourseSection)
|
||||
{
|
||||
List<VipUserCourseSectionVO> list = vipUserCourseSectionService.selectVipUserCourseSectionList(vipUserCourseSection);
|
||||
ExcelUtil<VipUserCourseSectionVO> util = new ExcelUtil<VipUserCourseSectionVO>(VipUserCourseSectionVO.class);
|
||||
return util.exportExcel(list, "vipUserCourseSection");
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增我的课程学习
|
||||
*/
|
||||
@GetMapping("/add")
|
||||
public String add()
|
||||
{
|
||||
return prefix + "/add";
|
||||
return prefix + "/add";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增保存我的课程学习
|
||||
*/
|
||||
|
|
@ -84,7 +86,7 @@ public class VipUserCourseSectionController extends BaseController
|
|||
@PostMapping("/add")
|
||||
@ResponseBody
|
||||
public AjaxResult addSave(VipUserCourseSection vipUserCourseSection)
|
||||
{
|
||||
{ vipUserCourseSection.setDelFlag( "0" );
|
||||
return toAjax(vipUserCourseSectionService.insert(vipUserCourseSection));
|
||||
}
|
||||
|
||||
|
|
@ -96,9 +98,9 @@ public class VipUserCourseSectionController extends BaseController
|
|||
{
|
||||
VipUserCourseSection vipUserCourseSection = vipUserCourseSectionService.selectById(id);
|
||||
mmap.put("vipUserCourseSection", vipUserCourseSection);
|
||||
return prefix + "/edit";
|
||||
return prefix + "/edit";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改保存我的课程学习
|
||||
*/
|
||||
|
|
@ -107,10 +109,10 @@ public class VipUserCourseSectionController extends BaseController
|
|||
@PostMapping("/edit")
|
||||
@ResponseBody
|
||||
public AjaxResult editSave(VipUserCourseSection vipUserCourseSection)
|
||||
{
|
||||
return toAjax(vipUserCourseSectionService.updateById(vipUserCourseSection));
|
||||
{
|
||||
return toAjax(vipUserCourseSectionService.updateSelectiveById(vipUserCourseSection));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除我的课程学习
|
||||
*/
|
||||
|
|
@ -119,8 +121,8 @@ public class VipUserCourseSectionController extends BaseController
|
|||
@PostMapping( "/remove")
|
||||
@ResponseBody
|
||||
public AjaxResult remove(String ids)
|
||||
{
|
||||
{
|
||||
return toAjax(vipUserCourseSectionService.deleteByIds(ids));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ private static final long serialVersionUID = 1L;
|
|||
/** 课程ID */
|
||||
private Integer trainCourseId;
|
||||
/** 章节id */
|
||||
private Integer trainCourseSection;
|
||||
private Integer trainCourseSectionId;
|
||||
/** 学习时间长度(分钟) */
|
||||
private Integer duration;
|
||||
/** 创建者 */
|
||||
|
|
@ -74,17 +74,15 @@ private static final long serialVersionUID = 1L;
|
|||
return trainCourseId;
|
||||
}
|
||||
/** 设置章节id */
|
||||
public void setTrainCourseSection(Integer trainCourseSection)
|
||||
{
|
||||
this.trainCourseSection = trainCourseSection;
|
||||
}
|
||||
public Integer getTrainCourseSectionId() {
|
||||
return trainCourseSectionId;
|
||||
}
|
||||
|
||||
/** 获取章节id */
|
||||
public Integer getTrainCourseSection()
|
||||
{
|
||||
return trainCourseSection;
|
||||
}
|
||||
/** 设置学习时间长度(分钟) */
|
||||
public void setTrainCourseSectionId(Integer trainCourseSectionId) {
|
||||
this.trainCourseSectionId = trainCourseSectionId;
|
||||
}
|
||||
|
||||
/** 设置学习时间长度(分钟) */
|
||||
public void setDuration(Integer duration)
|
||||
{
|
||||
this.duration = duration;
|
||||
|
|
@ -167,7 +165,7 @@ public String toString() {
|
|||
.append("id", getId())
|
||||
.append("vipUserId", getVipUserId())
|
||||
.append("trainCourseId", getTrainCourseId())
|
||||
.append("trainCourseSection", getTrainCourseSection())
|
||||
.append("trainCourseSection", getTrainCourseSectionId())
|
||||
.append("duration", getDuration())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createDate", getCreateDate())
|
||||
|
|
|
|||
|
|
@ -13,5 +13,16 @@ import com.ruoyi.vip.domain.VipUserCertificate;
|
|||
* @Version: 1.0
|
||||
*/
|
||||
public class VipUserCertificateVO extends VipUserCertificate {
|
||||
/**
|
||||
* 会员
|
||||
*/
|
||||
private SysUser user;
|
||||
|
||||
public SysUser getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(SysUser user) {
|
||||
this.user = user;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,40 @@
|
|||
package com.ruoyi.vip.domain.vo;
|
||||
|
||||
import com.ruoyi.vip.domain.VipUserCourseSection;
|
||||
|
||||
/**
|
||||
* 自定义学习进度
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
public class VipUserCourseSectionVO extends VipUserCourseSection {
|
||||
|
||||
private String trainCourseName;
|
||||
private String trainCourseSectionName;
|
||||
private String userName;
|
||||
|
||||
public String getUserName() {
|
||||
return userName;
|
||||
}
|
||||
|
||||
public void setUserName(String userName) {
|
||||
this.userName = userName;
|
||||
}
|
||||
|
||||
public String getTrainCourseName() {
|
||||
return trainCourseName;
|
||||
}
|
||||
|
||||
public void setTrainCourseName(String trainCourseName) {
|
||||
this.trainCourseName = trainCourseName;
|
||||
}
|
||||
|
||||
public String getTrainCourseSectionName() {
|
||||
return trainCourseSectionName;
|
||||
}
|
||||
|
||||
public void setTrainCourseSectionName(String trainCourseSectionName) {
|
||||
this.trainCourseSectionName = trainCourseSectionName;
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.ruoyi.vip.mapper;
|
|||
import com.ruoyi.vip.domain.VipUserCertificate;
|
||||
import java.util.List;
|
||||
import com.ruoyi.framework.web.base.MyMapper;
|
||||
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
|
||||
|
||||
/**
|
||||
* 我的订单 数据层
|
||||
|
|
@ -19,6 +20,6 @@ public interface VipUserCertificateMapper extends MyMapper<VipUserCertificate>
|
|||
* @param vipUserCertificate 我的订单信息
|
||||
* @return 我的订单集合
|
||||
*/
|
||||
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate);
|
||||
public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate);
|
||||
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.ruoyi.vip.mapper;
|
|||
import com.ruoyi.vip.domain.VipUserCourseSection;
|
||||
import java.util.List;
|
||||
import com.ruoyi.framework.web.base.MyMapper;
|
||||
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
|
||||
|
||||
/**
|
||||
* 我的课程学习 数据层
|
||||
|
|
@ -19,6 +20,6 @@ public interface VipUserCourseSectionMapper extends MyMapper<VipUserCourseSecti
|
|||
* @param vipUserCourseSection 我的课程学习信息
|
||||
* @return 我的课程学习集合
|
||||
*/
|
||||
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection);
|
||||
public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection);
|
||||
|
||||
}
|
||||
|
|
@ -3,28 +3,30 @@ package com.ruoyi.vip.service;
|
|||
import com.ruoyi.vip.domain.VipUserCertificate;
|
||||
import java.util.List;
|
||||
import com.ruoyi.framework.web.base.AbstractBaseService;
|
||||
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
|
||||
|
||||
/**
|
||||
* 我的订单 服务层
|
||||
*
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
public interface IVipUserCertificateService extends AbstractBaseService<VipUserCertificate>
|
||||
{
|
||||
/**
|
||||
/**
|
||||
* 查询我的订单分页列表
|
||||
*
|
||||
* @param vipUserCertificate 我的订单信息
|
||||
* @return 我的订单集合
|
||||
*/
|
||||
public List<VipUserCertificate> selectVipUserCertificatePage(VipUserCertificate vipUserCertificate);
|
||||
public List<VipUserCertificateVO> selectVipUserCertificatePage(VipUserCertificateVO vipUserCertificate);
|
||||
/**
|
||||
* 查询我的订单列表
|
||||
*
|
||||
* @param vipUserCertificate 我的订单信息
|
||||
* @return 我的订单集合
|
||||
*/
|
||||
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate);
|
||||
public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@ package com.ruoyi.vip.service;
|
|||
import com.ruoyi.vip.domain.VipUserCourseSection;
|
||||
import java.util.List;
|
||||
import com.ruoyi.framework.web.base.AbstractBaseService;
|
||||
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
|
||||
|
||||
/**
|
||||
* 我的课程学习 服务层
|
||||
*
|
||||
|
|
@ -17,14 +19,14 @@ public interface IVipUserCourseSectionService extends AbstractBaseService<VipUse
|
|||
* @param vipUserCourseSection 我的课程学习信息
|
||||
* @return 我的课程学习集合
|
||||
*/
|
||||
public List<VipUserCourseSection> selectVipUserCourseSectionPage(VipUserCourseSection vipUserCourseSection);
|
||||
public List<VipUserCourseSectionVO> selectVipUserCourseSectionPage(VipUserCourseSectionVO vipUserCourseSection);
|
||||
/**
|
||||
* 查询我的课程学习列表
|
||||
*
|
||||
* @param vipUserCourseSection 我的课程学习信息
|
||||
* @return 我的课程学习集合
|
||||
*/
|
||||
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection);
|
||||
public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.ruoyi.vip.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.vip.mapper.VipUserCertificateMapper;
|
||||
|
|
@ -10,28 +12,28 @@ import com.ruoyi.common.support.Convert;
|
|||
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
|
||||
/**
|
||||
* 我的订单 服务层实现
|
||||
*
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
@Service
|
||||
public class VipUserCertificateServiceImpl extends AbstractBaseServiceImpl<VipUserCertificateMapper,VipUserCertificate> implements IVipUserCertificateService
|
||||
{
|
||||
@Autowired
|
||||
private VipUserCertificateMapper vipUserCertificateMapper;
|
||||
@Autowired
|
||||
private VipUserCertificateMapper vipUserCertificateMapper;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* 查询我的订单列表
|
||||
*
|
||||
*
|
||||
* @param vipUserCertificate 我的订单信息
|
||||
* @return 我的订单集合
|
||||
*/
|
||||
@Override
|
||||
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate)
|
||||
{
|
||||
@Override
|
||||
public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate)
|
||||
{
|
||||
return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 查询我的订单分页列表
|
||||
*
|
||||
|
|
@ -39,7 +41,7 @@ public class VipUserCertificateServiceImpl extends AbstractBaseServiceImpl<VipUs
|
|||
* @return 我的订单集合
|
||||
*/
|
||||
@Override
|
||||
public List<VipUserCertificate> selectVipUserCertificatePage(VipUserCertificate vipUserCertificate)
|
||||
public List<VipUserCertificateVO> selectVipUserCertificatePage(VipUserCertificateVO vipUserCertificate)
|
||||
{
|
||||
startPage();
|
||||
return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.ruoyi.vip.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.vip.mapper.VipUserCourseSectionMapper;
|
||||
|
|
@ -10,28 +12,28 @@ import com.ruoyi.common.support.Convert;
|
|||
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
|
||||
/**
|
||||
* 我的课程学习 服务层实现
|
||||
*
|
||||
*
|
||||
* @author zhujj
|
||||
* @date 2019-01-15
|
||||
*/
|
||||
@Service
|
||||
public class VipUserCourseSectionServiceImpl extends AbstractBaseServiceImpl<VipUserCourseSectionMapper,VipUserCourseSection> implements IVipUserCourseSectionService
|
||||
{
|
||||
@Autowired
|
||||
private VipUserCourseSectionMapper vipUserCourseSectionMapper;
|
||||
@Autowired
|
||||
private VipUserCourseSectionMapper vipUserCourseSectionMapper;
|
||||
|
||||
|
||||
/**
|
||||
|
||||
/**
|
||||
* 查询我的课程学习列表
|
||||
*
|
||||
*
|
||||
* @param vipUserCourseSection 我的课程学习信息
|
||||
* @return 我的课程学习集合
|
||||
*/
|
||||
@Override
|
||||
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection)
|
||||
{
|
||||
@Override
|
||||
public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection)
|
||||
{
|
||||
return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 查询我的课程学习分页列表
|
||||
*
|
||||
|
|
@ -39,7 +41,7 @@ public class VipUserCourseSectionServiceImpl extends AbstractBaseServiceImpl<Vip
|
|||
* @return 我的课程学习集合
|
||||
*/
|
||||
@Override
|
||||
public List<VipUserCourseSection> selectVipUserCourseSectionPage(VipUserCourseSection vipUserCourseSection)
|
||||
public List<VipUserCourseSectionVO> selectVipUserCourseSectionPage(VipUserCourseSectionVO vipUserCourseSection)
|
||||
{
|
||||
startPage();
|
||||
return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.vip.mapper.VipUserCertificateMapper">
|
||||
|
||||
<resultMap type="VipUserCertificate" id="VipUserCertificateResult">
|
||||
<resultMap type="VipUserCertificateVO" id="VipUserCertificateResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="vipUserId" column="vip_user_id" />
|
||||
<result property="name" column="name" />
|
||||
|
|
@ -17,27 +17,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="updateDate" column="update_date" />
|
||||
<result property="remarks" column="remarks" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="user.userName" column="user_name" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectVipUserCertificateVo">
|
||||
id, vip_user_id, name, image, start_date, end_date, create_by, create_date, update_by, update_date, remarks, del_flag </sql>
|
||||
vip_user_certificate.id, vip_user_certificate.vip_user_id, vip_user_certificate.name, vip_user_certificate.image, vip_user_certificate.start_date, vip_user_certificate.end_date,
|
||||
vip_user_certificate.create_by, vip_user_certificate.create_date, vip_user_certificate.update_by, vip_user_certificate.update_date, vip_user_certificate.remarks, vip_user_certificate.del_flag </sql>
|
||||
|
||||
<select id="selectVipUserCertificateList" parameterType="VipUserCertificate" resultMap="VipUserCertificateResult">
|
||||
<select id="selectVipUserCertificateList" parameterType="VipUserCertificateVO" resultMap="VipUserCertificateResult">
|
||||
select
|
||||
<include refid="selectVipUserCertificateVo"/>
|
||||
,suser.user_name
|
||||
from vip_user_certificate
|
||||
<where>
|
||||
<if test="id != null "> and id = #{id}</if>
|
||||
<if test="vipUserId != null "> and vip_user_id = #{vipUserId}</if>
|
||||
<if test="name != null and name != '' "> and name = #{name}</if>
|
||||
<if test="image != null and image != '' "> and image = #{image}</if>
|
||||
<if test="startDate != null "> and start_date = #{startDate}</if>
|
||||
<if test="endDate != null "> and end_date = #{endDate}</if>
|
||||
<if test="createBy != null and createBy != '' "> and create_by = #{createBy}</if>
|
||||
<if test="createDate != null "> and create_date = #{createDate}</if>
|
||||
<if test="updateBy != null and updateBy != '' "> and update_by = #{updateBy}</if>
|
||||
<if test="updateDate != null "> and update_date = #{updateDate}</if>
|
||||
<if test="remarks != null and remarks != '' "> and remarks = #{remarks}</if>
|
||||
left join sys_user suser on suser.user_id=vip_user_certificate.vip_user_id
|
||||
<where>
|
||||
<if test="user != null and user.userName != null and user.userName != ''"> and suser.user_name like CONCAT('%',#{user.userName},'%') </if>
|
||||
<if test="id != null "> and vip_user_certificate.id = #{id}</if>
|
||||
<if test="vipUserId != null "> and vip_user_certificate.vip_user_id = #{vipUserId}</if>
|
||||
<if test="name != null and name != '' "> and name like CONCAT('%',#{name},'%')</if>
|
||||
|
||||
<if test="startDate != null "> <![CDATA[ and vip_user_certificate.start_date >= #{startDate}]]></if>
|
||||
<if test="endDate != null "> <![CDATA[ and vip_user_certificate.end_date <= #{endDate}]]></if>
|
||||
<if test="delFlag != null and delFlag != '' "> and del_flag = #{delFlag}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.ruoyi.vip.mapper.VipUserCourseSectionMapper">
|
||||
|
||||
<resultMap type="VipUserCourseSection" id="VipUserCourseSectionResult">
|
||||
<resultMap type="VipUserCourseSectionVO" id="VipUserCourseSectionResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="vipUserId" column="vip_user_id" />
|
||||
<result property="trainCourseId" column="train_course_id" />
|
||||
<result property="trainCourseSection" column="train_course_section" />
|
||||
<result property="trainCourseSectionId" column="train_course_section_id" />
|
||||
<result property="duration" column="duration" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createDate" column="create_date" />
|
||||
|
|
@ -16,28 +16,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<result property="updateDate" column="update_date" />
|
||||
<result property="remarks" column="remarks" />
|
||||
<result property="delFlag" column="del_flag" />
|
||||
<result property="userName" column="user_name" />
|
||||
<result property="trainCourseName" column="trainCourseName" />
|
||||
<result property="trainCourseSectionName" column="trainCourseSectionName" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectVipUserCourseSectionVo">
|
||||
id, vip_user_id, train_course_id, train_course_section, duration, create_by, create_date, update_by, update_date, remarks, del_flag </sql>
|
||||
vucs.id, vucs.vip_user_id, vucs.train_course_id, vucs.train_course_section_id, vucs.duration, vucs.create_by, vucs.create_date,
|
||||
vucs.update_by, vucs.update_date, vucs.remarks, vucs.del_flag </sql>
|
||||
|
||||
<select id="selectVipUserCourseSectionList" parameterType="VipUserCourseSection" resultMap="VipUserCourseSectionResult">
|
||||
<select id="selectVipUserCourseSectionList" parameterType="VipUserCourseSectionVO" resultMap="VipUserCourseSectionResult">
|
||||
select
|
||||
<include refid="selectVipUserCourseSectionVo"/>
|
||||
from vip_user_course_section
|
||||
,su.user_name,tc.name trainCourseName,tcs.name trainCourseSectionName
|
||||
from vip_user_course_section vucs
|
||||
LEFT join sys_user su on su.user_id=vucs.vip_user_id
|
||||
left join train_course tc on tc.id=vucs.train_course_id
|
||||
left join train_course_section tcs on tcs.id =vucs.train_course_section_id
|
||||
<where>
|
||||
<if test="id != null "> and id = #{id}</if>
|
||||
<if test="vipUserId != null "> and vip_user_id = #{vipUserId}</if>
|
||||
<if test="trainCourseId != null "> and train_course_id = #{trainCourseId}</if>
|
||||
<if test="trainCourseSection != null "> and train_course_section = #{trainCourseSection}</if>
|
||||
<if test="duration != null "> and duration = #{duration}</if>
|
||||
<if test="createBy != null and createBy != '' "> and create_by = #{createBy}</if>
|
||||
<if test="createDate != null "> and create_date = #{createDate}</if>
|
||||
<if test="updateBy != null and updateBy != '' "> and update_by = #{updateBy}</if>
|
||||
<if test="updateDate != null "> and update_date = #{updateDate}</if>
|
||||
<if test="remarks != null and remarks != '' "> and remarks = #{remarks}</if>
|
||||
<if test="delFlag != null and delFlag != '' "> and del_flag = #{delFlag}</if>
|
||||
</where>
|
||||
<if test="id != null "> and vucs.id = #{id}</if>
|
||||
<if test="vipUserId != null "> and vucs.vip_user_id = #{vipUserId}</if>
|
||||
<if test="trainCourseId != null "> and vucs.train_course_id = #{trainCourseId}</if>
|
||||
<if test="trainCourseSectionId != null "> and vucs.train_course_section_id = #{trainCourseSectionId}</if>
|
||||
<if test="delFlag != null and delFlag != '' "> and vucs.del_flag = #{delFlag}</if>
|
||||
|
||||
<if test="trainCourseName != null and trainCourseName != ''"> and tc.name like CONCAT('%',#{trainCourseName},'%') </if>
|
||||
<if test="trainCourseSectionName != null and trainCourseSectionName != ''"> and tcs.name like CONCAT('%',#{trainCourseSectionName},'%') </if>
|
||||
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<link th:href="@{/ruoyi/css/ry-ui.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ajax/libs/datapicker/datepicker3.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ajax/libs/layui/css/layui.css}" rel="stylesheet"/>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-vipUserCertificate-add">
|
||||
|
|
@ -20,7 +23,14 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">证书照片:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="image" name="image" class="form-control" type="text">
|
||||
<input id="image" name="image" class="form-control" type="hidden">
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn" id="test1">上传图片</button>
|
||||
<div class="layui-upload-list">
|
||||
<img class="layui-upload-img" id="demo1">
|
||||
<p id="demoText"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -41,45 +51,19 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createBy" name="createBy" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createDate" name="createDate" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateBy" name="updateBy" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateDate" name="updateDate" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remarks" name="remarks" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">删除标记:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="delFlag" name="delFlag" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script th:src="@{/js/jquery-ui-1.10.4.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs//datapicker/bootstrap-datepicker.js}"></script>
|
||||
<script th:src="@{/ajax/libs/beautifyhtml/beautifyhtml.js}"></script>
|
||||
<script type="text/javascript">
|
||||
var prefix = ctx + "vip/vipUserCertificate"
|
||||
$("#form-vipUserCertificate-add").validate({
|
||||
|
|
@ -95,6 +79,44 @@
|
|||
$.operate.save(prefix + "/add", $('#form-vipUserCertificate-add').serialize());
|
||||
}
|
||||
}
|
||||
$(".input-group.date").datepicker({todayBtn: "linked",keyboardNavigation: !1,forceParse: !1,calendarWeeks: !0,autoclose: !0});
|
||||
|
||||
|
||||
layui.use('upload', function() {
|
||||
var $ = layui.jquery
|
||||
, upload = layui.upload;
|
||||
//普通图片上传
|
||||
var uploadInst = upload.render({
|
||||
elem: '#test1'
|
||||
,url: '/upload/files'
|
||||
,data:{module:"vip/user/certificate"}//文件存放路径
|
||||
,before: function(obj){
|
||||
//预读本地文件示例,不支持ie8
|
||||
obj.preview(function(index, file, result){
|
||||
$('#demo1').attr('src', result); //图片链接(base64)
|
||||
});
|
||||
}
|
||||
,done: function(res){
|
||||
//如果上传失败
|
||||
if(res.code !=200){
|
||||
return layer.msg('上传失败');
|
||||
}
|
||||
//上传成功
|
||||
if(res.code ==200){
|
||||
$("#image").val(res.fileName)
|
||||
return layer.msg('上传成功');
|
||||
}
|
||||
}
|
||||
,error: function(){
|
||||
//演示失败状态,并实现重传
|
||||
var demoText = $('#demoText');
|
||||
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
|
||||
demoText.find('.demo-reload').on('click', function(){
|
||||
uploadInst.upload();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
||||
<meta charset="utf-8">
|
||||
<head th:include="include :: header"></head>
|
||||
<link th:href="@{/ruoyi/css/ry-ui.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ajax/libs/datapicker/datepicker3.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ajax/libs/layui/css/layui.css}" rel="stylesheet"/>
|
||||
<body class="white-bg">
|
||||
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
|
||||
<form class="form-horizontal m" id="form-vipUserCertificate-edit" th:object="${vipUserCertificate}">
|
||||
|
|
@ -21,7 +24,14 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">证书照片:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="image" name="image" th:field="*{image}" class="form-control" type="text">
|
||||
<input id="image" name="image" class="form-control" th:field="*{image}" type="hidden">
|
||||
<div class="layui-upload">
|
||||
<button type="button" class="layui-btn" id="test1">上传图片</button>
|
||||
<div class="layui-upload-list">
|
||||
<img class="layui-upload-img" id="demo1" th:src="@{/profile/avatar/}+${image}">
|
||||
<p id="demoText"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
@ -49,6 +59,10 @@
|
|||
</form>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
<script th:src="@{/js/jquery-ui-1.10.4.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs//datapicker/bootstrap-datepicker.js}"></script>
|
||||
<script th:src="@{/ajax/libs/beautifyhtml/beautifyhtml.js}"></script>
|
||||
<script type="text/javascript">
|
||||
var prefix = ctx + "vip/vipUserCertificate"
|
||||
$("#form-vipUserCertificate-edit").validate({
|
||||
|
|
@ -64,6 +78,45 @@
|
|||
$.operate.save(prefix + "/edit", $('#form-vipUserCertificate-edit').serialize());
|
||||
}
|
||||
}
|
||||
|
||||
$(".input-group.date").datepicker({todayBtn: "linked",keyboardNavigation: !1,forceParse: !1,calendarWeeks: !0,autoclose: !0});
|
||||
|
||||
|
||||
layui.use('upload', function() {
|
||||
var $ = layui.jquery
|
||||
, upload = layui.upload;
|
||||
//普通图片上传
|
||||
var uploadInst = upload.render({
|
||||
elem: '#test1'
|
||||
,url: '/upload/files'
|
||||
,data:{module:"vip/user/certificate"}//文件存放路径
|
||||
,before: function(obj){
|
||||
//预读本地文件示例,不支持ie8
|
||||
obj.preview(function(index, file, result){
|
||||
$('#demo1').attr('src', result); //图片链接(base64)
|
||||
});
|
||||
}
|
||||
,done: function(res){
|
||||
//如果上传失败
|
||||
if(res.code !=200){
|
||||
return layer.msg('上传失败');
|
||||
}
|
||||
//上传成功
|
||||
if(res.code ==200){
|
||||
$("#image").val(res.fileName)
|
||||
return layer.msg('上传成功');
|
||||
}
|
||||
}
|
||||
,error: function(){
|
||||
//演示失败状态,并实现重传
|
||||
var demoText = $('#demoText');
|
||||
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
|
||||
demoText.find('.demo-reload').on('click', function(){
|
||||
uploadInst.upload();
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -11,32 +11,22 @@
|
|||
<div class="select-list">
|
||||
<ul>
|
||||
<li>
|
||||
会员代码:<input type="text" name="vipUserId"/>
|
||||
会员姓名:<input type="text" name="user.userName"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
证书名称:<input type="text" name="name"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
证书照片:<input type="text" name="image"/>
|
||||
<li class="select-time">
|
||||
<label>有效日期: </label>
|
||||
|
||||
<input type="text" class="time-input" id="startDate" placeholder="生效时间" name="startDate"/>
|
||||
<span>-</span>
|
||||
<input type="text" class="time-input" id="endDate" placeholder="截至时间" name="endDate"/>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
生效日期:<input type="text" name="startDate"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
截止日期:<input type="text" name="endDate"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
创建者:<input type="text" name="createBy"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
创建时间:<input type="text" name="createDate"/>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">章节id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="trainCourseSection" name="trainCourseSection" class="form-control" type="text">
|
||||
<input id="trainCourseSectionId" name="trainCourseSectionId" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
@ -29,42 +29,12 @@
|
|||
<input id="duration" name="duration" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createBy" name="createBy" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createDate" name="createDate" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateBy" name="updateBy" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateDate" name="updateDate" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remarks" name="remarks" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">删除标记:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="delFlag" name="delFlag" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">章节id:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="trainCourseSection" name="trainCourseSection" th:field="*{trainCourseSection}" class="form-control" type="text">
|
||||
<input id="trainCourseSectionId" name="trainCourseSectionId" th:field="*{trainCourseSectionId}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
@ -30,42 +30,12 @@
|
|||
<input id="duration" name="duration" th:field="*{duration}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createBy" name="createBy" th:field="*{createBy}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">创建时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="createDate" name="createDate" th:field="*{createDate}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新者:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateBy" name="updateBy" th:field="*{updateBy}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">更新时间:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="updateDate" name="updateDate" th:field="*{updateDate}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">备注信息:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="remarks" name="remarks" th:field="*{remarks}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">删除标记:</label>
|
||||
<div class="col-sm-8">
|
||||
<input id="delFlag" name="delFlag" th:field="*{delFlag}" class="form-control" type="text">
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div th:include="include::footer"></div>
|
||||
|
|
|
|||
|
|
@ -22,18 +22,6 @@
|
|||
章节id:<input type="text" name="trainCourseSection"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
学习时间长度(分钟):<input type="text" name="duration"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
创建者:<input type="text" name="createBy"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
创建时间:<input type="text" name="createDate"/>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||
|
|
@ -87,40 +75,30 @@
|
|||
visible: false
|
||||
},
|
||||
{
|
||||
field : 'vipUserId',
|
||||
title : '会员代码',
|
||||
sortable: true
|
||||
field : 'userName',
|
||||
title : '会员姓名',
|
||||
},
|
||||
{
|
||||
field : 'trainCourseId',
|
||||
title : '课程ID',
|
||||
sortable: true
|
||||
field : 'trainCourseName',
|
||||
title : '课程名称',
|
||||
},
|
||||
{
|
||||
field : 'trainCourseSection',
|
||||
title : '章节id',
|
||||
sortable: true
|
||||
field : 'trainCourseSectionName',
|
||||
title : '章节名称',
|
||||
},
|
||||
{
|
||||
field : 'duration',
|
||||
title : '学习时间(分钟)',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field : 'createBy',
|
||||
title : '创建者',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field : 'createDate',
|
||||
title : '创建时间',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field : 'updateBy',
|
||||
title : '更新者',
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
|
|
|
|||
Loading…
Reference in New Issue