chenchaod 1 vecka sedan
förälder
incheckning
067407707e

+ 2
- 1
build.gradle Visa fil

@@ -92,7 +92,8 @@ subprojects {
implementation 'org.springframework.boot:spring-boot-starter-web'
// implementation 'com.alibaba:druid-spring-boot-starter:1.2.8'
implementation group: 'com.alibaba', name: 'fastjson', version: '2.0.4'
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
implementation 'io.minio:minio:8.4.5'
implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.10.0'
compileOnly 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

+ 2
- 1
gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/AllEnum.java Visa fil

@@ -22,7 +22,8 @@ public enum AllEnum {
// ALL_ENUM(AllEnum.keyValues(),"全部枚举"),

SHIPPINGS_TATUS(ShippingStatus.keyValues(),"邮寄状态"),
PRODUCT_AFTER_TYPE(ProductAfterType.keyValues(), "产品售后收费类型")
PRODUCT_AFTER_TYPE(ProductAfterType.keyValues(), "产品售后收费类型"),
BUCKET_FILEBUS(BucketFileBus.keyValues(), "文件业务类型"),
;
private List<KeyValue> keyValues;
private String value;

+ 37
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/dict/BucketFileBus.java Visa fil

@@ -0,0 +1,37 @@
package cn.com.taiji.core.entity.dict;

import cn.com.taiji.common.model.KeyValue;
import cn.com.taiji.common.model.StringKeyValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.ArrayList;
import java.util.List;

/**
* @Author:ChenChao
* @Date:2025/5/29 9:52
* @Filename:BucketFileBus
* @description: minio上传文件所属业务
*/
@AllArgsConstructor
@Getter
public enum BucketFileBus {

SERVICEHALL("网点","servicehall"),


;
private String value;
private String code;

public static List<KeyValue> keyValues() {
java.util.List<KeyValue> stringKeyValues = new ArrayList<>();
for (BucketFileBus value : values()) {
StringKeyValue stringKeyValue = new StringKeyValue(value.name(), value.value);
stringKeyValues.add(stringKeyValue);
}
return stringKeyValues;
}

}

+ 728
- 0
gly-base-core/src/main/java/cn/com/taiji/core/manager/tools/minio/MinIoContentType.java Visa fil

@@ -0,0 +1,728 @@
package cn.com.taiji.core.manager.tools.minio;

import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/***
* <p>
* MinIo contentType 工具类
* </p>
* @author hou yi
* @date 2022/11/21 15:29
**/
public class MinIoContentType {

/**
* 两种初始化Map常量
* 1.new HashMap
* 2.static 静态代码块
*/
static Map<String, String> contentType = new HashMap<String, String>(200) {
{
put(".jpg", "image/jpeg");
put(".jpeg", "image/jpeg");
}
};

/***
* 通过key获取ContentType值
* @param ext 文件后缀名
* @return 、
*/
public static String getContentType(String ext) {
String type = contentType.get(ext);
return StringUtils.hasLength(type) ? type : "application/octet-stream";
}

static {
contentType.put(".load", "text/html");
contentType.put(".123", "application/vnd.lotus-1-2-3");
contentType.put(".3ds", "image/x-3ds");
contentType.put(".3g2", "video/3gpp");
contentType.put(".3ga", "video/3gpp");
contentType.put(".3gp", "video/3gpp");
contentType.put(".3gpp", "video/3gpp");
contentType.put(".602", "application/x-t602");
contentType.put(".669", "audio/x-mod");
contentType.put(".7z", "application/x-7z-compressed");
contentType.put(".a", "application/x-archive");
contentType.put(".aac", "audio/mp4");
contentType.put(".abw", "application/x-abiword");
contentType.put(".abw.crashed", "application/x-abiword");
contentType.put(".abw.gz", "application/x-abiword");
contentType.put(".ac3", "audio/ac3");
contentType.put(".ace", "application/x-ace");
contentType.put(".adb", "text/x-adasrc");
contentType.put(".ads", "text/x-adasrc");
contentType.put(".afm", "application/x-font-afm");
contentType.put(".ag", "image/x-applix-graphics");
contentType.put(".ai", "application/illustrator");
contentType.put(".aif", "audio/x-aiff");
contentType.put(".aifc", "audio/x-aiff");
contentType.put(".aiff", "audio/x-aiff");
contentType.put(".al", "application/x-perl");
contentType.put(".alz", "application/x-alz");
contentType.put(".amr", "audio/amr");
contentType.put(".ani", "application/x-navi-animation");
contentType.put(".anim[1-9j]", "video/x-anim");
contentType.put(".anx", "application/annodex");
contentType.put(".ape", "audio/x-ape");
contentType.put(".arj", "application/x-arj");
contentType.put(".arw", "image/x-sony-arw");
contentType.put(".as", "application/x-applix-spreadsheet");
contentType.put(".asc", "text/plain");
contentType.put(".asf", "video/x-ms-asf");
contentType.put(".asp", "application/x-asp");
contentType.put(".ass", "text/x-ssa");
contentType.put(".asx", "audio/x-ms-asx");
contentType.put(".atom", "application/atom+xml");
contentType.put(".au", "audio/basic");
contentType.put(".avi", "video/x-msvideo");
contentType.put(".aw", "application/x-applix-word");
contentType.put(".awb", "audio/amr-wb");
contentType.put(".awk", "application/x-awk");
contentType.put(".axa", "audio/annodex");
contentType.put(".axv", "video/annodex");
contentType.put(".bak", "application/x-trash");
contentType.put(".bcpio", "application/x-bcpio");
contentType.put(".bdf", "application/x-font-bdf");
contentType.put(".bib", "text/x-bibtex");
contentType.put(".bin", "application/octet-stream");
contentType.put(".blend", "application/x-blender");
contentType.put(".blender", "application/x-blender");
contentType.put(".bmp", "image/bmp");
contentType.put(".bz", "application/x-bzip");
contentType.put(".bz2", "application/x-bzip");
contentType.put(".c", "text/x-csrc");
contentType.put(".c++", "text/x-c++src");
contentType.put(".cab", "application/vnd.ms-cab-compressed");
contentType.put(".cb7", "application/x-cb7");
contentType.put(".cbr", "application/x-cbr");
contentType.put(".cbt", "application/x-cbt");
contentType.put(".cbz", "application/x-cbz");
contentType.put(".cc", "text/x-c++src");
contentType.put(".cdf", "application/x-netcdf");
contentType.put(".cdr", "application/vnd.corel-draw");
contentType.put(".cer", "application/x-x509-ca-cert");
contentType.put(".cert", "application/x-x509-ca-cert");
contentType.put(".cgm", "image/cgm");
contentType.put(".chm", "application/x-chm");
contentType.put(".chrt", "application/x-kchart");
contentType.put(".class", "application/x-java");
contentType.put(".cls", "text/x-tex");
contentType.put(".cmake", "text/x-cmake");
contentType.put(".cpio", "application/x-cpio");
contentType.put(".cpio.gz", "application/x-cpio-compressed");
contentType.put(".cpp", "text/x-c++src");
contentType.put(".cr2", "image/x-canon-cr2");
contentType.put(".crt", "application/x-x509-ca-cert");
contentType.put(".crw", "image/x-canon-crw");
contentType.put(".cs", "text/x-csharp");
contentType.put(".csh", "application/x-csh");
contentType.put(".css", "text/css");
contentType.put(".cssl", "text/css");
contentType.put(".csv", "text/csv");
contentType.put(".cue", "application/x-cue");
contentType.put(".cur", "image/x-win-bitmap");
contentType.put(".cxx", "text/x-c++src");
contentType.put(".d", "text/x-dsrc");
contentType.put(".dar", "application/x-dar");
contentType.put(".dbf", "application/x-dbf");
contentType.put(".dc", "application/x-dc-rom");
contentType.put(".dcl", "text/x-dcl");
contentType.put(".dcm", "application/dicom");
contentType.put(".dcr", "image/x-kodak-dcr");
contentType.put(".dds", "image/x-dds");
contentType.put(".deb", "application/x-deb");
contentType.put(".der", "application/x-x509-ca-cert");
contentType.put(".desktop", "application/x-desktop");
contentType.put(".dia", "application/x-dia-diagram");
contentType.put(".diff", "text/x-patch");
contentType.put(".divx", "video/x-msvideo");
contentType.put(".djv", "image/vnd.djvu");
contentType.put(".djvu", "image/vnd.djvu");
contentType.put(".dng", "image/x-adobe-dng");
contentType.put(".doc", "application/msword");
contentType.put(".docbook", "application/docbook+xml");
contentType.put(".docm", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
contentType.put(".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
contentType.put(".dot", "text/vnd.graphviz");
contentType.put(".dsl", "text/x-dsl");
contentType.put(".dtd", "application/xml-dtd");
contentType.put(".dtx", "text/x-tex");
contentType.put(".dv", "video/dv");
contentType.put(".dvi", "application/x-dvi");
contentType.put(".dvi.bz2", "application/x-bzdvi");
contentType.put(".dvi.gz", "application/x-gzdvi");
contentType.put(".dwg", "image/vnd.dwg");
contentType.put(".dxf", "image/vnd.dxf");
contentType.put(".e", "text/x-eiffel");
contentType.put(".egon", "application/x-egon");
contentType.put(".eif", "text/x-eiffel");
contentType.put(".el", "text/x-emacs-lisp");
contentType.put(".emf", "image/x-emf");
contentType.put(".emp", "application/vnd.emusic-emusic_package");
contentType.put(".ent", "application/xml-external-parsed-entity");
contentType.put(".eps", "image/x-eps");
contentType.put(".eps.bz2", "image/x-bzeps");
contentType.put(".eps.gz", "image/x-gzeps");
contentType.put(".epsf", "image/x-eps");
contentType.put(".epsf.bz2", "image/x-bzeps");
contentType.put(".epsf.gz", "image/x-gzeps");
contentType.put(".epsi", "image/x-eps");
contentType.put(".epsi.bz2", "image/x-bzeps");
contentType.put(".epsi.gz", "image/x-gzeps");
contentType.put(".epub", "application/epub+zip");
contentType.put(".erl", "text/x-erlang");
contentType.put(".es", "application/ecmascript");
contentType.put(".etheme", "application/x-e-theme");
contentType.put(".etx", "text/x-setext");
contentType.put(".exe", "application/x-ms-dos-executable");
contentType.put(".exr", "image/x-exr");
contentType.put(".ez", "application/andrew-inset");
contentType.put(".f", "text/x-fortran");
contentType.put(".f90", "text/x-fortran");
contentType.put(".f95", "text/x-fortran");
contentType.put(".fb2", "application/x-fictionbook+xml");
contentType.put(".fig", "image/x-xfig");
contentType.put(".fits", "image/fits");
contentType.put(".fl", "application/x-fluid");
contentType.put(".flac", "audio/x-flac");
contentType.put(".flc", "video/x-flic");
contentType.put(".fli", "video/x-flic");
contentType.put(".flv", "video/x-flv");
contentType.put(".flw", "application/x-kivio");
contentType.put(".fo", "text/x-xslfo");
contentType.put(".for", "text/x-fortran");
contentType.put(".g3", "image/fax-g3");
contentType.put(".gb", "application/x-gameboy-rom");
contentType.put(".gba", "application/x-gba-rom");
contentType.put(".gcrd", "text/directory");
contentType.put(".ged", "application/x-gedcom");
contentType.put(".gedcom", "application/x-gedcom");
contentType.put(".gen", "application/x-genesis-rom");
contentType.put(".gf", "application/x-tex-gf");
contentType.put(".gg", "application/x-sms-rom");
contentType.put(".gif", "image/gif");
contentType.put(".glade", "application/x-glade");
contentType.put(".gmo", "application/x-gettext-translation");
contentType.put(".gnc", "application/x-gnucash");
contentType.put(".gnd", "application/gnunet-directory");
contentType.put(".gnucash", "application/x-gnucash");
contentType.put(".gnumeric", "application/x-gnumeric");
contentType.put(".gnuplot", "application/x-gnuplot");
contentType.put(".gp", "application/x-gnuplot");
contentType.put(".gpg", "application/pgp-encrypted");
contentType.put(".gplt", "application/x-gnuplot");
contentType.put(".gra", "application/x-graphite");
contentType.put(".gsf", "application/x-font-type1");
contentType.put(".gsm", "audio/x-gsm");
contentType.put(".gtar", "application/x-tar");
contentType.put(".gv", "text/vnd.graphviz");
contentType.put(".gvp", "text/x-google-video-pointer");
contentType.put(".gz", "application/x-gzip");
contentType.put(".h", "text/x-chdr");
contentType.put(".h++", "text/x-c++hdr");
contentType.put(".hdf", "application/x-hdf");
contentType.put(".hh", "text/x-c++hdr");
contentType.put(".hp", "text/x-c++hdr");
contentType.put(".hpgl", "application/vnd.hp-hpgl");
contentType.put(".hpp", "text/x-c++hdr");
contentType.put(".hs", "text/x-haskell");
contentType.put(".htm", "text/html");
contentType.put(".html", "text/html");
contentType.put(".hwp", "application/x-hwp");
contentType.put(".hwt", "application/x-hwt");
contentType.put(".hxx", "text/x-c++hdr");
contentType.put(".ica", "application/x-ica");
contentType.put(".icb", "image/x-tga");
contentType.put(".icns", "image/x-icns");
contentType.put(".ico", "image/vnd.microsoft.icon");
contentType.put(".ics", "text/calendar");
contentType.put(".idl", "text/x-idl");
contentType.put(".ief", "image/ief");
contentType.put(".iff", "image/x-iff");
contentType.put(".ilbm", "image/x-ilbm");
contentType.put(".ime", "text/x-imelody");
contentType.put(".imy", "text/x-imelody");
contentType.put(".ins", "text/x-tex");
contentType.put(".iptables", "text/x-iptables");
contentType.put(".iso", "application/x-cd-image");
contentType.put(".iso9660", "application/x-cd-image");
contentType.put(".it", "audio/x-it");
contentType.put(".j2k", "image/jp2");
contentType.put(".jad", "text/vnd.sun.j2me.app-descriptor");
contentType.put(".jar", "application/x-java-archive");
contentType.put(".java", "text/x-java");
contentType.put(".jng", "image/x-jng");
contentType.put(".jnlp", "application/x-java-jnlp-file");
contentType.put(".jp2", "image/jp2");
contentType.put(".jpc", "image/jp2");
contentType.put(".jfif", "image/jpeg");
contentType.put(".jpe", "image/jpeg");
contentType.put(".jpeg", "image/jpeg");
contentType.put(".jpf", "image/jp2");
contentType.put(".jpg", "image/jpeg");
contentType.put(".jpr", "application/x-jbuilder-project");
contentType.put(".jpx", "image/jp2");
contentType.put(".js", "application/javascript");
contentType.put(".json", "application/json");
contentType.put(".jsonp", "application/jsonp");
contentType.put(".k25", "image/x-kodak-k25");
contentType.put(".kar", "audio/midi");
contentType.put(".karbon", "application/x-karbon");
contentType.put(".kdc", "image/x-kodak-kdc");
contentType.put(".kdelnk", "application/x-desktop");
contentType.put(".kexi", "application/x-kexiproject-sqlite3");
contentType.put(".kexic", "application/x-kexi-connectiondata");
contentType.put(".kexis", "application/x-kexiproject-shortcut");
contentType.put(".kfo", "application/x-kformula");
contentType.put(".kil", "application/x-killustrator");
contentType.put(".kino", "application/smil");
contentType.put(".kml", "application/vnd.google-earth.kml+xml");
contentType.put(".kmz", "application/vnd.google-earth.kmz");
contentType.put(".kon", "application/x-kontour");
contentType.put(".kpm", "application/x-kpovmodeler");
contentType.put(".kpr", "application/x-kpresenter");
contentType.put(".kpt", "application/x-kpresenter");
contentType.put(".kra", "application/x-krita");
contentType.put(".ksp", "application/x-kspread");
contentType.put(".kud", "application/x-kugar");
contentType.put(".kwd", "application/x-kword");
contentType.put(".kwt", "application/x-kword");
contentType.put(".la", "application/x-shared-library-la");
contentType.put(".latex", "text/x-tex");
contentType.put(".ldif", "text/x-ldif");
contentType.put(".lha", "application/x-lha");
contentType.put(".lhs", "text/x-literate-haskell");
contentType.put(".lhz", "application/x-lhz");
contentType.put(".log", "text/x-log");
contentType.put(".ltx", "text/x-tex");
contentType.put(".lua", "text/x-lua");
contentType.put(".lwo", "image/x-lwo");
contentType.put(".lwob", "image/x-lwo");
contentType.put(".lws", "image/x-lws");
contentType.put(".ly", "text/x-lilypond");
contentType.put(".lyx", "application/x-lyx");
contentType.put(".lz", "application/x-lzip");
contentType.put(".lzh", "application/x-lha");
contentType.put(".lzma", "application/x-lzma");
contentType.put(".lzo", "application/x-lzop");
contentType.put(".m", "text/x-matlab");
contentType.put(".m15", "audio/x-mod");
contentType.put(".m2t", "video/mpeg");
contentType.put(".m3u", "audio/x-mpegurl");
contentType.put(".m3u8", "audio/x-mpegurl");
contentType.put(".m4", "application/x-m4");
contentType.put(".m4a", "audio/mp4");
contentType.put(".m4b", "audio/x-m4b");
contentType.put(".m4v", "video/mp4");
contentType.put(".mab", "application/x-markaby");
contentType.put(".man", "application/x-troff-man");
contentType.put(".mbox", "application/mbox");
contentType.put(".md", "application/x-genesis-rom");
contentType.put(".mdb", "application/vnd.ms-access");
contentType.put(".mdi", "image/vnd.ms-modi");
contentType.put(".me", "text/x-troff-me");
contentType.put(".med", "audio/x-mod");
contentType.put(".metalink", "application/metalink+xml");
contentType.put(".mgp", "application/x-magicpoint");
contentType.put(".mid", "audio/midi");
contentType.put(".midi", "audio/midi");
contentType.put(".mif", "application/x-mif");
contentType.put(".minipsf", "audio/x-minipsf");
contentType.put(".mka", "audio/x-matroska");
contentType.put(".mkv", "video/x-matroska");
contentType.put(".ml", "text/x-ocaml");
contentType.put(".mli", "text/x-ocaml");
contentType.put(".mm", "text/x-troff-mm");
contentType.put(".mmf", "application/x-smaf");
contentType.put(".mml", "text/mathml");
contentType.put(".mng", "video/x-mng");
contentType.put(".mo", "application/x-gettext-translation");
contentType.put(".mo3", "audio/x-mo3");
contentType.put(".moc", "text/x-moc");
contentType.put(".mod", "audio/x-mod");
contentType.put(".mof", "text/x-mof");
contentType.put(".moov", "video/quicktime");
contentType.put(".mov", "video/quicktime");
contentType.put(".movie", "video/x-sgi-movie");
contentType.put(".mp+", "audio/x-musepack");
contentType.put(".mp2", "video/mpeg");
contentType.put(".mp3", "audio/mpeg");
contentType.put(".mp4", "video/mp4");
contentType.put(".mpc", "audio/x-musepack");
contentType.put(".mpe", "video/mpeg");
contentType.put(".mpeg", "video/mpeg");
contentType.put(".mpg", "video/mpeg");
contentType.put(".mpga", "audio/mpeg");
contentType.put(".mpp", "audio/x-musepack");
contentType.put(".mrl", "text/x-mrml");
contentType.put(".mrml", "text/x-mrml");
contentType.put(".mrw", "image/x-minolta-mrw");
contentType.put(".ms", "text/x-troff-ms");
contentType.put(".msi", "application/x-msi");
contentType.put(".msod", "image/x-msod");
contentType.put(".msx", "application/x-msx-rom");
contentType.put(".mtm", "audio/x-mod");
contentType.put(".mup", "text/x-mup");
contentType.put(".mxf", "application/mxf");
contentType.put(".n64", "application/x-n64-rom");
contentType.put(".nb", "application/mathematica");
contentType.put(".nc", "application/x-netcdf");
contentType.put(".nds", "application/x-nintendo-ds-rom");
contentType.put(".nef", "image/x-nikon-nef");
contentType.put(".nes", "application/x-nes-rom");
contentType.put(".nfo", "text/x-nfo");
contentType.put(".not", "text/x-mup");
contentType.put(".nsc", "application/x-netshow-channel");
contentType.put(".nsv", "video/x-nsv");
contentType.put(".o", "application/x-object");
contentType.put(".obj", "application/x-tgif");
contentType.put(".ocl", "text/x-ocl");
contentType.put(".oda", "application/oda");
contentType.put(".odb", "application/vnd.oasis.opendocument.database");
contentType.put(".odc", "application/vnd.oasis.opendocument.chart");
contentType.put(".odf", "application/vnd.oasis.opendocument.formula");
contentType.put(".odg", "application/vnd.oasis.opendocument.graphics");
contentType.put(".odi", "application/vnd.oasis.opendocument.image");
contentType.put(".odm", "application/vnd.oasis.opendocument.text-master");
contentType.put(".odp", "application/vnd.oasis.opendocument.presentation");
contentType.put(".ods", "application/vnd.oasis.opendocument.spreadsheet");
contentType.put(".odt", "application/vnd.oasis.opendocument.text");
contentType.put(".oga", "audio/ogg");
contentType.put(".ogg", "video/x-theora+ogg");
contentType.put(".ogm", "video/x-ogm+ogg");
contentType.put(".ogv", "video/ogg");
contentType.put(".ogx", "application/ogg");
contentType.put(".old", "application/x-trash");
contentType.put(".oleo", "application/x-oleo");
contentType.put(".opml", "text/x-opml+xml");
contentType.put(".ora", "image/openraster");
contentType.put(".orf", "image/x-olympus-orf");
contentType.put(".otc", "application/vnd.oasis.opendocument.chart-template");
contentType.put(".otf", "application/x-font-otf");
contentType.put(".otg", "application/vnd.oasis.opendocument.graphics-template");
contentType.put(".oth", "application/vnd.oasis.opendocument.text-web");
contentType.put(".otp", "application/vnd.oasis.opendocument.presentation-template");
contentType.put(".ots", "application/vnd.oasis.opendocument.spreadsheet-template");
contentType.put(".ott", "application/vnd.oasis.opendocument.text-template");
contentType.put(".owl", "application/rdf+xml");
contentType.put(".oxt", "application/vnd.openofficeorg.extension");
contentType.put(".p", "text/x-pascal");
contentType.put(".p10", "application/pkcs10");
contentType.put(".p12", "application/x-pkcs12");
contentType.put(".p7b", "application/x-pkcs7-certificates");
contentType.put(".p7s", "application/pkcs7-signature");
contentType.put(".pack", "application/x-java-pack200");
contentType.put(".pak", "application/x-pak");
contentType.put(".par2", "application/x-par2");
contentType.put(".pas", "text/x-pascal");
contentType.put(".patch", "text/x-patch");
contentType.put(".pbm", "image/x-portable-bitmap");
contentType.put(".pcd", "image/x-photo-cd");
contentType.put(".pcf", "application/x-cisco-vpn-settings");
contentType.put(".pcf.gz", "application/x-font-pcf");
contentType.put(".pcf.z", "application/x-font-pcf");
contentType.put(".pcl", "application/vnd.hp-pcl");
contentType.put(".pcx", "image/x-pcx");
contentType.put(".pdb", "chemical/x-pdb");
contentType.put(".pdc", "application/x-aportisdoc");
contentType.put(".pdf", "application/pdf");
contentType.put(".pdf.bz2", "application/x-bzpdf");
contentType.put(".pdf.gz", "application/x-gzpdf");
contentType.put(".pef", "image/x-pentax-pef");
contentType.put(".pem", "application/x-x509-ca-cert");
contentType.put(".perl", "application/x-perl");
contentType.put(".pfa", "application/x-font-type1");
contentType.put(".pfb", "application/x-font-type1");
contentType.put(".pfx", "application/x-pkcs12");
contentType.put(".pgm", "image/x-portable-graymap");
contentType.put(".pgn", "application/x-chess-pgn");
contentType.put(".pgp", "application/pgp-encrypted");
contentType.put(".php", "application/x-php");
contentType.put(".php3", "application/x-php");
contentType.put(".php4", "application/x-php");
contentType.put(".pict", "image/x-pict");
contentType.put(".pict1", "image/x-pict");
contentType.put(".pict2", "image/x-pict");
contentType.put(".pickle", "application/python-pickle");
contentType.put(".pk", "application/x-tex-pk");
contentType.put(".pkipath", "application/pkix-pkipath");
contentType.put(".pkr", "application/pgp-keys");
contentType.put(".pl", "application/x-perl");
contentType.put(".pla", "audio/x-iriver-pla");
contentType.put(".pln", "application/x-planperfect");
contentType.put(".pls", "audio/x-scpls");
contentType.put(".pm", "application/x-perl");
contentType.put(".png", "image/png");
contentType.put(".pnm", "image/x-portable-anymap");
contentType.put(".pntg", "image/x-macpaint");
contentType.put(".po", "text/x-gettext-translation");
contentType.put(".por", "application/x-spss-por");
contentType.put(".pot", "text/x-gettext-translation-template");
contentType.put(".ppm", "image/x-portable-pixmap");
contentType.put(".pps", "application/vnd.ms-powerpoint");
contentType.put(".ppt", "application/vnd.ms-powerpoint");
contentType.put(".pptm", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
contentType.put(".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");
contentType.put(".ppz", "application/vnd.ms-powerpoint");
contentType.put(".prc", "application/x-palm-database");
contentType.put(".ps", "application/postscript");
contentType.put(".ps.bz2", "application/x-bzpostscript");
contentType.put(".ps.gz", "application/x-gzpostscript");
contentType.put(".psd", "image/vnd.adobe.photoshop");
contentType.put(".psf", "audio/x-psf");
contentType.put(".psf.gz", "application/x-gz-font-linux-psf");
contentType.put(".psflib", "audio/x-psflib");
contentType.put(".psid", "audio/prs.sid");
contentType.put(".psw", "application/x-pocket-word");
contentType.put(".pw", "application/x-pw");
contentType.put(".py", "text/x-python");
contentType.put(".pyc", "application/x-python-bytecode");
contentType.put(".pyo", "application/x-python-bytecode");
contentType.put(".qif", "image/x-quicktime");
contentType.put(".qt", "video/quicktime");
contentType.put(".qtif", "image/x-quicktime");
contentType.put(".qtl", "application/x-quicktime-media-link");
contentType.put(".qtvr", "video/quicktime");
contentType.put(".ra", "audio/vnd.rn-realaudio");
contentType.put(".raf", "image/x-fuji-raf");
contentType.put(".ram", "application/ram");
contentType.put(".rar", "application/x-rar");
contentType.put(".ras", "image/x-cmu-raster");
contentType.put(".raw", "image/x-panasonic-raw");
contentType.put(".rax", "audio/vnd.rn-realaudio");
contentType.put(".rb", "application/x-ruby");
contentType.put(".rdf", "application/rdf+xml");
contentType.put(".rdfs", "application/rdf+xml");
contentType.put(".reg", "text/x-ms-regedit");
contentType.put(".rej", "application/x-reject");
contentType.put(".rgb", "image/x-rgb");
contentType.put(".rle", "image/rle");
contentType.put(".rm", "application/vnd.rn-realmedia");
contentType.put(".rmj", "application/vnd.rn-realmedia");
contentType.put(".rmm", "application/vnd.rn-realmedia");
contentType.put(".rms", "application/vnd.rn-realmedia");
contentType.put(".rmvb", "application/vnd.rn-realmedia");
contentType.put(".rmx", "application/vnd.rn-realmedia");
contentType.put(".roff", "text/troff");
contentType.put(".rp", "image/vnd.rn-realpix");
contentType.put(".rpm", "application/x-rpm");
contentType.put(".rss", "application/rss+xml");
contentType.put(".rt", "text/vnd.rn-realtext");
contentType.put(".rtf", "application/rtf");
contentType.put(".rtx", "text/richtext");
contentType.put(".rv", "video/vnd.rn-realvideo");
contentType.put(".rvx", "video/vnd.rn-realvideo");
contentType.put(".s3m", "audio/x-s3m");
contentType.put(".sam", "application/x-amipro");
contentType.put(".sami", "application/x-sami");
contentType.put(".sav", "application/x-spss-sav");
contentType.put(".scm", "text/x-scheme");
contentType.put(".sda", "application/vnd.stardivision.draw");
contentType.put(".sdc", "application/vnd.stardivision.calc");
contentType.put(".sdd", "application/vnd.stardivision.impress");
contentType.put(".sdp", "application/sdp");
contentType.put(".sds", "application/vnd.stardivision.chart");
contentType.put(".sdw", "application/vnd.stardivision.writer");
contentType.put(".sgf", "application/x-go-sgf");
contentType.put(".sgi", "image/x-sgi");
contentType.put(".sgl", "application/vnd.stardivision.writer");
contentType.put(".sgm", "text/sgml");
contentType.put(".sgml", "text/sgml");
contentType.put(".sh", "application/x-shellscript");
contentType.put(".shar", "application/x-shar");
contentType.put(".shn", "application/x-shorten");
contentType.put(".siag", "application/x-siag");
contentType.put(".sid", "audio/prs.sid");
contentType.put(".sik", "application/x-trash");
contentType.put(".sis", "application/vnd.symbian.install");
contentType.put(".sisx", "x-epoc/x-sisx-app");
contentType.put(".sit", "application/x-stuffit");
contentType.put(".siv", "application/sieve");
contentType.put(".sk", "image/x-skencil");
contentType.put(".sk1", "image/x-skencil");
contentType.put(".skr", "application/pgp-keys");
contentType.put(".slk", "text/spreadsheet");
contentType.put(".smaf", "application/x-smaf");
contentType.put(".smc", "application/x-snes-rom");
contentType.put(".smd", "application/vnd.stardivision.mail");
contentType.put(".smf", "application/vnd.stardivision.math");
contentType.put(".smi", "application/x-sami");
contentType.put(".smil", "application/smil");
contentType.put(".sml", "application/smil");
contentType.put(".sms", "application/x-sms-rom");
contentType.put(".snd", "audio/basic");
contentType.put(".so", "application/x-sharedlib");
contentType.put(".spc", "application/x-pkcs7-certificates");
contentType.put(".spd", "application/x-font-speedo");
contentType.put(".spec", "text/x-rpm-spec");
contentType.put(".spl", "application/x-shockwave-flash");
contentType.put(".spx", "audio/x-speex");
contentType.put(".sql", "text/x-sql");
contentType.put(".sr2", "image/x-sony-sr2");
contentType.put(".src", "application/x-wais-source");
contentType.put(".srf", "image/x-sony-srf");
contentType.put(".srt", "application/x-subrip");
contentType.put(".ssa", "text/x-ssa");
contentType.put(".stc", "application/vnd.sun.xml.calc.template");
contentType.put(".std", "application/vnd.sun.xml.draw.template");
contentType.put(".sti", "application/vnd.sun.xml.impress.template");
contentType.put(".stm", "audio/x-stm");
contentType.put(".stw", "application/vnd.sun.xml.writer.template");
contentType.put(".sty", "text/x-tex");
contentType.put(".sub", "text/x-subviewer");
contentType.put(".sun", "image/x-sun-raster");
contentType.put(".sv4cpio", "application/x-sv4cpio");
contentType.put(".sv4crc", "application/x-sv4crc");
contentType.put(".svg", "image/svg+xml");
contentType.put(".svgz", "image/svg+xml-compressed");
contentType.put(".swf", "application/x-shockwave-flash");
contentType.put(".sxc", "application/vnd.sun.xml.calc");
contentType.put(".sxd", "application/vnd.sun.xml.draw");
contentType.put(".sxg", "application/vnd.sun.xml.writer.global");
contentType.put(".sxi", "application/vnd.sun.xml.impress");
contentType.put(".sxm", "application/vnd.sun.xml.math");
contentType.put(".sxw", "application/vnd.sun.xml.writer");
contentType.put(".sylk", "text/spreadsheet");
contentType.put(".t", "text/troff");
contentType.put(".t2t", "text/x-txt2tags");
contentType.put(".tar", "application/x-tar");
contentType.put(".tar.bz", "application/x-bzip-compressed-tar");
contentType.put(".tar.bz2", "application/x-bzip-compressed-tar");
contentType.put(".tar.gz", "application/x-compressed-tar");
contentType.put(".tar.lzma", "application/x-lzma-compressed-tar");
contentType.put(".tar.lzo", "application/x-tzo");
contentType.put(".tar.xz", "application/x-xz-compressed-tar");
contentType.put(".tar.z", "application/x-tarz");
contentType.put(".tbz", "application/x-bzip-compressed-tar");
contentType.put(".tbz2", "application/x-bzip-compressed-tar");
contentType.put(".tcl", "text/x-tcl");
contentType.put(".tex", "text/x-tex");
contentType.put(".texi", "text/x-texinfo");
contentType.put(".texinfo", "text/x-texinfo");
contentType.put(".tga", "image/x-tga");
contentType.put(".tgz", "application/x-compressed-tar");
contentType.put(".theme", "application/x-theme");
contentType.put(".themepack", "application/x-windows-themepack");
contentType.put(".tif", "image/tiff");
contentType.put(".tiff", "image/tiff");
contentType.put(".tk", "text/x-tcl");
contentType.put(".tlz", "application/x-lzma-compressed-tar");
contentType.put(".tnef", "application/vnd.ms-tnef");
contentType.put(".tnf", "application/vnd.ms-tnef");
contentType.put(".toc", "application/x-cdrdao-toc");
contentType.put(".torrent", "application/x-bittorrent");
contentType.put(".tpic", "image/x-tga");
contentType.put(".tr", "text/troff");
contentType.put(".ts", "application/x-linguist");
contentType.put(".tsv", "text/tab-separated-values");
contentType.put(".tta", "audio/x-tta");
contentType.put(".ttc", "application/x-font-ttf");
contentType.put(".ttf", "application/x-font-ttf");
contentType.put(".ttx", "application/x-font-ttx");
contentType.put(".txt", "text/plain");
contentType.put(".txz", "application/x-xz-compressed-tar");
contentType.put(".tzo", "application/x-tzo");
contentType.put(".ufraw", "application/x-ufraw");
contentType.put(".ui", "application/x-designer");
contentType.put(".uil", "text/x-uil");
contentType.put(".ult", "audio/x-mod");
contentType.put(".uni", "audio/x-mod");
contentType.put(".uri", "text/x-uri");
contentType.put(".url", "text/x-uri");
contentType.put(".ustar", "application/x-ustar");
contentType.put(".vala", "text/x-vala");
contentType.put(".vapi", "text/x-vala");
contentType.put(".vcf", "text/directory");
contentType.put(".vcs", "text/calendar");
contentType.put(".vct", "text/directory");
contentType.put(".vda", "image/x-tga");
contentType.put(".vhd", "text/x-vhdl");
contentType.put(".vhdl", "text/x-vhdl");
contentType.put(".viv", "video/vivo");
contentType.put(".vivo", "video/vivo");
contentType.put(".vlc", "audio/x-mpegurl");
contentType.put(".vob", "video/mpeg");
contentType.put(".voc", "audio/x-voc");
contentType.put(".vor", "application/vnd.stardivision.writer");
contentType.put(".vst", "image/x-tga");
contentType.put(".wav", "audio/x-wav");
contentType.put(".wax", "audio/x-ms-asx");
contentType.put(".wb1", "application/x-quattropro");
contentType.put(".wb2", "application/x-quattropro");
contentType.put(".wb3", "application/x-quattropro");
contentType.put(".wbmp", "image/vnd.wap.wbmp");
contentType.put(".wcm", "application/vnd.ms-works");
contentType.put(".wdb", "application/vnd.ms-works");
contentType.put(".webm", "video/webm");
contentType.put(".wk1", "application/vnd.lotus-1-2-3");
contentType.put(".wk3", "application/vnd.lotus-1-2-3");
contentType.put(".wk4", "application/vnd.lotus-1-2-3");
contentType.put(".wks", "application/vnd.ms-works");
contentType.put(".wma", "audio/x-ms-wma");
contentType.put(".wmf", "image/x-wmf");
contentType.put(".wml", "text/vnd.wap.wml");
contentType.put(".wmls", "text/vnd.wap.wmlscript");
contentType.put(".wmv", "video/x-ms-wmv");
contentType.put(".wmx", "audio/x-ms-asx");
contentType.put(".wp", "application/vnd.wordperfect");
contentType.put(".wp4", "application/vnd.wordperfect");
contentType.put(".wp5", "application/vnd.wordperfect");
contentType.put(".wp6", "application/vnd.wordperfect");
contentType.put(".wpd", "application/vnd.wordperfect");
contentType.put(".wpg", "application/x-wpg");
contentType.put(".wpl", "application/vnd.ms-wpl");
contentType.put(".wpp", "application/vnd.wordperfect");
contentType.put(".wps", "application/vnd.ms-works");
contentType.put(".wri", "application/x-mswrite");
contentType.put(".wrl", "model/vrml");
contentType.put(".wv", "audio/x-wavpack");
contentType.put(".wvc", "audio/x-wavpack-correction");
contentType.put(".wvp", "audio/x-wavpack");
contentType.put(".wvx", "audio/x-ms-asx");
contentType.put(".x3f", "image/x-sigma-x3f");
contentType.put(".xac", "application/x-gnucash");
contentType.put(".xbel", "application/x-xbel");
contentType.put(".xbl", "application/xml");
contentType.put(".xbm", "image/x-xbitmap");
contentType.put(".xcf", "image/x-xcf");
contentType.put(".xcf.bz2", "image/x-compressed-xcf");
contentType.put(".xcf.gz", "image/x-compressed-xcf");
contentType.put(".xhtml", "application/xhtml+xml");
contentType.put(".xi", "audio/x-xi");
contentType.put(".xla", "application/vnd.ms-excel");
contentType.put(".xlc", "application/vnd.ms-excel");
contentType.put(".xld", "application/vnd.ms-excel");
contentType.put(".xlf", "application/x-xliff");
contentType.put(".xliff", "application/x-xliff");
contentType.put(".xll", "application/vnd.ms-excel");
contentType.put(".xlm", "application/vnd.ms-excel");
contentType.put(".xls", "application/vnd.ms-excel");
contentType.put(".xlsm", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
contentType.put(".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
contentType.put(".xlt", "application/vnd.ms-excel");
contentType.put(".xlw", "application/vnd.ms-excel");
contentType.put(".xm", "audio/x-xm");
contentType.put(".xmf", "audio/x-xmf");
contentType.put(".xmi", "text/x-xmi");
contentType.put(".xml", "application/xml");
contentType.put(".xpm", "image/x-xpixmap");
contentType.put(".xps", "application/vnd.ms-xpsdocument");
contentType.put(".xsl", "application/xml");
contentType.put(".xslfo", "text/x-xslfo");
contentType.put(".xslt", "application/xml");
contentType.put(".xspf", "application/xspf+xml");
contentType.put(".xul", "application/vnd.mozilla.xul+xml");
contentType.put(".xwd", "image/x-xwindowdump");
contentType.put(".xyz", "chemical/x-pdb");
contentType.put(".xz", "application/x-xz");
contentType.put(".w2p", "application/w2p");
contentType.put(".z", "application/x-compress");
contentType.put(".zabw", "application/x-abiword");
contentType.put(".zip", "application/zip");
}
}

+ 72
- 39
gly-base-core/src/main/java/cn/com/taiji/core/manager/tools/minio/MinioUtile.java Visa fil

@@ -2,19 +2,24 @@ package cn.com.taiji.core.manager.tools.minio;

import cn.com.taiji.common.manager.ManagerException;
import cn.com.taiji.common.pub.CommonAbstract;
import cn.com.taiji.core.entity.dict.BucketFileBus;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import cn.hutool.core.util.StrUtil;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import org.springframework.util.StringUtils;
import javax.annotation.PostConstruct;
import java.io.File;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Date;
import java.util.UUID;

/**
* @Author:ChenChao
@@ -25,11 +30,25 @@ import java.net.URLEncoder;
@Component
public class MinioUtile extends CommonAbstract {

@Value("${vmi-minio.minIoUrl}")
private String minioDownloadUrl;
@Value("${vmi-minio.uploadUrl}")
private String fileUploadUrl;
@Value("${vmi-minio.url}")
private String url; //内网访问地址

@Value("${vmi-minio.defaultBucket}")
private String defaultBucket;
@Value("${vmi-minio.accessKey}")
private String accessKey;
@Value("${vmi-minio.secretKey}")
private String secretKey;

private MinioClient minioClient ;

@PostConstruct
public void init() {
this.minioClient = MinioClient.builder()
.endpoint(url)
.credentials(accessKey, secretKey)
.build();
}
public File getFileByUrl(String excelUrl) throws ManagerException {
// minioDownloadUrl = "https://qtzl.etcjz.cn";
String[] split = excelUrl.split("/");
@@ -37,7 +56,7 @@ public class MinioUtile extends CommonAbstract {
String fileName = "";
for (int i = 0; i < split.length; i++) {
if (i == 0) {
urlStr += minioDownloadUrl + "/" + split[i]; //补充下载IP地址和端口号前缀
urlStr += url + "/" + split[i]; //补充下载IP地址和端口号前缀
} else if (i == split.length - 1) { //最后以为获取文件名
urlStr += "/" + URLEncoder.encode(split[i]).replace("+", "%20");
String[] s = split[i].split("_", 0);
@@ -56,40 +75,54 @@ public class MinioUtile extends CommonAbstract {
logger.error("读取失败:" + e.getMessage());
throw new ManagerException("通过url获取下载文件失败!");
}

return tempFile;
}

public String fileUploadHttp(File file) throws ManagerException {
String bucket = "default-bucket";
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
RequestBody requestBody = RequestBody.create(MediaType.parse("application/octet-stream"),
file);
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("bucket", bucket)
.addFormDataPart("file", file.getName(),requestBody)
.build();
Request request = new Request.Builder()
.url(fileUploadUrl)
.method("POST", body)
.build();
String datastr = null;
/**
* 文件上传
* @param file 文件
* @param busCode 业务类型
* @return
* @throws ManagerException
*/
public String fileUploadHttp(File file, BucketFileBus busCode) throws ManagerException {
return fileUploadHttp(file, null, busCode);
}

/**
* 文件上传
* @param file 文件
* @param bucketName 桶名
* @param busCode 业务类型
* @return
* @throws ManagerException
*/
public String fileUploadHttp(File file, String bucketName, BucketFileBus busCode) throws ManagerException {
String fileName = file.getName();
String uuidFileName = getUuidFileName(busCode, fileName);
try {
Response response = client.newCall(request).execute();
datastr = response.body().string();
}catch (IOException e) {
e.printStackTrace();
throw new ManagerException("上传到文件服务出错!");
}
JSONObject jsonObject = JSON.parseObject(datastr);
if (jsonObject.getInteger("code") != 200) {
throw new ManagerException(jsonObject.getString("msg"));
if (StringUtils.isEmpty(bucketName.trim())) {
bucketName = defaultBucket;
}
InputStream inputStream = new FileInputStream(file);
minioClient.putObject(PutObjectArgs.builder()
.bucket(bucketName)
.object(uuidFileName)
.stream(inputStream, inputStream.available(), -1)
.contentType(MinIoContentType.getContentType(fileName.substring(fileName.lastIndexOf("."))))
.build());

} catch (Exception e) {
logger.error("MinIo 上传文件失败...{}", e.getMessage());
throw new ManagerException("MinIo 上传文件失败...请联系管理员");
}
datastr = jsonObject.getString("data");
JSONObject json = JSON.parseObject(datastr);
String url = bucket + "/" + json.getString("ossFilePath");
file.delete();
return url;
return bucketName + "/" + uuidFileName;
}

//生成随机文件名
private static String getUuidFileName(BucketFileBus busCode, String fileName) {
String uuid = UUID.randomUUID().toString().replace("-", "").substring(0, 24);
return DateUtil.format(new Date(), "yyyyMMdd") + StrUtil.SLASH + busCode.getCode() + StrUtil.SLASH + uuid + "_" + fileName;
}
}

+ 17
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueAgreementAddressRepo.java Visa fil

@@ -1,8 +1,25 @@
package cn.com.taiji.core.repo.jpa.issue;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.dict.EnableStatus;
import cn.com.taiji.core.entity.issue.IssueAgreementAddress;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;

public interface IssueAgreementAddressRepo extends AbstractJpaRepo<IssueAgreementAddress, String>{

//状态禁止
@Modifying
@Transactional
@Query("update IssueAgreementAddress set status = 'DISABLE' ,updateTime = ?1 where refId = ?2")
int updateStateByRefId( LocalDateTime updateTime, String refId);

//单个更改状态
@Modifying
@Transactional
@Query("update IssueAgreementAddress set status =?1 ,updateTime = ?2 where id = ?3")
int updateStateById(EnableStatus state, LocalDateTime updateTime, String id);

}

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueAgreementRepo.java Visa fil

@@ -2,7 +2,11 @@ package cn.com.taiji.core.repo.jpa.issue;

import cn.com.taiji.common.repo.jpa.AbstractJpaRepo;
import cn.com.taiji.core.entity.issue.IssueAgreement;
import java.util.List;

public interface IssueAgreementRepo extends AbstractJpaRepo<IssueAgreement, String>{

List<IssueAgreement> findByReleaseId(String releaseId);


}

+ 5
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueProductAttachmentRepo.java Visa fil

@@ -5,4 +5,9 @@ import cn.com.taiji.core.entity.issue.IssueProductAttachment;

public interface IssueProductAttachmentRepo extends AbstractJpaRepo<IssueProductAttachment, String>{


IssueProductAttachment findByReleaseIdAndFileNameAndTypeName(String releaseId, String fileName, String typeName);

IssueProductAttachment findByReleaseIdAndTypeNameAndVersion(String releaseId, String typeName, String version);

}

+ 2
- 0
gly-base-core/src/main/java/cn/com/taiji/core/repo/jpa/issue/IssueProductPromotionRepo.java Visa fil

@@ -5,4 +5,6 @@ import cn.com.taiji.core.entity.issue.IssueProductPromotion;

public interface IssueProductPromotionRepo extends AbstractJpaRepo<IssueProductPromotion, String>{

IssueProductPromotion findByReleaseId(String releaseId);

}

Laddar…
Avbryt
Spara