7.从零开始搭建基于SpringCloud的京东整站_内容管理微服务_完成商品录入功能

本次目标

1.创建内容管理微服务。
2.通过内容管理微服务实现商品录入。
3.使用文件管理微服务实现文件上传。

PS:我这里只是做了简单实现,商品价格等细节内容还没有添加。因为这个项目主要目地是将各种优秀的技术进行应用,把整个系统每个细节都做出来也不太现实。本次实现商品录入主要是对之前第三节做的图片上传微服务进行整合,并且为后面的Elasticsearch技术的应用做铺垫。

创建内容管理微服务

pom依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>SpringBootMicroservices</artifactId>
        <groupId>liwen.zhao</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <!--内容管理微服务-->
    <artifactId>ContentManagementMicroservice</artifactId>

    <dependencies>
        <!--eureka-client-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <!--持久层-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--Mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--Mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <!--alibaba德鲁伊数据源 DruidDataSource-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <!--JDCommons-->
        <dependency>
            <groupId>liwen.zhao</groupId>
            <artifactId>JDCommons</artifactId>
        </dependency>
        <!--Redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
        </dependency>

    </dependencies>
</project>

启动类

@SpringBootApplication
@MapperScan("liwen.zhao.mappers")
@EnableEurekaClient
public class ContentManagementStarter {
    public static void main(String[] args) {
        SpringApplication.run(ContentManagementStarter.class,args);
    }
    @Bean
    public SysResult initSysResult(){
        return SysResult.build(500, "服务器异常", null);
    }
}

控制器

@Controller
@RestController
@RequestMapping("/article")
public class ArticleController {
    @Autowired
    SysResult sysResult;
    @Autowired
    ArticleService articleService;
    @RequestMapping(value = "/add",method = RequestMethod.POST)
    public SysResult add(Article article){
        return articleService.addArticle(article);
    }
}

业务层接口

package liwen.zhao.service;

import liwen.zhao.common.jd.pojo.Article;
import liwen.zhao.common.jd.vo.SysResult;

public interface ArticleService {
    SysResult addArticle(Article article);
}

业务层接口实现

@Service
public class ArticleServiceImpl implements ArticleService {
    @Autowired
    SysResult sysResult;
    @Autowired(required = false)
    ArticleMapper articleMapper;
    @Override
    public SysResult addArticle(Article article) {
        Long time=System.currentTimeMillis()/1000;
        article.setContent("");
        article.setCtime(time);
        article.setUtime(time);
        try {
            articleMapper.addArticle(article);
            return SysResult.ok();
        }catch (Exception e){
            return sysResult;
        }
    }
}

持久层映射
略。
更多细节内容,请下载源码查看…

实现商品录入

接口描述

js请求地址http://{ip:port}/article/add
后台接收/article/add
请求方式POST
请求参数提交参数 String title;标题
String summary;简介
String img;主图地址
返回数据返回SysResult对象的json,其结构:Integer status; 200表示成功,其他表示失败。String msg;成功返回 “ok”,失败返回其他信息。Object data;根据需求携带其他数据。

我将会把商品信息通过内容管理系统进行管理。该想法的来源是CMS(内容管理系统)。
其实无论是商品、文章、新闻、网页、公告…,本质上都是在互联网上进行文章内容的发布和展示。你可能会问,那商品还有价格呢?!文章作为虚拟物品,也是可以作为商品售卖的,存在价格字段也不冲突。


在这里插入图片描述

前端代码实现

主要还是用到了Vue。
对各种提交参数进行了动态绑定:

<script>
    //vue
    var vu=new Vue({
        el:"#main",
        data:{
            title:"",
            summary:"",
            img:""
        },
        methods:{
            test:function () {
                alert(this.img);
            },
            submit:function () {
                const url="/article/add";
                let datas = {"title":this.title,"summary":this.summary,"img":this.img};
                axios.post(url,Qs.stringify(datas)).then(function(resp){
                    if(resp.data.status!=200){
                        alert(resp.data.msg);
                    }else{
                        alert("添加成功");
                    }
                })/*.catch(resp => {
                  alert('请求失败');
                  this.changeValiCode();
                });*/
            }
        }
    }

    );
</script>

使用文件管理微服务实现文件上传

其中,图片上传,在3.从零开始搭建基于SpringCloud的京东整站_文件上传微服务已经介绍过了,这里不再赘述。

代码地址:https://gitee.com/zhaoliwen/JD_ALL.git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值