eganwu 1 anno fa
parent
commit
b9f1c9d205

+ 96 - 7
src/custom/restcontroller/webmanage/saletool/custorder/CustOrder.java

@@ -1,5 +1,6 @@
 package restcontroller.webmanage.saletool.custorder;
 
+import beans.attachment.Attachment;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import common.Controller;
@@ -80,12 +81,37 @@ public class CustOrder extends Controller {
         updateSQL.setValue("amount", amountRows.get(0).getBigDecimal("amount"));
         updateSQL.update();
 
-        return getSucReturnObject().toString();
+        return detail();
     }
 
     @API(title = "(C端)订单详情", apiversion = R.ID20240429152602.v1.class)
-    public String detail() {
-        return getSucReturnObject().toString();
+    public String detail() throws YosException {
+        Long sa_custorderid = content.getLongValue("sa_custorderid");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_custorder").setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_custorderitems", "t2", "t2.sa_custorderid=t1.sa_custorderid and t2.siteid=t1.siteid"
+                , "pricetype", "price", "qty", "sa_fadid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_contacts", "t3", "t3.contactsid=t1.rec_contactsid and t3.siteid=t1.siteid"
+                , "province", "city", "county", "address");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t4", "t4.sys_enterpriseid=t1.sys_enterpriseid and t4.siteid=t1.siteid"
+                , "enterprisename");
+        querySQL.addQueryFields("itemname", "t2.name");
+        querySQL.addQueryFields("delivery_name", "t3.name");
+        querySQL.addQueryFields("delivery_phonenumber", "t3.phonenumber");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("sa_custorderid", sa_custorderid);
+        Rows rows = querySQL.query();
+        if (rows.isEmpty()) {
+            return getSucReturnObject().setData(new Row()).toString();
+        }
+
+        Row detailRow = rows.get(0);
+        detailRow.putIfAbsent("paytime", "");
+        detailRow.put("transaction_id", detailRow.getJSONObject("wechatpayorder").getStringValue("transaction_id"));
+        detailRow.put("out_trade_no", detailRow.getJSONObject("wechatpayorder").getStringValue("out_trade_no"));
+        detailRow.put("attinfos", Attachment.get(this, "sa_fadid", detailRow.getLong("sa_fadid")));
+
+        return getSucReturnObject().setData(detailRow).toString();
     }
 
     @API(title = "(C端)订单删除", apiversion = R.ID20240429152702.v1.class)
@@ -94,13 +120,76 @@ public class CustOrder extends Controller {
     }
 
     @API(title = "(C端)订单更新订单日志", apiversion = R.ID20240429152802.v1.class)
-    public String updateRemarks() {
-        return getSucReturnObject().toString();
+    public String updateRemarks() throws YosException {
+        Long sa_custorderid = content.getLongValue("sa_custorderid");
+
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_custorder");
+        updateSQL.setSiteid(siteid);
+        updateSQL.setUniqueid(sa_custorderid);
+        updateSQL.setValue("remarks", content.getStringValue("remarks"));
+        updateSQL.update();
+
+        return detail();
     }
 
     @API(title = "(C端)订单列表", apiversion = R.ID20240429152902.v1.class)
-    public String list() {
-        return getSucReturnObject().toString();
+    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.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.sonum like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t2.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t4.enterprisename like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("status") && !"".equals(whereObject.getString("status"))) {
+                where.append(" and (");
+                where.append("t1.status='").append(whereObject.getString("status")).append("' ");
+                where.append(")");
+            }
+            if (whereObject.containsKey("pricetype") && !"".equals(whereObject.getString("pricetype"))) {
+                where.append(" and (");
+                where.append("t2.pricetype='").append(whereObject.getString("pricetype")).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(")");
+            }
+        }
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_custorder",
+                "sa_custorderid", "sonum", "name", "phonenumber", "status", "createdate", "amount").setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sa_custorderitems", "t2", "t2.sa_custorderid=t1.sa_custorderid and t2.siteid=t1.siteid"
+                , "pricetype", "price", "qty");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise", "t4", "t4.sys_enterpriseid=t1.sys_enterpriseid and t4.siteid=t1.siteid"
+                , "enterprisename");
+        querySQL.addQueryFields("itemname", "t2.name");
+
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("deleted", 0);
+        querySQL.setWhere(where.toString());
+        querySQL.setWhere("createuserid", userid);
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        Rows rows = querySQL.query();
+
+        for (Row row : rows) {
+            row.putIfAbsent("paytime", "");
+        }
+
+
+        return getSucReturnObject().setData(rows).toString();
     }