当前位置: 首页 > wzjs >正文

网站后台怎么做qq群自动加wordpress 自动广告

网站后台怎么做qq群自动加,wordpress 自动广告,做一款微信小程序多少钱,金湖县建设工程质量监督网站1.需求分析和设计 产品原型 业务规则: 菜品名称必须是唯一的 菜品必须属于某个分类下,不能单独存在 新增菜品时可以根据情况选择菜品的口味 每个菜品必须对应一张图片 接口设计: 根据类型查询分类(已完成) 文件上传 新增菜品 根据类型…

1.需求分析和设计

产品原型

业务规则:

菜品名称必须是唯一的

菜品必须属于某个分类下,不能单独存在

新增菜品时可以根据情况选择菜品的口味

每个菜品必须对应一张图片

接口设计:

根据类型查询分类(已完成)

文件上传

新增菜品

根据类型查询分类

数据库设计(dish菜品表和dish_flavor口味表)

2.代码开发

OssConfiguration代码:

package com.sky.config;import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 配置类,用于创建AliOssUtil对象*/
@Configuration//注解,表示这是员工配置类
@Slf4j
public class OssConfiguration {@Bean//交给spring容器管理@ConditionalOnMissingBean//保证Spring容器里只有员工Util对象public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){log.info("开始创建阿里云文件上传工具类对象:{}",aliOssProperties);return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());//读取配置文件内的数据,然后给配置类赋值}
}

CommonController代码:

package com.sky.controller.admin;import com.sky.constant.MessageConstant;
import com.sky.result.Result;
import com.sky.utils.AliOssUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;
import java.util.UUID;/*** 通用接口*/
@RestController
@RequestMapping("/admin/common")
@Api(tags = "通用接口")
@Slf4j
public class CommonController {@Autowiredprivate AliOssUtil aliOssUtil;/*** 文件上传* @param file* @return*/@PostMapping("/upload")@ApiOperation("文件上传")public Result<String> upload(MultipartFile file){//参数名要和前端的保持一致log.info("文件上传:{}",file);try {//原始文件String originalFilename = file.getOriginalFilename();//截取原始文件名的后缀String extension = originalFilename.substring(originalFilename.lastIndexOf("."));//构造新文件名称String objectName = UUID.randomUUID().toString() + extension;//文件的请求路径String filePath = aliOssUtil.upload(file.getBytes(),objectName);return Result.success(filePath);} catch (IOException e) {log.info("文件上传失败:{}",e);}return Result.error(MessageConstant.UPLOAD_FAILED);}
}

DishController代码:

package com.sky.controller.admin;import com.sky.dto.DishDTO;
import com.sky.result.Result;
import com.sky.service.DishService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** 菜品管理*/
@RestController
@RequestMapping("/admin/dish")
@Api(tags = "菜品管理接口")
@Slf4j
public class DishController {@Autowiredprivate DishService dishService;/*** 新增菜品* @param dishDTO* @return*/@PostMapping@ApiOperation("新增菜品")public Result save(@RequestBody DishDTO dishDTO){log.info("新增菜品:{}",dishDTO);dishService.saveWithFlavor(dishDTO);return Result.success();}
}

DishService代码:

package com.sky.service;import com.sky.dto.DishDTO;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Service;@Service
public interface DishService {/*** 新增菜品和对应的口味* @param dishDTO*/void saveWithFlavor(DishDTO dishDTO);
}

DishServiceImpl代码:

package com.sky.service.impl;import com.sky.dto.DishDTO;
import com.sky.entity.Dish;
import com.sky.entity.DishFlavor;
import com.sky.mapper.DishFlavorMapper;
import com.sky.mapper.DishMapper;
import com.sky.service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.List;@Service
@Slf4j
public class DishServiceImpl implements DishService {@Autowiredprivate DishMapper dishMapper;@Autowiredprivate DishFlavorMapper dishFlavorMapper;/*** 新增菜品和对应的口味* @param dishDTO*/@Transactionalpublic void saveWithFlavor(DishDTO dishDTO) {Dish dish = new Dish();BeanUtils.copyProperties(dishDTO,dish);//向菜品表插入1条数据dishMapper.insert(dish);//获取inset语句生成的主键值Long dishId = dish.getId();//向口味表插入n条数据List<DishFlavor> flavors = dishDTO.getFlavors();if(flavors != null && flavors.size() > 0){//是否有口味数据flavors.forEach(dishFlavor -> {dishFlavor.setDishId(dishId);});dishFlavorMapper.insertBatch(flavors);}}
}

DishMapper代码:

package com.sky.mapper;import com.sky.annotation.AutoFill;
import com.sky.entity.Dish;
import com.sky.enumeration.OperationType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface DishMapper {/*** 根据分类id查询菜品数量* @param categoryId* @return*/@Select("select count(id) from dish where category_id = #{categoryId}")Integer countByCategoryId(Long categoryId);/*** 新增菜品数据* @param dish*/@AutoFill(value = OperationType.INSERT)void insert(Dish dish);
}

DishFlavorMapper代码:

package com.sky.mapper;import com.sky.entity.DishFlavor;
import org.apache.ibatis.annotations.Mapper;import java.util.List;@Mapper
public interface DishFlavorMapper {/*** 批量插入口味数据* @param flavors*/void insertBatch(List<DishFlavor> flavors);
}

DishMapper.xml代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.DishMapper"><insert id="insert" useGeneratedKeys="true" keyProperty="id">/*useGeneratedKeys="true"表示刚刚插入所生成的主键值,keyProperty="id"将id返回值给id*/INSERT INTO dish (name,category_id,price,image,description,create_time,update_time,create_user,update_user,status)VALUES(#{name},#{categoryId},#{price},#{image},#{description},#{createTime},#{updateTime},#{createUser},#{updateUser},#{status})</insert>
</mapper>

DishFlavorMapper.xml代码:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.sky.mapper.DishFlavorMapper"><insert id="insertBatch">INSERT INTO dish_flavor(dish_id,name,value) VALUES<foreach collection="flavors" item="df" separator=",">(#{df.dishId},#{df.name},#{df.value})</foreach></insert>
</mapper>

yml文件代码:

