管理端:学习进度/会员证书

This commit is contained in:
zhujunjieit 2019-01-16 00:07:34 +08:00
parent 902a9a3d97
commit 5bf8a27887
24 changed files with 344 additions and 287 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -46,7 +46,7 @@
pagination: $.common.visible(options.pagination), // 是否显示分页(* pagination: $.common.visible(options.pagination), // 是否显示分页(*
pageNumber: 1, // 初始化加载第一页,默认第一页 pageNumber: 1, // 初始化加载第一页,默认第一页
pageSize: 10, // 每页的记录行数(* pageSize: 10, // 每页的记录行数(*
pageList: [10, 25, 50,100,500,1000], // 可供选择的每页的行数(* pageList: [10,50,100,'1000'], // 可供选择的每页的行数(*
clickToSelect: true, // 点击行选中 clickToSelect: true, // 点击行选中
iconSize: 'outline', // 图标大小undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮 iconSize: 'outline', // 图标大小undefined默认的按钮尺寸 xs超小按钮sm小按钮lg大按钮
toolbar: '#toolbar', // 指定工作栏 toolbar: '#toolbar', // 指定工作栏

View File

@ -33,7 +33,7 @@
<ul class="nav" id="side-menu"> <ul class="nav" id="side-menu">
<li class="nav-header"> <li class="nav-header">
<div class="dropdown profile-element"> <span> <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="#"> <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="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> <span class="text-muted text-xs block"><span th:text="${user.dept?.deptName}">部门</span> <b class="caret"></b></span> </span> </a>

View File

