微信点餐系统(十一)-买家端新增商品和类目

章节感悟

1.学会freemarke语法知识,动态加载下拉列表框

2.Springboot表单验证操作

买家端新增商品和类目

1.卖家商品-新增修改页面

1.新增页面后台跳转,查询所有的类目然后放到前台“/sell/seller/product/index”

@GetMapping("/index")
public ModelAndView index(@RequestParam(value = "productId", required = false) String productId,
                          Map<String, Object> map) {
    //如果productId不为空,则查找出来保存
    if (!StringUtils.isEmpty(productId)) {
        ProductInfo productInfo = productService.findOne(productId);
        map.put("productInfo", productInfo);
    }
    //查询所有类目
    List<ProductCategory> categoryList = CategoryService.findAll();
    map.put("categoryList", categoryList);
    return new ModelAndView("product/index", map);
}

2.前端index.ftl,在ibootstrap中寻找表单元素,构建表单页面

<html>
<#include "../common/header.ftl">

<body>
<div id="wrapper" class="toggled">
    <#--边栏sidebar-->
    <#include "../common/nav.ftl">
    <#--主要内容content-->
    <div id="page-content-wrapper">
        <div class="container-fluid">
            <div class="row clearfix">
                <div class="col-md-12 column">
                    <form role="form" method="post" action="/sell/seller/product/save">
                        <input name="productId" value="${(productInfo.productId)!‘‘}" type="text" hidden>
                        <div class="form-group">
                            <label>名称</label>
                            <input name="productName" type="text" class="form-control"
                                   value="${(productInfo.productName)!‘‘}"/>
                        </div>
                        <div class="form-group">
                            <label>价格</label>
                            <input name="productPrice" type="text" class="form-control"
                                   value="${(productInfo.productPrice)!‘‘}"/>
                        </div>
                        <div class="form-group">
                            <label>库存</label>
                            <input name="productStock" type="text" class="form-control"
                                   value="${(productInfo.productStock)!‘‘}"/>
                        </div>
                        <div class="form-group">
                            <label>描述</label>
                            <input name="productDescription" type="text" class="form-control"
                                   value="${(productInfo.productDescription)!‘‘}"/>
                        </div>
                        <div class="form-group">
                            <label>图片</label>
                            <img src="${(productInfo.productIcon)!‘‘}" width="100px" height="100px">
                            <input name="productIcon" type="text" class="form-control"
                                   value="${(productInfo.productIcon)!‘‘}"/>
                        </div>
                        <div class="form-group">
                            <label>类目</label>
                            <select name="categoryType" class="form-control">
                                <#list categoryList as categoty>
                                    <option value="${categoty.categoryType}"
                                            <#if (productInfo.categoryType)?? && productInfo.categoryType == categoty.categoryType>
                                                selected
                                            </#if>
                                    >
                                        ${categoty.categoryName}
                                    </option>
                                </#list>
                            </select>
                        </div>

                        <button type="submit" class="btn btn-default">Submit</button>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>

2.卖家商品-修改表单提交

1.“/sell/seller/product/save”接口

@PostMapping("/save")
public ModelAndView save(@Valid ProductForm productForm,
                         BindingResult bindingResult,
                         Map<String, Object> map) {
    //1.表单验证
    if (bindingResult.hasErrors()) {
        map.put("msg", bindingResult.getFieldError().getDefaultMessage());
        map.put("url", "sell/seller/product/index");
        return new ModelAndView("common/error", map);
    }
    ProductInfo productInfo = new ProductInfo();
    if (!StringUtils.isEmpty(productForm.getProductId())) {
        productInfo = productService.findOne(productForm.getProductId());
    } else {
        productForm.setProductId(KeyUtil.genUniqueKey());
    }
    BeanUtils.copyProperties(productForm, productInfo);
    //2.保存
    try {
        productService.save(productInfo);
    } catch (SellException e) {
        map.put("msg", e.getMessage());
        map.put("url", "/sell/seller/product/index");
        return new ModelAndView("common/error", map);
    }
    //3.跳转保存成功页面
    map.put("msg", ResultEnum.PRODUCT_SAVE_SUCCESS.getMessage());
    map.put("url", "/sell/seller/product/list");
    return new ModelAndView("common/success", map);
}

2.创建一个ProductForm类放在form下,注意from下只放提交的几个属性,不用放商品状态

package com.xiong.sell.form;

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;

/**
 * @author Xiong YuSong
 * 2019/1/27 12:46
 */
@Data
public class ProductForm {
    private String productId;

    /** 名字. */
    @NotEmpty(message = "名字必填")
    private String productName;

    /** 单价. */
    @NotEmpty(message = "单价必填")
    private BigDecimal productPrice;

    /** 库存. */
    @NotEmpty(message = "库存必填")
    private Integer productStock;

    /** 描述. */
    @NotEmpty(message = "描述必填")
    private String productDescription;

    /** 小图. */
    @NotEmpty(message = "图片必填")
    private String productIcon;

    /** 类目编号. */
    @NotEmpty(message = "类目编号必填")
    private Integer categoryType;
}

3.卖家商品-新增功能

同上,添加一点id为空的逻辑

4.卖家类目功能开发

1.类目列表list.ftl

2.接口“/sell/seller/category/list”

