main
ck 1 year ago committed by null
parent 2a60412e4f
commit cbac8c653f

@ -0,0 +1,3 @@
# luoo_cms
通用CMS BANNER,协议,文章等,意见反馈)

@ -0,0 +1,62 @@
<?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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.luoo</groupId>
<artifactId>luoo_parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>luoo_cms</artifactId>
<description>通用CMS BANNER,协议,文章等,意见反馈) </description>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.luoo</groupId>
<artifactId>luoo_common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--swagger 升级版-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.5</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,54 @@
package com.luoo.cms;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import util.IdWorker;
import util.JwtUtil;
import java.net.InetAddress;
import java.net.UnknownHostException;
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
@EnableFeignClients
public class CmsApplication {
private static Logger logger = LoggerFactory.getLogger(CmsApplication.class);
public static void main(String[] args) throws UnknownHostException {
ConfigurableApplicationContext application = SpringApplication.run(CmsApplication.class, args);
Environment env = application.getEnvironment();
logger.info("\n----------------------------------------------------------\n\t"
+ "Application '{}' is running! Access URLs:\n\t" + "Local: \t\thttp://localhost:{}\n\t"
+ "External: \thttp://{}:{}\n\t" + "Doc: \thttp://{}:{}/doc.html\n\t"
+ "Version: \tversion={},profiles={}\n" + "----------------------------------------------------------",
env.getProperty("spring.application.name"), env.getProperty("server.port"),
InetAddress.getLocalHost().getHostAddress(), env.getProperty("server.port"),
InetAddress.getLocalHost().getHostAddress(), env.getProperty("server.port"),
env.getProperty("api.version"),env.getProperty("spring.profiles.active"));
}
@Bean
public JwtUtil jwtUtil(){
return new JwtUtil();
}
@Bean
public IdWorker idWorkker(){
return new IdWorker(1, 1);
}
}

@ -0,0 +1,52 @@
package com.luoo.cms.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.ConfigurableEnvironment;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.time.LocalDate;
import java.time.LocalTime;
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Autowired
private ConfigurableEnvironment configurableEnvironment;
@Bean
public Docket docket() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.luoo.cms"))
.paths(PathSelectors.any())
.build().directModelSubstitute(LocalTime.class, String.class)
.directModelSubstitute(LocalDate.class, String.class);
String appName = configurableEnvironment.getProperty("spring.application.name");
if (appName != null){
docket.pathMapping(String.format("/%s", appName));
}
return docket;
}
private ApiInfo apiInfo() {
ApiInfo info = new ApiInfoBuilder()
.title("通用CMS")
.description("通用CMS")
.version("0.0.1")
.contact(new Contact("通用CMS", "", ""))
.build();
return info;
}
}

@ -0,0 +1,49 @@
package com.luoo.cms.controller;
import api.Result;
import com.luoo.cms.pojo.Banner;
import com.luoo.cms.service.BannerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@Api(tags = "banner轮播图")
@RestController
@RequestMapping("/banner")
public class BannerController {
@Autowired
private BannerService bannerService;
@ApiOperation("通过id查询一个banner")
@GetMapping("/{id}")
public Result<Banner> findById(@PathVariable String id){
return Result.success(bannerService.findById(id));
}
@ApiOperation("banner列表")
@GetMapping("/list")
public Result<List<Banner>> findById(){
return Result.success(bannerService.bannerList());
}
@ApiOperation("添加一个banner")
@PostMapping
public Result<Void> add(@RequestBody Banner banner){
bannerService.add(banner);
return Result.success();
}
@ApiOperation("通过id删除banner")
@DeleteMapping("/{id}")
public Result<Void> delete(@PathVariable String id ){
bannerService.deleteById(id);
return Result.success();
}
}

@ -0,0 +1,32 @@
package com.luoo.cms.controller;
import api.Result;
import com.luoo.cms.pojo.Agreement;
import com.luoo.cms.pojo.Banner;
import com.luoo.cms.service.AgreementService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@Api(tags = "通用CMS")
@RestController
@RequestMapping("/cms")
public class CmsController {
@Autowired
private AgreementService agreementService;
@ApiOperation("通过key查询")
@GetMapping("/agreement/{key}")
public Result<Agreement> findById(@PathVariable String key){
return Result.success(agreementService.findByKey(key));
}
}

