国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

手機(jī)哪里可以做視頻網(wǎng)站鄭州聚商網(wǎng)絡(luò)科技有限公司

手機(jī)哪里可以做視頻網(wǎng)站,鄭州聚商網(wǎng)絡(luò)科技有限公司,義烏專業(yè)做網(wǎng)站,廣東省自然資源廳網(wǎng)站器材管理 和員工管理基本一致,就不贅述,展示代碼為主 新增器材 表設(shè)計(jì): 字段名 數(shù)據(jù)類型 說明 備注 id bigint 主鍵 自增 name varchar(32) 器材名字 img varchar(255) 圖片 number BIGINT 器材數(shù)量 comment VARC…

器材管理

和員工管理基本一致,就不贅述,展示代碼為主

新增器材

表設(shè)計(jì):

字段名

數(shù)據(jù)類型

說明

備注

id

bigint

主鍵

自增

name

varchar(32)

器材名字

img

varchar(255)

圖片

number

BIGINT

器材數(shù)量

comment

VARCHAR(99)

器材描述

status

Int

器材狀態(tài)

1正常 0鎖定

create_time

Datetime

創(chuàng)建時(shí)間

update_time

datetime

最后修改時(shí)間

借走/歸還

create_user

bigint

創(chuàng)建人id

update_user

bigint

最后修改人id

借走或者歸還

sql語句


CREATE TABLE equipment (id BIGINT AUTO_INCREMENT PRIMARY KEY,  -- 自增主鍵name VARCHAR(32) NOT NULL,  -- 器材名字,不允許為空number BIGINT NOT NULL default 1,  -- 器材數(shù)量:默認(rèn)為1comment VARCHAR(99) , -- 器材描述status INT NOT NULL DEFAULT 1,  -- 器材狀態(tài),默認(rèn)為1(正常),0表示鎖定create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,  -- 創(chuàng)建時(shí)間,默認(rèn)為當(dāng)前時(shí)間update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,  -- 最后修改時(shí)間,默認(rèn)為當(dāng)前時(shí)間,并在每次更新時(shí)自動(dòng)更新create_user BIGINT NOT NULL,  -- 創(chuàng)建人id,不允許為空update_user BIGINT NOT NULL,  -- 最后修改人id,不允許為空FOREIGN KEY (create_user) REFERENCES student(id),FOREIGN KEY (update_user) REFERENCES student(id)
-- 注意:這里假設(shè)create_user和update_user是用戶ID,您需要確保這些ID在相應(yīng)的用戶表中存在
);
INSERT INTO equipment VALUES (1,'籃球',10,'這是籃球',1,'2024-07-12','2024-07-12',1,1);ALTER TABLE equipment ADD COLUMN img VARCHAR(255);

接口設(shè)計(jì)

請(qǐng)求路徑:/admin/equipment

請(qǐng)求方式:POST

請(qǐng)求參數(shù):Headers:"Content-Type": "application/json"

請(qǐng)求體:Body:

id;name,img, number,comment;

返回?cái)?shù)據(jù):code;data;msg

代碼開發(fā)

實(shí)體類

創(chuàng)建數(shù)據(jù)庫(kù)的器材的封裝實(shí)體類

sems-pojo/src/main/java/com/ljc/entity/Equipment.java

