新增接口
This commit is contained in:
parent
c941c0d22a
commit
eea5a0e1a6
Binary file not shown.
@ -6,7 +6,6 @@
|
||||
-- --------------------------------------------------------
|
||||
|
||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||
/*!40101 SET NAMES utf8 */;
|
||||
/*!50503 SET NAMES utf8mb4 */;
|
||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||
@ -81,6 +80,7 @@ CREATE TABLE IF NOT EXISTS `food_category` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '食品分类编号',
|
||||
`title` varchar(200) DEFAULT NULL COMMENT '分类标题',
|
||||
`sort` int(3) DEFAULT '0' COMMENT '排序',
|
||||
`cover` varchar(200) DEFAULT NULL COMMENT '分类图片',
|
||||
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`state` tinyint(2) DEFAULT '1' COMMENT '状态',
|
||||
|
@ -1,14 +1,32 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="分类名称" prop="title">
|
||||
<el-form-item label="分类标题" prop="title">
|
||||
<el-input
|
||||
v-model="queryParams.title"
|
||||
placeholder="请输入分类名称"
|
||||
placeholder="请输入分类标题"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input
|
||||
v-model="queryParams.sort"
|
||||
placeholder="请输入排序"
|
||||
clearable
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="queryParams.state" placeholder="请选择状态" clearable>
|
||||
<el-option
|
||||
v-for="dict in dict.type.data_state"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="dict.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
@ -63,14 +81,21 @@
|
||||
|
||||
<el-table v-loading="loading" :data="categoryList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="编号" align="center" prop="id" />
|
||||
<el-table-column label="分类名称" align="center" prop="title" />
|
||||
<el-table-column label="食品分类编号" align="center" prop="id" />
|
||||
<el-table-column label="分类标题" align="center" prop="title" />
|
||||
<el-table-column label="排序" align="center" prop="sort" />
|
||||
<el-table-column label="分类图片" align="center" prop="cover" width="100">
|
||||
<template slot-scope="scope">
|
||||
<image-preview :src="scope.row.cover" :width="50" :height="50"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新时间" align="center" prop="updateTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="state">
|
||||
<template slot-scope="scope">
|
||||
<!-- <el-tag>
|
||||
{{ scope.row.state == 0 ?'删除':'正常' }}
|
||||
</el-tag> -->
|
||||
<dict-tag :options="dict.type.data_state" :value="scope.row.state"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -94,7 +119,7 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
@ -106,12 +131,25 @@
|
||||
<!-- 添加或修改食品分类对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="分类名称" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入分类名称" />
|
||||
<el-form-item label="分类标题" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入分类标题" />
|
||||
</el-form-item>
|
||||
<el-form-item label="排序" prop="sort">
|
||||
<el-input v-model="form.sort" placeholder="请输入排序" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分类图片" prop="cover">
|
||||
<image-upload :limit="1" v-model="form.cover"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="state">
|
||||
<el-select v-model="form.state" placeholder="请选择状态">
|
||||
<el-option
|
||||
v-for="dict in dict.type.data_state"
|
||||
:key="dict.value"
|
||||
:label="dict.label"
|
||||
:value="parseInt(dict.value)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
@ -129,6 +167,7 @@ import { listCategory, getCategory, delCategory, addCategory, updateCategory } f
|
||||
|
||||
export default {
|
||||
name: "Category",
|
||||
dicts: ['data_state'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
@ -154,6 +193,8 @@ export default {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
title: null,
|
||||
sort: null,
|
||||
state: null,
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
@ -162,7 +203,6 @@ export default {
|
||||
}
|
||||
};
|
||||
},
|
||||
dicts:['data_state'],
|
||||
created() {
|
||||
this.getList();
|
||||
},
|
||||
@ -187,6 +227,7 @@ export default {
|
||||
id: null,
|
||||
title: null,
|
||||
sort: null,
|
||||
cover: null,
|
||||
createTime: null,
|
||||
updateTime: null,
|
||||
state: null,
|
||||
|
@ -16,8 +16,8 @@
|
||||
<el-form-item label="价格" prop="price">
|
||||
<el-input v-model="queryParams.price" placeholder="请输入价格" clearable @keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="售卖区域(匹配收货地址,null表示不限制)" prop="area">
|
||||
<el-input v-model="queryParams.area" placeholder="请输入售卖区域(匹配收货地址,null表示不限制)" clearable
|
||||
<el-form-item label="售卖区域" prop="area">
|
||||
<el-input v-model="queryParams.area" placeholder="请选择售卖区域" clearable
|
||||
@keyup.enter.native="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
@ -72,7 +72,8 @@
|
||||
<el-table-column label="优惠" align="center" prop="coupon" />
|
||||
<el-table-column label="价格" align="center" prop="price" />
|
||||
<el-table-column label="排序" align="center" prop="sort" />
|
||||
<el-table-column label="售卖区域(匹配收货地址,null表示不限制)" align="center" prop="area" />
|
||||
<!-- (匹配收货地址,null表示不限制)-->
|
||||
<el-table-column label="售卖区域" align="center" prop="area" />
|
||||
<el-table-column label="是否推荐" align="center" prop="recommend" />
|
||||
<el-table-column label="已售出数量" align="center" prop="saleCount" />
|
||||
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||
|
26
waimai-admin/src/main/java/com/waimai/api/Category.java
Normal file
26
waimai-admin/src/main/java/com/waimai/api/Category.java
Normal file
@ -0,0 +1,26 @@
|
||||
package com.waimai.api;
|
||||
|
||||
import com.waimai.common.annotation.Anonymous;
|
||||
import com.waimai.common.core.domain.R;
|
||||
import com.waimai.web.admin.domain.FoodCategory;
|
||||
import com.waimai.web.admin.service.IFoodCategoryService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/api/category")
|
||||
@Anonymous
|
||||
public class Category {
|
||||
@Autowired
|
||||
private IFoodCategoryService foodCategoryService;
|
||||
|
||||
@RequestMapping
|
||||
public R<List<FoodCategory>> selectAll() {
|
||||
return R.ok(
|
||||
foodCategoryService.selectFoodCategoryList(new FoodCategory())
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.waimai.api;
|
||||
|
||||
import com.waimai.common.annotation.Anonymous;
|
||||
import com.waimai.common.core.controller.BaseController;
|
||||
import com.waimai.common.core.domain.R;
|
||||
import com.waimai.web.admin.domain.Food;
|
||||
import com.waimai.web.admin.service.IFoodService;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@Anonymous
|
||||
@RequestMapping("/api/food")
|
||||
public class FoodsApiController {
|
||||
|
||||
@Resource
|
||||
private IFoodService foodService;
|
||||
|
||||
/**
|
||||
* 推荐食品
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/recommend")
|
||||
public R<List<Food>> recommend() {
|
||||
return R.ok(foodService.selectFoodList(new Food()));
|
||||
}
|
||||
|
||||
@RequestMapping("/category/{cid}")
|
||||
public R<List<Food>> selectByCategory(@PathVariable("cid") Long cid) {
|
||||
Food food = new Food();
|
||||
food.setCid(cid);
|
||||
return R.ok(foodService.selectFoodList(food));
|
||||
}
|
||||
}
|
@ -9,23 +9,27 @@ import com.waimai.common.core.domain.BaseEntity;
|
||||
* 食品分类对象 food_category
|
||||
*
|
||||
* @author callmeyan
|
||||
* @date 2023-03-24
|
||||
* @date 2023-03-31
|
||||
*/
|
||||
public class FoodCategory extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 编号 */
|
||||
/** 食品分类编号 */
|
||||
private Long id;
|
||||
|
||||
/** 分类名称 */
|
||||
@Excel(name = "分类名称")
|
||||
/** 分类标题 */
|
||||
@Excel(name = "分类标题")
|
||||
private String title;
|
||||
|
||||
/** 排序 */
|
||||
@Excel(name = "排序")
|
||||
private Integer sort;
|
||||
|
||||
/** 分类图片 */
|
||||
@Excel(name = "分类图片")
|
||||
private String cover;
|
||||
|
||||
/** 状态 */
|
||||
@Excel(name = "状态")
|
||||
private Integer state;
|
||||
@ -57,6 +61,15 @@ public class FoodCategory extends BaseEntity
|
||||
{
|
||||
return sort;
|
||||
}
|
||||
public void setCover(String cover)
|
||||
{
|
||||
this.cover = cover;
|
||||
}
|
||||
|
||||
public String getCover()
|
||||
{
|
||||
return cover;
|
||||
}
|
||||
public void setState(Integer state)
|
||||
{
|
||||
this.state = state;
|
||||
@ -73,6 +86,7 @@ public class FoodCategory extends BaseEntity
|
||||
.append("id", getId())
|
||||
.append("title", getTitle())
|
||||
.append("sort", getSort())
|
||||
.append("cover", getCover())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("state", getState())
|
||||
|
@ -6,9 +6,9 @@ spring:
|
||||
druid:
|
||||
# 主库数据源
|
||||
master:
|
||||
url: jdbc:mysql://localhost:3306/waimai_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
url: jdbc:mysql://localhost:3307/waimai_sys?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
|
||||
username: root
|
||||
password: root
|
||||
password: 123456
|
||||
# 从库数据源
|
||||
slave:
|
||||
# 从数据源开关/默认关闭
|
||||
|
@ -97,7 +97,7 @@ token:
|
||||
# 令牌密钥
|
||||
secret: abcdefghijklmnopqrstuvwxyz
|
||||
# 令牌有效期(默认30分钟)
|
||||
expireTime: 30
|
||||
expireTime: 300
|
||||
|
||||
# MyBatis配置
|
||||
mybatis:
|
||||
|
@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<result property="id" column="id" />
|
||||
<result property="title" column="title" />
|
||||
<result property="sort" column="sort" />
|
||||
<result property="cover" column="cover" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="state" column="state" />
|
||||
@ -15,13 +16,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectFoodCategoryVo">
|
||||
select id, title, sort, create_time, update_time, state, remark from food_category
|
||||
select id, title, sort, cover, create_time, update_time, state, remark from food_category
|
||||
</sql>
|
||||
|
||||
<select id="selectFoodCategoryList" parameterType="FoodCategory" resultMap="FoodCategoryResult">
|
||||
<include refid="selectFoodCategoryVo"/>
|
||||
<where>
|
||||
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
|
||||
<if test="sort != null "> and sort = #{sort}</if>
|
||||
<if test="state != null "> and state = #{state}</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@ -35,6 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="title != null">title,</if>
|
||||
<if test="sort != null">sort,</if>
|
||||
<if test="cover != null">cover,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="state != null">state,</if>
|
||||
@ -43,6 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="title != null">#{title},</if>
|
||||
<if test="sort != null">#{sort},</if>
|
||||
<if test="cover != null">#{cover},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="state != null">#{state},</if>
|
||||
@ -55,6 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="title != null">title = #{title},</if>
|
||||
<if test="sort != null">sort = #{sort},</if>
|
||||
<if test="cover != null">cover = #{cover},</if>
|
||||
<if test="createTime != null">create_time = #{createTime},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||
<if test="state != null">state = #{state},</if>
|
||||
|
@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</sql>
|
||||
|
||||
<select id="selectFoodList" parameterType="Food" resultMap="FoodResult">
|
||||
<include refid="selectFoodVo"/>
|
||||
select id, cid, title, cover, description, coupon, coupon_start_time, coupon_end_time, price, sort, area, recommend, recommend_start_time, recommend_end_time, sale_count, create_time, update_time, state, remark from food
|
||||
<where>
|
||||
<if test="cid != null "> and cid = #{cid}</if>
|
||||
<if test="title != null and title != ''"> and title like concat('%', #{title}, '%')</if>
|
||||
|
@ -112,6 +112,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
|
||||
.authorizeRequests()
|
||||
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
||||
.antMatchers("/login", "/register", "/captchaImage").permitAll()
|
||||
.antMatchers("/api/**").permitAll()
|
||||
// 静态资源,可匿名访问
|
||||
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
|
||||
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
|
||||
|
Loading…
x
Reference in New Issue
Block a user