栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习 day60

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习 day60

Day4 订单管理

订单新增的入口在前台用户系统。可以先新建表,自己先预先插入几条数据。

修改订单的规格和数量,基本是不符合业务场景需求的。

修改订单只实现修改订单状态即可。

订单删除逻辑:可以选择物理删除(从表中实实在在删除该条记录)、或者逻辑删除(设置一个状态位,让用户觉得删除了该订单,其实只是对其不可见罢了)。

订单其实可以暴露一个人很多信息。用户行为画像、人物画像。 推荐算法。

订单表如何创建?

本商城在设计接口的时候,其实是没有购物车表,意味着加入购物车里面的商品其实是相当于在订单表中下了一个未付款的订单。

一个订单中永远只有一个商品。

意味着本系统在设计订单表的时候不需要去设计订单详情页,所以,需求还简单了一些。

收货地址信息以及订单中的商品信息应该在订单表中存入完整的信息。

你在购物某商品时,使用的是某个地址,后面你把改地址给改了,那么会出现在配送过程中,突然地址发生变化的场景吗?

你在10年前买了一台iphone4,你去查看该订单,是否还在?订单里面的商品信息是否还在?通过订单进入该商品,发现商品不在了

订单其实是某个时刻行为的一个记录。618大促 买了手机,比平时贵了100块钱,活动结束之后 ,看订单,金额是多少呢?

id

nickname

receiver

address

phone

product

productId

spec

specId

number

amount

stateId

createtime

updatetime

hasComment


JavaBean:

对象。成员变量private、提供public的get和set方法。无参构造函数。

框架在封装数据到对象中,都会去调用无参构造函数来实例化一个对象,紧接着调用set方法来完成赋值

package com.cskaoyan.mall.controller;

import com.alibaba.druid.util.StringUtils;
import com.cskaoyan.mall.model.Result;
import com.cskaoyan.mall.model.bo.OrdersByPageBO;
import com.cskaoyan.mall.model.vo.OrdersByPageVO;
import com.cskaoyan.mall.service.OrderService;
import com.cskaoyan.mall.service.OrderServiceImpl;
import com.cskaoyan.mall.utils.HttpUtils;
import com.google.gson.Gson;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/api/admin/order
    private static boolean isValid(String input) {
        if(StringUtils.isEmpty(input)){
           return false;
        }
        if(input.length() != 6){
            return false;
        }
        try {
            Integer.parseInt(input);
            return true;
        }catch (Exception e){

        }
        return false;
    }
}
package com.cskaoyan.mall;

import com.alibaba.druid.util.StringUtils;

import java.util.Scanner;

public class RegTest {

    public static void main(String[] args) {
        //判断用户输入的是否是6位数字
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        //boolean result = isValid(input);
        boolean result = isValidByReg(input);
        System.out.println(result);
    }

    private static boolean isValidByReg(String input) {
        //return input.matches("\d{6}");
        //正则表达式最简单的用法就是用来判断和给定字符一模一样的字符串
        //return input.matches("123456");
        //次数限定符只作用于最邻近的一个字符  z  zo zoo  zooooo....
//        return input.matches("zo*");
        //如果想匹配zozo,应该怎么做?
//        return input.matches("(zo)*");
//        return input.matches("go{2,}gle");
        //匹配z或者food,如果想匹配zood或者food,需要将(z|f)
//        return input.matches("z|food");
//        return input.matches("(z|f)ood");
        //1.只能匹配一位  2.这一位必须是abcd中的一个
//        return input.matches("[abcd]");
        //匹配26个字母呢
//        return input.matches("[a-z]");
        //1. 只能匹配一位  2.这一位不能是abcd中的任意一个
//        return input.matches("[^abcd]");
        // ^如果在[]里面,表示的是取反,如果不在[]里面,表示的是匹配开始的位置
//        return input.matches("^hello$");
//        return input.matches("\d{6}");
        //想匹配一个网址  www.baidu.com
        //在正则中.表示的是匹配任意一位字符,如果想匹配.,那么需要对其进行转义     \(java)
        return input.matches("www\.baidu\.com");
    }

    
    private static boolean isValid(String input) {
        if(StringUtils.isEmpty(input)){
           return false;
        }
        if(input.length() != 6){
            return false;
        }
        try {
            Integer.parseInt(input);
            return true;
        }catch (Exception e){

        }
        return false;
    }
}

前台的filter也是需要拦截一些东西的。

个人主页的信息。如果用户没有登录,那么直接访问用户的个人主页应当是不予展示的,加入购物车、下单等接口。

前台针对的是用户的操作(如果用户没有登录,那么和用户信息相关的内容应当是不能显示的)

后台针对的是admin的操作(因为后台管理系统所有的接口都必须要求admin管理员登录了之后才可以操作)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号