package com.ljc.entity;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.io.Serializable;
import java.security.SecureRandom;
import java.time.LocalDateTime;@Data
@Builder  //可是使用builder方式來定義數(shù)據(jù)
@NoArgsConstructor  //無參構(gòu)造器
@AllArgsConstructor  //有參構(gòu)造器
public class Equipment implements Serializable {private static final long serialVersionUID = 1L;//告訴Java虛擬機(jī)(JVM)這個(gè)類的對(duì)象是可以被序列化的。private Long id;private String name;//圖片private String img;//器材數(shù)量private Long number;//器材描述private String comment;private Integer status;private LocalDateTime createTime;private LocalDateTime updateTime;private Long createUser;private Long updateUser;}

接收前端的數(shù)據(jù),創(chuàng)建實(shí)體類DTO

sems-pojo/src/main/java/com/ljc/dto/EquipmentDTO.java

package com.ljc.dto;import lombok.Data;import java.io.Serializable;@Data
public class EquipmentDTO implements Serializable {//器材idprivate Long id;//器材名字private String name;//圖片private String img;//器材數(shù)量private Long number;//器材描述private String comment;
}

controller

sems-server/src/main/java/com/ljc/controller/admin/EquipmentController.java

package com.ljc.controller.admin;import com.ljc.dto.EquipmentDTO;
import com.ljc.result.Result;
import com.ljc.service.EquipmentService;
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;@RestController
@RequestMapping("/admin/equipment")
@Slf4j
public class EquipmentController {@Autowiredprivate EquipmentService equipmentService;/*** 新增器材* @param equipmentDTO* @return*/@PostMapping@ApiOperation("新增器材")public Result save(EquipmentDTO equipmentDTO){log.info("新增器材:{}", equipmentDTO);equipmentService.save(equipmentDTO);return Result.success();}
}

service

sems-server/src/main/java/com/ljc/service/EquipmentService.java

package com.ljc.service;import com.ljc.dto.EquipmentDTO;public interface EquipmentService {/*** 新增器材* @param equipmentDTO*/void save(EquipmentDTO equipmentDTO);
}

serviceImpl

sems-server/src/main/java/com/ljc/service/impl/EquipmentServiceImpl.java

package com.ljc.service.impl;import com.ljc.constant.StatusConstant;
import com.ljc.context.BaseContext;
import com.ljc.dto.EquipmentDTO;
import com.ljc.entity.Equipment;
import com.ljc.mapper.EquipmentMapper;
import com.ljc.service.EquipmentService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;@Service
public class EquipmentServiceImpl implements EquipmentService {@Autowiredprivate EquipmentMapper equipmentMapper;/*** 新增器材* @param equipmentDTO*/@Overridepublic void save(EquipmentDTO equipmentDTO) {//1. 先創(chuàng)建一個(gè)器材實(shí)體類Equipment equipment = new Equipment();//2. 將DTO數(shù)據(jù)copy到實(shí)體類去BeanUtils.copyProperties(equipmentDTO,equipment);//2.1 補(bǔ)充其余數(shù)據(jù)//狀態(tài):默認(rèn)為1;equipment.setStatus(StatusConstant.ENABLE);//修改時(shí)間equipment.setCreateTime(LocalDateTime.now());equipment.setUpdateTime(LocalDateTime.now());//創(chuàng)建/修改人idequipment.setCreateUser(BaseContext.getCurrentId());equipment.setUpdateUser(BaseContext.getCurrentId());//3. 調(diào)用mapper層查詢數(shù)據(jù)庫(kù)equipmentMapper.insert(equipment);}
}

mapper

sems-server/src/main/java/com/ljc/mapper/EquipmentMapper.java

package com.ljc.mapper;import com.ljc.entity.Equipment;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;@Mapper
public interface EquipmentMapper {/*** 新增器材* @param equipment*/@Insert("insert into equipment (name, img,status,number,comment, create_time, update_time, create_user, update_user)" +"VALUES " +"(#{name},#{img},#{status},#{number},#{comment},#{createTime},#{updateTime},#{createUser},#{updateUser})")void insert(Equipment equipment);
}

測(cè)試

//圖片后面解決,使用OSS云存儲(chǔ)

器材分頁查詢

接口設(shè)計(jì)

請(qǐng)求路徑:/admin/equipment/page

請(qǐng)求方式:GET

請(qǐng)求參數(shù): name, page, pageSize;

返回?cái)?shù)據(jù):code;msg ;data:total,records;

controller層

sems-server/src/main/java/com/ljc/controller/admin/EquipmentController.java

/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/@GetMapping("/page")@ApiOperation("器材分頁查詢")public Result<PageResult> page(EquipmentPageQueryDTO equipmentPageQueryDTO){log.info("器材分頁查詢:{}",equipmentPageQueryDTO);PageResult pageResult = equipmentService.page(equipmentPageQueryDTO);return Result.success(pageResult);}

service層

sems-server/src/main/java/com/ljc/service/EquipmentService.java

/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/PageResult page(EquipmentPageQueryDTO equipmentPageQueryDTO);

