Commit 5bde56a4 authored by 徐州's avatar 徐州

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	house365-hgs-ws/src/main/resources/development/mybatis/CustomerMergeMapper.xml
#	house365-hgs-ws/src/main/resources/test/mybatis/CustomerMergeMapper.xml
parents 2e896941 73385a63
......@@ -19,6 +19,7 @@ public class DutyStaffEntity extends DomainObject {
private String userId;
private String onduty;
private Date updateTime;
private Integer order;
public Date getUpdateTime() {
return updateTime;
......@@ -51,4 +52,12 @@ public class DutyStaffEntity extends DomainObject {
public void setOnduty(String onduty) {
this.onduty = onduty;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
}
......@@ -15,7 +15,7 @@
<sitemesh.version>2.4.2</sitemesh.version>
<jackson.version>2.4.4</jackson.version>
<swagger.version>0.9.4</swagger.version>
<shiro.version>1.2.5</shiro.version>
<shiro.version>1.7.0</shiro.version>
<house365.version>1.0.0-SNAPSHOT</house365.version>
<jdk.version>1.8</jdk.version>
</properties>
......
......@@ -172,6 +172,14 @@ public class CloudActivityController extends BaseController {
return "----------addCloudActivityNew success---------";
}
@RequestMapping(value = "/addCloudActivity")
@ResponseBody
public String addCloudActivity() {
activityInterface.addCloudActivity();
System.out.println("----------添加云迹活动成功---------");
return "----------addCloudActivity success---------";
}
@RequestMapping(value = "/updateStatus")
@ResponseBody
public String updateStatus() {
......
......@@ -24,6 +24,7 @@ import com.house365.beans.vo.CustomerProjectStatusDetailVo;
import com.house365.beans.vo.CustomerProjectStatusProgressVo;
import com.house365.beans.vo.CustomerProjectVo;
import com.house365.beans.vo.CustomerVo;
import com.house365.rest.exception.IllegalServiceParameterException;
import com.house365.rest.exception.ServiceRunException;
import com.house365.rest.parameter.House365RestObject;
import com.house365.rest.parameter.House365RestResponse;
......@@ -34,8 +35,10 @@ import com.house365.ws.beans.request.*;
import com.house365.ws.beans.response.*;
import com.house365.ws.beans.util.HResult;
import com.house365.ws.interfaces.server.*;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.collections.CollectionUtils;
import org.apache.http.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -52,6 +55,7 @@ import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -3038,6 +3042,7 @@ public class CustomerController extends BaseController {
}
}
//查询回访记录
cpMap.put("customerId", customerEntity.getId());
List<CustomerCallbackLogEntity> backLogList = customerCallbackLog.queryByConditions(cpMap);
......@@ -3167,6 +3172,151 @@ public class CustomerController extends BaseController {
return getAutoUrl("transferCreator");
}
/**
* 获取批量转移客户人员列表
* @param model
* @param request
* @return
*/
@RequestMapping(value = "batchQuery", method = RequestMethod.GET)
public String batchQuery(Model model, HttpServletRequest request) {
String mobilesStr = request.getParameter("mobiles");
if(TextUtils.isEmpty(mobilesStr)) {
return getAutoUrl();
}
model.addAttribute("mobiles", mobilesStr);
String[] mobiles = mobilesStr.split("\r\n");
List<String> phoneList = Arrays.stream(mobiles).distinct().map(i->i.trim()).filter(i -> !TextUtils.isEmpty(i)).collect(Collectors.toList());
if(mobiles.length > 100) {
addErrorMessage(model, "最多可搜索100个手机号");
return getAutoUrl();
}
/**
* 公海
*/
List<String> ghPhones = customer.getExistByPhone(phoneList,0).stream().map(i-> i.getPhone()).collect(Collectors.toList());
/**
* 待派
*/
List<String> dpPhones = new ArrayList<>();
//待派1:客户营销
List<String> dpKhyx = marketCustomer.getExistPhone(phoneList);
dpPhones.addAll(dpKhyx);
//待派2:云迹
List<String> dpYj = cloudCustomerInterface.getExistByPhone(phoneList,0);
dpPhones.addAll(dpYj);
// 待派3:公海CRM导入
List<String> dpGh = customer.getExistByPhone(phoneList,1).stream().map(i-> i.getPhone()).collect(Collectors.toList());
dpPhones.addAll(dpGh);
dpPhones = dpPhones.stream().distinct().collect(Collectors.toList());
/**
* 私客
*/
List<String> skPhones = new ArrayList<>();
List<CustomerEntity> skkh = customer.getExistByPhone(phoneList, 3);
List<CustomerEntity> skdhf = customer.getExistByPhone(phoneList, 2);
for (int i = 0; i < skkh.size(); i++) {
if(getBackSeaTime(request,skkh.get(i)) > System.currentTimeMillis()) {
skPhones.add(skkh.get(i).getPhone());
} else if(!ghPhones.contains(skkh.get(i).getPhone())) {
ghPhones.add(skkh.get(i).getPhone());
}
}
for (int i = 0; i < skdhf.size(); i++) {
if(getBackSeaTime(request,skdhf.get(i)) > System.currentTimeMillis()) {
skPhones.add(skdhf.get(i).getPhone());
} else if(!ghPhones.contains(skdhf.get(i).getPhone())) {
ghPhones.add(skdhf.get(i).getPhone());
}
}
// skPhones.addAll(customer.getExistByPhone(phoneList,3));
// 待回访
// skPhones.addAll(customer.getExistByPhone(phoneList,2));
skPhones = skPhones.stream().distinct().collect(Collectors.toList());
/**
* 判断重复数据
*/
final List<String> sk = new ArrayList<>(skPhones);
final List<String> gh = new ArrayList<>(ghPhones);
final List<String> dp = new ArrayList<>(dpPhones);
dpPhones = dpPhones.stream().map(i-> {
if(sk.contains(i) || gh.contains(i)) {
return i+ "(多客户池)";
}
return i;
}).collect(Collectors.toList());
skPhones = skPhones.stream().map(i-> {
if(dp.contains(i) || gh.contains(i)) {
return i+ "(多客户池)";
}
return i;
}).collect(Collectors.toList());
ghPhones = ghPhones.stream().map(i-> {
if(dp.contains(i) || sk.contains(i)) {
return i+ "(多客户池)";
}
return i;
}).collect(Collectors.toList());
if(dpPhones != null) {
StringBuilder dpSb = new StringBuilder();
dpPhones.stream().forEach(i-> {
dpSb.append(i).append("\r\n");
});
phoneList.removeAll(dp);
model.addAttribute("dpPhones",dpSb.toString());
}
if(skPhones != null) {
StringBuilder skSb = new StringBuilder();
skPhones.stream().forEach(i-> {
skSb.append(i).append("\r\n");
});
phoneList.removeAll(sk);
model.addAttribute("skPhones",skSb.toString());
}
if(ghPhones != null) {
StringBuilder ghSb = new StringBuilder();
ghPhones.stream().forEach(i-> {
ghSb.append(i).append("\r\n");
});
phoneList.removeAll(gh);
model.addAttribute("ghPhones",ghSb.toString());
}
if(phoneList != null) {
StringBuilder qtSb = new StringBuilder();
phoneList.stream().forEach(i-> {
qtSb.append(i).append("\r\n");
});
model.addAttribute("qtPhones",qtSb.toString());
}
model.addAttribute("dpSize",dpPhones == null ? 0 : dpPhones.size());
model.addAttribute("skSize",skPhones == null ? 0 : skPhones.size());
model.addAttribute("ghSize",ghPhones == null ? 0 : ghPhones.size());
model.addAttribute("qtSize",phoneList.size());
return getAutoUrl();
}
/**
* 批量转移平台客户创建人
* @param request
......@@ -3193,4 +3343,54 @@ public class CustomerController extends BaseController {
return restResponse;
}
public long getBackSeaTime(HttpServletRequest request,CustomerEntity customerEntity) {
UserEntity userEntity = (UserEntity) request.getSession().getAttribute(SessionConstants.THREAD_USER_KEY);
DepartmentEntity departmentEntity = (DepartmentEntity) request.getSession().getAttribute(
SessionConstants.SESSION_CURRNET_DEPT_KEY);
String cityId = departmentEntity.getCityID();
DepartmentResponse departmentResponse = department.getDepartmentById(Integer.valueOf(cityId));
String cityCode = departmentResponse.getEntity().getDescripition();
customerEntity = customer.getCustomerMerge(customerEntity.getPhone(),customerEntity.getManagerId());
if(customerEntity == null) return 0;
//根据新的客户id获取旧表中的id
Map<String, Object> idMap = new HashMap<>(10);
idMap.put("phone", customerEntity.getPhone());
idMap.put("managerId", customerEntity.getManagerId());
idMap.put("isPrivate", 1);
List<CustomerEntity> oldList = customer.queryByConditions(idMap);
List<Integer> customerIdList = new ArrayList<>();
customerIdList.add(Integer.valueOf(customerEntity.getId()));
if (CollectionUtils.isNotEmpty(oldList)) {
for (CustomerEntity e : oldList) {
customerIdList.add(e.getId());
}
}
//查询约看项目
Map<String, Object> cpMap = new HashMap<>(10);
cpMap.put("idList", customerIdList);
List<CustomerProjectEntity> cpList = customerProject.queryList(cpMap);
//查询回访记录
List<CustomerCallbackLogEntity> backLogList = customerCallbackLog.queryByConditions(cpMap);
// 客户详情展示退回公海时间
boolean displayBackToSeaDate = false;
Calendar backToSeaCal = Calendar.getInstance();
userEntity.setCity(customerEntity.getCityCode());
int visitCount = 0;
displayBackToSeaDate = DictUtil.getBackToSeaTime(customerEntity, userEntity, cpList, backToSeaCal, visitCount, backLogList, displayBackToSeaDate);
if (displayBackToSeaDate) {
return backToSeaCal.getTime().getTime();
}
return 0;
}
}
package com.house365.web.controller;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
import com.house365.beans.entity.*;
import com.house365.beans.system.Page;
......@@ -65,6 +66,22 @@ public class PlatformManagementController extends BaseController {
// 获取查询条件
Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, "search_");
//多选来源放回去
if(searchParams.containsKey("EQ_actSources")) {
Object act = searchParams.get("EQ_actSources");
List<String> list = new ArrayList<>();
if(act instanceof String[]) {
String[] EQ_actSource = (String[]) act;
model.addAttribute("selected", Arrays.toString(EQ_actSource));
Arrays.stream(EQ_actSource).forEach(i-> list.add(i));
} else {
model.addAttribute("selected", act.toString());
list.add(act.toString());
}
searchParams.put("EQ_actSources", list);
}
Page page = new Page(pageSize == null ? 100 : pageSize);
if (null != number) {
page.setCurrentPage(number);
......
......@@ -24,6 +24,7 @@ import net.sf.json.processors.DefaultValueProcessor;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -39,6 +40,7 @@ import org.springside.modules.web.Servlets;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
/**
* 账户控制器<br>
......@@ -519,7 +521,7 @@ public class UserController extends BaseController {
UserEntity userEntity = (UserEntity) httpRequest.getSession().getAttribute(SessionConstants.THREAD_USER_KEY);
//获取更新前用户信息
UserEntity oldEntity = user.getById(entity.getId());
UserEntity tempOldEntity=(UserEntity)oldEntity.clone();
UserEntity tempOldEntity = (UserEntity) oldEntity.clone();
oldEntity.setUpdateUserid(entity.getId());
oldEntity.setUpdateUsername(entity.getName());
oldEntity.setUpdateTime(new Date());
......@@ -556,7 +558,7 @@ public class UserController extends BaseController {
//改变用户名需要同步给im
String env = MemoryPropertyPlaceholderConfigurer.getContextProperty("system.env");
if ("production".equalsIgnoreCase(env) && !oldEntity.getRealName().equals(entity.getRealName())) {
if(org.apache.commons.lang.StringUtils.isNotBlank(oldEntity.getAccId())){
if (org.apache.commons.lang.StringUtils.isNotBlank(oldEntity.getAccId())) {
String token = getImToken();
List<NameValuePair> cornetInParam = new ArrayList<>();
cornetInParam.add(new BasicNameValuePair("accid", oldEntity.getAccId()));
......@@ -567,32 +569,33 @@ public class UserController extends BaseController {
}
//获取用户的头像
AttachmentListResponse headImgRes = attachmentInterface.queryByResourceIdAndResouceType(String.valueOf(id), "hgs_user_headImg");
String headImgURL=null;
String headImgURL = null;
if (null != headImgRes.getObjectList() && !headImgRes.getObjectList().isEmpty()) {
BaseAttachment attachment = (BaseAttachment) headImgRes.getObjectList().get(0);
headImgURL=attachment.getRemotePath();
headImgURL = attachment.getRemotePath();
}
//调用团立方接口,同步修改的数据团立方,修改手机号或者姓名才发送数据
JsonConfig jsonConfig=new JsonConfig();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerDefaultValueProcessor(Integer.class, new DefaultValueProcessor() {
@Override
public Object getDefaultValue(Class type) {
return null;
}});
}
});
jsonConfig.registerDefaultValueProcessor(String.class, new DefaultValueProcessor() {
@Override
public Object getDefaultValue(Class type) {
return null;
}
});
if(!entity.getRealName().equals(tempOldEntity.getRealName())||!entity.getMobile().equals(tempOldEntity.getMobile())) {
MessageDto mdto=new MessageDto();
if (!entity.getRealName().equals(tempOldEntity.getRealName()) || !entity.getMobile().equals(tempOldEntity.getMobile())) {
MessageDto mdto = new MessageDto();
mdto.setUserId(entity.getId());
mdto.setAccid(oldEntity.getAccId());
mdto.setName(entity.getRealName());
mdto.setTel(entity.getMobile());
mdto.setAvatar(headImgURL);
String messObj = JSONObject.fromObject(mdto,jsonConfig).toString();
String messObj = JSONObject.fromObject(mdto, jsonConfig).toString();
logger.info("******SYNC_TO_TRL*******" + messObj);
String res = HttpClientUtil.doPostJson(tlfSendMessageUrl, messObj, "");
logger.info("******SYNC_TO_TRL_RESULT*******" + res);
......@@ -650,13 +653,14 @@ public class UserController extends BaseController {
searchMap.put("managerId", userEntity.getId());
searchMap.put("isPrivate", 1);
searchMap.put("limit", 1);
searchMap.put("is_delete",0);
int count = customer.queryCount(searchMap);
if (count > 0) {
userVo.setHasCustomers(true);
}
//针对该用户在平台管理中是否有客户进行判断设置值
int countInfo = customer.queryCountById(userEntity.getId());
userVo.setHasCustomersInPlatform(countInfo>0);
userVo.setHasCustomersInPlatform(countInfo > 0);
lstUserVo.add(userVo);
}
}
......@@ -1126,20 +1130,21 @@ public class UserController extends BaseController {
* @param id 账户页面表单对象唯一标识
* @return 用户的绑定信息结果
*/
@RequestMapping(value = "/bindPeople/{id}",method = RequestMethod.GET)
@RequestMapping(value = "/bindPeople/{id}", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public HResult getBindPeopleInfo(@PathVariable String id) {
HResult result = new HResult();
try {
Map<String, String> paramMap =new HashMap<>();
paramMap.put("userId",id);
Map<String, String> paramMap = new HashMap<>();
paramMap.put("userId", id);
//通过http调用接口获取用户绑定楼盘信息
String res=HttpUtil.simpleGet(tlfBandPeopleUrl,paramMap,null);
HResult finalInfo=JSON.parse(res,HResult.class);
String res = HttpUtil.simpleGet(tlfBandPeopleUrl, paramMap, null);
HResult finalInfo = JSON.parse(res, HResult.class);
result.setStatus(finalInfo.getStatus());
result.setData(finalInfo.getData());
logger.info(id+" bindpeopleInfo:"+finalInfo.getData());
logger.info(id + " bindpeopleInfo:" + finalInfo.getData());
} catch (Exception e) {
result.setStatus(-1);
result.setErrorMessage("获取绑定用户信息失败");
......@@ -1148,4 +1153,123 @@ public class UserController extends BaseController {
}
return result;
}
@RequestMapping(value = "pblist", method = RequestMethod.GET)
public String pbList(HttpServletRequest request, Model model) {
//共多少条数据,今日新增多少条
String cityCode = (String) request.getSession().getAttribute(SessionConstants.SESSION_CITY_KEY);
if (cityCode.equals("zb")) {
return getAutoUrl("pblist");
}
List<UserEntity> users = this.user.getDutyUserByCity(cityCode);
List<UserVo> collect = users.stream().map(i -> {
UserVo userVo = new UserVo();
userVo.setEntity(i);
return userVo;
}).collect(Collectors.toList());
model.addAttribute("users", collect);
return getAutoUrl("pblist");
}
@RequestMapping(value = "/deleteDutyById/{userId}")
public void deleteDutyById(@PathVariable Integer userId) {
//共多少条数据,今日新增多少条
user.deleteDutyById(userId);
}
/**
* 新增的时候通过city查询用户
*
* @param model
* @param request
* @return
*/
@RequestMapping(value = "/userByCity")
public String userByCity(Model model, HttpServletRequest request) {
String cityCode = (String) request.getSession().getAttribute(SessionConstants.SESSION_CITY_KEY);
List<UserEntity> userByCity = user.getUserByCity(cityCode);
model.addAttribute("userByCity", userByCity);
return getAutoUrl("plform");
}
@RequestMapping(value = "/addDuty")
public String addDuty(Model model,HttpServletRequest request) {
String cityCode = (String) request.getSession().getAttribute(SessionConstants.SESSION_CITY_KEY);
List<UserEntity> userByCity = user.getUserByCity(cityCode);
model.addAttribute("userByCity", userByCity);
String action = request.getParameter("action");
if(TextUtils.isEmpty(action)) {
return getAutoUrl("pbform");
}
boolean edit = "edit".equals(action);
String order = request.getParameter("order");
String uid = request.getParameter(edit ? "eid" : "uid");
if(!edit && "0".equals(uid)) {
addErrorMessage(model, "请选择员工");
return getAutoUrl("pbform");
}
int i = 0;
try {
i = Integer.parseInt(order);
}catch (Exception e) {
addErrorMessage(model, "排序值必须是数字");
return getAutoUrl("pbform");
}
if(i < 1 || i > 100) {
addErrorMessage(model, "排序值需要在1-100之间");
return getAutoUrl("pbform");
}
if(!edit) {
List<DutyStaffEntity> ondutyById = user.getOndutyById(Integer.parseInt(uid));
if(ondutyById != null && ondutyById.size() > 0) {
addErrorMessage(model, "该员工已在排班表,不可重复添加");
return getAutoUrl("pbform");
}
}
List<UserEntity> dutyUserByCity = user.getDutyUserByCity(cityCode);
if(dutyUserByCity != null) {
List<UserEntity> collect = dutyUserByCity.stream().filter(ii -> order.trim().equals(ii.getStatus().toString())).collect(Collectors.toList());
if(collect.size() > 0) {
addErrorMessage(model, "排序值重复,无法"+(edit ? "修改":"添加"));
return getAutoUrl("pbform");
}
}
List<UserEntity> users = userByCity.stream().filter(ii -> uid.equals(ii.getId().toString())).collect(Collectors.toList());
if(users == null || users.size() == 0) {
addErrorMessage(model, "该员工不存在");
return getAutoUrl("pbform");
}
if(edit) {
user.updateDuty(i, Integer.parseInt(uid));
} else {
user.addDuty(users.get(0), i);
}
addSuccessMessage(model,(edit ? "修改":"添加") + "成功");
return getAutoUrl("pbform");
}
@RequestMapping(value = "/pbelist/{userId}")
public String pbelist(Model model, @PathVariable Integer userId) {
DutyStaffEntity entity = user.pbelist(userId);
model.addAttribute("entity", entity);
return getAutoUrl("pleform");
}
@RequestMapping(value = "/updateDuty/{userId}/{order}")
public void updateDuty( @PathVariable Integer userId, @PathVariable Integer order) {
user.updateDuty(order, userId);
}
}
......@@ -85,6 +85,9 @@
<shiro:hasPermission name="ZYBG">
<li><a href="${ctx}/propertyreport/list">我的置业报告</a></li>
</shiro:hasPermission>
<shiro:hasPermission name="KHCX">
<li><a href="${ctx}/customer/batchQuery">客户查询</a></li>
</shiro:hasPermission>
</ul>
</li>
</shiro:hasPermission>
......@@ -296,6 +299,9 @@
<shiro:hasPermission name="PLZYKH">
<li><a href="${ctx}/transfercustomer">批量转移客户</a></li>
</shiro:hasPermission>
<shiro:hasPermission name="PBGL">
<li><a href="${ctx}/user/pblist">排班管理</a></li>
</shiro:hasPermission>
</ul>
</li>
......
......@@ -53,12 +53,17 @@
<pattern>/basetree/transferNode</pattern>
</decorator>
<decorator name="userSiteMesh" page="userSiteMesh.jsp">
<pattern>/user/*</pattern>
</decorator>
<decorator name="userDetailSiteMesh" page="default.jsp">
<pattern>/user/detail*</pattern>
<pattern>/user/pblist*</pattern>
<pattern>/user/pleform*</pattern>
<pattern>/user/pbform*</pattern>
</decorator>
<decorator name="userSiteMesh" page="userSiteMesh.jsp">
<pattern>/user/*</pattern>
</decorator>
<decorator name="deptSiteMesh" page="userSiteMesh.jsp">
......
<%@include file="/WEB-INF/common/layouts/common.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>客户查询</title>
<style>
.frm{
}
.frm label{
display: flex;
align-items: center;
justify-content: flex-end;
}
.frm label .ico{
width:16px;
height:16px;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACB0lEQVQ4T6WTMWhUQRCG/9mrtbIwamEnimgRQQUTsMkVoqiolRGtRLB8O3tX6VX3dvfBERDEKmKsVIJoFZuIChowhSKKnYWihZXKdbsj+3grz0sjuMXbnZ3Zf4aZ7xH+c9Hk++FwuLPT6Vwhot0iMp38RLQuIh9CCDf7/f6n9pu/BJxzFwHcIKJlEXksIi8bgcNEdFxETgO4ysy3s8gfAefcDIBnAM4x8/0U4Jw7m/YJ+x6AWWZ+XounT1VVW2KMH5VSc0VRrDePV0VkU1PBT2Y+2sROxxifKKV2FUXxvRZwznkAm5n5crKttfNEdIqZU8nJvxpCGPT7/aeNfQvAD2bWWWBFRO4aY5ZSwGg0mgohbMvVWGtfA1jI/ibBeWbu1gLW2m8xxkOTHU4+7/21GOPceDzuDgaDX+kuTUop9coYszVX8EVEDhpjPrdHVJblrFJqmYiOaa3Xss9au4OI1ph5ey3gvX8kIku5263A6+lsjKn3vNJ0iGhea30iV2CJaEprfaEdWFXVnmQXRfG+fe+9vyMiX5nZ1AINfe8AXGpXUZZlN/l7vd5KOzuAxRDC3tSzNkiJwkWl1IHcfe99DZTWugaqqqrEQJpISlTTOIlyovEhgAci8iLGWNOmlJohoiMAzgA4mSncINBkSVQaAPtEZH9D4hsAb5VSNtHX7seGv7Ht/Jfzb2MR+RGfG8h4AAAAAElFTkSuQmCC');
background-size: 16px 16px;
position: relative;
margin:0 10px;
}
.frm label .ico text{
display: none;
position: absolute;
background-color: rgba(0,0,0,.7);
color:#fff;
font-size:14px;
white-space:nowrap;
left:50%;
top:-36px;
transform: translate3d(-50%,0,0);
padding:5px;
border-radius: 2px;
}
.frm label .ico:hover text{
display: inline-block;
}
.frm label .ico text::after{
left:50%;
margin-left:-6px;
bottom:-6px;
content: '';
position: absolute;
width: 0;
height: 0;
border-top: 6px solid rgba(0,0,0,.7);
border-right: 6px solid transparent;
border-left: 6px solid transparent;
}
</style>
</head>
<body>
<div class="container" style="width: 1200px;">
<form id="input_form" class="form-horizontal valid"
action="${ctx}/customer/batchQuery"
method="get">
<house365:flushMessage/>
<div class="row${fluid}">
<div>
<div class="form-horizontal house365Page">
<div class="house365Border">
<!-- 片段头 begin -->
<div class="sectionTitle">
<h5>客户查询</h5>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">手机号:</label>
<div class="controls">
<textarea rows="10" cols="200" id="mobiles" style="width: 200%" placeholder="请输入手机号码,一行一个"
name="mobiles" class="required">${mobiles}</textarea>
</div>
</div>
</div>
<button class="btn blue" type="submit"><i
class="icon-search"></i>&nbsp;查询
</div>
</div>
</div>
</div>
</form>
<br/>
<div class="row${fluid}">
<div>
<div class="form-horizontal house365Page">
<div class="house365Border">
<!-- 片段头 begin -->
<div class="sectionTitle">
<h5>查询结果</h5>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">公海(${ghSize}):</label>
<div class="controls">
<textarea rows="5" id="ghmobiles" style="width: 200%"
name="ghmobiles" class="required">${ghPhones}</textarea>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">私客池(${skSize}):</label>
<div class="controls">
<textarea rows="5" id="skmobiles" style="width: 200%"
name="skmobiles" class="required">${skPhones}</textarea>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">待派工(${dpSize}):</label>
<div class="controls">
<textarea rows="5" id="tpmobiles" style="width: 200%"
name="tpmobiles" class="required">${dpPhones}</textarea>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group frm">
<label class="control-label">其他(${qtSize}):<div class="ico"><text>未进入系统的用户</text></div></label>
<div class="controls">
<textarea rows="5" id="qtmobiles" style="width: 200%"
name="qtmobiles" class="required">${qtPhones}</textarea>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
function batchQuery() {
/* var $form = $("#input_form");
$.ajax({
url: $form.attr("action")+"?222=111",
type: "GET",
data: $form.serialize(),
success: function (data) {
alert(111);
}
}); */
}
</script>
</div>
</body>
</html>
<%@include file="/WEB-INF/common/layouts/common.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<html>
<head>
<c:if test="${not empty managerName}">
......@@ -207,7 +208,6 @@
.chosen-container {
margin-left: 7px !important;
width: 96px !important;
}
.shouc {
......@@ -233,6 +233,7 @@
text-overflow: ellipsis;
margin-left: -3px;
}
</style>
<!-- 面包屑 begin -->
......@@ -438,12 +439,13 @@
name="search_LIKE_createrName" value="${param['search_LIKE_createrName']}"
class="m-wrap small" placeholder="请输入添加人姓名">&nbsp;
<br/>
活动来源:
<select width: 6rem name="search_EQ_actSource" id="search_EQ_actSource">
<select name="search_EQ_actSources" id="search_EQ_actSources" multiple="true" class="">
<c:forEach items="${sources}" var="source">
<option value="${source.sourceName}"
<c:if test="${source.sourceName eq param['search_EQ_actSource']}">selected="selected"</c:if>>${source.sourceName}</option>
<c:if test="${fn:contains(selected,source.sourceName)}">selected="selected"</c:if>>${source.sourceName}</option>
<%-- <c:if test="${source.sourceName eq param['search_EQ_actSource']}"></c:if>>${source.sourceName}</option>--%>
</c:forEach>
</select>
......@@ -1177,8 +1179,8 @@
$("#search_EQ_isPtStar").val("1");
$("#search_EQ_isPtStar").trigger('chosen:updated');
// 重置活动来源
$("#search_EQ_actSource").val("");
$("#search_EQ_actSource").trigger('chosen:updated');
$("#search_EQ_actSources").val("");
$("#search_EQ_actSources").trigger('chosen:updated');
// 重置添加时间 近7天 开始时间结束时间
createTimeClick('0');
......
......@@ -87,21 +87,27 @@
//单选
function checkMember(btn) {
if (btn.checked) {
var checkAll = true;
if(btn.checked) {
for (i = 0; i < document.all("memberCheck").length; i++) {
if (document.all("memberCheck")[i].checked == false) {
checkAll = false;
}
}
if (checkAll) {
document.getElementById("memberCheckAll").checked = true;
}
}
else {
document.getElementById("memberCheckAll").checked = false;
}
document.all("memberCheck")[i].checked = false;
}
btn.checked = true;
}
// if (btn.checked) {
// var checkAll = true;
// for (i = 0; i < document.all("memberCheck").length; i++) {
// if (document.all("memberCheck")[i].checked == false) {
// checkAll = false;
// }
// }
//
// if (checkAll) {
// document.getElementById("memberCheckAll").checked = true;
// }
// }
// else {
// document.getElementById("memberCheckAll").checked = false;
// }
}
var authorizeById = function (selectedId) {
......
......@@ -115,8 +115,8 @@
<div class="row${fluid}">
<div class="span12">
<form id="filterForm" class="form-inline filterForm" action="${ctx}/user/" method="get">
<%--<input type="hidden" name="search_EQ_deptId" value="${sessionTreeDept}"--%>
<%--class="m-wrap small span2" placeholder="deptId">--%>
<input type="hidden" name="search_EQ_deptId" value="${sessionTreeDept}"
class="m-wrap small span2" placeholder="deptId">
<%--<input type="text" name="search_EQ_id" value="${param['search_EQ_id']}"--%>
<%--class="m-wrap small span2" placeholder="用户ID">--%>
<input type="text" name="search_LIKE_name" value="${param['search_LIKE_name']}"
......
<%@include file="/WEB-INF/common/layouts/common.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>排班新增/编辑</title>
</head>
<style type="text/css">
.img-show {
width: 160px;
height: 120px;
border: 1px solid #ccc;
padding: 2px;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
}
</style>
<body>
<div class="container" style="width: 1200px;">
<!-- 面包屑 begin -->
<div class="row-fluid">
<div class="span12">
<ul class="breadcrumb">
<li class="active"><span class="divider" style="color:#26a0da;font-weight:bold;">/</span>排班新增/编辑</li>
</ul>
</div>
</div>
<!-- 面包屑 begin -->
<form id="input_form" class="form-horizontal valid" action="${ctx}/user/addDuty"
method="get">
<!-- 面包屑 end -->
<house365:flushMessage/>
<div class="row${fluid}">
<div class="span12">
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">选择员工<span style="color: red;">*</span>:</label>
<div class="controls">
<c:if test="${not empty param.eid}">
<input type="text" style="display: none" name="eid" value="${param.eid}"/>
</c:if>
<input type="text" style="display: none" name="action" value="${empty param.eid ? 'add' : "edit"}"/>
<select name="uid" id="select" <c:if test="${not empty param.eid}">disabled</c:if> >
<option value="0">==请选择==</option>
<c:forEach items="${userByCity}" var="var" varStatus="vs">
<option value="${var.id}" <c:if test="${var.id eq param.eid}">selected="selected"</c:if>> ${var.realName} ${var.position}</option>
</c:forEach>
</select>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">排序值<span style="color: #ff0000;">*</span>:</label>
<div class="controls">
<input type="text" id="order"
name="order" class="required" maxlength="64"
value="${param.order}"/>
</div>
</div>
</div>
<div class="portlet-header">
<div class="row-fluid">
<div class="operation-btn span18">
<a href="${ctx}/user/pblist" class="btn gray"><i
class="icon-mail-reply"></i>&nbsp;返回</a>
<button class="btn blue btn col-lg-pull-12" type="submit">
&nbsp;确认
</button>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<script language="javascript" type="text/javascript" src="${ctx}/resources/customize/js/layer.js"></script>
<script type="text/javascript">
function save1() {
var order = document.getElementById("order").value;
var myselect = document.getElementById("select");
var index=myselect.selectedIndex;
var id_name =myselect.options[index].value
if (order == "") {
alert("排序值不能为null!!!")
}
$.ajax({
url: '${ctx}/user/addDuty/' + id_name + '/' + order,
type: 'GET',
contentType: 'application/json',
data: '',
dataType: 'json',
cache: false,
async:false,
success: function () {
alert("增加成功!!!")
location.href = '${ctx}/user/pblist'
},
error:function(){
alert("操作失败!!!")
location.href = '${ctx}/user/pblist'
}
});
}
</script>
</body>
</html>
<%@include file="/WEB-INF/common/layouts/common.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>排班列表</title>
<style type="text/css">
.frm{
}
.frm label{
display: flex;
align-items: center;
justify-content: flex-end;
}
.frm label .ico{
width:16px;
height:16px;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACB0lEQVQ4T6WTMWhUQRCG/9mrtbIwamEnimgRQQUTsMkVoqiolRGtRLB8O3tX6VX3dvfBERDEKmKsVIJoFZuIChowhSKKnYWihZXKdbsj+3grz0sjuMXbnZ3Zf4aZ7xH+c9Hk++FwuLPT6Vwhot0iMp38RLQuIh9CCDf7/f6n9pu/BJxzFwHcIKJlEXksIi8bgcNEdFxETgO4ysy3s8gfAefcDIBnAM4x8/0U4Jw7m/YJ+x6AWWZ+XounT1VVW2KMH5VSc0VRrDePV0VkU1PBT2Y+2sROxxifKKV2FUXxvRZwznkAm5n5crKttfNEdIqZU8nJvxpCGPT7/aeNfQvAD2bWWWBFRO4aY5ZSwGg0mgohbMvVWGtfA1jI/ibBeWbu1gLW2m8xxkOTHU4+7/21GOPceDzuDgaDX+kuTUop9coYszVX8EVEDhpjPrdHVJblrFJqmYiOaa3Xss9au4OI1ph5ey3gvX8kIku5263A6+lsjKn3vNJ0iGhea30iV2CJaEprfaEdWFXVnmQXRfG+fe+9vyMiX5nZ1AINfe8AXGpXUZZlN/l7vd5KOzuAxRDC3tSzNkiJwkWl1IHcfe99DZTWugaqqqrEQJpISlTTOIlyovEhgAci8iLGWNOmlJohoiMAzgA4mSncINBkSVQaAPtEZH9D4hsAb5VSNtHX7seGv7Ht/Jfzb2MR+RGfG8h4AAAAAElFTkSuQmCC');
background-size: 16px 16px;
position: relative;
margin:0 10px;
}
.frm label .ico text{
display: none;
position: absolute;
background-color: rgba(0,0,0,.7);
color:#fff;
font-size:14px;
white-space:nowrap;
left:50%;
top:-36px;
transform: translate3d(-50%,0,0);
padding:5px;
border-radius: 2px;
}
.frm label .ico:hover text{
display: inline-block;
}
.frm label .ico text::after{
left:50%;
margin-left:-6px;
bottom:-6px;
content: '';
position: absolute;
width: 0;
height: 0;
border-top: 6px solid rgba(0,0,0,.7);
border-right: 6px solid transparent;
border-left: 6px solid transparent;
}
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
.clearfix:after,
.clearfix:before {
content: '.';
display: block;
visibility: hidden;
font-size: 0;
line-height: 0;
width: 0;
height: 0;
}
.clearfix:after {
clear: both;
}
.clearfix {
zoom: 1;
}
.choosemask {
position: fixed;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
}
.choosemask-wrap {
width: 280px;
height: 147px;
background-color: #fff;
border: 1px solid #000;
left: 50%;
margin-left: -140px;
top: 200px;
position: absolute;
}
.choosemask-top {
text-align: right;
font-size: 20px;
height: 22px;
line-height: 22px;
}
.choosemask-close {
cursor: pointer;
padding: 0 5px;
}
.choosemask-bottom {
width: 217px;
margin: 0 auto;
}
.choosemask-title {
font-size: 15px;
height: 18px;
line-height: 18px;
text-align: center;
margin-top: 15px;
}
.choosemask-fbs, .choosemask-aj {
width: 84px;
height: 23px;
line-height: 23px;
text-align: center;
background-color: #11a0ca;
color: #fff;
font-size: 12px;
cursor: pointer;
border-radius: 4px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
}
.choosemask-fbs.on, .choosemask-aj.on {
color: orange;
}
.choosemask-fbs {
float: left;
}
.choosemask-aj {
float: right;
}
.choosemask-twobtn {
margin-top: 36px;
}
</style>
</head>
<body>
<!-- 面包屑 begin -->
<div class="container" style="width: 1200px;">
<!-- 面包屑 begin -->
<div class="row-fluid">
<div class="span12">
<ul class="breadcrumb">
<li class="active"><span class="divider" style="color:#26a0da;font-weight:bold;">/</span>排班列表</li>
</ul>
</div>
</div>
<!-- 面包屑 begin -->
<div class="row${fluid}">
<div class="span12">
<form id="filterForm" class="form-inline filterForm" action="${ctx}/user/" method="get">
<div class="buttons pull-right" style="margin-left:15px;">
<a href="${ctx}/user/addDuty" class="btn blue pull-right" title="新增"><i
class="icon-plus"></i></a>
</div>
</form>
</div>
</div>
注:更新后的排班将于下次生效,按照当前排序值依次往下执行
<table class="table table-striped table-advance table-hover">
<thead>
<tr>
<th width="100">ID</th>
<th width="100">用户名</th>
<th width="100">姓名</th>
<th width="100">职位</th>
<th width="100">
<div style="display: flex">
<div>排序</div>
<div class="frm"><label class="control-label"><div class="ico"><text>排序值越低,排班班次越前</text></div></label></div></th>
</div>
<th width="100">今日值班</th>
<th width="150">操作</th>
</tr>
</thead>
<c:forEach items="${users}" var="user">
<tr>
<td nowrap="nowrap">
${user.entity.id}
</td>
<td nowrap="nowrap">
${user.entity.name}
</td>
<td nowrap="nowrap">
${user.entity.realName}
</td>
<td nowrap="nowrap">
${user.entity.position}
</td>
<td nowrap="nowrap">
${user.entity.status}
</td>
<td nowrap="nowrap">
<c:choose>
<c:when test="${!user.entity.enabled}">
<span></span>
</c:when>
<c:when test="${user.entity.enabled}">
<span></span>
</c:when>
</c:choose>
</td>
<td nowrap="nowrap">
<a href="${ctx}/user/addDuty?eid=${user.entity.id}&order=${user.entity.status}" class="icon-edit pointer icon-large" title="编辑"></a>
&nbsp; &nbsp;&nbsp;
<button class="icon-minus pointer icon-large"
onclick="deleteByIds(${user.entity.id}, ${user.entity.enabled})">删除
</button>
</tr>
</c:forEach>
</table>
</div>
<script language="javascript" type="text/javascript" src="${ctx}/resources/customize/js/layer.js"></script>
<script type="text/javascript">
function goEdit(userId) {
$.ajax({
url: '${ctx}/user/pbelist/' + userId,
type: 'GET',
contentType: 'application/json',
data: '',
dataType: 'json',
cache: false,
async: false,
success: function (res) {
},
error: function () {
}
});
}
function deleteByIds(userId, enabled) {
if (enabled == 1) {
alert("当前值班人员不可删除!!!")
return
}
var b = confirm("是否删除该员工的排班信息,删除后不可恢复!!!");
debugger;
if (b == true) {
//发送请求
$.ajax({
url: '${ctx}/user/deleteDutyById/' + userId,
type: 'GET',
contentType: 'application/json',
data: '',
dataType: 'json',
cache: false,
async: false,
success: function () {
location.href = '${ctx}/user/pblist'
},
error: function () {
location.href = '${ctx}/user/pblist'
}
});
}
}
</script>
<div class="modal fade" id="bindModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h5 class="modal-title" id="myModalLabel">绑定微信用户</h5>
</div>
<input type="hidden" id="userId" class="m-wrap small"/>
<input type="hidden" id="wxId" class="m-wrap small"/>
<div style="margin-top: 10px;" id="tag">
<div style="float: left;width: 80px">
<span class="control-label">微信用户:</span>
</div>
<input id="searchName" name="searchName" style="height: 20px;width: 200px;">
</div>
<div id="btnGive" class="modal-footer" style="margin-top: 20px;">
<button type="button" class="btn btn-primary" onclick="bindRelation()">确认</button>
<button type="button" class="btn btn-primary" onclick="backAdd()">取消</button>
</div>
</div>
</div>
</div>
</body>
</html>
<%@include file="/WEB-INF/common/layouts/common.jsp" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<html>
<head>
<title>排班编辑</title>
</head>
<style type="text/css">
.img-show {
width: 160px;
height: 120px;
border: 1px solid #ccc;
padding: 2px;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
}
</style>
<body>
<div class="container" style="width: 1200px;">
<form id="input_form" class="form-horizontal valid"
<%-- action="${ctx}/user/pblist"
method="get"--%>>
<!-- 面包屑 end -->
<house365:flushMessage/>
<div class="row${fluid}">
<div class="span12">
<input type="hidden" id="entity_onduty"
name="entity.onduty" class="required" maxlength="24"
value="${entity.onduty}"/>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">ID:</label>
<div class="controls">
<input type="text" id="entity_userId" disabled="disabled"
name="entity.userId" class="required" maxlength="24"
value="${entity.userId}"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">姓名:</label>
<div class="controls">
<input type="text" id="entity_name" disabled="disabled"
name="entity.name" class="required" maxlength="24"
value="${entity.name}"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="span6 control-group">
<label class="control-label">排序值:</label>
<div class="controls">
<input type="text" id="entity_order"
name="entity.order" class="required" maxlength="3"
value="${entity.order}"/>
</div>
</div>
</div>
<div class="row-fluid">
<div class="portlet-header">
<div class="operation-btn col-md-offset-4 col-lg-offset-4col-xl-offset-4">
<%-- <a href="${ctx}/user/pbelist/${userId}" class="btn gray"><i
class="icon-mail-reply"></i>&nbsp;恢复原来值</a>--%>
<button class="btn blue btn col-lg-pull-12" onclick="save(${entity.userId},${entity.onduty})">
&nbsp;确认
</button>
<a href="${ctx}/user/pblist" class="btn gray"><i
class="icon-mail-reply"></i>&nbsp;返回</a>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<script language="javascript" type="text/javascript" src="${ctx}/resources/customize/js/layer.js"></script>
<script type="text/javascript">
function save(userId,onduty) {
var order = document.getElementById("entity_order").value;
var orderInt = parseInt(order);
if(onduty==1){
alert("当天值日不可修改!!!")
return;
}
if(order>100){
alert("排序值不能大于100!!!")
return;
}
if (order == "") {
alert("排序值不能为null!!!")
return;
}
$.ajax({
url: '${ctx}/user/updateDuty/' + userId + '/' + order,
type: 'GET',
contentType: 'application/json',
data: '',
dataType: 'json',
cache: false,
async:false,
success: function () {
alert("修改成功!!!")
location.href = '${ctx}/user/pblist'
},
error:function(){
alert("修改失败!!!")
location.href = '${ctx}/user/pblist'
}
});
}
</script>
</body>
</html>
......@@ -40,6 +40,8 @@ public interface ICloudActivityInterface {
void addCloudActivityNew();
void addCloudActivity();
void updateStatus();
void updateDutyStaff();
......
......@@ -23,4 +23,11 @@ public interface ICloudCustomerInterface {
HResult judgeCustomer(int id);
void updateById(int customerId, UserEntity userEntity);
/**
* 查询给定手机号是不是云迹数据
* @param phoneList
* @return
*/
List<String> getExistByPhone(List<String> phoneList,int status);
}
......@@ -273,4 +273,6 @@ public interface ICustomer extends IService {
void batchTransferCreator(String[] customerIds, String[] userIds, UserEntity userEntity, int type) throws Exception;
int queryCountById(Integer userId);
List<CustomerEntity> getExistByPhone(List<String> phoneList,int type);
}
......@@ -13,6 +13,7 @@
*/
package com.house365.ws.interfaces.server;
import com.house365.beans.entity.MarketCustomerEntity;
import com.house365.rest.context.IService;
import com.house365.rest.parameter.House365RestResponse;
import com.house365.ws.beans.request.MarketCustomerListRequest;
......@@ -21,6 +22,8 @@ import com.house365.ws.beans.response.MarketCustomerListResponse;
import com.house365.ws.beans.response.MarketCustomerResponse;
import com.house365.ws.beans.util.HResult;
import java.util.List;
/**
* 客户信息WS接口<br>
......@@ -89,4 +92,6 @@ public interface IMarketCustomer extends IService{
HResult judgeCustomer(int id);
List<String> getExistPhone(List<String> phoneList);
}
......@@ -187,4 +187,26 @@ public interface IUser extends IService {
String getCityById(String userId);
/**
* 查询城市值班人员
* @param cityCode nj
* @return
*/
List<UserEntity> getDutyUserByCity(String cityCode);
/**
* 查询城市全部可用员工
* @param cityCode nj
* @return
*/
List<UserEntity> getUserByCity(String cityCode);
void deleteDutyById(Integer userId);
void addDuty(UserEntity userEntity ,Integer order);
void updateDutyStaff(DutyStaffEntity entity);
void updateDuty(Integer order,Integer id);
DutyStaffEntity pbelist(Integer userId);
}
......@@ -23,4 +23,6 @@ public interface CloudCustomerMapper {
int queryCount(Map<String, Object> map);
void update(CloudCustomerEntity entity);
List<String> getExistByPhone(Map<String, Object> map);
}
......@@ -101,4 +101,6 @@ public interface CustomerMapper {
void updatePtCustomerCreaterMerge(Map<String, Object> map);
int queryCountById(Integer userId);
List<CustomerEntity> getExistByPhone(Map<String, Object> map);
}
......@@ -82,5 +82,7 @@ public interface CustomerMergeMapper {
List<CustomerEntity> getAllCustomer3(Map<String, Object> map);
List<CustomerEntity> getAllCustomer4(Map<String, Object> map);
List<CustomerEntity> getExistByPhone(Map<String, Object> map);
}
package com.house365.ws.dao.mapper;
import com.house365.beans.entity.MarketCustomerEntity;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
/**
......@@ -12,4 +14,6 @@ import java.util.Map;
public interface MarketCustomerMapper {
void updateCustomerId(Map<String,Object> map);
List<String> getExistByPhone(Map<String,Object> map);
}
......@@ -4,8 +4,10 @@ import com.house365.beans.entity.DutyStaffEntity;
import com.house365.beans.entity.RequestLoginEntity;
import com.house365.beans.entity.UserEntity;
import com.house365.beans.entity.UserSimpleEntity;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -27,8 +29,6 @@ public interface UserMapper {
UserEntity getLimitLoginById(String name);
void updateDutyStaff(DutyStaffEntity staff);
List<DutyStaffEntity> getOndutyById(Integer uid);
void addRequestLoginInfo(RequestLoginEntity requestlogin);
......@@ -41,7 +41,7 @@ public interface UserMapper {
RequestLoginEntity getRequestLoginInfoById(Integer id);
List<DutyStaffEntity> getDutyByCondition(Map<String,Object> map);
List<DutyStaffEntity> getDutyByCondition(Map<String, Object> map);
List<UserEntity> queryManagers(Map<String, Object> map);
......@@ -49,8 +49,26 @@ public interface UserMapper {
List<UserEntity> getManagerByPid(Map<String, Object> map);
void updateUserStatus(Map<String,Object> map);
void updateUserStatus(Map<String, Object> map);
String getCityById(String userId);
List<UserEntity> getDutyUserByCity(Map<String, Object> map);
List<UserEntity> getDutyUserByCityAndOnDuty(String cityCode);
List<UserEntity> getUserByCity(Map<String, Object> map);
void deleteDutyById(Integer userId);
void addDuty(@Param("name")String name,@Param("userId") Integer userId, @Param("updateTime")Date updateTime, @Param("order")Integer order);
void updateDutyStaff(DutyStaffEntity staff);
DutyStaffEntity selectBuyDutyId(Integer userId);
void updateDuty(@Param("order")Integer order,@Param("userId") Integer userId,@Param("updateTime")Date updateTime);
void updateDutyOnduty(@Param("userId") Integer userId,@Param("updateTime")Date updateTime,@Param("onduty") Integer onduty);
}
......@@ -524,6 +524,11 @@ public class CloudActivityImpl implements ICloudActivityInterface {
staffDuty.addCloudActivityNew();
}
@Override
public void addCloudActivity() {
staffDuty.addCloudActivity();
}
@Override
public void updateStatus() {
staffDuty.updateJgStatus();
......
......@@ -370,4 +370,12 @@ public class CloudCustomerImpl implements ICloudCustomerInterface {
}
}
@Override
public List<String> getExistByPhone(List<String> phoneList, int status) {
Map<String, Object> map = new HashMap<>();
map.put("phoneList",phoneList);
map.put("status",status);
return mapper.getExistByPhone(map);
}
}
......@@ -3226,4 +3226,41 @@ public class CustomerImpl implements ICustomer {
@Override
public void commit() {
}
/**
* 判断手机号是都在表里
* @param phoneList
* @param type 0,【公海】
* 1,【待派】待派CRM
* 2,【私客】待回访
* 3,【私客】customer_merge表
* @return
*/
@Override
public List<CustomerEntity> getExistByPhone(List<String> phoneList, int type) {
Map<String, Object> map = new HashMap<>( 10 );
map.put("phoneList",phoneList);
map.put("is_delete",0);
if(type == 0) {
map.put("manager_id",0);//不能有manager_id
} else if (type == 1) {
// CRM导入
map.put( "createSource", "CRM导入" );
map.put( "isRecycled", 0 );
map.put( "notBuyIntention", "5" );
map.put("manager_id",0);
} else if(type == 2) {
map.put("hotlone",0);
map.put("isWaitCall",1);
map.put("manager_id",1);
}
if(type == 3) {
Map<String,Object> param = new HashMap<>();
param.put("phoneList",phoneList);
return customermergemapper.getExistByPhone(param);
}
return customerMapper.getExistByPhone(map);
}
}
......@@ -334,4 +334,9 @@ public class MarketCustomerImpl implements IMarketCustomer {
@Override
public void commit() {
}
@Override
public List<String> getExistPhone(List<String> phoneList) {
return marketCustomerService.getExistPhone(phoneList);
}
}
......@@ -131,6 +131,7 @@ public class UserImpl implements IUser {
return userMapper.getOndutyById(uid);
}
@Override
public List<LabelEntity> getCustomerLabelById(LabelEntity labelentity) {
return labelmapper.getCustomerLabelById(labelentity);
......@@ -298,7 +299,6 @@ public class UserImpl implements IUser {
response.setResultCode(ReturnResult.FAIL.getResultCode());
response.setResultMessage(ex.getMessage());
}
logger.error("数据库登录查询:" + response.getObjectList().toString());
return response;
}
......@@ -451,7 +451,7 @@ public class UserImpl implements IUser {
* @return 删除账户响应
*/
@Override
public UserResponse deleteUserById(Integer id,int userId) {
public UserResponse deleteUserById(Integer id, int userId) {
UserResponse response = new UserResponse();
try {
// 插入delete_user表
......@@ -720,7 +720,7 @@ public class UserImpl implements IUser {
}
@Override
public List<UserEntity> getManagerByPid(Integer uid, String managername){
public List<UserEntity> getManagerByPid(Integer uid, String managername) {
Map<String, Object> map = new HashMap<>();
map.put("id", uid);
map.put("realName", managername);
......@@ -1141,4 +1141,45 @@ public class UserImpl implements IUser {
@Override
public void commit() {
}
@Override
public List<UserEntity> getDutyUserByCity(String cityCode) {
Map<String, Object> param = new HashMap<>();
param.put("cityCode", cityCode);
return userMapper.getDutyUserByCity(param);
}
@Override
public List<UserEntity> getUserByCity(String cityCode) {
Map<String, Object> param = new HashMap<>();
param.put("cityCode", cityCode);
return userMapper.getUserByCity(param);
}
@Override
public void deleteDutyById(Integer userId) {
userMapper.deleteDutyById(userId);
}
@Override
public void addDuty(UserEntity userEntity, Integer order) {
userMapper.addDuty(userEntity.getRealName(), userEntity.getId(), new Date(), order);
}
@Override
public void updateDutyStaff(DutyStaffEntity entity) {
userMapper.updateDutyStaff(entity);
}
@Override
public void updateDuty(Integer order, Integer id) {
userMapper.updateDuty(order, id, new Date());
}
@Override
public DutyStaffEntity pbelist(Integer userId) {
return userMapper.selectBuyDutyId(userId);
}
}
......@@ -356,8 +356,15 @@ public class CustomerWechat implements ICustomerWechat {
// 业务层统一处理
try {
House365RestObject<CustomerEntity> data = doGetHotLineCustomer(map);
System.out.println(("getShowMobile=" + entity.getShowMobile() + ",data.size=" + data.getList().size()));
if(entity.getShowMobile() != 1) {
data.getEntity().setPhone(MobileUtil.hidePhone(data.getEntity().getPhone()));
if(entity.getShowMobile() != 1) {
if(data.getList() != null) {
for (int i = 0; i < data.getList().size(); i++) {
data.getList().get(i).setPhone(MobileUtil.hidePhone(data.getList().get(i).getPhone()));
}
}
}
}
response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
response.setMsg(ReturnAppResult.APP_SUCCESS.getResultMessage());
......@@ -1824,10 +1831,19 @@ public class CustomerWechat implements ICustomerWechat {
// 取得所需参数
Map<String, Object> map = parameter.getArgs();
House365RestResponse<CustomerEntity> response = new House365RestResponse<>();
String phone = getMapValueByKey(Constant.CUSTOMER_PHONE, map, "");
UserEntity entity = getUserEntity(phone);
// 业务层统一处理
try {
House365RestObject<CustomerEntity> data = doGetManagers(map);
if(entity.getShowMobile() != 1) {
if(data.getList() != null) {
for (int i = 0; i < data.getList().size(); i++) {
data.getList().get(i).setPhone(MobileUtil.hidePhone(data.getList().get(i).getPhone()));
}
}
}
response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
response.setMsg(ReturnAppResult.APP_SUCCESS.getResultMessage());
response.setData(data);
......
......@@ -278,7 +278,11 @@ public class ProjectWechat implements IProjectWechat {
try {
House365RestObject<CustomerEntity> data = doGetCustomers(map);
if(entity.getShowMobile() != 1) {
data.getEntity().setPhone(MobileUtil.hidePhone(data.getEntity().getPhone()));
if(data.getList() != null) {
for (int i = 0; i < data.getList().size(); i++) {
data.getList().get(i).setPhone(MobileUtil.hidePhone(data.getList().get(i).getPhone()));
}
}
}
response.setResult(ReturnAppResult.APP_SUCCESS.getResultCode());
response.setMsg(ReturnAppResult.APP_SUCCESS.getResultMessage());
......@@ -330,7 +334,6 @@ public class ProjectWechat implements IProjectWechat {
// 取得所需参数
Map<String, Object> map = parameter.getArgs();
House365RestResponse<CustomerEntity> response = new House365RestResponse<>();
// 业务层统一处理
try {
House365RestObject<CustomerEntity> data = doGetCustomerDetail(map);
......@@ -626,7 +629,9 @@ public class ProjectWechat implements IProjectWechat {
// 取得所需参数
Map<String, Object> map = parameter.getArgs();
House365RestResponse<CustomerEntity> response = new House365RestResponse<>();
String phone = getMapValueByKey(Constant.CUSTOMER_PHONE, map, "");
System.out.println("____________________phone=" + phone);
UserEntity entity = getUserEntity(phone);
// 业务层统一处理
try {
House365RestObject object = new House365RestObject();
......@@ -660,6 +665,12 @@ public class ProjectWechat implements IProjectWechat {
url = MemoryPropertyPlaceholderConfigurer.getContextProperty("CRM.TOUCH.HOST") + jsonObject.get("data");
}
}
LOGGER.info("UserEntity:" + entity.toString() + "--phone=" + phone);
if(entity.getShowMobile() != 1) {
url += "&showMobile=0";
} else {
url += "&showMobile=1";
}
LOGGER.info("getCRMCustomerURL :{},url:{}", res, url);
} catch (Exception e) {
......@@ -1620,7 +1631,10 @@ public class ProjectWechat implements IProjectWechat {
CustomerEntity customerEntity = new CustomerEntity();
List<BaseAttachment> attachments = new ArrayList<>();
String projectId = getMapValueByKey(Constant.CUSTOMER_PROJECT_ID, map, "");
LOGGER.debug("==doGetCustomerProject>>projectId:{}==", projectId);
//置业顾问手机
String phone = getMapValueByKey(Constant.CUSTOMER_PHONE, map, "");
UserEntity userEntity = getUserEntity(phone);
LOGGER.debug("==doGetCustomerProject>>projectId:{}==", projectId + "UserEntity=" + userEntity.toString() + phone);
if (!Strings.isNullOrEmpty(projectId)) {
customerEntity = getCustomerProjectEntity(projectId);
attachments = attachmentService.queryByResourceIdAndResouceType(projectId, "hgs_customer_project");
......@@ -1629,6 +1643,10 @@ public class ProjectWechat implements IProjectWechat {
CustomerProjectStatusProgressVo statusProgress = getStatusProgress(projectId);
customerEntity.setStatusProgress(statusProgress);
}
if(userEntity.getShowMobile() != 1) {
customerEntity.setPhone(MobileUtil.hidePhone(customerEntity.getPhone()));
}
object.setEntity(customerEntity);
List<CustomerProjectEntity> customerProjectEntities = customerEntity.getCps();
if(CollectionUtils.isNotEmpty(customerProjectEntities)){
......@@ -1909,6 +1927,9 @@ public class ProjectWechat implements IProjectWechat {
resultMap.put("logShowList", logShowList);
}
}
if(userEntity.getShowMobile() != 1) {
customerEntity.setPhone(MobileUtil.hidePhone(customerEntity.getPhone()));
}
resultMap.put("customer", customerEntity);
object.setEntity(resultMap);
return object;
......
......@@ -26,6 +26,7 @@ import com.house365.ws.dao.interfaces.ICustomerDao;
import com.house365.ws.dao.interfaces.IMarketCustomerDao;
import com.house365.ws.dao.interfaces.IMarketingActivityDao;
import com.house365.ws.dao.mapper.CustomerMapper;
import com.house365.ws.dao.mapper.MarketCustomerMapper;
import com.house365.ws.dao.mapper.UserMapper;
import com.house365.ws.interfaces.impl.CustomerImpl;
import com.house365.ws.service.interfaces.IMarketCustomerService;
......@@ -70,6 +71,8 @@ public class MarketCustomerServiceImpl<T extends MarketCustomerEntity> extends D
private UserMapper userMapper;
@Autowired
private OperateLogUtils logUtils;
@Autowired
private MarketCustomerMapper marketCustomerMapper;
@Override
protected Dao<T> getDao() {
......@@ -166,4 +169,11 @@ public class MarketCustomerServiceImpl<T extends MarketCustomerEntity> extends D
}
}
@Override
public List<String> getExistPhone(List<String> phones){
Map<String,Object> map = new HashMap<>();
map.put("phoneList",phones);
List<String> list = marketCustomerMapper.getExistByPhone(map);
return list;
}
}
......@@ -205,4 +205,7 @@ public class MarketingActivityServiceImpl<T extends MarketingActivityEntity> ext
marketingActivityDao.addBughtCount(id);
}
}
......@@ -4,12 +4,16 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Joiner;
import com.google.common.base.Strings;
import com.house365.beans.entity.*;
import com.house365.beans.system.Page;
import com.house365.commons.system.HttpClientUtil;
import com.house365.web.util.DateTimeUtils;
import com.house365.web.util.MemoryPropertyPlaceholderConfigurer;
import com.house365.ws.beans.request.DepartmentListRequest;
import com.house365.ws.beans.response.DepartmentListResponse;
import com.house365.ws.cached.RedisUtilsInterface;
import com.house365.ws.dao.mapper.*;
import com.house365.ws.interfaces.server.ICustomerProject;
import com.house365.ws.interfaces.server.IDepartment;
import com.house365.ws.service.interfaces.*;
import com.house365.ws.util.Constant;
import com.house365.ws.util.OperateLogUtils;
......@@ -34,6 +38,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
/**
* 配置好表数据,定时轮询值日人员.onduty:是否值日,1:当前之日,0:不值日
......@@ -95,33 +100,52 @@ public class StaffDuty implements IStaffDuty {
@Value("${CRM.CUSTOMERQUERY.URL}")
private String crmQueryUrl;
@Autowired
IDepartment department;
@Override
public void updateDutyStaff() {
List<DutyStaffEntity> list = usermapper.getStaffDutyList();
Map<String, Object> searchParams = new HashMap<>();
Page page = new Page(1000);
DepartmentListRequest listRequest = new DepartmentListRequest();
searchParams.put("EQ_parentId", 1);
listRequest.setOrderColumn("orderNum");
listRequest.setOrderMode("asc");
listRequest.setSearchParams(searchParams);
listRequest.setPaging(page);
List<DepartmentEntity> departmentList = department.getDepartmentList(listRequest).getObjectList();
Date date = new Date();
if (CollectionUtils.isNotEmpty(list)) {
int size = list.size();
for (DepartmentEntity department : departmentList) {
searchParams.clear();
searchParams.put("cityCode", department.getDescripition());
List<UserEntity> dutyUserByCity = usermapper.getDutyUserByCity(searchParams);
if (CollectionUtils.isNotEmpty(dutyUserByCity)) {
//獲取當前值班數量
List<UserEntity> collect = dutyUserByCity.stream().filter(ii -> ii.getEnabled()).collect(Collectors.toList());
if(collect == null || collect.size() == 0) {
UserEntity entity = dutyUserByCity.get(0);
usermapper.updateDutyOnduty(entity.getId(), date, 1);
} else {
int size = dutyUserByCity.size();
for (int i = 0; i < size; i++) {
DutyStaffEntity staff = list.get(i);
if ("1".equals(staff.getOnduty()) && staff.getId() == list.size()) {
staff.setOnduty("0");
staff.setUpdateTime(date);
usermapper.updateDutyStaff(staff);
list.get(0).setOnduty("1");//循环到第一个轮询值日
list.get(0).setUpdateTime(date);
usermapper.updateDutyStaff(list.get(0));
break;
} else if ("1".equals(staff.getOnduty()) && staff.getId() != list.size()) {
staff.setOnduty("0");
staff.setUpdateTime(date);
usermapper.updateDutyStaff(staff);
list.get(i + 1).setOnduty("1");//下一个轮询值日
list.get(i + 1).setUpdateTime(date);
usermapper.updateDutyStaff(list.get(i + 1));
break;
UserEntity userEntity = dutyUserByCity.get(i);
if (userEntity.getEnabled()) {
UserEntity entity = null;
if (i < (size - 1)) {
entity = dutyUserByCity.get(i + 1);
} else {
entity = dutyUserByCity.get(0);
}
usermapper.updateDutyOnduty(userEntity.getId(), date, 0);
usermapper.updateDutyOnduty(entity.getId(), date, 1);
}
}
}
}
}
}
......@@ -154,41 +178,54 @@ public class StaffDuty implements IStaffDuty {
Date now = new Date();
for (String city : cityList) {
//南京和其他城市区分
Map<String, Object> map = new HashMap<>(5);
if ("nj".equals(city)) {
map.put("onduty", 1);
List<DutyStaffEntity> list = usermapper.getDutyByCondition(map);
if (CollectionUtils.isNotEmpty(list)) {
DutyStaffEntity staffEntity = list.get(0);
//每天新增一个云迹活动
CloudActivityEntity entity = new CloudActivityEntity();
String name = "云迹数据" + date;
entity.setName(name);
entity.setCity(city);
entity.setCreateId(Integer.valueOf(staffEntity.getUserId()));
entity.setCreateName(staffEntity.getName());
entity.setCreateTime(now);
setData(entity);
activityMapper.save(entity);
}
} else {
map.put("isDuty", 1);
map.put("city", city);
List<DutyStaffOtherEntity> dutyList = staffOtherMapper.queryByConditions(map);
if (CollectionUtils.isNotEmpty(dutyList)) {
DutyStaffOtherEntity staffEntity = dutyList.get(0);
List<UserEntity> entities = usermapper.getDutyUserByCityAndOnDuty(city);
UserEntity user = entities.get(0);
//每天新增一个云迹活动
CloudActivityEntity entity = new CloudActivityEntity();
String name = "云迹数据" + date;
entity.setName(name);
entity.setCity(city);
entity.setCreateId(staffEntity.getUserId());
entity.setCreateName(staffEntity.getName());
entity.setCreateId(user.getId());
entity.setCreateName(user.getRealName());
entity.setCreateTime(now);
setData(entity);
activityMapper.save(entity);
}
}
// if ("nj".equals(city)) {
// map.put("onduty", 1);
// List<DutyStaffEntity> list = usermapper.getDutyByCondition(map);
// if (CollectionUtils.isNotEmpty(list)) {
// DutyStaffEntity staffEntity = list.get(0);
// //每天新增一个云迹活动
// CloudActivityEntity entity = new CloudActivityEntity();
// String name = "云迹数据" + date;
// entity.setName(name);
// entity.setCity(city);
// entity.setCreateId(Integer.valueOf(staffEntity.getUserId()));
// entity.setCreateName(staffEntity.getName());
// entity.setCreateTime(now);
// setData(entity);
// activityMapper.save(entity);
// }
// } else {
// map.put("isDuty", 1);
// map.put("city", city);
// List<DutyStaffOtherEntity> dutyList = staffOtherMapper.queryByConditions(map);
// if (CollectionUtils.isNotEmpty(dutyList)) {
// DutyStaffOtherEntity staffEntity = dutyList.get(0);
// //每天新增一个云迹活动
// CloudActivityEntity entity = new CloudActivityEntity();
// String name = "云迹数据" + date;
// entity.setName(name);
// entity.setCity(city);
// entity.setCreateId(staffEntity.getUserId());
// entity.setCreateName(staffEntity.getName());
// entity.setCreateTime(now);
// setData(entity);
// activityMapper.save(entity);
// }
// }
}
}
}
......
......@@ -46,4 +46,6 @@ public interface IMarketCustomerService<T extends MarketCustomerEntity> extends
void removeCustomer(CustomerEntity custmerId, Integer userId) throws ServiceRunException;
List<String> getExistPhone(List<String> phones);
}
......@@ -407,29 +407,31 @@
<!--&lt;!&ndash;同步crm报名轨迹数据定时结束&ndash;&gt;-->
<!--<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">-->
<!--<property name="triggers">-->
<!--<list>-->
<!--<ref bean="dutyStaff"/>-->
<!--</list>-->
<!--</property>-->
<!--</bean>-->
<!--<bean id="dutyStaff" class="org.springframework.scheduling.quartz.CronTriggerBean">-->
<!--<property name="jobDetail" ref="checkDutyStaff"/>-->
<!--<property name="cronExpression" value="0 0 1 * * ? "/>-->
<!--</bean>-->
<!--<bean id="checkDutyStaff" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">-->
<!--&lt;!&ndash;调用的类&ndash;&gt;-->
<!--<property name="targetObject">-->
<!--<ref bean="staffDuty"/>-->
<!--</property>-->
<!--&lt;!&ndash;调用类中的方法&ndash;&gt;-->
<!--<property name="targetMethod">-->
<!--<value>updateDutyStaff</value>-->
<!--</property>-->
<!--</bean>-->
<!--驻场值班人员更新定时开始-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="dutyStaff"/>
</list>
</property>
</bean>
<bean id="dutyStaff" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="checkDutyStaff"/>
<property name="cronExpression" value="0 48 13 * * ? "/>
</bean>
<bean id="checkDutyStaff" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--调用的类-->
<property name="targetObject">
<ref bean="staffDuty"/>
</property>
<!--调用类中的方法-->
<property name="targetMethod">
<value>updateDutyStaff</value>
</property>
</bean>
<!--驻场值班人员更新定时结束-->
<!--&lt;!&ndash; N天无回访入公海begin &ndash;&gt;-->
<!--<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">-->
......
......@@ -1547,6 +1547,14 @@
c.is_show_in_plat $searchFilters.isShowInPlat.operation$ #searchFilters.isShowInPlat.value#
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.actSources">
<![CDATA[ c.act_source in ]]>
<iterate prepend="" property="searchFilters.actSources.value" close=")" open="(" conjunction=",">
<![CDATA[ #searchFilters.actSources.value[]# ]]>
</iterate>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.starCustomer">
<![CDATA[
starCustomer $searchFilters.starCustomer.operation$ #searchFilters.starCustomer.value#
......@@ -2129,6 +2137,7 @@
isRecycled $searchFilters.isRecycled.operation$ #searchFilters.isRecycled.value#
]]>
</isNotNull>
</isNotNull>
</dynamic>
</sql>
......
......@@ -384,4 +384,16 @@
</if>
</select>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM cloud_customer where is_delete = 0 and status = #{status}
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -890,4 +890,41 @@
and customer_source_type=8
and creater=#{userId}
</select>
<select id="getExistByPhone" parameterType="map" resultMap="infoMap">
SELECT * FROM customer where is_delete = 0
<if test="status != null and status != '' ">
AND status = #{status}
</if>
<if test="manager_id != null and manager_id == 0">
AND manager_id IS NULL
</if>
<if test="manager_id != null and manager_id == 1">
AND manager_id IS NOT NULL
</if>
<if test="createSource != null and createSource != '' ">
AND create_source = #{createSource}
</if>
<if test="isRecycled != null and isRecycled >=0">
AND isRecycled = #{isRecycled}
</if>
<if test="notBuyIntention != null and notBuyIntention != ''">
AND buy_intention != #{notBuyIntention}
</if>
<if test="hotlone != null and hotlone != ''">
AND status in (11,0,99)
</if>
<if test="isWaitCall != null and isWaitCall != ''">
AND isWaitCall = #{isWaitCall}
</if>
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
group by phone
</select>
</mapper>
\ No newline at end of file
......@@ -121,7 +121,6 @@
where 1=1
AND manager_id = #{managerId}
and phone = #{phone}
limit 1
</select>
<select id="getCustomerMergeById" resultMap="infoMap" parameterType="map">
......
......@@ -67,4 +67,14 @@
WHERE id = #{id}
</update>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM market_customer where (manager_id is null or manager_id = '')
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -5,41 +5,41 @@
<mapper namespace="com.house365.ws.dao.mapper.UserMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.UserEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="password" column="password" />
<result property="weiXinId" column="weiXinId" />
<result property="mediaId" column="mediaId" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="password" column="password"/>
<result property="weiXinId" column="weiXinId"/>
<result property="mediaId" column="mediaId"/>
<result property="mobile" column="mobile"/>
<result property="cornet" column="cornet"/>
<result property="deptId" column="deptId" />
<result property="deptUrlPath" column="deptUrlPath" />
<result property="position" column="position" />
<result property="gender" column="gender" />
<result property="email" column="email" />
<result property="extattr" column="extattr" />
<result property="status" column="status" />
<result property="enabled" column="enabled" />
<result property="createUserid" column="createUserid" />
<result property="createUsername" column="createUsername" />
<result property="createTime" column="createTime" />
<result property="createIp" column="createIp" />
<result property="updateUserid" column="updateUserid" />
<result property="updateUsername" column="updateUsername" />
<result property="updateTime" column="updateTime" />
<result property="updateIp" column="updateIp" />
<result property="preLoginTime" column="preLoginTime" />
<result property="lastLoginTime" column="lastLoginTime" />
<result property="deptId" column="deptId"/>
<result property="deptUrlPath" column="deptUrlPath"/>
<result property="position" column="position"/>
<result property="gender" column="gender"/>
<result property="email" column="email"/>
<result property="extattr" column="extattr"/>
<result property="status" column="status"/>
<result property="enabled" column="enabled"/>
<result property="createUserid" column="createUserid"/>
<result property="createUsername" column="createUsername"/>
<result property="createTime" column="createTime"/>
<result property="createIp" column="createIp"/>
<result property="updateUserid" column="updateUserid"/>
<result property="updateUsername" column="updateUsername"/>
<result property="updateTime" column="updateTime"/>
<result property="updateIp" column="updateIp"/>
<result property="preLoginTime" column="preLoginTime"/>
<result property="lastLoginTime" column="lastLoginTime"/>
<result property="score" column="score"/>
<result property="evaluateCount" column="evaluateCount"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="isFreeMan" column="isFreeMan" />
<result property="defaultVisit" column="defaultVisit" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="isFreeMan" column="isFreeMan"/>
<result property="defaultVisit" column="defaultVisit"/>
<result property="accId" column="accid"/>
<result property="identityType" column="identityType"/>
<result property="token" column="token"/>
......@@ -47,54 +47,90 @@
<result property="wxCodeImgUrl" column="wx_code_imgUrl"/>
<result property="promoteId" column="promote_id"/>
<result property="onlineStatus" column="online_status"/>
<result property="showMobile" column="showMobile" />
<result property="showMobile" column="showMobile"/>
</resultMap>
<resultMap id="infoMap2" type="com.house365.beans.entity.UserSimpleEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="mobile" column="mobile"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="enabled" column="enabled" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="enabled" column="enabled"/>
<result property="cornet" column="cornet"/>
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="accId" column="accid"/>
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="score" column="score"/>
</resultMap>
<resultMap id="infoMap3" type="com.house365.beans.entity.DutyStaffEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="onduty" column="onduty" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="onduty" column="onduty"/>
</resultMap>
<resultMap id="infoMap4" type="com.house365.beans.entity.RequestLoginEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="realName" column="realName" />
<result property="loginIp" column="loginIp" />
<result property="loginCity" column="loginCity" />
<result property="loginTime" column="loginTime" />
<result property="status" column="status" />
<result property="authorizationTime" column="authorizationTime" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="realName" column="realName"/>
<result property="loginIp" column="loginIp"/>
<result property="loginCity" column="loginCity"/>
<result property="loginTime" column="loginTime"/>
<result property="status" column="status"/>
<result property="authorizationTime" column="authorizationTime"/>
</resultMap>
<select id="getById" resultMap="infoMap" parameterType="int">
SELECT id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,wx_number,wx_code_imgUrl,showMobile
SELECT id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
wx_number,
wx_code_imgUrl,
showMobile
FROM user
where id = #{id} AND enabled = 1
where id = #{id}
AND enabled = 1
</select>
<select id="queryManagers" resultType="com.house365.beans.entity.UserEntity" parameterType="map">
......@@ -166,10 +202,22 @@
</select>
<select id="queryUserInfoByd" resultMap="infoMap2" parameterType="map">
SELECT name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where id = #{userId}
......@@ -177,10 +225,24 @@
</select>
<select id="queryUserInfoByPhone" resultMap="infoMap2" parameterType="map">
SELECT id,accid,name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT id,
accid,
name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where mobile = #{phone}
......@@ -188,7 +250,31 @@
</select>
<select id="getStaffDutyList" resultMap="infoMap3">
select id,name,userId,onduty from duty_staff
select id, name, userId, onduty
from duty_staff order by `order`
</select>
<select id="getDutyUserByCity" resultMap="infoMap">
select a.id, a.name, a.`realName`, a.`position`, b.`onduty` as enabled, b.order as status
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
order by b.`order`
</select>
<select id="getDutyUserByCityAndOnDuty" resultMap="infoMap">
select a.id, a.realName
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
and b.onduty = 1
</select>
<select id="getUserByCity" resultMap="infoMap">
select a.id, a.realName,a.position
from user a
where a.enabled = 1
and a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
</select>
<select id="getDutyByCondition" resultMap="infoMap3" parameterType="map">
......@@ -201,44 +287,74 @@
</select>
<select id="getOndutyById" resultMap="infoMap3" parameterType="map">
select id,name,userId,onduty from duty_staff where userId = #{uid}#
select id, name, userId, onduty
from duty_staff
where userId = #{uid}#
</select>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET
onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<update id="authorizationById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = #{status},
SET status = #{status},
authorizationTime = CURRENT_TIMESTAMP
WHERE id = #{id}
</update>
<update id="updateRequestById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = 2
WHERE userId = #{userId} and status=1
SET status = 2
WHERE userId = #{userId}
and status = 1
</update>
<select id="getLimitLoginById" resultMap="infoMap">
select id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,limitLogin,showMobile
from user where name = #{name}
select id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
limitLogin,
showMobile
from user
where name = #{name}
</select>
<select id="getManagerByPid" resultMap="infoMap" parameterType="map">
select * from (
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id = #{id} )
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id =
#{id} )
union
select id,realName from user where id=#{id}
) t where 1=1
......@@ -248,38 +364,90 @@
</select>
<select id="getRequestLoginInfoById" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where id = #{id}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where id = #{id}#
</select>
<insert id="addRequestLoginInfo" parameterType="com.house365.beans.entity.RequestLoginEntity">
insert into request_login (name,realName,loginIp,loginCity,loginTime,authorizationTime, userId) values
(
#{name},#{realName},#{loginIp},#{loginCity},#{loginTime},#{authorizationTime}, #{userId}
)
insert into request_login (name, realName, loginIp, loginCity, loginTime, authorizationTime, userId)
values (#{name}, #{realName}, #{loginIp}, #{loginCity}, #{loginTime}, #{authorizationTime}, #{userId})
</insert>
<select id="getRequestLoginInfo" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where name = #{name}# and loginIp = #{loginIp}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where name = #{name}#
and loginIp = #{loginIp}#
order by loginTime desc
</select>
<update id="updateUserStatus" parameterType="map">
UPDATE user
SET
online_status = #{onlineStatus}
SET online_status = #{onlineStatus}
WHERE mobile = #{mobile}
</update>
<select id="getCityById" parameterType="String" resultType="String">
select
case c.city
select case c.city
when 'zb001' then 'nj'
else c.city end
as city
from user u inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath,'/',3)=c.urlpath where u.id=#{userId}
from user u
inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath, '/', 3) = c.urlpath
where u.id = #{userId}
</select>
<delete id="deleteDutyById" parameterType="Integer">
delete
FROM duty_staff
where userId = #{userId}
</delete>
<delete id="addDuty" parameterType="Integer">
insert into duty_staff (`name`, userId, updateTime, `order`)
values (#{name}, #{userId}, #{updateTime}, #{order})
</delete>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<select id="selectBuyDutyId" parameterType="integer" resultType="com.house365.beans.entity.DutyStaffEntity">
select `name`,userId,`order`,`onduty` from duty_staff where userId=#{userId}
</select>
<update id="updateDuty">
UPDATE duty_staff
SET `order` = #{order},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
<update id="updateDutyOnduty">
UPDATE duty_staff
SET `onduty` = #{onduty},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
</mapper>
\ No newline at end of file
......@@ -772,7 +772,7 @@
<bean id="addMarketActivity" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="addMarketCus"/>
<property name="cronExpression" value="0 10 3 * * ? *"/>
<property name="cronExpression" value="0 10 0 * * ? *"/>
</bean>
<bean id="addMarketCus" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
......
......@@ -1547,6 +1547,14 @@
c.is_show_in_plat $searchFilters.isShowInPlat.operation$ #searchFilters.isShowInPlat.value#
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.actSources">
<![CDATA[ c.act_source in ]]>
<iterate prepend="" property="searchFilters.actSources.value" close=")" open="(" conjunction=",">
<![CDATA[ #searchFilters.actSources.value[]# ]]>
</iterate>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.starCustomer">
<![CDATA[
starCustomer $searchFilters.starCustomer.operation$ #searchFilters.starCustomer.value#
......@@ -1668,7 +1676,7 @@
<select id="getPlatformCustomerList" resultClass="com.house365.beans.entity.CustomerEntity">
SELECT
min( c.id ) id,
(IFNULL((SELECT cm.NAME FROM customer_merge cm WHERE cm.phone = c.phone AND cm.manager_id = c.manager_id AND cm.cityCode = #searchFilters.cityCode.value# AND cm.is_delete = 0 AND cm.STATUS IN ( 11, 0, 99 )),
(IFNULL((SELECT cm.NAME FROM customer_merge cm WHERE cm.phone = c.phone AND cm.manager_id = c.manager_id AND cm.cityCode = #searchFilters.cityCode.value# AND cm.is_delete = 0 AND cm.STATUS IN ( 11, 0, 99 ) limit 1),
( SELECT ct.NAME FROM customer ct WHERE ct.id = c.id ))) NAME,
c.phone,
(select u2.realName from user u2 where u2.id = c.creater) creater,
......
......@@ -130,7 +130,7 @@
#updateIp#,
#preLoginTime#,
#lastLoginTime#,
#hotlinephone#, #goodat#, #description#, #headImgURL#, #fullImgURL#,#isFreeMan#,#limitLogin#,#promoteId#
#hotlinephone#, #goodat#, #description#, #headImgURL#, #fullImgURL#,#isFreeMan#,#limitLogin#,#promoteId#,#showMobile#
)
]]>
<selectKey resultClass="java.lang.Integer" type="post" keyProperty="id">
......
......@@ -384,4 +384,16 @@
</if>
</select>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM cloud_customer where is_delete = 0 and status = #{status}
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -889,4 +889,40 @@
and customer_source_type=8
and creater=#{userId}
</select>
<select id="getExistByPhone" parameterType="map" resultMap="infoMap">
SELECT * FROM customer where is_delete = 0
<if test="status != null and status != '' ">
AND status = #{status}
</if>
<if test="manager_id != null and manager_id == 0">
AND manager_id IS NULL
</if>
<if test="manager_id != null and manager_id == 1">
AND manager_id IS NOT NULL
</if>
<if test="createSource != null and createSource != '' ">
AND create_source = #{createSource}
</if>
<if test="isRecycled != null and isRecycled >=0">
AND isRecycled = #{isRecycled}
</if>
<if test="notBuyIntention != null and notBuyIntention != ''">
AND buy_intention != #{notBuyIntention}
</if>
<if test="hotlone != null and hotlone != ''">
AND status in (11,0,99)
</if>
<if test="isWaitCall != null and isWaitCall != ''">
AND isWaitCall = #{isWaitCall}
</if>
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
group by phone
</select>
</mapper>
\ No newline at end of file
......@@ -145,6 +145,7 @@
AND manager_id = #{managerId}
and phone = #{phone}
AND is_delete=0
ORDER BY update_time DESC limit 1
</select>
<select id="queryManagerByPhone" resultMap="infoMap" parameterType="map">
......@@ -1233,4 +1234,34 @@
</if>
</select>
<select id="getExistByPhone" parameterType="map" resultMap="infoMap">
SELECT * FROM customer_merge where is_delete = 0 and
STATUS IN ( 11, 0, 99 ) AND
( isWaitCall = 0 OR isWaitCall IS NULL )
<if test="phoneList != null and phoneList.size() > 0 ">
and (
phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
OR bak_phone1 IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
OR bak_phone2 IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
OR bak_phone3 IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
)
</if>
</select>
</mapper>
......@@ -66,5 +66,14 @@
customerId = #{customerId}
WHERE id = #{id}
</update>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM market_customer where (manager_id is null or manager_id = '')
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -5,41 +5,41 @@
<mapper namespace="com.house365.ws.dao.mapper.UserMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.UserEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="password" column="password" />
<result property="weiXinId" column="weiXinId" />
<result property="mediaId" column="mediaId" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="password" column="password"/>
<result property="weiXinId" column="weiXinId"/>
<result property="mediaId" column="mediaId"/>
<result property="mobile" column="mobile"/>
<result property="cornet" column="cornet"/>
<result property="deptId" column="deptId" />
<result property="deptUrlPath" column="deptUrlPath" />
<result property="position" column="position" />
<result property="gender" column="gender" />
<result property="email" column="email" />
<result property="extattr" column="extattr" />
<result property="status" column="status" />
<result property="enabled" column="enabled" />
<result property="createUserid" column="createUserid" />
<result property="createUsername" column="createUsername" />
<result property="createTime" column="createTime" />
<result property="createIp" column="createIp" />
<result property="updateUserid" column="updateUserid" />
<result property="updateUsername" column="updateUsername" />
<result property="updateTime" column="updateTime" />
<result property="updateIp" column="updateIp" />
<result property="preLoginTime" column="preLoginTime" />
<result property="lastLoginTime" column="lastLoginTime" />
<result property="deptId" column="deptId"/>
<result property="deptUrlPath" column="deptUrlPath"/>
<result property="position" column="position"/>
<result property="gender" column="gender"/>
<result property="email" column="email"/>
<result property="extattr" column="extattr"/>
<result property="status" column="status"/>
<result property="enabled" column="enabled"/>
<result property="createUserid" column="createUserid"/>
<result property="createUsername" column="createUsername"/>
<result property="createTime" column="createTime"/>
<result property="createIp" column="createIp"/>
<result property="updateUserid" column="updateUserid"/>
<result property="updateUsername" column="updateUsername"/>
<result property="updateTime" column="updateTime"/>
<result property="updateIp" column="updateIp"/>
<result property="preLoginTime" column="preLoginTime"/>
<result property="lastLoginTime" column="lastLoginTime"/>
<result property="score" column="score"/>
<result property="evaluateCount" column="evaluateCount"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="isFreeMan" column="isFreeMan" />
<result property="defaultVisit" column="defaultVisit" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="isFreeMan" column="isFreeMan"/>
<result property="defaultVisit" column="defaultVisit"/>
<result property="accId" column="accid"/>
<result property="identityType" column="identityType"/>
<result property="token" column="token"/>
......@@ -47,54 +47,90 @@
<result property="wxCodeImgUrl" column="wx_code_imgUrl"/>
<result property="promoteId" column="promote_id"/>
<result property="onlineStatus" column="online_status"/>
<result property="showMobile" column="showMobile" />
<result property="showMobile" column="showMobile"/>
</resultMap>
<resultMap id="infoMap2" type="com.house365.beans.entity.UserSimpleEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="mobile" column="mobile"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="enabled" column="enabled" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="enabled" column="enabled"/>
<result property="cornet" column="cornet"/>
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="accId" column="accid"/>
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="score" column="score"/>
</resultMap>
<resultMap id="infoMap3" type="com.house365.beans.entity.DutyStaffEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="onduty" column="onduty" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="onduty" column="onduty"/>
</resultMap>
<resultMap id="infoMap4" type="com.house365.beans.entity.RequestLoginEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="realName" column="realName" />
<result property="loginIp" column="loginIp" />
<result property="loginCity" column="loginCity" />
<result property="loginTime" column="loginTime" />
<result property="status" column="status" />
<result property="authorizationTime" column="authorizationTime" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="realName" column="realName"/>
<result property="loginIp" column="loginIp"/>
<result property="loginCity" column="loginCity"/>
<result property="loginTime" column="loginTime"/>
<result property="status" column="status"/>
<result property="authorizationTime" column="authorizationTime"/>
</resultMap>
<select id="getById" resultMap="infoMap" parameterType="int">
SELECT id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,wx_number,wx_code_imgUrl,showMobile
SELECT id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
wx_number,
wx_code_imgUrl,
showMobile
FROM user
where id = #{id} AND enabled = 1
where id = #{id}
AND enabled = 1
</select>
<select id="queryManagers" resultType="com.house365.beans.entity.UserEntity" parameterType="map">
......@@ -148,12 +184,12 @@
<if test="onlineStatus != null and onlineStatus >= 0">
AND online_status = #{onlineStatus}
</if>
<if test="deptId != null and deptId >= 0 ">
AND deptId = #{deptId}
</if>
<if test="showMobile != null and showMobile >= 0">
AND showMobile = #{showMobile}
</if>
<if test="deptId != null and deptId >= 0 ">
AND deptId = #{deptId}
</if>
<if test="deptIdList != null and deptIdList.size() > 0 ">
AND deptId in
<foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
......@@ -166,10 +202,22 @@
</select>
<select id="queryUserInfoByd" resultMap="infoMap2" parameterType="map">
SELECT name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where id = #{userId}
......@@ -177,10 +225,24 @@
</select>
<select id="queryUserInfoByPhone" resultMap="infoMap2" parameterType="map">
SELECT id,accid,name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT id,
accid,
name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where mobile = #{phone}
......@@ -188,7 +250,31 @@
</select>
<select id="getStaffDutyList" resultMap="infoMap3">
select id,name,userId,onduty from duty_staff
select id, name, userId, onduty
from duty_staff order by `order`
</select>
<select id="getDutyUserByCity" resultMap="infoMap">
select a.id, a.name, a.`realName`, a.`position`, b.`onduty` as enabled, b.order as status
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
order by b.`order`
</select>
<select id="getDutyUserByCityAndOnDuty" resultMap="infoMap">
select a.id, a.realName
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
and b.onduty = 1
</select>
<select id="getUserByCity" resultMap="infoMap">
select a.id, a.realName,a.position
from user a
where a.enabled = 1
and a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
</select>
<select id="getDutyByCondition" resultMap="infoMap3" parameterType="map">
......@@ -201,44 +287,73 @@
</select>
<select id="getOndutyById" resultMap="infoMap3" parameterType="map">
select id,name,userId,onduty from duty_staff where userId = #{uid}#
select id, name, userId, onduty
from duty_staff
where userId = #{uid}#
</select>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET
onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<update id="authorizationById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = #{status},
SET status = #{status},
authorizationTime = CURRENT_TIMESTAMP
WHERE id = #{id}
</update>
<update id="updateRequestById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = 2
WHERE userId = #{userId} and status=1
SET status = 2
WHERE userId = #{userId}
and status = 1
</update>
<select id="getLimitLoginById" resultMap="infoMap">
select id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,limitLogin,showMobile
from user where name = #{name}
select id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
limitLogin,
showMobile
from user
where name = #{name}
</select>
<select id="getManagerByPid" resultMap="infoMap" parameterType="map">
select * from (
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id = #{id} )
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id =
#{id} )
union
select id,realName from user where id=#{id}
) t where 1=1
......@@ -248,38 +363,90 @@
</select>
<select id="getRequestLoginInfoById" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where id = #{id}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where id = #{id}#
</select>
<insert id="addRequestLoginInfo" parameterType="com.house365.beans.entity.RequestLoginEntity">
insert into request_login (name,realName,loginIp,loginCity,loginTime,authorizationTime, userId) values
(
#{name},#{realName},#{loginIp},#{loginCity},#{loginTime},#{authorizationTime}, #{userId}
)
insert into request_login (name, realName, loginIp, loginCity, loginTime, authorizationTime, userId)
values (#{name}, #{realName}, #{loginIp}, #{loginCity}, #{loginTime}, #{authorizationTime}, #{userId})
</insert>
<select id="getRequestLoginInfo" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where name = #{name}# and loginIp = #{loginIp}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where name = #{name}#
and loginIp = #{loginIp}#
order by loginTime desc
</select>
<update id="updateUserStatus" parameterType="map">
UPDATE user
SET
online_status = #{onlineStatus}
SET online_status = #{onlineStatus}
WHERE mobile = #{mobile}
</update>
<select id="getCityById" parameterType="String" resultType="String">
select
case c.city
select case c.city
when 'zb001' then 'nj'
else c.city end
as city
from user u inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath,'/',3)=c.urlpath where u.id=#{userId}
from user u
inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath, '/', 3) = c.urlpath
where u.id = #{userId}
</select>
<delete id="deleteDutyById" parameterType="Integer">
delete
FROM duty_staff
where userId = #{userId}
</delete>
<delete id="addDuty" parameterType="Integer">
insert into duty_staff (`name`, userId, updateTime, `order`)
values (#{name}, #{userId}, #{updateTime}, #{order})
</delete>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<select id="selectBuyDutyId" parameterType="integer" resultType="com.house365.beans.entity.DutyStaffEntity">
select `name`,userId,`order`,`onduty` from duty_staff where userId=#{userId}
</select>
<update id="updateDuty">
UPDATE duty_staff
SET `order` = #{order},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
<update id="updateDutyOnduty">
UPDATE duty_staff
SET `onduty` = #{onduty},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
</mapper>
\ No newline at end of file
......@@ -406,29 +406,31 @@
<!--&lt;!&ndash;同步crm报名轨迹数据定时结束&ndash;&gt;-->
<!--<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">-->
<!--<property name="triggers">-->
<!--<list>-->
<!--<ref bean="dutyStaff"/>-->
<!--</list>-->
<!--</property>-->
<!--</bean>-->
<!--<bean id="dutyStaff" class="org.springframework.scheduling.quartz.CronTriggerBean">-->
<!--<property name="jobDetail" ref="checkDutyStaff"/>-->
<!--<property name="cronExpression" value="0 1 0 * * ? "/>-->
<!--</bean>-->
<!--<bean id="checkDutyStaff" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">-->
<!--&lt;!&ndash;调用的类&ndash;&gt;-->
<!--<property name="targetObject">-->
<!--<ref bean="staffDuty"/>-->
<!--</property>-->
<!--&lt;!&ndash;调用类中的方法&ndash;&gt;-->
<!--<property name="targetMethod">-->
<!--<value>updateDutyStaff</value>-->
<!--</property>-->
<!--</bean>-->
<!--驻场值班人员更新定时开始-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="dutyStaff"/>
</list>
</property>
</bean>
<bean id="dutyStaff" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="checkDutyStaff"/>
<property name="cronExpression" value="0 0 1 * * ? "/>
</bean>
<bean id="checkDutyStaff" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--调用的类-->
<property name="targetObject">
<ref bean="staffDuty"/>
</property>
<!--调用类中的方法-->
<property name="targetMethod">
<value>updateDutyStaff</value>
</property>
</bean>
<!--驻场值班人员更新定时结束-->
<!--&lt;!&ndash; N天无回访入公海begin &ndash;&gt;-->
<!--<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">-->
......
......@@ -1530,11 +1530,30 @@
starCustomer = 0
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.isPtStar">
<![CDATA[
star_pt_customer = 1
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.isNotPtStar">
<![CDATA[
star_pt_customer = 0
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.isShowInPlat">
<![CDATA[
c.is_show_in_plat $searchFilters.isShowInPlat.operation$ #searchFilters.isShowInPlat.value#
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.actSources">
<![CDATA[ c.act_source in ]]>
<iterate prepend="" property="searchFilters.actSources.value" close=")" open="(" conjunction=",">
<![CDATA[ #searchFilters.actSources.value[]# ]]>
</iterate>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.starCustomer">
<![CDATA[
starCustomer $searchFilters.starCustomer.operation$ #searchFilters.starCustomer.value#
......@@ -1595,6 +1614,11 @@
AND c.phone = t.phone)
]]>
</isNotEmpty>
<isNotEmpty prepend="AND" property="searchFilters.createrName">
<![CDATA[
c.creater in (select id from user u3 where u3.realName LIKE concat('', #searchFilters.createrName.value#, '%') )
]]>
</isNotEmpty>
</isNotNull>
</dynamic>
</sql>
......@@ -1634,7 +1658,7 @@
update_time, updater, cityCode,cityName, biz_port,crmId,act_source_id, trace_status, remark, crm_sync,
hotline_call_time,hotline_call_spend,ocean_date,is_delete,last_manager,bind_time, customer_source_type,
customer_rel_id, isWaitCall, singupTime,marketActId, marketActName,is_peer, starCustomer, isHandover,
isRecycled,is_active
isRecycled,is_active,starCustomer AS star_pt_customer
FROM customer_merge c
<include refid="customer.queryManagementPage"/>
<isNotEmpty prepend="ORDER BY" property="searchFilters.orderBy">
......@@ -1655,6 +1679,8 @@
( SELECT ct.NAME FROM customer ct WHERE ct.id = c.id ))) NAME,
c.phone,
(select u2.realName from user u2 where u2.id = c.creater) creater,
c.creater AS createrId,
c.star_pt_customer AS starPtCustomer,
(
IFNULL((SELECT min( ct.create_time ) FROM customer ct WHERE ct.phone = c.phone AND ct.manager_id = c.manager_id AND ct.cityCode = #searchFilters.cityCode.value# AND ct.is_delete = 0 AND ct.STATUS IN ( 11, 0, 99 )),
(SELECT ct.create_time FROM customer ct WHERE ct.id = c.id))
......
......@@ -384,4 +384,17 @@
</if>
</select>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM cloud_customer where is_delete = 0 and status = #{status}
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -720,6 +720,27 @@
WHERE id = #{id}
</update>
<update id="updatePtCustomerStar" parameterType="map">
UPDATE customer
SET
star_pt_customer = #{star}
WHERE id = #{id}
</update>
<update id="updatePtCustomerCreater" parameterType="map">
UPDATE customer
SET
creater = #{creater}
WHERE id = #{customerId}
</update>
<update id="updatePtCustomerCreaterMerge" parameterType="map">
UPDATE customer_merge
SET
creater = #{creater}
WHERE id = #{customerId}
</update>
<select id="queryForAddHot" resultMap="infoMap" parameterType="map">
SELECT id,phone FROM (
SELECT
......@@ -868,4 +889,40 @@
and customer_source_type=8
and creater=#{userId}
</select>
<select id="getExistByPhone" parameterType="map" resultMap="infoMap">
SELECT * FROM customer where is_delete = 0
<if test="status != null and status != '' ">
AND status = #{status}
</if>
<if test="manager_id != null and manager_id == 0">
AND manager_id IS NULL
</if>
<if test="manager_id != null and manager_id == 1">
AND manager_id IS NOT NULL
</if>
<if test="createSource != null and createSource != '' ">
AND create_source = #{createSource}
</if>
<if test="isRecycled != null and isRecycled >=0">
AND isRecycled = #{isRecycled}
</if>
<if test="notBuyIntention != null and notBuyIntention != ''">
AND buy_intention != #{notBuyIntention}
</if>
<if test="hotlone != null and hotlone != ''">
AND status in (11,0,99)
</if>
<if test="isWaitCall != null and isWaitCall != ''">
AND isWaitCall = #{isWaitCall}
</if>
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
group by phone
</select>
</mapper>
\ No newline at end of file
......@@ -66,5 +66,14 @@
customerId = #{customerId}
WHERE id = #{id}
</update>
<select id="getExistByPhone" parameterType="map" resultType="String">
SELECT DISTINCT phone FROM market_customer where (manager_id is null or manager_id = '')
<if test="phoneList != null and phoneList.size() > 0 ">
and phone IN
<foreach collection="phoneList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -5,41 +5,41 @@
<mapper namespace="com.house365.ws.dao.mapper.UserMapper">
<resultMap id="infoMap" type="com.house365.beans.entity.UserEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="password" column="password" />
<result property="weiXinId" column="weiXinId" />
<result property="mediaId" column="mediaId" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="password" column="password"/>
<result property="weiXinId" column="weiXinId"/>
<result property="mediaId" column="mediaId"/>
<result property="mobile" column="mobile"/>
<result property="cornet" column="cornet"/>
<result property="deptId" column="deptId" />
<result property="deptUrlPath" column="deptUrlPath" />
<result property="position" column="position" />
<result property="gender" column="gender" />
<result property="email" column="email" />
<result property="extattr" column="extattr" />
<result property="status" column="status" />
<result property="enabled" column="enabled" />
<result property="createUserid" column="createUserid" />
<result property="createUsername" column="createUsername" />
<result property="createTime" column="createTime" />
<result property="createIp" column="createIp" />
<result property="updateUserid" column="updateUserid" />
<result property="updateUsername" column="updateUsername" />
<result property="updateTime" column="updateTime" />
<result property="updateIp" column="updateIp" />
<result property="preLoginTime" column="preLoginTime" />
<result property="lastLoginTime" column="lastLoginTime" />
<result property="deptId" column="deptId"/>
<result property="deptUrlPath" column="deptUrlPath"/>
<result property="position" column="position"/>
<result property="gender" column="gender"/>
<result property="email" column="email"/>
<result property="extattr" column="extattr"/>
<result property="status" column="status"/>
<result property="enabled" column="enabled"/>
<result property="createUserid" column="createUserid"/>
<result property="createUsername" column="createUsername"/>
<result property="createTime" column="createTime"/>
<result property="createIp" column="createIp"/>
<result property="updateUserid" column="updateUserid"/>
<result property="updateUsername" column="updateUsername"/>
<result property="updateTime" column="updateTime"/>
<result property="updateIp" column="updateIp"/>
<result property="preLoginTime" column="preLoginTime"/>
<result property="lastLoginTime" column="lastLoginTime"/>
<result property="score" column="score"/>
<result property="evaluateCount" column="evaluateCount"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="isFreeMan" column="isFreeMan" />
<result property="defaultVisit" column="defaultVisit" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="isFreeMan" column="isFreeMan"/>
<result property="defaultVisit" column="defaultVisit"/>
<result property="accId" column="accid"/>
<result property="identityType" column="identityType"/>
<result property="token" column="token"/>
......@@ -47,54 +47,90 @@
<result property="wxCodeImgUrl" column="wx_code_imgUrl"/>
<result property="promoteId" column="promote_id"/>
<result property="onlineStatus" column="online_status"/>
<result property="showMobile" column="showMobile" />
<result property="showMobile" column="showMobile"/>
</resultMap>
<resultMap id="infoMap2" type="com.house365.beans.entity.UserSimpleEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="realName" column="realName" />
<result property="mobile" column="mobile" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="realName" column="realName"/>
<result property="mobile" column="mobile"/>
<result property="hotlinephone" column="hotlinephone" />
<result property="enabled" column="enabled" />
<result property="hotlinephone" column="hotlinephone"/>
<result property="enabled" column="enabled"/>
<result property="cornet" column="cornet"/>
<result property="headImgURL" column="headImgURL" />
<result property="fullImgURL" column="fullImgURL" />
<result property="headImgURL" column="headImgURL"/>
<result property="fullImgURL" column="fullImgURL"/>
<result property="accId" column="accid"/>
<result property="goodat" column="goodat" />
<result property="description" column="description" />
<result property="goodat" column="goodat"/>
<result property="description" column="description"/>
<result property="score" column="score"/>
</resultMap>
<resultMap id="infoMap3" type="com.house365.beans.entity.DutyStaffEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="onduty" column="onduty" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="onduty" column="onduty"/>
</resultMap>
<resultMap id="infoMap4" type="com.house365.beans.entity.RequestLoginEntity">
<result property="id" column="id" />
<result property="name" column="name" />
<result property="userId" column="userId" />
<result property="realName" column="realName" />
<result property="loginIp" column="loginIp" />
<result property="loginCity" column="loginCity" />
<result property="loginTime" column="loginTime" />
<result property="status" column="status" />
<result property="authorizationTime" column="authorizationTime" />
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="userId" column="userId"/>
<result property="realName" column="realName"/>
<result property="loginIp" column="loginIp"/>
<result property="loginCity" column="loginCity"/>
<result property="loginTime" column="loginTime"/>
<result property="status" column="status"/>
<result property="authorizationTime" column="authorizationTime"/>
</resultMap>
<select id="getById" resultMap="infoMap" parameterType="int">
SELECT id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,wx_number,wx_code_imgUrl,showMobile
SELECT id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
wx_number,
wx_code_imgUrl,
showMobile
FROM user
where id = #{id} AND enabled = 1
where id = #{id}
AND enabled = 1
</select>
<select id="queryManagers" resultType="com.house365.beans.entity.UserEntity" parameterType="map">
......@@ -148,12 +184,12 @@
<if test="onlineStatus != null and onlineStatus >= 0">
AND online_status = #{onlineStatus}
</if>
<if test="deptId != null and deptId >= 0 ">
AND deptId = #{deptId}
</if>
<if test="showMobile != null and showMobile >= 0">
AND showMobile = #{showMobile}
</if>
<if test="deptId != null and deptId >= 0 ">
AND deptId = #{deptId}
</if>
<if test="deptIdList != null and deptIdList.size() > 0 ">
AND deptId in
<foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
......@@ -166,10 +202,22 @@
</select>
<select id="queryUserInfoByd" resultMap="infoMap2" parameterType="map">
SELECT name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where id = #{userId}
......@@ -177,10 +225,24 @@
</select>
<select id="queryUserInfoByPhone" resultMap="infoMap2" parameterType="map">
SELECT id,accid,name,realName, mobile,hotlinephone,cornet,enabled,
headImgURL, fullImgURL,accid,description,goodat,
(select ifnull(format(AVG(eucl.score),1),0) from evaluate_user_customer_log eucl where eucl.user_id = u.id and
eucl.check_status =1 and eucl.is_deleted = 0)
SELECT id,
accid,
name,
realName,
mobile,
hotlinephone,
cornet,
enabled,
headImgURL,
fullImgURL,
accid,
description,
goodat,
(select ifnull(format(AVG(eucl.score), 1), 0)
from evaluate_user_customer_log eucl
where eucl.user_id = u.id
and eucl.check_status = 1
and eucl.is_deleted = 0)
score
FROM user u
where mobile = #{phone}
......@@ -188,7 +250,31 @@
</select>
<select id="getStaffDutyList" resultMap="infoMap3">
select id,name,userId,onduty from duty_staff
select id, name, userId, onduty
from duty_staff order by `order`
</select>
<select id="getDutyUserByCity" resultMap="infoMap">
select a.id, a.name, a.`realName`, a.`position`, b.`onduty` as enabled, b.order as status
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
order by b.`order`
</select>
<select id="getDutyUserByCityAndOnDuty" resultMap="infoMap">
select a.id, a.realName
from user a
join `duty_staff` b on a.id = b.userId
where a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
and b.onduty = 1
</select>
<select id="getUserByCity" resultMap="infoMap">
select a.id, a.realName,a.position
from user a
where a.enabled = 1
and a.`deptUrlPath` REGEXP CONCAT('^', (select urlPath from `department` where `descripition` = #{cityCode}))
</select>
<select id="getDutyByCondition" resultMap="infoMap3" parameterType="map">
......@@ -201,44 +287,73 @@
</select>
<select id="getOndutyById" resultMap="infoMap3" parameterType="map">
select id,name,userId,onduty from duty_staff where userId = #{uid}#
select id, name, userId, onduty
from duty_staff
where userId = #{uid}#
</select>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET
onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<update id="authorizationById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = #{status},
SET status = #{status},
authorizationTime = CURRENT_TIMESTAMP
WHERE id = #{id}
</update>
<update id="updateRequestById" parameterType="com.house365.beans.entity.RequestLoginEntity">
UPDATE request_login
SET
status = 2
WHERE userId = #{userId} and status=1
SET status = 2
WHERE userId = #{userId}
and status = 1
</update>
<select id="getLimitLoginById" resultMap="infoMap">
select id, name,realName, password, weiXinId, mediaId, mobile, cornet, deptId, deptUrlPath, position, gender,
email, extattr, status, enabled, createUserid, createUsername, createTime, createIp, updateUserid,
updateUsername, updateTime, updateIp, preLoginTime, lastLoginTime, hotlinephone, goodat,
description, headImgURL, fullImgURL,isFreeMan,defaultVisit,accid,identityType,token,limitLogin,showMobile
from user where name = #{name}
select id,
name,
realName,
password,
weiXinId,
mediaId,
mobile,
cornet,
deptId,
deptUrlPath,
position,
gender,
email,
extattr,
status,
enabled,
createUserid,
createUsername,
createTime,
createIp,
updateUserid,
updateUsername,
updateTime,
updateIp,
preLoginTime,
lastLoginTime,
hotlinephone,
goodat,
description,
headImgURL,
fullImgURL,
isFreeMan,
defaultVisit,
accid,
identityType,
token,
limitLogin,
showMobile
from user
where name = #{name}
</select>
<select id="getManagerByPid" resultMap="infoMap" parameterType="map">
select * from (
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id = #{id} )
SELECT id,realName FROM user WHERE depturlpath LIKE ( SELECT concat( depturlpath, '/%' ) FROM user WHERE id =
#{id} )
union
select id,realName from user where id=#{id}
) t where 1=1
......@@ -248,38 +363,90 @@
</select>
<select id="getRequestLoginInfoById" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where id = #{id}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where id = #{id}#
</select>
<insert id="addRequestLoginInfo" parameterType="com.house365.beans.entity.RequestLoginEntity">
insert into request_login (name,realName,loginIp,loginCity,loginTime,authorizationTime, userId) values
(
#{name},#{realName},#{loginIp},#{loginCity},#{loginTime},#{authorizationTime}, #{userId}
)
insert into request_login (name, realName, loginIp, loginCity, loginTime, authorizationTime, userId)
values (#{name}, #{realName}, #{loginIp}, #{loginCity}, #{loginTime}, #{authorizationTime}, #{userId})
</insert>
<select id="getRequestLoginInfo" resultMap="infoMap4">
select id,name,realName,loginIp,loginCity,loginTime,status,authorizationTime,userId
from request_login where name = #{name}# and loginIp = #{loginIp}#
select id,
name,
realName,
loginIp,
loginCity,
loginTime,
status,
authorizationTime,
userId
from request_login
where name = #{name}#
and loginIp = #{loginIp}#
order by loginTime desc
</select>
<update id="updateUserStatus" parameterType="map">
UPDATE user
SET
online_status = #{onlineStatus}
SET online_status = #{onlineStatus}
WHERE mobile = #{mobile}
</update>
<select id="getCityById" parameterType="String" resultType="String">
select
case c.city
select case c.city
when 'zb001' then 'nj'
else c.city end
as city
from user u inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath,'/',3)=c.urlpath where u.id=#{userId}
from user u
inner join city_urlpath c on SUBSTRING_INDEX(u.deptUrlPath, '/', 3) = c.urlpath
where u.id = #{userId}
</select>
<delete id="deleteDutyById" parameterType="Integer">
delete
FROM duty_staff
where userId = #{userId}
</delete>
<delete id="addDuty" parameterType="Integer">
insert into duty_staff (`name`, userId, updateTime, `order`)
values (#{name}, #{userId}, #{updateTime}, #{order})
</delete>
<update id="updateDutyStaff" parameterType="com.house365.beans.entity.DutyStaffEntity">
UPDATE duty_staff
SET onduty = #{onduty},
updateTime = #{updateTime}
WHERE id = #{id}
</update>
<select id="selectBuyDutyId" parameterType="integer" resultType="com.house365.beans.entity.DutyStaffEntity">
select `name`,userId,`order`,`onduty` from duty_staff where userId=#{userId}
</select>
<update id="updateDuty">
UPDATE duty_staff
SET `order` = #{order},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
<update id="updateDutyOnduty">
UPDATE duty_staff
SET `onduty` = #{onduty},
updateTime = #{updateTime}
WHERE userId = #{userId}
</update>
</mapper>
\ 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 to comment