| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- package com.cnd3b.restcontroller.customer.usercenter.teammsg;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.cnd3b.common.Controller;
- import com.cnd3b.common.D3bException;
- import com.cnd3b.common.data.Row;
- import com.cnd3b.common.data.Rows;
- import com.cnd3b.common.data.RowsMap;
- import com.cnd3b.common.data.SQLFactory;
- import com.cnd3b.common.parameter.parameter;
- import com.cnd3b.utility.Encryption;
- import com.cnd3b.utility.Sms;
- import p2.pao.PaoRemote;
- import p2.pao.PaoSetRemote;
- import p2.util.P2Exception;
- import java.util.*;
- public class teammsg extends Controller {
- public teammsg(JSONObject content) {
- super(content);
- }
- /**
- * 经销商账号列表查询
- *
- * @return
- */
- public String query_userList() {
- SQLFactory sqlFactory = new SQLFactory(this, "经销商账号列表查询");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("tagentsid", tagentsid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- SQLFactory subusersql = new SQLFactory(this, "下级账号查询");
- subusersql.addParameter("siteid", siteid);
- subusersql.addParameter_in("fparentid", rows.toArrayList("tenterprise_userid"));
- RowsMap map = dbConnect.runSqlQuery(subusersql.getSQL()).toRowsMap("fparentid");
- RowsMap attinfosMap = getAttachmentUrl("tenterprise_users", rows.toArrayList("tenterprise_userid"), "headportrait");
- for (Row row : rows) {
- String tenterprise_userid = row.getString("tenterprise_userid");
- Rows subuserrows = map.get(tenterprise_userid);
- String[] subusers = subuserrows.toArray("tenterprise_userid");
- row.put("subusers", subusers);
- for (Row subuserrow : subuserrows) {
- subuserrow.put("attinfos", attinfosMap.get(subuserrow.getString("tenterprise_userid")));
- }
- row.put("subusermsgs", subuserrows);
- row.put("attinfos", attinfosMap.get(tenterprise_userid));
- }
- return getSucReturnObject().setData(rows).saveToDataPool().toString();
- }
- /**
- * 经销商账号信息修改
- *
- * @return
- */
- public String update_userMsg() throws D3bException, P2Exception {
- long tenterprise_userid = content.getLongValue("tenterprise_userid");//账号ID
- String fname = content.getString("fname", "tenterprise_users.fname", "账号名称");//姓名
- String frole = content.getString("frole", "tenterprise_users.frole", "身份/职位");//职位
- String fphonenumber = content.getString("fphonenumber", "tenterprise_users.fphonenumber", "手机号码");//手机号
- boolean fisused = content.getBoolean("fisused");
- JSONArray subusersArray = content.getJSONArray("subusers");
- boolean toBeAdded = false;
- PaoSetRemote tenterprise_usersSet = getP2ServerSystemPaoSet("tenterprise_users", "siteid='" + siteid + "' and tagentsid='" + tagentsid + "' and tenterprise_userid='" + tenterprise_userid + "'");
- PaoRemote pao = null;
- if (tenterprise_userid <= 0 || tenterprise_usersSet.isEmpty()) {
- pao = tenterprise_usersSet.addAtEnd();
- pao.setValue("tagentsid", tagentsid, 11L);
- pao.setValue("siteid", siteid, 11L);
- pao.setValue("fusertype", "经销商", 11L);
- tenterprise_userid = pao.getUniqueIDValue();
- toBeAdded = true;
- } else {
- pao = tenterprise_usersSet.getPao(0);
- }
- pao.setValue("fisused", fisused, 11L);
- pao.setValue("fname", fname, 11L);
- pao.setValue("frole", frole, 11L);
- pao.setValue("fphonenumber", fphonenumber, 11L);
- pao.setValue("changeby", username, 11L);
- pao.setValue("changedate", getDateTime(), 11L);
- /**
- * 查询下级账号,如不存在,则新增下级账号
- */
- PaoSetRemote tenterprise_userdetailSet = pao.getPaoSet("$tenterprise_userdetail", "tenterprise_userdetail", "siteid=:siteid and fparentid=:tenterprise_userid");
- HashMap<String, PaoRemote> paoMap = getPaoMap(tenterprise_userdetailSet, "fsubid");
- /**
- * 用以判断是否需要将表体行删除
- */
- ArrayList<String> donotdeleteid = new ArrayList<>();
- Iterator subuserlistit = subusersArray.iterator();
- ArrayList<String> distinctid = new ArrayList<>();
- while (subuserlistit.hasNext()) {
- String fsubid = String.valueOf(subuserlistit.next());
- if (distinctid.contains(fsubid)) {
- continue;
- } else {
- distinctid.add(fsubid);
- }
- PaoRemote subuserpao = null;
- if (!paoMap.containsKey(fsubid)) {
- subuserpao = tenterprise_userdetailSet.addAtEnd();
- subuserpao.setValue("siteid", siteid, 11L);//企业ID
- subuserpao.setValue("fparentid", tenterprise_userid, 11L);//账号ID
- subuserpao.setValue("fsubid", fsubid, 11L);//下级账号ID
- subuserpao.setValue("createby", username, 11L);//录入人
- subuserpao.setValue("createdate", getDateTime(), 11L);//录入时间
- } else {
- donotdeleteid.add(fsubid);
- subuserpao = paoMap.get(fsubid);
- }
- subuserpao.setValue("changeby", username, 11L);//修改人
- subuserpao.setValue("changedate", getDateTime(), 11L);//修改时间
- }
- /**
- * 删除多余的行
- */
- for (String fsubid : paoMap.keySet()) {
- if (!donotdeleteid.contains(fsubid)) {
- if (!paoMap.get(fsubid).isModified()) {
- paoMap.get(fsubid).delete();
- }
- }
- }
- tenterprise_usersSet.save();
- //修改账号姓名等缓存信息
- Row row = parameter.userIdList.get(tenterprise_userid);
- row.put("fname", fname);
- parameter.userIdList.put(userid, row);
- dbConnect.runSqlUpdate("update timdialogusers set fname='" + fname + "'where siteid='" + siteid + "' and tenterprise_userid='" + tenterprise_userid + "'");
- if (toBeAdded) {
- createSystemMessage("团队", "团队加入通知", "恭喜加入" + getAgent(tagentsid).getString("fbrand") + "团队", tenterprise_userid);
- }
- return getSucReturnObject().toString();
- }
- /**
- * 转让主账号功能
- *
- * @return
- */
- public String changeAdministrator() throws D3bException, P2Exception {
- String fpassword = content.getString("fpassword");//验证码
- long tenterprise_userid = content.getLong("tenterprise_userid");//转让账号ID
- int resultcode;
- if (!parameter.changeAdministrator_passwordmap.containsKey(tenterprise_userid)) {
- resultcode = 1;//没有获取验证码
- } else if (parameter.changeAdministratorpassword_date.get(tenterprise_userid).before(Calendar.getInstance().getTime())) {
- resultcode = 2;//验证码已失效
- } else {
- //系统验证码
- String syspassword = parameter.changeAdministrator_passwordmap.get(tenterprise_userid);
- if (fpassword.equals(new Encryption().Encode_MD5(syspassword))) {
- resultcode = 0;//验证码正确
- } else {
- resultcode = 3;//验证码错误
- }
- }
- if (resultcode == 0) {
- parameter.changeAdministrator_passwordmap.remove(tenterprise_userid);
- parameter.changeAdministratorpassword_date.remove(tenterprise_userid);
- String sql1 = "update tenterprise_users set fisadministrator=0 where siteid='" + siteid + "' and tenterprise_userid=" + userid;
- String sql2 = "update tenterprise_users set fisadministrator=1 where siteid='" + siteid + "' and tenterprise_userid=" + tenterprise_userid;
- ArrayList<String> sqllist = new ArrayList<>();
- sqllist.add(sql1);
- sqllist.add(sql2);
- String status = dbConnect.runSqlUpdate(sqllist);
- if ("true".equals(status)) {
- /**
- * 发送成功转让消息
- */
- createSystemMessage("团队", "管理员变更", "您的管理者权限已转出", userid);
- createSystemMessage("团队", "管理员变更", "您已成为当前团队管理者", tenterprise_userid);
- /**
- * 更新管理员缓存
- */
- if (parameter.userIdList.containsKey(userid)) {
- Row oldadministrator = parameter.userIdList.get(userid);
- oldadministrator.put("fisadministrator", 0);
- parameter.userIdList.put(userid, oldadministrator);
- }
- if (parameter.userIdList.containsKey(tenterprise_userid)) {
- Row newadministrator = parameter.userIdList.get(tenterprise_userid);
- newadministrator.put("fisadministrator", 1);
- parameter.userIdList.put(tenterprise_userid, newadministrator);
- }
- return getSucReturnObject().toString();
- } else {
- return getErrReturnObject().setErrMsg(status).toString();
- }
- } else {
- String msg = "";
- if (resultcode == 1) {
- msg = "请先获取验证码!";
- } else if (resultcode == 2) {
- msg = "验证码已失效,请重新获取!";
- } else if (resultcode == 3) {
- msg = "无效的验证码!";
- }
- return getErrReturnObject().setErrMsg(msg).toString();
- }
- }
- /**
- * 转让验证码获取
- *
- * @return
- */
- public String getPassword() throws D3bException, P2Exception {
- long tenterprise_userid = content.getLong("tenterprise_userid");//转让账号ID
- String fphonenumber = getUser(tenterprise_userid).getString("fphonenumber");
- String password = createPassWord();
- parameter.changeAdministrator_passwordmap.put(tenterprise_userid, password);
- Calendar calendar = Calendar.getInstance();
- calendar.add(Calendar.MINUTE, 5);
- parameter.changeAdministratorpassword_date.put(tenterprise_userid, calendar.getTime());
- if (parameter.isdebug()) {
- return getSucReturnObject().setData("验证码:" + password).toString();
- } else {
- Sms sms = new Sms();
- sms.sendOutMsg(fphonenumber, password);
- return getSucReturnObject().setData("验证码已发送,请注意查收!").toString();
- }
- }
- private String createPassWord() {
- String allChar = "1234567890";
- StringBuffer sb = new StringBuffer();
- Random random = new Random();
- for (int i = 0; i < 6; i++) {
- sb.append(allChar.charAt(random.nextInt(allChar.length())));
- }
- if (parameter.changeAdministrator_passwordmap.containsValue(sb.toString())) {
- return createPassWord();
- } else {
- return sb.toString();
- }
- }
- /**
- * 团队成员启用停用
- *
- * @return
- */
- public String updateusedstate() throws D3bException, P2Exception {
- long tenterprise_userid = content.getLongValue("tenterprise_userid");//账号ID
- boolean fisused = content.getBooleanValue("fisused");//是否启用
- String status = dbConnect.runSqlUpdate("update tenterprise_users set fisused='" + (fisused ? 1 : 0) + "' where siteid='" + siteid + "' and tagentsid='" + tagentsid + "' and tenterprise_userid='" + tenterprise_userid + "'");
- if ("true".equals(status)) {
- return getSucReturnObject().toString();
- } else {
- return getErrReturnObject().setErrMsg(status).toString();
- }
- }
- /**
- * 团队加入申请审核
- *
- * @return
- */
- public String checkEntryTeamApply() throws P2Exception {
- boolean isPass = content.getBooleanValue("isPass");
- //加入商户团队申请表id
- long tagentteamapplyid = content.getLong("tagentteamapplyid");
- //企业账号表id
- long tenterprise_userid = content.getLong("tenterprise_userid");
- PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tagentteamapply", "tagentteamapplyid = '" + tagentteamapplyid + "'");
- if (!paoSetRemote.isEmpty()) {
- PaoRemote paoRemote = paoSetRemote.getPao(0);
- PaoSetRemote paoSetRemote_tenterprise = paoRemote.getPaoSet("tenterprise_users", "tenterprise_users", "tenterprise_userid = '" + tenterprise_userid + "'");
- if (paoSetRemote_tenterprise.isEmpty()) {
- return getErrReturnObject().setErrMsg("未找到申请人信息").toString();
- }
- PaoRemote paoRemote_tenterprise = paoSetRemote_tenterprise.getPao(0);
- //拒绝,只更新商户团队申请表
- if (!isPass) {
- paoRemote.setValue("fstatus", "拒绝", 11L);
- paoSetRemote.save();
- createSystemMessage("团队", "团队加入通知", "申请不通过!", tenterprise_userid);
- return getSucReturnObject().setData("拒绝成功").toString();
- } else {
- paoRemote.setValue("fstatus", "审核", 11L);
- String sql = "SELECT ftype FROM tagents WHERE tagentsid = '" + paoRemote_tenterprise.getString("tagentsid") + "'";
- Rows rows = dbConnect.runSqlQuery(sql);
- String ftype = "";
- if (!rows.isEmpty()) {
- ftype = rows.get(0).getString("ftype");
- }
- //如果是个人
- if (ftype.equals("个人")) {
- paoRemote_tenterprise.getPaoSet("tagents", "tagents", "tagentsid=:tagentsid").getPao(0).delete();
- paoRemote_tenterprise.setValue("tagentsid", tagentsid, 11L);
- paoRemote_tenterprise.setValue("fisadministrator", false, 11L);
- } else {
- PaoRemote pao = paoSetRemote_tenterprise.addAtEnd();
- pao.setValue("SITEID", paoRemote_tenterprise.getString("SITEID"), 11L);
- pao.setValue("FNAME", paoRemote_tenterprise.getString("FNAME"), 11L);
- pao.setValue("FPHONENUMBER", paoRemote_tenterprise.getString("FPHONENUMBER"), 11L);
- pao.setValue("fusertype", "经销商");
- pao.setValue("fisadministrator", false, 11L);
- pao.setValue("tagentsid", tagentsid, 11L);
- paoRemote.setValue("fuserid", pao.getUniqueIDValue(), 11L);
- tenterprise_userid = pao.getUniqueIDValue();
- }
- paoSetRemote.save();
- createSystemMessage("团队", "团队加入通知", "恭喜加入" + getAgent(tagentsid).getString("fbrand"), tenterprise_userid);
- return getSucReturnObject().setData("审核成功").toString();
- }
- } else {
- return getErrReturnObject().setErrMsg("未找到申请记录").toString();
- }
- }
- /**
- * 获取团队加入申请列表
- *
- * @return
- */
- public String getEntryTeamApplyList() {
- SQLFactory sqlFactory = new SQLFactory(this, "团队加入申请列表", pageSize, pageNumber, "createdate");
- sqlFactory.addParameter("tagentsid", tagentsid);
- sqlFactory.addParameter("siteid", siteid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- for (Row row : rows) {
- row.put("attinfos", getAttachmentUrl("tenterprise_users", row.getString("tenterprise_userid")));
- }
- return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
- }
- }
|