diff --git a/README.md b/README.md index 198634b..e45fcd8 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,10 @@ 1. 商家注册 2. 商家登陆 - 2. 修复上传接口 BUG + 2. 修复商家密码会被查找出来 - 3. 修复商家密码会被查找出来 + 3. 修改秒杀接口返回的数据,封装好 Goods 返回,包含秒杀价格的 GoodsAttr (添加 Goods 接口:根据 GoodsAttrId 来查找商品) - 4. 修改秒杀接口返回的数据,封装好 Goods 返回,包含秒杀价格的 GoodsAttr (添加 Goods 接口:根据 GoodsAttrId 来查找商品) + 4. 部分商品没有套餐,在外层添加价格 diff --git a/src/main/java/com/mall/Interceptor/postInterceptor.java b/src/main/java/com/mall/Interceptor/postInterceptor.java index 3d8817b..805dec3 100644 --- a/src/main/java/com/mall/Interceptor/postInterceptor.java +++ b/src/main/java/com/mall/Interceptor/postInterceptor.java @@ -6,6 +6,7 @@ import com.opensymphony.xwork2.util.ValueStack; import org.apache.struts2.ServletActionContext; +import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Map; @@ -18,6 +19,9 @@ public class postInterceptor extends AbstractInterceptor { */ @Override public String intercept(ActionInvocation actionInvocation) throws Exception { + HttpServletResponse res = ServletActionContext.getResponse(); + res.setHeader("Access-Control-Allow-Origin", "*"); + String method = ServletActionContext.getRequest().getMethod(); if (method.equals("POST")) { actionInvocation.invoke(); diff --git a/src/main/java/com/mall/admin/action/GoodsAction.java b/src/main/java/com/mall/admin/action/GoodsAction.java index 9fc3927..0e5f9e3 100644 --- a/src/main/java/com/mall/admin/action/GoodsAction.java +++ b/src/main/java/com/mall/admin/action/GoodsAction.java @@ -31,29 +31,45 @@ public String list() { orderKeys = "salesNum"; } + int count; + if (hasPageSetting()) { int page = getPageSetting(); int pageSize = getPageSizeSetting(); // 根据参数判断用户是否要根据指定值查找 if (hasParam("goodsName")) { - goodses = goodsService.findByGoodsNameAndPage(getParam("goodsName"), page, pageSize, orderKeys); + String goodsName = getParam("goodsName"); + goodses = goodsService.findByGoodsNameAndPage(goodsName, page, pageSize, orderKeys); + count = goodsService.getCountByGoodsName(goodsName); } else if (hasParam("catId")) { - goodses = goodsService.findByCatIdAndPage(Integer.parseInt(getParam("catId")), page, pageSize, orderKeys); + int catId = Integer.parseInt(getParam("catId")); + goodses = goodsService.findByCatIdAndPage(catId, page, pageSize, orderKeys); + count = goodsService.getCountByCatId(catId); } else if (hasParam("merchantId")) { - goodses = goodsService.findByMerchantIdAndPage(Integer.parseInt(getParam("merchantId")), page, pageSize, orderKeys); + int merchantId = Integer.parseInt(getParam("merchantId")); + goodses = goodsService.findByMerchantIdAndPage(merchantId, page, pageSize, orderKeys); + count = goodsService.getCountByMerchantId(merchantId); } else { goodses = goodsService.findByPage(page, pageSize, orderKeys); + count = goodsService.getCount(); } } else { if (hasParam("goodsName")) { + String goodsName = getParam("goodsName"); goodses = goodsService.findByGoodsName(getParam("goodsName"), orderKeys); + count = goodsService.getCountByGoodsName(goodsName); } else if (hasParam("catId")) { + int catId = Integer.parseInt(getParam("catId")); goodses = goodsService.findByCatId(Integer.parseInt(getParam("catId")), orderKeys); + count = goodsService.getCountByCatId(catId); } else if (hasParam("merchantId")) { + int merchantId = Integer.parseInt("merchantId"); goodses = goodsService.findByMerchantId(Integer.parseInt(getParam("merchantId")), orderKeys); + count = goodsService.getCountByMerchantId(merchantId); } else { goodses = goodsService.findAll(orderKeys); + count = goodsService.getCount(); } } @@ -61,7 +77,7 @@ public String list() { map.put("data", goodses); // 加上商品总数 - map.put("goodsSum", goodses.size()); + map.put("goodsSum", count); jsonResult = ResponseTemplate.success(map); return SUCCESS; } diff --git a/src/main/java/com/mall/admin/dao/GoodsDao.java b/src/main/java/com/mall/admin/dao/GoodsDao.java index e10ae77..d96cd84 100644 --- a/src/main/java/com/mall/admin/dao/GoodsDao.java +++ b/src/main/java/com/mall/admin/dao/GoodsDao.java @@ -23,6 +23,14 @@ public interface GoodsDao { List findByPage(int page, int pageSize, String orderKeys); + int getCount(); + + int getCountByGoodsName(String goodsName); + + int getCountByMerchantId(int merchantId); + + int getCountByCatId(int catId); + Goods findById(int id); int save(Goods goods); diff --git a/src/main/java/com/mall/admin/dao/impl/GoodsDaoImpl.java b/src/main/java/com/mall/admin/dao/impl/GoodsDaoImpl.java index c4ced84..d2f4064 100644 --- a/src/main/java/com/mall/admin/dao/impl/GoodsDaoImpl.java +++ b/src/main/java/com/mall/admin/dao/impl/GoodsDaoImpl.java @@ -5,9 +5,7 @@ import com.mall.model.GoodsCat; import com.mall.model.Merchant; import org.hibernate.SessionFactory; -import org.hibernate.criterion.DetachedCriteria; -import org.hibernate.criterion.Order; -import org.hibernate.criterion.Restrictions; +import org.hibernate.criterion.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.hibernate5.HibernateTemplate; import org.springframework.stereotype.Repository; @@ -114,6 +112,59 @@ public List findByPage(int page, int pageSize, String orderKeys) { return resultList; } + @Override + public int getCount() { + DetachedCriteria criteria = DetachedCriteria.forClass(Goods.class); + criteria.setProjection(Projections.rowCount()); + Object obj = template.findByCriteria(criteria).get(0); + Long longObj = (Long) obj; + int count = longObj.intValue(); + return count; + } + + @Override + public int getCountByGoodsName(String goodsName) { + DetachedCriteria criteria = DetachedCriteria.forClass(Goods.class); + + criteria.add(Restrictions.like("goodsName", "%"+goodsName+"%")); + criteria.setProjection(Projections.rowCount()); + + Object obj = template.findByCriteria(criteria).get(0); + Long longObj = (Long) obj; + int count = longObj.intValue(); + return count; + } + + @Override + public int getCountByMerchantId(int merchantId) { + DetachedCriteria criteria = DetachedCriteria.forClass(Goods.class); + + Merchant merchant = new Merchant(); + merchant.setId(merchantId); + criteria.add(Restrictions.eq("merchant", merchant)); + criteria.setProjection(Projections.rowCount()); + + Object obj = template.findByCriteria(criteria).get(0); + Long longObj = (Long) obj; + int count = longObj.intValue(); + return count; + } + + @Override + public int getCountByCatId(int catId) { + DetachedCriteria criteria = DetachedCriteria.forClass(Goods.class); + + GoodsCat goodsCat = new GoodsCat(); + goodsCat.setId(catId); + criteria.add(Restrictions.eq("goodsCat", goodsCat)); + criteria.setProjection(Projections.rowCount()); + + Object obj = template.findByCriteria(criteria).get(0); + Long longObj = (Long) obj; + int count = longObj.intValue(); + return count; + } + @Override public Goods findById(int id) { DetachedCriteria criteria = DetachedCriteria.forClass(Goods.class); diff --git a/src/main/java/com/mall/admin/service/GoodsService.java b/src/main/java/com/mall/admin/service/GoodsService.java index b46d1d8..08f1842 100644 --- a/src/main/java/com/mall/admin/service/GoodsService.java +++ b/src/main/java/com/mall/admin/service/GoodsService.java @@ -22,6 +22,14 @@ public interface GoodsService { List findByPage(int offset, int pageSize, String orderKeys); + int getCount(); + + int getCountByGoodsName(String goodsName); + + int getCountByMerchantId(int merchantId); + + int getCountByCatId(int catId); + Goods findById(int id); int save(Goods adminUser); diff --git a/src/main/java/com/mall/admin/service/impl/GoodsServiceImpl.java b/src/main/java/com/mall/admin/service/impl/GoodsServiceImpl.java index b9a7a5d..fa4733f 100644 --- a/src/main/java/com/mall/admin/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/mall/admin/service/impl/GoodsServiceImpl.java @@ -62,6 +62,26 @@ public List findByPage(int offset, int pageSize, String orderKeys) { return goodss; } + @Override + public int getCount() { + return goodsDao.getCount(); + } + + @Override + public int getCountByGoodsName(String goodsName) { + return goodsDao.getCountByGoodsName(goodsName); + } + + @Override + public int getCountByMerchantId(int merchantId) { + return goodsDao.getCountByMerchantId(merchantId); + } + + @Override + public int getCountByCatId(int catId) { + return goodsDao.getCountByCatId(catId); + } + @Override public Goods findById(int id) { Goods goods = goodsDao.findById(id); diff --git a/src/main/java/com/mall/common/UploadAction.java b/src/main/java/com/mall/common/UploadAction.java index 6ae9e38..65bec47 100644 --- a/src/main/java/com/mall/common/UploadAction.java +++ b/src/main/java/com/mall/common/UploadAction.java @@ -18,6 +18,11 @@ public class UploadAction extends ActionSupport { public Map jsonResult; public String upload() { + if (uploadFile == null) { + jsonResult = ResponseTemplate.error(-1, "No file!"); + return SUCCESS; + } + System.out.println(this.uploadFileContentType); System.out.println(this.uploadFileFileName);