会员类型,推荐人

This commit is contained in:
yiyan 2018-07-05 00:29:14 +08:00
parent 14c63402c1
commit 97078700f1
13 changed files with 1036 additions and 77 deletions

View File

@ -1,58 +1,73 @@
package com.ifish.action;
import com.ifish.entity.VipReferrer;
import com.ifish.entity.VipType;
import com.ifish.hibernate.Pagination;
import com.ifish.search.SearchFilter;
import com.ifish.service.VipService;
import com.ifish.util.IfishUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextImpl;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
/**
* @author: yan.y
* @Description:
* @Date: Created in 22:19 2018/7/2
* @Modified by:
*/
//@Controller("VipAction")
//@RequestMapping("/vip")
@Controller("VipAction")
@RequestMapping("/vip")
public class VipAction {
@Autowired
private VipService vipService;
/** ====================================会员信息============================================ **/
@RequestMapping("/list")
@RequestMapping("/list.do")
public ModelAndView vipList(){
return new ModelAndView("vip/vipList");
}
@RequestMapping("/getVip")
@RequestMapping("/getVip.do")
public ModelAndView getVip(){
return new ModelAndView("vip/vipDetail");
}
@RequestMapping("/add")
@RequestMapping("/add.do")
public boolean vipAdd(){
return false;
}
@RequestMapping("/update")
@RequestMapping("/update.do")
public boolean vipUpdate(){
return false;
}
@RequestMapping("/delete")
@RequestMapping("/delete.do")
public boolean vipDelete(){
return false;
}
@RequestMapping("/export")
@RequestMapping("/export.do")
public void vipExport(){
}
@RequestMapping("/sendSmS")
@RequestMapping("/sendSmS.do")
public boolean vipSendSMS(){
return false;
@ -61,134 +76,146 @@ public class VipAction {
/** ====================================单位评价信息============================================ **/
@RequestMapping("/companyEvaluateList")
@RequestMapping("/companyEvaluateList.do")
public ModelAndView companyEvaluate(){
return new ModelAndView("vip/companyEvaluateList");
}
@RequestMapping("/getCompanyEvaluate")
@RequestMapping("/getCompanyEvaluate.do")
public ModelAndView getCompanyEvaluate(){
return new ModelAndView("vip/companyEvaluateDetail");
}
@RequestMapping("/companyEvaluateAdd.do")
public void companyEvaluateAdd(){
}
@RequestMapping("/companyEvaluateUpdate.do")
public void companyEvaluateUpdate(){
@RequestMapping("/companyEvaluateAdd")
public boolean companyEvaluateAdd(){
return false;
}
@RequestMapping("/companyEvaluateUpdate")
public boolean companyEvaluateUpdate(){
@RequestMapping("/companyEvaluateDelete.do")
public void companyEvaluateDelete(){
return false;
}
@RequestMapping("/companyEvaluateDelete")
public boolean companyEvaluateDelete(){
return false;
}
/** ====================================个人评价信息============================================ **/
@RequestMapping("/personalEvaluateList")
@RequestMapping("/personalEvaluateList.do")
public ModelAndView personalEvaluate(){
return new ModelAndView("vip/personalEvaluateList");
}
@RequestMapping("/getPersonalEvaluate")
@RequestMapping("/getPersonalEvaluate.do")
public ModelAndView getPersonalEvaluate(){
return new ModelAndView("vip/personalEvaluateDetail");
}
@RequestMapping("/personalEvaluateAdd")
public boolean personalEvaluateAdd(){
@RequestMapping("/personalEvaluateAdd.do")
public void personalEvaluateAdd(){
return false;
}
@RequestMapping("/companyEvaluateUpdate")
public boolean personalEvaluateUpdate(){
@RequestMapping("/personalEvaluateUpdate.do")
public void personalEvaluateUpdate(){
return false;
}
@RequestMapping("/companyEvaluateDelete")
public boolean personalEvaluateDelete(){
@RequestMapping("/personalEvaluateDelete.do")
public void personalEvaluateDelete(){
return false;
}
/** ====================================会员类别============================================ **/
@RequestMapping("/vipTypeList")
public ModelAndView vipTypeList(){
return new ModelAndView("vip/vipTypeList");
}
@RequestMapping("/getVipType")
public ModelAndView getVipType(){
return new ModelAndView("vip/vipTypeDetail");
@RequestMapping("/vipType.do")
public ModelAndView vipType(){
return new ModelAndView("vip/vipType");
}
@RequestMapping("/vipTypeAdd")
public boolean vipTypeAdd(){
return false;
@RequestMapping("/vipTypeList.do")
@ResponseBody
public Object vipTypeList(SearchFilter searchFilter){
Pagination<VipType> page = this.vipService.getVipTypeByPage(searchFilter);
return IfishUtil.returnPageData(page, searchFilter.getsEcho());
}
@RequestMapping("/vipTypeUpdate")
public boolean vipTypeUpdate(){
return false;
@RequestMapping("/getVipType.do")
@ResponseBody
public Object getVipType(Integer typeId){
return this.vipService.getVipTypeById(typeId);
}
@RequestMapping("/vipTypeDelete")
public boolean vipTypeDelete(){
return false;
@RequestMapping("/vipTypeAdd.do")
@ResponseBody
public Object vipTypeAdd(VipType vipType){
boolean b = this.vipService.saveOrUpdateVipType(vipType);
return b;
}
@RequestMapping("/vipTypeDelete.do")
@ResponseBody
public Object vipTypeDelete(Integer typeId){
VipType vipType = this.vipService.getVipTypeById(typeId);
vipType.setTypeStatus("1");
boolean b = this.vipService.saveOrUpdateVipType(vipType);
return b;
}
/** ====================================推荐人============================================ **/
@RequestMapping("/referrerList")
public ModelAndView referrerList(){
return new ModelAndView("vip/referrerList");
@RequestMapping("/referrer.do")
public ModelAndView referrer(){
return new ModelAndView("vip/vipReferrer");
}
@RequestMapping("/getReferrer")
@RequestMapping("/referrerList.do")
@ResponseBody
public Object referrerList(SearchFilter searchFilter){
Pagination<VipReferrer> page = this.vipService.getVipReferrerByPage(searchFilter);
return IfishUtil.returnPageData(page,searchFilter.getsEcho());
}
@RequestMapping("/getReferrer.do")
public ModelAndView getReferrer(){
return new ModelAndView("vip/referrerDetail");
}
@RequestMapping("/referrerAdd")
public boolean referrerAdd(){
return false;
@RequestMapping("/referrerAddOrUpdate.do")
@ResponseBody
public boolean referrerAddOrUpdate(VipReferrer vipReferrer){
boolean b = this.vipService.saveOrUpdateVipReferrer(vipReferrer);
return b;
}
@RequestMapping("/referrerUpdate")
public boolean referrerUpdate(){
return false;
}
@RequestMapping("/referrerDelete")
public boolean referrerDelete(){
return false;
@RequestMapping("/referrerDelete.do")
@ResponseBody
public boolean referrerDelete(Integer referrerId,HttpServletRequest request){
SecurityContextImpl securityContextImpl = (SecurityContextImpl) request.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
VipReferrer vipReferrer = this.vipService.getVipReferrer(referrerId);
vipReferrer.setModifyUser(securityContextImpl.getAuthentication().getName());
vipReferrer.setModifyTime(new Date());
vipReferrer.setReferrerStatus("1");
boolean b = this.vipService.saveOrUpdateVipReferrer(vipReferrer);
return b;
}

View File

@ -0,0 +1,12 @@
package com.ifish.dao;
import com.ifish.entity.VipReferrer;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:37 2018/7/4
* @Modified by:
*/
public interface VipReferrerDao extends BaseDao<VipReferrer,Integer> {
}

View File

@ -0,0 +1,12 @@
package com.ifish.dao;
import com.ifish.entity.VipType;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:37 2018/7/4
* @Modified by:
*/
public interface VipTypeDao extends BaseDao<VipType,Integer> {
}

View File

@ -0,0 +1,20 @@
package com.ifish.daoImpl;
import com.ifish.dao.VipReferrerDao;
import com.ifish.entity.VipReferrer;
import com.ifish.hibernate.HibernateBaseDao;
import org.springframework.stereotype.Repository;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:38 2018/7/4
* @Modified by:
*/
@Repository("vipReferrerDao")
public class VipReferrerDaoImpl extends HibernateBaseDao<VipReferrer,Integer> implements VipReferrerDao {
@Override
protected Class<VipReferrer> getEntityClass() {
return VipReferrer.class;
}
}

View File

@ -0,0 +1,20 @@
package com.ifish.daoImpl;
import com.ifish.dao.VipTypeDao;
import com.ifish.entity.VipType;
import com.ifish.hibernate.HibernateBaseDao;
import org.springframework.stereotype.Repository;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:38 2018/7/4
* @Modified by:
*/
@Repository("vipTypeDao")
public class VipTypeDaoImpl extends HibernateBaseDao<VipType,Integer> implements VipTypeDao {
@Override
protected Class<VipType> getEntityClass() {
return VipType.class;
}
}

View File

@ -0,0 +1,136 @@
package com.ifish.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
/**
* @author: yan.y
* @Description:
* @Date: Created in 21:01 2018/7/4
* @Modified by:
*/
@Entity
@Table(name = "tbl_vip_referrer")
public class VipReferrer implements Serializable{
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "vip_referrer_id")
private Integer referrerId;
@Column(name = "vip_referrer_name")
private String referrerName;
@OneToOne
@JoinColumn(name = "vip_referrer_type")
private VipType referrerType;
@Column(name = "vip_admission_time")
private Date referrerAdmissionTime;
@Column(name = "vip_referrer_remark")
private String referrerRemark;
@Column(name = "vip_referrer_status")
private String referrerStatus;
@Column(name = "vip_create_user")
private String createUser;
@Column(name = "vip_create_time")
@Temporal(TemporalType.TIMESTAMP)
private Date createTime;
@Column(name = "vip_modify_user")
private String modifyUser;
@Column(name = "vip_mofify_time")
@Temporal(TemporalType.TIMESTAMP)
private Date modifyTime;
public Integer getReferrerId() {
return referrerId;
}
public void setReferrerId(Integer referrerId) {
this.referrerId = referrerId;
}
public String getReferrerName() {
return referrerName;
}
public void setReferrerName(String referrerName) {
this.referrerName = referrerName;
}
public VipType getReferrerType() {
return referrerType;
}
public void setReferrerType(VipType referrerType) {
this.referrerType = referrerType;
}
@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
public Date getReferrerAdmissionTime() {
return referrerAdmissionTime;
}
public void setReferrerAdmissionTime(Date referrerAdmissionTime) {
this.referrerAdmissionTime = referrerAdmissionTime;
}
public String getReferrerRemark() {
return referrerRemark;
}
public void setReferrerRemark(String referrerRemark) {
this.referrerRemark = referrerRemark;
}
public String getReferrerStatus() {
return referrerStatus;
}
public void setReferrerStatus(String referrerStatus) {
this.referrerStatus = referrerStatus;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getModifyUser() {
return modifyUser;
}
public void setModifyUser(String modifyUser) {
this.modifyUser = modifyUser;
}
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
}

View File

@ -0,0 +1,50 @@
package com.ifish.entity;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:24 2018/7/4
* @Modified by:
*/
@Entity
@Table(name = "tbl_vip_type")
public class VipType implements Serializable{
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name = "vip_type_id")
private Integer typeId;
@Column(name = "vip_type_name")
private String typeName;
@Column(name = "vip_type_status")
private String typeStatus;
public Integer getTypeId() {
return typeId;
}
public void setTypeId(Integer typeId) {
this.typeId = typeId;
}
public String getTypeName() {
return typeName;
}
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getTypeStatus() {
return typeStatus;
}
public void setTypeStatus(String typeStatus) {
this.typeStatus = typeStatus;
}
}

View File

@ -0,0 +1,33 @@
package com.ifish.service;
import com.ifish.entity.VipReferrer;
import com.ifish.entity.VipType;
import com.ifish.hibernate.Pagination;
import com.ifish.search.SearchFilter;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:31 2018/7/4
* @Modified by:
*/
public interface VipService {
/**
* 查询会员类别
* @param searchFilter
* @return
*/
Pagination<VipType> getVipTypeByPage(SearchFilter searchFilter);
boolean saveOrUpdateVipType(VipType vipType);
VipType getVipTypeById(Integer typeId);
Pagination<VipReferrer> getVipReferrerByPage(SearchFilter searchFilter);
boolean saveOrUpdateVipReferrer(VipReferrer vipReferrer);
VipReferrer getVipReferrer(Integer referrerId);
}

View File

@ -0,0 +1,118 @@
package com.ifish.serviceImpl;
import com.ifish.dao.VipReferrerDao;
import com.ifish.dao.VipTypeDao;
import com.ifish.entity.VipReferrer;
import com.ifish.entity.VipType;
import com.ifish.hibernate.Pagination;
import com.ifish.search.SearchFilter;
import com.ifish.service.VipService;
import com.ifish.util.IfishUtil;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* @author: yan.y
* @Description:
* @Date: Created in 18:34 2018/7/4
* @Modified by:
*/
@Service("vipService")
@Transactional
public class VipServiceImpl implements VipService{
@Autowired
private VipTypeDao vipTypeDao;
@Autowired
private VipReferrerDao vipReferrerDao;
@Override
public Pagination<VipType> getVipTypeByPage(SearchFilter searchFilter) {
//查询条件
List<Criterion> queryList = new ArrayList<Criterion>();
//排序条件
List<Order> orderList = new ArrayList<Order>();
//分页
Integer iDisplayStart = searchFilter.getiDisplayStart();
Integer iDisplayLength = searchFilter.getiDisplayLength();
queryList.add(Restrictions.eq("typeStatus","0"));
orderList.add(Order.asc("typeId"));
Pagination<VipType> page = this.vipTypeDao.findByCriteria(iDisplayStart, iDisplayLength, orderList, queryList.toArray(new Criterion[queryList.size()]));
return page;
}
@Override
public boolean saveOrUpdateVipType(VipType vipType) {
Integer typeId = vipType.getTypeId();
if (typeId != null) {
this.vipTypeDao.update(vipType);
return true;
} else {
this.vipTypeDao.save(vipType);
return true;
}
}
@Override
public VipType getVipTypeById(Integer typeId) {
return this.vipTypeDao.get(typeId);
}
@Override
public Pagination<VipReferrer> getVipReferrerByPage(SearchFilter searchFilter) {
//查询条件
List<Criterion> queryList = new ArrayList<Criterion>();
//排序条件
List<Order> orderList = new ArrayList<Order>();
//分页
Integer iDisplayStart = searchFilter.getiDisplayStart();
Integer iDisplayLength = searchFilter.getiDisplayLength();
queryList.add(Restrictions.eq("referrerStatus","0"));
orderList.add(Order.asc("referrerAdmissionTime"));
if (searchFilter.getsSearch1() != null && StringUtils.isNotBlank(searchFilter.getsSearch1())) {
queryList.add(Restrictions.like("referrerName","%" + searchFilter.getsSearch1() + "%"));
}
if ((searchFilter.getsSearch3() != null && StringUtils.isNotBlank(searchFilter.getsSearch3()))
&& (searchFilter.getsSearch4() != null && StringUtils.isNotBlank(searchFilter.getsSearch4()))) {
queryList.add(Restrictions.between("referrerAdmissionTime",IfishUtil.StrToDate(searchFilter.getsSearch3()),IfishUtil.StrToDate(searchFilter.getsSearch4())));
} else if ((searchFilter.getsSearch3() != null && StringUtils.isNotBlank(searchFilter.getsSearch3()))
&& (searchFilter.getsSearch4() == null || StringUtils.isBlank(searchFilter.getsSearch4()))) {
queryList.add(Restrictions.ge("referrerAdmissionTime", IfishUtil.StrToDate(searchFilter.getsSearch3())));
} else if ((searchFilter.getsSearch3() == null || StringUtils.isBlank(searchFilter.getsSearch3())
&& (searchFilter.getsSearch4() != null && StringUtils.isNotBlank(searchFilter.getsSearch4())))) {
queryList.add(Restrictions.le("referrerAdmissionTime",IfishUtil.StrToDate(searchFilter.getsSearch4())));
}
Pagination<VipReferrer> page = this.vipReferrerDao.findByCriteria(iDisplayStart, iDisplayLength, orderList, queryList.toArray(new Criterion[queryList.size()]));
return page;
}
@Override
public boolean saveOrUpdateVipReferrer(VipReferrer vipReferrer) {
Integer referrerId = vipReferrer.getReferrerId();
if (referrerId != null) {
this.vipReferrerDao.update(vipReferrer);
} else {
this.vipReferrerDao.save(vipReferrer);
}
return true;
}
@Override
public VipReferrer getVipReferrer(Integer referrerId) {
return this.vipReferrerDao.get(referrerId);
}
}

View File

@ -19,7 +19,7 @@
<!-- 导入外部的properties文件-->
<context:property-placeholder location="classpath*:jdbc.properties" ignore-unresolvable="true"/>
<!-- 注册识别注解 -->
<context:component-scan base-package="com.ifish.converter,com.ifish.daoImpl,com.ifish.serviceImpl,com.ifishNew.help"/>
<context:component-scan base-package="com.ifish.daoImpl,com.ifish.serviceImpl"/>
<!-- c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

View File

@ -19,9 +19,8 @@
<div class="login_layout">
<div class="login_main">
<form id="login_form" action="<%=basePath %>j_spring_security_check" method="post">
<label class="label"><font id="form_text">爱鱼奇合作伙伴登陆</font></label> <input
type="text" id="username" class="input" name="j_username" required="required" placeholder="用户名" /> <input
type="password" id="pwd" class="input" name="j_password" required="required" placeholder="密码" />
<input type="text" id="username" class="input" name="j_username" required="required" placeholder="用户名" />
<input type="password" id="pwd" class="input" name="j_password" required="required" placeholder="密码" />
<div id="subDiv">
<input type="submit" id="button" value="登陆">
<c:set var="warn104" value="<%=SysUserEnum.warn104.getKey()%>"></c:set>

View File

@ -0,0 +1,283 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>推荐人</title>
<!-- css and js -->
<%@ include file="../htm/script.jsp" %>
<link href="<%=basePath%>static/css/datepicker.css" rel="stylesheet"/>
<script src="<%=basePath%>static/js/date-time/bootstrap-datepicker.min.js"></script>
<style type="text/css">
.important
{
vertical-align:middle;
text-align:right;
padding:10px;
}
</style>
<script type="text/javascript">
var dataTable = null;
$(function () {
$("#searchTable").find("td:even").addClass("important");
$("#searchTable").find("input").addClass("searchClass");
$("#searchTable").find("select").addClass("searchClass");
//日期控件
$('#sSearch3,#sSearch4').datepicker({
language: 'zh-CN',
format: "yyyy-mm-dd"
});
//分页
dataTable = $("#sample-table-2").dataTable({
"sPaginationType": "bootstrap",
//"bProcessing": true,
"bLengthChange": true,
"bFilter": false,
"bServerSide": true,//指定从服务器端获取数据
"sAjaxSource": "<%=basePath%>page/vip/referrerList.do",
"fnServerData": returnServerData,
"aoColumns": [
{"mData": "referrerId", "bSortable": false},
{"mData": "referrerName", "bSortable": false},
{"mData": function(vipReferrer) {
return vipReferrer.referrerType.typeName;
},"bSortable": false },
{"mData": "referrerAdmissionTime", "bSortable": false},
{"mData": "referrerRemark", "bSortable": false},
{"mData": "createUser", "bSortable": false},
{"mData": "createTime", "bSortable": false},
{"mData": function(vipReferrer){
return '<a onclick="editVipReferrer(\''+vipReferrer.referrerId+'\');" class="label label-primary"><i class="icon-edit"></i></a> '
+'<a href="javascript:void(0);" onclick="deleteVipReferrer('+vipReferrer.referrerId+')" class="label label-danger"><span class="icon-trash"></span></a>';
},
"bSortable": false,
"sClass":"center"
}
],
"oLanguage": {
"sLengthMenu": "每页显示 _MENU_条",
"sZeroRecords": "没有找到符合条件的数据",
"sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",
"sProcessing": "<img src='<%=basePath%>static/css/images/loading.gif'>",
"sInfoEmpty": "木有记录",
"sInfoFiltered": "(从 _MAX_ 条记录中过滤)",
"sSearch": "",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
});
$("#sample-table-2_length").append('&nbsp;&nbsp;&nbsp;&nbsp;<label><a href="javascript:void(0);" id="addVipType" class="btn btn-xs btn-primary"><i class="icon-edit"></i><span class="no-text-shadow">新增</span></a></label>');
//重置
$("#reset").click(function () {
var searchClass = $(".searchClass");
for (var i = 0; i < searchClass.length; i++) {
$(searchClass[i]).val("");
}
dataTable.fnDraw();
});
//模态框
$('.modal').modal({
backdrop: 'static',
show: false
});
//关闭
$(".closeBtn").click(function () {
$('.modal').modal("hide");
});
//自动查询
$("#searchTable").find("input,select").change(function () {
dataTable.fnDraw();
});
});
function deleteVipReferrer(referrerId){
jConfirm("确定要删除吗?", '确认对话框', function(bln){
if (bln) {
$.ajax({
url:"<%=basePath%>page/vip/referrerDelete.do?rm="+Math.random(),
data:{"referrerId":referrerId},
success:function(bln){
if(bln){
jAlert('成功', '提示');
}
else{
jAlert('失败', '提示');
}
refreshTable();
},
error:function(){
jAlert('错误', '提示');
refreshTable();
}
});
}
});
}
//服务器返回数据
function returnServerData(sSource, aoData, fnCallback) {
//查询参数
var searchClass = $(".searchClass");
for (var i = 0; i < searchClass.length; i++) {
var id = $(searchClass[i]).attr("id");
var value = $(searchClass[i]).val();
aoData.push({"name": id, "value": value});
}
$.ajax({
"url": sSource,
"type": "POST",
"data": aoData,
"dataType": "json",
"cache": false,
"success": function (json) {
fnCallback(json);
}
});
}
//刷新当前页
function refreshTable() {
var iDisplayStart = dataTable.fnSettings()._iDisplayStart;
var iDisplayLength = dataTable.fnSettings()._iDisplayLength;
var pageNum = (iDisplayStart + iDisplayLength) / iDisplayLength;
dataTable.fnPageChange(--pageNum, true);
}
</script>
</head>
<body>
<!-- 头部 -->
<%@ include file="../htm/header.jsp" %>
<!-- 主体 -->
<div class="main-container" id="main-container">
<script type="text/javascript">
try {
ace.settings.check('main-container', 'fixed')
} catch (e) {
}
</script>
<div class="main-container-inner">
<!-- 侧边栏 -->
<%@ include file="../htm/sidebar.jsp" %>
<!-- 主体内容 -->
<div class="main-content">
<div class="breadcrumbs" id="breadcrumbs">
<script type="text/javascript">
try {
ace.settings.check('breadcrumbs', 'fixed')
} catch (e) {
}
</script>
<ul class="breadcrumb">
<li>
<i class="icon-home home-icon"></i>
<a href="<%=basePath%>page/public/index.do">首页</a>
</li>
<li class="active">用户列表</li>
</ul>
</div>
<div class="page-content">
<div class="row">
<div class="col-xs-12">
<div class="table-header"></div>
<div class="table-responsive">
<table id="searchTable" class="col-xs-12">
<tr>
<td>
<label>推荐人名称</label>
</td>
<td>
<input type="sSearch1" id='sSearch1' class="input-medium" value="" />
</td>
<td>
<label>入会时间</label>
</td>
<td colspan="2">
<input type="text" id='sSearch3' name="sSearch3" class="input-medium" maxlength='20'/>-<input type="text" id='sSearch4' name="sSearch4" class="input-medium" maxlength='20'/>
</td>
</tr>
<tr>
<td colspan="12" style="text-align:center;">
<button type="button" class="btn btn-sm btn-info" onclick="refreshTable();" style="margin-right:20px;"><i class="icon-refresh"></i>刷新</button>
<button id="reset" type="reset" class="btn btn-sm btn-info" style="margin-right:20px;"><i class="icon-undo"></i>重置</button>
</td>
</tr>
</table>
<table id="sample-table-2" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="center">ID</th>
<th>推荐人名称</th>
<th>推荐人类型</th>
<th>推荐人入会时间</th>
<th>备注</th>
<th>创建人</th>
<th>创建时间</th>
<th>操作</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<form action="<%=basePath%>page/admin/updateRemarks.do" class="form-horizontal" method="post" id="form-remarks">
<div class="modal fade" id="remarksModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closeBtn close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">备注</h4>
</div>
<div class="modal-body row">
<div class="col-xs-12">
<div class="form-group">
<label class="col-xs-2 control-label no-padding-right">备注<span style="color:red;">*</span></label>
<div class="col-xs-8">
<input type="hidden" name="userId" id="userId">
<textarea name="remarks" id="remarks" rows="5" class="form-control" maxlength="30"></textarea>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="closeBtn btn btn-default">关闭</button>
<button type="submit" id="form-remarks-saveBtn" class="btn btn-primary">保存</button>
</div>
</div>
</div>
</div>
</form>
<div class="modal fade" id="taskModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closeBtn close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">任务</h4>
</div>
<div class="modal-body">
<table id="taskTable" class="table table-striped table-bordered table-hover">
</table>
</div>
<div class="modal-footer">
<button type="button" class="closeBtn btn btn-default">关闭</button>
</div>
</div>
</div>
</div>
</div>
<!-- 设置工具 -->
<%@ include file="../htm/setting.jsp" %>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,249 @@
<%@page import="com.ifish.enums.BannerTypeEnum"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>会员类别</title>
<!-- css and js -->
<%@ include file="../htm/script.jsp" %>
<script type="text/javascript">
var dataTable = null;
$(function(){
//模态框
$('.modal').modal({
backdrop:'static',
show:false
});
//关闭
$(".closeBtn").click(function(){
$('.modal').modal("hide");
});
//分页
dataTable = $('#sample-table-2').dataTable({
"sPaginationType": "bootstrap",
//"bProcessing": true,
"bLengthChange": true,
"bFilter": false,
"bServerSide": true,//指定从服务器端获取数据
"sAjaxSource": "<%=basePath%>page/vip/vipTypeList.do",
"fnServerData": returnServerData,
"aoColumns": [
{ "mData": "typeId","bSortable": false },
{ "mData": "typeName","bSortable": false },
{ "mData": function(vipType){
return '<a onclick="editVipType('+vipType.typeId+');" class="label label-primary"><i class="icon-edit"></i></a> '
+'<a href="javascript:void(0);" onclick="deleteVipType('+vipType.typeId+')" class="label label-danger"><span class="icon-trash"></span></a>';
},
"bSortable": false,
"sClass":"center"
}
],
"oLanguage": {
"sLengthMenu": "每页显示 _MENU_条",
"sZeroRecords": "没有找到符合条件的数据",
"sInfo": "当前第 _START_ - _END_ 条 共计 _TOTAL_ 条",
"sProcessing": "<img src='<%=basePath%>static/css/images/loading.gif'>",
"sInfoEmpty": "木有记录",
"sInfoFiltered": "(从 _MAX_ 条记录中过滤)",
"sSearch": "",
"oPaginate": {
"sFirst": "首页",
"sPrevious": "前一页",
"sNext": "后一页",
"sLast": "尾页"
}
}
});
$("#sample-table-2_length").append('&nbsp;&nbsp;&nbsp;&nbsp;<label><a href="javascript:void(0);" id="addVipType" class="btn btn-xs btn-primary"><i class="icon-edit"></i><span class="no-text-shadow">新增</span></a></label>');
//新增
$("#addVipType").click(function(){
$("#typeId").val("");
$("#typeStatus").val("0");
$("#typeName").val("");
$("#vipTypeModal").modal("show");
});
//确定
$("#vipTypeBtn").click(function(){
var typeName = $("#typeName").val();
if(typeName==""){
jAlert('会员类型名称不能为空!', '提示');
return false;
}
$("#vipTypeBtn").attr("disabled",true);
$('#form1').submit();
});
//提交表单
$('#form1').ajaxForm(function(data){
//弹出ajax请求后的回调结果
if(data==true){
//刷新当前页面
$('.modal').modal("hide");
jAlert('成功', '提示');
refreshTable();
}
else{
//刷新当前页面
jAlert('失败', '提示');
}
$("#vipTypeBtn").attr("disabled",false);
});
});
//服务器返回数据
function returnServerData(sSource, aoData, fnCallback){
//查询参数
var searchClass = $(".searchClass");
for (var i = 0; i < searchClass.length; i++) {
var id = $(searchClass[i]).attr("id");
var value = $(searchClass[i]).val();
aoData.push({"name":id,"value":value});
}
$.ajax({
"url": sSource,
"type": "POST",
"data": aoData,
"dataType": "json",
"cache": false,
"success": function(json){
fnCallback(json);
}
});
}
//刷新当前页
function refreshTable(){
var iDisplayStart = dataTable.fnSettings()._iDisplayStart;
var iDisplayLength = dataTable.fnSettings()._iDisplayLength;
var pageNum = (iDisplayStart+iDisplayLength)/iDisplayLength;
dataTable.fnPageChange(--pageNum,true);
}
//修改
function editVipType(typeId){
$.ajax({
"url": "<%=basePath%>page/vip/getVipType.do?rm="+Math.random(),
"type": 'POST',
"data": {"typeId":typeId},
"dataType": "json",
"success":function(data){
if(data!=null){
$("#typeId").val(data.typeId);
$("#typeName").val(data.typeName);
$("#typeStatus").val(data.typeStatus);
$("#vipTypeModal").modal("show");
}
else{
jAlert('失败', '提示');
//刷新当前页
refreshTable();
}
},
error:function(){
//刷新当前页
refreshTable();
jAlert('错误', '提示');
},
});
}
//删除
function deleteVipType(typeId){
jConfirm("确定要删除吗?", '确认对话框', function(bln){
if (bln) {
$.ajax({
url:"<%=basePath%>page/vip/vipTypeDelete.do?rm="+Math.random(),
data:{"typeId":typeId},
success:function(bln){
if(bln){
jAlert('成功', '提示');
}
else{
jAlert('失败', '提示');
}
refreshTable();
},
error:function(){
jAlert('错误', '提示');
refreshTable();
}
});
}
});
}
</script>
</head>
<body>
<!-- 头部 -->
<%@ include file="../htm/header.jsp" %>
<!-- 主体 -->
<div class="main-container" id="main-container">
<div class="main-container-inner">
<!-- 侧边栏 -->
<%@ include file="../htm/sidebar.jsp" %>
<!-- 主体内容 -->
<div class="main-content">
<div class="breadcrumbs" id="breadcrumbs">
<script type="text/javascript">
try{ace.settings.check('breadcrumbs' , 'fixed')}catch(e){}
</script>
<ul class="breadcrumb">
<li>
<i class="icon-home home-icon"></i>
<a href="<%=basePath%>page/public/index.do">首页</a>
</li>
<li class="active">会员类型</li>
</ul>
</div>
<div class="page-content">
<div class="row">
<div class="col-xs-12">
<div class="table-responsive">
<table id="sample-table-2" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th>ID</th>
<th>会员类型</th>
<th>操作</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
<form id="form1" action="<%=basePath%>page/vip/vipTypeAdd.do" method="post" class="form-horizontal" enctype="multipart/form-data">
<div class="modal fade" id="vipTypeModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="closeBtn close">
<span aria-hidden="true">&times;</span>
</button>
<h4 class="modal-title">会员类型</h4>
</div>
<div class="modal-body row">
<div class="col-xs-12">
<div class="form-group">
<label class="col-xs-2 control-label no-padding-right">会员类型<span style="color:red;">*</span></label>
<div class="col-xs-8">
<input type="hidden" name="typeId" id="typeId"/>
<input type="hidden" name="typeStatus" id="typeStatus" value="0"/>
<input type="url" name="typeName" id="typeName" class="form-control" maxlength="100"/>
</div>
</div>
<div class="space-4"></div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="closeBtn btn btn-default">关闭</button>
<button id="vipTypeBtn" type="submit" class="btn btn-primary">确定</button>
</div>
</div>
</div>
</div>
</form>
</div>
<!-- 设置工具 -->
<%@ include file="../htm/setting.jsp" %>
</div>
</div>
</body>
</html>