master
kira 8 years ago
parent 5c19193c78
commit 1a73f48808

@ -419,7 +419,7 @@ public class RetailAppServiceImp implements RetailAppService {
@Override @Override
public JSONObject openimCheck(JSONObject device) { public JSONObject openimCheck(JSONObject device) {
JSONObject account = clientAccountMapper.findById(device.getString("account_id")); JSONObject account = clientAccountMapper.findById(device.getString("account_id"));
return customerServiceService.checkAndSave(account); return customerServiceService.checkAndSavePartner(account);
} }
//暂不使用 //暂不使用

@ -30,5 +30,8 @@ public interface SysCustomerServiceMapper {
@AutoSql(type = SqlType.SELECT) @AutoSql(type = SqlType.SELECT)
List<JSONObject> findAllWithDetail(); List<JSONObject> findAllWithDetail();
@AutoSql(type = SqlType.COUNT)
int countAll();
} }

@ -41,7 +41,7 @@ public class OpenimController {
@RequestMapping(value = "/check", method = RequestMethod.PUT) @RequestMapping(value = "/check", method = RequestMethod.PUT)
@RequireManager @RequireManager
public JSONObject sendMsg(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) { public JSONObject sendMsg(@ModelAttribute(CommonConsts.MANAGER_STATUS) JSONObject manager) {
return customerServiceService.checkAndSave(manager); return customerServiceService.checkAndSaveManager(manager);
} }
@RequestMapping(value = "/signin", method = RequestMethod.POST) @RequestMapping(value = "/signin", method = RequestMethod.POST)

@ -12,7 +12,9 @@ import java.util.List;
*/ */
public interface CustomerServiceService { public interface CustomerServiceService {
JSONObject checkAndSave(JSONObject account); JSONObject checkAndSavePartner(JSONObject account);
JSONObject checkAndSaveManager(JSONObject manager);
OpenimUserVO findOne(int clientId,String userName); OpenimUserVO findOne(int clientId,String userName);
@ -24,4 +26,5 @@ public interface CustomerServiceService {
void sendUnreadWxMsg(); void sendUnreadWxMsg();
} }

@ -10,7 +10,7 @@ public interface OpenimApi {
void addUser(JSONObject record); void addUser(JSONObject record);
void updateUser(); void updateUser(JSONObject record);
void pushMsh(); void pushMsh();

@ -21,7 +21,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -118,21 +117,19 @@ public class OpenimClient {
String url = "https://eco.taobao.com/router/rest"; String url = "https://eco.taobao.com/router/rest";
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
OpenimUsersAddRequest req = new OpenimUsersAddRequest(); OpenimUsersGetRequest req = new OpenimUsersGetRequest();
List<Userinfos> list2 = new ArrayList<Userinfos>(); // 批量为userid逗号分隔字符串
Userinfos obj3 = new Userinfos(); req.setUserids("kiraservant");
list2.add(obj3); OpenimUsersGetResponse rsp = null;
obj3.setNick("king");
obj3.setIconUrl("https://ss0.baidu.com/73t1bjeh1BF3odCf/it/u=1948403834,955109320&fm=85&s=0D06E5134AD145F30C8D6D680300303A");
obj3.setUserid("kira3_PINE");
obj3.setPassword("xxxxxx");
req.setUserinfos(list2);
OpenimUsersAddResponse rsp = null;
try { try {
rsp = client.execute(req); rsp = client.execute(req);
} catch (ApiException e) { } catch (ApiException e) {
e.printStackTrace();
} }
System.out.println(rsp.getBody()); JSONObject openInfo = JSONObject.parseObject(rsp.getBody());
System.out.println(openInfo.toJSONString());
System.out.println(openInfo.toJSONString());
System.out.println(openInfo.toJSONString());
} }
} }

