Browse Source

完善装修返利方案与结算规则,收藏列表返回领域字段

eganwu 1 year ago
parent
commit
cf55ea8b4b

+ 49 - 45
src/custom/restcontroller/sale/favorites/favorites.java

@@ -13,6 +13,7 @@ import common.data.Rows;
 import common.data.RowsMap;
 import common.data.SQLFactory;
 
+import org.apache.commons.lang.StringUtils;
 import restcontroller.R;
 import restcontroller.webmanage.sale.itemgroup.itemgroup;
 
@@ -34,24 +35,24 @@ public class favorites extends Controller {
      *
      * @return
      */
-    @API(title = "商品收藏", apiversion = R.ID20231121143403.v1.class,intervaltime = 200)
-    @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class,favorites.class})
+    @API(title = "商品收藏", apiversion = R.ID20231121143403.v1.class, intervaltime = 200)
+    @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class, favorites.class})
     public String insertormodify_item() throws YosException {
         long itemid = content.getLongValue("itemid");
-        boolean iscollection=content.getBooleanValue("iscollection");
-        BigDecimal qty =content.getBigDecimalValue("qty");
-        BigDecimal width =content.getBigDecimalValue("width");
-        BigDecimal length =content.getBigDecimalValue("length");
-        Rows favoritesRows = dbConnect.runSqlQuery("select * from sa_favorites where sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + siteid + "' and itemid='"+itemid+"'");
+        boolean iscollection = content.getBooleanValue("iscollection");
+        BigDecimal qty = content.getBigDecimalValue("qty");
+        BigDecimal width = content.getBigDecimalValue("width");
+        BigDecimal length = content.getBigDecimalValue("length");
+        Rows favoritesRows = dbConnect.runSqlQuery("select * from sa_favorites where sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + siteid + "' and itemid='" + itemid + "'");
         ArrayList<String> sqllist = new ArrayList<>();
         SQLFactory sqlAddFactory = new SQLFactory(this, "商品收藏记录新增");
-        if(favoritesRows.isEmpty()){
+        if (favoritesRows.isEmpty()) {
             sqlAddFactory.addParameter("itemid", itemid);
             sqlAddFactory.addParameter("sa_favoritesid", createTableID("sa_favorites"));
             sqlAddFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
             sqlAddFactory.addParameter("iscollection", iscollection);
             sqlAddFactory.addParameter("siteid", siteid);
-        }else{
+        } else {
             sqlAddFactory = new SQLFactory(this, "商品收藏记录更新");
             sqlAddFactory.addParameter("sa_favoritesid", favoritesRows.get(0).getLong("sa_favoritesid"));
             sqlAddFactory.addParameter("iscollection", iscollection);
@@ -71,11 +72,11 @@ public class favorites extends Controller {
      *
      * @return
      */
-    @API(title = "商品批量收藏", apiversion = R.ID20231122102803.v1.class,intervaltime = 200)
-    @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class,favorites.class})
+    @API(title = "商品批量收藏", apiversion = R.ID20231122102803.v1.class, intervaltime = 200)
+    @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class, favorites.class})
     public String items_collect() throws YosException {
         JSONArray itemids = content.getJSONArray("itemids");
-        boolean iscollection=content.getBooleanValue("iscollection");
+        boolean iscollection = content.getBooleanValue("iscollection");
         ArrayList<String> sqllist = new ArrayList<>();
         SQLFactory sqlFactory = new SQLFactory(this, "商品收藏记录批量更新");
         sqlFactory.addParameter_in("itemids", itemids.toArray());
@@ -116,15 +117,15 @@ public class favorites extends Controller {
         RowsMap pricerowsMap = pricerows.toRowsMap("itemid");
 
         SQLFactory sqlFactory = new SQLFactory(this, "查询收藏商品列表", pageSize, pageNumber, pageSorting);
-        sqlFactory.addParameter_SQL("where",where);
+        sqlFactory.addParameter_SQL("where", where);
         sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
         sqlFactory.addParameter("siteid", siteid);
         Rows itemrows = dbConnect.runSqlQuery(sqlFactory.getSQL());
 
-        Rows sizecustomizedschemes=dbConnect.runSqlQuery("select * from sa_sizecustomizedscheme where siteid='"+siteid+"' ");
-        RowsMap sizecustomizedschemesRowsMap=sizecustomizedschemes.toRowsMap("sa_sizecustomizedschemeid");
-        Rows sizeschemedetails=dbConnect.runSqlQuery("select * from sa_sizeschemedetail where siteid='"+siteid+"' ");
-        RowsMap sizeschemedetailsRowsMap=sizeschemedetails.toRowsMap("sa_sizecustomizedschemeid");
+        Rows sizecustomizedschemes = dbConnect.runSqlQuery("select * from sa_sizecustomizedscheme where siteid='" + siteid + "' ");
+        RowsMap sizecustomizedschemesRowsMap = sizecustomizedschemes.toRowsMap("sa_sizecustomizedschemeid");
+        Rows sizeschemedetails = dbConnect.runSqlQuery("select * from sa_sizeschemedetail where siteid='" + siteid + "' ");
+        RowsMap sizeschemedetailsRowsMap = sizeschemedetails.toRowsMap("sa_sizecustomizedschemeid");
 
         for (Row row : itemrows) {
             ItemPrice itemPrice = ItemPrice.getItemPrice(this, sys_enterpriseid, row.getLong("itemid"));
@@ -132,45 +133,45 @@ public class favorites extends Controller {
             if (sys_enterpriseid > 0 || (usertype == 21 || usertype == 22)) {
                 row.put("gradeprice", itemPrice.getContractprice());
             } else {
-                if(pricerowsMap.containsKey(row.getString("itemid"))){
-                    if(pricerowsMap.get(row.getString("itemid")).isNotEmpty()){
+                if (pricerowsMap.containsKey(row.getString("itemid"))) {
+                    if (pricerowsMap.get(row.getString("itemid")).isNotEmpty()) {
                         row.put("gradeprice", pricerowsMap.get(row.getString("itemid")).get(0).getBigDecimal("price"));
-                    }else{
-                        row.put("gradeprice",0);
+                    } else {
+                        row.put("gradeprice", 0);
                     }
-                }else {
+                } else {
                     row.put("gradeprice", 0);
                 }
             }
 
-            if(row.getLong("widthschemeid")!=0){
-                if(sizecustomizedschemesRowsMap.containsKey(row.getString("widthschemeid"))){
-                    if(sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).isNotEmpty()){
-                        row.put("widthtype",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getString("type"));
-                        row.put("widthmin",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("min"));
-                        row.put("widthmax",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("max"));
-                        row.put("widthdecimalplaces",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("decimalplaces"));
-                        if(sizeschemedetailsRowsMap.containsKey(row.getString("widthschemeid"))){
-                            row.put("widthschemedetails",sizeschemedetailsRowsMap.get(row.getString("widthschemeid")));
-                        }else{
-                            row.put("widthschemedetails",new JSONArray());
+            if (row.getLong("widthschemeid") != 0) {
+                if (sizecustomizedschemesRowsMap.containsKey(row.getString("widthschemeid"))) {
+                    if (sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).isNotEmpty()) {
+                        row.put("widthtype", sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getString("type"));
+                        row.put("widthmin", sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("min"));
+                        row.put("widthmax", sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("max"));
+                        row.put("widthdecimalplaces", sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("decimalplaces"));
+                        if (sizeschemedetailsRowsMap.containsKey(row.getString("widthschemeid"))) {
+                            row.put("widthschemedetails", sizeschemedetailsRowsMap.get(row.getString("widthschemeid")));
+                        } else {
+                            row.put("widthschemedetails", new JSONArray());
                         }
 
                     }
 
                 }
             }
-            if(row.getLong("lengthschemeid")!=0){
-                if(sizecustomizedschemesRowsMap.containsKey(row.getString("lengthschemeid"))){
-                    if(sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).isNotEmpty()){
-                        row.put("lengthtype",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getString("type"));
-                        row.put("lengthmin",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("min"));
-                        row.put("lengthmax",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("max"));
-                        row.put("lengthdecimalplaces",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("decimalplaces"));
-                        if(sizeschemedetailsRowsMap.containsKey(row.getString("lengthschemeid"))){
-                            row.put("lengthschemedetails",sizeschemedetailsRowsMap.get(row.getString("lengthschemeid")));
-                        }else{
-                            row.put("lengthschemedetails",new JSONArray());
+            if (row.getLong("lengthschemeid") != 0) {
+                if (sizecustomizedschemesRowsMap.containsKey(row.getString("lengthschemeid"))) {
+                    if (sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).isNotEmpty()) {
+                        row.put("lengthtype", sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getString("type"));
+                        row.put("lengthmin", sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("min"));
+                        row.put("lengthmax", sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("max"));
+                        row.put("lengthdecimalplaces", sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("decimalplaces"));
+                        if (sizeschemedetailsRowsMap.containsKey(row.getString("lengthschemeid"))) {
+                            row.put("lengthschemedetails", sizeschemedetailsRowsMap.get(row.getString("lengthschemeid")));
+                        } else {
+                            row.put("lengthschemedetails", new JSONArray());
                         }
                     }
 
@@ -215,7 +216,10 @@ public class favorites extends Controller {
                 row.put("attinfos", attRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
             }
             row.put("itemclass", itemclassRowsMap.get(row.getString("itemid")));
-            row.put("tradefield", tradefieldRowsMap.get(row.getString("itemid")));
+            Rows tradefieldRows = tradefieldRowsMap.getOrDefault(row.getString("itemid"), new Rows());
+            row.put("tradefield", tradefieldRows);
+
+            row.put("tradefield_shoppingcart", StringUtils.join(tradefieldRows.toArray("tradefield"), ","));
             row.put("brand", brandRowsMap.get(row.getString("itemid")));
         }
 

+ 7 - 1
src/custom/restcontroller/webmanage/sale/rebateaccount/rebateaccounthead.java

@@ -41,6 +41,12 @@ public class rebateaccounthead extends Controller {
     @API(title = "返利结算单新增更新", apiversion = R.ID20230627091003.v1.class)
     @CACHEING_CLEAN(apiClass = {rebateaccounthead.class})
     public String insertormodify_rebateaccounthead() throws YosException, IOException {
+
+        Rows rebateschemes = dbConnect.runSqlQuery("select * from sa_rebatescheme where siteid='"+siteid+"' and isused=1");
+        if (rebateschemes.isEmpty()) {
+            return getErrReturnObject().setErrMsg("不存在装修返利方案,无法结算").toString();
+        }
+
         ArrayList<String> sqlList = new ArrayList<>();
         // 表名
         String tableName = "sa_rebateaccounthead";
@@ -251,7 +257,7 @@ public class rebateaccounthead extends Controller {
             return getErrReturnObject().setErrMsg("返利结算单表体为空,无法结算").toString();
         } else {
             long sa_rebateschemeid = 0;
-            Rows rebateschemes = dbConnect.runSqlQuery("select * from sa_rebatescheme");
+            Rows rebateschemes = dbConnect.runSqlQuery("select * from sa_rebatescheme where siteid='"+siteid+"'");
             if (rebateschemes.isEmpty()) {
                 return getErrReturnObject().setErrMsg("不存在装修返利方案,无法结算").toString();
             } else {

+ 3 - 0
src/custom/restcontroller/webmanage/sale/rebatescheme/rebatescheme.java

@@ -32,6 +32,7 @@ public class rebatescheme extends Controller {
 
         Long sa_rebateschemeid = content.getLongValue("sa_rebateschemeid");
         Long sa_accountclassid = content.getLongValue("sa_accountclassid");
+        Long isused = content.getLongValue("isused");
         if (sa_accountclassid <= 0) {
             return getErrReturnObject().setErrMsg("请选择账户").toString();
         }
@@ -41,6 +42,7 @@ public class rebatescheme extends Controller {
             insertSQL.setUniqueid(sa_rebateschemeid).setSiteid(siteid);
             insertSQL.setValue("billno", createBillCode("rebateschemebill"));
             insertSQL.setValue("sa_accountclassid", sa_accountclassid);
+            insertSQL.setValue("isused", isused);
             sqlList.add(insertSQL.getSQL());
             sqlList.add(DataContrlLog.createLog(this, tableName, sa_rebateschemeid, "新增", "装修返利方案新增成功").getSQL());
         }
@@ -48,6 +50,7 @@ public class rebatescheme extends Controller {
             UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, tableName);
             updateSQL.setUniqueid(sa_rebateschemeid).setSiteid(siteid);
             updateSQL.setValue("sa_accountclassid", sa_accountclassid);
+            updateSQL.setValue("isused", isused);
             sqlList.add(updateSQL.getSQL());
             sqlList.add(DataContrlLog.createLog(this, tableName, sa_rebateschemeid, "编辑", "装修返利方案编辑成功").getSQL());
         }

+ 6 - 0
src/custom/restcontroller/webmanage/site/site.java

@@ -96,6 +96,12 @@ public class site extends Controller {
         tableColumnsMap.remove("changedate");
         tableColumnsMap.remove("siteid");
 
+        if (content.containsKey("isrebate") && content.getString("isrebate").equals("1")) {
+            if (dbConnect.runSqlQuery("SELECT 1 from sa_rebatescheme WHERE isused=1 and siteid='" + siteid + "'").isEmpty()) {
+                return getErrReturnObject().setErrMsg("未找到启用状态的返利方案").toString();
+            }
+        }
+
 
         StringBuffer updateSQl = new StringBuffer();
         updateSQl.append("update sys_site_parameter set changeuserid=" + userid + ",changeby='" + username + "',changedate=now()");