package restcontroller.webmanage.saletool.appointment; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import common.Controller; import common.YosException; import common.annotation.API; import common.data.*; import io.swagger.annotations.Api; import restcontroller.R; import restcontroller.webmanage.saletool.fad.FadHelper; import java.util.ArrayList; import java.util.LinkedHashSet; /** * 预约报名 */ public class Appointment extends Controller { /** * 构造函数 * * @param content */ public Appointment(JSONObject content) throws YosException { super(content); } @API(title = "新增预约单", apiversion = R.ID20240513144602.v1.class) public String insert() throws YosException { String ownertable = content.getStringValue("ownertable"); String ownerid = content.getStringValue("ownerid"); Long shareuserid = content.getLongValue("shareuserid"); String sharename = ""; if (!ownertable.isEmpty()) { if (shareuserid > 0) { sharename=getUser(shareuserid).getString("name"); } else { Rows rows = dbConnect.runSqlQuery("SELECT createuserid,createby from " + ownertable + " WHERE " + ownertable + "id=" + ownerid + " and siteid='" + siteid + "'"); if (rows.isNotEmpty()) { shareuserid = rows.get(0).getLong("createuserid"); sharename = rows.get(0).getString("createby"); } } } JSONObject extrajson = new JSONObject(); if (content.containsKey("extrajson")) { extrajson = content.getJSONObject("extrajson"); } InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_appointment"); insertSQL.setUniqueid(createTableID("sa_appointment")); insertSQL.setSiteid(siteid); insertSQL.setValue("name", content.getStringValue("name")); insertSQL.setValue("phonenumber", content.getStringValue("phonenumber")); insertSQL.setValue("province", content.getStringValue("province")); insertSQL.setValue("city", content.getStringValue("city")); insertSQL.setValue("county", content.getStringValue("county")); insertSQL.setValue("address", content.getStringValue("address")); insertSQL.setValue("ownertable", ownertable); insertSQL.setValue("ownerid", ownerid); insertSQL.setValue("type", content.getStringValue("type")); insertSQL.setValue("shareuserid", shareuserid); insertSQL.setValue("sharename", sharename); insertSQL.setValue("typemx", content.getStringValue("typemx")); insertSQL.setValue("extrajson", extrajson); insertSQL.insert(); return getSucReturnObject().toString(); } @API(title = "预约单列表", apiversion = R.ID20240513151902.v1.class) public String list() throws YosException { /* 过滤条件设置 */ 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.name like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.province like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.city like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.county like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.address like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' "); where.append(")"); } if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) { where.append(" and ("); where.append("t1.type ='").append(whereObject.getString("type")).append("' "); where.append(")"); } if (whereObject.containsKey("begindate_create") && !"".equals(whereObject.getString("begindate_create"))) { where.append(" and ("); where.append("t1.createdate >='").append(whereObject.getString("begindate_create")).append("' "); where.append(")"); } if (whereObject.containsKey("enddate_create") && !"".equals(whereObject.getString("enddate_create"))) { where.append(" and ("); where.append("t1.createdate <='").append(whereObject.getString("enddate_create")).append(" 23:59:59' "); where.append(")"); } } if (pageSorting.equals("''")) { pageSorting = "t1.createdate desc"; } QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_appointment") .setTableAlias("t1"); querySQL.addQueryFields("addressdetail", "concat(province,city,county,address)"); querySQL.setSiteid(siteid); querySQL.setWhere(where.toString()); querySQL.setOrderBy(pageSorting).setPage(pageSize, pageNumber); Rows rows = querySQL.query(); return getSucReturnObject().setData(rows).toString(); } @API(title = "工作台预约列表", apiversion = R.ID20240513154802.v1.class) public String worklist() throws YosException { /* 过滤条件设置 */ StringBuffer where = new StringBuffer(" 1=1 "); if (content.containsKey("where")) { JSONObject whereObject = content.getJSONObject("where"); if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) { where.append(" and ("); where.append("t1.type ='").append(whereObject.getString("type")).append("' "); where.append(")"); } } if (pageSorting.equals("''")) { pageSorting = "t1.createdate desc"; } LinkedHashSet userids = new LinkedHashSet<>(); userids.add(userid); if (usertype == 21) { Rows rows = dbConnect.runSqlQuery("SELECT userid from sys_enterprise_hr WHERE sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + siteid + "'"); userids.addAll(rows.toArrayList("userid", new ArrayList<>())); } QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_appointment") .setTableAlias("t1"); querySQL.addQueryFields("addressdetail", "concat(province,city,county,address)"); querySQL.setSiteid(siteid); querySQL.setWhere("shareuserid", userids.toArray()); querySQL.setWhere(where.toString()); querySQL.setOrderBy(pageSorting).setPage(pageSize, pageNumber); Rows rows = querySQL.query(); for (Row row : rows) { row.put("headpic", getHeadPic(row.getLong("createuserid"))); } return getSucReturnObject().setData(rows).toString(); } @API(title = "我的预约列表", apiversion = R.ID20240513162802.v1.class) public String mylist() throws YosException { /* 过滤条件设置 */ StringBuffer where = new StringBuffer(" 1=1 "); if (content.containsKey("where")) { JSONObject whereObject = content.getJSONObject("where"); if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) { where.append(" and ("); where.append("t1.type ='").append(whereObject.getString("type")).append("' "); where.append(")"); } } if (pageSorting.equals("''")) { pageSorting = "t1.createdate desc"; } QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_appointment") .setTableAlias("t1"); querySQL.addQueryFields("addressdetail", "concat(province,city,county,address)"); querySQL.setSiteid(siteid); querySQL.setWhere("createuserid", userid); querySQL.setWhere(where.toString()); querySQL.setOrderBy(pageSorting).setPage(pageSize, pageNumber); Rows rows = querySQL.query(); for (Row row : rows) { row.put("headpic", getHeadPic(row.getLong("createuserid"))); } return getSucReturnObject().setData(rows).toString(); } }