mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-01 16:38:02 +08:00
#61 优化权限管理,根据部门过滤数据
This commit is contained in:
parent
0efb7615e0
commit
cf2ecee7db
@ -17,6 +17,7 @@
|
|||||||
package com.chatopera.cc.webim.web.handler;
|
package com.chatopera.cc.webim.web.handler;
|
||||||
|
|
||||||
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||||
|
import static org.elasticsearch.index.query.QueryBuilders.termsQuery;
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
|
||||||
@ -25,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
|
|
||||||
import com.chatopera.cc.core.UKDataContext;
|
import com.chatopera.cc.core.UKDataContext;
|
||||||
import com.chatopera.cc.util.UKView;
|
import com.chatopera.cc.util.UKView;
|
||||||
|
import com.chatopera.cc.util.exception.CSKefuException;
|
||||||
import com.chatopera.cc.webim.service.cache.CacheHelper;
|
import com.chatopera.cc.webim.service.cache.CacheHelper;
|
||||||
import com.chatopera.cc.webim.service.repository.TenantRepository;
|
import com.chatopera.cc.webim.service.repository.TenantRepository;
|
||||||
import com.chatopera.cc.webim.web.handler.api.rest.QueryParams;
|
import com.chatopera.cc.webim.web.handler.api.rest.QueryParams;
|
||||||
@ -36,6 +38,8 @@ import org.elasticsearch.index.query.QueryBuilders;
|
|||||||
import org.elasticsearch.index.query.QueryStringQueryBuilder;
|
import org.elasticsearch.index.query.QueryStringQueryBuilder;
|
||||||
import org.elasticsearch.index.query.QueryStringQueryBuilder.Operator;
|
import org.elasticsearch.index.query.QueryStringQueryBuilder.Operator;
|
||||||
import org.elasticsearch.index.query.RangeQueryBuilder;
|
import org.elasticsearch.index.query.RangeQueryBuilder;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
@ -49,6 +53,8 @@ import com.chatopera.cc.webim.web.model.SystemConfig;
|
|||||||
@Controller
|
@Controller
|
||||||
@SessionAttributes
|
@SessionAttributes
|
||||||
public class Handler {
|
public class Handler {
|
||||||
|
private static final Logger logger = LoggerFactory.getLogger(Handler.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TenantRepository tenantRes;
|
private TenantRepository tenantRes;
|
||||||
|
|
||||||
@ -86,6 +92,32 @@ public class Handler {
|
|||||||
return user ;
|
return user ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建ElasticSearch基于部门查询的Filter
|
||||||
|
* @param request
|
||||||
|
* @param boolQueryBuilder
|
||||||
|
* @return
|
||||||
|
* @throws CSKefuException
|
||||||
|
*/
|
||||||
|
public boolean esOrganFilter(final HttpServletRequest request, final BoolQueryBuilder boolQueryBuilder) throws CSKefuException {
|
||||||
|
// 组合部门条件
|
||||||
|
User u = getUser(request);
|
||||||
|
if( u == null){
|
||||||
|
throw new CSKefuException("[esOrganFilter] 未能获取到登录用户。");
|
||||||
|
} else if(u.isSuperuser()){
|
||||||
|
// 超级管理员, 查看任何数据
|
||||||
|
return true;
|
||||||
|
} else if(u.getMyorgans().size() == 0){
|
||||||
|
// 用户没有被分配到部门,返回空数据
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
// 用户在部门中,通过部门过滤数据
|
||||||
|
String[] values = u.getMyorgans().toArray(new String[u.getMyorgans().size()]);
|
||||||
|
boolQueryBuilder.filter(termsQuery("organ", values));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param queryBuilder
|
* @param queryBuilder
|
||||||
|
@ -17,29 +17,28 @@
|
|||||||
|
|
||||||
package com.chatopera.cc.webim.web.handler.apps.contacts;
|
package com.chatopera.cc.webim.web.handler.apps.contacts;
|
||||||
|
|
||||||
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import javax.validation.Valid;
|
|
||||||
|
|
||||||
import com.chatopera.cc.util.Menu;
|
import com.chatopera.cc.util.Menu;
|
||||||
import com.chatopera.cc.util.PinYinTools;
|
import com.chatopera.cc.util.PinYinTools;
|
||||||
|
import com.chatopera.cc.util.UKTools;
|
||||||
|
import com.chatopera.cc.util.exception.CSKefuException;
|
||||||
|
import com.chatopera.cc.util.task.DSData;
|
||||||
|
import com.chatopera.cc.util.task.DSDataEvent;
|
||||||
|
import com.chatopera.cc.util.task.ExcelImportProecess;
|
||||||
|
import com.chatopera.cc.util.task.export.ExcelExporterProcess;
|
||||||
|
import com.chatopera.cc.util.task.process.ContactsProcess;
|
||||||
|
import com.chatopera.cc.webim.service.es.ContactsRepository;
|
||||||
|
import com.chatopera.cc.webim.service.repository.MetadataRepository;
|
||||||
import com.chatopera.cc.webim.service.repository.PropertiesEventRepository;
|
import com.chatopera.cc.webim.service.repository.PropertiesEventRepository;
|
||||||
|
import com.chatopera.cc.webim.service.repository.ReporterRepository;
|
||||||
import com.chatopera.cc.webim.util.PropertiesEventUtils;
|
import com.chatopera.cc.webim.util.PropertiesEventUtils;
|
||||||
|
import com.chatopera.cc.webim.web.handler.Handler;
|
||||||
|
import com.chatopera.cc.webim.web.model.*;
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
@ -50,169 +49,174 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import com.chatopera.cc.util.UKTools;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import com.chatopera.cc.util.task.DSData;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import com.chatopera.cc.util.task.DSDataEvent;
|
import javax.validation.Valid;
|
||||||
import com.chatopera.cc.util.task.ExcelImportProecess;
|
import java.io.File;
|
||||||
import com.chatopera.cc.util.task.export.ExcelExporterProcess;
|
import java.io.IOException;
|
||||||
import com.chatopera.cc.util.task.process.ContactsProcess;
|
import java.text.SimpleDateFormat;
|
||||||
import com.chatopera.cc.webim.service.es.ContactsRepository;
|
import java.util.*;
|
||||||
import com.chatopera.cc.webim.service.repository.MetadataRepository;
|
|
||||||
import com.chatopera.cc.webim.service.repository.ReporterRepository;
|
import static org.elasticsearch.index.query.QueryBuilders.termQuery;
|
||||||
import com.chatopera.cc.webim.web.handler.Handler;
|
import static org.elasticsearch.index.query.QueryBuilders.termsQuery;
|
||||||
import com.chatopera.cc.webim.web.model.Contacts;
|
|
||||||
import com.chatopera.cc.webim.web.model.MetadataTable;
|
|
||||||
import com.chatopera.cc.webim.web.model.PropertiesEvent;
|
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/apps/contacts")
|
@RequestMapping("/apps/contacts")
|
||||||
public class ContactsController extends Handler{
|
public class ContactsController extends Handler {
|
||||||
|
private final static Logger logger = LoggerFactory.getLogger(ContactsController.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ContactsRepository contactsRes ;
|
private ContactsRepository contactsRes;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PropertiesEventRepository propertiesEventRes ;
|
private PropertiesEventRepository propertiesEventRes;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ReporterRepository reporterRes ;
|
private ReporterRepository reporterRes;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private MetadataRepository metadataRes ;
|
private MetadataRepository metadataRes;
|
||||||
|
|
||||||
@Value("${web.upload-path}")
|
@Value("${web.upload-path}")
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
@RequestMapping("/index")
|
@RequestMapping("/index")
|
||||||
@Menu(type = "customer" , subtype = "index")
|
@Menu(type = "customer", subtype = "index")
|
||||||
public ModelAndView index(ModelMap map , HttpServletRequest request , @Valid String q , @Valid String ckind) {
|
public ModelAndView index(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String ckind) throws CSKefuException {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
if(!StringUtils.isBlank(q)){
|
|
||||||
map.put("q", q) ;
|
if(!super.esOrganFilter(request, boolQueryBuilder)){
|
||||||
|
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(ckind)){
|
|
||||||
boolQueryBuilder.must(termQuery("ckind" , ckind)) ;
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("ckind", ckind) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(),super.getOrgi(request), null , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)))) ;
|
|
||||||
|
if (!StringUtils.isBlank(ckind)) {
|
||||||
|
boolQueryBuilder.must(termQuery("ckind", ckind));
|
||||||
|
map.put("ckind", ckind);
|
||||||
|
}
|
||||||
|
|
||||||
|
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), null, null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request))));
|
||||||
|
|
||||||
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/today")
|
@RequestMapping("/today")
|
||||||
@Menu(type = "customer" , subtype = "today")
|
@Menu(type = "customer", subtype = "today")
|
||||||
public ModelAndView today(ModelMap map , HttpServletRequest request , @Valid String q , @Valid String ckind) {
|
public ModelAndView today(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String ckind) {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
if(!StringUtils.isBlank(q)){
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("q", q) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(ckind)){
|
if (!StringUtils.isBlank(ckind)) {
|
||||||
boolQueryBuilder.must(termQuery("ckind" , ckind)) ;
|
boolQueryBuilder.must(termQuery("ckind", ckind));
|
||||||
map.put("ckind", ckind) ;
|
map.put("ckind", ckind);
|
||||||
}
|
}
|
||||||
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request),UKTools.getStartTime() , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)))) ;
|
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), UKTools.getStartTime(), null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request))));
|
||||||
|
|
||||||
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/week")
|
@RequestMapping("/week")
|
||||||
@Menu(type = "customer" , subtype = "week")
|
@Menu(type = "customer", subtype = "week")
|
||||||
public ModelAndView week(ModelMap map , HttpServletRequest request , @Valid String q , @Valid String ckind) {
|
public ModelAndView week(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String ckind) {
|
||||||
|
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
if(!StringUtils.isBlank(q)){
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("q", q) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(ckind)){
|
if (!StringUtils.isBlank(ckind)) {
|
||||||
boolQueryBuilder.must(termQuery("ckind" , ckind)) ;
|
boolQueryBuilder.must(termQuery("ckind", ckind));
|
||||||
map.put("ckind", ckind) ;
|
map.put("ckind", ckind);
|
||||||
}
|
}
|
||||||
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(),super.getOrgi(request), UKTools.getWeekStartTime() , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)))) ;
|
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), UKTools.getWeekStartTime(), null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request))));
|
||||||
|
|
||||||
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/creater")
|
@RequestMapping("/creater")
|
||||||
@Menu(type = "customer" , subtype = "creater")
|
@Menu(type = "customer", subtype = "creater")
|
||||||
public ModelAndView creater(ModelMap map , HttpServletRequest request , @Valid String q , @Valid String ckind) {
|
public ModelAndView creater(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String ckind) {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
boolQueryBuilder.must(termQuery("creater" , super.getUser(request).getId())) ;
|
boolQueryBuilder.must(termQuery("creater", super.getUser(request).getId()));
|
||||||
|
|
||||||
if(!StringUtils.isBlank(ckind)){
|
if (!StringUtils.isBlank(ckind)) {
|
||||||
boolQueryBuilder.must(termQuery("ckind" , ckind)) ;
|
boolQueryBuilder.must(termQuery("ckind", ckind));
|
||||||
map.put("ckind", ckind) ;
|
map.put("ckind", ckind);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(q)){
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("q", q) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
|
|
||||||
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(),super.getOrgi(request), null , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)))) ;
|
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), null, null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request))));
|
||||||
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
return request(super.createAppsTempletResponse("/apps/business/contacts/index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/delete")
|
@RequestMapping("/delete")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView delete(HttpServletRequest request ,@Valid Contacts contacts ,@Valid String p) {
|
public ModelAndView delete(HttpServletRequest request, @Valid Contacts contacts, @Valid String p) {
|
||||||
if(contacts!=null){
|
if (contacts != null) {
|
||||||
contacts = contactsRes.findOne(contacts.getId()) ;
|
contacts = contactsRes.findOne(contacts.getId());
|
||||||
contacts.setDatastatus(true); //客户和联系人都是 逻辑删除
|
contacts.setDatastatus(true); //客户和联系人都是 逻辑删除
|
||||||
contactsRes.save(contacts) ;
|
contactsRes.save(contacts);
|
||||||
}
|
}
|
||||||
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?p="+p+"&ckind="+contacts.getCkind()));
|
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?p=" + p + "&ckind=" + contacts.getCkind()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/add")
|
@RequestMapping("/add")
|
||||||
@Menu(type = "contacts" , subtype = "add")
|
@Menu(type = "contacts", subtype = "add")
|
||||||
public ModelAndView add(ModelMap map , HttpServletRequest request,@Valid String ckind) {
|
public ModelAndView add(ModelMap map, HttpServletRequest request, @Valid String ckind) {
|
||||||
map.addAttribute("ckind",ckind);
|
map.addAttribute("ckind", ckind);
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/add"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/add"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/save")
|
@RequestMapping("/save")
|
||||||
@Menu(type = "contacts" , subtype = "save")
|
@Menu(type = "contacts", subtype = "save")
|
||||||
public ModelAndView save(HttpServletRequest request , @Valid Contacts contacts) {
|
public ModelAndView save(HttpServletRequest request, @Valid Contacts contacts) {
|
||||||
contacts.setCreater(super.getUser(request).getId());
|
contacts.setCreater(super.getUser(request).getId());
|
||||||
contacts.setOrgi(super.getOrgi(request));
|
contacts.setOrgi(super.getOrgi(request));
|
||||||
contacts.setOrgan(super.getUser(request).getOrgan());
|
contacts.setOrgan(super.getUser(request).getOrgan());
|
||||||
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
||||||
if(StringUtils.isBlank(contacts.getCusbirthday())) {
|
if (StringUtils.isBlank(contacts.getCusbirthday())) {
|
||||||
contacts.setCusbirthday(null);
|
contacts.setCusbirthday(null);
|
||||||
}
|
}
|
||||||
contactsRes.save(contacts) ;
|
contactsRes.save(contacts);
|
||||||
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?ckind="+contacts.getCkind()));
|
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?ckind=" + contacts.getCkind()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/edit")
|
@RequestMapping("/edit")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView edit(ModelMap map , HttpServletRequest request , @Valid String id) {
|
public ModelAndView edit(ModelMap map, HttpServletRequest request, @Valid String id) {
|
||||||
map.addAttribute("contacts", contactsRes.findOne(id));
|
map.addAttribute("contacts", contactsRes.findOne(id));
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/edit"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/edit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/detail")
|
@RequestMapping("/detail")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView detail(ModelMap map , HttpServletRequest request , @Valid String id) {
|
public ModelAndView detail(ModelMap map, HttpServletRequest request, @Valid String id) {
|
||||||
map.addAttribute("contacts", contactsRes.findOne(id)) ;
|
map.addAttribute("contacts", contactsRes.findOne(id));
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/detail"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/detail"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping( "/update")
|
@RequestMapping("/update")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView update(HttpServletRequest request , @Valid Contacts contacts) {
|
public ModelAndView update(HttpServletRequest request, @Valid Contacts contacts) {
|
||||||
Contacts data = contactsRes.findOne(contacts.getId()) ;
|
Contacts data = contactsRes.findOne(contacts.getId());
|
||||||
if(data!=null){
|
if (data != null) {
|
||||||
List<PropertiesEvent> events = PropertiesEventUtils.processPropertiesModify(request, contacts , data , "id" , "orgi" , "creater" ,"createtime" , "updatetime") ; //记录 数据变更 历史
|
List<PropertiesEvent> events = PropertiesEventUtils.processPropertiesModify(request, contacts, data, "id", "orgi", "creater", "createtime", "updatetime"); //记录 数据变更 历史
|
||||||
if(events.size()>0){
|
if (events.size() > 0) {
|
||||||
String modifyid = UKTools.getUUID() ;
|
String modifyid = UKTools.getUUID();
|
||||||
Date modifytime = new Date();
|
Date modifytime = new Date();
|
||||||
for(PropertiesEvent event : events){
|
for (PropertiesEvent event : events) {
|
||||||
event.setDataid(contacts.getId());
|
event.setDataid(contacts.getId());
|
||||||
event.setCreater(super.getUser(request).getId());
|
event.setCreater(super.getUser(request).getId());
|
||||||
event.setOrgi(super.getOrgi(request));
|
event.setOrgi(super.getOrgi(request));
|
||||||
event.setModifyid(modifyid);
|
event.setModifyid(modifyid);
|
||||||
event.setCreatetime(modifytime);
|
event.setCreatetime(modifytime);
|
||||||
propertiesEventRes.save(event) ;
|
propertiesEventRes.save(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,176 +225,176 @@ public class ContactsController extends Handler{
|
|||||||
contacts.setOrgi(super.getOrgi(request));
|
contacts.setOrgi(super.getOrgi(request));
|
||||||
contacts.setOrgan(super.getUser(request).getOrgan());
|
contacts.setOrgan(super.getUser(request).getOrgan());
|
||||||
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
||||||
if(StringUtils.isBlank(contacts.getCusbirthday())) {
|
if (StringUtils.isBlank(contacts.getCusbirthday())) {
|
||||||
contacts.setCusbirthday(null);
|
contacts.setCusbirthday(null);
|
||||||
}
|
}
|
||||||
contactsRes.save(contacts);
|
contactsRes.save(contacts);
|
||||||
}
|
}
|
||||||
|
|
||||||
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?ckind="+contacts.getCkind()));
|
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html?ckind=" + contacts.getCkind()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/imp")
|
@RequestMapping("/imp")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView imp(ModelMap map , HttpServletRequest request,@Valid String ckind) {
|
public ModelAndView imp(ModelMap map, HttpServletRequest request, @Valid String ckind) {
|
||||||
map.addAttribute("ckind",ckind);
|
map.addAttribute("ckind", ckind);
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/imp"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/imp"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/impsave")
|
@RequestMapping("/impsave")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public ModelAndView impsave(ModelMap map , HttpServletRequest request , @RequestParam(value = "cusfile", required = false) MultipartFile cusfile,@Valid String ckind) throws IOException {
|
public ModelAndView impsave(ModelMap map, HttpServletRequest request, @RequestParam(value = "cusfile", required = false) MultipartFile cusfile, @Valid String ckind) throws IOException {
|
||||||
DSDataEvent event = new DSDataEvent();
|
DSDataEvent event = new DSDataEvent();
|
||||||
String fileName = "contacts/"+UKTools.getUUID()+cusfile.getOriginalFilename().substring(cusfile.getOriginalFilename().lastIndexOf(".")) ;
|
String fileName = "contacts/" + UKTools.getUUID() + cusfile.getOriginalFilename().substring(cusfile.getOriginalFilename().lastIndexOf("."));
|
||||||
File excelFile = new File(path , fileName) ;
|
File excelFile = new File(path, fileName);
|
||||||
if(!excelFile.getParentFile().exists()){
|
if (!excelFile.getParentFile().exists()) {
|
||||||
excelFile.getParentFile().mkdirs() ;
|
excelFile.getParentFile().mkdirs();
|
||||||
}
|
}
|
||||||
MetadataTable table = metadataRes.findByTablename("uk_contacts") ;
|
MetadataTable table = metadataRes.findByTablename("uk_contacts");
|
||||||
if(table!=null){
|
if (table != null) {
|
||||||
FileUtils.writeByteArrayToFile(new File(path , fileName), cusfile.getBytes());
|
FileUtils.writeByteArrayToFile(new File(path, fileName), cusfile.getBytes());
|
||||||
event.setDSData(new DSData(table,excelFile , cusfile.getContentType(), super.getUser(request)));
|
event.setDSData(new DSData(table, excelFile, cusfile.getContentType(), super.getUser(request)));
|
||||||
event.getDSData().setClazz(Contacts.class);
|
event.getDSData().setClazz(Contacts.class);
|
||||||
event.getDSData().setProcess(new ContactsProcess(contactsRes));
|
event.getDSData().setProcess(new ContactsProcess(contactsRes));
|
||||||
event.setOrgi(super.getOrgi(request));
|
event.setOrgi(super.getOrgi(request));
|
||||||
/*if(!StringUtils.isBlank(ckind)){
|
/*if(!StringUtils.isBlank(ckind)){
|
||||||
event.getValues().put("ckind", ckind) ;
|
event.getValues().put("ckind", ckind) ;
|
||||||
}*/
|
}*/
|
||||||
event.getValues().put("creater", super.getUser(request).getId()) ;
|
event.getValues().put("creater", super.getUser(request).getId());
|
||||||
reporterRes.save(event.getDSData().getReport()) ;
|
reporterRes.save(event.getDSData().getReport());
|
||||||
new ExcelImportProecess(event).process() ; //启动导入任务
|
new ExcelImportProecess(event).process(); //启动导入任务
|
||||||
}
|
}
|
||||||
|
|
||||||
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html"));
|
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/index.html"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/expids")
|
@RequestMapping("/expids")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public void expids(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String[] ids) throws IOException {
|
public void expids(ModelMap map, HttpServletRequest request, HttpServletResponse response, @Valid String[] ids) throws IOException {
|
||||||
if(ids!=null && ids.length > 0){
|
if (ids != null && ids.length > 0) {
|
||||||
Iterable<Contacts> contactsList = contactsRes.findAll(Arrays.asList(ids)) ;
|
Iterable<Contacts> contactsList = contactsRes.findAll(Arrays.asList(ids));
|
||||||
MetadataTable table = metadataRes.findByTablename("uk_contacts") ;
|
MetadataTable table = metadataRes.findByTablename("uk_contacts");
|
||||||
List<Map<String,Object>> values = new ArrayList<Map<String,Object>>();
|
List<Map<String, Object>> values = new ArrayList<Map<String, Object>>();
|
||||||
for(Contacts contacts : contactsList){
|
for (Contacts contacts : contactsList) {
|
||||||
values.add(UKTools.transBean2Map(contacts)) ;
|
values.add(UKTools.transBean2Map(contacts));
|
||||||
}
|
}
|
||||||
|
|
||||||
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-"+new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".xls");
|
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + ".xls");
|
||||||
|
|
||||||
ExcelExporterProcess excelProcess = new ExcelExporterProcess( values, table, response.getOutputStream()) ;
|
ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream());
|
||||||
excelProcess.process();
|
excelProcess.process();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/expall")
|
@RequestMapping("/expall")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response) throws IOException {
|
public void expall(ModelMap map, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
boolQueryBuilder.must(termQuery("datastatus" , false)) ; //只导出 数据删除状态 为 未删除的 数据
|
boolQueryBuilder.must(termQuery("datastatus", false)); //只导出 数据删除状态 为 未删除的 数据
|
||||||
Iterable<Contacts> contactsList = contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request),null , null , false, boolQueryBuilder , null , new PageRequest(super.getP(request) , super.getPs(request)));
|
Iterable<Contacts> contactsList = contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), null, null, false, boolQueryBuilder, null, new PageRequest(super.getP(request), super.getPs(request)));
|
||||||
|
|
||||||
MetadataTable table = metadataRes.findByTablename("uk_contacts") ;
|
MetadataTable table = metadataRes.findByTablename("uk_contacts");
|
||||||
List<Map<String,Object>> values = new ArrayList<Map<String,Object>>();
|
List<Map<String, Object>> values = new ArrayList<Map<String, Object>>();
|
||||||
for(Contacts contacts : contactsList){
|
for (Contacts contacts : contactsList) {
|
||||||
values.add(UKTools.transBean2Map(contacts)) ;
|
values.add(UKTools.transBean2Map(contacts));
|
||||||
}
|
}
|
||||||
|
|
||||||
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-"+new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".xls");
|
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + ".xls");
|
||||||
|
|
||||||
ExcelExporterProcess excelProcess = new ExcelExporterProcess( values, table, response.getOutputStream()) ;
|
ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream());
|
||||||
excelProcess.process();
|
excelProcess.process();
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/expsearch")
|
@RequestMapping("/expsearch")
|
||||||
@Menu(type = "contacts" , subtype = "contacts")
|
@Menu(type = "contacts", subtype = "contacts")
|
||||||
public void expall(ModelMap map , HttpServletRequest request , HttpServletResponse response , @Valid String q , @Valid String ekind) throws IOException {
|
public void expall(ModelMap map, HttpServletRequest request, HttpServletResponse response, @Valid String q, @Valid String ekind) throws IOException {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
if(!StringUtils.isBlank(q)){
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("q", q) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(ekind)){
|
if (!StringUtils.isBlank(ekind)) {
|
||||||
boolQueryBuilder.must(termQuery("ekind" , ekind)) ;
|
boolQueryBuilder.must(termQuery("ekind", ekind));
|
||||||
map.put("ekind", ekind) ;
|
map.put("ekind", ekind);
|
||||||
}
|
}
|
||||||
|
|
||||||
Iterable<Contacts> contactsList = contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(),super.getOrgi(request), null , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)));
|
Iterable<Contacts> contactsList = contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), null, null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request)));
|
||||||
MetadataTable table = metadataRes.findByTablename("uk_contacts") ;
|
MetadataTable table = metadataRes.findByTablename("uk_contacts");
|
||||||
List<Map<String,Object>> values = new ArrayList<Map<String,Object>>();
|
List<Map<String, Object>> values = new ArrayList<Map<String, Object>>();
|
||||||
for(Contacts contacts : contactsList){
|
for (Contacts contacts : contactsList) {
|
||||||
values.add(UKTools.transBean2Map(contacts)) ;
|
values.add(UKTools.transBean2Map(contacts));
|
||||||
}
|
}
|
||||||
|
|
||||||
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-"+new SimpleDateFormat("yyyy-MM-dd").format(new Date())+".xls");
|
response.setHeader("content-disposition", "attachment;filename=UCKeFu-Contacts-" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + ".xls");
|
||||||
|
|
||||||
ExcelExporterProcess excelProcess = new ExcelExporterProcess( values, table, response.getOutputStream()) ;
|
ExcelExporterProcess excelProcess = new ExcelExporterProcess(values, table, response.getOutputStream());
|
||||||
excelProcess.process();
|
excelProcess.process();
|
||||||
|
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping("/embed/index")
|
@RequestMapping("/embed/index")
|
||||||
@Menu(type = "customer" , subtype = "embed")
|
@Menu(type = "customer", subtype = "embed")
|
||||||
public ModelAndView embed(ModelMap map , HttpServletRequest request , @Valid String q , @Valid String ckind) {
|
public ModelAndView embed(ModelMap map, HttpServletRequest request, @Valid String q, @Valid String ckind) {
|
||||||
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
if(!StringUtils.isBlank(q)){
|
if (!StringUtils.isBlank(q)) {
|
||||||
map.put("q", q) ;
|
map.put("q", q);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank(ckind)){
|
if (!StringUtils.isBlank(ckind)) {
|
||||||
boolQueryBuilder.must(termQuery("ckind" , ckind)) ;
|
boolQueryBuilder.must(termQuery("ckind", ckind));
|
||||||
map.put("ckind", ckind) ;
|
map.put("ckind", ckind);
|
||||||
}
|
}
|
||||||
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request),null , null , false, boolQueryBuilder ,q , new PageRequest(super.getP(request) , super.getPs(request)))) ;
|
map.addAttribute("contactsList", contactsRes.findByCreaterAndSharesAndOrgi(super.getUser(request).getId(), super.getUser(request).getId(), super.getOrgi(request), null, null, false, boolQueryBuilder, q, new PageRequest(super.getP(request), super.getPs(request))));
|
||||||
|
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/index"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/index"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/embed/add")
|
@RequestMapping("/embed/add")
|
||||||
@Menu(type = "contacts" , subtype = "embedadd")
|
@Menu(type = "contacts", subtype = "embedadd")
|
||||||
public ModelAndView embedadd(ModelMap map , HttpServletRequest request) {
|
public ModelAndView embedadd(ModelMap map, HttpServletRequest request) {
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/add"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/add"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping( "/embed/save")
|
@RequestMapping("/embed/save")
|
||||||
@Menu(type = "contacts" , subtype = "embedsave")
|
@Menu(type = "contacts", subtype = "embedsave")
|
||||||
public ModelAndView embedsave(HttpServletRequest request , @Valid Contacts contacts) {
|
public ModelAndView embedsave(HttpServletRequest request, @Valid Contacts contacts) {
|
||||||
contacts.setCreater(super.getUser(request).getId());
|
contacts.setCreater(super.getUser(request).getId());
|
||||||
contacts.setOrgi(super.getOrgi(request));
|
contacts.setOrgi(super.getOrgi(request));
|
||||||
contacts.setOrgan(super.getUser(request).getOrgan());
|
contacts.setOrgan(super.getUser(request).getOrgan());
|
||||||
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
||||||
if(StringUtils.isBlank(contacts.getCusbirthday())) {
|
if (StringUtils.isBlank(contacts.getCusbirthday())) {
|
||||||
contacts.setCusbirthday(null);
|
contacts.setCusbirthday(null);
|
||||||
}
|
}
|
||||||
contactsRes.save(contacts) ;
|
contactsRes.save(contacts);
|
||||||
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/embed/index.html"));
|
return request(super.createRequestPageTempletResponse("redirect:/apps/contacts/embed/index.html"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/embed/edit")
|
@RequestMapping("/embed/edit")
|
||||||
@Menu(type = "contacts" , subtype = "embededit")
|
@Menu(type = "contacts", subtype = "embededit")
|
||||||
public ModelAndView embededit(ModelMap map , HttpServletRequest request , @Valid String id) {
|
public ModelAndView embededit(ModelMap map, HttpServletRequest request, @Valid String id) {
|
||||||
map.addAttribute("contacts", contactsRes.findOne(id)) ;
|
map.addAttribute("contacts", contactsRes.findOne(id));
|
||||||
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/edit"));
|
return request(super.createRequestPageTempletResponse("/apps/business/contacts/embed/edit"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping( "/embed/update")
|
@RequestMapping("/embed/update")
|
||||||
@Menu(type = "contacts" , subtype = "embedupdate")
|
@Menu(type = "contacts", subtype = "embedupdate")
|
||||||
public ModelAndView embedupdate(HttpServletRequest request , @Valid Contacts contacts) {
|
public ModelAndView embedupdate(HttpServletRequest request, @Valid Contacts contacts) {
|
||||||
Contacts data = contactsRes.findOne(contacts.getId()) ;
|
Contacts data = contactsRes.findOne(contacts.getId());
|
||||||
if(data!=null){
|
if (data != null) {
|
||||||
List<PropertiesEvent> events = PropertiesEventUtils.processPropertiesModify(request, contacts , data , "id" , "orgi" , "creater" ,"createtime" , "updatetime") ; //记录 数据变更 历史
|
List<PropertiesEvent> events = PropertiesEventUtils.processPropertiesModify(request, contacts, data, "id", "orgi", "creater", "createtime", "updatetime"); //记录 数据变更 历史
|
||||||
if(events.size()>0){
|
if (events.size() > 0) {
|
||||||
String modifyid = UKTools.getUUID() ;
|
String modifyid = UKTools.getUUID();
|
||||||
Date modifytime = new Date();
|
Date modifytime = new Date();
|
||||||
for(PropertiesEvent event : events){
|
for (PropertiesEvent event : events) {
|
||||||
event.setDataid(contacts.getId());
|
event.setDataid(contacts.getId());
|
||||||
event.setCreater(super.getUser(request).getId());
|
event.setCreater(super.getUser(request).getId());
|
||||||
event.setOrgi(super.getOrgi(request));
|
event.setOrgi(super.getOrgi(request));
|
||||||
event.setModifyid(modifyid);
|
event.setModifyid(modifyid);
|
||||||
event.setCreatetime(modifytime);
|
event.setCreatetime(modifytime);
|
||||||
propertiesEventRes.save(event) ;
|
propertiesEventRes.save(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,7 +403,7 @@ public class ContactsController extends Handler{
|
|||||||
contacts.setOrgi(super.getOrgi(request));
|
contacts.setOrgi(super.getOrgi(request));
|
||||||
contacts.setOrgan(super.getUser(request).getOrgan());
|
contacts.setOrgan(super.getUser(request).getOrgan());
|
||||||
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
contacts.setPinyin(PinYinTools.getInstance().getFirstPinYin(contacts.getName()));
|
||||||
if(StringUtils.isBlank(contacts.getCusbirthday())) {
|
if (StringUtils.isBlank(contacts.getCusbirthday())) {
|
||||||
contacts.setCusbirthday(null);
|
contacts.setCusbirthday(null);
|
||||||
}
|
}
|
||||||
contactsRes.save(contacts);
|
contactsRes.save(contacts);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user