@ -0,0 +1,16 @@
package com.luoo.cms.dao;
import com.luoo.cms.pojo.Agreement;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.lang.NonNull;
import java.util.Optional;
public interface AgreementDao extends JpaRepository<Agreement,String> {
@Query("select a from Agreement a where a.key = ?1")
Optional<Agreement> findByKey(String key);
Optional<Agreement> findByKeyAndState(@NonNull String key, int state);
}

@ -0,0 +1,8 @@
package com.luoo.cms.dao;
import com.luoo.cms.pojo.Banner;
import org.springframework.data.jpa.repository.JpaRepository;
public interface BannerDao extends JpaRepository<Banner,String> {
}

@ -0,0 +1,45 @@
package com.luoo.cms.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Entity
@Table(name = "tb_agreement")
@ApiModel(value = "协议")
public class Agreement implements Serializable {
@Id
private String id;
@ApiModelProperty(value = "url别名")
private String key;
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "内容")
private String content;
@ApiModelProperty(value = "状态")
private int state = 0;
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd")
@ApiModelProperty(value = "创建时间")
protected LocalDateTime createTime = LocalDateTime.now();
@Column(name = "update_time")
@ApiModelProperty(value = "更新时间", hidden = true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
protected LocalDateTime updateTime = LocalDateTime.now();
}

@ -0,0 +1,42 @@
package com.luoo.cms.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@Entity
@Table(name = "tb_banner")
@ApiModel(value = "banner轮播图")
public class Banner implements Serializable {
@Id
private String id;
@ApiModelProperty(value = "标题")
private String title;
@ApiModelProperty(value = "图片地址")
private String imgUrl;
@ApiModelProperty(value = "点击跳转地址")
private String url;
@ApiModelProperty(value = "状态")
private int state = 0;
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd")
@ApiModelProperty(value = "创建时间")
protected LocalDateTime createTime = LocalDateTime.now();
@Column(name = "update_time")
@ApiModelProperty(value = "更新时间", hidden = true)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
protected LocalDateTime updateTime = LocalDateTime.now();
}

@ -0,0 +1,30 @@
package com.luoo.cms.service;
import com.luoo.cms.dao.AgreementDao;
import com.luoo.cms.pojo.Agreement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class AgreementService {
@Autowired
private AgreementDao agreementDao;
public Agreement findByKey1(String key) {
Agreement agreement = new Agreement();
agreement.setKey(key);
Example<Agreement> example = Example.of(agreement);
return agreementDao.findOne(example).get();
}
public Agreement findByKey(String key) {
//agreementDao.findByKeyAndState(key,0);
return agreementDao.findByKey(key).get();
}
}

@ -0,0 +1,38 @@
package com.luoo.cms.service;
import com.luoo.cms.dao.BannerDao;
import com.luoo.cms.pojo.Banner;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import util.IdWorker;
import java.util.List;
@Service
@Transactional
public class BannerService {
@Autowired
private BannerDao bannerDao;
@Autowired
private IdWorker idWorker;
public Banner findById(String id) {
return bannerDao.findById(id).get();
}
public void add(Banner banner) {
banner.setId(idWorker.nextId()+"");
bannerDao.save(banner);
}
public void deleteById(String id) {
bannerDao.deleteById(id);
}
public List<Banner> bannerList() {
return bannerDao.findAll();
}
}

@ -0,0 +1,22 @@
server:
port: 9014
spring:
application:
name: luoo-cms #指定服务名
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://8.134.98.47:3307/indie_cms?characterEncoding=UTF8&useSSL=false
username: root
password: 47084735abc
jpa:
database: MySQL
show-sql: true
redis:
host: 8.134.98.47
port: 36379
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:6868/eureka/
instance:
prefer-ip-address: true

@ -0,0 +1,8 @@
spring:
cloud:
config:
name: cms
profile: dev
label: master
uri: http://116.62.145.60:12000
# uri: http://127.0.0.1:12000

@ -21,6 +21,7 @@
<module>luoo_sms</module>
<module>luoo_config</module>
<module>luoo_tag</module>
<module>luoo_cms</module>
</modules>
<packaging>pom</packaging>
<name>luoo_parent</name>

Loading…
Cancel
Save