编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

app集成铛铛,使用app自己的用户,nutz做为后端

wxchong 2024-07-04 09:54:08 开源技术 11 ℃ 0 评论

1、后端使用nutz(nutz是什么看这里:http://bbs.wex5.com/forum.php?mo ... 5492&highlight=nutz)

2、两个数据表:customer、customerSrv

3、customer表:用户表,app的用户,用户登录需要这张表

4、customerSrv表:客服表,客服也可以登录铛铛,暂时客服只设置一人,客户只能pc端登录,app端暂时没有支持。一般情况客服用pc端更合适。

5、loginByWx5:铛铛用户登录,由于用app自己的用户登录,不需要铛铛的登录界面,app用户登录后把铛铛需要的信息保存到localStroge中

6、重点关注localStorage的chat_loginData,app登录成功后,按照铛铛的规则要求把用户、密码信息加密后保存到chat_loginData中

7、铛铛自己的登录代码要注释掉,不能弹出铛铛的登录界面,涉及的地方比较多,不贴代码了,一步步调试可以解决

/chat/wex5/js/im.wex5.impl.js

代码片段:

loginByWx5

var loginByWex5 = function(params) {

var ret;

var userParams = {};

userParams.CurrentPersonID = "";

userParams.CurrentPersonName = "";

userParams.CurrentPersonFID = "";

userParams.CurrentPersonFName = "";

userParams.CurrentOgnID = "";

userParams.CurrentOgnName = "";

userParams.CurrentDeptID = "";

userParams.CurrentDeptName = "";

userParams.CurrentDeptFID = "";

userParams.CurrentDeptFName = "";

userParams.CurrentOgnFID = "";

userParams.CurrentOgnFName = "";

userParams.CurrentFunRole = "3";// 默认为3:普通员工。(1:公司领导;2:部门主管;3:普通员工)

justep.Baas.sendRequest({

//"url" : "/org/login",

"url" : "/ecoolper/chat",

//"action" : "loginAction",

"action" : "login",

"async" : false,

"params" : {

"userName" : params.username,

"password" : params.password

},

"success" : function(data) {

ret = data;

if (ret.flag) {

userParams.CurrentPersonID = ret.personID;

userParams.CurrentPersonName = ret.personName;

//wjw(20160806),注释。。。

// userParams.CurrentPersonFID = ret.CurrentFID;

// userParams.CurrentPersonFName = ret.CurrentFName;

// userParams.CurrentOgnID = ret.CurrentOgnID;

// userParams.CurrentOgnName = ret.CurrentOgnName;

// userParams.CurrentFunRole = ret.CurrentFunRole;

//

// userParams.CurrentOgnFID = "/" + ret.CurrentFID.split("/")[1];

// userParams.CurrentOgnFName = "/" + ret.CurrentFName.split("/")[1];

// if (ret.CurrentFID.indexOf("dpt") > 0) {

// userParams.CurrentDeptID = ret.CurrentDeptID;

// userParams.CurrentDeptName = ret.CurrentDeptName;

// userParams.CurrentDeptFID = ret.CurrentFID.substring(0, ret.CurrentFID.indexOf("dpt") + 3);

// userParams.CurrentDeptFName = ret.CurrentFName.substring(0, ret.CurrentFName.indexOf("/", ret.CurrentFName.indexOf("/", 2) + 1));

// }

saveLoginDataToStore(userParams);

}

}

});

return ret;

};

loadPerson

loadPerson : function(persons, pid) {

var deferred = $.Deferred();

justep.Baas.sendRequest({

//"url" : "/org/loadPerson",

"url" : "/ecoolper/chat",

"action" : "loadPerson",

"async" : false,

"params" : {

"sPersonID" : pid

},

"success" : function(data) {

//客户id

localStorage.setItem("customerSrv", data.customerSrv);

$.each(data.persons, function(i, v) {

var p = {

id : v.sPersonID,

name : v.sName,

uid : v.sNumb,

avatar : getPersonAvatar(v.sPhoto),

nick : '',

phones : [],

about : ''

};

persons[v.sPersonID] = new Person(p);

});

deferred.resolve(persons);

}

});

return deferred.promise();

},

updatePersonUid:更新数据库中的sNumb字段

updatePersonUid : function(uid, pid) {

var self = this;

var deferred = $.Deferred();

justep.Baas.sendRequest({

"url" : "/zlz/crm/person",

"action" : "updateUid",

"async" : false,

"params" : {

"uid" : uid,

"pid" : pid

},

"success" : function(data) {

if (data.state) {

var person = self._getPerson(pid);

if (person) {

person.uid = uid;

}

}

deferred.resolve();

}

});

return deferred.promise();

},

后端java代码片段,用nutz实现对应js中的loginByWx5

@At("/login")

@Ok("json")

@AdaptBy(type = JsonAdaptor.class)

public JSONObject login(@Param("..") JSONObject params) {

String userName = params.getString("userName");

String password = params.getString("password");

JSONObject ret = new JSONObject();

if (Strings.isBlank(userName)) {

ret.put("flag", false);

ret.put("message", "登录名不能为空");

} else {

Cnd cnd = Cnd.NEW();

cnd.and("phone", "=", userName);

cnd.and("password", "=", password);

Customer customer = dao.fetch(Customer.class, cnd);

if (customer == null) {

ret.put("flag", false);

ret.put("message", "登录名或密码错误");

} else {

ret.put("flag", true);

ret.put("personID", customer.getId());

ret.put("personName", customer.getNickname());

ret.put("message", "");

ret.put("CurrentFunRole", "");

ret.put("CurrentOgnID", "");

ret.put("CurrentOgnName", "");

ret.put("CurrentDeptID", "");

ret.put("CurrentDeptName", "");

ret.put("CurrentFID", "");

ret.put("CurrentFName", "");

ret.put("isInOrg", true);

}

}

return ret;

}

对应js中的loadPerson

@At("/loadPerson")

@Ok("json")

@AdaptBy(type = JsonAdaptor.class)

public JSONObject loadPerson(@Param("..") JSONObject params) throws SQLException, NamingException {

String id = params.getString("sPersonID");

JSONObject ret = new JSONObject();

JSONArray jArray = new JSONArray();

// 本人

Customer customer = dao.fetch(Customer.class, id);

if (customer != null) {

JSONObject json = new JSONObject();

json.put("sID", customer.getId());

json.put("sChineseFirstPY", "");

json.put("sFID", "");

json.put("sCode", "");

json.put("sFCode", "");

json.put("sFName", customer.getNickname());

json.put("sName", customer.getNickname());

json.put("sNumb", customer.getNumb());

json.put("sOrgKindID", "");

json.put("sPersonID", customer.getId());

json.put("sPhoto", "");

json.put("sSequence", "");

json.put("sValidState", "");

jArray.add(json);

}

// 客服

CustomerSrv cusSrv = dao.fetch(CustomerSrv.class);

if (cusSrv != null) {

JSONObject json = new JSONObject();

json.put("sID", cusSrv.getId());

json.put("sChineseFirstPY", "");

json.put("sFID", "");

json.put("sCode", "");

json.put("sFCode", "");

json.put("sFName", cusSrv.getName());

json.put("sName", cusSrv.getName());

json.put("sNumb", cusSrv.getNumb());

json.put("sOrgKindID", "");

json.put("sPersonID", cusSrv.getId());

json.put("sPhoto", "");

json.put("sSequence", "");

json.put("sValidState", "");

jArray.add(json);

ret.put("customerSrv", cusSrv.getId());

}

ret.put("persons", jArray);

return ret;

}

对应js中的:updatePersonUid

@At("/updateUid")

@Ok("json")

@AdaptBy(type=JsonAdaptor.class)

public JSONObject updatePersoUid(JSONObject params) {

JSONObject ret = new JSONObject();

ret.put("flag", false);

String pid = params.getString("pid");

int uid =Integer.parseInt(params.getString("uid") == null ? "0" : params.getString("uid").toString()); ;

//客服表

CustomerSrv customerSrv =dao.fetch(CustomerSrv.class, pid);

if(customerSrv !=null){

customerSrv.setNumb(uid);

dao.update(customerSrv);

ret.put("flag", true);

return ret;

}

//客户表

Customer customer =dao.fetch(Customer.class, pid);

if(customer !=null){

customer.setNumb(uid);

ret.put("flag", true);

return ret;

}

return ret;

}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表