3.新增、修改类目index.ftl

4.接口“/sell/seller/category/index”

5.接口“/sell/seller/category/save”

6.创建一个categoryForm

原文地址:https://www.cnblogs.com/xzmxddx/p/10326313.html

时间: 2024-10-22 10:28:58

微信点餐系统(十一)-买家端新增商品和类目的相关文章

java Spring Boot企业微信点餐系统

 java Spring Boot企业微信点餐系统 后端开发: 1.2017龙果微服务架构的分布式事务解决方案 2.2017年龙果spring boot 入门实战视频教程-首套中文教程 3.51CTO Spring Boot实战与原理分析视频课程 4.ElasticSearch5视频教程 5.Elasticsearch顶尖高手系列:高手进阶篇(最新第二版) 6.IDEA学习视频 7.Java 微服务实践 - Spring Boot 系列 8.JAVA-ACE-架构师系列视频课程-RocketMQ

微铺子微信送餐系统 针对大学生兼职创业的实施方案

大学生活丰富多彩,但大多数人还是觉得虚度光阴,如何充分利用这些业余时间,发展自己的兼职业务呢?这里,微铺子给大家简单介绍一下大学生如何在校期间,利用微信送餐系统,自主创业! 微信就不多介绍了,几乎人手都有,那么,我们就好好的利用微信,来一次校园微营销! 准备工具: 1.微信公众帐号 2.微铺子系统 首先到微铺子官网注册帐号 ,然后申请试用,这里我们免费提供7天的试用哦. 接着,在配置里面,绑定微信公众帐号即可. 系统我们是有了,那如何营销呢? 这里,我们拿"校园卖水果"来说,我们开一个

基于Springboot+SpringCloud的微信点餐系统开发视频教程

基于Springboot+SpringCloud的微信点餐系统开发视频教程课程分享链接:https://pan.baidu.com/s/1q7h9zn8sGf_e0k38pc69tw 密码:fk9w 随着互联网不断发展,大家的生活习惯也不断在改变,像美团,饿了么平台的外卖快速的发展起来,这就是我们所说的O2O,即线上和线下结合同时微信也给人们带来了沟通的便利,现在几乎每个年轻人都会有微信号,所以我们开发微信点餐系统,也是极大方便了大家的使用,只要在打开微信进入我们的点餐系统就可以方便的进行点餐.

微信点餐系统(一)-系统简介

系统简介: 微信点餐系统是一个前后端分离的系统前端是使用Vue.js构建的WebApp,后端使用Springboot打造,后端的前台页面使用Bootstrap+Freemarker+Jquery这一套组合进行构建,前后端使用RESTful风格的接口相连.数据库方面以SpringBoot+JPA为主,同时涉及到少部分SpringBoot+MyBatis相关应用:缓存方面会使用SpringBoot+Redis的缓存机制(分布式Session.分布式锁):消息推送方面使用WebSocket,进行推送.

你不知道的SpringBoot微信点餐系统开源码,网友回复:实用

源码地址: https://github.com/923310233/wxOrder 架构 前后端分离: 部署架构: Nginx与Tomcat的关系在我的这篇文章,几分钟可以快速了解:https://www.jianshu.com/p/22dcb7ef9172补充: setting.xml 文件的作用:settings.xml是maven的全局配置文件.而pom.xml文件是所在项目的局部配置.Settings.xml中包含类似本地仓储位置.修改远程仓储服务器.认证信息等配置.maven的作用:

spring boot实战——微信点餐系统01:项目设计

技术要点: 前端: Vue 后端:Spring Boot + BootStrap + FreeMarker + JQuery 详细技术: Spring Boot : 数据库方面:Spring Boot + JPA 缓存方面:Spring Boot + Redis(会讨论 分布式Session + 分布式锁) 消息推送方面:WebSocker 微信方面: 微信扫码登录 模板消息推送 微信支付与退款 项目设计: 角色划分 功能模块划分:商品:订单:类目 部署架构 数据库设计 数据库设计: 遇到问题

微信点餐系统(九)-卖家端订单

章节感悟 1.使用ibootstrap进行前端界面样式简单选择 2.如果设置对某种功能的工具类,里面涉及到某个类,这个类一定要高度抽象 3.freemarke的简单使用(循环,判断) 卖家端订单 1.在OrderService中添加显示全部订单功能,具体实现省略,进行单元测试 2.订单部分SellerOrderController开发 3.我们使用的是freemarke模板渲染,导入jar包 4.创建list页面进行渲染 5.使用ibootstrap网页工具进行模板样式选择http://www.

微信点餐系统(十)-卖家端通用功能和上下架

章节感悟 1.使用freemarke的包含语句 2.复制的代码需要仔细检查才能使用 卖家端通用功能和上下架 1.实现边栏(通用界面公用) 1)将给好的边栏放入项目中,并且响应css一起放入项目 2)在之前的订单list页面引入边栏,使用freemarke的语法 3)提取出所有ftl文件的公共头部分 4)修改bootstrap版本为3.3.5,于是被分为三个部分的页面,这里其实可以把分页提取出来,但是视频没有说,我这里就不写了 5)对详情页进行同样的操作 2.实现商品列表 1)新建SellerPr

SpringBoot实战——微信点餐系统

1.初始化项目 引入模块 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot&l