Compare commits

..

No commits in common. "day-06" and "master" have entirely different histories.

215 changed files with 541 additions and 9801 deletions

View File

@ -52,7 +52,6 @@
<artifactId>muyu-common-security</artifactId> <artifactId>muyu-common-security</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -21,9 +21,9 @@ public class SysPasswordService {
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
private final int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT; private int maxRetryCount = CacheConstants.PASSWORD_MAX_RETRY_COUNT;
private final Long lockTime = CacheConstants.PASSWORD_LOCK_TIME; private Long lockTime = CacheConstants.PASSWORD_LOCK_TIME;
@Autowired @Autowired
private SysRecordLogService recordLogService; private SysRecordLogService recordLogService;

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -21,134 +21,134 @@ public @interface Excel {
/** /**
* excel * excel
*/ */
int sort() default Integer.MAX_VALUE; public int sort () default Integer.MAX_VALUE;
/** /**
* Excel. * Excel.
*/ */
String name() default ""; public String name () default "";
/** /**
* , : yyyy-MM-dd * , : yyyy-MM-dd
*/ */
String dateFormat() default ""; public String dateFormat () default "";
/** /**
* (: 0=,1=,2=) * (: 0=,1=,2=)
*/ */
String readConverterExp() default ""; public String readConverterExp () default "";
/** /**
* *
*/ */
String separator() default ","; public String separator () default ",";
/** /**
* BigDecimal :-1(BigDecimal) * BigDecimal :-1(BigDecimal)
*/ */
int scale() default -1; public int scale () default -1;
/** /**
* BigDecimal :BigDecimal.ROUND_HALF_EVEN * BigDecimal :BigDecimal.ROUND_HALF_EVEN
*/ */
int roundingMode() default BigDecimal.ROUND_HALF_EVEN; public int roundingMode () default BigDecimal.ROUND_HALF_EVEN;
/** /**
* excel * excel
*/ */
double height() default 14; public double height () default 14;
/** /**
* excel * excel
*/ */
double width() default 16; public double width () default 16;
/** /**
* ,% 90 90% * ,% 90 90%
*/ */
String suffix() default ""; public String suffix () default "";
/** /**
* , * ,
*/ */
String defaultValue() default ""; public String defaultValue () default "";
/** /**
* *
*/ */
String prompt() default ""; public String prompt () default "";
/** /**
* . * .
*/ */
String[] combo() default {}; public String[] combo () default {};
/** /**
* ,:list) * ,:list)
*/ */
boolean needMerge() default false; public boolean needMerge () default false;
/** /**
* ,:,. * ,:,.
*/ */
boolean isExport() default true; public boolean isExport () default true;
/** /**
* ,, * ,,
*/ */
String targetAttr() default ""; public String targetAttr () default "";
/** /**
* , * ,
*/ */
boolean isStatistics() default false; public boolean isStatistics () default false;
/** /**
* 0 1 * 0 1
*/ */
ColumnType cellType() default ColumnType.STRING; public ColumnType cellType () default ColumnType.STRING;
/** /**
* *
*/ */
IndexedColors headerBackgroundColor() default IndexedColors.GREY_50_PERCENT; public IndexedColors headerBackgroundColor () default IndexedColors.GREY_50_PERCENT;
/** /**
* *
*/ */
IndexedColors headerColor() default IndexedColors.WHITE; public IndexedColors headerColor () default IndexedColors.WHITE;
/** /**
* *
*/ */
IndexedColors backgroundColor() default IndexedColors.WHITE; public IndexedColors backgroundColor () default IndexedColors.WHITE;
/** /**
* *
*/ */
IndexedColors color() default IndexedColors.BLACK; public IndexedColors color () default IndexedColors.BLACK;
/** /**
* *
*/ */
HorizontalAlignment align() default HorizontalAlignment.CENTER; public HorizontalAlignment align () default HorizontalAlignment.CENTER;
/** /**
* *
*/ */
Class<?> handler() default ExcelHandlerAdapter.class; public Class<?> handler () default ExcelHandlerAdapter.class;
/** /**
* *
*/ */
String[] args() default {}; public String[] args () default {};
/** /**
* 012 * 012
*/ */
Type type () default Type.ALL; Type type () default Type.ALL;
enum Type { public enum Type {
ALL(0), EXPORT(1), IMPORT(2); ALL(0), EXPORT(1), IMPORT(2);
private final int value; private final int value;
@ -161,7 +161,7 @@ public @interface Excel {
} }
} }
enum ColumnType { public enum ColumnType {
NUMERIC(0), STRING(1), IMAGE(2); NUMERIC(0), STRING(1), IMAGE(2);
private final int value; private final int value;

View File

@ -24,7 +24,7 @@ public class CacheConstants {
/** /**
* 10 * 10
*/ */
public final static long PASSWORD_LOCK_TIME = 3; public final static long PASSWORD_LOCK_TIME = 10;
/** /**
* *

View File

@ -43,9 +43,9 @@ public class ScheduleConstants {
*/ */
PAUSE("1"); PAUSE("1");
private final String value; private String value;
Status(String value) { private Status (String value) {
this.value = value; this.value = value;
} }

View File

@ -11,22 +11,22 @@ public class BaseException extends RuntimeException {
/** /**
* *
*/ */
private final String module; private String module;
/** /**
* *
*/ */
private final String code; private String code;
/** /**
* *
*/ */
private final Object[] args; private Object[] args;
/** /**
* *
*/ */
private final String defaultMessage; private String defaultMessage;
public BaseException (String module, String code, Object[] args, String defaultMessage) { public BaseException (String module, String code, Object[] args, String defaultMessage) {
this.module = module; this.module = module;

View File

@ -10,9 +10,9 @@ import java.util.Arrays;
public class InvalidExtensionException extends FileUploadException { public class InvalidExtensionException extends FileUploadException {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final String[] allowedExtension; private String[] allowedExtension;
private final String extension; private String extension;
private final String filename; private String filename;
public InvalidExtensionException (String[] allowedExtension, String extension, String filename) { public InvalidExtensionException (String[] allowedExtension, String extension, String filename) {
super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]"); super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]");

View File

@ -8,7 +8,7 @@ package com.muyu.common.core.exception.job;
public class TaskException extends Exception { public class TaskException extends Exception {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private final Code code; private Code code;
public TaskException (String msg, Code code) { public TaskException (String msg, Code code) {
this(msg, code, null); this(msg, code, null);

View File

@ -27,11 +27,11 @@ public class CharsetKit {
/** /**
* ISO-8859-1 * ISO-8859-1
*/ */
public static final Charset CHARSET_ISO_8859_1 = StandardCharsets.ISO_8859_1; public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1);
/** /**
* UTF-8 * UTF-8
*/ */
public static final Charset CHARSET_UTF_8 = StandardCharsets.UTF_8; public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8);
/** /**
* GBK * GBK
*/ */

View File

@ -24,7 +24,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
private static final String[] parsePatterns = { private static String[] parsePatterns = {
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};

View File

@ -23,7 +23,6 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Collections; import java.util.Collections;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
@ -213,7 +212,11 @@ public class ServletUtils {
* @return * @return
*/ */
public static String urlEncode (String str) { public static String urlEncode (String str) {
return URLEncoder.encode(str, StandardCharsets.UTF_8); try {
return URLEncoder.encode(str, Constants.UTF8);
} catch (UnsupportedEncodingException e) {
return StringUtils.EMPTY;
}
} }
/** /**
@ -224,7 +227,11 @@ public class ServletUtils {
* @return * @return
*/ */
public static String urlDecode (String str) { public static String urlDecode (String str) {
return URLDecoder.decode(str, StandardCharsets.UTF_8); try {
return URLDecoder.decode(str, Constants.UTF8);
} catch (UnsupportedEncodingException e) {
return StringUtils.EMPTY;
}
} }
/** /**

View File

@ -43,7 +43,7 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
* @throws org.springframework.beans.BeansException * @throws org.springframework.beans.BeansException
*/ */
public static <T> T getBean (Class<T> clz) throws BeansException { public static <T> T getBean (Class<T> clz) throws BeansException {
T result = beanFactory.getBean(clz); T result = (T) beanFactory.getBean(clz);
return result; return result;
} }

View File

@ -125,17 +125,17 @@ public class FileUtils {
String filename = fileName; String filename = fileName;
if (agent.contains("MSIE")) { if (agent.contains("MSIE")) {
// IE浏览器 // IE浏览器
filename = URLEncoder.encode(filename, StandardCharsets.UTF_8); filename = URLEncoder.encode(filename, "utf-8");
filename = filename.replace("+", " "); filename = filename.replace("+", " ");
} else if (agent.contains("Firefox")) { } else if (agent.contains("Firefox")) {
// 火狐浏览器 // 火狐浏览器
filename = new String(fileName.getBytes(), "ISO8859-1"); filename = new String(fileName.getBytes(), "ISO8859-1");
} else if (agent.contains("Chrome")) { } else if (agent.contains("Chrome")) {
// google浏览器 // google浏览器
filename = URLEncoder.encode(filename, StandardCharsets.UTF_8); filename = URLEncoder.encode(filename, "utf-8");
} else { } else {
// 其它浏览器 // 其它浏览器
filename = URLEncoder.encode(filename, StandardCharsets.UTF_8); filename = URLEncoder.encode(filename, "utf-8");
} }
return filename; return filename;
} }
@ -197,14 +197,15 @@ public class FileUtils {
public static void setAttachmentResponseHeader (HttpServletResponse response, String realFileName) throws UnsupportedEncodingException { public static void setAttachmentResponseHeader (HttpServletResponse response, String realFileName) throws UnsupportedEncodingException {
String percentEncodedFileName = percentEncode(realFileName); String percentEncodedFileName = percentEncode(realFileName);
String contentDispositionValue = "attachment; filename=" + StringBuilder contentDispositionValue = new StringBuilder();
percentEncodedFileName + contentDispositionValue.append("attachment; filename=")
";" + .append(percentEncodedFileName)
"filename*=" + .append(";")
"utf-8''" + .append("filename*=")
percentEncodedFileName; .append("utf-8''")
.append(percentEncodedFileName);
response.setHeader("Content-disposition", contentDispositionValue); response.setHeader("Content-disposition", contentDispositionValue.toString());
response.setHeader("download-filename", percentEncodedFileName); response.setHeader("download-filename", percentEncodedFileName);
} }
@ -216,7 +217,7 @@ public class FileUtils {
* @return * @return
*/ */
public static String percentEncode (String s) throws UnsupportedEncodingException { public static String percentEncode (String s) throws UnsupportedEncodingException {
String encode = URLEncoder.encode(s, StandardCharsets.UTF_8); String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
return encode.replaceAll("\\+", "%20"); return encode.replaceAll("\\+", "%20");
} }
} }

View File

@ -124,7 +124,7 @@ public class EscapeUtil {
tmp.append(content.substring(lastPos)); tmp.append(content.substring(lastPos));
lastPos = content.length(); lastPos = content.length();
} else { } else {
tmp.append(content, lastPos, pos); tmp.append(content.substring(lastPos, pos));
lastPos = pos; lastPos = pos;
} }
} }

View File

@ -225,7 +225,7 @@ public class IpUtils {
if (ip != null && ip.indexOf(",") > 0) { if (ip != null && ip.indexOf(",") > 0) {
final String[] ips = ip.trim().split(","); final String[] ips = ip.trim().split(",");
for (String subIp : ips) { for (String subIp : ips) {
if (!isUnknown(subIp)) { if (false == isUnknown(subIp)) {
ip = subIp; ip = subIp;
break; break;
} }

View File

@ -121,7 +121,7 @@ public class ExcelUtil<T> {
/** /**
* *
*/ */
private final Map<Integer, Double> statistics = new HashMap<Integer, Double>(); private Map<Integer, Double> statistics = new HashMap<Integer, Double>();
public ExcelUtil (Class<T> clazz) { public ExcelUtil (Class<T> clazz) {
this.clazz = clazz; this.clazz = clazz;
@ -531,7 +531,7 @@ public class ExcelUtil<T> {
rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo; rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo;
row = sheet.createRow(rowNo); row = sheet.createRow(rowNo);
// 得到导出对象. // 得到导出对象.
T vo = list.get(i); T vo = (T) list.get(i);
Collection<?> subList = null; Collection<?> subList = null;
if (isSubList()) { if (isSubList()) {
if (isSubListValue(vo)) { if (isSubListValue(vo)) {
@ -913,7 +913,7 @@ public class ExcelUtil<T> {
public String dataFormatHandlerAdapter (Object value, Excel excel, Cell cell) { public String dataFormatHandlerAdapter (Object value, Excel excel, Cell cell) {
try { try {
Object instance = excel.handler().newInstance(); Object instance = excel.handler().newInstance();
Method formatMethod = excel.handler().getMethod("format", Object.class, String[].class, Cell.class, Workbook.class); Method formatMethod = excel.handler().getMethod("format", new Class[]{Object.class, String[].class, Cell.class, Workbook.class});
value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb); value = formatMethod.invoke(instance, value, excel.args(), cell, this.wb);
} catch (Exception e) { } catch (Exception e) {
log.error("不能格式化数据 " + excel.handler(), e.getMessage()); log.error("不能格式化数据 " + excel.handler(), e.getMessage());
@ -1200,7 +1200,7 @@ public class ExcelUtil<T> {
public Collection<?> getListCellValue (Object obj) { public Collection<?> getListCellValue (Object obj) {
Object value; Object value;
try { try {
value = subMethod.invoke(obj); value = subMethod.invoke(obj, new Object[]{});
} catch (Exception e) { } catch (Exception e) {
return new ArrayList<Object>(); return new ArrayList<Object>();
} }
@ -1221,7 +1221,7 @@ public class ExcelUtil<T> {
getMethodName.append(name.substring(1)); getMethodName.append(name.substring(1));
Method method = null; Method method = null;
try { try {
method = pojoClass.getMethod(getMethodName.toString()); method = pojoClass.getMethod(getMethodName.toString(), new Class[]{});
} catch (Exception e) { } catch (Exception e) {
log.error("获取对象异常{}", e.getMessage()); log.error("获取对象异常{}", e.getMessage());
} }

View File

@ -24,7 +24,7 @@ public class ReflectUtils {
private static final String CGLIB_CLASS_SEPARATOR = "$$"; private static final String CGLIB_CLASS_SEPARATOR = "$$";
private static final Logger logger = LoggerFactory.getLogger(ReflectUtils.class); private static Logger logger = LoggerFactory.getLogger(ReflectUtils.class);
/** /**
* Getter. * Getter.
@ -113,7 +113,7 @@ public class ReflectUtils {
try { try {
return (E) method.invoke(obj, args); return (E) method.invoke(obj, args);
} catch (Exception e) { } catch (Exception e) {
String msg = "method: " + method + ", obj: " + obj + ", args: " + args; String msg = "method: " + method + ", obj: " + obj + ", args: " + args + "";
throw convertReflectionExceptionToUnchecked(msg, e); throw convertReflectionExceptionToUnchecked(msg, e);
} }
} }
@ -162,7 +162,7 @@ public class ReflectUtils {
} }
return (E) method.invoke(obj, args); return (E) method.invoke(obj, args);
} catch (Exception e) { } catch (Exception e) {
String msg = "method: " + method + ", obj: " + obj + ", args: " + args; String msg = "method: " + method + ", obj: " + obj + ", args: " + args + "";
throw convertReflectionExceptionToUnchecked(msg, e); throw convertReflectionExceptionToUnchecked(msg, e);
} }
} }

View File

@ -46,8 +46,8 @@ public final class Base64 {
for (int i = 52, j = 0 ; i <= 61 ; i++, j++) { for (int i = 52, j = 0 ; i <= 61 ; i++, j++) {
lookUpBase64Alphabet[i] = (char) ('0' + j); lookUpBase64Alphabet[i] = (char) ('0' + j);
} }
lookUpBase64Alphabet[62] = '+'; lookUpBase64Alphabet[62] = (char) '+';
lookUpBase64Alphabet[63] = '/'; lookUpBase64Alphabet[63] = (char) '/';
} }
private static boolean isWhiteSpace (char octect) { private static boolean isWhiteSpace (char octect) {
@ -82,7 +82,7 @@ public final class Base64 {
int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP; int fewerThan24bits = lengthDataBits % TWENTYFOURBITGROUP;
int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP; int numberTriplets = lengthDataBits / TWENTYFOURBITGROUP;
int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets; int numberQuartet = fewerThan24bits != 0 ? numberTriplets + 1 : numberTriplets;
char[] encodedData = null; char encodedData[] = null;
encodedData = new char[numberQuartet * 4]; encodedData = new char[numberQuartet * 4];
@ -161,7 +161,7 @@ public final class Base64 {
return new byte[0]; return new byte[0];
} }
byte[] decodedData = null; byte decodedData[] = null;
byte b1 = 0, b2 = 0, b3 = 0, b4 = 0; byte b1 = 0, b2 = 0, b3 = 0, b4 = 0;
char d1 = 0, d2 = 0, d3 = 0, d4 = 0; char d1 = 0, d2 = 0, d3 = 0, d4 = 0;

View File

@ -17,9 +17,9 @@ public class Seq {
// 机器标识 // 机器标识
private static final String machineCode = "A"; private static final String machineCode = "A";
// 通用接口序列数 // 通用接口序列数
private static final AtomicInteger commSeq = new AtomicInteger(1); private static AtomicInteger commSeq = new AtomicInteger(1);
// 上传接口序列数 // 上传接口序列数
private static final AtomicInteger uploadSeq = new AtomicInteger(1); private static AtomicInteger uploadSeq = new AtomicInteger(1);
/** /**
* *

View File

@ -353,22 +353,22 @@ public final class UUID implements java.io.Serializable, Comparable<UUID> {
final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36); final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36);
// time_low // time_low
builder.append(digits(mostSigBits >> 32, 8)); builder.append(digits(mostSigBits >> 32, 8));
if (!isSimple) { if (false == isSimple) {
builder.append('-'); builder.append('-');
} }
// time_mid // time_mid
builder.append(digits(mostSigBits >> 16, 4)); builder.append(digits(mostSigBits >> 16, 4));
if (!isSimple) { if (false == isSimple) {
builder.append('-'); builder.append('-');
} }
// time_high_and_version // time_high_and_version
builder.append(digits(mostSigBits, 4)); builder.append(digits(mostSigBits, 4));
if (!isSimple) { if (false == isSimple) {
builder.append('-'); builder.append('-');
} }
// variant_and_sequence // variant_and_sequence
builder.append(digits(leastSigBits >> 48, 4)); builder.append(digits(leastSigBits >> 48, 4));
if (!isSimple) { if (false == isSimple) {
builder.append('-'); builder.append('-');
} }
// node // node

View File

@ -14,15 +14,15 @@ public @interface DataScope {
/** /**
* *
*/ */
String deptAlias() default ""; public String deptAlias () default "";
/** /**
* *
*/ */
String userAlias() default ""; public String userAlias () default "";
/** /**
* @RequiresPermissions * @RequiresPermissions
*/ */
String permission() default ""; public String permission () default "";
} }

View File

@ -109,7 +109,8 @@ public class DataScopeAspect {
if (StringUtils.isNotBlank(sqlString.toString())) { if (StringUtils.isNotBlank(sqlString.toString())) {
Object params = joinPoint.getArgs()[0]; Object params = joinPoint.getArgs()[0];
if (StringUtils.isNotNull(params) && params instanceof BaseEntity baseEntity) { if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
} }
} }
@ -140,7 +141,8 @@ public class DataScopeAspect {
*/ */
private void clearDataScope (final JoinPoint joinPoint) { private void clearDataScope (final JoinPoint joinPoint) {
Object params = joinPoint.getArgs()[0]; Object params = joinPoint.getArgs()[0];
if (StringUtils.isNotNull(params) && params instanceof BaseEntity baseEntity) { if (StringUtils.isNotNull(params) && params instanceof BaseEntity) {
BaseEntity baseEntity = (BaseEntity) params;
baseEntity.getParams().put(DATA_SCOPE, ""); baseEntity.getParams().put(DATA_SCOPE, "");
} }
} }

View File

@ -17,30 +17,30 @@ public @interface Log {
/** /**
* *
*/ */
String title() default ""; public String title () default "";
/** /**
* *
*/ */
BusinessType businessType() default BusinessType.OTHER; public BusinessType businessType () default BusinessType.OTHER;
/** /**
* *
*/ */
OperatorType operatorType() default OperatorType.MANAGE; public OperatorType operatorType () default OperatorType.MANAGE;
/** /**
* *
*/ */
boolean isSaveRequestData() default true; public boolean isSaveRequestData () default true;
/** /**
* *
*/ */
boolean isSaveResponseData() default true; public boolean isSaveResponseData () default true;
/** /**
* *
*/ */
String[] excludeParamNames() default {}; public String[] excludeParamNames () default {};
} }

View File

@ -169,12 +169,12 @@ public class LogAspect {
*/ */
private String argsArrayToString (Object[] paramsArray, String[] excludeParamNames) { private String argsArrayToString (Object[] paramsArray, String[] excludeParamNames) {
String params = ""; String params = "";
if (paramsArray != null) { if (paramsArray != null && paramsArray.length > 0) {
for (Object o : paramsArray) { for (Object o : paramsArray) {
if (StringUtils.isNotNull(o) && !isFilterObject(o)) { if (StringUtils.isNotNull(o) && !isFilterObject(o)) {
try { try {
String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames)); String jsonObj = JSON.toJSONString(o, excludePropertyPreFilter(excludeParamNames));
params += jsonObj + " "; params += jsonObj.toString() + " ";
} catch (Exception e) { } catch (Exception e) {
} }
} }

View File

@ -9,7 +9,6 @@ import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException; import org.springframework.data.redis.serializer.SerializationException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/** /**
* Redis使FastJson * Redis使FastJson
@ -17,11 +16,11 @@ import java.nio.charset.StandardCharsets;
* @author muyu * @author muyu
*/ */
public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> { public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T> {
public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8; public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR); static final Filter AUTO_TYPE_FILTER = JSONReader.autoTypeFilter(Constants.JSON_WHITELIST_STR);
private final Class<T> clazz; private Class<T> clazz;
public FastJson2JsonRedisSerializer (Class<T> clazz) { public FastJson2JsonRedisSerializer (Class<T> clazz) {
super(); super();

View File

@ -101,129 +101,129 @@ public class SysRole extends BaseEntity {
private Set<String> permissions; private Set<String> permissions;
public SysRole(Long roleId) { public SysRole (Long roleId) {
this.roleId = roleId; this.roleId = roleId;
} }
public static boolean isAdmin(Long roleId) { public static boolean isAdmin (Long roleId) {
return roleId != null && 1L == roleId; return roleId != null && 1L == roleId;
} }
public Long getRoleId() { public Long getRoleId () {
return roleId; return roleId;
} }
public void setRoleId(Long roleId) { public void setRoleId (Long roleId) {
this.roleId = roleId; this.roleId = roleId;
} }
public boolean isAdmin() { public boolean isAdmin () {
return isAdmin(this.roleId); return isAdmin(this.roleId);
} }
@NotBlank(message = "角色名称不能为空") @NotBlank(message = "角色名称不能为空")
@Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符") @Size(min = 0, max = 30, message = "角色名称长度不能超过30个字符")
public String getRoleName() { public String getRoleName () {
return roleName; return roleName;
} }
public void setRoleName(String roleName) { public void setRoleName (String roleName) {
this.roleName = roleName; this.roleName = roleName;
} }
@NotBlank(message = "权限字符不能为空") @NotBlank(message = "权限字符不能为空")
@Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符") @Size(min = 0, max = 100, message = "权限字符长度不能超过100个字符")
public String getRoleKey() { public String getRoleKey () {
return roleKey; return roleKey;
} }
public void setRoleKey(String roleKey) { public void setRoleKey (String roleKey) {
this.roleKey = roleKey; this.roleKey = roleKey;
} }
@NotNull(message = "显示顺序不能为空") @NotNull(message = "显示顺序不能为空")
public Integer getRoleSort() { public Integer getRoleSort () {
return roleSort; return roleSort;
} }
public void setRoleSort(Integer roleSort) { public void setRoleSort (Integer roleSort) {
this.roleSort = roleSort; this.roleSort = roleSort;
} }
public String getDataScope() { public String getDataScope () {
return dataScope; return dataScope;
} }
public void setDataScope(String dataScope) { public void setDataScope (String dataScope) {
this.dataScope = dataScope; this.dataScope = dataScope;
} }
public boolean isMenuCheckStrictly() { public boolean isMenuCheckStrictly () {
return menuCheckStrictly; return menuCheckStrictly;
} }
public void setMenuCheckStrictly(boolean menuCheckStrictly) { public void setMenuCheckStrictly (boolean menuCheckStrictly) {
this.menuCheckStrictly = menuCheckStrictly; this.menuCheckStrictly = menuCheckStrictly;
} }
public boolean isDeptCheckStrictly() { public boolean isDeptCheckStrictly () {
return deptCheckStrictly; return deptCheckStrictly;
} }
public void setDeptCheckStrictly(boolean deptCheckStrictly) { public void setDeptCheckStrictly (boolean deptCheckStrictly) {
this.deptCheckStrictly = deptCheckStrictly; this.deptCheckStrictly = deptCheckStrictly;
} }
public String getStatus() { public String getStatus () {
return status; return status;
} }
public void setStatus(String status) { public void setStatus (String status) {
this.status = status; this.status = status;
} }
public String getDelFlag() { public String getDelFlag () {
return delFlag; return delFlag;
} }
public void setDelFlag(String delFlag) { public void setDelFlag (String delFlag) {
this.delFlag = delFlag; this.delFlag = delFlag;
} }
public boolean isFlag() { public boolean isFlag () {
return flag; return flag;
} }
public void setFlag(boolean flag) { public void setFlag (boolean flag) {
this.flag = flag; this.flag = flag;
} }
public Long[] getMenuIds() { public Long[] getMenuIds () {
return menuIds; return menuIds;
} }
public void setMenuIds(Long[] menuIds) { public void setMenuIds (Long[] menuIds) {
this.menuIds = menuIds; this.menuIds = menuIds;
} }
public Long[] getDeptIds() { public Long[] getDeptIds () {
return deptIds; return deptIds;
} }
public void setDeptIds(Long[] deptIds) { public void setDeptIds (Long[] deptIds) {
this.deptIds = deptIds; this.deptIds = deptIds;
} }
public Set<String> getPermissions() { public Set<String> getPermissions () {
return permissions; return permissions;
} }
public void setPermissions(Set<String> permissions) { public void setPermissions (Set<String> permissions) {
this.permissions = permissions; this.permissions = permissions;
} }
@Override @Override
public String toString() { public String toString () {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("roleId", getRoleId()) .append("roleId", getRoleId())
.append("roleName", getRoleName()) .append("roleName", getRoleName())

View File

@ -137,172 +137,172 @@ public class SysUser extends BaseEntity {
*/ */
private Long roleId; private Long roleId;
public SysUser(Long userId) { public SysUser (Long userId) {
this.userId = userId; this.userId = userId;
} }
public static boolean isAdmin(Long userId) { public static boolean isAdmin (Long userId) {
return userId != null && 1L == userId; return userId != null && 1L == userId;
} }
public Long getUserId() { public Long getUserId () {
return userId; return userId;
} }
public void setUserId(Long userId) { public void setUserId (Long userId) {
this.userId = userId; this.userId = userId;
} }
public boolean isAdmin() { public boolean isAdmin () {
return isAdmin(this.userId); return isAdmin(this.userId);
} }
public Long getDeptId() { public Long getDeptId () {
return deptId; return deptId;
} }
public void setDeptId(Long deptId) { public void setDeptId (Long deptId) {
this.deptId = deptId; this.deptId = deptId;
} }
@Xss(message = "用户昵称不能包含脚本字符") @Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符") @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
public String getNickName() { public String getNickName () {
return nickName; return nickName;
} }
public void setNickName(String nickName) { public void setNickName (String nickName) {
this.nickName = nickName; this.nickName = nickName;
} }
@Xss(message = "用户账号不能包含脚本字符") @Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空") @NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符") @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
public String getUserName() { public String getUserName () {
return userName; return userName;
} }
public void setUserName(String userName) { public void setUserName (String userName) {
this.userName = userName; this.userName = userName;
} }
@Email(message = "邮箱格式不正确") @Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符") @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
public String getEmail() { public String getEmail () {
return email; return email;
} }
public void setEmail(String email) { public void setEmail (String email) {
this.email = email; this.email = email;
} }
@Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符") @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
public String getPhonenumber() { public String getPhonenumber () {
return phonenumber; return phonenumber;
} }
public void setPhonenumber(String phonenumber) { public void setPhonenumber (String phonenumber) {
this.phonenumber = phonenumber; this.phonenumber = phonenumber;
} }
public String getSex() { public String getSex () {
return sex; return sex;
} }
public void setSex(String sex) { public void setSex (String sex) {
this.sex = sex; this.sex = sex;
} }
public String getAvatar() { public String getAvatar () {
return avatar; return avatar;
} }
public void setAvatar(String avatar) { public void setAvatar (String avatar) {
this.avatar = avatar; this.avatar = avatar;
} }
public String getPassword() { public String getPassword () {
return password; return password;
} }
public void setPassword(String password) { public void setPassword (String password) {
this.password = password; this.password = password;
} }
public String getStatus() { public String getStatus () {
return status; return status;
} }
public void setStatus(String status) { public void setStatus (String status) {
this.status = status; this.status = status;
} }
public String getDelFlag() { public String getDelFlag () {
return delFlag; return delFlag;
} }
public void setDelFlag(String delFlag) { public void setDelFlag (String delFlag) {
this.delFlag = delFlag; this.delFlag = delFlag;
} }
public String getLoginIp() { public String getLoginIp () {
return loginIp; return loginIp;
} }
public void setLoginIp(String loginIp) { public void setLoginIp (String loginIp) {
this.loginIp = loginIp; this.loginIp = loginIp;
} }
public Date getLoginDate() { public Date getLoginDate () {
return loginDate; return loginDate;
} }
public void setLoginDate(Date loginDate) { public void setLoginDate (Date loginDate) {
this.loginDate = loginDate; this.loginDate = loginDate;
} }
public SysDept getDept() { public SysDept getDept () {
return dept; return dept;
} }
public void setDept(SysDept dept) { public void setDept (SysDept dept) {
this.dept = dept; this.dept = dept;
} }
public List<SysRole> getRoles() { public List<SysRole> getRoles () {
return roles; return roles;
} }
public void setRoles(List<SysRole> roles) { public void setRoles (List<SysRole> roles) {
this.roles = roles; this.roles = roles;
} }
public Long[] getRoleIds() { public Long[] getRoleIds () {
return roleIds; return roleIds;
} }
public void setRoleIds(Long[] roleIds) { public void setRoleIds (Long[] roleIds) {
this.roleIds = roleIds; this.roleIds = roleIds;
} }
public Long[] getPostIds() { public Long[] getPostIds () {
return postIds; return postIds;
} }
public void setPostIds(Long[] postIds) { public void setPostIds (Long[] postIds) {
this.postIds = postIds; this.postIds = postIds;
} }
public Long getRoleId() { public Long getRoleId () {
return roleId; return roleId;
} }
public void setRoleId(Long roleId) { public void setRoleId (Long roleId) {
this.roleId = roleId; this.roleId = roleId;
} }
@Override @Override
public String toString() { public String toString () {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("userId", getUserId()) .append("userId", getUserId())
.append("deptId", getDeptId()) .append("deptId", getDeptId())

View File

@ -25,5 +25,5 @@ public interface RemoteFileService {
* @return * @return
*/ */
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<SysFile> upload(@RequestPart(value = "file") MultipartFile file); public Result<SysFile> upload (@RequestPart(value = "file") MultipartFile file);
} }

View File

@ -27,7 +27,7 @@ public interface RemoteLogService {
* @return * @return
*/ */
@PostMapping("/operlog") @PostMapping("/operlog")
Result<Boolean> saveLog(@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception; public Result<Boolean> saveLog (@RequestBody SysOperLog sysOperLog, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) throws Exception;
/** /**
* 访 * 访
@ -38,5 +38,5 @@ public interface RemoteLogService {
* @return * @return
*/ */
@PostMapping("/logininfor") @PostMapping("/logininfor")
Result<Boolean> saveLogininfor(@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public Result<Boolean> saveLogininfor (@RequestBody SysLogininfor sysLogininfor, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
} }

View File

@ -25,7 +25,7 @@ public interface RemoteUserService {
* @return * @return
*/ */
@GetMapping("/user/info/{username}") @GetMapping("/user/info/{username}")
Result<LoginUser> getUserInfo(@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public Result<LoginUser> getUserInfo (@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/** /**
* *
@ -36,5 +36,5 @@ public interface RemoteUserService {
* @return * @return
*/ */
@PostMapping("/user/register") @PostMapping("/user/register")
Result<Boolean> registerUserInfo(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); public Result<Boolean> registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
} }

View File

@ -88,17 +88,6 @@
<version>${swagger.fox.version}</version> <version>${swagger.fox.version}</version>
</dependency> </dependency>
<!-- <dependency>-->
<!-- <groupId>com.alibaba.csp</groupId>-->
<!-- <artifactId>sentinel-core</artifactId>-->
<!-- <version>1.8.7</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-transport-simple-http</artifactId>
<version>1.8.7</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -36,7 +36,7 @@ public class BlackListUrlFilter extends AbstractGatewayFilterFactory<BlackListUr
public static class Config { public static class Config {
private List<String> blacklistUrl; private List<String> blacklistUrl;
private final List<Pattern> blacklistUrlPattern = new ArrayList<>(); private List<Pattern> blacklistUrlPattern = new ArrayList<>();
public boolean matchBlacklist (String url) { public boolean matchBlacklist (String url) {
return !blacklistUrlPattern.isEmpty() && blacklistUrlPattern.stream().anyMatch(p -> p.matcher(url).find()); return !blacklistUrlPattern.isEmpty() && blacklistUrlPattern.stream().anyMatch(p -> p.matcher(url).find());

View File

@ -34,7 +34,8 @@ public class GatewayExceptionHandler implements ErrorWebExceptionHandler {
if (ex instanceof NotFoundException) { if (ex instanceof NotFoundException) {
msg = "服务未找到"; msg = "服务未找到";
} else if (ex instanceof ResponseStatusException responseStatusException) { } else if (ex instanceof ResponseStatusException) {
ResponseStatusException responseStatusException = (ResponseStatusException) ex;
msg = responseStatusException.getMessage(); msg = responseStatusException.getMessage();
} else { } else {
msg = "内部服务器错误"; msg = "内部服务器错误";

View File

@ -14,10 +14,10 @@ public interface ValidateCodeService {
/** /**
* *
*/ */
Result createCaptcha() throws IOException, CaptchaException; public Result createCaptcha () throws IOException, CaptchaException;
/** /**
* *
*/ */
void checkCaptcha(String key, String value) throws CaptchaException; public void checkCaptcha (String key, String value) throws CaptchaException;
} }

View File

@ -1,6 +1,6 @@
# Tomcat # Tomcat
server: server:
port: 18080 port: 8080
# Spring # Spring
spring: spring:
@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
@ -28,12 +28,12 @@ spring:
eager: true eager: true
transport: transport:
# 控制台地址 # 控制台地址
dashboard: 127.0.0.1:8858 dashboard: 127.0.0.1:8718
# nacos配置持久化 # nacos配置持久化
datasource: datasource:
ds1: ds1:
nacos: nacos:
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
dataId: sentinel-muyu-gateway dataId: sentinel-muyu-gateway
groupId: DEFAULT_GROUP groupId: DEFAULT_GROUP
data-type: json data-type: json

View File

@ -67,18 +67,6 @@
<artifactId>muyu-common-system</artifactId> <artifactId>muyu-common-system</artifactId>
</dependency> </dependency>
<!--aliyun oos文件上传封装-->
<!-- 阿里云oss依赖 -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-security</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -1,23 +0,0 @@
package com.muyu.file.config;
public class OSSCloudConfig {
static final String ENDPOINT_INTER = "oss-cn-guangzhou-internal.aliyuncs.com"; //ECS 的经典网络访问(内网)
public static final String ENDPOINT = "oss-cn-guangzhou.aliyuncs.com"; //外网访问
public static final String ACCESSKEYID = "your accesskeyId";
public static final String ACCESSKEYSECRET = "your accesskeysecret";
public static final String BUCKETNAME = "your bucket name";
public String objectPrefixName = "static/images/"; //基础文件夹
public String filePathPrefix = "https://" + BUCKETNAME + "." + ENDPOINT + "/" + objectPrefixName; //带https的完整访问前缀
public String getObjectPrefixName() {
return objectPrefixName;
}
public void setObjectPrefixName(String objectPrefixName) {
this.objectPrefixName = objectPrefixName;
}
public String getFilePathPrefix() {
return filePathPrefix;
}
public void setFilePathPrefix(String filePathPrefix) {
this.filePathPrefix = filePathPrefix;
}
}

View File

@ -2,10 +2,8 @@ package com.muyu.file.controller;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.file.FileUtils; import com.muyu.common.core.utils.file.FileUtils;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.file.service.ISysFileService; import com.muyu.file.service.ISysFileService;
import com.muyu.common.system.domain.SysFile; import com.muyu.common.system.domain.SysFile;
import com.muyu.file.utils.OSSCloudClient;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -13,10 +11,6 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/** /**
* *
* *
@ -46,28 +40,4 @@ public class SysFileController {
return Result.error(e.getMessage()); return Result.error(e.getMessage());
} }
} }
@PostMapping("imagesUpload")
public Result<SysFile> imagesUpload(MultipartFile file) {
OSSCloudClient client = OSSCloudClient.getInstance();
SysFile sysFile = new SysFile();
try {
String filePath = client.uploadFile(file.getName(), SecurityUtils.getUsername(), "D:\\muyu\\images");
System.out.println(filePath);
System.out.println(client.fileExist(filePath));
String format = new SimpleDateFormat("/yyyyMMdd/").format(new Date());
List<String> list = client.listFiles(format);
sysFile.setName(file.getName());
sysFile.setUrl(filePath);
for(String s : list) {
System.out.println(s);
client.deleteFile(s);
}
client.deleteFile("https://zhaohy-bucket.oss-cn-guangzhou.aliyuncs.com/static/images/1/"+format);
}catch (Exception e){
log.warn("文件上传异常{【】}",e.getMessage());
return Result.error(e.getMessage());
}
return Result.success(sysFile);
}
} }

View File

@ -17,5 +17,5 @@ public interface ISysFileService {
* *
* @throws Exception * @throws Exception
*/ */
String uploadFile(MultipartFile file) throws Exception; public String uploadFile (MultipartFile file) throws Exception;
} }

View File

@ -1,43 +0,0 @@
package com.muyu.file.utils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
*
*
*
*
*
* @author Eric
* @create 2022-04-24 23:30
*/
@Component
public class ConstantPropertiesUtil implements InitializingBean { //当项目一启动,就会执行该接口的重写方法
@Value("${aliyun.oss.file.endpoint}")
private String endpoint;//地域节点
@Value("${aliyun.oss.file.keyid}")
private String keyId;//id
@Value("${aliyun.oss.file.keysecret}")
private String keySecret;//秘钥
@Value("${aliyun.oss.file.bucketname}")
private String bucketName;//项目名称
public static String END_POINT;
public static String ACCESS_KEY_ID;
public static String ACCESS_KEY_SECRET;
public static String BUCKET_NAME;
@Override
public void afterPropertiesSet() throws Exception {
END_POINT = endpoint;
ACCESS_KEY_ID = keyId;
ACCESS_KEY_SECRET = keySecret;
BUCKET_NAME = bucketName;
}
}

View File

@ -1,193 +0,0 @@
package com.muyu.file.utils;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.common.comm.Protocol;
import com.aliyun.oss.model.OSSObjectSummary;
import com.aliyun.oss.model.ObjectListing;
import com.muyu.file.config.OSSCloudConfig;
public class OSSCloudClient {
private OSSCloudClient() {
super();
}
private static class SingletonContainer{
private static final OSSCloudClient instance = new OSSCloudClient();
}
public static OSSCloudClient getInstance() {
return SingletonContainer.instance;
}
private OSS createOSS() {
ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
// 设置连接OSS所使用的协议HTTP或HTTPS默认为HTTP。
conf.setProtocol(Protocol.HTTPS);
// 创建OSSClient实例。
return new OSSClientBuilder().build(OSSCloudConfig.ENDPOINT, OSSCloudConfig.ACCESSKEYID, OSSCloudConfig.ACCESSKEYSECRET);
}
private Map<String, String> getObjectName(String fileName, String userId) {
Map<String, String> nameMap = new HashMap<>();
OSSCloudConfig config = new OSSCloudConfig();
String format = new SimpleDateFormat("yyyy/MM/dd").format(new Date());
String name = userId + "/" + format + "/" + UUID.randomUUID().toString().replace("-", "") + "_" + fileName;
nameMap.put("objectName", config.getObjectPrefixName() + name);
nameMap.put("filePath", config.getFilePathPrefix() + name);
return nameMap;
}
private String getObjectName(String filePath) {
OSSCloudConfig config = new OSSCloudConfig();
return config.getObjectPrefixName() + filePath.replace(config.getFilePathPrefix(), "");
}
/**
*
* @param fileName
* @param userId id
* @param bytes byte
* @throws Exception
*/
public String uploadFile(String fileName, String userId, byte[] bytes) throws Exception {
Map<String, String> nameMap = this.getObjectName(fileName, userId);
String objectName = nameMap.get("objectName");
OSS ossClient = createOSS();
try {
ossClient.putObject(OSSCloudConfig.BUCKETNAME, objectName, new ByteArrayInputStream(bytes));
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return nameMap.get("filePath");
}
/**
*
* @param fileName
* @param userId id
* @param localPath
* @throws Exception
*/
public String uploadFile(String fileName, String userId, String localPath) throws Exception {
Map<String, String> nameMap = this.getObjectName(fileName, userId);
String objectName = nameMap.get("objectName");
OSS ossClient = createOSS();
try {
ossClient.putObject(OSSCloudConfig.BUCKETNAME, objectName, new FileInputStream(new File(localPath)));
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return nameMap.get("filePath");
}
/**
*
* @param fileName
* @param userId id
* @throws Exception
*/
public String uploadFile(String fileName, String userId, InputStream is) throws Exception {
Map<String, String> nameMap = this.getObjectName(fileName, userId);
String objectName = nameMap.get("objectName");
OSS ossClient = createOSS();
try {
ossClient.putObject(OSSCloudConfig.BUCKETNAME, objectName, is);
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
return nameMap.get("filePath");
}
/**
*
* @param filePath 访(https)
* @return
*/
public Boolean fileExist(String filePath) {
String objectName = this.getObjectName(filePath);
OSS ossClient = createOSS();
try {
return ossClient.doesObjectExist(OSSCloudConfig.BUCKETNAME, objectName);
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
/**
*
* @param dirPath 1/20220415
* @return
*/
public List<String> listFiles(String dirPath) {
OSSCloudConfig config = new OSSCloudConfig();
String objectDir = config.getObjectPrefixName() + dirPath;
// String objectName = this.getObjectName(filePath);
OSS ossClient = createOSS();
try {
ObjectListing objectListing = ossClient.listObjects(OSSCloudConfig.BUCKETNAME, objectDir);
List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
List<String> list = new ArrayList<>();
for (OSSObjectSummary s : sums) {
list.add(config.getFilePathPrefix() + (s.getKey().replace(config.getObjectPrefixName(), "")));
}
return list;
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
/**
*
* @param filePath (访)
* @throws Exception
*/
public void deleteFile(String filePath) throws Exception {
String objectName = this.getObjectName(filePath);
OSS ossClient = createOSS();
try {
ossClient.deleteObject(OSSCloudConfig.BUCKETNAME, objectName);
} finally {
if (ossClient != null) {
ossClient.shutdown();
}
}
}
// public static void main(String[] args) throws Exception {
// OSSCloudClient client = OSSCloudClient.getInstance();
// String filePath = client.uploadFile("读书记录封面.png", "1", "C:\\Users\\墨白\\Desktop\\img\\nvpu.png");
// System.out.println(filePath);
// System.out.println(client.fileExist(filePath));
// List<String> list = client.listFiles("1/20220416/");
// for(String s : list) {
// System.out.println(s);
// client.deleteFile(s);
// }
// client.deleteFile("https://zhaohy-bucket.oss-cn-guangzhou.aliyuncs.com/static/images/1/20220415");
// }
}

View File

@ -14,21 +14,12 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
shared-configs: shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#阿里云 OSS配置bucket信息
aliyun:
oss:
file:
endpoint: oss-cn-beijing.aliyuncs.com #地域节点
keyid: LTAI5tXLU13zKh4VHzXyz #ID
keysecret: ZgmX5vSqlMF4H5nliXErLxhDQ703HF #秘钥
bucketname: aly-item-eric #项目名称

View File

@ -72,10 +72,6 @@
<artifactId>muyu-common-swagger</artifactId> <artifactId>muyu-common-swagger</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -50,7 +50,7 @@ public class VelocityUtils {
VelocityContext velocityContext = new VelocityContext(); VelocityContext velocityContext = new VelocityContext();
velocityContext.put("tplCategory", genTable.getTplCategory()); velocityContext.put("tplCategory", genTable.getTplCategory());
velocityContext.put("tableName", genTable.getTableName()); velocityContext.put("tableName", genTable.getTableName());
velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : ""); velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】");
velocityContext.put("ClassName", genTable.getClassName()); velocityContext.put("ClassName", genTable.getClassName());
velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName())); velocityContext.put("className", StringUtils.uncapitalize(genTable.getClassName()));
velocityContext.put("moduleName", genTable.getModuleName()); velocityContext.put("moduleName", genTable.getModuleName());

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -117,9 +117,7 @@
<select id="selectDbTableListByNames" resultMap="GenTableResult"> <select id="selectDbTableListByNames" resultMap="GenTableResult">
select table_name, table_comment, create_time, update_time from information_schema.tables select table_name, table_comment, create_time, update_time from information_schema.tables
where table_name NOT LIKE 'qrtz_%' where table_name NOT LIKE 'qrtz_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database())
and table_name NOT LIKE 'gen_%'
and table_schema = (select database())
and table_name in and table_name in
<foreach collection="array" item="name" open="(" separator="," close=")"> <foreach collection="array" item="name" open="(" separator="," close=")">
#{name} #{name}

View File

@ -44,7 +44,7 @@ public class ${ClassName}Controller extends BaseController
@RequiresPermissions("${permissionPrefix}:list") @RequiresPermissions("${permissionPrefix}:list")
@GetMapping("/list") @GetMapping("/list")
#if($table.crud || $table.sub) #if($table.crud || $table.sub)
public Result<TableDataInfo<${ClassName}>> list(${ClassName} ${className}) public Result<TableDataInfo> list(${ClassName} ${className})
{ {
startPage(); startPage();
List<${ClassName}> list = ${className}Service.select${ClassName}List(${className}); List<${ClassName}> list = ${className}Service.select${ClassName}List(${className});

View File

@ -1,7 +1,6 @@
package ${packageName}.mapper; package ${packageName}.mapper;
import java.util.List; import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import ${packageName}.domain.${ClassName}; import ${packageName}.domain.${ClassName};
#if($table.sub) #if($table.sub)
import ${packageName}.domain.${subClassName}; import ${packageName}.domain.${subClassName};
@ -9,84 +8,84 @@ import ${packageName}.domain.${subClassName};
/** /**
* ${functionName}Mapper接口 * ${functionName}Mapper接口
* *
* @author ${author} * @author ${author}
* @date ${datetime} * @date ${datetime}
*/ */
public interface ${ClassName}Mapper extends BaseMapper<${ClassName}> public interface ${ClassName}Mapper
{ {
/** /**
* 查询${functionName} * 查询${functionName}
* *
* @param ${pkColumn.javaField} ${functionName}主键 * @param ${pkColumn.javaField} ${functionName}主键
* @return ${functionName} * @return ${functionName}
*/ */
${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
/** /**
* 查询${functionName}列表 * 查询${functionName}列表
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return ${functionName}集合 * @return ${functionName}集合
*/ */
List<${ClassName}> select${ClassName}List(${ClassName} ${className}); public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
/** /**
* 新增${functionName} * 新增${functionName}
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return 结果 * @return 结果
*/ */
int insert${ClassName}(${ClassName} ${className}); public int insert${ClassName}(${ClassName} ${className});
/** /**
* 修改${functionName} * 修改${functionName}
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return 结果 * @return 结果
*/ */
int update${ClassName}(${ClassName} ${className}); public int update${ClassName}(${ClassName} ${className});
/** /**
* 删除${functionName} * 删除${functionName}
* *
* @param ${pkColumn.javaField} ${functionName}主键 * @param ${pkColumn.javaField} ${functionName}主键
* @return 结果 * @return 结果
*/ */
int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
/** /**
* 批量删除${functionName} * 批量删除${functionName}
* *
* @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @param ${pkColumn.javaField}s 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
#if($table.sub) #if($table.sub)
/** /**
* 批量删除${subTable.functionName} * 批量删除${subTable.functionName}
* *
* @param ${pkColumn.javaField}s 需要删除的数据主键集合 * @param ${pkColumn.javaField}s 需要删除的数据主键集合
* @return 结果 * @return 结果
*/ */
int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); public int delete${subClassName}By${subTableFkClassName}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
/** /**
* 批量新增${subTable.functionName} * 批量新增${subTable.functionName}
* *
* @param ${subclassName}List ${subTable.functionName}列表 * @param ${subclassName}List ${subTable.functionName}列表
* @return 结果 * @return 结果
*/ */
int batch${subClassName}(List<${subClassName}> ${subclassName}List); public int batch${subClassName}(List<${subClassName}> ${subclassName}List);
/** /**
* 通过${functionName}主键删除${subTable.functionName}信息 * 通过${functionName}主键删除${subTable.functionName}信息
* *
* @param ${pkColumn.javaField} ${functionName}ID * @param ${pkColumn.javaField} ${functionName}ID
* @return 结果 * @return 结果
*/ */
int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField}); public int delete${subClassName}By${subTableFkClassName}(${pkColumn.javaType} ${pkColumn.javaField});
#end #end
} }

View File

@ -2,61 +2,60 @@ package ${packageName}.service;
import java.util.List; import java.util.List;
import ${packageName}.domain.${ClassName}; import ${packageName}.domain.${ClassName};
import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* ${functionName}Service接口 * ${functionName}Service接口
* *
* @author ${author} * @author ${author}
* @date ${datetime} * @date ${datetime}
*/ */
public interface ${ClassName}Service extends IService<${ClassName}> public interface I${ClassName}Service
{ {
/** /**
* 查询${functionName} * 查询${functionName}
* *
* @param ${pkColumn.javaField} ${functionName}主键 * @param ${pkColumn.javaField} ${functionName}主键
* @return ${functionName} * @return ${functionName}
*/ */
${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); public ${ClassName} select${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
/** /**
* 查询${functionName}列表 * 查询${functionName}列表
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return ${functionName}集合 * @return ${functionName}集合
*/ */
List<${ClassName}> select${ClassName}List(${ClassName} ${className}); public List<${ClassName}> select${ClassName}List(${ClassName} ${className});
/** /**
* 新增${functionName} * 新增${functionName}
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return 结果 * @return 结果
*/ */
int insert${ClassName}(${ClassName} ${className}); public int insert${ClassName}(${ClassName} ${className});
/** /**
* 修改${functionName} * 修改${functionName}
* *
* @param ${className} ${functionName} * @param ${className} ${functionName}
* @return 结果 * @return 结果
*/ */
int update${ClassName}(${ClassName} ${className}); public int update${ClassName}(${ClassName} ${className});
/** /**
* 批量删除${functionName} * 批量删除${functionName}
* *
* @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合 * @param ${pkColumn.javaField}s 需要删除的${functionName}主键集合
* @return 结果 * @return 结果
*/ */
int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s); public int delete${ClassName}By${pkColumn.capJavaField}s(${pkColumn.javaType}[] ${pkColumn.javaField}s);
/** /**
* 删除${functionName}信息 * 删除${functionName}信息
* *
* @param ${pkColumn.javaField} ${functionName}主键 * @param ${pkColumn.javaField} ${functionName}主键
* @return 结果 * @return 结果
*/ */
int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField}); public int delete${ClassName}By${pkColumn.capJavaField}(${pkColumn.javaType} ${pkColumn.javaField});
} }

View File

@ -13,7 +13,6 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${packageName}.domain.${subClassName}; import ${packageName}.domain.${subClassName};
#end #end
import ${packageName}.mapper.${ClassName}Mapper; import ${packageName}.mapper.${ClassName}Mapper;
@ -27,7 +26,7 @@ import ${packageName}.service.I${ClassName}Service;
* @date ${datetime} * @date ${datetime}
*/ */
@Service @Service
public class ${ClassName}ServiceImpl extends ServiceImpl<${ClassName}Mapper,${ClassName}> implements ${ClassName}Service public class ${ClassName}ServiceImpl implements I${ClassName}Service
{ {
@Autowired @Autowired
private ${ClassName}Mapper ${className}Mapper; private ${ClassName}Mapper ${className}Mapper;

View File

@ -494,7 +494,7 @@ export default {
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() { this.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
return del${BusinessName}(row.${pkColumn.javaField}) return del${BusinessName}(row.${pkColumn.javaField});
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.#[[$modal]]#.msgSuccess("删除成功"); this.#[[$modal]]#.msgSuccess("删除成功");

View File

@ -170,7 +170,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
@ -580,7 +580,7 @@ export default {
this.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据"); this.#[[$modal]]#.msgError("请先选择要删除的${subTable.functionName}数据");
} else { } else {
const ${subclassName}List = this.${subclassName}List; const ${subclassName}List = this.${subclassName}List;
const checked${subClassName} = this.checked${subClassName} const checked${subClassName} = this.checked${subClassName};
this.${subclassName}List = ${subclassName}List.filter(function(item) { this.${subclassName}List = ${subclassName}List.filter(function(item) {
return checked${subClassName}.indexOf(item.index) == -1 return checked${subClassName}.indexOf(item.index) == -1
}); });
@ -598,5 +598,5 @@ export default {
}, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`) }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`)
} }
} }
} };
</script> </script>

View File

@ -355,7 +355,7 @@ function getTreeselect() {
${businessName}Options.value.push(data); ${businessName}Options.value.push(data);
}); });
} }
// 取消按钮 // 取消按钮
function cancel() { function cancel() {
open.value = false; open.value = false;
@ -463,7 +463,7 @@ function submitForm() {
/** 删除按钮操作 */ /** 删除按钮操作 */
function handleDelete(row) { function handleDelete(row) {
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() { proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + row.${pkColumn.javaField} + '"的数据项?').then(function() {
return del${BusinessName}(row.${pkColumn.javaField}) return del${BusinessName}(row.${pkColumn.javaField});
}).then(() => { }).then(() => {
getList(); getList();
proxy.#[[$modal]]#.msgSuccess("删除成功"); proxy.#[[$modal]]#.msgSuccess("删除成功");

View File

@ -153,7 +153,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
@ -535,7 +535,7 @@ function submitForm() {
function handleDelete(row) { function handleDelete(row) {
const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value; const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value;
proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').then(function() { proxy.#[[$modal]]#.confirm('是否确认删除${functionName}编号为"' + _${pkColumn.javaField}s + '"的数据项?').then(function() {
return del${BusinessName}(_${pkColumn.javaField}s) return del${BusinessName}(_${pkColumn.javaField}s);
}).then(() => { }).then(() => {
getList(); getList();
proxy.#[[$modal]]#.msgSuccess("删除成功"); proxy.#[[$modal]]#.msgSuccess("删除成功");

View File

@ -3,8 +3,8 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${packageName}.mapper.${ClassName}Mapper"> <mapper namespace="${packageName}.mapper.${ClassName}Mapper">
<resultMap type="${packageName}.${ClassName}" id="${ClassName}Result"> <resultMap type="${ClassName}" id="${ClassName}Result">
#foreach ($column in $columns) #foreach ($column in $columns)
<result property="${column.javaField}" column="${column.columnName}" /> <result property="${column.javaField}" column="${column.columnName}" />
#end #end
@ -26,9 +26,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName} select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName}
</sql> </sql>
<select id="select${ClassName}List" parameterType="${packageName}.${ClassName}" resultMap="${ClassName}Result"> <select id="select${ClassName}List" parameterType="${ClassName}" resultMap="${ClassName}Result">
<include refid="select${ClassName}Vo"/> <include refid="select${ClassName}Vo"/>
<where> <where>
#foreach($column in $columns) #foreach($column in $columns)
#set($queryType=$column.queryType) #set($queryType=$column.queryType)
#set($javaField=$column.javaField) #set($javaField=$column.javaField)
@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#end #end
</where> </where>
</select> </select>
<select id="select${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${ClassName}${subClassName}Result#else${ClassName}Result#end"> <select id="select${ClassName}By${pkColumn.capJavaField}" parameterType="${pkColumn.javaType}" resultMap="#if($table.sub)${ClassName}${subClassName}Result#else${ClassName}Result#end">
#if($table.crud || $table.tree) #if($table.crud || $table.tree)
<include refid="select${ClassName}Vo"/> <include refid="select${ClassName}Vo"/>
@ -71,8 +71,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where a.${pkColumn.columnName} = #{${pkColumn.javaField}} where a.${pkColumn.columnName} = #{${pkColumn.javaField}}
#end #end
</select> </select>
<insert id="insert${ClassName}" parameterType="${packageName}.${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end> <insert id="insert${ClassName}" parameterType="${ClassName}"#if($pkColumn.increment) useGeneratedKeys="true" keyProperty="$pkColumn.javaField"#end>
insert into ${tableName} insert into ${tableName}
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
#foreach($column in $columns) #foreach($column in $columns)
@ -90,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim> </trim>
</insert> </insert>
<update id="update${ClassName}" parameterType="${packageName}.${ClassName}"> <update id="update${ClassName}" parameterType="${ClassName}">
update ${tableName} update ${tableName}
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
#foreach($column in $columns) #foreach($column in $columns)
@ -107,15 +107,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete> </delete>
<delete id="delete${ClassName}By${pkColumn.capJavaField}s" parameterType="String"> <delete id="delete${ClassName}By${pkColumn.capJavaField}s" parameterType="String">
delete from ${tableName} where ${pkColumn.columnName} in delete from ${tableName} where ${pkColumn.columnName} in
<foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")"> <foreach item="${pkColumn.javaField}" collection="array" open="(" separator="," close=")">
#{${pkColumn.javaField}} #{${pkColumn.javaField}}
</foreach> </foreach>
</delete> </delete>
#if($table.sub) #if($table.sub)
<delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String"> <delete id="delete${subClassName}By${subTableFkClassName}s" parameterType="String">
delete from ${subTableName} where ${subTableFkName} in delete from ${subTableName} where ${subTableFkName} in
<foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")"> <foreach item="${subTableFkclassName}" collection="array" open="(" separator="," close=")">
#{${subTableFkclassName}} #{${subTableFkclassName}}
</foreach> </foreach>
@ -132,4 +132,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</insert> </insert>
#end #end
</mapper> </mapper>

View File

@ -18,14 +18,14 @@ public interface SysJobLogMapper extends BaseMapper<SysJobLog> {
* *
* @return * @return
*/ */
List<SysJobLog> selectJobLogList(SysJobLog jobLog); public List<SysJobLog> selectJobLogList (SysJobLog jobLog);
/** /**
* *
* *
* @return * @return
*/ */
List<SysJobLog> selectJobLogAll(); public List<SysJobLog> selectJobLogAll ();
/** /**
* ID * ID
@ -34,7 +34,7 @@ public interface SysJobLogMapper extends BaseMapper<SysJobLog> {
* *
* @return * @return
*/ */
SysJobLog selectJobLogById(Long jobLogId); public SysJobLog selectJobLogById (Long jobLogId);
/** /**
* *
@ -43,7 +43,7 @@ public interface SysJobLogMapper extends BaseMapper<SysJobLog> {
* *
* @return * @return
*/ */
int insertJobLog(SysJobLog jobLog); public int insertJobLog (SysJobLog jobLog);
/** /**
* *
@ -52,7 +52,7 @@ public interface SysJobLogMapper extends BaseMapper<SysJobLog> {
* *
* @return * @return
*/ */
int deleteJobLogByIds(Long[] logIds); public int deleteJobLogByIds (Long[] logIds);
/** /**
* *
@ -61,10 +61,10 @@ public interface SysJobLogMapper extends BaseMapper<SysJobLog> {
* *
* @return * @return
*/ */
int deleteJobLogById(Long jobId); public int deleteJobLogById (Long jobId);
/** /**
* *
*/ */
void cleanJobLog(); public void cleanJobLog ();
} }

View File

@ -18,14 +18,14 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
List<SysJob> selectJobList(SysJob job); public List<SysJob> selectJobList (SysJob job);
/** /**
* *
* *
* @return * @return
*/ */
List<SysJob> selectJobAll(); public List<SysJob> selectJobAll ();
/** /**
* ID * ID
@ -34,7 +34,7 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
SysJob selectJobById(Long jobId); public SysJob selectJobById (Long jobId);
/** /**
* ID * ID
@ -43,7 +43,7 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
int deleteJobById(Long jobId); public int deleteJobById (Long jobId);
/** /**
* *
@ -52,7 +52,7 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
int deleteJobByIds(Long[] ids); public int deleteJobByIds (Long[] ids);
/** /**
* *
@ -61,7 +61,7 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
int updateJob(SysJob job); public int updateJob (SysJob job);
/** /**
* *
@ -70,5 +70,5 @@ public interface SysJobMapper extends BaseMapper<SysJob> {
* *
* @return * @return
*/ */
int insertJob(SysJob job); public int insertJob (SysJob job);
} }

View File

@ -17,7 +17,7 @@ public interface ISysJobLogService {
* *
* @return * @return
*/ */
List<SysJobLog> selectJobLogList(SysJobLog jobLog); public List<SysJobLog> selectJobLogList (SysJobLog jobLog);
/** /**
* ID * ID
@ -26,14 +26,14 @@ public interface ISysJobLogService {
* *
* @return * @return
*/ */
SysJobLog selectJobLogById(Long jobLogId); public SysJobLog selectJobLogById (Long jobLogId);
/** /**
* *
* *
* @param jobLog * @param jobLog
*/ */
void addJobLog(SysJobLog jobLog); public void addJobLog (SysJobLog jobLog);
/** /**
* *
@ -42,7 +42,7 @@ public interface ISysJobLogService {
* *
* @return * @return
*/ */
int deleteJobLogByIds(Long[] logIds); public int deleteJobLogByIds (Long[] logIds);
/** /**
* *
@ -51,10 +51,10 @@ public interface ISysJobLogService {
* *
* @return * @return
*/ */
int deleteJobLogById(Long jobId); public int deleteJobLogById (Long jobId);
/** /**
* *
*/ */
void cleanJobLog(); public void cleanJobLog ();
} }

View File

@ -19,7 +19,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
List<SysJob> selectJobList(SysJob job); public List<SysJob> selectJobList (SysJob job);
/** /**
* ID * ID
@ -28,7 +28,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
SysJob selectJobById(Long jobId); public SysJob selectJobById (Long jobId);
/** /**
* *
@ -37,7 +37,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int pauseJob(SysJob job) throws SchedulerException; public int pauseJob (SysJob job) throws SchedulerException;
/** /**
* *
@ -46,7 +46,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int resumeJob(SysJob job) throws SchedulerException; public int resumeJob (SysJob job) throws SchedulerException;
/** /**
* trigger * trigger
@ -55,7 +55,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int deleteJob(SysJob job) throws SchedulerException; public int deleteJob (SysJob job) throws SchedulerException;
/** /**
* *
@ -64,7 +64,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
void deleteJobByIds(Long[] jobIds) throws SchedulerException; public void deleteJobByIds (Long[] jobIds) throws SchedulerException;
/** /**
* *
@ -73,7 +73,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int changeStatus(SysJob job) throws SchedulerException; public int changeStatus (SysJob job) throws SchedulerException;
/** /**
* *
@ -82,7 +82,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
boolean run(SysJob job) throws SchedulerException; public boolean run (SysJob job) throws SchedulerException;
/** /**
* *
@ -91,7 +91,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int insertJob(SysJob job) throws SchedulerException, TaskException; public int insertJob (SysJob job) throws SchedulerException, TaskException;
/** /**
* *
@ -100,7 +100,7 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
int updateJob(SysJob job) throws SchedulerException, TaskException; public int updateJob (SysJob job) throws SchedulerException, TaskException;
/** /**
* cron * cron
@ -109,5 +109,5 @@ public interface ISysJobService {
* *
* @return * @return
*/ */
boolean checkCronExpressionIsValid(String cronExpression); public boolean checkCronExpressionIsValid (String cronExpression);
} }

View File

@ -27,7 +27,7 @@ public abstract class AbstractQuartzJob implements Job {
/** /**
* 线 * 线
*/ */
private static final ThreadLocal<Date> threadLocal = new ThreadLocal<>(); private static ThreadLocal<Date> threadLocal = new ThreadLocal<>();
@Override @Override
public void execute (JobExecutionContext context) throws JobExecutionException { public void execute (JobExecutionContext context) throws JobExecutionException {

View File

@ -157,7 +157,7 @@ public class JobInvokeUtil {
Object[] classs = new Object[methodParams.size()]; Object[] classs = new Object[methodParams.size()];
int index = 0; int index = 0;
for (Object[] os : methodParams) { for (Object[] os : methodParams) {
classs[index] = os[0]; classs[index] = (Object) os[0];
index++; index++;
} }
return classs; return classs;

View File

@ -14,10 +14,10 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 43.142.100.73:8848 server-addr: 127.0.0.1:8848
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -1,31 +0,0 @@
<?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.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product-common</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--系统核心包-->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-core</artifactId>
</dependency>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-security</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,81 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* address
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Address extends TreeEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 地区名 */
@Excel(name = "地区名")
private String addressName;
/** 子级地区 */
@Excel(name = "子级地区")
private Long sonId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setAddressName(String addressName)
{
this.addressName = addressName;
}
public String getAddressName()
{
return addressName;
}
public void setSonId(Long sonId)
{
this.sonId = sonId;
}
public Long getSonId()
{
return sonId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("addressName", getAddressName())
.append("sonId", getSonId())
.append("createBy", SecurityUtils.getUsername())
.append("createTime", getCreateTime())
.append("updateBy", SecurityUtils.getUsername())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -1,49 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* as_attribute_group
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AsAttributeGroup extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 属性编号 */
@Excel(name = "属性编号")
private Long attributeId;
/** 分组编号 */
@Excel(name = "分组编号")
private Long groupId;
public static AsAttributeGroup saveBuilder(Long id, Long attributeId) {
return AsAttributeGroup.builder()
.groupId(id)
.attributeId(attributeId)
.build();
}
}

View File

@ -1,72 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.security.utils.SecurityUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
/**
* attribute
*
* @author saisai
* @date 2024-02-29
*/
public class Attribute extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 属性编码 */
@Excel(name = "属性编码")
private String code;
/** 属性名 */
@Excel(name = "属性名")
private String name;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCode(String code)
{
this.code = code;
}
public String getCode()
{
return code;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("code", getCode())
.append("name", getName())
.append("remark", getRemark())
.append("createBy", SecurityUtils.getUsername())
.append("createTime", getCreateTime())
.append("updateBy", SecurityUtils.getUsername())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -1,76 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.req.AttributeGroupReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* attribute_group
*
* @author muyu
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeGroup extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 组名 */
@Excel(name = "组名")
private String name;
/** 状态 */
@Excel(name = "状态")
private String states;
//创建添加属性组构建体
public static AttributeGroup saveBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroup.builder()
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.createBy(SecurityUtils.getUsername())
.createTime(new Date())
.build();
}
//创建修改属性组构建体
public static AttributeGroup editBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroup.builder()
.id(attributeGroupReq.getId())
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.updateBy(SecurityUtils.getUsername())
.updateTime(new Date())
.build();
}
public static AttributeGroup createBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroup.builder()
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.createTime(new Date())
.createBy(SecurityUtils.getUsername())
.build();
}
}

View File

@ -1,95 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* attribute_product
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeProduct extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 商品编号 */
@Excel(name = "商品编号")
private Long productId;
/** 属性编号 */
@Excel(name = "属性编号")
private Long attributeId;
/** 属性值 */
@Excel(name = "属性值")
private String value;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setProductId(Long productId)
{
this.productId = productId;
}
public Long getProductId()
{
return productId;
}
public void setAttributeId(Long attributeId)
{
this.attributeId = attributeId;
}
public Long getAttributeId()
{
return attributeId;
}
public void setValue(String value)
{
this.value = value;
}
public String getValue()
{
return value;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("productId", getProductId())
.append("attributeId", getAttributeId())
.append("value", getValue())
.append("remark", getRemark())
.append("createBy", SecurityUtils.getUsername())
.append("createTime", getCreateTime())
.append("updateBy", SecurityUtils.getUsername())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -1,94 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.req.BrandReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* brand
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Brand extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long id;
/**
*
*/
@Excel(name = "品牌名称")
private String name;
/**
*
*/
@Excel(name = "图像标识")
private String logo;
/**
*
*/
@Excel(name = "描述")
private String introduction;
/**
*
*/
@Excel(name = "品牌启用")
private String status;
/**
*
*/
@Excel(name = "公司地址")
private String addressName;
//添加数据构造体
public static Brand saveBuilder(BrandReq brandReq) {
return Brand.builder()
.name(brandReq.getName())
.logo(brandReq.getLogo())
.introduction(brandReq.getIntroduction())
.status(brandReq.getStatus())
.createBy(SecurityUtils.getUsername())
.createTime(new Date())
.build();
}
//修改构建体
public static Brand updateBuilder(BrandReq brandReq) {
return Brand.builder()
.id(brandReq.getId())
.name(brandReq.getName())
.logo(brandReq.getLogo())
.introduction(brandReq.getIntroduction())
.status(brandReq.getStatus())
.updateBy(SecurityUtils.getUsername())
.updateTime(new Date())
.build();
}
}

View File

@ -1,66 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* brand_category
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BrandCategory extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 品类编号 */
@Excel(name = "品类编号")
private Long categoryId;
/** 品牌编号 */
@Excel(name = "品牌编号")
private Long brandId;
public static List<BrandCategory> saveBuilderList(CategoryReq categoryReq, Supplier<String> getUsername) {
return categoryReq.getCheckedBrandIds().stream().map(
brandId -> BrandCategory.saveBuilder(categoryReq.getId(),brandId,getUsername)
).toList();
}
public static BrandCategory saveBuilder(Long categoryId, Long brandId, Supplier<String> getUsername) {
return BrandCategory.builder()
.brandId(brandId)
.categoryId(categoryId)
.createBy(getUsername.get())
.createTime(new Date())
.build();
}
public static BrandCategory saveBrandBuilder(Long id, Long brandId, Supplier<String> username) {
return BrandCategory.builder()
.categoryId(id)
.brandId(brandId)
.createBy(username.get())
.createTime(new Date())
.build();
}
}

View File

@ -1,56 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* category_attribute
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CategoryAttribute extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 属性编号 */
@Excel(name = "属性编号")
private Long attributeId;
/** 品类编号 */
@Excel(name = "品类编号")
private Long categoryId;
public static CategoryAttribute categoryBuilder(Long categoryId, Long attributeId, Supplier<String> username) {
return CategoryAttribute.builder()
.categoryId(categoryId)
.attributeId(attributeId)
.createBy(username.get())
.createTime(new Date())
.build();
}
public static List<CategoryAttribute> saveBuilder(CategoryReq categoryReq, Supplier<String> username) {
return categoryReq.getCheckedAttributeIds().stream().map(
attributeId -> categoryBuilder(categoryReq.getId(),attributeId,username)
).toList();
}
}

View File

@ -1,69 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* category_attribute_group
*
* @author saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CategoryAttributeGroup extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long id;
/**
*
*/
@Excel(name = "属性组编号")
private Long attributeGroupId;
/**
*
*/
@Excel(name = "品类编号")
private Long categoryId;
/**
*
*
*
* @param id
* @param groupId
* @return
*/
public static CategoryAttributeGroup saveBuilder(Long id, Long groupId, Supplier<String> username) {
return CategoryAttributeGroup.builder()
.attributeGroupId(groupId)
.categoryId(id)
.createBy(username.get())
.createTime(new Date())
.build();
}
public static List<CategoryAttributeGroup> saveBuilderList(CategoryReq categoryReq, Supplier<String> username) {
return categoryReq.getCheckedAttributeGroupIds().stream().map(
groupId -> saveBuilder(categoryReq.getId(), groupId, username)
).toList();
}
}

View File

@ -1,84 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* category_info
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CategoryInfo extends TreeEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 品类名称 */
@Excel(name = "品类名称")
private String name;
/** 图片 */
@Excel(name = "图片")
private String image;
/** 是否启用 */
@Excel(name = "是否启用")
private String status;
/**
*
* @param req
* @return
*/
public static CategoryInfo queryBuilder(CategoryReq req){
return CategoryInfo.builder()
.name(req.getName())
.image(req.getImage())
.status(req.getStatus())
.remark(req.getRemark())
.parentId(req.getParentId())
.build();
}
/** 响应值对象 */
public static CategoryInfo saveCategoryBuilder(CategoryReq req){
return CategoryInfo.builder()
.name(req.getName())
.status(req.getStatus())
.image(req.getImage())
.parentId(req.getParentId())
.remark(req.getRemark())
.createBy(req.getCreateBy())
.createTime(req.getCreateTime())
.build();
}
public static CategoryInfo saveBuilder(CategoryReq categoryReq) {
return CategoryInfo.builder()
.id(categoryReq.getId())
.name(categoryReq.getName())
.status(categoryReq.getStatus())
.image(categoryReq.getImage())
.parentId(categoryReq.getParentId())
.status(categoryReq.getStatus())
.remark(categoryReq.getRemark())
.createBy(categoryReq.getCreateBy())
.createTime(categoryReq.getCreateTime())
.build();
}
}

View File

@ -1,81 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* product_category
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ProductCategory extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 品类id */
@Excel(name = "品类id")
private Long categoryId;
/** 商品id */
@Excel(name = "商品id")
private Long productId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCategoryId(Long categoryId)
{
this.categoryId = categoryId;
}
public Long getCategoryId()
{
return categoryId;
}
public void setProductId(Long productId)
{
this.productId = productId;
}
public Long getProductId()
{
return productId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("categoryId", getCategoryId())
.append("productId", getProductId())
.append("remark", getRemark())
.append("createBy", SecurityUtils.getUsername())
.append("createTime", getCreateTime())
.append("updateBy", SecurityUtils.getUsername())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -1,68 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* ; product_info
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ProductInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 商品名 */
@Excel(name = "商品名")
private String name;
/** 商品信息 */
@Excel(name = "商品信息")
private String introduction;
/** 品牌编号 */
@Excel(name = "品牌编号")
private Long brandId;
/** 图片 */
@Excel(name = "图片")
private String images;
/** 发货地 */
@Excel(name = "轮播图")
private String slideshow;
/** 商品状态 */
@Excel(name = "商品状态")
private String status;
/** 创建人 */
private String createdBy;
/** 创建时间 */
private Date createdTime;
/** 更新人 */
private String updatedBy;
}

View File

@ -1,59 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.req.RuleAttrReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.function.Supplier;
/**
* rule
*
* @author saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Rule extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 规格名称 */
@Excel(name = "规格名称")
private String name;
private String states;
public static Rule saveBuilder(RuleAttrReq req, Supplier<String> username){
return Rule.builder()
.name(req.getName())
.states(req.getStates()==null? null: req.getStates())
.createBy(username.get())
.createTime(new Date())
.build();
}
public static Rule updateBuilder(RuleAttrReq ruleAttrReq) {
return Rule.builder()
.id(ruleAttrReq.getId())
.states(ruleAttrReq.getStates())
.name(ruleAttrReq.getName())
.build();
}
}

View File

@ -1,76 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.RuleAttrAddModel;
import com.muyu.product.domain.req.RuleAttrReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* rule
*
* @author saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleAttr extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long id;
/**
*
*/
private Long ruleId;
/**
*
*/
@Excel(name = "规格属性")
private String attrName;
private String attrValue;
/**
*
*
* @return
*/
public static List<RuleAttr> saveBuilder(RuleAttrReq req,Supplier<String> username) {
ArrayList<RuleAttr> ruleAttrs = new ArrayList<>();
List<RuleAttrAddModel> ruleAttrAddModels = req.getRuleAttrList();
ruleAttrAddModels.stream().map(
ruleAttrAddModel -> ruleAttrs.addAll(RuleAttr.constructBuilder(ruleAttrAddModel,username,req.getId())
)).toList();
return ruleAttrs;
}
public static List<RuleAttr> constructBuilder(RuleAttrAddModel ruleAttrAddModel, Supplier<String> username, Long ruleId) {
return (List<RuleAttr>) ruleAttrAddModel.getValueList().stream().map(
value -> RuleAttr.builder().attrName(ruleAttrAddModel.getAttrName())
.id(null)
.ruleId(ruleId)
.createBy(username.get())
.createTime(new Date())
.attrValue(value)
.build()
).toList();
}
}

View File

@ -1,48 +0,0 @@
package com.muyu.product.domain;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
/**
* rule_product
*
* @author saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleProduct extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 商品编号 */
@Excel(name = "商品编号")
private Long productId;
/** 规格编号 */
@Excel(name = "规格编号")
private String sku;
/** 规格值 */
@Excel(name = "规格值")
private String ruleValue;
private Integer stock;
private BigDecimal price;
}

View File

@ -1,35 +0,0 @@
package com.muyu.product.domain.demo;
import com.muyu.product.domain.Attribute;
import com.muyu.product.domain.AttributeGroup;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @ClassName Product
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/6/0006 14:12
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class Product {
/**
*
*/
private List<AttributeGroup> attributeGroupList;
/**
*
*/
private List<Attribute> attributeList;
/**
*
*/
private List<Attribute> selfAttributeList;
}

View File

@ -1,21 +0,0 @@
package com.muyu.product.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName AttrValueModel
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/22/0022 20:11
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AttrValueModel {
private Long id;
private String value;
}

View File

@ -1,76 +0,0 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* @ClassName CategoryInfoSaveModel
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/5/0005 17:17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class CategoryInfoSaveModel extends TreeEntity {
/** 主键 */
private Long id;
/** 品类名称 */
private String name;
/** 图片 */
private String image;
/** 父级品类 */
private Long parentId;
/** 是否启用 */
private String status;
/** 说明 */
private String remark;
private String createBy;
private Date createTime;
/**
*
*/
private List<Long> checkedAttributeGroupIds;
/**
*
*/
private List<Long> checkedAttributeIds;
/**
*
*/
private List<Long> checkedBrandIds;
/**
*
*/
public static CategoryInfoSaveModel saveBuilder(CategoryReq req, Supplier<String> username){
return CategoryInfoSaveModel.builder()
.checkedAttributeIds(req.getCheckedAttributeIds())
.checkedAttributeGroupIds(req.getCheckedAttributeGroupIds())
.checkedBrandIds(req.getCheckedBrandIds())
.image(req.getImage())
.name(req.getName())
.parentId(req.getParentId())
.createBy(username.get())
.createTime(new Date())
.status(req.getStatus())
.remark(req.getRemark())
.build();
}
}

View File

@ -1,62 +0,0 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
/**
* @ClassName ProductAddModel
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/22/0022 20:22
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectInfoSaveReq", description = "商品信息")
public class ProductAddModel extends BaseEntity {
/** 主键 */
private Long id;
/** 商品名 */
@Excel(name = "商品名")
private String name;
/** 商品信息 */
@Excel(name = "商品信息")
private String introduction;
/** 品牌编号 */
@Excel(name = "品牌编号")
private Long brandId;
/** 图片 */
@Excel(name = "图片")
private String images;
/** 发货地 */
@Excel(name = "轮播图")
private String slideshow;
/** 商品状态 */
@Excel(name = "商品状态")
private String status;
/** 创建人 */
private String createdBy;
/** 创建时间 */
private Date createdTime;
/** 更新人 */
private String updatedBy;
}

View File

@ -1,25 +0,0 @@
package com.muyu.product.domain.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @ClassName ProductSkuModel
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/22/0022 20:12
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductSkuModel {
private String sku;
private Long stock;
private BigDecimal price;
private String image;
}

View File

@ -1,45 +0,0 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.Rule;
import com.muyu.product.domain.RuleAttr;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.*;
/**
* @ClassName RuleAttrAddModel
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/7/0007 11:53
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleAttrAddModel extends BaseEntity {
private String attrName;
private List<String> valueList;
public static List<RuleAttrAddModel> saveBuilder(List<RuleAttr> rules) {
HashMap<String, List<String>> stringListHashMap = new HashMap<>();
for (RuleAttr rule : rules) {
if (stringListHashMap.containsKey(rule.getAttrName())){
stringListHashMap.get(rule.getAttrName()).add(rule.getAttrValue());
}else {
ArrayList<String> strings = new ArrayList<>();
strings.add(rule.getAttrValue());
stringListHashMap.put(rule.getAttrName(),strings);
}
}
return stringListHashMap.keySet().stream()
.map(key -> new RuleAttrAddModel
(key, stringListHashMap.get(key)))
.toList();
}
}

View File

@ -1,26 +0,0 @@
package com.muyu.product.domain.model;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @ClassName RuleAttrFindId
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/9/0009 16:46
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class RuleAttrFindId extends BaseEntity {
private Long id;
private String ruleName;
private String ruleValue;
}

View File

@ -1,70 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* as_attribute_group
*
* @author Saisai
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AsAttributeGroupReq extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 属性编号 */
@Excel(name = "属性编号")
private Long attributeId;
/**
* id
*/
private List<Long> attributeIds;
/** 分组编号 */
@Excel(name = "分组编号")
private Long groupId;
//添加组内属性构造体
public static AsAttributeGroupReq saveBuilder(AttributeGroupReq attributeGroupReq){
return AsAttributeGroupReq.builder()
.attributeIds(attributeGroupReq.getCheckedAttributeIds())
.groupId(attributeGroupReq.getId())
.createBy(SecurityUtils.getUsername())
.createTime(new Date())
.build();
}
//修改组内属性构造体
public static AsAttributeGroupReq updateBuilder(AttributeGroupReq attributeGroupReq){
return AsAttributeGroupReq.builder()
.attributeIds(attributeGroupReq.getCheckedAttributeIds())
.groupId(attributeGroupReq.getId())
.createBy(SecurityUtils.getUsername())
.createTime(new Date())
.build();
}
}

View File

@ -1,67 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.AttributeGroup;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
import java.util.List;
/**
* attribute_group
*
* @author muyu
* @date 2024-02-29
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeGroupReq extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/** 组名 */
@Excel(name = "组名")
private String name;
private List<Long> checkedAttributeIds;
/** 状态 */
@Excel(name = "状态")
private String states;
//添加构建体
public static AttributeGroup saveBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroup.builder()
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.createBy(SecurityUtils.getUsername())
.createTime(new Date())
.build();
}
//修改构建体
public static AttributeGroup updateBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroup.builder()
.id(attributeGroupReq.getId())
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.updateBy(SecurityUtils.getUsername())
.updateTime(new Date())
.build();
}
}

View File

@ -1,70 +0,0 @@
package com.muyu.product.domain.req;
import lombok.AccessLevel;
import lombok.Builder;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.common.security.utils.SecurityUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.lang.annotation.Annotation;
/**
* @ClassName BrandReq
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/1/0001 9:59
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BrandReq extends BaseEntity{
private static final long serialVersionUID = 1L;
/**
*
*/
private Long id;
/**
*
*/
@Excel(name = "品牌名称")
private String name;
/**
*
*/
@Excel(name = "图像标识")
private String logo;
/**
*
*/
@Excel(name = "描述")
private String introduction;
/**
*
*/
@Excel(name = "品牌启用")
private String status;
/**
*
*/
@Excel(name = "公司地址")
private String addressName;
}

View File

@ -1,74 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @ClassName CategoryReq
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/5/0005 12:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class CategoryReq extends BaseEntity {
/**
*
*/
private Long id;
/**
*
*/
private String name;
/**
*
*/
private String image;
/**
*
*/
private Long parentId;
/**
*
*/
private String status;
/**
*
*/
private String remark;
/**
*
*/
private List<Long> checkedAttributeGroupIds;
/**
*
*/
private List<Long> checkedAttributeIds;
/**
*
*/
private List<Long> checkedBrandIds;
}

View File

@ -1,34 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.AttrValueModel;
import com.muyu.product.domain.model.ProductAddModel;
import com.muyu.product.domain.model.ProductSkuModel;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @ClassName ProductInfoSaveReq
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/22/0022 20:17
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectInfoSaveReq", description = "商品信息")
public class ProductInfoSaveReq extends BaseEntity {
private static final long serialVersionUID = 1L;
private ProductAddModel productAddModel;
private List<AttrValueModel> attrValueList;
private List<ProductSkuModel> productList;
}

View File

@ -1,30 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.math.BigDecimal;
/**
* @ClassName ProductSkuInfoEditReq
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/22/0022 19:52
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "ProjectSkuInfoEditReq", description = "商品SKU")
public class ProductSkuInfoEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
private Long projectId;
private String sku;
private Long stock;
private BigDecimal price;
private String image;
}

View File

@ -1,38 +0,0 @@
package com.muyu.product.domain.req;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.model.RuleAttrAddModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
/**
* @ClassName RuleAttrReq
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/7/0007 9:02
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class RuleAttrReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键 */
private Long id;
/**规格名称*/
private String name;
/** 属性组 */
private List<RuleAttrAddModel> ruleAttrList;
/** 是否启用 */
private String states;
}

View File

@ -1,85 +0,0 @@
package com.muyu.product.domain.resp;
import com.muyu.common.core.annotation.Excel;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.Attribute;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.req.AttributeGroupReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @ClassName AttributeGroupResp
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/14/0014 20:46
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class AttributeGroupResp extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long id;
/**
*
*/
@Excel(name = "组名")
private String name;
private List<Attribute> attributeList;
private List<Long> getAsAttributeIds;
/**
*
*/
@Excel(name = "状态")
private String states;
//创建添加属性组构建体
public static AttributeGroupResp saveBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroupResp.builder()
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.build();
}
//创建修改属性组构建体
public static AttributeGroupResp editBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroupResp.builder()
.id(attributeGroupReq.getId())
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.build();
}
public static AttributeGroupResp createBuilder(AttributeGroupReq attributeGroupReq) {
return AttributeGroupResp.builder()
.name(attributeGroupReq.getName())
.states(attributeGroupReq.getStates())
.build();
}
public static AttributeGroupResp saveBuilder(AttributeGroup attributeGroup1, List<Attribute> attributes) {
return AttributeGroupResp.builder()
.name(attributeGroup1.getName())
.states(attributeGroup1.getStates())
.id(attributeGroup1.getId())
.attributeList(attributes)
.build();
}
}

View File

@ -1,80 +0,0 @@
package com.muyu.product.domain.resp;
import com.muyu.common.core.web.domain.TreeEntity;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.product.domain.Attribute;
import com.muyu.product.domain.AttributeGroup;
import com.muyu.product.domain.Brand;
import com.muyu.product.domain.CategoryInfo;
import com.muyu.product.domain.req.CategoryReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* @ClassName CategoryResp
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/5/0005 12:35
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class CategoryResp extends TreeEntity {
/** 主键 */
private Long id;
/** 品类名称 */
private String name;
/** 图片 */
private String image;
/** 是否启用 */
private String status;
private List<Attribute> checkAttributeList;
private List<AttributeGroup> checkedAttributeGroupList;
private List<Brand> brandList;
/**
*
* @param categoryReq
* @return
*/
public static CategoryResp saveBuilder(CategoryReq categoryReq, Supplier<String> username){
return CategoryResp.builder()
.name(categoryReq.getName())
.image(categoryReq.getImage())
.status(categoryReq.getStatus())
.createBy(username.get())
.createTime(new Date())
.build();
}
/**
*
* @param categoryReq
* @return
*/
public static CategoryResp updateBuilder(CategoryReq categoryReq,Supplier<String> username){
return CategoryResp.builder()
.name(categoryReq.getName())
.image(categoryReq.getImage())
.status(categoryReq.getStatus())
.updateBy(username.get())
.updateTime(new Date())
.build();
}
}

View File

@ -1,42 +0,0 @@
package com.muyu.product.domain.resp;
import com.muyu.common.core.web.domain.BaseEntity;
import com.muyu.product.domain.Rule;
import com.muyu.product.domain.RuleAttr;
import com.muyu.product.domain.model.RuleAttrAddModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
import java.util.function.Function;
/**
* @ClassName RuleAttrResp
* @Description
* @Author SaiSai.Liu
* @Date 2024/3/7/0007 15:56
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class RuleAttrResp extends BaseEntity {
private Long id;
private String name;
private String states;
private List<RuleAttrAddModel> ruleAttrList;
public static RuleAttrResp saveBuilder(Rule rule, Function<Long,List<RuleAttrAddModel>> ruleAttrs){
return RuleAttrResp.builder()
.id(rule.getId())
.name(rule.getName())
.ruleAttrList(ruleAttrs==null? null : ruleAttrs.apply(rule.getId()))
.states(rule.getStates())
.build();
}
}

View File

@ -1,152 +0,0 @@
{
"categoryInfoId": 1,
"states": "y",
"categoryName": "节点",
"remark": null,
"images": null,
"req": {
"asAttributeCategoryList": [
],
"asAttributeGroupList": [
属性组
],
"asBrandCategoryList":[
品类品牌
]
}
}
{
"categoryInfoId": 1,
"categoryName": "节点",
"remark": null,
"req": {
"asAttributeCategoryList": [
"attributeInfo": {
"id": 1
"attributeName": null
}
],
"attributeGroupList": [
"attributeInfoGroup": {
"id": 1,
"attributeInfoList": []
}
]
}
}
{
"product": {
"name": null,
"brandId": 1,
"remark": null,
"image": null,
"images": [],
"description": null
},
"attribute": {
"attributeGroup": {
"attributeGroupId": 1,
},
"attributeList": [
{
"id": 1,
"attributeValue": null
}
]
},
"rule": {
"ruleId": 1,
"ruleValueList": [
{
"ruleName1": null,
"ruleName2":null,
...
"image": null,
"stork": 1,
"price": 1
}
],
}
}
{createBy: null, createTime: "2024-02-29 21:37:52", updateBy: null, updateTime: "2024-03-10 16:06:52",…}
ancestors:null
checkedAttributeGroupIds:[2]
checkedAttributeIds:[5, 3]
checkedBrandIds:[2]
children:[]
createBy:null
createTime:"2024-02-29 21:37:52"
id:1
image:"http://127.0.0.1:9300/statics/2024/02/29/8000030_20240229213748A003.jpg"
name:"电子产品"
orderNum:null
parentId:0
parentName:null
remark: null
status: "Y"
updateBy: null
updateTime: "2024-03-10 16:06:52"
{
"product": {
"id":null,
"name":null,
"states":null,
"brandId":null,
"remark":null,
"image":null,
"imgs":null,
},
"attributeGroupList":[
{
"id":null
}
],
"attributeList":[
{
"attributeId":null,
"attributeValue":bull
}
],
"rule":[
{
"sku":null, ("1,2,3")
"image":null,
"inventoryValue":null,
"priceValue":null
}
]
}

View File

@ -1,26 +0,0 @@
<?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.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product-remote</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-common</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -1,7 +0,0 @@
package com.muyu;
public class Main {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}

View File

@ -1,98 +0,0 @@
<?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.muyu</groupId>
<artifactId>muyu-product</artifactId>
<version>3.6.3</version>
</parent>
<artifactId>muyu-product-server</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-product-common</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- SpringCloud Alibaba Sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.fox.version}</version>
</dependency>
<!-- Mysql Connector -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- MuYu Common DataSource -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datasource</artifactId>
</dependency>
<!-- MuYu Common DataScope -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-datascope</artifactId>
</dependency>
<!-- MuYu Common Log -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-log</artifactId>
</dependency>
<!-- MuYu Common Swagger -->
<dependency>
<groupId>com.muyu</groupId>
<artifactId>muyu-common-swagger</artifactId>
</dependency>
<!-- sentinel流量监控-->
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.8.6</version>
</dependency>
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-annotation-aspectj</artifactId>
</dependency>
</dependencies>
</project>

Some files were not shown because too many files have changed in this diff Show More