From 62d532f69c05f947c510a2c33f86d0bdeabbd1e7 Mon Sep 17 00:00:00 2001 From: liyunfengfengfeng <2305743208@qq.com> Date: Sun, 4 Mar 2018 16:19:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E9=81=97?= =?UTF-8?q?=E7=95=99=E4=BB=A3=E7=A0=81=E4=BB=A5=E5=8F=8A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E4=B8=AD=E5=AF=B9=E5=BA=94=E7=9A=84=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yingjun/ssm/dao/GoodsDao.java | 39 --------- .../java/com/yingjun/ssm/dao/OrderDao.java | 35 -------- .../java/com/yingjun/ssm/dao/UserDao.java | 35 -------- .../java/com/yingjun/ssm/entity/Goods.java | 84 ------------------- .../java/com/yingjun/ssm/entity/Order.java | 82 ------------------ .../java/com/yingjun/ssm/entity/User.java | 72 ---------------- .../com/yingjun/ssm/service/GoodsService.java | 29 ------- .../com/yingjun/ssm/service/UserService.java | 11 --- .../ssm/service/impl/GoodsServiceImpl.java | 36 -------- .../ssm/service/impl/UserServiceImpl.java | 22 ----- .../com/yingjun/ssm/web/GoodsController.java | 63 -------------- src/main/resources/mapper/GoodsDao.xml | 33 -------- src/main/resources/mapper/OrderDao.xml | 31 ------- src/main/resources/mapper/UserDao.xml | 26 ------ .../com/yingjun/ssm/dao/GoodsDaoTest.java | 49 ----------- .../com/yingjun/ssm/dao/OrderDaoTest.java | 52 ------------ .../java/com/yingjun/ssm/dao/UserDaoTest.java | 44 +++------- 17 files changed, 10 insertions(+), 733 deletions(-) delete mode 100644 src/main/java/com/yingjun/ssm/dao/GoodsDao.java delete mode 100644 src/main/java/com/yingjun/ssm/dao/OrderDao.java delete mode 100644 src/main/java/com/yingjun/ssm/dao/UserDao.java delete mode 100644 src/main/java/com/yingjun/ssm/entity/Goods.java delete mode 100644 src/main/java/com/yingjun/ssm/entity/Order.java delete mode 100644 src/main/java/com/yingjun/ssm/entity/User.java delete mode 100644 src/main/java/com/yingjun/ssm/service/GoodsService.java delete mode 100644 src/main/java/com/yingjun/ssm/service/UserService.java delete mode 100644 src/main/java/com/yingjun/ssm/service/impl/GoodsServiceImpl.java delete mode 100644 src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java delete mode 100644 src/main/java/com/yingjun/ssm/web/GoodsController.java delete mode 100644 src/main/resources/mapper/GoodsDao.xml delete mode 100644 src/main/resources/mapper/OrderDao.xml delete mode 100644 src/main/resources/mapper/UserDao.xml delete mode 100644 src/test/java/com/yingjun/ssm/dao/GoodsDaoTest.java delete mode 100644 src/test/java/com/yingjun/ssm/dao/OrderDaoTest.java diff --git a/src/main/java/com/yingjun/ssm/dao/GoodsDao.java b/src/main/java/com/yingjun/ssm/dao/GoodsDao.java deleted file mode 100644 index 99054ed..0000000 --- a/src/main/java/com/yingjun/ssm/dao/GoodsDao.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.yingjun.ssm.dao; - -import com.yingjun.ssm.entity.Goods; -import org.apache.ibatis.annotations.Param; - -import java.util.List; -import java.util.Map; - -public interface GoodsDao { - /** - * 根据偏移量查询可用商品列表 - * - * @param offset - * @param limit - * @return - */ - List queryAll(@Param("offset") int offset, @Param("limit") int limit); - - /** - * 商品减库存 - * - * @param goodsId - * @return 如果更新行数大于1,表示更新的行数 - */ - int reduceNumber(long goodsId); - - /** - * 使用存储过程执行抢购 - * - * 能提升并发性的原因: - * 1、减少多个sql语句执行来回的网络延时。 - * 2、通过mysql自身的事物提升效率。 - * - * @param paramMap - */ - void bugWithProcedure(Map paramMap); - - -} diff --git a/src/main/java/com/yingjun/ssm/dao/OrderDao.java b/src/main/java/com/yingjun/ssm/dao/OrderDao.java deleted file mode 100644 index 00fd512..0000000 --- a/src/main/java/com/yingjun/ssm/dao/OrderDao.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.yingjun.ssm.dao; - -import com.yingjun.ssm.entity.Order; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -public interface OrderDao { - - /** - * 插入订单明细 - * - * @param userId - * @param goodsId - * @return - */ - int insertOrder(@Param("userId") long userId,@Param("goodsId") long goodsId, @Param("title")String title); - - /** - * 根据用户手机号查询订单 - * - * @param userPhone - * @return - */ - List queryByUserPhone(@Param("userPhone") long userPhone); - - - /** - * 根据偏移量查询订单列表 - * @param offset - * @param limit - * @return - */ - List queryAll(@Param("offset") int offset, @Param("limit") int limit); -} diff --git a/src/main/java/com/yingjun/ssm/dao/UserDao.java b/src/main/java/com/yingjun/ssm/dao/UserDao.java deleted file mode 100644 index 978f404..0000000 --- a/src/main/java/com/yingjun/ssm/dao/UserDao.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.yingjun.ssm.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; - -import com.yingjun.ssm.entity.User; - -public interface UserDao { - - /** - * 根据手机号查询用户对象 - * - * @param userPhone - * @return - */ - User queryByPhone(long userPhone); - - - /** - * 根据偏移量查询用户列表 - * - * @param offset - * @param limit - * @return - */ - List queryAll(@Param("offset") int offset, @Param("limit") int limit); - - - /** - * 增加积分 - */ - void addScore(@Param("add")int add); - -} diff --git a/src/main/java/com/yingjun/ssm/entity/Goods.java b/src/main/java/com/yingjun/ssm/entity/Goods.java deleted file mode 100644 index 2baf116..0000000 --- a/src/main/java/com/yingjun/ssm/entity/Goods.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.yingjun.ssm.entity; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.yingjun.ssm.util.CustomDateSerializer; -import com.yingjun.ssm.validator.Not999; - -import javax.validation.constraints.Min; -import java.util.Date; - -public class Goods { - - @Min(900) - @Not999 //这个为自定义的验证标签 - private long goodsId; - - private String title; - - private float price; - - private short state;//0表示下架 1表示正常 - - private int number; - - //这里展示了jackson封装好的以及自定义的对时间格式的转换方式 - //后续对于一些复杂的转换可以自定义转换方式 - @JsonFormat(pattern = "yyyy-MM-dd") - private Date createTime; - - @JsonSerialize(using = CustomDateSerializer.class) - private Date updateTime; - - public long getGoodsId() { - return goodsId; - } - public void setGoodsId(long goodsId) { - this.goodsId = goodsId; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public float getPrice() { - return price; - } - public void setPrice(float price) { - this.price = price; - } - - public Date getCreateTime() { - return createTime; - } - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - public Date getUpdateTime() { - return updateTime; - } - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - public short getState() { - return state; - } - public void setState(short state) { - this.state = state; - } - - public int getNumber() { - return number; - } - public void setNumber(int number) { - this.number = number; - } - @Override - public String toString() { - return "Goods [goodsId=" + goodsId + ", title=" + title + ", price=" + price + ", state=" + state + ", number=" + number + ", createTime=" - + createTime + ", updateTime=" + updateTime + "]"; - } - - -} diff --git a/src/main/java/com/yingjun/ssm/entity/Order.java b/src/main/java/com/yingjun/ssm/entity/Order.java deleted file mode 100644 index 15ea8f1..0000000 --- a/src/main/java/com/yingjun/ssm/entity/Order.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.yingjun.ssm.entity; - -import java.util.Date; - -/** - * 订单 - * @author yingjun - * - */ -public class Order { - - private long orderId; - - private User user; - - private long goodsId; - - private String title; - - private Date createTime; - - - public User getUser() { - return user; - } - - - public void setUser(User user) { - this.user = user; - } - - - public long getOrderId() { - return orderId; - } - - - public void setOrderId(long orderId) { - this.orderId = orderId; - } - - - public String getTitle() { - return title; - } - - - public void setTitle(String title) { - this.title = title; - } - - - public Date getCreateTime() { - return createTime; - } - - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - - public long getGoodsId() { - return goodsId; - } - - - public void setGoodsId(long goodsId) { - this.goodsId = goodsId; - } - - - @Override - public String toString() { - return "Order [user=" + user + ", orderId=" + orderId + ", goodsId=" + goodsId + ", title=" + title + ", createTime=" + createTime + "]"; - } - - - - - -} diff --git a/src/main/java/com/yingjun/ssm/entity/User.java b/src/main/java/com/yingjun/ssm/entity/User.java deleted file mode 100644 index cc93700..0000000 --- a/src/main/java/com/yingjun/ssm/entity/User.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.yingjun.ssm.entity; - -import java.util.Date; - - -/** - * 用户 - * @author yingjun - * - */ -public class User { - - private long userId; - - private String userName; - - private long userPhone; - - private Date createTime; - - private int score; - - public long getUserId() { - return userId; - } - - public void setUserId(long userId) { - this.userId = userId; - } - - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public long getUserPhone() { - return userPhone; - } - - public void setUserPhone(long userPhone) { - this.userPhone = userPhone; - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public int getScore() { - return score; - } - - public void setScore(int score) { - this.score = score; - } - - @Override - public String toString() { - return "User [userId=" + userId + ", userName=" + userName + ", userPhone=" + userPhone + ", createTime=" + createTime + ", score=" + score - + "]"; - } - - - -} diff --git a/src/main/java/com/yingjun/ssm/service/GoodsService.java b/src/main/java/com/yingjun/ssm/service/GoodsService.java deleted file mode 100644 index 1b285a6..0000000 --- a/src/main/java/com/yingjun/ssm/service/GoodsService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.yingjun.ssm.service; - -import com.yingjun.ssm.entity.Goods; - -import java.util.List; - -public interface GoodsService { - - /** - * 根据偏移量查询可用商品列表 - * - * @param offset - * @param limit - * @return - */ - List getGoodsList(int offset, int limit); - - /** - * 商品购买 - * - * @param userPhone - * @param goodsId - * @param useProcedure - * 是否用存储过程提高并发能力 - */ - - void buyGoods(long userPhone, long goodsId, boolean useProcedure); - -} diff --git a/src/main/java/com/yingjun/ssm/service/UserService.java b/src/main/java/com/yingjun/ssm/service/UserService.java deleted file mode 100644 index a5b07f3..0000000 --- a/src/main/java/com/yingjun/ssm/service/UserService.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.yingjun.ssm.service; - -import java.util.List; - -import com.yingjun.ssm.entity.User; - -public interface UserService { - - List getUserList(int offset, int limit); - -} diff --git a/src/main/java/com/yingjun/ssm/service/impl/GoodsServiceImpl.java b/src/main/java/com/yingjun/ssm/service/impl/GoodsServiceImpl.java deleted file mode 100644 index 3d7447a..0000000 --- a/src/main/java/com/yingjun/ssm/service/impl/GoodsServiceImpl.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.yingjun.ssm.service.impl; - - -import com.yingjun.ssm.entity.Goods; - -import com.yingjun.ssm.service.GoodsService; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - - -import java.util.List; - - -@Service -public class GoodsServiceImpl implements GoodsService { - - private final Logger LOG = LoggerFactory.getLogger(this.getClass()); - - - - @Override - public List getGoodsList(int offset, int limit) { - - return null; - } - - @Transactional - @Override - public void buyGoods(long userPhone, long goodsId, boolean useProcedure) { - } - -} diff --git a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java b/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java deleted file mode 100644 index 7e67863..0000000 --- a/src/main/java/com/yingjun/ssm/service/impl/UserServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.yingjun.ssm.service.impl; - - -import com.yingjun.ssm.entity.User; -import com.yingjun.ssm.service.UserService; - -import org.springframework.stereotype.Service; - -import java.util.List; - -@Service -public class UserServiceImpl implements UserService { - - @Override - public List getUserList(int offset, int limit) { - - return null; - } - - - -} diff --git a/src/main/java/com/yingjun/ssm/web/GoodsController.java b/src/main/java/com/yingjun/ssm/web/GoodsController.java deleted file mode 100644 index 32d98b9..0000000 --- a/src/main/java/com/yingjun/ssm/web/GoodsController.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.yingjun.ssm.web; - -import com.yingjun.ssm.dto.BaseResult; -import com.yingjun.ssm.entity.Goods; -import com.yingjun.ssm.enums.ResultEnum; -import com.yingjun.ssm.exception.BizException; -import com.yingjun.ssm.service.GoodsService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.ui.Model; -import org.springframework.validation.BindingResult; -import org.springframework.web.bind.annotation.CookieValue; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.ResponseBody; - -import javax.validation.Valid; -import java.util.List; - -@Controller -@RequestMapping("/goods") -public class GoodsController { - - private final Logger LOG = LoggerFactory.getLogger(this.getClass()); - - @Autowired - private GoodsService goodsService; - - @RequestMapping(value = "/list", method = RequestMethod.GET) - public String list(Model model, Integer offset, Integer limit) { - LOG.info("invoke----------/goods/list"); -// offset = offset == null ? 0 : offset;//默认便宜0 -// limit = limit == null ? 50 : limit;//默认展示50条 -// List list = goodsService.getGoodsList(offset, limit); -// model.addAttribute("goodslist", list); - return "goodslist"; - } - - @RequestMapping(value = "/{goodsId}/buy", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"}) - @ResponseBody - public BaseResult buy(@CookieValue(value = "userPhone", required = false) Long userPhone, - /*@PathVariable("goodsId") Long goodsId*/ @Valid Goods goods, BindingResult result) { - LOG.info("invoke----------/" + goods.getGoodsId() + "/buy userPhone:" + userPhone); -// if (userPhone == null) { -// return new BaseResult(false, ResultEnum.INVALID_USER.getMsg()); -// } - //Valid 参数验证(这里注释掉,采用AOP的方式验证,见BindingResultAop.java) - //if (result.hasErrors()) { - // String errorInfo = "[" + result.getFieldError().getField() + "]" + result.getFieldError().getDefaultMessage(); - // return new BaseResult(false, errorInfo); - //} - try { - //goodsService.buyGoods(userPhone, goods.getGoodsId(), false); - } catch (BizException e) { - return new BaseResult(false, e.getMessage()); - } catch (Exception e) { - return new BaseResult(false, ResultEnum.INNER_ERROR.getMsg()); - } - return new BaseResult(true, null); - } -} diff --git a/src/main/resources/mapper/GoodsDao.xml b/src/main/resources/mapper/GoodsDao.xml deleted file mode 100644 index 39621a5..0000000 --- a/src/main/resources/mapper/GoodsDao.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - UPDATE _goods - SET - number = number -1 - WHERE - goods_id = #{goodsId} - AND state = 1 - AND number >0; - - - - - - \ No newline at end of file diff --git a/src/main/resources/mapper/OrderDao.xml b/src/main/resources/mapper/OrderDao.xml deleted file mode 100644 index 6372095..0000000 --- a/src/main/resources/mapper/OrderDao.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - INSERT INTO - _order(user_id,goods_id,title) - VALUES - (#{userId},#{goodsId},#{title}) - - - - - - - \ No newline at end of file diff --git a/src/main/resources/mapper/UserDao.xml b/src/main/resources/mapper/UserDao.xml deleted file mode 100644 index fdde493..0000000 --- a/src/main/resources/mapper/UserDao.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - UPDATE _user - SET - score = score + #{add} - - - \ No newline at end of file diff --git a/src/test/java/com/yingjun/ssm/dao/GoodsDaoTest.java b/src/test/java/com/yingjun/ssm/dao/GoodsDaoTest.java deleted file mode 100644 index c1de856..0000000 --- a/src/test/java/com/yingjun/ssm/dao/GoodsDaoTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package com.yingjun.ssm.dao; - -import com.yingjun.ssm.entity.Goods; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration("classpath:spring/spring-dao.xml") -public class GoodsDaoTest { - - @Autowired - private GoodsDao goodsDao; - - @Test - public void testQueryAll() { - List list=goodsDao.queryAll(0, 100); - for (Goods goods : list) { - System.out.println(goods); - } - System.out.println("--------------------------"); - } - - @Test - public void testReduceNumber() { - int result=goodsDao.reduceNumber(1000); - System.out.println("testReduceNumber result:"+result); - System.out.println("--------------------------"); - } - - @Test - public void testBugWithProcedure() { - Map map=new HashMap(); - map.put("userId", 1000L); - map.put("goodsId", 1000L); - map.put("title", "抢购iPhone7"); - map.put("result", null); - goodsDao.bugWithProcedure(map); - //获取result - System.out.println("testBugWithProcedure result:"+map.get("result")); - } - -} diff --git a/src/test/java/com/yingjun/ssm/dao/OrderDaoTest.java b/src/test/java/com/yingjun/ssm/dao/OrderDaoTest.java deleted file mode 100644 index 4fd31c0..0000000 --- a/src/test/java/com/yingjun/ssm/dao/OrderDaoTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.yingjun.ssm.dao; - - -import java.util.ArrayList; -import java.util.List; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import com.yingjun.ssm.entity.Goods; -import com.yingjun.ssm.entity.Order; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration("classpath:spring/spring-dao.xml") -public class OrderDaoTest { - - @Autowired - private OrderDao orderDao; - @Autowired - private GoodsDao goodsDao; - - @Test - public void testInsertOrder() { - Goods goods=goodsDao.queryAll(0, 1).get(0); - System.out.println(goods); - int result=orderDao.insertOrder(1000,goods.getGoodsId(),goods.getTitle()); - System.out.println("testInsertOrder result:"+result); - System.out.println("--------------------------"); - } - - @Test - public void testQueryByUserPhone() { - List list=orderDao.queryByUserPhone(18768128888L); - for (Order order : list) { - System.out.println(order); - } - System.out.println("--------------------------"); - } - - @Test - public void testQueryAll() { - List list=new ArrayList(); - for (Order order : list) { - System.out.println(order); - } - System.out.println("--------------------------"); - } - -} diff --git a/src/test/java/com/yingjun/ssm/dao/UserDaoTest.java b/src/test/java/com/yingjun/ssm/dao/UserDaoTest.java index e5ad554..6ba3b49 100644 --- a/src/test/java/com/yingjun/ssm/dao/UserDaoTest.java +++ b/src/test/java/com/yingjun/ssm/dao/UserDaoTest.java @@ -1,51 +1,27 @@ package com.yingjun.ssm.dao; -import java.util.List; -import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import com.yingjun.ssm.entity.User; - /** - * - * @author yingjun - * + * @author liyunfeng + * 普通用户 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring/spring-dao.xml") public class UserDaoTest { - @Autowired - private UserDao userDao; - - @Test - public void testQueryById() { - User user=userDao.queryByPhone(18768128888L); - System.out.println(user); - System.out.println("--------------------------"); - } - - @Test - public void testQueryAll() { - List list=userDao.queryAll(0, 100); - for (User user : list) { - System.out.println(user); - } - } +// @Autowired +// private UserDao userDao; - @Test - public void testAddScore() { - userDao.addScore(10); - List list=userDao.queryAll(0, 100); - for (User user : list) { - System.out.println(user); - } - } - +// @Test +// public void testQueryById() { +// User user=userDao.queryByPhone(18768128888L); +// System.out.println(user); +// System.out.println("--------------------------"); +// } } -- GitLab