serviceImpl層

sems-server/src/main/java/com/ljc/service/impl/EquipmentServiceImpl.java

/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/@Overridepublic PageResult page(EquipmentPageQueryDTO equipmentPageQueryDTO) {PageHelper.startPage(equipmentPageQueryDTO.getPage(),equipmentPageQueryDTO.getPageSize());Page<Equipment> page = equipmentMapper.page(equipmentPageQueryDTO);long total = page.getTotal();List<Equipment> records = page.getResult();return new PageResult(total,records);}

mapper層

sems-server/src/main/java/com/ljc/mapper/EquipmentMapper.java

/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/Page<Equipment> page(EquipmentPageQueryDTO equipmentPageQueryDTO);

sems-server/src/main/resources/mapper/EquipmentMapper.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.ljc.mapper.EquipmentMapper"><!--器材分頁查詢--><select id="page" resultType="com.ljc.entity.Equipment">select * from equipment<where><if test="name != null and name != ''">and name like concat('%',#{name},'%')</if></where>order by create_time desc</select>
</mapper>

測(cè)試

禁用啟用器材

接口設(shè)計(jì)

請(qǐng)求路徑:/admin/equipment/status/{status}

請(qǐng)求方式:POST

請(qǐng)求參數(shù):application/json

路徑參數(shù):status

query:id

返回?cái)?shù)據(jù):code;data;msg

代碼設(shè)計(jì)

controller

sems-server/src/main/java/com/ljc/controller/admin/EquipmentController.java

/*** 禁用啟用器材* @param status* @param id* @return*/@PostMapping("/status/{status}")@ApiOperation("禁用啟用器材")public Result startOrStopEquipmentStatus(@PathVariable Integer status,Long id){log.info("禁用啟用器材...");equipmentService.startOrStopStatus(status,id);return Result.success();}

service和impl層

sems-server/src/main/java/com/ljc/service/EquipmentService.java

/*** 禁用啟用器材* @param status* @param id*/void startOrStopStatus(Integer status, Long id);

sems-server/src/main/java/com/ljc/service/impl/EquipmentServiceImpl.java

/*** 禁用啟用器材* @param status* @param id*/@Overridepublic void startOrStopStatus(Integer status, Long id) {Equipment equipment = Equipment.builder().id(id).status(status).build();equipmentMapper.update(equipment);}

mapper層

sems-server/src/main/java/com/ljc/mapper/EquipmentMapper.java

/*** 修改器材表* @param equipment*/void update(Equipment equipment);

sems-server/src/main/resources/mapper/EquipmentMapper.xml

<!--修改--><update id="update">update equipment<set><if test="name != null">name = #{name},</if><if test="img != null">img = #{img},</if><if test="number != null">number = #{number},</if><if test="comment != null">comment = #{comment},</if><if test="status != null">status = #{status},</if><if test="updateTime != null">update_Time = #{updateTime},</if><if test="updateUser != null">update_User = #{updateUser},</if></set>where id = #{id}</update>

測(cè)試

編輯器材信息

接口設(shè)計(jì)

根據(jù)id查詢學(xué)生

請(qǐng)求路徑:/admin/equipment/{id}

請(qǐng)求方法:GET

請(qǐng)求參數(shù):id

返回?cái)?shù)據(jù):code;msg;data(equipment類)

編輯學(xué)生信息

請(qǐng)求路徑:/admin/equipment

請(qǐng)求方法:PUT

請(qǐng)求參數(shù):Headers:application/json

Body:id,name,img,number,comment,status

返回?cái)?shù)據(jù):code;msg;data

代碼開發(fā)

controller

sems-server/src/main/java/com/ljc/controller/admin/EquipmentController.java

/*** 根據(jù)id查詢器材信息* @param id* @return*/@GetMapping("{id}")@ApiOperation("根據(jù)id查詢器材信息")public Result<Equipment> getById(@PathVariable Integer id){log.info("根據(jù)id查詢器材信息....");Equipment equipment = equipmentService.getById(id);return Result.success(equipment);}/*** 修改器材信息* @param equipmentDTO* @return*/@PutMapping@ApiOperation("修改器材信息")public Result updateEquipmentInfo(@RequestBody EquipmentDTO equipmentDTO){log.info("修改器材信息...");equipmentService.updateEquipmentInfo(equipmentDTO);return Result.success();}

