favorites.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. package restcontroller.sale.favorites;
  2. import beans.itemprice.ItemPrice;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import common.Controller;
  6. import common.YosException;
  7. import common.annotation.API;
  8. import common.annotation.CACHEING;
  9. import common.annotation.CACHEING_CLEAN;
  10. import common.data.Row;
  11. import common.data.Rows;
  12. import common.data.RowsMap;
  13. import common.data.SQLFactory;
  14. import restcontroller.R;
  15. import restcontroller.webmanage.sale.itemgroup.itemgroup;
  16. import java.math.BigDecimal;
  17. import java.util.ArrayList;
  18. public class favorites extends Controller {
  19. /**
  20. * 构造函数
  21. *
  22. * @param content
  23. */
  24. public favorites(JSONObject content) throws YosException {
  25. super(content);
  26. }
  27. /**
  28. * 商品收藏
  29. *
  30. * @return
  31. */
  32. @API(title = "商品收藏", apiversion = R.ID20231121143403.v1.class,intervaltime = 200)
  33. @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class,favorites.class})
  34. public String insertormodify_item() throws YosException {
  35. long itemid = content.getLongValue("itemid");
  36. boolean iscollection=content.getBooleanValue("iscollection");
  37. BigDecimal qty =content.getBigDecimalValue("qty");
  38. BigDecimal width =content.getBigDecimalValue("width");
  39. BigDecimal length =content.getBigDecimalValue("length");
  40. Rows favoritesRows = dbConnect.runSqlQuery("select * from sa_favorites where sys_enterpriseid=" + sys_enterpriseid + " and siteid='" + siteid + "' and itemid='"+itemid+"'");
  41. ArrayList<String> sqllist = new ArrayList<>();
  42. SQLFactory sqlAddFactory = new SQLFactory(this, "商品收藏记录新增");
  43. if(favoritesRows.isEmpty()){
  44. sqlAddFactory.addParameter("itemid", itemid);
  45. sqlAddFactory.addParameter("sa_favoritesid", createTableID("sa_favorites"));
  46. sqlAddFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  47. sqlAddFactory.addParameter("iscollection", iscollection);
  48. sqlAddFactory.addParameter("siteid", siteid);
  49. }else{
  50. sqlAddFactory = new SQLFactory(this, "商品收藏记录更新");
  51. sqlAddFactory.addParameter("sa_favoritesid", favoritesRows.get(0).getLong("sa_favoritesid"));
  52. sqlAddFactory.addParameter("iscollection", iscollection);
  53. sqlAddFactory.addParameter("siteid", siteid);
  54. sqlAddFactory.addParameter("qty", qty);
  55. sqlAddFactory.addParameter("width", width);
  56. sqlAddFactory.addParameter("length", length);
  57. }
  58. sqllist.add(sqlAddFactory.getSQL());
  59. dbConnect.runSqlUpdate(sqllist);
  60. return getSucReturnObject().toString();
  61. }
  62. /**
  63. * 商品批量收藏
  64. *
  65. * @return
  66. */
  67. @API(title = "商品批量收藏", apiversion = R.ID20231122102803.v1.class,intervaltime = 200)
  68. @CACHEING_CLEAN(apiClass = {itemgroup.class, restcontroller.sale.itemgroup.itemgroup.class,favorites.class})
  69. public String items_collect() throws YosException {
  70. JSONArray itemids = content.getJSONArray("itemids");
  71. boolean iscollection=content.getBooleanValue("iscollection");
  72. ArrayList<String> sqllist = new ArrayList<>();
  73. SQLFactory sqlFactory = new SQLFactory(this, "商品收藏记录批量更新");
  74. sqlFactory.addParameter_in("itemids", itemids.toArray());
  75. sqlFactory.addParameter("iscollection", iscollection);
  76. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  77. sqlFactory.addParameter("siteid", siteid);
  78. sqllist.add(sqlFactory.getSQL());
  79. dbConnect.runSqlUpdate(sqllist);
  80. return getSucReturnObject().toString();
  81. }
  82. @API(title = "商品收藏列表", apiversion = R.ID20231121145103.v1.class)
  83. @CACHEING
  84. public String querycollectionmx() throws YosException {
  85. /*
  86. 过滤条件设置
  87. */
  88. StringBuffer where = new StringBuffer(" 1=1 ");
  89. if (content.containsKey("where")) {
  90. JSONObject whereObject = content.getJSONObject("where");
  91. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  92. where.append(" and(");
  93. where.append("t2.itemno like'%").append(whereObject.getString("condition")).append("%' ");
  94. where.append("or t2.itemname like'%").append(whereObject.getString("condition")).append("%' ");
  95. where.append(")");
  96. }
  97. }
  98. /**
  99. * 查询商品明细
  100. */
  101. SQLFactory priceSqlFactory = new SQLFactory(this, "查询收藏商品原价");
  102. priceSqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  103. priceSqlFactory.addParameter("siteid", siteid);
  104. Rows pricerows = dbConnect.runSqlQuery(priceSqlFactory);
  105. RowsMap pricerowsMap = pricerows.toRowsMap("itemid");
  106. SQLFactory sqlFactory = new SQLFactory(this, "查询收藏商品列表", pageSize, pageNumber, pageSorting);
  107. sqlFactory.addParameter_SQL("where",where);
  108. sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
  109. sqlFactory.addParameter("siteid", siteid);
  110. Rows itemrows = dbConnect.runSqlQuery(sqlFactory.getSQL());
  111. Rows sizecustomizedschemes=dbConnect.runSqlQuery("select * from sa_sizecustomizedscheme where siteid='"+siteid+"' ");
  112. RowsMap sizecustomizedschemesRowsMap=sizecustomizedschemes.toRowsMap("sa_sizecustomizedschemeid");
  113. Rows sizeschemedetails=dbConnect.runSqlQuery("select * from sa_sizeschemedetail where siteid='"+siteid+"' ");
  114. RowsMap sizeschemedetailsRowsMap=sizeschemedetails.toRowsMap("sa_sizecustomizedschemeid");
  115. for (Row row : itemrows) {
  116. ItemPrice itemPrice = ItemPrice.getItemPrice(this, sys_enterpriseid, row.getLong("itemid"));
  117. row.put("oldprice", itemPrice.getPrice());
  118. if (sys_enterpriseid > 0 || (usertype == 21 || usertype == 22)) {
  119. row.put("gradeprice", itemPrice.getContractprice());
  120. } else {
  121. if(pricerowsMap.containsKey(row.getString("itemid"))){
  122. if(pricerowsMap.get(row.getString("itemid")).isNotEmpty()){
  123. row.put("gradeprice", pricerowsMap.get(row.getString("itemid")).get(0).getBigDecimal("price"));
  124. }else{
  125. row.put("gradeprice",0);
  126. }
  127. }else {
  128. row.put("gradeprice", 0);
  129. }
  130. }
  131. if(row.getLong("widthschemeid")!=0){
  132. if(sizecustomizedschemesRowsMap.containsKey(row.getString("widthschemeid"))){
  133. if(sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).isNotEmpty()){
  134. row.put("widthtype",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getString("type"));
  135. row.put("widthmin",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("min"));
  136. row.put("widthmax",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("max"));
  137. row.put("widthdecimalplaces",sizecustomizedschemesRowsMap.get(row.getString("widthschemeid")).get(0).getBigDecimal("decimalplaces"));
  138. if(sizeschemedetailsRowsMap.containsKey(row.getString("widthschemeid"))){
  139. row.put("widthschemedetails",sizeschemedetailsRowsMap.get(row.getString("widthschemeid")));
  140. }else{
  141. row.put("widthschemedetails",new JSONArray());
  142. }
  143. }
  144. }
  145. }
  146. if(row.getLong("lengthschemeid")!=0){
  147. if(sizecustomizedschemesRowsMap.containsKey(row.getString("lengthschemeid"))){
  148. if(sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).isNotEmpty()){
  149. row.put("lengthtype",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getString("type"));
  150. row.put("lengthmin",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("min"));
  151. row.put("lengthmax",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("max"));
  152. row.put("lengthdecimalplaces",sizecustomizedschemesRowsMap.get(row.getString("lengthschemeid")).get(0).getBigDecimal("decimalplaces"));
  153. if(sizeschemedetailsRowsMap.containsKey(row.getString("lengthschemeid"))){
  154. row.put("lengthschemedetails",sizeschemedetailsRowsMap.get(row.getString("lengthschemeid")));
  155. }else{
  156. row.put("lengthschemedetails",new JSONArray());
  157. }
  158. }
  159. }
  160. }
  161. }
  162. ArrayList<Long> ids = itemrows.toArrayList("itemid", new ArrayList<>());
  163. //默认商品图片
  164. Rows defaultImageRows = getAttachmentUrl("system", (long) 1, "defaultImage");
  165. // 封面cover
  166. RowsMap coverRowsMap = getAttachmentUrl("plm_item", ids, "cover");
  167. // 附件
  168. RowsMap attRowsMap = getAttachmentUrl("plm_item", ids);
  169. Rows rowsitemclass = dbConnect.runSqlQuery(
  170. " select t7.itemclassname,t6.itemid,t8.brandname from sa_itemsaleclass t6 inner JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='"
  171. + siteid + "'");
  172. RowsMap itemclassRowsMap = rowsitemclass.toRowsMap("itemid");
  173. // 货品档案领域
  174. Rows rowstradefield = dbConnect.runSqlQuery(
  175. " select t6.itemid,t6.tradefield from plm_item_tradefield t6 where t6.siteid='" + siteid + "'");
  176. RowsMap tradefieldRowsMap = rowstradefield.toRowsMap("itemid");
  177. // 品牌
  178. Rows rowsbrand = dbConnect.runSqlQuery(
  179. " select distinct t8.sa_brandid,t6.itemid,t8.brandname from sa_itemsaleclass t6 inner JOIN plm_itemclass t7 ON t7.itemclassid = t6.itemclassid AND t7.siteid = t6.siteid LEFT JOIN sa_brand t8 ON t8.sa_brandid = t7.sa_brandid AND t8.siteid = t7.siteid where t6.siteid='"
  180. + siteid + "'");
  181. RowsMap brandRowsMap = rowsbrand.toRowsMap("itemid");
  182. for (Row row : itemrows) {
  183. Rows coverRows = coverRowsMap.get(row.getString("itemid"));
  184. if (coverRows.isEmpty()) {
  185. row.put("cover", "");
  186. } else {
  187. row.put("cover", coverRows.get(0).getString("url"));
  188. }
  189. if ((attRowsMap.getOrDefault(row.getString("itemid"), new Rows())).isEmpty()) {
  190. row.put("attinfos", defaultImageRows);
  191. } else {
  192. row.put("attinfos", attRowsMap.getOrDefault(row.getString("itemid"), new Rows()));
  193. }
  194. row.put("itemclass", itemclassRowsMap.get(row.getString("itemid")));
  195. row.put("tradefield", tradefieldRowsMap.get(row.getString("itemid")));
  196. row.put("brand", brandRowsMap.get(row.getString("itemid")));
  197. }
  198. return getSucReturnObject().setData(itemrows).toString();
  199. }
  200. }