  alioss:endpoint: ${sky.alioss.endpoint}access-key-id: ${sky.alioss.access-key-id}access-key-secret: ${sky.alioss.access-key-secret}bucket-name: ${sky.alioss.bucket-name}alioss:endpoint: oss-cn-beijing.aliyuncs.comaccess-key-id: LTAI5tPeFLzsPPT8gG3LPW64access-key-secret: U6k1brOZ8gaOIXv3nXbulGTUzy6Pd7bucket-name: sky-itcast
http://www.dtcms.com/wzjs/534934.html

相关文章:

  • 专业做网站优化价格动易网站 自定义邮箱
  • 网站的建设公司哪个好有限责任公司名称
  • 网站建立不安全咸阳网站开发公司地址
  • 中国小康建设网 官方网站设计素材网站导航大全
  • 黄岩区建设规划局网站潍坊中脉网站建设
  • 免费自助建站网站如何在工信部网站查询icpip
  • 甘肃县门户网站建设方案推广软件的网站
  • 公司网站购物平台建设广东购物网站建设报价
  • 新余网站建设找谁做湖南住房和城乡建设部网站
  • 购物网站有哪些功能wordpress图片收费
  • 嵊州网站制作可信网站认证 技术支持单位
  • 可做宣传的网站都有哪些wordpress显示标题
  • 怎么做足球直播网站做网站的盈利点
  • 网站建设丩金手指排名壹陆百度风云排行榜官网
  • 企业官网响应式网站织梦 更换网站图标
  • 做网站主要学什么软件网站建设开发数据库
  • 国外购物网站排行榜网站程序开发
  • 珠海市官网网站建设品牌上海注册公司需要多久
  • 网站制作对公司的作用注册域名哪个网站好
  • 泰州网站制作编程软件做网站的
  • 网站建设名词解释与简答题室内设计公司加盟
  • 兰州网站建设报价简单个人网站制作
  • 梧州外贸网站推广设计网易企业邮箱服务器设置
  • 做网站要注册公司么东莞智通人才网招聘
  • 贵阳网站开发制作公司怎么在公众号上做网站
  • 厦门建网站品牌湖北德升建站
  • 绿化公司网站建设做网站需学什么
  • 微信公众号微网站怎么做的眉山网站定制
  • 做网站的公司北京有哪些wordpress form 生成
  • jeecms 怎么建设网站微信公众号文章 转wordpress