@ -12,10 +12,12 @@ import au.com.royalpay.payment.tools.connections.mpsupport.MpWechatApiProvider;
import au.com.royalpay.payment.tools.connections.mpsupport.beans.TemplateMessage; import au.com.royalpay.payment.tools.connections.mpsupport.beans.TemplateMessage;
import au.com.royalpay.payment.tools.exceptions.BadRequestException; import au.com.royalpay.payment.tools.exceptions.BadRequestException;
import au.com.royalpay.payment.tools.exceptions.ForbiddenException; import au.com.royalpay.payment.tools.exceptions.ForbiddenException;
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -59,34 +61,42 @@ public class CustomerServiceServiceImpl implements CustomerServiceService {
private String appkey; private String appkey;
@Override @Override
public JSONObject checkAndSave(JSONObject account) { public JSONObject checkAndSavePartner(JSONObject account) {
JSONObject client = null; JSONObject client = clientManager.getClientInfo(account.getIntValue("client_id"));
boolean isPartner = true; if (client == null) {
if (StringUtils.isNotEmpty(account.getString("account_id"))) { throw new BadRequestException("Merchant Not Found");
client = clientManager.getClientInfo(account.getIntValue("client_id"));
if (client == null) {
throw new BadRequestException("Merchant Not Found");
}
account = clientAccountMapper.findById(account.getString("account_id"));
isPartner = true;
} }
if (StringUtils.isNotEmpty(account.getString("manager_id"))) { JSONObject userInfo = clientAccountMapper.findById(account.getString("account_id"));
account = managerMapper.findDetail(account.getString("manager_id")); JSONObject checkRecord = new JSONObject();
isPartner = false; checkRecord.put("nick", userInfo.getString("username") + "_" + client.getString("client_moniker"));
checkRecord.put("user_id", userInfo.getString("username"));
checkRecord.put("password", DigestUtils.md5Hex("uid"));
openimApi.addUser(checkRecord);
checkRecord.put("servants", sysCustomerServiceMapper.findOnline());
checkRecord.put("appkey", appkey);
return checkRecord;
}
@Override
public JSONObject checkAndSaveManager(JSONObject manager) {
if (StringUtils.isEmpty(manager.getString("manager_id"))) {
throw new ServerErrorException("manager id is null");
} }
String uid = account.getString("username") + (isPartner ? "_" + client.getString("client_moniker") : ""); JSONObject result = sysCustomerServiceMapper.findByManagerId(manager.getString("manager_id"));
JSONObject saveRecord = new JSONObject(); if (result == null) {
saveRecord.put("nick", account.getString("display_name")); JSONObject managerDetail = managerMapper.findDetail(manager.getString("manager_id"));
saveRecord.put("password", DigestUtils.md5Hex("uid")); JSONObject checkRecord = new JSONObject();
if (isPartner) { checkRecord.put("user_id", managerDetail.getString("username"));
saveRecord.put("user_id", uid); int num = sysCustomerServiceMapper.countAll();
saveRecord.put("servants", sysCustomerServiceMapper.findOnline()); checkRecord.put("nick", "客服" + num);
} else { checkRecord.put("password", RandomStringUtils.random(12, true, true).toLowerCase());
saveRecord.put("user_id", uid); openimApi.addUser(checkRecord);
result = checkRecord;
} }
openimApi.addUser(saveRecord); result.put("appkey", appkey);
saveRecord.put("appkey", appkey); result.remove("manager_id");
return saveRecord; result.remove("onoff");
return result;
} }
@Override @Override
@ -120,10 +130,10 @@ public class CustomerServiceServiceImpl implements CustomerServiceService {
} }
if (StringUtils.isNotEmpty(userNames)) { if (StringUtils.isNotEmpty(userNames)) {
List<String> userNams = Arrays.asList(userNames.split(",")); List<String> userNams = Arrays.asList(userNames.split(","));
if(CollectionUtils.isEmpty(userNams)){ if (CollectionUtils.isEmpty(userNams)) {
return Collections.EMPTY_LIST; return Collections.EMPTY_LIST;
} }
queryParams.put("userNames",userNams ); queryParams.put("userNames", userNams);
} }
if (queryParams.size() < 1) { if (queryParams.size() < 1) {
return Collections.emptyList(); return Collections.emptyList();
@ -145,7 +155,7 @@ public class CustomerServiceServiceImpl implements CustomerServiceService {
JSONObject record = new JSONObject(); JSONObject record = new JSONObject();
record.put("manager_id", manager.getString("manager_id")); record.put("manager_id", manager.getString("manager_id"));
record.put("onoff", manager.getBoolean("onoff")); record.put("onoff", manager.getBoolean("onoff"));
udpateOrSave(record); saveOrUpdate(record,false);
} }
@Override @Override
@ -203,16 +213,24 @@ public class CustomerServiceServiceImpl implements CustomerServiceService {
return msg; return msg;
} }
private void udpateOrSave(JSONObject servant) { private void saveOrUpdate(JSONObject servant, boolean updateOpenim) {
JSONObject record = sysCustomerServiceMapper.findByManagerId(servant.getString("manager_id")); if (StringUtils.isEmpty(servant.getString("manager_id"))) {
if (record == null) { throw new ServerErrorException("manager id is null");
JSONObject manager = managerMapper.findDetail(servant.getString("manager_id")); }
servant.put("manager_id", manager.getString("manager_id")); JSONObject existCS = sysCustomerServiceMapper.findByManagerId(servant.getString("manager_id"));
servant.put("user_id", manager.getString("username")); if (existCS == null) {
JSONObject userInfo = checkAndSaveManager(servant);
servant.put("password", userInfo.getString("password"));
servant.put("nick", userInfo.getString("nick"));
servant.put("user_id", userInfo.getString("user_id"));
sysCustomerServiceMapper.save(servant); sysCustomerServiceMapper.save(servant);
} else { } else {
sysCustomerServiceMapper.update(servant); sysCustomerServiceMapper.update(servant);
} if (updateOpenim) {
servant.put("user_id", existCS.getString("user_id"));
openimApi.updateUser(servant);
}
}
} }
} }

@ -39,8 +39,13 @@ public class OpenimApiImpl implements OpenimApi {
} }
@Override @Override
public void updateUser() { public void updateUser(JSONObject user) {
List<Userinfos> updateList = new ArrayList<>();
Userinfos record = new Userinfos();
record.setUserid(user.getString("user_id"));
record.setNick(user.getString("nick"));
updateList.add(record);
openimClient.updateUser(updateList);
} }
@Override @Override

@ -97,9 +97,9 @@
<select id="listServants" resultType="com.alibaba.fastjson.JSONObject"> <select id="listServants" resultType="com.alibaba.fastjson.JSONObject">
<![CDATA[ <![CDATA[
SELECT display_name,manager_id SELECT m.display_name display_name,m.manager_id manager_id, cs.nick nick
FROM sys_managers FROM sys_managers m left join sys_customer_service cs on m.manager_id = cs.manager_id
WHERE role & #{mask} >0 AND (org_id IS NULL or org_id=1) AND is_valid = 1 WHERE m.role & #{mask} >0 AND (m.org_id IS NULL or m.org_id=1) AND m.is_valid = 1
]]> ]]>
</select> </select>

Loading…
Cancel
Save