service

sems-server/src/main/java/com/ljc/service/EquipmentService.java

/*** 根據(jù)id查詢信息* @param id* @return*/Equipment getById(Integer id);/*** 修改器材信息* @param equipmentDTO*/void updateEquipmentInfo(EquipmentDTO equipmentDTO);

sems-server/src/main/java/com/ljc/service/impl/EquipmentServiceImpl.java

 /*** 根據(jù)id查詢信息* @param id* @return*/@Overridepublic Equipment getById(Integer id) {return equipmentMapper.getById(id);}/*** 修改器材信息* @param equipmentDTO*/@Overridepublic void updateEquipmentInfo(EquipmentDTO equipmentDTO) {Equipment equipment = new Equipment();BeanUtils.copyProperties(equipmentDTO,equipment);equipment.setUpdateUser(BaseContext.getCurrentId());equipment.setUpdateTime(LocalDateTime.now());equipmentMapper.update(equipment);}

mapper

sems-server/src/main/java/com/ljc/mapper/EquipmentMapper.java

/*** 根據(jù)id查找員工信息* @param id* @return*/@Select("select * from equipment where id = #{id}")Equipment getById(Integer id);/*** 修改器材表* @param equipment*/void update(Equipment equipment);

測(cè)試

完整代碼

controller

sems-server/src/main/java/com/ljc/controller/admin/EquipmentController.java

package com.ljc.controller.admin;import com.ljc.dto.EquipmentDTO;
import com.ljc.dto.EquipmentPageQueryDTO;
import com.ljc.entity.Equipment;
import com.ljc.result.PageResult;
import com.ljc.result.Result;
import com.ljc.service.EquipmentService;
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.*;@RestController
@RequestMapping("/admin/equipment")
@Slf4j
@Api(tags = "器材管理")
public class EquipmentController {@Autowiredprivate EquipmentService equipmentService;/*** 新增器材* @param equipmentDTO* @return*/@PostMapping@ApiOperation("新增器材")public Result save(@RequestBody EquipmentDTO equipmentDTO){log.info("新增器材:{}", equipmentDTO);equipmentService.save(equipmentDTO);return Result.success();}/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/@GetMapping("/page")@ApiOperation("器材分頁查詢")public Result<PageResult> page(EquipmentPageQueryDTO equipmentPageQueryDTO){log.info("器材分頁查詢:{}",equipmentPageQueryDTO);PageResult pageResult = equipmentService.page(equipmentPageQueryDTO);return Result.success(pageResult);}/*** 禁用啟用器材* @param status* @param id* @return*/@PostMapping("/status/{status}")@ApiOperation("禁用啟用器材")public Result startOrStopEquipmentStatus(@PathVariable Integer status,Long id){log.info("禁用啟用器材...");equipmentService.startOrStopStatus(status,id);return Result.success();}/*** 根據(jù)id查詢器材信息* @param id* @return*/@GetMapping("{id}")@ApiOperation("根據(jù)id查詢器材信息")public Result<Equipment> getById(@PathVariable Integer id){log.info("根據(jù)id查詢器材信息....");Equipment equipment = equipmentService.getById(id);return Result.success(equipment);}/*** 修改器材信息* @param equipmentDTO* @return*/@PutMapping@ApiOperation("修改器材信息")public Result updateEquipmentInfo(@RequestBody EquipmentDTO equipmentDTO){log.info("修改器材信息...");equipmentService.updateEquipmentInfo(equipmentDTO);return Result.success();}}

service

sems-server/src/main/java/com/ljc/service/EquipmentService.java

package com.ljc.service;import com.ljc.dto.EquipmentDTO;
import com.ljc.dto.EquipmentPageQueryDTO;
import com.ljc.entity.Equipment;
import com.ljc.result.PageResult;public interface EquipmentService {/*** 新增器材* @param equipmentDTO*/void save(EquipmentDTO equipmentDTO);/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/PageResult page(EquipmentPageQueryDTO equipmentPageQueryDTO);/*** 禁用啟用器材* @param status* @param id*/void startOrStopStatus(Integer status, Long id);/*** 根據(jù)id查詢信息* @param id* @return*/Equipment getById(Integer id);/*** 修改器材信息* @param equipmentDTO*/void updateEquipmentInfo(EquipmentDTO equipmentDTO);
}

