Explorar el Código

Merge remote-tracking branch 'origin/develop-yellow' into develop2

eganwu hace 2 años
padre
commit
d2f779f9b1

+ 10 - 0
src/custom/restcontroller/R.java

@@ -6088,6 +6088,16 @@ public class R {
         }
     }
 
+    public static class ID20240416153202 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240416162002 {
+        public static class v1 {
+        }
+    }
+
 
 }
 

+ 94 - 0
src/custom/restcontroller/webmanage/saletool/store/Store.java

@@ -174,4 +174,98 @@ public class Store extends Controller {
 
     }
 
+
+    @API(title = "小程序门店首页", apiversion = R.ID20240416153202.v1.class)
+    public String appletHome() throws YosException {
+
+        String longitude = content.getStringValue("longitude");
+        String latitude = content.getStringValue("latitude");
+
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_store").setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_hr", "t2", "t2.sys_enterprise_hrid=t1.leader_hrid and t2.siteid=t1.siteid"
+                , "name","phonenumber");
+        querySQL.addQueryFields("distance", "st_distance_sphere(point(longitude,latitude),point('" + longitude + "','" + latitude + "'))");
+        querySQL.setOrderBy("distance");
+        Rows rows = querySQL.query();
+        Row detailRow = rows.isNotEmpty() ? rows.get(0) : new Row();
+        detailRow.put("distance", String.format("%.2f", detailRow.getDouble("distance")));
+        long sa_storeid = detailRow.getLong("sa_storeid");
+        detailRow.put("attinfos", Attachment.get(this, "sa_store", sa_storeid));
+
+        Rows adspaceRows = dbConnect.runSqlQuery("SELECT * from sys_adspace WHERE systemclient='wechatsaletool' and isused=1");
+
+        for (Row adspaceRow : adspaceRows) {
+            Long sys_adspaceid = adspaceRow.getLong("sys_adspaceid");
+            querySQL = SQLFactory.createQuerySQL(this, "sys_ad")
+                    .setTableAlias("t1");
+            querySQL.setSiteid(siteid);
+            querySQL.setWhere("sys_adspaceid", sys_adspaceid);
+            querySQL.setDataAuth(true);
+            Rows adRows = querySQL.query();
+            RowsMap attinfosRowsMap = Attachment.get(this, "sys_ad", adRows.toArrayList("sys_adid", new ArrayList<>()));
+            for (Row row : adRows) {
+                row.put("attinfos", attinfosRowsMap.getOrDefault(row.getString("sys_adid"), new Rows()));
+            }
+            detailRow.put("ad_" + adspaceRow.getString("location"), adRows);
+        }
+
+        addHistory(sa_storeid);
+
+
+        return getSucReturnObject().setData(detailRow).toString();
+    }
+
+
+    public void addHistory(Long sa_storeid) throws YosException {
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sa_store_history");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("userid", userid);
+        querySQL.setWhere("sa_storeid", sa_storeid);
+        Rows rows = querySQL.query();
+        if (rows.isNotEmpty()) {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sa_store_history");
+            updateSQL.setSiteid(siteid);
+            updateSQL.setValue("userid", userid);
+            updateSQL.setWhere("userid", userid);
+            updateSQL.setWhere("sa_storeid", sa_storeid);
+            System.err.println(updateSQL.getSQL());
+            updateSQL.update();
+        } else {
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sa_store_history");
+            insertSQL.setUniqueid(createTableID("sa_store_history"));
+            insertSQL.setSiteid(siteid);
+            insertSQL.setValue("userid", userid);
+            insertSQL.setValue("sa_storeid", sa_storeid);
+            insertSQL.insert();
+        }
+
+    }
+
+
+    @API(title = "查询历史足迹", apiversion = R.ID20240416162002.v1.class)
+    public String getHistory() throws YosException {
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sa_store"
+                        , "sa_storeid", "storename","longitude","latitude")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_enterprise_hr", "t2", "t2.sys_enterprise_hrid=t1.leader_hrid and t2.siteid=t1.siteid"
+                , "name","phonenumber");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_store_history", "t3", "t3.sa_storeid=t1.sa_storeid and t3.siteid=t1.siteid");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("t3.userid",userid);
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        Rows rows = querySQL.query();
+
+        RowsMap attinfoRows = Attachment.get(controller, sa_store, rows.toArrayList("sa_storeid", new ArrayList<>()));
+
+        for (Row row:rows) {
+            row.put("attinfos", attinfoRows.getOrDefault(row.getString("sa_storeid"), new Rows()));
+        }
+
+
+        return getSucReturnObject().setData(rows).toString();
+    }
 }
+