@ -37,6 +37,8 @@ public class EntityUtils {
for (Method m : methods) { for (Method m : methods) {
if (m.getName().equals( "setCreateBy" )) { if (m.getName().equals( "setCreateBy" )) {
m.invoke( entity,com.ruoyi.framework.web.util.ShiroUtils.getLoginName() ); 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" )) { } else if (m.getName().equals( "setCreateTime" )) {
m.invoke( entity, new Date() ); m.invoke( entity, new Date() );
} }
@ -60,6 +62,8 @@ public class EntityUtils {
for (Method m : methods) { for (Method m : methods) {
if (m.getName().equals( "setUpdateBy" )) { if (m.getName().equals( "setUpdateBy" )) {
m.invoke( entity,com.ruoyi.framework.web.util.ShiroUtils.getLoginName()); 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" )) { } else if (m.getName().equals( "setUpdateTime" )) {
m.invoke( entity, new Date() ); m.invoke( entity, new Date() );
} }

View File

@ -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)) (select id from train_course_category where FIND_IN_SET(#{trainCourseCategoryId},parent_ids))
or train_course.train_course_category_id = #{trainCourseCategoryId} ) or train_course.train_course_category_id = #{trainCourseCategoryId} )
</if> </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="cover != null and cover != '' "> and train_course.cover = #{cover}</if>
<if test="description != null and description != '' "> and train_course.description = #{description}</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> <if test="state != null and state != '' "> and train_course.state = #{state}</if>

View File

@ -1,6 +1,8 @@
package com.ruoyi.vip.controller; package com.ruoyi.vip.controller;
import java.util.List; import java.util.List;
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -20,8 +22,8 @@ import com.ruoyi.common.base.AjaxResult;
import com.ruoyi.common.utils.ExcelUtil; import com.ruoyi.common.utils.ExcelUtil;
/** /**
* 我的订单 信息操作处理 * 证书管理 信息操作处理
* *
* @author zhujj * @author zhujj
* @date 2019-01-15 * @date 2019-01-15
*/ */
@ -29,98 +31,99 @@ import com.ruoyi.common.utils.ExcelUtil;
@RequestMapping("/vip/vipUserCertificate") @RequestMapping("/vip/vipUserCertificate")
public class VipUserCertificateController extends BaseController public class VipUserCertificateController extends BaseController
{ {
private String prefix = "vip/vipUserCertificate"; private String prefix = "vip/vipUserCertificate";
@Autowired @Autowired
private IVipUserCertificateService vipUserCertificateService; private IVipUserCertificateService vipUserCertificateService;
@RequiresPermissions("vip:vipUserCertificate:view") @RequiresPermissions("vip:vipUserCertificate:view")
@GetMapping() @GetMapping()
public String vipUserCertificate() public String vipUserCertificate()
{ {
return prefix + "/vipUserCertificate"; return prefix + "/vipUserCertificate";
} }
/** /**
* 查询我的订单列表 * 查询证书管理列表
*/ */
@RequiresPermissions("vip:vipUserCertificate:list") @RequiresPermissions("vip:vipUserCertificate:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @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); return getDataTable(list);
} }
/** /**
* 导出我的订单列表 * 导出证书管理列表
*/ */
@RequiresPermissions("vip:vipUserCertificate:export") @RequiresPermissions("vip:vipUserCertificate:export")
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
public AjaxResult export(VipUserCertificate vipUserCertificate) public AjaxResult export(VipUserCertificateVO vipUserCertificate)
{ {
List<VipUserCertificate> list = vipUserCertificateService.selectVipUserCertificateList(vipUserCertificate); List<VipUserCertificateVO> list = vipUserCertificateService.selectVipUserCertificateList(vipUserCertificate);
ExcelUtil<VipUserCertificate> util = new ExcelUtil<VipUserCertificate>(VipUserCertificate.class); ExcelUtil<VipUserCertificateVO> util = new ExcelUtil<VipUserCertificateVO>(VipUserCertificateVO.class);
return util.exportExcel(list, "vipUserCertificate"); return util.exportExcel(list, "vipUserCertificate");
} }
/** /**
* 新增我的订单 * 新增证书管理
*/ */
@GetMapping("/add") @GetMapping("/add")
public String add() public String add()
{ {
return prefix + "/add"; return prefix + "/add";
} }
/** /**
* 新增保存我的订单 * 新增保存证书管理
*/ */
@RequiresPermissions("vip:vipUserCertificate:add") @RequiresPermissions("vip:vipUserCertificate:add")
@Log(title = "我的订单", businessType = BusinessType.INSERT) @Log(title = "证书管理", businessType = BusinessType.INSERT)
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
public AjaxResult addSave(VipUserCertificate vipUserCertificate) public AjaxResult addSave(VipUserCertificate vipUserCertificate)
{ {
vipUserCertificate.setDelFlag( "0" );
return toAjax(vipUserCertificateService.insert(vipUserCertificate)); return toAjax(vipUserCertificateService.insert(vipUserCertificate));
} }
/** /**
* 修改我的订单 * 修改证书管理
*/ */
@GetMapping("/edit/{id}") @GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Integer id, ModelMap mmap) public String edit(@PathVariable("id") Integer id, ModelMap mmap)
{ {
VipUserCertificate vipUserCertificate = vipUserCertificateService.selectById(id); VipUserCertificate vipUserCertificate = vipUserCertificateService.selectById(id);
mmap.put("vipUserCertificate", vipUserCertificate); mmap.put("vipUserCertificate", vipUserCertificate);
return prefix + "/edit"; return prefix + "/edit";
} }
/** /**
* 修改保存我的订单 * 修改保存证书管理
*/ */
@RequiresPermissions("vip:vipUserCertificate:edit") @RequiresPermissions("vip:vipUserCertificate:edit")
@Log(title = "我的订单", businessType = BusinessType.UPDATE) @Log(title = "证书管理", businessType = BusinessType.UPDATE)
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
public AjaxResult editSave(VipUserCertificate vipUserCertificate) public AjaxResult editSave(VipUserCertificate vipUserCertificate)
{ {
return toAjax(vipUserCertificateService.updateById(vipUserCertificate)); return toAjax(vipUserCertificateService.updateSelectiveById(vipUserCertificate));
} }
/** /**
* 删除我的订单 * 删除证书管理
*/ */
@RequiresPermissions("vip:vipUserCertificate:remove") @RequiresPermissions("vip:vipUserCertificate:remove")
@Log(title = "我的订单", businessType = BusinessType.DELETE) @Log(title = "证书管理", businessType = BusinessType.DELETE)
@PostMapping( "/remove") @PostMapping( "/remove")
@ResponseBody @ResponseBody
public AjaxResult remove(String ids) public AjaxResult remove(String ids)
{ {
return toAjax(vipUserCertificateService.deleteByIds(ids)); return toAjax(vipUserCertificateService.deleteByIds(ids));
} }
} }

View File

@ -1,6 +1,8 @@
package com.ruoyi.vip.controller; package com.ruoyi.vip.controller;
import java.util.List; import java.util.List;
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -21,7 +23,7 @@ import com.ruoyi.common.utils.ExcelUtil;
/** /**
* 我的课程学习 信息操作处理 * 我的课程学习 信息操作处理
* *
* @author zhujj * @author zhujj
* @date 2019-01-15 * @date 2019-01-15
*/ */
@ -29,53 +31,53 @@ import com.ruoyi.common.utils.ExcelUtil;
@RequestMapping("/vip/vipUserCourseSection") @RequestMapping("/vip/vipUserCourseSection")
public class VipUserCourseSectionController extends BaseController public class VipUserCourseSectionController extends BaseController
{ {
private String prefix = "vip/vipUserCourseSection"; private String prefix = "vip/vipUserCourseSection";
@Autowired @Autowired
private IVipUserCourseSectionService vipUserCourseSectionService; private IVipUserCourseSectionService vipUserCourseSectionService;
@RequiresPermissions("vip:vipUserCourseSection:view") @RequiresPermissions("vip:vipUserCourseSection:view")
@GetMapping() @GetMapping()
public String vipUserCourseSection() public String vipUserCourseSection()
{ {
return prefix + "/vipUserCourseSection"; return prefix + "/vipUserCourseSection";
} }
/** /**
* 查询我的课程学习列表 * 查询我的课程学习列表
*/ */
@RequiresPermissions("vip:vipUserCourseSection:list") @RequiresPermissions("vip:vipUserCourseSection:list")
@PostMapping("/list") @PostMapping("/list")
@ResponseBody @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); return getDataTable(list);
} }
/** /**
* 导出我的课程学习列表 * 导出我的课程学习列表
*/ */
@RequiresPermissions("vip:vipUserCourseSection:export") @RequiresPermissions("vip:vipUserCourseSection:export")
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
public AjaxResult export(VipUserCourseSection vipUserCourseSection) public AjaxResult export(VipUserCourseSectionVO vipUserCourseSection)
{ {
List<VipUserCourseSection> list = vipUserCourseSectionService.selectVipUserCourseSectionList(vipUserCourseSection); List<VipUserCourseSectionVO> list = vipUserCourseSectionService.selectVipUserCourseSectionList(vipUserCourseSection);
ExcelUtil<VipUserCourseSection> util = new ExcelUtil<VipUserCourseSection>(VipUserCourseSection.class); ExcelUtil<VipUserCourseSectionVO> util = new ExcelUtil<VipUserCourseSectionVO>(VipUserCourseSectionVO.class);
return util.exportExcel(list, "vipUserCourseSection"); return util.exportExcel(list, "vipUserCourseSection");
} }
/** /**
* 新增我的课程学习 * 新增我的课程学习
*/ */
@GetMapping("/add") @GetMapping("/add")
public String add() public String add()
{ {
return prefix + "/add"; return prefix + "/add";
} }
/** /**
* 新增保存我的课程学习 * 新增保存我的课程学习
*/ */
@ -84,7 +86,7 @@ public class VipUserCourseSectionController extends BaseController
@PostMapping("/add") @PostMapping("/add")
@ResponseBody @ResponseBody
public AjaxResult addSave(VipUserCourseSection vipUserCourseSection) public AjaxResult addSave(VipUserCourseSection vipUserCourseSection)
{ { vipUserCourseSection.setDelFlag( "0" );
return toAjax(vipUserCourseSectionService.insert(vipUserCourseSection)); return toAjax(vipUserCourseSectionService.insert(vipUserCourseSection));
} }
@ -96,9 +98,9 @@ public class VipUserCourseSectionController extends BaseController
{ {
VipUserCourseSection vipUserCourseSection = vipUserCourseSectionService.selectById(id); VipUserCourseSection vipUserCourseSection = vipUserCourseSectionService.selectById(id);
mmap.put("vipUserCourseSection", vipUserCourseSection); mmap.put("vipUserCourseSection", vipUserCourseSection);
return prefix + "/edit"; return prefix + "/edit";
} }
/** /**
* 修改保存我的课程学习 * 修改保存我的课程学习
*/ */
@ -107,10 +109,10 @@ public class VipUserCourseSectionController extends BaseController
@PostMapping("/edit") @PostMapping("/edit")
@ResponseBody @ResponseBody
public AjaxResult editSave(VipUserCourseSection vipUserCourseSection) 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") @PostMapping( "/remove")
@ResponseBody @ResponseBody
public AjaxResult remove(String ids) public AjaxResult remove(String ids)
{ {
return toAjax(vipUserCourseSectionService.deleteByIds(ids)); return toAjax(vipUserCourseSectionService.deleteByIds(ids));
} }
} }

View File

@ -24,7 +24,7 @@ private static final long serialVersionUID = 1L;
/** 课程ID */ /** 课程ID */
private Integer trainCourseId; private Integer trainCourseId;
/** 章节id */ /** 章节id */
private Integer trainCourseSection; private Integer trainCourseSectionId;
/** 学习时间长度(分钟) */ /** 学习时间长度(分钟) */
private Integer duration; private Integer duration;
/** 创建者 */ /** 创建者 */
@ -74,17 +74,15 @@ private static final long serialVersionUID = 1L;
return trainCourseId; return trainCourseId;
} }
/** 设置章节id */ /** 设置章节id */
public void setTrainCourseSection(Integer trainCourseSection) public Integer getTrainCourseSectionId() {
{ return trainCourseSectionId;
this.trainCourseSection = trainCourseSection; }
}
/** 获取章节id */ public void setTrainCourseSectionId(Integer trainCourseSectionId) {
public Integer getTrainCourseSection() this.trainCourseSectionId = trainCourseSectionId;
{ }
return trainCourseSection;
} /** 设置学习时间长度(分钟) */
/** 设置学习时间长度(分钟) */
public void setDuration(Integer duration) public void setDuration(Integer duration)
{ {
this.duration = duration; this.duration = duration;
@ -167,7 +165,7 @@ public String toString() {
.append("id", getId()) .append("id", getId())
.append("vipUserId", getVipUserId()) .append("vipUserId", getVipUserId())
.append("trainCourseId", getTrainCourseId()) .append("trainCourseId", getTrainCourseId())
.append("trainCourseSection", getTrainCourseSection()) .append("trainCourseSection", getTrainCourseSectionId())
.append("duration", getDuration()) .append("duration", getDuration())
.append("createBy", getCreateBy()) .append("createBy", getCreateBy())
.append("createDate", getCreateDate()) .append("createDate", getCreateDate())

View File

@ -13,5 +13,16 @@ import com.ruoyi.vip.domain.VipUserCertificate;
* @Version: 1.0 * @Version: 1.0
*/ */
public class VipUserCertificateVO extends VipUserCertificate { public class VipUserCertificateVO extends VipUserCertificate {
/**
* 会员
*/
private SysUser user; private SysUser user;
public SysUser getUser() {
return user;
}
public void setUser(SysUser user) {
this.user = user;
}
} }

View File

@ -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;
}
}

View File

@ -3,6 +3,7 @@ package com.ruoyi.vip.mapper;
import com.ruoyi.vip.domain.VipUserCertificate; import com.ruoyi.vip.domain.VipUserCertificate;
import java.util.List; import java.util.List;
import com.ruoyi.framework.web.base.MyMapper; 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 我的订单信息 * @param vipUserCertificate 我的订单信息
* @return 我的订单集合 * @return 我的订单集合
*/ */
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate); public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate);
} }