sems-server/src/main/java/com/ljc/service/impl/EquipmentServiceImpl.java

package com.ljc.service.impl;import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ljc.constant.StatusConstant;
import com.ljc.context.BaseContext;
import com.ljc.dto.EquipmentDTO;
import com.ljc.dto.EquipmentPageQueryDTO;
import com.ljc.entity.Equipment;
import com.ljc.mapper.EquipmentMapper;
import com.ljc.result.PageResult;
import com.ljc.service.EquipmentService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDateTime;
import java.util.List;@Service
public class EquipmentServiceImpl implements EquipmentService {@Autowiredprivate EquipmentMapper equipmentMapper;/*** 新增器材* @param equipmentDTO*/@Overridepublic void save(EquipmentDTO equipmentDTO) {//1. 先創(chuàng)建一個(gè)器材實(shí)體類Equipment equipment = new Equipment();//2. 將DTO數(shù)據(jù)copy到實(shí)體類去BeanUtils.copyProperties(equipmentDTO,equipment);//2.1 補(bǔ)充其余數(shù)據(jù)//狀態(tài):默認(rèn)為1;equipment.setStatus(StatusConstant.ENABLE);//修改時(shí)間equipment.setCreateTime(LocalDateTime.now());equipment.setUpdateTime(LocalDateTime.now());//創(chuàng)建/修改人idequipment.setCreateUser(BaseContext.getCurrentId());equipment.setUpdateUser(BaseContext.getCurrentId());//3. 調(diào)用mapper層查詢數(shù)據(jù)庫(kù)equipmentMapper.insert(equipment);}/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/@Overridepublic PageResult page(EquipmentPageQueryDTO equipmentPageQueryDTO) {PageHelper.startPage(equipmentPageQueryDTO.getPage(),equipmentPageQueryDTO.getPageSize());Page<Equipment> page = equipmentMapper.page(equipmentPageQueryDTO);long total = page.getTotal();List<Equipment> records = page.getResult();return new PageResult(total,records);}/*** 禁用啟用器材* @param status* @param id*/@Overridepublic void startOrStopStatus(Integer status, Long id) {Equipment equipment = Equipment.builder().id(id).status(status).build();equipmentMapper.update(equipment);}/*** 根據(jù)id查詢信息* @param id* @return*/@Overridepublic Equipment getById(Integer id) {return equipmentMapper.getById(id);}/*** 修改器材信息* @param equipmentDTO*/@Overridepublic void updateEquipmentInfo(EquipmentDTO equipmentDTO) {Equipment equipment = new Equipment();BeanUtils.copyProperties(equipmentDTO,equipment);equipment.setUpdateUser(BaseContext.getCurrentId());equipment.setUpdateTime(LocalDateTime.now());equipmentMapper.update(equipment);}
}

mapper

sems-server/src/main/java/com/ljc/mapper/EquipmentMapper.java

package com.ljc.mapper;import com.github.pagehelper.Page;
import com.ljc.dto.EquipmentPageQueryDTO;
import com.ljc.entity.Equipment;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;@Mapper
public interface EquipmentMapper {/*** 新增器材* @param equipment*/@Insert("insert into equipment (name, img,status,number,comment, create_time, update_time, create_user, update_user)" +"VALUES " +"(#{name},#{img},#{status},#{number},#{comment},#{createTime},#{updateTime},#{createUser},#{updateUser})")void insert(Equipment equipment);/*** 器材分頁查詢* @param equipmentPageQueryDTO* @return*/Page<Equipment> page(EquipmentPageQueryDTO equipmentPageQueryDTO);/*** 根據(jù)id查找員工信息* @param id* @return*/@Select("select * from equipment where id = #{id}")Equipment getById(Integer id);/*** 修改器材表* @param equipment*/void update(Equipment equipment);
}

sems-server/src/main/resources/mapper/EquipmentMapper.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.ljc.mapper.EquipmentMapper"><!--修改--><update id="update">update equipment<set><if test="name != null">name = #{name},</if><if test="img != null">img = #{img},</if><if test="number != null">number = #{number},</if><if test="comment != null">comment = #{comment},</if><if test="status != null">status = #{status},</if><if test="updateTime != null">update_Time = #{updateTime},</if><if test="updateUser != null">update_User = #{updateUser},</if></set>where id = #{id}</update><!--器材分頁查詢--><select id="page" resultType="com.ljc.entity.Equipment">select * from equipment<where><if test="name != null and name != ''">and name like concat('%',#{name},'%')</if></where>order by create_time desc</select>
</mapper>

OSS云上傳圖片

實(shí)現(xiàn)步驟:

1). 定義OSS相關(guān)配置

