Commit 8b6ed155 by Huang Linyu

会员管理系统-绑定会员

parent df1d5749
package com.ctrip.fun.admin.controller.market;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import com.ctrip.fun.admin.form.PaginationForm;
import com.ctrip.fun.admin.service.market.CommuneAdmService;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.ResponseStatusEnum;
import com.ctrip.fun.common.vo.product.CourseResourcePaymentBean;
import com.ctrip.fun.common.vo.user.CommuneAdmBean;
import com.ctrip.fun.common.vo.user.CommuneAdmQuery;
@Controller
@RequestMapping("/communeAdm")
public class CommuneAdmController {
@Autowired
private CommuneAdmService communeAdmService;
@RequestMapping(value = "queryList", method = RequestMethod.GET)
public String queryList(HttpServletRequest request, @ModelAttribute("dto") CommuneAdmQuery query, ModelMap model) {
int currentPage = 0;
int pageSize;
int total;
int pageCount;
if (null != request.getParameter("page")) {
currentPage = Integer.parseInt(request.getParameter("page"));
}
query.setPagerOffset(currentPage * query.getPagerPerPage());
PagedResponseBean<CommuneAdmBean> response = communeAdmService.list(query);
pageSize = query.getPagerPerPage();
total = response.getCount();
pageCount = (0 == total % pageSize) ? (total / pageSize) : (total / pageSize + 1);
// for (CommuneExtBean bean : response.getResult()) {
// bean.setCommuneAgainTime(DateUtil.addDateField(bean.getCommuneAgainTime(), Calendar.YEAR, 1)); //到期时间
// }
model.put("list", response.getResult());
model.put("paginationData", new PaginationForm(currentPage, pageSize, pageCount, total));
return "market/communeAdm/list";
}
/**
* 批量绑定管理员
*/
@RequestMapping(value = "/batchBind", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public Response<Integer> batchBind(HttpServletRequest request, @RequestParam(value = "admUserId", required = true) Integer admUserId,
@RequestParam(value = "communeExtIds", required = true) String communeExtIds) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("admUserId", admUserId);
map.put("communeExtIds", communeExtIds.split(","));
Response<Integer> response = communeAdmService.batchBind(map);
return response;
}
/**
* 批量解绑管理员
*/
@RequestMapping(value = "/batchUnbind", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public Response<Integer> batchUnBind(HttpServletRequest request,
@RequestParam(value = "communeExtIds", required = true) String communeExtIds) {
Map<String,Object> map = new HashMap<String,Object>();
// map.put("admUserId", admUserId);
map.put("communeExtIds", communeExtIds.split(","));
Response<Integer> response = communeAdmService.batchUnbind(map);
return response;
}
}
......@@ -7,7 +7,9 @@ package com.ctrip.fun.admin.controller.system;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
......@@ -16,8 +18,10 @@ import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.ctrip.fun.admin.form.PaginationForm;
......@@ -27,7 +31,9 @@ import com.ctrip.fun.admin.template.FlashMessageDirective;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.core.util.DateUtil;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.SortDirectionEnum;
import com.ctrip.fun.common.vo.adminUser.AdminUserBean;
import com.ctrip.fun.common.vo.basic.GenderEnum;
import com.ctrip.fun.common.vo.basic.UserExtQuery;
import com.ctrip.fun.common.vo.basic.VoucherItemDTO;
......@@ -170,6 +176,8 @@ public class UserController {
return "system/UserInfoDetail";
}
/**
* 获取兑换礼品列表
*
......
package com.ctrip.fun.admin.controller.system;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ctrip.fun.admin.service.system.UserDetailsService;
import com.ctrip.fun.common.core.util.EncryptUtil;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.adminUser.AdminUserBean;
@Controller
......@@ -72,4 +81,26 @@ public class adminUserController {
return "user/admin/adminLogin";
}
/**
* 获得会服人员列表
* @param request
* @return
*/
@ResponseBody
@RequestMapping(value = "/list/communeAdm", method = RequestMethod.GET)
public List<Map<String,Object>> getCommuneAdmUserList(HttpServletRequest request) {
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Response<List<AdminUserBean>> response = userDetailsService.getCommuneAdmUserList(null);
List<AdminUserBean> admUserList = response.getBody();
for (AdminUserBean bean: admUserList){
Map<String,Object> map = new HashMap<String,Object>();
map.put("admUserId", bean.getId());
map.put("admUsername", bean.getUserName());
list.add(map);
}
return list;
}
}
package com.ctrip.fun.admin.service.market;
import java.util.ArrayList;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import org.springframework.web.client.RestClientException;
import com.ctrip.fun.admin.service.BaseService;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.user.CommuneAdmBean;
import com.ctrip.fun.common.vo.user.CommuneAdmQuery;
import com.ctrip.fun.common.vo.user.CommuneExtBean;
import com.ctrip.fun.common.vo.user.CommuneExtQuery;
public class CommuneAdmService extends BaseService{
private static Logger logger = LoggerFactory.getLogger(CommuneExtService.class);
public PagedResponseBean<CommuneAdmBean> list(CommuneAdmQuery query) {
String uri = super.getServiceUri("uri.communeAdm.list");
PagedResponseBean<CommuneAdmBean> responseBean = new PagedResponseBean<CommuneAdmBean>(0,
new ArrayList<CommuneAdmBean>());
Request<CommuneAdmQuery> request = new Request<CommuneAdmQuery>("", query);
HttpEntity<Request<CommuneAdmQuery>> entity = new HttpEntity<Request<CommuneAdmQuery>>(
request);
Response<PagedResponseBean<CommuneAdmBean>> response = null;
try {
response = super.exchange(uri, HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<PagedResponseBean<CommuneAdmBean>>>() {
}).getBody();
} catch (RestClientException e) {
e.printStackTrace();
}
if (response != null && response.getStatus() == 0) {
responseBean = response.getBody();
} else {
logger.error(String.format("[公社会员扩展列表获取异常] status: %d, msg: %s", response.getStatus(),
response.getMessage()));
}
return responseBean;
}
public Response<Integer> batchBind(Map<String, Object> query) {
String uri = super.getServiceUri("uri.communeAdm.batchBind");
Request<Map<String, Object>> request = new Request<Map<String, Object>>("", query);
HttpEntity<Request<Map<String, Object>>> entity = new HttpEntity<Request<Map<String, Object>>>(request);
Response<Integer> response = null;
try {
response = super.exchange(uri, HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<Integer>>() {
}).getBody();
} catch (RestClientException e) {
e.printStackTrace();
}
return response;
}
public Response<Integer> batchUnbind(Map<String, Object> query) {
String uri = super.getServiceUri("uri.communeAdm.batchUnbind");
Request<Map<String, Object>> request = new Request<Map<String, Object>>("", query);
HttpEntity<Request<Map<String, Object>>> entity = new HttpEntity<Request<Map<String, Object>>>( request);
Response<Integer> response = null;
try {
response = super.exchange(uri, HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<Integer>>() {
}).getBody();
} catch (RestClientException e) {
e.printStackTrace();
}
return response;
}
}
......@@ -156,7 +156,17 @@ public final class UserDetailsService extends BaseService implements org.springf
}
return retBean;
}
public Response<List<AdminUserBean>> getCommuneAdmUserList(Integer query) {
Request<Integer> request = new Request<Integer>("", query);
HttpEntity<Request<Integer>> entity = new HttpEntity<Request<Integer>>(request);
Response<List<AdminUserBean>> response = super.exchange(
this.getServiceUri("uri.adminUser.communeAdmUserList"), HttpMethod.POST, entity,
new ParameterizedTypeReference<Response<List<AdminUserBean>>>() {
}).getBody();
return response;
}
public SipPhoneService getSipPhoneService() {
return sipPhoneService;
}
......
......@@ -6,6 +6,7 @@ package com.ctrip.fun.admin.service.system;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
......@@ -20,6 +21,7 @@ import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.ResponseStatusEnum;
import com.ctrip.fun.common.vo.SortDirectionEnum;
import com.ctrip.fun.common.vo.adminUser.AdminUserBean;
import com.ctrip.fun.common.vo.basic.UserExtQuery;
import com.ctrip.fun.common.vo.basic.UserPrepayCardInfoBean;
import com.ctrip.fun.common.vo.basic.UserPrepayCardLogQuery;
......
......@@ -276,6 +276,9 @@
<bean name="communeExtExcelService"
class="com.ctrip.fun.admin.service.market.CommuneExtExcelService"
parent="abstractExcelExportService1" />
<!-- 社员绑定信息 -->
<bean name="communeAdmService" class="com.ctrip.fun.admin.service.market.CommuneAdmService"
parent="baseService" />
<!-- 签到 -->
<bean name="signService" class="com.ctrip.fun.admin.service.basic.SignService"
parent="baseService" />
......
......@@ -24,6 +24,7 @@ uri.voucher.exportVoucherExcel=/fun-golf-service/Voucher/exportVoucherExcel
#admin user
uri.adminUser.userDetail=/fun-golf-service/adminUser/userDetail
uri.adminUser.updatePassword=/fun-golf-service/adminUser/update
uri.adminUser.communeAdmUserList = /fun-golf-service/adminUser/communeAdmUserList
# order
uri.order.placeOrder=/fun-golf-service/{orderType}/placeOrder
......@@ -452,6 +453,12 @@ uri.communeExt.getByPhone=/fun-golf-service/communeExt/getByPhone
uri.communeExt.getByCommuneNo=/fun-golf-service/communeExt/getByCommuneNo
uri.communeExt.importCommuneExts=/fun-golf-service/communeExt/importCommuneExts
#communeAdm
uri.communeAdm.list=/fun-golf-service/communeAdm/list
uri.communeAdm.batchBind=/fun-golf-service/communeAdm/batchBind
uri.communeAdm.batchUnbind=/fun-golf-service/communeAdm/batchUnbind
# workPoint
uri.workPoint.queryWorkPointLogsList=/fun-golf-service/userWorkPointLog/query
uri.WorkPoint.update=/fun-golf-service/userWorkPointLog/add
......
......@@ -480,6 +480,19 @@ ${pageCss}
<a href="/insuranceFinance/query">保险结算</a>
</li>
</ul>
<#elseif module=="communeAdm">
<ul class="nav nav-list">
<li class="nav-header"社员管理</li>
<li <#if current == "communeAdm_list">class="active"</#if>>
<a href="/communeAdm/queryList">列表</a>
</li>
<li <#if current == "communeExt_create">class="active"</#if>>
<a href="/communeExt/create">新建</a>
</li>
<li <#if current == "communeExt_import">class="active"</#if>>
<a href="/communeExt/import">导入</a>
</li>
</ul>
</#if>
</div>
<!-- /well -->
......
......@@ -20,6 +20,7 @@
<li <#if module?? && module == "statistics">class="active"</#if>><a href="/statistics/totalOrder/listTotalStatistics">数据统计</a></li>
<li <#if module?? && module == "tools">class="active"</#if>><a href="/tools/map">工具</a></li>
<li <#if module?? && module == "finance_management">class="active"</#if>><a href="/courseFinance/queryCourseOrder">财务</a></li>
<li <#if module?? && module == "communeAdm">class="active"</#if>><a href="/communeAdm/queryList">会服</a></li>
</ul>
<ul class="nav pull-right">
......
<#assign pageJsContent>
<script>
$(function(){
$('#batchBind').click(function () {
var checkboxes = $('[name="datacheck"]:checked');
if (checkboxes.length == 0) {
alert("请选择要修改的资源");
} else {
$('#bindAdmModal').modal('show');
}
});
$('#bindAdmBtn').click(function () {
var checkboxes = $('[name="datacheck"]:checked');
var chgids="";
checkboxes.each(function () {
chgids = chgids + $(this).attr("id") + ",";
});
chgids = chgids.substr(0, chgids.length - 1);
var admUserId = $('#adminName').val();
$(this).button('loading');
$.post("/communeAdm/batchBind",{"communeExtIds":chgids,"admUserId":admUserId},function(msg){
if (msg['status'] == 0) {
location.reload();
}else{
alert(msg['message']);
$('#servicebtn').button("hide");
}
});
});
$('#batchUnbind').click(function () {
var checkboxes = $('[name="datacheck"]:checked');
var chgids="";
checkboxes.each(function () {
chgids = chgids + $(this).attr("id") + ",";
});
chgids = chgids.substr(0, chgids.length - 1);
$.post("/communeAdm/batchUnbind",{"communeExtIds":chgids},function(msg){
if (msg['status'] == 0) {
location.reload();
}else{
alert(msg['message']);
$('#servicebtn').button("hide");
}
});
});
});
$('#bindAdmModal').on('show.bs.modal', function (e) {
//模态框显示之后加载当前所有会服人员
$.get("/adminUser/list/communeAdm",{},function(data){
//返回找出所有的会服
var html='<option value="0">请选择</option>';
for(var i=0;i<data.length;i++){
html+='<option value="'+data[i].admUserId+'">'+data[i].admUsername+'</option>'
}
$("#adminName").html(html);
})
})
//全选或者全不选
function shiftCheckAll(){
if($('#checkAll').is(':checked')) {
$(".J_shift :checkbox").prop("checked", true);
}else{
$(".J_shift :checkbox").prop("checked", false);
}
}
$('#statusbtn').click(function () {
var chgids = "";
var checkboxes = $('[name="datacheck"]:checked');
checkboxes.each(function () {
chgids = chgids + $(this).attr("id") + ",";
});
chgids = chgids.substr(0, chgids.length - 1);
$("#rids").val(chgids);
$(this).button('loading');
$.ajax({
url: '/j/resource/status/batchedit',
data: $('#statusForm').serialize(),
type: 'POST',
success: function (msg) {
if (msg['status'] == 0) {
location.reload();
}
else {
alert(msg['message']);
$('#statusbtn').button("hide");
}
}
});
});
</script>
</#assign>
<#assign pageCssContent>
<style>
.table th, .table td{ text-align:center;vertical-align:middle;}
.widthShow {
width: 1100px;
}
</style>
</#assign>
<@com.layout title="查询公社会员" module="communeAdm" current="communeAdm_list" pageCss=pageCssContent pageJs=pageJsContent>
<form id="formId" class="form-inline search-box widthShow" action="/communeAdm/queryList" method="get" autocomplete="off" >
<@com.textInput "dto.userName" "style=\"margin-left: 5px;\"" "姓名"/>
<@com.textInput "dto.mobilePhone" "style=\"margin-left: 5px;\"" "电话"/>
<@com.textInput "dto.uid" "style=\"margin-left: 5px;\"" "UID"/>
<br />
<@com.textInput "dto.bindedAdm" "style=\"margin-left: 5px;\"" "绑定会服" />
<@com.textInputTwoDate "dto.communeAgainTimeStart" "dto.communeAgainTimeEnd" "" "社员到期时间"/>
<br />
<button type="submit" id="selectButton" class="btn btn-primary">查询</button>
<button type="button" id="batchBind" class="btn btn-primary">批量绑定</button>
<button type="button" id="batchUnbind" class="btn btn-primary">批量解绑</button>
</form>
<table class="table table-bordered table-striped widthShow">
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="shiftCheckAll();"> </th>
<th>姓名</th>
<th>电话</th>
<th>uid</th>
<th>生日</th>
<th>社员到期时间</th>
<th>绑定会服</th>
<th>绑定时间</th>
<th colspan=1>操作</th>
</tr>
</thead>
<tbody class="J_shift">
<#list list as item>
<tr>
<td><input type="checkbox" name="datacheck" data-index="${item_index}" id="${item.id}" class="J_shiftCheck J_check-${item_index}" value="${item.id}"></td>
<td>${item.userName!}</td>
<td>${item.mobilePhone!}</td>
<td>${item.uid!}</td>
<td><#if item.birthday??>${item.birthday?string("yyyy-MM-dd")}</#if></td>
<td><#if item.communeAgainTime??>${item.communeAgainTime?string("yyyy-MM-dd HH:mm:ss")}</#if></td>
<td>${item.bindedAdm!}</td>
<td><#if item.bindTime??>${item.bindTime?string("yyyy-MM-dd HH:mm:ss")}</#if></td>
<td>
<a href="/communeAdm/update?id=${item.id!}&page=${paginationData.pageNumber}">修改</a>
</td>
</tr>
</#list>
</tbody>
</table>
<div class="pagination pagination-right widthShow">
<ul>
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
<div class="modal hide fade" id="bindAdmModal" style="display:none;">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h3>绑定管理员</h3>
</div>
<div class="modal-body">
<form class="form-inline form-horizontal" method="post" id="statusForm">
<div class="row-fluid show-grid">
<div class="control-group ">
<label class="control-label" for="adminName">管理员</label>
<select id="adminName" name="adminName">
<option value="0">请选择</option>
</select>
</div>
</div>
<input type="hidden" id="rids" name="rids"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary pull-right bottom_margin" data-loading-text="执行中..."
id="bindAdmBtn">提交
</button>
</div>
</div>
</@com.layout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment