User.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package openapi.restcontroller.housekeeper.user;
  2. import net.sf.json.JSONArray;
  3. import net.sf.json.JSONObject;
  4. import openapi.base.Controller;
  5. import openapi.base.SQLFactory;
  6. import openapi.base.data.Row;
  7. import openapi.base.data.Rows;
  8. import openapi.base.data.db.DBConnect;
  9. import openapi.tools.UserCreaterUtil;
  10. import org.apache.commons.lang.StringUtils;
  11. import p2.p2server.P2Server;
  12. import p2.pao.PaoRemote;
  13. import p2.pao.PaoSetRemote;
  14. import p2.util.P2Exception;
  15. public class User extends Controller {
  16. public User(JSONObject content) {
  17. super(content);
  18. }
  19. /**人员列表**/
  20. public String userlist(){
  21. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  22. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  23. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  24. JSONObject where = content.getJSONObject("where");
  25. String wherestr="1=1";
  26. if(where!=null){
  27. DBConnect dbConnect=new DBConnect();
  28. if(where.containsKey("fname")&&!StringUtils.isBlank(where.getString("fname"))){
  29. wherestr+=" and (fname like '%"+where.getString("fname")+"%' or phone like '%"+where.getString("fname")+"%')";
  30. }
  31. SQLFactory factory=new SQLFactory(this,"经销商员工列表查询",pageSize,pageNumber,"t.createdate desc");
  32. factory.addParameter("fagentnum",fagentnum);
  33. factory.addParameter("siteid",siteid);
  34. factory.addParameter_SQL("where",wherestr);
  35. Rows rows = dbConnect.runSqlQuery(factory.getSQL());
  36. return getReturnObject_suc_page(rows,false,0).toString();
  37. }
  38. return getReturnObject_err("缺少where参数").toString();
  39. }
  40. /**人员添加**/
  41. public String useradd(){
  42. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  43. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  44. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  45. JSONObject where = content.getJSONObject("where");
  46. String s[]={"phone","password","fname","role"};
  47. for (String s1 : s) {
  48. if(!where.containsKey(s1)||StringUtils.isBlank(where.getString(s1)))return getReturnObject_err("缺少"+s1+"参数").toString();
  49. }
  50. if(where!=null) {
  51. if (where.getString("password").length() < 6) getReturnObject_err("密码不能小于6位").toString();
  52. try {
  53. PaoSetRemote staff = P2Server.getP2Server().getPaoSet("staff", P2Server.getP2Server().getSystemUserInfo());
  54. staff.setInsertSite(siteid);
  55. staff.setWhere("phone='" + where.getString("phone") + "'");
  56. staff.reset();
  57. if (!staff.isEmpty()) return getReturnObject_err("已存在该人员").toString();
  58. PaoRemote staffpao = staff.addAtEnd();
  59. staffpao.setValue("phone", where.getString("phone"), 2l);
  60. staffpao.setValue("FAGENTNUM", fagentnum, 11l);
  61. staffpao.setValue("fname", where.getString("fname"), 11l);
  62. staffpao.setValue("role", where.getString("role"), 11l);
  63. if (where.containsKey("fnotes")) staffpao.setValue("fnotes", where.getString("fnotes"), 11l);
  64. if (where.containsKey("fsex")) staffpao.setValue("fsex", where.getString("fsex"), 11l);
  65. if (where.containsKey("authority")) {
  66. JSONArray authority = where.getJSONArray("authority");
  67. PaoSetRemote staff_authority = staffpao.getPaoSet("staff_authority");
  68. for (int i = 0; i < authority.size(); i++) {
  69. JSONObject o = (JSONObject) authority.get(i);
  70. String authoritymodule = o.getString("authoritymodule");
  71. boolean fisedit = o.getBoolean("fisedit");
  72. boolean fisquery = o.getBoolean("fisquery");
  73. PaoRemote remote = staff_authority.addAtEnd();
  74. remote.setValue("Authoritymodule", authoritymodule, 2l);
  75. remote.setValue("fisedit", fisedit, 11l);
  76. remote.setValue("fisquery", fisquery, 11l);
  77. }
  78. }
  79. staff.save();
  80. UserCreaterUtil.createuser(siteid, where.getString("phone"), where.getString("password"), where.getString("fname"), "经销商员工账号", new String[]{});
  81. return getReturnObject_suc().toString();
  82. } catch (P2Exception e) {
  83. return getReturnObject_err(e.getMessage()).toString();
  84. }
  85. }
  86. return getReturnObject_err("缺少where参数").toString();
  87. }
  88. /**人员更新**/
  89. public String userupdate(){
  90. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  91. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  92. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  93. JSONObject where = content.getJSONObject("where");
  94. String s[]={"phone"};
  95. for (String s1 : s) {
  96. if(!where.containsKey(s1)||StringUtils.isBlank(where.getString(s1)))return getReturnObject_err("缺少"+s1+"参数").toString();
  97. }
  98. if(where!=null){
  99. try {
  100. PaoSetRemote staff = P2Server.getP2Server().getPaoSet("staff", P2Server.getP2Server().getSystemUserInfo());
  101. staff.setInsertSite(siteid);
  102. staff.setWhere("phone='"+where.getString("phone")+"'");
  103. staff.reset();
  104. if(!staff.isEmpty()){
  105. PaoRemote staffpao = staff.getPao(0);
  106. if(where.containsKey("fname")&&!StringUtils.isBlank(where.getString("fname"))){
  107. staffpao.setValue("fname",where.getString("fname"),11l);
  108. PaoSetRemote pp_hr = P2Server.getP2Server().getPaoSet("PP_HR", P2Server.getP2Server().getSystemUserInfo());
  109. pp_hr.setWhere("hrid='"+where.getString("phone")+"'");
  110. pp_hr.reset();
  111. if(!pp_hr.isEmpty())pp_hr.getPao(0).setValue("DISPLAYNAME",where.getString("fname"),11l);
  112. }
  113. if(where.containsKey("fsex")&&!StringUtils.isBlank(where.getString("fsex"))){
  114. staffpao.setValue("fsex",where.getString("fsex"),11l);
  115. }
  116. if(where.containsKey("role")&&!StringUtils.isBlank(where.getString("role"))){
  117. staffpao.setValue("role",where.getString("role"),11l);
  118. }
  119. if(where.containsKey("fnotes")&&!StringUtils.isBlank(where.getString("fnotes"))){
  120. staffpao.setValue("fnotes",where.getString("fnotes"),11l);
  121. }
  122. if(where.containsKey("fisused")){
  123. staffpao.setValue("fisused",where.getBoolean("fisused"),11l);
  124. }
  125. if(where.containsKey("authority")){
  126. JSONArray authority = where.getJSONArray("authority");
  127. PaoSetRemote staff_authority = staffpao.getPaoSet("staff_authority");
  128. for (int i = 0; i < authority.size(); i++) {
  129. JSONObject o = (JSONObject) authority.get(i);
  130. String authoritymodule = o.getString("authoritymodule");
  131. boolean fisedit = o.getBoolean("fisedit");
  132. boolean fisquery = o.getBoolean("fisquery");
  133. PaoSetRemote staff_authority1 = staffpao.getPaoSet("staff_authority");
  134. staff_authority1.setWhere("authoritymodule='"+authoritymodule+"'");
  135. staff_authority1.reset();
  136. if(staff_authority1.isEmpty()){
  137. PaoRemote remote = staff_authority.addAtEnd();
  138. remote.setValue("Authoritymodule",authoritymodule,2l);
  139. remote.setValue("fisedit",fisedit,11l);
  140. remote.setValue("fisquery",fisquery,11l);
  141. }else{
  142. PaoRemote pao = staff_authority1.getPao(0);
  143. pao.setValue("fisedit",fisedit,11l);
  144. pao.setValue("fisquery",fisquery,11l);
  145. }
  146. staff_authority1.save();
  147. }
  148. }
  149. staff.save();
  150. return getReturnObject_suc().toString();
  151. }
  152. return getReturnObject_err("该人员不存在").toString();
  153. } catch (P2Exception e) {
  154. return getReturnObject_err(e.getMessage()).toString();
  155. }
  156. }
  157. return getReturnObject_err("缺少where参数").toString();
  158. }
  159. /**人员删除**/
  160. public String userdelete(){
  161. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  162. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  163. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  164. JSONObject where = content.getJSONObject("where");
  165. String s[]={"phone"};
  166. for (String s1 : s) {
  167. if(!where.containsKey(s1)||StringUtils.isBlank(where.getString(s1)))return getReturnObject_err("缺少"+s1+"参数").toString();
  168. }
  169. if(where!=null){
  170. try {
  171. PaoSetRemote staff = P2Server.getP2Server().getPaoSet("staff", P2Server.getP2Server().getSystemUserInfo());
  172. staff.setInsertSite(siteid);
  173. staff.setWhere("phone='"+where.getString("phone")+"'");
  174. if(!staff.isEmpty()){
  175. PaoRemote staffpao = staff.getPao(0);
  176. staffpao.delete();
  177. staff.save();
  178. return getReturnObject_suc().toString();
  179. }
  180. return getReturnObject_err("该人员不存在").toString();
  181. } catch (P2Exception e) {
  182. return getReturnObject_err(e.getMessage()).toString();
  183. }
  184. }
  185. return getReturnObject_err("缺少where参数").toString();
  186. }
  187. /**人员详情**/
  188. public String userdetail(){
  189. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  190. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  191. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  192. JSONObject where = content.getJSONObject("where");
  193. String s[]={"phone"};
  194. for (String s1 : s) {
  195. if(!where.containsKey(s1)||StringUtils.isBlank(where.getString(s1)))return getReturnObject_err("缺少"+s1+"参数").toString();
  196. }
  197. if(where!=null){
  198. DBConnect dbConnect=new DBConnect();
  199. SQLFactory factory=new SQLFactory(this,"经销商员工详情");
  200. factory.addParameter("fagentnum",fagentnum);
  201. factory.addParameter("siteid",siteid);
  202. factory.addParameter("phone",where.getString("phone"));
  203. Rows rows = dbConnect.runSqlQuery(factory.getSQL());
  204. if(!rows.isEmpty()){
  205. Row row = rows.get(0);
  206. Rows onwerid = dbConnect.runSqlQuery("select t.authoritymodule,\n" +
  207. "t.authorityname,\n" +
  208. "case when EXISTS(select 1 from staff_authority t1 where t1.Authoritymodule=t.Authoritymodule and t1.fparentid="+row.getInteger("onwerid")+" and fisedit=1) then 1 else 0 end fisedit,\n" +
  209. "case when EXISTS(select 1 from staff_authority t1 where t1.Authoritymodule=t.Authoritymodule and t1.fparentid="+row.getInteger("onwerid")+" and fisquery=1) then 1 else 0 end fisquery\n" +
  210. "from staffauthority t");
  211. row.put("authority",onwerid);
  212. return getReturnObject_suc(row,false).toString();
  213. }
  214. return getReturnObject_err("该人员不存在").toString();
  215. }
  216. return getReturnObject_err("缺少where参数").toString();
  217. }
  218. /**权限名称查询**/
  219. public String authority(){
  220. if(StringUtils.isBlank(hrid))return getReturnObject_err("hrid为空").toString();
  221. if(StringUtils.isBlank(fagentnum))return getReturnObject_err("fagentnum为空").toString();
  222. if(StringUtils.isBlank(siteid))return getReturnObject_err("siteid为空").toString();
  223. JSONObject where = content.getJSONObject("where");
  224. if(where!=null){
  225. DBConnect dbConnect=new DBConnect();
  226. Rows rows = dbConnect.runSqlQuery("select authoritymodule,authorityname from staffauthority where siteid='" + siteid + "'");
  227. return getReturnObject_suc(rows,false).toString();
  228. }
  229. return getReturnObject_err("缺少where参数").toString();
  230. }
  231. }