sems-server/src/main/resources/application.yml

server:port: 8080spring:profiles:active: devmain:allow-circular-references: truedatasource:druid:driver-class-name: ${ljc.datasource.driver-class-name}url: jdbc:mysql://${ljc.datasource.host}:${ljc.datasource.port}/${ljc.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=trueusername: ${ljc.datasource.username}password: ${ljc.datasource.password}mybatis:#mapper配置文件mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.ljc.entityconfiguration:#開啟駝峰命名map-underscore-to-camel-case: truelogging:level:com:sky:mapper: debugservice: infocontroller: infoljc:jwt:# 設(shè)置jwt簽名加密時(shí)使用的秘鑰admin-secret-key: kussm# 設(shè)置jwt過期時(shí)間admin-ttl: 7200000# 設(shè)置前端傳遞過來的令牌名稱admin-token-name: tokenalioss:bucket-name: ${ljc.alioss.bucket-name}access-key-secret: ${ljc.alioss.access-key-secret}access-key-id: ${ljc.alioss.access-key-id}endpoint: ${ljc.alioss.endpoint}

sems-server/src/main/resources/application-dev.yml

ljc:datasource:driver-class-name: com.mysql.cj.jdbc.Driverhost: localhostport: 3306database: semsusername: rootpassword: 8888alioss:endpoint: oss-cn-hangzhou.aliyuncs.comaccess-key-id: LTAI5tBt5pkXempSC5vPAocuaccess-key-secret: XDMFmdEjA6c8Tl5a4xCg4dF4avoJtMbucket-name: kussmcx

2). 讀取OSS配置

sems-common/src/main/java/com/ljc/properties/AliOssProperties.java

package com.ljc.properties;import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;@Component
@ConfigurationProperties(prefix = "ljc.alioss")
@Data
public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;}

3). 生成OSS工具類對(duì)象

sems-server/src/main/java/com/ljc/config/OssConfiguration.java

package com.ljc.config;import com.ljc.properties.AliOssProperties;
import com.ljc.utils.AliOssUtil;
import com.ljc.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;@Configuration//配置類特有的注釋
@Slf4j
public class OssConfiguration {@Bean@ConditionalOnMissingBeanpublic AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){log.info("開始創(chuàng)建阿里云文件上傳工具類對(duì)象:{}",aliOssProperties);return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());}
}

其中sems-common/src/main/java/com/ljc/utils/AliOssUtil.java

package com.ljc.utils;import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;import java.io.ByteArrayInputStream;@Data
@AllArgsConstructor
@Slf4j
public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上傳** @param bytes* @param objectName* @return*/public String upload(byte[] bytes, String objectName) {// 創(chuàng)建OSSClient實(shí)例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 創(chuàng)建PutObject請(qǐng)求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}//文件訪問路徑規(guī)則 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder = new StringBuilder("https://");stringBuilder.append(bucketName).append(".").append(endpoint).append("/").append(objectName);log.info("文件上傳到:{}", stringBuilder.toString());return stringBuilder.toString();}
}

4). 定義文件上傳接口

在sems-server/src/main/java/com/ljc/controller/admin/CommonController.java

