900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于javaweb+mysql的ssm+maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

基于javaweb+mysql的ssm+maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

时间:2023-10-30 18:14:11

相关推荐

基于javaweb+mysql的ssm+maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

基于javaweb+mysql的ssm+maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM+Maven网上图书商城系统(java+ssm+jsp+mysql+redis+easyui)

这个项目涉及到Shiro整合JWT、秒杀功能所具备的基本要求(限流、乐观锁、接口隐藏、JMeter高并发测试等等)、消息中间件RabbitMQ的异步邮件通知和死信队列、沙箱支付宝模拟支付等等技术亮点。

项目功能:该项目分为买家、卖家、管理员三个角色。买家角色的功能:登录、注册、浏览图书、管理购物车、结算订单、支付订单、查看订单、修改个人信息等等功能。

卖家角色的功能:登录、注册、浏览商品、管理自己发布的图书、管理收到的订单、查看自己的收益详情等等。管理员角色的功能:登录、管理所有用户信息、管理权限信息、管理所有卖家发布的图书、管理所有订单信息、管理所有支付信息、查看总共收益详情等等。

应用技术:SSM + Jsp + MySQL + Redis + JWT + Shiro + EasyUI等

运行环境:Eclipse/IntelliJ IDEA + MySQL5.7 + Maven3.6.3+ JDK1.8 + Redis5.0.5+ Tomcat8.5 +