View File

@ -3,6 +3,7 @@ package com.ruoyi.vip.mapper;
import com.ruoyi.vip.domain.VipUserCourseSection; import com.ruoyi.vip.domain.VipUserCourseSection;
import java.util.List; import java.util.List;
import com.ruoyi.framework.web.base.MyMapper; 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 我的课程学习信息 * @param vipUserCourseSection 我的课程学习信息
* @return 我的课程学习集合 * @return 我的课程学习集合
*/ */
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection); public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection);
} }

View File

@ -3,28 +3,30 @@ package com.ruoyi.vip.service;
import com.ruoyi.vip.domain.VipUserCertificate; import com.ruoyi.vip.domain.VipUserCertificate;
import java.util.List; import java.util.List;
import com.ruoyi.framework.web.base.AbstractBaseService; import com.ruoyi.framework.web.base.AbstractBaseService;
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
/** /**
* 我的订单 服务层 * 我的订单 服务层
* *
* @author zhujj * @author zhujj
* @date 2019-01-15 * @date 2019-01-15
*/ */
public interface IVipUserCertificateService extends AbstractBaseService<VipUserCertificate> public interface IVipUserCertificateService extends AbstractBaseService<VipUserCertificate>
{ {
/** /**
* 查询我的订单分页列表 * 查询我的订单分页列表
* *
* @param vipUserCertificate 我的订单信息 * @param vipUserCertificate 我的订单信息
* @return 我的订单集合 * @return 我的订单集合
*/ */
public List<VipUserCertificate> selectVipUserCertificatePage(VipUserCertificate vipUserCertificate); public List<VipUserCertificateVO> selectVipUserCertificatePage(VipUserCertificateVO vipUserCertificate);
/** /**
* 查询我的订单列表 * 查询我的订单列表
* *
* @param vipUserCertificate 我的订单信息 * @param vipUserCertificate 我的订单信息
* @return 我的订单集合 * @return 我的订单集合
*/ */
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate); public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate);
} }