package com.ljc.controller.admin;import com.ljc.utils.AliOssUtil;
import com.ljc.constant.MessageConstant;
import com.ljc.result.Result;
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")
@Slf4j
@Api(tags = "通用接口")
public class CommonController {@Autowiredprivate AliOssUtil aliOssUtil;@ApiOperation("文件上傳")@PostMapping("/upload")public Result<String> upload(MultipartFile file){log.info("文件上傳:{}" + file);try {//objectname使用UUID來生成//1.獲取原始文件名稱String originalFilename = file.getOriginalFilename();//2.截取文件的后綴String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));//獲取文件.之后的部分//3.構(gòu)建新文件名稱String newFilename = UUID.randomUUID().toString() + suffix;String filePash =  aliOssUtil.upload(file.getBytes(), newFilename);//調(diào)用upload的方法return Result.success(filePash);//調(diào)用aliossUtil修改后的數(shù)據(jù),這樣才能將訪問路勁改為oss云的;} catch (IOException e) {log.info(MessageConstant.UPLOAD_FAILED + e);}return Result.error(MessageConstant.UPLOAD_FAILED);//文件上傳失敗的常量;}}

http://m.aloenet.com.cn/news/40514.html

相關(guān)文章:

  • 勁松做網(wǎng)站的公司百度一下首頁設(shè)為主頁
  • wordpress中文 插件網(wǎng)站文章優(yōu)化技巧
  • 做網(wǎng)站北京公司推廣產(chǎn)品的渠道
  • drupal7建站教程怎么創(chuàng)建網(wǎng)站鏈接
  • 重慶微網(wǎng)站建設(shè)寧波網(wǎng)絡(luò)推廣軟件
  • 自適應(yīng)網(wǎng)站設(shè)計(jì)規(guī)范企業(yè)的互聯(lián)網(wǎng)推廣
  • 如何建設(shè)dj網(wǎng)站seo 工具推薦
  • 成都網(wǎng)站制作創(chuàng)新互聯(lián)磁力搜索引擎哪個(gè)好
  • 寬屏企業(yè)網(wǎng)站源碼國(guó)家再就業(yè)免費(fèi)培訓(xùn)網(wǎng)
  • 遵義做網(wǎng)站的公司重慶電子商務(wù)網(wǎng)站seo
  • 家用電腦如何做網(wǎng)站服務(wù)器百度總部公司地址在哪里
  • 做網(wǎng)站可以用什么語言長(zhǎng)春網(wǎng)站優(yōu)化平臺(tái)
  • 購(gòu)物網(wǎng)站建設(shè)公司網(wǎng)絡(luò)營(yíng)銷管理名詞解釋
  • wordpress國(guó)內(nèi)支付上海搜索優(yōu)化推廣
  • html可以做動(dòng)態(tài)網(wǎng)站嗎我是seo關(guān)鍵詞
  • 應(yīng)用商城下載seo服務(wù)是什么
  • 怎么用文件做網(wǎng)站快速優(yōu)化網(wǎng)站排名軟件
  • 淄博桓臺(tái)網(wǎng)站建設(shè)報(bào)價(jià)湘潭關(guān)鍵詞優(yōu)化公司
  • erp系統(tǒng)軟件免費(fèi)版優(yōu)化營(yíng)商環(huán)境心得體會(huì)2023
  • 番禺做網(wǎng)站公司哪家好網(wǎng)店推廣的方式
  • 一般做網(wǎng)站淘寶推廣軟件
  • 德州網(wǎng)站建設(shè)公司seo引擎優(yōu)化方案
  • 什么學(xué)做網(wǎng)站深圳網(wǎng)絡(luò)營(yíng)銷推廣外包
  • php網(wǎng)站搬家軟件成都疫情最新消息
  • 有沒有做美食的網(wǎng)站網(wǎng)絡(luò)營(yíng)銷的認(rèn)識(shí)與理解
  • 阿里云空間部署網(wǎng)站微信推廣加人
  • 設(shè)計(jì)網(wǎng)站推薦素材網(wǎng)站怎么去做推廣
  • 青島網(wǎng)站建設(shè)優(yōu)化長(zhǎng)沙官網(wǎng)seo推廣
  • 游戲推廣群seo網(wǎng)絡(luò)優(yōu)化招聘信息
  • sql數(shù)據(jù)庫(kù)查詢網(wǎng)站模板搜索引擎優(yōu)化的要點(diǎn)