package restcontroller.webmanage.saletool.orderclue; import beans.datacontrllog.DataContrlLog; import beans.dataextend.DataExtend; import beans.datatag.DataTag; import beans.datateam.DataTeam; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import common.Controller; import common.YosException; import common.annotation.API; import common.annotation.CACHEING_CLEAN; import common.annotation.cm; import common.data.*; import org.apache.commons.lang.StringUtils; import restcontroller.R; import java.util.ArrayList; import java.util.HashMap; public class Campaign extends Controller { /** * 构造函数 * * @param content */ public Campaign(JSONObject content) throws YosException { super(content); } @API(title = "添加医生", apiversion = R.ID2025103013511502.v1.class) public String addDoctor() throws YosException { Long sat_campaignid = content.getLong("sat_campaignid"); ArrayList sqllist = new ArrayList<>(); JSONArray doctors = content.getJSONArray("doctors"); for (Object object : doctors) { JSONObject doctor = (JSONObject) object; Long sa_doctorid = doctor.getLong("sa_doctorid"); Long sat_campaign_doctorid = doctor.getLong("sat_campaign_doctorid"); if (sat_campaign_doctorid <= 0) { InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sat_campaign_doctor"); insertSQL.setSiteid(siteid); insertSQL.setUniqueid(createTableID("sat_campaign_doctor")); insertSQL.setValue("sat_campaignid", sat_campaignid); insertSQL.setValue("sa_doctorid", sa_doctorid); insertSQL.setValue("amount", doctor.getBigDecimalValue("amount")); sqllist.add(insertSQL.getSQL()); sqllist.add(DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "新建医生", "医生ID:" + sa_doctorid).getSQL()); } else { UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sat_campaign_doctor"); updateSQL.setSiteid(siteid); updateSQL.setUniqueid(sat_campaign_doctorid); updateSQL.setValue("sat_campaignid", sat_campaignid); updateSQL.setValue("sa_doctorid", sa_doctorid); updateSQL.setValue("amount", doctor.getBigDecimalValue("amount")); sqllist.add(updateSQL.getSQL()); sqllist.add(DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "编辑医生", "医生ID" + sa_doctorid).getSQL()); } } dbConnect.runSqlUpdate(sqllist); return getSucReturnObject().toString(); } @API(title = "删除医生", apiversion = R.ID2025103013514902.v1.class) public String deleteDoctor() throws YosException { Long sat_campaignid = content.getLong("sat_campaignid"); JSONArray sa_doctorid = content.getJSONArray("sa_doctorid"); DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sat_campaign_doctor"); deleteSQL.setSiteid(siteid); deleteSQL.setWhere("sat_campaignid", sat_campaignid); deleteSQL.setWhere("sa_doctorid", sa_doctorid); deleteSQL.delete(); DataContrlLog.createLog(this, "sat_campaign", sat_campaignid, "删除医生", "医生ID:" + sa_doctorid).insert(); return getSucReturnObject().toString(); } @API(title = "医生列表", apiversion = R.ID2025103013521502.v1.class) public String list() throws YosException { Long sat_campaignid = content.getLong("sat_campaignid"); QuerySQL doctorQuerySQL = SQLFactory.createQuerySQL(this, "sat_campaign_doctor", "*").setTableAlias("t1"); doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_doctor", "t2", "t2.sa_doctorid=t1.sa_doctorid and t2.siteid=t1.siteid", "doctorname"); doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_hospitaldep", "t3", "t3.sa_hospitaldepid=t2.sa_hospitaldepid and t3.siteid=t2.siteid", "hospitaldepname"); doctorQuerySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t4", "t4.sa_customersid=t3.sa_customersid and t4.siteid=t3.siteid"); doctorQuerySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t5", "t5.sys_enterpriseid=t4.sys_enterpriseid and t5.siteid=t4.siteid"); doctorQuerySQL.addQueryFields("hospitalname", "t5.enterprisename"); doctorQuerySQL.setSiteid(siteid); doctorQuerySQL.setWhere("t1.sat_campaignid=" + sat_campaignid); doctorQuerySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting); doctorQuerySQL.setCondition("t2.doctorname","t3.hospitaldepname","t5.enterprisename"); Rows doctorRows = doctorQuerySQL.query(); return getSucReturnObject().setData(doctorRows).toString(); } @API(title = "选择医生", apiversion = R.ID2025103013523102.v1.class) public String chooseDoctor() throws YosException { String tablename = "sa_doctor"; StringBuffer where = new StringBuffer(" 1=1 "); if (content.containsKey("where")) { JSONObject whereObject = content.getJSONObject("where"); if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) { where.append(" and("); where.append("t1.doctorname like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.professional like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t2.hospitaldepname like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t4.enterprisename like'%").append(whereObject.getString("condition")).append("%' "); where.append(")"); } } Long sat_campaignid = content.getLongValue("sat_campaignid"); String where2 = DataTeam.getDataWhereStr(this, tablename, "t1", 8); QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_doctor", "*").setTableAlias("t1"); querySQL.addJoinTable(JOINTYPE.left, "sa_hospitaldep", "t2", "t2.sa_hospitaldepid=t1.sa_hospitaldepid and t2.siteid=t1.siteid", "hospitaldepname"); querySQL.addJoinTable(JOINTYPE.left, "sa_customers", "t3", "t3.sa_customersid=t1.sa_customersid"); querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t4", "t4.sys_enterpriseid=t3.sys_enterpriseid", "enterprisename"); querySQL.setWhere(where); querySQL.setWhere(where2); querySQL.setWhere("not exists(select 1 from sat_campaign_doctor where sat_campaignid=" + sat_campaignid + " and sa_doctorid=t1.sa_doctorid and siteid='" + siteid + "' )"); querySQL.setSiteid(siteid); querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting); Rows rows = querySQL.query(); ArrayList ids = rows.toArrayList("sa_doctorid", new ArrayList<>()); RowsMap leaderRows = DataTeam.getLeader(this, "sa_doctor", rows.toArrayList("sa_doctorid")).toRowsMap("ownerid"); //标签 HashMap> tagList = DataTag.queryTag(this, "sa_doctor", ids, false); //系统标签 HashMap> sysTagList = DataTag.queryTag(this, "sa_doctor", ids, true); for (Row row : rows) { Long id = row.getLong("sa_doctorid"); row.put("leader", leaderRows.get(row.getString("sa_doctorid"))); if (leaderRows.get(String.valueOf(id)).isNotEmpty()) { row.put("depname", leaderRows.get(String.valueOf(id)).get(0).getString("depname")); } ArrayList tag = tagList.get(id) != null ? tagList.get(id) : new ArrayList<>(); ArrayList sys_tag = sysTagList.get(id) != null ? sysTagList.get(id) : new ArrayList<>(); //非系统标签 row.put("tag", tag); //系统标签 row.put("tag_sys", sys_tag); } return getSucReturnObject().setData(rows).toString(); } }