Campaign.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. package restcontroller.webmanage.saletool.orderclue;
  2. import beans.datacontrllog.DataContrlLog;
  3. import beans.dataextend.DataExtend;
  4. import beans.datatag.DataTag;
  5. import beans.datateam.DataTeam;
  6. import com.alibaba.fastjson.JSONArray;
  7. import com.alibaba.fastjson.JSONObject;
  8. import common.Controller;
  9. import common.YosException;
  10. import common.annotation.API;
  11. import common.annotation.CACHEING_CLEAN;
  12. import common.annotation.cm;
  13. import common.data.*;
  14. import org.apache.commons.lang.StringUtils;
  15. import restcontroller.R;
  16. import java.util.ArrayList;
  17. import java.util.HashMap;
  18. public class Campaign extends Controller {
  19. /**
  20. * 构造函数
  21. *
  22. * @param content
  23. */
  24. public Campaign(JSONObject content) throws YosException {
  25. super(content);
  26. }
  27. @API(title = "添加医生", apiversion = R.ID2025103013511502.v1.class)
  28. public String addDoctor() throws YosException {
  29. Long sat_campaignid = content.getLong("sat_campaignid");
  30. ArrayList<String> sqllist = new ArrayList<>();
  31. JSONArray doctors = content.getJSONArray("doctors");
  32. for (Object object : doctors) {
  33. JSONObject doctor = (JSONObject) object;
  34. Long sa_doctorid = doctor.getLong("sa_doctorid");
  35. Long sat_campaign_doctorid = doctor.getLong("sat_campaign_doctorid");
  36. if (sat_campaign_doctorid <= 0) {
  37. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sat_campaign_doctor");
  38. insertSQL.setSiteid(siteid);
  39. insertSQL.setUniqueid(createTableID("sat_campaign_doctor"));
  40. insertSQL.setValue("sat_campaignid", sat_campaignid);
  41. insertSQL.setValue("sa_doctorid", sa_doctorid);
  42. insertSQL.setValue("amount", doctor.getBigDecimalValue("amount"));
  43. sqllist.add(insertSQL.getSQL());
  44. sqllist.add(DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "新建医生", "医生ID:" + sa_doctorid).getSQL());
  45. } else {
  46. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_campaign_doctor");
  47. updateSQL.setSiteid(siteid);
  48. updateSQL.setUniqueid(sat_campaign_doctorid);
  49. updateSQL.setValue("sat_campaignid", sat_campaignid);
  50. updateSQL.setValue("sa_doctorid", sa_doctorid);
  51. updateSQL.setValue("amount", doctor.getBigDecimalValue("amount"));
  52. sqllist.add(updateSQL.getSQL());
  53. sqllist.add(DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "编辑医生", "医生ID" + sa_doctorid).getSQL());
  54. }
  55. }
  56. dbConnect.runSqlUpdate(sqllist);
  57. return getSucReturnObject().toString();
  58. }
  59. @API(title = "删除医生", apiversion = R.ID2025103013514902.v1.class)
  60. public String deleteDoctor() throws YosException {
  61. Long sat_campaignid = content.getLong("sat_campaignid");
  62. JSONArray sa_doctorid = content.getJSONArray("sa_doctorid");
  63. DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sat_campaign_doctor");
  64. deleteSQL.setSiteid(siteid);
  65. deleteSQL.setWhere("sat_campaignid", sat_campaignid);
  66. deleteSQL.setWhere("sa_doctorid", sa_doctorid);
  67. deleteSQL.delete();
  68. DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "删除医生", "医生ID:" + sa_doctorid).insert();
  69. return getSucReturnObject().toString();
  70. }
  71. @API(title = "医生列表", apiversion = R.ID2025103013521502.v1.class)
  72. public String list() throws YosException {
  73. Long sat_campaignid = content.getLong("sat_campaignid");
  74. QuerySQL doctorQuerySQL = SQLFactory.createQuerySQL(this, "sat_campaign_doctor", "*").setTableAlias("t1");
  75. doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_doctor", "t2", "t2.sa_doctorid=t1.sa_doctorid and t2.siteid=t1.siteid",
  76. "doctorname");
  77. doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_hospitaldep", "t3", "t3.sa_hospitaldepid=t2.sa_hospitaldepid and t3.siteid=t2.siteid",
  78. "hospitaldepname");
  79. doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t4", "t4.sa_customersid=t3.sa_customersid and t4.siteid=t3.siteid");
  80. doctorQuerySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid");
  81. doctorQuerySQL.addQueryFields("hospitalname", "t5.enterprisename");
  82. doctorQuerySQL.setSiteid(siteid);
  83. doctorQuerySQL.setWhere("t1.sat_campaignid=" + sat_campaignid);
  84. doctorQuerySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
  85. doctorQuerySQL.setCondition("t2.doctorname","t3.hospitaldepname","t5.enterprisename");
  86. Rows doctorRows = doctorQuerySQL.query();
  87. return getSucReturnObject().setData(doctorRows).toString();
  88. }
  89. @API(title = "选择医生", apiversion = R.ID2025103013523102.v1.class)
  90. public String chooseDoctor() throws YosException {
  91. String tablename = "sa_doctor";
  92. StringBuffer where = new StringBuffer(" 1=1 ");
  93. if (content.containsKey("where")) {
  94. JSONObject whereObject = content.getJSONObject("where");
  95. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  96. where.append(" and(");
  97. where.append("t1.doctorname like'%").append(whereObject.getString("condition")).append("%' ");
  98. where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  99. where.append("or t1.professional like'%").append(whereObject.getString("condition")).append("%' ");
  100. where.append("or t2.hospitaldepname like'%").append(whereObject.getString("condition")).append("%' ");
  101. where.append("or t4.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
  102. where.append(")");
  103. }
  104. }
  105. Long sat_campaignid = content.getLongValue("sat_campaignid");
  106. String where2 = DataTeam.getDataWhereStr(this, tablename, "t1", 8);
  107. QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_doctor", "*").setTableAlias("t1");
  108. querySQL.addJoinTable(JOINTYPE.left, "sa_hospitaldep", "t2", "t2.sa_hospitaldepid=t1.sa_hospitaldepid and t2.siteid=t1.siteid", "hospitaldepname");
  109. querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t3", "t3.sa_customersid=t1.sa_customersid");
  110. querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t4", "t4.sys_enterpriseid=t3.sys_enterpriseid",
  111. "enterprisename");
  112. querySQL.setWhere(where);
  113. querySQL.setWhere(where2);
  114. querySQL.setWhere("not exists(select 1 from sat_campaign_doctor where sat_campaignid=" + sat_campaignid + " and sa_doctorid=t1.sa_doctorid and siteid='" + siteid + "' )");
  115. querySQL.setSiteid(siteid);
  116. querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
  117. Rows rows = querySQL.query();
  118. ArrayList<Long> ids = rows.toArrayList("sa_doctorid", new ArrayList<>());
  119. RowsMap leaderRows = DataTeam.getLeader(this, "sa_doctor", rows.toArrayList("sa_doctorid")).toRowsMap("ownerid");
  120. //标签
  121. HashMap<Long, ArrayList<String>> tagList = DataTag.queryTag(this, "sa_doctor", ids, false);
  122. //系统标签
  123. HashMap<Long, ArrayList<String>> sysTagList = DataTag.queryTag(this, "sa_doctor", ids, true);
  124. for (Row row : rows) {
  125. Long id = row.getLong("sa_doctorid");
  126. row.put("leader", leaderRows.get(row.getString("sa_doctorid")));
  127. if (leaderRows.get(String.valueOf(id)).isNotEmpty()) {
  128. row.put("depname", leaderRows.get(String.valueOf(id)).get(0).getString("depname"));
  129. }
  130. ArrayList<String> tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<>();
  131. ArrayList<String> sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<>();
  132. //非系统标签
  133. row.put("tag", tag);
  134. //系统标签
  135. row.put("tag_sys", sys_tag);
  136. }
  137. return getSucReturnObject().setData(rows).toString();
  138. }
  139. }