View File

@ -3,6 +3,8 @@ package com.ruoyi.vip.service;
import com.ruoyi.vip.domain.VipUserCourseSection; import com.ruoyi.vip.domain.VipUserCourseSection;
import java.util.List; import java.util.List;
import com.ruoyi.framework.web.base.AbstractBaseService; 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 我的课程学习信息 * @param vipUserCourseSection 我的课程学习信息
* @return 我的课程学习集合 * @return 我的课程学习集合
*/ */
public List<VipUserCourseSection> selectVipUserCourseSectionPage(VipUserCourseSection vipUserCourseSection); public List<VipUserCourseSectionVO> selectVipUserCourseSectionPage(VipUserCourseSectionVO vipUserCourseSection);
/** /**
* 查询我的课程学习列表 * 查询我的课程学习列表
* *
* @param vipUserCourseSection 我的课程学习信息 * @param vipUserCourseSection 我的课程学习信息
* @return 我的课程学习集合 * @return 我的课程学习集合
*/ */
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection); public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection);
} }

View File

@ -1,6 +1,8 @@
package com.ruoyi.vip.service.impl; package com.ruoyi.vip.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.vip.domain.vo.VipUserCertificateVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.vip.mapper.VipUserCertificateMapper; import com.ruoyi.vip.mapper.VipUserCertificateMapper;
@ -10,28 +12,28 @@ import com.ruoyi.common.support.Convert;
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl; import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
/** /**
* 我的订单 服务层实现 * 我的订单 服务层实现
* *
* @author zhujj * @author zhujj
* @date 2019-01-15 * @date 2019-01-15
*/ */
@Service @Service
public class VipUserCertificateServiceImpl extends AbstractBaseServiceImpl<VipUserCertificateMapper,VipUserCertificate> implements IVipUserCertificateService public class VipUserCertificateServiceImpl extends AbstractBaseServiceImpl<VipUserCertificateMapper,VipUserCertificate> implements IVipUserCertificateService
{ {
@Autowired @Autowired
private VipUserCertificateMapper vipUserCertificateMapper; private VipUserCertificateMapper vipUserCertificateMapper;
/** /**
* 查询我的订单列表 * 查询我的订单列表
* *
* @param vipUserCertificate 我的订单信息 * @param vipUserCertificate 我的订单信息
* @return 我的订单集合 * @return 我的订单集合
*/ */
@Override @Override
public List<VipUserCertificate> selectVipUserCertificateList(VipUserCertificate vipUserCertificate) public List<VipUserCertificateVO> selectVipUserCertificateList(VipUserCertificateVO vipUserCertificate)
{ {
return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate); return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate);
} }
/** /**
* 查询我的订单分页列表 * 查询我的订单分页列表
* *
@ -39,7 +41,7 @@ public class VipUserCertificateServiceImpl extends AbstractBaseServiceImpl<VipUs
* @return 我的订单集合 * @return 我的订单集合
*/ */
@Override @Override
public List<VipUserCertificate> selectVipUserCertificatePage(VipUserCertificate vipUserCertificate) public List<VipUserCertificateVO> selectVipUserCertificatePage(VipUserCertificateVO vipUserCertificate)
{ {
startPage(); startPage();
return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate); return vipUserCertificateMapper.selectVipUserCertificateList(vipUserCertificate);

View File

@ -1,6 +1,8 @@
package com.ruoyi.vip.service.impl; package com.ruoyi.vip.service.impl;
import java.util.List; import java.util.List;
import com.ruoyi.vip.domain.vo.VipUserCourseSectionVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.vip.mapper.VipUserCourseSectionMapper; import com.ruoyi.vip.mapper.VipUserCourseSectionMapper;
@ -10,28 +12,28 @@ import com.ruoyi.common.support.Convert;
import com.ruoyi.framework.web.base.AbstractBaseServiceImpl; import com.ruoyi.framework.web.base.AbstractBaseServiceImpl;
/** /**
* 我的课程学习 服务层实现 * 我的课程学习 服务层实现
* *
* @author zhujj * @author zhujj
* @date 2019-01-15 * @date 2019-01-15
*/ */
@Service @Service
public class VipUserCourseSectionServiceImpl extends AbstractBaseServiceImpl<VipUserCourseSectionMapper,VipUserCourseSection> implements IVipUserCourseSectionService public class VipUserCourseSectionServiceImpl extends AbstractBaseServiceImpl<VipUserCourseSectionMapper,VipUserCourseSection> implements IVipUserCourseSectionService
{ {
@Autowired @Autowired
private VipUserCourseSectionMapper vipUserCourseSectionMapper; private VipUserCourseSectionMapper vipUserCourseSectionMapper;
/** /**
* 查询我的课程学习列表 * 查询我的课程学习列表
* *
* @param vipUserCourseSection 我的课程学习信息 * @param vipUserCourseSection 我的课程学习信息
* @return 我的课程学习集合 * @return 我的课程学习集合
*/ */
@Override @Override
public List<VipUserCourseSection> selectVipUserCourseSectionList(VipUserCourseSection vipUserCourseSection) public List<VipUserCourseSectionVO> selectVipUserCourseSectionList(VipUserCourseSectionVO vipUserCourseSection)
{ {
return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection); return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection);
} }
/** /**
* 查询我的课程学习分页列表 * 查询我的课程学习分页列表
* *
@ -39,7 +41,7 @@ public class VipUserCourseSectionServiceImpl extends AbstractBaseServiceImpl<Vip
* @return 我的课程学习集合 * @return 我的课程学习集合
*/ */
@Override @Override
public List<VipUserCourseSection> selectVipUserCourseSectionPage(VipUserCourseSection vipUserCourseSection) public List<VipUserCourseSectionVO> selectVipUserCourseSectionPage(VipUserCourseSectionVO vipUserCourseSection)
{ {
startPage(); startPage();
return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection); return vipUserCourseSectionMapper.selectVipUserCourseSectionList(vipUserCourseSection);

View File

@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.vip.mapper.VipUserCertificateMapper"> <mapper namespace="com.ruoyi.vip.mapper.VipUserCertificateMapper">
<resultMap type="VipUserCertificate" id="VipUserCertificateResult"> <resultMap type="VipUserCertificateVO" id="VipUserCertificateResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="vipUserId" column="vip_user_id" /> <result property="vipUserId" column="vip_user_id" />
<result property="name" column="name" /> <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="updateDate" column="update_date" />
<result property="remarks" column="remarks" /> <result property="remarks" column="remarks" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="user.userName" column="user_name" />
</resultMap> </resultMap>
<sql id="selectVipUserCertificateVo"> <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 select
<include refid="selectVipUserCertificateVo"/> <include refid="selectVipUserCertificateVo"/>
,suser.user_name
from vip_user_certificate from vip_user_certificate
<where> left join sys_user suser on suser.user_id=vip_user_certificate.vip_user_id
<if test="id != null "> and id = #{id}</if> <where>
<if test="vipUserId != null "> and vip_user_id = #{vipUserId}</if> <if test="user != null and user.userName != null and user.userName != ''"> and suser.user_name like CONCAT('%',#{user.userName},'%') </if>
<if test="name != null and name != '' "> and name = #{name}</if> <if test="id != null "> and vip_user_certificate.id = #{id}</if>
<if test="image != null and image != '' "> and image = #{image}</if> <if test="vipUserId != null "> and vip_user_certificate.vip_user_id = #{vipUserId}</if>
<if test="startDate != null "> and start_date = #{startDate}</if> <if test="name != null and name != '' "> and name like CONCAT('%',#{name},'%')</if>
<if test="endDate != null "> and end_date = #{endDate}</if>
<if test="createBy != null and createBy != '' "> and create_by = #{createBy}</if> <if test="startDate != null "> <![CDATA[ and vip_user_certificate.start_date >= #{startDate}]]></if>
<if test="createDate != null "> and create_date = #{createDate}</if> <if test="endDate != null "> <![CDATA[ and vip_user_certificate.end_date <= #{endDate}]]></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> <if test="delFlag != null and delFlag != '' "> and del_flag = #{delFlag}</if>
</where> </where>
</select> </select>

View File

@ -4,11 +4,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.vip.mapper.VipUserCourseSectionMapper"> <mapper namespace="com.ruoyi.vip.mapper.VipUserCourseSectionMapper">
<resultMap type="VipUserCourseSection" id="VipUserCourseSectionResult"> <resultMap type="VipUserCourseSectionVO" id="VipUserCourseSectionResult">
<result property="id" column="id" /> <result property="id" column="id" />
<result property="vipUserId" column="vip_user_id" /> <result property="vipUserId" column="vip_user_id" />
<result property="trainCourseId" column="train_course_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="duration" column="duration" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
<result property="createDate" column="create_date" /> <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="updateDate" column="update_date" />
<result property="remarks" column="remarks" /> <result property="remarks" column="remarks" />
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
<result property="userName" column="user_name" />
<result property="trainCourseName" column="trainCourseName" />
<result property="trainCourseSectionName" column="trainCourseSectionName" />
</resultMap> </resultMap>
<sql id="selectVipUserCourseSectionVo"> <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 select
<include refid="selectVipUserCourseSectionVo"/> <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> <where>
<if test="id != null "> and id = #{id}</if> <if test="id != null "> and vucs.id = #{id}</if>
<if test="vipUserId != null "> and vip_user_id = #{vipUserId}</if> <if test="vipUserId != null "> and vucs.vip_user_id = #{vipUserId}</if>
<if test="trainCourseId != null "> and train_course_id = #{trainCourseId}</if> <if test="trainCourseId != null "> and vucs.train_course_id = #{trainCourseId}</if>
<if test="trainCourseSection != null "> and train_course_section = #{trainCourseSection}</if> <if test="trainCourseSectionId != null "> and vucs.train_course_section_id = #{trainCourseSectionId}</if>
<if test="duration != null "> and duration = #{duration}</if> <if test="delFlag != null and delFlag != '' "> and vucs.del_flag = #{delFlag}</if>
<if test="createBy != null and createBy != '' "> and create_by = #{createBy}</if>
<if test="createDate != null "> and create_date = #{createDate}</if> <if test="trainCourseName != null and trainCourseName != ''"> and tc.name like CONCAT('%',#{trainCourseName},'%') </if>
<if test="updateBy != null and updateBy != '' "> and update_by = #{updateBy}</if> <if test="trainCourseSectionName != null and trainCourseSectionName != ''"> and tcs.name like CONCAT('%',#{trainCourseSectionName},'%') </if>
<if test="updateDate != null "> and update_date = #{updateDate}</if>
<if test="remarks != null and remarks != '' "> and remarks = #{remarks}</if> </where>
<if test="delFlag != null and delFlag != '' "> and del_flag = #{delFlag}</if>
</where>
</select> </select>

View File

@ -2,6 +2,9 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org"> <html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8"> <meta charset="utf-8">
<head th:include="include :: header"></head> <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"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-vipUserCertificate-add"> <form class="form-horizontal m" id="form-vipUserCertificate-add">
@ -20,7 +23,14 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">证书照片:</label> <label class="col-sm-3 control-label">证书照片:</label>
<div class="col-sm-8"> <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>
</div> </div>
@ -41,45 +51,19 @@
</div> </div>
</div> </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"> <div class="form-group">
<label class="col-sm-3 control-label">备注信息:</label> <label class="col-sm-3 control-label">备注信息:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="remarks" name="remarks" class="form-control" type="text"> <input id="remarks" name="remarks" class="form-control" type="text">
</div> </div>
</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> </form>
</div> </div>
<div th:include="include::footer"></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"> <script type="text/javascript">
var prefix = ctx + "vip/vipUserCertificate" var prefix = ctx + "vip/vipUserCertificate"
$("#form-vipUserCertificate-add").validate({ $("#form-vipUserCertificate-add").validate({
@ -95,6 +79,44 @@
$.operate.save(prefix + "/add", $('#form-vipUserCertificate-add').serialize()); $.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> </script>
</body> </body>
</html> </html>

View File

@ -2,6 +2,9 @@
<html lang="zh" xmlns:th="http://www.thymeleaf.org"> <html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8"> <meta charset="utf-8">
<head th:include="include :: header"></head> <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"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-vipUserCertificate-edit" th:object="${vipUserCertificate}"> <form class="form-horizontal m" id="form-vipUserCertificate-edit" th:object="${vipUserCertificate}">
@ -21,7 +24,14 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">证书照片:</label> <label class="col-sm-3 control-label">证书照片:</label>
<div class="col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
@ -49,6 +59,10 @@
</form> </form>
</div> </div>
<div th:include="include::footer"></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"> <script type="text/javascript">
var prefix = ctx + "vip/vipUserCertificate" var prefix = ctx + "vip/vipUserCertificate"
$("#form-vipUserCertificate-edit").validate({ $("#form-vipUserCertificate-edit").validate({
@ -64,6 +78,45 @@
$.operate.save(prefix + "/edit", $('#form-vipUserCertificate-edit').serialize()); $.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> </script>
</body> </body>
</html> </html>

View File

@ -11,32 +11,22 @@
<div class="select-list"> <div class="select-list">
<ul> <ul>
<li> <li>
会员代码<input type="text" name="vipUserId"/> 会员姓名<input type="text" name="user.userName"/>
</li> </li>
<li> <li>
证书名称:<input type="text" name="name"/> 证书名称:<input type="text" name="name"/>
</li> </li>
<li> <li class="select-time">
证书照片:<input type="text" name="image"/> <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>
<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> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>

View File

@ -20,7 +20,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">章节id</label> <label class="col-sm-3 control-label">章节id</label>
<div class="col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
@ -29,42 +29,12 @@
<input id="duration" name="duration" class="form-control" type="text"> <input id="duration" name="duration" class="form-control" type="text">
</div> </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"> <div class="form-group">
<label class="col-sm-3 control-label">备注信息:</label> <label class="col-sm-3 control-label">备注信息:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="remarks" name="remarks" class="form-control" type="text"> <input id="remarks" name="remarks" class="form-control" type="text">
</div> </div>
</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> </form>
</div> </div>
<div th:include="include::footer"></div> <div th:include="include::footer"></div>

View File

@ -21,7 +21,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">章节id</label> <label class="col-sm-3 control-label">章节id</label>
<div class="col-sm-8"> <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> </div>
<div class="form-group"> <div class="form-group">
@ -30,42 +30,12 @@
<input id="duration" name="duration" th:field="*{duration}" class="form-control" type="text"> <input id="duration" name="duration" th:field="*{duration}" class="form-control" type="text">
</div> </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" 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"> <div class="form-group">
<label class="col-sm-3 control-label">备注信息:</label> <label class="col-sm-3 control-label">备注信息:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<input id="remarks" name="remarks" th:field="*{remarks}" class="form-control" type="text"> <input id="remarks" name="remarks" th:field="*{remarks}" class="form-control" type="text">
</div> </div>
</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> </form>
</div> </div>
<div th:include="include::footer"></div> <div th:include="include::footer"></div>

View File

@ -22,18 +22,6 @@
章节id<input type="text" name="trainCourseSection"/> 章节id<input type="text" name="trainCourseSection"/>
</li> </li>
<li>
学习时间长度(分钟):<input type="text" name="duration"/>
</li>
<li>
创建者:<input type="text" name="createBy"/>
</li>
<li>
创建时间:<input type="text" name="createDate"/>
</li>
<li> <li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a> <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a> <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
@ -87,40 +75,30 @@
visible: false visible: false
}, },
{ {
field : 'vipUserId', field : 'userName',
title : '会员代码', title : '会员姓名',
sortable: true
}, },
{ {
field : 'trainCourseId', field : 'trainCourseName',
title : '课程ID', title : '课程名称',
sortable: true
}, },
{ {
field : 'trainCourseSection', field : 'trainCourseSectionName',
title : '章节id', title : '章节名称',
sortable: true
}, },
{ {
field : 'duration', field : 'duration',
title : '学习时间(分钟)', title : '学习时间(分钟)',
sortable: true
}, },
{ {
field : 'createBy', field : 'createBy',
title : '创建者', title : '创建者',
sortable: true
}, },
{ {
field : 'createDate', field : 'createDate',
title : '创建时间', title : '创建时间',
sortable: true sortable: true
}, },
{
field : 'updateBy',
title : '更新者',
sortable: true
},
{ {
title: '操作', title: '操作',
align: 'center', align: 'center',