@PostMapping("/home/book/index")@ResponseBodypublic ResponseVo<List<Book>> index(){return bookService.getBookByType();}/*** 获取用户信息和商品信息的MD5加密数据操作处理* @param book* @return*/@PostMapping("/home/book/getMD5")@ResponseBodypublic ResponseVo<String> getMD5ByUserAndBook(@RequestBody Book book){return bookService.getMD5ByUserAndBook(book);}}/***//*** 后台订单Order控制类*/@Controllerpublic class OrderController {@Autowiredprivate IOrderService orderService;/**

*//*** 前台用户User控制类*/@Controllerpublic class HomeUserController {@Autowiredprivate IUserService userService;@Autowiredprivate IOrderService orderService;private Logger log = LoggerFactory.getLogger(HomeUserController.class);/*** 前台用户注册操作处理* @param user* @param confirmPassword* @param captcha* @param request* @return*/@PostMapping("/home/user/register")@ResponseBodypublic ResponseVo<Boolean> register(User user, String confirmPassword, String captcha, HttpServletRequest request){log.info("注册的用户=[{}]",user);String correctCaptcha = (String) request.getSession().getAttribute("user_register");return userService.register(user, confirmPassword, captcha, correctCaptcha);}/*** 前台用户登录操作处理* @param user* @return*/@PostMapping("/home/user/login")@ResponseBodypublic ResponseVo<String> login(@RequestBody User user){return userService.homeLogin(user);}

/***//*** 后台订单Order控制类*/@Controllerpublic class OrderController {@Autowiredprivate IOrderService orderService;/*** 订单列表页面* @return*/@GetMapping("/admin/order/list")public String list(){return "admin/order/list";}/*** 近期订单收益图表页面* @return*/@GetMapping("/admin/order/stats")public String stats(){return "admin/order/stats";}/*** 获取订单收益图表的数据* @return*/@PostMapping("/admin/order/stats")

// @Autowired// private IPayItemService payItemService;//// @Autowired// private IBookService bookService;//@Autowired private AmqpTemplate amqpTemplate;//// /**//* 支付页面//* @param req//* @param httpResponse//* @throws IOException//*/// @GetMapping("/common/alipay/pay")// public void alipay(HttpServletRequest req, HttpServletResponse httpResponse) throws IOException {// User user = (User) SecurityUtils.getSubject().getPrincipal();// if(user == null){// throw new RuntimeException("还未登录或会话失效,请重新登录!");// }// String payId = (String) req.getSession().getAttribute(RuntimeConstant.payIdSession);// if(CommonUtil.isEmpty(payId)){// throw new RuntimeException("支付会话失效,请重新操作!");// }// QueryWrapper<Pay> queryWrapper = new QueryWrapper<>();// queryWrapper.eq("user_id", user.getId());// queryWrapper.eq("id", payId);// Pay selectedPay = payDao.selectOne(queryWrapper);// if(selectedPay == null){// throw new RuntimeException("数据非法,支付失败,请重新操作!");// }// Random r = new Random();// //实例化客户端,填入所需参数// AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);// AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();// //在公共参数中设置回跳和通知地址// request.setReturnUrl(RETURN_URL);// //request.setNotifyUrl(NOTIFY_URL);//// //发送RabbitMQ异步消息 5分钟后检查是否已支付成功,如果没有,则取消订单 try{//将Java对象匹配JSON结构 //对象转化为字节码 把对象转化为字节码后,把字节码传输过去再转化为对象 byte[] bytes = CommonUtil.getBytesFromObject(selectedPay); //发送消息 amqpTemplate.convertAndSend("my_normal_exchange", "my_ttl_dlx", bytes); }catch (Exception e){//邮件发送失败 e.printStackTrace(); }////// //商户订单号,商户网站订单系统中唯一订单号,必填

*//*** 前台订单Order控制类*/@Controllerpublic class HomeOrderController {@Autowiredprivate IOrderService orderService;/*** 前往订单结算页面* @return*/@GetMapping("/home/order/index")public String index(){return "home/order/index";}/*** 前往订单结算页面前数据处理* @param ids* @param request* @return*/@PostMapping("/home/order/index")@ResponseBodypublic ResponseVo<Boolean> index(String ids, HttpServletRequest request){return orderService.toOrderList(ids, request);}/*** 获取订单数据* @param request* @return*/@PostMapping("/home/order/data")@ResponseBody

}Set<Long> bookIdSet = new HashSet<>();orderItemList.forEach(e->{bookIdSet.add(e.getBookId());});bookIdSet.forEach(e->{QueryWrapper<Cart> cartQueryWrapper = new QueryWrapper<>();cartQueryWrapper.eq("book_id", e);cartQueryWrapper.eq("user_id", userId);cartDao.delete(cartQueryWrapper);});}}}/***//*** 用户登录拦截器*/@Componentpublic class LoginInterceptor implements HandlerInterceptor {private Logger log = LoggerFactory.getLogger(LoginInterceptor.class);@Autowiredprivate ICartService cartService;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {

/////**// *//////**// * 沙箱支付宝支付AliPay控制类// *///@Controller//public class AliPayController_backup {//// //==========================这些信息未经作者允许,不允许分享使用!!!=================================// private final String APP_ID = "110300790563";// private final String APP_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCCsWvZktzLxZhB8yFUp0f98s3uPegxu0p95sYwwSurm9FrCqn8jEJaR92git/i19QsODjE4KFY85O+AVrcZEDJoqubf8Pc5tCGcaCI1Ho+OD2LHW31cmDj29tlLHi2SlsL9EynSD/LL2DsG1Ufj12/TkuWPVAzjwsf/NJwiKV9mTIX/I88RvCJV2tqX8vT8V5LuHvI27vmGeKTgioExymrv6GQlhM1aHv3w2GMShp/n5wY1S0bhgMLL5zzO3FJSOKrOBPTYh0sCLAhvcD7vDXDH3ruBVq+jbtqXkQMdHww1nmaTz/t06uqNEoofGYCKfZWSQgXnPwEQBpqdSEs8Nl/AgMBAAECggEAbYbY9pbwuUkYR7TFKxeh6r3wPQfersbiL88WK0fIHGJSR93BBahZ9yUhJGkeJhJwerqHQN9r+IrxNxwVlHvkG9da789MSrWY7gMN4X4IEFq7oPmB7F/1uR/Ipup1I3f/A26ySsLuy44iMNzbIr7YdvnbuMYbj4oCbcVIawzpe+6ThkSERg+kaqZbg9DsAjLEkUFLRLE37R2F5BgdM4Gc5Dsw6e7ZuRc1fyBwI4bbdC11oxpLTOkFQFL9aAR1iyKvaPhbV7fswYbMBmJXDTplfDLXufcZPbm7MgfbV1sIhipjf6HpNOB3Qc0WI3iWwBNrb5EGD6PbqAtZyLDBPOVz+QKBgQC4s3Xnt18XoQXqHU5cgg+XCZSkP6z5z/NB3rmvCfThFz1mMEhscw3YruvL2ohXxB0cqoI0eiH2LFMG2tw3g4aDavOLx4H2o+VjcT3rFHoePmTTXv/H+R8roE0IMOKpVQ8Mc65EEBHaZtbLAD2vEZpdv8CjBSx9hCVVC3ISF25otQKBgQC1JMfvT5ofKGUqKoqgz3+0sqd8nfkx5Q3BmeS02nhEXgLW65KThfJnez9MB+0V3f4lxJnRTwYGwh7RFL3bViAkFcO1ETwM9rW73n9tkmuAjY0OPQGiPfxnMUgmGUyR7cov8j7t/cCRUREx/GUXxAOngheDxXsZ8pSX8bPhs2ed4wKBgBwAmU+YLYKXlx33c3ny/goYGcENJlx5epfx/JTdHZNCwrxLda97gg3n9zfg2er0gLVn5HWwTpXUAoJ3jAuelTY3cNUwWjPahVyePpT1dc5AB2lEbeMTkfY7R3KGdtbVXoK0xybqiMpj7Qy57KAuOwkbmUkd77DX6BEMuy6i/spBAoGBAKAI+sqmnRdh7N6v7wHb0IuoOuiR+JLoNpsQh0pwqUhddkzCmyDSejKKZIWbiw6CrgJYCz0sf7qAzhESLhoVoRfAUsMpktAxNqXgENyRO4C7jh9CLqtT8CaLF57xQwC6AKMTdh10ziiUYoiy3+17M29OM9ArLHLkKfuDgtSoV6bZAoGATIOCxQrqrZFVe4zLCnzcAFHFQvqxeNKdeLo7fMfQhU5MnDn9TVmzHhVtNg0SfdNA4WwbVX2Per019M/UcKSjJc5uYJ8G5BZaBZ7ZNJ1JAG1TtOi0m4zAFJJG3SznJVgKOFCDeMc7shMpE2FnTXBJx39LCweTnz8PsF4T4A2/GLY=";// private final String CHARSET = "UTF-8";// private final String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhdqk8i1YrbG/6bxhrSRI7IcoezOAb+fMzc4XypuM3mFV8VWs4VgurDj2latDcmcWs2vvs3abgfLrWKjiHJPnnLZ6+/gzKkcJnQqikWRUQIQH/miAPoroDE4G31U3SGyfG53c+84b3H9zCzvGDbHBOda4dxjHUqi0oOGrTA8ETtJGfJ0j73cBhlmCjJLjzMZLV25pXUTI6drGuPls6I/FnlFhnPNOP8qav9S4syadYtYpJe2SzEr6eRla0Gfz9VXXKCFWCZTm1Y6WHI2685nc/2uPpSf42izFw0DPjf0/Lhtx7SmnQaFbd55pnsL07d77/pdLzTFUQWM7CGDiT/TjHwIDAQAB";// //这是沙箱接口路径,正式路径为/gateway.do// private final String GATEWAY_URL ="/gateway.do";// private final String FORMAT = "JSON";// //签名方式// private final String SIGN_TYPE = "RSA2";// //支付宝异步通知路径,付款完毕后会异步调用本项目的方法,必须为公网地址// private final String NOTIFY_URL = "http://localhost:8080/OnlineBookShop/common/alipay/returnUrl";// //支付宝同步通知路径,也就是当付款完毕后跳转本项目的页面,可以不是公网地址// private final String RETURN_URL = "http://localhost:8080/OnlineBookShop/common/alipay/returnUrl";// //==========================这些信息未经作者允许,不允许分享使用!!!=================================//// private final Logger logger = LoggerFactory.getLogger(AliPayController_backup.class);//// @Autowired// private PayDao payDao;//// @Autowired// private ICartService cartService;//// @Autowired// private OrderDao orderDao;//

/*** 删除库存信息操作处理* @param ids* @return*/@PostMapping("/admin/stock/delete")@ResponseBodypublic ResponseVo<Boolean> delete(String ids){return stockService.deleteStock(ids);}}/***//*** 前台购物车Cart控制类*/@Controllerpublic class HomeCartController {@Autowiredprivate ICartService cartService;/*** 前往购物车页面* @return*/@GetMapping("/home/cart/index")public String index(){return "/home/cart/index";}/*** 前往购物车页面前数据加载* @return*/@PostMapping("/home/cart/index")@ResponseBodypublic ResponseVo<List<Cart>> getCartData(){

}payItemList.forEach(e->{orderIdSet.add(e.getOrderId());});List<Order> orderList = orderDao.selectBatchIds(orderIdSet);if(orderList == null || orderList.size() == 0){throw new RuntimeException("支付成功,但订单状态异常,下单失败,请及时联系管理员解决!");}for(Order order : orderList){order.setState(OrderStateEnum.PAYED.getCode());if(orderDao.updateById(order) <= 0){throw new RuntimeException("支付成功,但订单状态异常,下单失败,请及时联系管理员解决!");}}return orderList;}@Overridepublic ResponseVo<Map<String, Object>> getUserOrderData(Page page) {Map<String, Object> ret = new HashMap<>();User user = (User) SecurityUtils.getSubject().getPrincipal();if(user == null){return ResponseVo.errorByMsg(CodeMsg.USER_SESSION_EXPIRED);}Map<String, Object> queryMap = new HashMap<>();if(page != null){page.setRows(1); //每页1条数据queryMap.put("offset", page.getOffset());queryMap.put("pageSize", page.getRows());}queryMap.put("customerId", user.getId());queryMap.put("isDeleted", OrderDeleteEnum.NO.getCode());List<Order> orderList = orderDao.selectAll(queryMap);ret.put("orderList", orderList);ret.put("page", page.getPage());ret.put("totalCount", orderDao.getAllTotal(queryMap));page.setTotalCount(orderDao.getAllTotal(queryMap));ret.put("totalPage", page.getTotalPage());ret.put("sendTotal", orderDao.getCountByOrderState(user.getId(), OrderStateEnum.SEND.getCode()));ret.put("signTotal", orderDao.getCountByOrderState(user.getId(), OrderStateEnum.SIGN.getCode()));return ResponseVo.success(ret);}@Overridepublic ResponseVo<Boolean> delOrderByUser(String orderId) {User user = (User) SecurityUtils.getSubject().getPrincipal();if(user == null){

public class CaptchaController {private Logger log = LoggerFactory.getLogger(CaptchaController.class);/*** 通用验证码生成器* @param vcodeLength* @param fontSize* @param width* @param height* @param method* @param request* @param response*/@GetMapping(value="/common/captcha/generate_captcha")public void generateCaptcha(@RequestParam(name="vl",defaultValue="4")Integer vcodeLength,//vcodeLength,验证码长度@RequestParam(name="fs",defaultValue="21")Integer fontSize,//fontSize,验证码字体大小@RequestParam(name="w",defaultValue="98")Integer width,//width,图片宽度@RequestParam(name="h",defaultValue="33")Integer height,//height,图片高度@RequestParam(name="method")String method,//用来调用此方法的名称,以此名称为键,存入到session中HttpServletRequest request,HttpServletResponse response){CaptchaUtil captchaUtil = new CaptchaUtil(vcodeLength,fontSize,width,height);String generatorVCode = captchaUtil.generatorVCode(); //验证码的值//将生成的验证码放入session,以供放后面程序的验证使用request.getSession().setAttribute(method, generatorVCode);log.info("验证码成功生成,method=" + method + ",value=" + generatorVCode);try {ImageIO.write(captchaUtil.generatorRotateVCodeImage(generatorVCode, true), "gif", response.getOutputStream());} catch (IOException e) {e.printStackTrace();}}}

/*** 沙箱支付宝支付AliPay控制类*/@Controllerpublic class AliPayController {//==========================这些信息未经作者允许,不允许分享使用!!!=================================private final String APP_ID = "110300790563";private final String APP_PRIVATE_KEY = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCCsWvZktzLxZhB8yFUp0f98s3uPegxu0p95sYwwSurm9FrCqn8jEJaR92git/i19QsODjE4KFY85O+AVrcZEDJoqubf8Pc5tCGcaCI1Ho+OD2LHW31cmDj29tlLHi2SlsL9EynSD/LL2DsG1Ufj12/TkuWPVAzjwsf/NJwiKV9mTIX/I88RvCJV2tqX8vT8V5LuHvI27vmGeKTgioExymrv6GQlhM1aHv3w2GMShp/n5wY1S0bhgMLL5zzO3FJSOKrOBPTYh0sCLAhvcD7vDXDH3ruBVq+jbtqXkQMdHww1nmaTz/t06uqNEoofGYCKfZWSQgXnPwEQBpqdSEs8Nl/AgMBAAECggEAbYbY9pbwuUkYR7TFKxeh6r3wPQfersbiL88WK0fIHGJSR93BBahZ9yUhJGkeJhJwerqHQN9r+IrxNxwVlHvkG9da789MSrWY7gMN4X4IEFq7oPmB7F/1uR/Ipup1I3f/A26ySsLuy44iMNzbIr7YdvnbuMYbj4oCbcVIawzpe+6ThkSERg+kaqZbg9DsAjLEkUFLRLE37R2F5BgdM4Gc5Dsw6e7ZuRc1fyBwI4bbdC11oxpLTOkFQFL9aAR1iyKvaPhbV7fswYbMBmJXDTplfDLXufcZPbm7MgfbV1sIhipjf6HpNOB3Qc0WI3iWwBNrb5EGD6PbqAtZyLDBPOVz+QKBgQC4s3Xnt18XoQXqHU5cgg+XCZSkP6z5z/NB3rmvCfThFz1mMEhscw3YruvL2ohXxB0cqoI0eiH2LFMG2tw3g4aDavOLx4H2o+VjcT3rFHoePmTTXv/H+R8roE0IMOKpVQ8Mc65EEBHaZtbLAD2vEZpdv8CjBSx9hCVVC3ISF25otQKBgQC1JMfvT5ofKGUqKoqgz3+0sqd8nfkx5Q3BmeS02nhEXgLW65KThfJnez9MB+0V3f4lxJnRTwYGwh7RFL3bViAkFcO1ETwM9rW73n9tkmuAjY0OPQGiPfxnMUgmGUyR7cov8j7t/cCRUREx/GUXxAOngheDxXsZ8pSX8bPhs2ed4wKBgBwAmU+YLYKXlx33c3ny/goYGcENJlx5epfx/JTdHZNCwrxLda97gg3n9zfg2er0gLVn5HWwTpXUAoJ3jAuelTY3cNUwWjPahVyePpT1dc5AB2lEbeMTkfY7R3KGdtbVXoK0xybqiMpj7Qy57KAuOwkbmUkd77DX6BEMuy6i/spBAoGBAKAI+sqmnRdh7N6v7wHb0IuoOuiR+JLoNpsQh0pwqUhddkzCmyDSejKKZIWbiw6CrgJYCz0sf7qAzhESLhoVoRfAUsMpktAxNqXgENyRO4C7jh9CLqtT8CaLF57xQwC6AKMTdh10ziiUYoiy3+17M29OM9ArLHLkKfuDgtSoV6bZAoGATIOCxQrqrZFVe4zLCnzcAFHFQvqxeNKdeLo7fMfQhU5MnDn9TVmzHhVtNg0SfdNA4WwbVX2Per019M/UcKSjJc5uYJ8G5BZaBZ7ZNJ1JAG1TtOi0m4zAFJJG3SznJVgKOFCDeMc7shMpE2FnTXBJx39LCweTnz8PsF4T4A2/GLY=";private final String CHARSET = "UTF-8";private final String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhdqk8i1YrbG/6bxhrSRI7IcoezOAb+fMzc4XypuM3mFV8VWs4VgurDj2latDcmcWs2vvs3abgfLrWKjiHJPnnLZ6+/gzKkcJnQqikWRUQIQH/miAPoroDE4G31U3SGyfG53c+84b3H9zCzvGDbHBOda4dxjHUqi0oOGrTA8ETtJGfJ0j73cBhlmCjJLjzMZLV25pXUTI6drGuPls6I/FnlFhnPNOP8qav9S4syadYtYpJe2SzEr6eRla0Gfz9VXXKCFWCZTm1Y6WHI2685nc/2uPpSf42izFw0DPjf0/Lhtx7SmnQaFbd55pnsL07d77/pdLzTFUQWM7CGDiT/TjHwIDAQAB";//这是沙箱接口路径,正式路径为/gateway.doprivate final String GATEWAY_URL = "/gateway.do";private final String FORMAT = "JSON";//签名方式private final String SIGN_TYPE = "RSA2";//支付宝异步通知路径,付款完毕后会异步调用本项目的方法,必须为公网地址private final String NOTIFY_URL = "http://localhost:8080/OnlineBookShop/common/alipay/returnUrl";//支付宝同步通知路径,也就是当付款完毕后跳转本项目的页面,可以不是公网地址private final String RETURN_URL = "http://localhost:8080/OnlineBookShop/common/alipay/returnUrl";//==========================这些信息未经作者允许,不允许分享使用!!!=================================private final Logger logger = LoggerFactory.getLogger(AliPayController.class);@Autowiredprivate PayDao payDao;@Autowiredprivate ICartService cartService;@Autowiredprivate OrderDao orderDao;@Autowiredprivate IOrderService orderService;@Autowiredprivate IPayService payService;@Autowiredprivate IPayItemService payItemService;@Autowiredprivate IBookService bookService;//@Autowired// private AmqpTemplate amqpTemplate;/*** 支付页面

//// /**//* 继续支付页面//* @param orderId//* @param req//* @param httpResponse//* @throws IOException//*/// @GetMapping("/common/alipay/continue")// public void continuePay(String orderId, HttpServletRequest req, HttpServletResponse httpResponse) throws IOException {// User user = (User) SecurityUtils.getSubject().getPrincipal();// if(user == null){// throw new RuntimeException("还未登录或会话失效,请重新登录!");// }// if(CommonUtil.isEmpty(orderId)){// throw new RuntimeException("数据非法,支付失败,请重新操作!");// }// QueryWrapper<Order> orderQueryWrapper = new QueryWrapper<>();// orderQueryWrapper.eq("customer_id", user.getId());// orderQueryWrapper.eq("id", orderId);// Order selectedOrder = orderDao.selectOne(orderQueryWrapper);// if(selectedOrder == null){// throw new RuntimeException("数据非法,支付失败,请重新操作!");// }// //创建新支付信息// long payId = payService.addPay(new Pay(//null,//String.valueOf(new SnowFlake(2,3).nextId()),//selectedOrder.getTotalPrice(),//new Date(),//user.getId(),//PayStateEnum.NO_PAY.getCode()// ));// if(payId == 0L){// throw new RuntimeException("创建支付数据失败,请联系管理员!");// }// Set<Long> orderIdSet = new HashSet<>();// orderIdSet.add(selectedOrder.getId());// // 创建支付详情数据存入数据库// int row = payItemService.addPayItem(payId, orderIdSet);// if(row <= 0){// throw new RuntimeException("创建支付详情数据失败,请联系管理员!");// }// Pay selectedPay = payDao.selectById(payId);// Random r = new Random();// //实例化客户端,填入所需参数// AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);// AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();

/***//*** 订单Order业务实现类*/@Service@Transactionalpublic class OrderServiceImpl implements IOrderService {@Autowiredprivate OrderDao orderDao;@Autowiredprivate OrderItemDao orderItemDao;@Autowiredprivate CartDao cartDao;@Autowiredprivate IBookService bookService;@Autowiredprivate StockDao stockDao;@Autowiredprivate IStockService stockService;@Autowired

codeMsg.setMsg("请输入正确格式的手机号!");return codeMsg;}}return CodeMsg.SUCCESS;}/*** 对象转化为字节码* @param obj* @return* @throws Exception*/public static byte[] getBytesFromObject(Serializable obj) throws Exception {if (obj == null) {return null;}ByteArrayOutputStream bo = new ByteArrayOutputStream();ObjectOutputStream oo = new ObjectOutputStream(bo);oo.writeObject(obj);return bo.toByteArray();}/*** 字节码转化为对象* @param objBytes* @return* @throws Exception*/public static Object getObjectFromBytes(byte[] objBytes) throws Exception {if (objBytes == null || objBytes.length == 0) {return null;}ByteArrayInputStream bi = new ByteArrayInputStream(objBytes);ObjectInputStream oi = new ObjectInputStream(bi);return oi.readObject();}/*** 判断后缀是否是图片文件的后缀* @param suffix

*/public static long getTimeStamp(Date date) {long times = date.getTime();return times;}}/***//*** 图片Photo控制类*/@Controllerpublic class PhotoController {private Logger log = LoggerFactory.getLogger(PhotoController.class);@Autowiredprivate ResourceLoader resourceLoader;

*/@GetMapping("/home/book/more")public String more(){return "home/book/more";}/*** 前台图书详情展示页面* @param model* @param id* @return*/@GetMapping("/home/book/info")public String info(Model model, String id){return bookService.toBookInfo(model, id);}/*** 前往搜索查询结果页面* @return*/@GetMapping("/home/book/search")public String search(){return "home/book/search";}/*** 前台搜索图书操作处理* @param searchContent* @return*/@PostMapping("/home/book/search")@ResponseBodypublic ResponseVo<List<Book>> getSearchBook(String searchContent){return bookService.getSearchBook(searchContent);}/*** 前台前往更多图书页面前数据加载* @return*/

Map<String, Object> ret = new HashMap<>();Map<String, Object> queryMap = new HashMap<>();User user = (User) SecurityUtils.getSubject().getPrincipal();if(user == null){return ret;}queryMap.put("offset", 0);queryMap.put("pageSize", 5);if(RoleEnum.SELLER.getCode().equals(user.getRoleId())){queryMap.put("sellerId", user.getId());}ret.put("orderData", orderDao.selectAll(queryMap));queryMap.remove("offset");queryMap.remove("pageSize");List<Order> selectedOrderList = orderDao.selectAll(queryMap);BigDecimal totalPrice = new BigDecimal("0.00");for(Order order : selectedOrderList){totalPrice = totalPrice.add(order.getTotalPrice());}ret.put("totalPrice", totalPrice);return ret;}}//package com.yjq.mon;//

public ResponseVo<Boolean> deleteCart(Cart cart) {if(cart == null || cart.getId() == null){return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);}if(cartDao.deleteById(cart.getId())< 0){return ResponseVo.errorByMsg(CodeMsg.CART_DELETE_ERROR);}return ResponseVo.successByMsg(true, "删除成功!");}@Overridepublic ResponseVo<Boolean> updateQuantity(Cart cart, String type) {if(cart == null || cart.getId() == null || CommonUtil.isEmpty(type)){return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);}//通过id查询到该购物车Cart selectedCart = cartDao.selectById(cart.getId());if(selectedCart == null){return ResponseVo.errorByMsg(CodeMsg.CART_QUANTITY_EDIT_ERROR);}if("add".equals(type)){//数量+1selectedCart.setQuantity(selectedCart.getQuantity()+1);//判断是否超过库存Map<String, Object> queryMap = new HashMap<>();queryMap.put("id", selectedCart.getBookId());List<Book> bookList = bookDao.getBookList(queryMap);//判断图书是否存在if(bookList == null || bookList.size() != 1){return ResponseVo.errorByMsg(CodeMsg.BOOK_NOT_EXIST);}//判断库存是否存在if(bookList.get(0).getStock() == null){return ResponseVo.errorByMsg(CodeMsg.STOCK_NOT_EXIST);}if(selectedCart.getQuantity() > bookList.get(0).getStock().getCount()){return ResponseVo.errorByMsg(CodeMsg.STOCK_NOT_ENOUGH);}}else if("sub".equals(type)){//数量-1if(selectedCart.getQuantity().intValue() == 1){return ResponseVo.errorByMsg(CodeMsg.BUY_NUM_LT_MIN);}selectedCart.setQuantity(selectedCart.getQuantity()-1);}else{return ResponseVo.errorByMsg(CodeMsg.DATA_ERROR);}//修改数据库中的购物车信息if(cartDao.updateById(selectedCart) < 0){return ResponseVo.errorByMsg(CodeMsg.CART_EDIT_ERROR);}return ResponseVo.success(true);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。