commit f5a0a1b00de177d0790feed260e5d3dd07b88b3b Author: Y1NanPing <735289578@qq.com> Date: Fri Jul 18 16:53:56 2025 +0800 第一次课程提交 diff --git a/common/common-log/pom.xml b/common/common-log/pom.xml new file mode 100644 index 0000000..7b3a43f --- /dev/null +++ b/common/common-log/pom.xml @@ -0,0 +1,38 @@ + + + + common + com.atguigu.tingshu + 1.0 + + 4.0.0 + + common-log + + + + com.atguigu.tingshu + model + 1.0 + provided + + + com.atguigu.tingshu + common-util + 1.0 + provided + + + org.springframework.boot + spring-boot-starter-web + provided + + + org.springframework.boot + spring-boot-starter-aop + provided + + + diff --git a/common/common-log/src/main/java/com/atguigu/tingshu/common/annotation/Log.java b/common/common-log/src/main/java/com/atguigu/tingshu/common/annotation/Log.java new file mode 100644 index 0000000..ca3db4f --- /dev/null +++ b/common/common-log/src/main/java/com/atguigu/tingshu/common/annotation/Log.java @@ -0,0 +1,39 @@ +package com.atguigu.tingshu.common.annotation; + +import com.atguigu.tingshu.common.enums.BusinessType; +import com.atguigu.tingshu.common.enums.OperatorType; + +import java.lang.annotation.*; + +/** + * 自定义操作日志记录注解 + */ +@Target({ElementType.PARAMETER, ElementType.METHOD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface Log { + /** + * 模块 + */ + public String title() default ""; + + /** + * 功能 + */ + public BusinessType businessType() default BusinessType.OTHER; + + /** + * 操作人类别 + */ + public OperatorType operatorType() default OperatorType.MANAGE; + + /** + * 是否保存请求的参数 + */ + public boolean isSaveRequestData() default true; + + /** + * 是否保存响应的参数 + */ + public boolean isSaveResponseData() default true; +} diff --git a/common/common-log/src/main/java/com/atguigu/tingshu/common/aspect/LogAspect.java b/common/common-log/src/main/java/com/atguigu/tingshu/common/aspect/LogAspect.java new file mode 100644 index 0000000..99e36fe --- /dev/null +++ b/common/common-log/src/main/java/com/atguigu/tingshu/common/aspect/LogAspect.java @@ -0,0 +1,184 @@ +package com.atguigu.tingshu.common.aspect; + +import com.alibaba.fastjson.JSON; +//import com.atguigu.tingshu.system.client.SysOperLogFeignClient; +import com.atguigu.tingshu.common.annotation.Log; +import com.atguigu.tingshu.common.util.IpUtil; +import com.atguigu.tingshu.model.system.SysOperLog; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Collection; +import java.util.Map; + + +/** + * 操作日志记录处理 + */ +@Aspect +@Component +public class LogAspect { + private static final Logger log = LoggerFactory.getLogger(LogAspect.class); + + //微服务切换为feign调用接口 + //@Resource + //private SysOperLogFeignClient sysOperLogFeignClient; + + /** + * 处理完请求后执行 + * + * @param joinPoint 切点 + */ + @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "jsonResult") + public void doAfterReturning(JoinPoint joinPoint, Log controllerLog, Object jsonResult) { + handleLog(joinPoint, controllerLog, null, jsonResult); + } + + /** + * 拦截异常操作 + * + * @param joinPoint 切点 + * @param e 异常 + */ + @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, Log controllerLog, Exception e) { + handleLog(joinPoint, controllerLog, e, null); + } + + protected void handleLog(final JoinPoint joinPoint, Log controllerLog, final Exception e, Object jsonResult) { + try { + RequestAttributes ra = RequestContextHolder.getRequestAttributes(); + ServletRequestAttributes sra = (ServletRequestAttributes) ra; + HttpServletRequest request = sra.getRequest(); + + // *========数据库日志=========*// + SysOperLog operLog = new SysOperLog(); + operLog.setStatus(1); + // 请求的地址 + String ip = IpUtil.getIpAddress(request);//IpUtil.getIpAddr(ServletUtils.getRequest()); + operLog.setOperIp(ip); + operLog.setOperUrl(request.getRequestURI()); + + if (e != null) { + operLog.setStatus(0); + operLog.setErrorMsg(e.getMessage()); + } + // 设置方法名称 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + operLog.setMethod(className + "." + methodName + "()"); + // 设置请求方式 + operLog.setRequestMethod(request.getMethod()); + // 处理设置注解上的参数 + getControllerMethodDescription(joinPoint, controllerLog, operLog, jsonResult); + // 保存数据库 + //sysOperLogFeignClient.saveSysLog(operLog); + log.info("操作日志:"+JSON.toJSONString(operLog)); + } catch (Exception exp) { + // 记录本地异常日志 + log.error("==前置通知异常=="); + log.error("异常信息:{}", exp.getMessage()); + exp.printStackTrace(); + } + } + + /** + * 获取注解中对方法的描述信息 用于Controller层注解 + * + * @param log 日志 + * @param operLog 操作日志 + * @throws Exception + */ + public void getControllerMethodDescription(JoinPoint joinPoint, Log log, SysOperLog operLog, Object jsonResult) throws Exception { + // 设置action动作 + operLog.setBusinessType(log.businessType().name()); + // 设置标题 + operLog.setTitle(log.title()); + // 设置操作人类别 + operLog.setOperatorType(log.operatorType().name()); + // 是否需要保存request,参数和值 + if (log.isSaveRequestData()) { + // 获取参数的信息,传入到数据库中。 + setRequestValue(joinPoint, operLog); + } + // 是否需要保存response,参数和值 + if (log.isSaveResponseData() && !StringUtils.isEmpty(jsonResult)) { + operLog.setJsonResult(JSON.toJSONString(jsonResult)); + } + } + + /** + * 获取请求的参数,放到log中 + * + * @param operLog 操作日志 + * @throws Exception 异常 + */ + private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) throws Exception { + String requestMethod = operLog.getRequestMethod(); + if (HttpMethod.PUT.name().equals(requestMethod) || HttpMethod.POST.name().equals(requestMethod)) { + String params = argsArrayToString(joinPoint.getArgs()); + operLog.setOperParam(params); + } + } + + /** + * 参数拼装 + */ + private String argsArrayToString(Object[] paramsArray) { + String params = ""; + if (paramsArray != null && paramsArray.length > 0) { + for (Object o : paramsArray) { + if (!StringUtils.isEmpty(o) && !isFilterObject(o)) { + try { + Object jsonObj = JSON.toJSON(o); + params += jsonObj.toString() + " "; + } catch (Exception e) { + } + } + } + } + return params.trim(); + } + + /** + * 判断是否需要过滤的对象。 + * + * @param o 对象信息。 + * @return 如果是需要过滤的对象,则返回true;否则返回false。 + */ + @SuppressWarnings("rawtypes") + public boolean isFilterObject(final Object o) { + Class clazz = o.getClass(); + if (clazz.isArray()) { + return clazz.getComponentType().isAssignableFrom(MultipartFile.class); + } else if (Collection.class.isAssignableFrom(clazz)) { + Collection collection = (Collection) o; + for (Object value : collection) { + return value instanceof MultipartFile; + } + } else if (Map.class.isAssignableFrom(clazz)) { + Map map = (Map) o; + for (Object value : map.entrySet()) { + Map.Entry entry = (Map.Entry) value; + return entry.getValue() instanceof MultipartFile; + } + } + return o instanceof MultipartFile || o instanceof HttpServletRequest || o instanceof HttpServletResponse + || o instanceof BindingResult; + } +} diff --git a/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/BusinessType.java b/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/BusinessType.java new file mode 100644 index 0000000..02718f1 --- /dev/null +++ b/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/BusinessType.java @@ -0,0 +1,52 @@ +package com.atguigu.tingshu.common.enums; + +/** + * 业务操作类型 + */ +public enum BusinessType { + /** + * 其它 + */ + OTHER, + + /** + * 新增 + */ + INSERT, + + /** + * 修改 + */ + UPDATE, + + /** + * 删除 + */ + DELETE, + + /** + * 授权 + */ + ASSGIN, + + /** + * 导出 + */ + EXPORT, + + /** + * 导入 + */ + IMPORT, + + + /** + * 更新状态 + */ + STATUS, + + /** + * 清空数据 + */ + CLEAN, +} diff --git a/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/OperatorType.java b/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/OperatorType.java new file mode 100644 index 0000000..dfeadcd --- /dev/null +++ b/common/common-log/src/main/java/com/atguigu/tingshu/common/enums/OperatorType.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.common.enums; + +/** + * 操作人类别 + */ +public enum OperatorType { + /** + * 其它 + */ + OTHER, + + /** + * 后台用户 + */ + MANAGE, + + /** + * 手机端用户 + */ + MOBILE +} diff --git a/common/common-util/pom.xml b/common/common-util/pom.xml new file mode 100644 index 0000000..28e9ce9 --- /dev/null +++ b/common/common-util/pom.xml @@ -0,0 +1,47 @@ + + + + common + com.atguigu.tingshu + 1.0 + + 4.0.0 + + common-util + jar + + + + org.springframework.boot + spring-boot-starter-web + provided + + + org.projectlombok + lombok + + + com.alibaba + fastjson + + + joda-time + joda-time + + + commons-io + commons-io + + + com.google.guava + guava + + + cn.hutool + hutool-all + 5.7.22 + + + diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/result/Result.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/result/Result.java new file mode 100644 index 0000000..b94f985 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/result/Result.java @@ -0,0 +1,85 @@ +package com.atguigu.tingshu.common.result; + + +import lombok.Data; + +/** + * 全局统一返回结果类 + * + */ +@Data +public class Result { + + //返回码 + private Integer code; + + //返回消息 + private String message; + + //返回数据 + private T data; + + public Result(){} + + // 返回数据 + protected static Result build(T data) { + Result result = new Result(); + if (data != null) + result.setData(data); + return result; + } + + public static Result build(T body, Integer code, String message) { + Result result = build(body); + result.setCode(code); + result.setMessage(message); + return result; + } + + public static Result build(T body, ResultCodeEnum resultCodeEnum) { + Result result = build(body); + result.setCode(resultCodeEnum.getCode()); + result.setMessage(resultCodeEnum.getMessage()); + return result; + } + + public static Result ok(){ + return Result.ok(null); + } + + /** + * 操作成功 + * @param data baseCategory1List + * @param + * @return + */ + public static Result ok(T data){ + Result result = build(data); + return build(data, ResultCodeEnum.SUCCESS); + } + + public static Result fail(){ + return Result.fail(null); + } + + /** + * 操作失败 + * @param data + * @param + * @return + */ + public static Result fail(T data){ + Result result = build(data); + return build(data, ResultCodeEnum.FAIL); + } + + public Result message(String msg){ + this.setMessage(msg); + return this; + } + + public Result code(Integer code){ + this.setCode(code); + return this; + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/result/ResultCodeEnum.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/result/ResultCodeEnum.java new file mode 100644 index 0000000..c4e33bf --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/result/ResultCodeEnum.java @@ -0,0 +1,59 @@ +package com.atguigu.tingshu.common.result; + +import lombok.Getter; + +/** + * 统一返回结果状态信息类 + * + */ +@Getter +public enum ResultCodeEnum { + + SUCCESS(200,"成功"), + FAIL(201, "失败"), + SERVICE_ERROR(2012, "服务异常"), + DATA_ERROR(204, "数据异常"), + ILLEGAL_REQUEST(205, "非法请求"), + REPEAT_SUBMIT(206, "重复提交"), + ARGUMENT_VALID_ERROR(210, "参数校验异常"), + SIGN_ERROR(300, "签名错误"), + SIGN_OVERDUE(301, "签名已过期"), + + LOGIN_AUTH(208, "未登陆"), + PERMISSION(209, "没有权限"), + ACCOUNT_ERROR(214, "账号不正确"), + PASSWORD_ERROR(215, "密码不正确"), + PHONE_CODE_ERROR(215, "手机验证码不正确"), + LOGIN_MOBLE_ERROR( 216, "账号不正确"), + ACCOUNT_STOP( 216, "账号已停用"), + NODE_ERROR( 217, "该节点下有子节点,不可以删除"), + + VOD_FILE_ID_ERROR( 220, "声音媒体id不正确"), + + XXL_JOB_ERROR(210, "调度操作失败"), + + ACCOUNT_LESS(220, "账户余额不足"), + ACCOUNT_LOCK_ERROR(221, "账户余额锁定失败"), + ACCOUNT_UNLOCK_ERROR(221, "账户余额解锁失败"), + ACCOUNT_MINUSLOCK_ERROR(221, "账户余额扣减失败"), + ACCOUNT_LOCK_REPEAT(221, "重复锁定"), + ACCOUNT_LOCK_RESULT_NULL(221, "锁定账号结果对象为空"), + ORDER_SUBMIT_REPEAT(221, "超时或重复提交订单"), + + NO_BUY_NOT_SEE(230, "未购买不能观看"), + + EXIST_NO_EXPIRE_LIVE(230, "当前存在未过期直播"), + + REPEAT_BUY_ERROR(231, "已经购买过该专辑"), + + ; + + private Integer code; + + private String message; + + private ResultCodeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/AuthContextHolder.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/AuthContextHolder.java new file mode 100644 index 0000000..8cc00f4 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/AuthContextHolder.java @@ -0,0 +1,22 @@ +package com.atguigu.tingshu.common.util; + +/** + * 获取当前用户信息帮助类 + */ +public class AuthContextHolder { + + private static ThreadLocal userId = new ThreadLocal(); + + public static void setUserId(Long _userId) { + userId.set(_userId); + } + + public static Long getUserId() { + return userId.get(); + } + + public static void removeUserId() { + userId.remove(); + } + +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/Decimal2Serializer.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/Decimal2Serializer.java new file mode 100644 index 0000000..3fa2e19 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/Decimal2Serializer.java @@ -0,0 +1,31 @@ +package com.atguigu.tingshu.common.util; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; +import java.math.BigDecimal; + +/** + * @description 小数保留2位返回给前端序列化器 + */ +public class Decimal2Serializer extends JsonSerializer { + + /** + * 将返回的BigDecimal保留两位小数,再返回给前端 + * @param value + * @param jsonGenerator + * @param serializerProvider + * @throws IOException + * @throws JsonProcessingException + */ + @Override + public void serialize(Object value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + if (value != null) { + BigDecimal bigDecimal = new BigDecimal(value.toString()).setScale(2,BigDecimal.ROUND_HALF_UP); + jsonGenerator.writeString(bigDecimal.toString()); + } + } +} \ No newline at end of file diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ExceptionUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ExceptionUtil.java new file mode 100644 index 0000000..e0f0670 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ExceptionUtil.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.common.util; + + +import java.io.PrintWriter; +import java.io.StringWriter; + +/** + * Exception工具类 + */ +public class ExceptionUtil { + + /** + * 获取异常信息 + * @param e 异常 + * @return 返回异常信息 + */ + public static String getErrorMessage(Exception e){ + StringWriter sw = null; + PrintWriter pw = null; + try { + sw = new StringWriter(); + pw = new PrintWriter(sw, true); + e.printStackTrace(pw); + }finally { + try { + if(pw != null) { + pw.close(); + } + if(sw != null) { + sw.close(); + } + } catch (Exception e1) { + e1.printStackTrace(); + } + } + return sw.toString(); + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/HttpClientUtils.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/HttpClientUtils.java new file mode 100644 index 0000000..5f90593 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/HttpClientUtils.java @@ -0,0 +1,318 @@ +//package com.atguigu.tingshu.common.util; +// +// +//import org.apache.commons.io.IOUtils; +//import org.apache.http.Consts; +//import org.apache.http.HttpEntity; +//import org.apache.http.HttpResponse; +//import org.apache.http.NameValuePair; +//import org.apache.http.client.HttpClient; +//import org.apache.http.client.config.RequestConfig; +//import org.apache.http.client.config.RequestConfig.Builder; +//import org.apache.http.client.entity.UrlEncodedFormEntity; +//import org.apache.http.client.methods.HttpGet; +//import org.apache.http.client.methods.HttpPost; +//import org.apache.http.conn.ConnectTimeoutException; +//import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +//import org.apache.http.conn.ssl.SSLContextBuilder; +//import org.apache.http.conn.ssl.TrustStrategy; +//import org.apache.http.conn.ssl.X509HostnameVerifier; +//import org.apache.http.entity.ContentType; +//import org.apache.http.entity.StringEntity; +//import org.apache.http.impl.client.CloseableHttpClient; +//import org.apache.http.impl.client.HttpClients; +//import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +//import org.apache.http.message.BasicNameValuePair; +//import org.springframework.util.StringUtils; +// +//import javax.net.ssl.SSLContext; +//import javax.net.ssl.SSLException; +//import javax.net.ssl.SSLSession; +//import javax.net.ssl.SSLSocket; +//import java.io.IOException; +//import java.net.SocketTimeoutException; +//import java.security.GeneralSecurityException; +//import java.security.cert.CertificateException; +//import java.security.cert.X509Certificate; +//import java.util.ArrayList; +//import java.util.List; +//import java.util.Map; +//import java.util.Map.Entry; +//import java.util.Set; +// +//public class HttpClientUtils { +// +// public static final int connTimeout=10000; +// public static final int readTimeout=10000; +// public static final String charset="UTF-8"; +// private static HttpClient client = null; +// +// static { +// PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); +// cm.setMaxTotal(128); +// cm.setDefaultMaxPerRoute(128); +// client = HttpClients.custom().setConnectionManager(cm).build(); +// } +// +// public static String postParameters(String url, String parameterStr) throws ConnectTimeoutException, SocketTimeoutException, Exception{ +// return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout); +// } +// +// public static String postParameters(String url, String parameterStr,String charset, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception{ +// return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout); +// } +// +// public static String postParameters(String url, Map params) throws ConnectTimeoutException, +// SocketTimeoutException, Exception { +// return postForm(url, params, null, connTimeout, readTimeout); +// } +// +// public static String postParameters(String url, Map params, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException, +// SocketTimeoutException, Exception { +// return postForm(url, params, null, connTimeout, readTimeout); +// } +// +// public static String get(String url) throws Exception { +// return get(url, charset, null, null); +// } +// +// public static String get(String url, String charset) throws Exception { +// return get(url, charset, connTimeout, readTimeout); +// } +// +// /** +// * 发送一个 Post 请求, 使用指定的字符集编码. +// * +// * @param url +// * @param body RequestBody +// * @param mimeType 例如 application/xml "application/x-www-form-urlencoded" a=1&b=2&c=3 +// * @param charset 编码 +// * @param connTimeout 建立链接超时时间,毫秒. +// * @param readTimeout 响应超时时间,毫秒. +// * @return ResponseBody, 使用指定的字符集编码. +// * @throws ConnectTimeoutException 建立链接超时异常 +// * @throws SocketTimeoutException 响应超时 +// * @throws Exception +// */ +// public static String post(String url, String body, String mimeType,String charset, Integer connTimeout, Integer readTimeout) +// throws ConnectTimeoutException, SocketTimeoutException, Exception { +// HttpClient client = null; +// HttpPost post = new HttpPost(url); +// String result = ""; +// try { +// if (!StringUtils.isEmpty(body)) { +// HttpEntity entity = new StringEntity(body, ContentType.create(mimeType, charset)); +// post.setEntity(entity); +// } +// // 设置参数 +// Builder customReqConf = RequestConfig.custom(); +// if (connTimeout != null) { +// customReqConf.setConnectTimeout(connTimeout); +// } +// if (readTimeout != null) { +// customReqConf.setSocketTimeout(readTimeout); +// } +// post.setConfig(customReqConf.build()); +// +// HttpResponse res; +// if (url.startsWith("https")) { +// // 执行 Https 请求. +// client = createSSLInsecureClient(); +// res = client.execute(post); +// } else { +// // 执行 Http 请求. +// client = HttpClientUtils.client; +// res = client.execute(post); +// } +// result = IOUtils.toString(res.getEntity().getContent(), charset); +// } finally { +// post.releaseConnection(); +// if (url.startsWith("https") && client != null&& client instanceof CloseableHttpClient) { +// ((CloseableHttpClient) client).close(); +// } +// } +// return result; +// } +// +// +// /** +// * 提交form表单 +// * +// * @param url +// * @param params +// * @param connTimeout +// * @param readTimeout +// * @return +// * @throws ConnectTimeoutException +// * @throws SocketTimeoutException +// * @throws Exception +// */ +// public static String postForm(String url, Map params, Map headers, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException, +// SocketTimeoutException, Exception { +// +// HttpClient client = null; +// HttpPost post = new HttpPost(url); +// try { +// if (params != null && !params.isEmpty()) { +// List formParams = new ArrayList(); +// Set> entrySet = params.entrySet(); +// for (Entry entry : entrySet) { +// formParams.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); +// } +// UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, Consts.UTF_8); +// post.setEntity(entity); +// } +// +// if (headers != null && !headers.isEmpty()) { +// for (Entry entry : headers.entrySet()) { +// post.addHeader(entry.getKey(), entry.getValue()); +// } +// } +// // 设置参数 +// Builder customReqConf = RequestConfig.custom(); +// if (connTimeout != null) { +// customReqConf.setConnectTimeout(connTimeout); +// } +// if (readTimeout != null) { +// customReqConf.setSocketTimeout(readTimeout); +// } +// post.setConfig(customReqConf.build()); +// HttpResponse res = null; +// if (url.startsWith("https")) { +// // 执行 Https 请求. +// client = createSSLInsecureClient(); +// res = client.execute(post); +// } else { +// // 执行 Http 请求. +// client = HttpClientUtils.client; +// res = client.execute(post); +// } +// return IOUtils.toString(res.getEntity().getContent(), "UTF-8"); +// } finally { +// post.releaseConnection(); +// if (url.startsWith("https") && client != null +// && client instanceof CloseableHttpClient) { +// ((CloseableHttpClient) client).close(); +// } +// } +// } +// +// +// +// +// /** +// * 发送一个 GET 请求 +// * +// * @param url +// * @param charset +// * @param connTimeout 建立链接超时时间,毫秒. +// * @param readTimeout 响应超时时间,毫秒. +// * @return +// * @throws ConnectTimeoutException 建立链接超时 +// * @throws SocketTimeoutException 响应超时 +// * @throws Exception +// */ +// public static String get(String url, String charset, Integer connTimeout,Integer readTimeout) +// throws ConnectTimeoutException,SocketTimeoutException, Exception { +// +// HttpClient client = null; +// HttpGet get = new HttpGet(url); +// String result = ""; +// try { +// // 设置参数 +// Builder customReqConf = RequestConfig.custom(); +// if (connTimeout != null) { +// customReqConf.setConnectTimeout(connTimeout); +// } +// if (readTimeout != null) { +// customReqConf.setSocketTimeout(readTimeout); +// } +// get.setConfig(customReqConf.build()); +// +// HttpResponse res = null; +// +// if (url.startsWith("https")) { +// // 执行 Https 请求. +// client = createSSLInsecureClient(); +// res = client.execute(get); +// } else { +// // 执行 Http 请求. +// client = HttpClientUtils.client; +// res = client.execute(get); +// } +// +// result = IOUtils.toString(res.getEntity().getContent(), charset); +// } finally { +// get.releaseConnection(); +// if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) { +// ((CloseableHttpClient) client).close(); +// } +// } +// return result; +// } +// +// +// /** +// * 从 response 里获取 charset +// * +// * @param ressponse +// * @return +// */ +// @SuppressWarnings("unused") +// private static String getCharsetFromResponse(HttpResponse ressponse) { +// // Content-Type:text/html; charset=GBK +// if (ressponse.getEntity() != null && ressponse.getEntity().getContentType() != null && ressponse.getEntity().getContentType().getValue() != null) { +// String contentType = ressponse.getEntity().getContentType().getValue(); +// if (contentType.contains("charset=")) { +// return contentType.substring(contentType.indexOf("charset=") + 8); +// } +// } +// return null; +// } +// +// +// +// /** +// * 创建 SSL连接 +// * @return +// * @throws GeneralSecurityException +// */ +// private static CloseableHttpClient createSSLInsecureClient() throws GeneralSecurityException { +// try { +// SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { +// public boolean isTrusted(X509Certificate[] chain,String authType) throws CertificateException { +// return true; +// } +// }).build(); +// +// SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() { +// +// @Override +// public boolean verify(String arg0, SSLSession arg1) { +// return true; +// } +// +// @Override +// public void verify(String host, SSLSocket ssl) +// throws IOException { +// } +// +// @Override +// public void verify(String host, X509Certificate cert) +// throws SSLException { +// } +// +// @Override +// public void verify(String host, String[] cns, +// String[] subjectAlts) throws SSLException { +// } +// +// }); +// +// return HttpClients.custom().setSSLSocketFactory(sslsf).build(); +// +// } catch (GeneralSecurityException e) { +// throw e; +// } +// } +//} \ No newline at end of file diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/IpUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/IpUtil.java new file mode 100644 index 0000000..b88c107 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/IpUtil.java @@ -0,0 +1,82 @@ +package com.atguigu.tingshu.common.util; + +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.http.HttpHeaders; +import org.springframework.http.server.reactive.ServerHttpRequest; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * 获取ip地址 + */ +public class IpUtil { + + public static String getIpAddress(HttpServletRequest request) { + String ipAddress = null; + try { + ipAddress = request.getHeader("x-forwarded-for"); + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + if (ipAddress.equals("127.0.0.1")) { + // 根据网卡取本机配置的IP + InetAddress inet = null; + try { + inet = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + ipAddress = inet.getHostAddress(); + } + } + // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length() + // = 15 + if (ipAddress.indexOf(",") > 0) { + ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")); + } + } + } catch (Exception e) { + ipAddress=""; + } + // ipAddress = this.getRequest().getRemoteAddr(); + + return ipAddress; + } + + public static String getGatwayIpAddress(ServerHttpRequest request) { + HttpHeaders headers = request.getHeaders(); + String ip = headers.getFirst("x-forwarded-for"); + if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { + // 多次反向代理后会有多个ip值,第一个ip才是真实ip + if (ip.indexOf(",") != -1) { + ip = ip.split(",")[0]; + } + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_CLIENT_IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("HTTP_X_FORWARDED_FOR"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = headers.getFirst("X-Real-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddress().getAddress().getHostAddress(); + } + return ip; + } +} \ No newline at end of file diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MD5.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MD5.java new file mode 100644 index 0000000..ce4e21b --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MD5.java @@ -0,0 +1,39 @@ +package com.atguigu.tingshu.common.util; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + + +public final class MD5 { + + public static String encrypt(String strSrc) { + try { + char hexChars[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', + '9', 'a', 'b', 'c', 'd', 'e', 'f' }; + byte[] bytes = strSrc.getBytes(); + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(bytes); + bytes = md.digest(); + int j = bytes.length; + char[] chars = new char[j * 2]; + int k = 0; + for (int i = 0; i < bytes.length; i++) { + byte b = bytes[i]; + chars[k++] = hexChars[b >>> 4 & 0xf]; + chars[k++] = hexChars[b & 0xf]; + } + return new String(chars); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + throw new RuntimeException("MD5加密出错!!+" + e); + } + } + + public static void main(String[] args) { + String msg = "{\"liveRoomId\":1,\"msgContent\":1,\"msgType\":\"4\",\"timestamp\":1679969941853}"; + System.out.println(msg); + msg = msg.replaceAll("\\\\", ""); + System.out.println(msg); + System.out.println(MD5.encrypt("111111")); + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MongoUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MongoUtil.java new file mode 100644 index 0000000..b0f8f61 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/MongoUtil.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.common.util; + +import lombok.Getter; + +public class MongoUtil { + + @Getter + public enum MongoCollectionEnum { + + USER_SUBSCRIBE(100,"userSubscribe"), + USER_COLLECT(100,"userCollect"), + USER_LISTEN_PROCESS(100,"userListenProcess"), + COMMENT(100,"comment"), + COMMENT_PRAISE(100,"commentPraise"), + ; + + private Integer partition; + private String collectionPrefix; + + MongoCollectionEnum(Integer partition, String collectionPrefix) { + this.partition = partition; + this.collectionPrefix = collectionPrefix; + } + + } + + + /** + * 获取mongo表名 + * @param mongoCollection Collection前缀 + * @param userId 用户ID + * @return + */ + public static String getCollectionName(MongoCollectionEnum mongoCollection, Long userId) { + return mongoCollection.getCollectionPrefix() + "_" + userId; + } +} + diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/RandomUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/RandomUtil.java new file mode 100644 index 0000000..20f69e6 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/RandomUtil.java @@ -0,0 +1,65 @@ +package com.atguigu.tingshu.common.util; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Random; + +/** + * 获取随机数 + * + * @author qianyi + * + */ +public class RandomUtil { + + private static final Random random = new Random(); + + private static final DecimalFormat fourdf = new DecimalFormat("0000"); + + private static final DecimalFormat sixdf = new DecimalFormat("000000"); + + public static String getFourBitRandom() { + return fourdf.format(random.nextInt(10000)); + } + + public static String getSixBitRandom() { + return sixdf.format(random.nextInt(1000000)); + } + + /** + * 给定数组,抽取n个数据 + * + * @param swQidsList + * @param n + * @return + */ + public static ArrayList getRandom(List list, int n) { + + Random random = new Random(); + + HashMap hashMap = new HashMap(); + + // 生成随机数字并存入HashMap + for (int i = 0; i < list.size(); i++) { + + int number = random.nextInt(100) + 1; + + hashMap.put(number, i); + } + + // 从HashMap导入数组 + Object[] robjs = hashMap.values().toArray(); + + ArrayList r = new ArrayList(); + + // 遍历数组并打印数据 + for (int i = 0; i < n; i++) { + r.add(list.get((int) robjs[i])); + System.out.print(list.get((int) robjs[i]) + "\t"); + } + System.out.print("\n"); + return r; + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ResponseUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ResponseUtil.java new file mode 100644 index 0000000..fe88b4c --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/ResponseUtil.java @@ -0,0 +1,23 @@ +package com.atguigu.tingshu.common.util; + +import com.atguigu.tingshu.common.result.Result; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; + +import java.io.IOException; + +public class ResponseUtil { + + public static void out(HttpServletResponse response, Result r) { + ObjectMapper mapper = new ObjectMapper(); + response.setStatus(HttpStatus.OK.value()); + response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE); + try { + mapper.writeValue(response.getWriter(), r); + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.java new file mode 100644 index 0000000..7b1c904 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.java @@ -0,0 +1,191 @@ +package com.atguigu.tingshu.common.util; + +import java.util.*; + +public class SensitiveWordFilterUtil { + + //构建一个DFA算法模型 + private static Map sensitiveWordMap = null; + + /** + * 敏感词替换 + * @param txt + * @return + */ + public static String replaceSensitiveWord(String txt){ + if(null == sensitiveWordMap) return txt; + return replaceSensitiveWord(txt, 1, "*"); + } + + /** + * 读取敏感词库,将敏感词放入HashSet中,构建一个DFA算法模型:
+ * 中 = { + * isEnd = 0 + * 国 = {
+ * isEnd = 1 + * 人 = {isEnd = 0 + * 民 = {isEnd = 1} + * } + * 男 = { + * isEnd = 0 + * 人 = { + * isEnd = 1 + * } + * } + * } + * } + * 五 = { + * isEnd = 0 + * 星 = { + * isEnd = 0 + * 红 = { + * isEnd = 0 + * 旗 = { + * isEnd = 1 + * } + * } + * } + * } + */ + public static void buildDFAModel(List keyWordList) { + sensitiveWordMap = new HashMap(keyWordList.size()); //初始化敏感词容器,减少扩容操作 + String key = null; + Map nowMap = null; + Map newWorMap = null; + //迭代keyWordSet + Iterator iterator = keyWordList.iterator(); + while(iterator.hasNext()){ + key = iterator.next(); //关键字 + nowMap = sensitiveWordMap; + for(int i = 0 ; i < key.length() ; i++){ + char keyChar = key.charAt(i); //转换成char型 + Object wordMap = nowMap.get(keyChar); //获取 + + if(wordMap != null){ //如果存在该key,直接赋值 + nowMap = (Map) wordMap; + } + else{ //不存在则,则构建一个map,同时将isEnd设置为0,因为他不是最后一个 + newWorMap = new HashMap(); + newWorMap.put("isEnd", "0"); //不是最后一个 + nowMap.put(keyChar, newWorMap); + nowMap = newWorMap; + } + + if(i == key.length() - 1){ + nowMap.put("isEnd", "1"); //最后一个 + } + } + } + } + + /** + * 获取文字中的敏感词 + * @param txt 文字 + * @param matchType 匹配规则 1:最小匹配规则,2:最大匹配规则 + * @return + */ + private static Set getSensitiveWord(String txt , int matchType){ + Set sensitiveWordList = new HashSet(); + + for(int i = 0 ; i < txt.length() ; i++){ + int length = CheckSensitiveWord(txt, i, matchType); //判断是否包含敏感字符 + if(length > 0){ //存在,加入list中 + sensitiveWordList.add(txt.substring(i, i+length)); + i = i + length - 1; //减1的原因,是因为for会自增 + } + } + + return sensitiveWordList; + } + + /** + * 替换敏感字字符 + * @param txt + * @param matchType + * @param replaceChar 替换字符,默认* + */ + private static String replaceSensitiveWord(String txt,int matchType,String replaceChar){ + String resultTxt = txt; + Set set = getSensitiveWord(txt, matchType); //获取所有的敏感词 + Iterator iterator = set.iterator(); + String word = null; + String replaceString = null; + while (iterator.hasNext()) { + word = iterator.next(); + replaceString = getReplaceChars(replaceChar, word.length()); + resultTxt = resultTxt.replaceAll(word, replaceString); + } + + return resultTxt; + } + + /** + * 获取替换字符串 + * @param replaceChar + * @param length + * @return + */ + private static String getReplaceChars(String replaceChar,int length){ + String resultReplace = replaceChar; + for(int i = 1 ; i < length ; i++){ + resultReplace += replaceChar; + } + + return resultReplace; + } + + /** + * 检查文字中是否包含敏感字符,检查规则如下:
+ * @param txt + * @param beginIndex + * @param matchType + * @return,如果存在,则返回敏感词字符的长度,不存在返回0 + */ + private static int CheckSensitiveWord(String txt,int beginIndex,int matchType){ + boolean flag = false; //敏感词结束标识位:用于敏感词只有1位的情况 + int matchFlag = 0; //匹配标识数默认为0 + char word = 0; + Map nowMap = sensitiveWordMap; + for(int i = beginIndex; i < txt.length() ; i++){ + word = txt.charAt(i); + nowMap = (Map) nowMap.get(word); //获取指定key + if(nowMap != null){ //存在,则判断是否为最后一个 + matchFlag++; //找到相应key,匹配标识+1 + if("1".equals(nowMap.get("isEnd"))){ //如果为最后一个匹配规则,结束循环,返回匹配标识数 + flag = true; //结束标志位为true + if(matchType == 1){ //最小规则,直接返回,最大规则还需继续查找 + break; + } + } + } + else{ //不存在,直接返回 + break; + } + } + if(matchFlag < 2 || !flag){ //长度必须大于等于1,为词 + matchFlag = 0; + } + return matchFlag; + } + + public static void main(String[] args) { + //System.out.println("敏感词的数量:" + filter.sensitiveWordMap.size()); + String string = "太多的伤感情怀也许只局限于饲养基地 荧幕中的情节,主人公尝试着去用某种方式渐渐的很潇洒地释自杀指南怀那些自己经历的伤感。" + + "然后法轮功 我们的扮演的角色就是跟随着主人公的喜红客联盟 怒哀乐而过于牵强的把自己的情感也附加于银幕情节中,然后感动就流泪," + + "难过就躺在某一个人的怀里尽情的阐述心扉或者手机卡复制器一个人一杯红酒一部电影在夜三级片 深人静的晚上,关上电话静静的发呆着。"; + System.out.println("待检测语句字数:" + string.length()); + long beginTime = System.currentTimeMillis(); + + List keyWordSet = new ArrayList<>(); + keyWordSet.add("黄色"); + keyWordSet.add("自杀"); + keyWordSet.add("法轮功"); + keyWordSet.add("三级片"); + SensitiveWordFilterUtil.buildDFAModel(keyWordSet); + + String content = SensitiveWordFilterUtil.replaceSensitiveWord(string); + System.out.println("替换后:" + content); + long endTime = System.currentTimeMillis(); + System.out.println("总共消耗时间为:" + (endTime - beginTime)); + } +} diff --git a/common/common-util/src/main/java/com/atguigu/tingshu/common/util/UploadFileUtil.java b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/UploadFileUtil.java new file mode 100644 index 0000000..4246029 --- /dev/null +++ b/common/common-util/src/main/java/com/atguigu/tingshu/common/util/UploadFileUtil.java @@ -0,0 +1,31 @@ +package com.atguigu.tingshu.common.util; + +import lombok.SneakyThrows; +import org.joda.time.DateTime; +import org.springframework.web.multipart.MultipartFile; + +import java.io.File; + + +public class UploadFileUtil { + + /** + * 文件上传到临时路径 + * @param file + * @return + */ + @SneakyThrows + public static String uploadTempPath(String tempPath, MultipartFile file) { + if (null == file) return ""; + String date = new DateTime().toString("yyyyMMdd"); + String filePath = tempPath + File.separator + date; + File curFlie = new File(filePath); + if (!curFlie.exists()) { + curFlie.mkdirs(); + } + filePath = filePath + File.separator + file.getOriginalFilename(); + file.transferTo(new File(filePath)); + return filePath; + } + +} diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/result/Result.class b/common/common-util/target/classes/com/atguigu/tingshu/common/result/Result.class new file mode 100644 index 0000000..56c9d4a Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/result/Result.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/result/ResultCodeEnum.class b/common/common-util/target/classes/com/atguigu/tingshu/common/result/ResultCodeEnum.class new file mode 100644 index 0000000..1957c82 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/result/ResultCodeEnum.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/AuthContextHolder.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/AuthContextHolder.class new file mode 100644 index 0000000..00fa9ac Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/AuthContextHolder.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/Decimal2Serializer.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/Decimal2Serializer.class new file mode 100644 index 0000000..21eb770 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/Decimal2Serializer.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/ExceptionUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/ExceptionUtil.class new file mode 100644 index 0000000..9c196ea Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/ExceptionUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/IpUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/IpUtil.class new file mode 100644 index 0000000..c404cc2 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/IpUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/MD5.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MD5.class new file mode 100644 index 0000000..ee06bf8 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MD5.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil$MongoCollectionEnum.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil$MongoCollectionEnum.class new file mode 100644 index 0000000..0c477d5 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil$MongoCollectionEnum.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil.class new file mode 100644 index 0000000..071b897 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/MongoUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/RandomUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/RandomUtil.class new file mode 100644 index 0000000..732f909 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/RandomUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/ResponseUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/ResponseUtil.class new file mode 100644 index 0000000..3a9498e Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/ResponseUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.class new file mode 100644 index 0000000..85631c4 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/SensitiveWordFilterUtil.class differ diff --git a/common/common-util/target/classes/com/atguigu/tingshu/common/util/UploadFileUtil.class b/common/common-util/target/classes/com/atguigu/tingshu/common/util/UploadFileUtil.class new file mode 100644 index 0000000..bf11e73 Binary files /dev/null and b/common/common-util/target/classes/com/atguigu/tingshu/common/util/UploadFileUtil.class differ diff --git a/common/pom.xml b/common/pom.xml new file mode 100644 index 0000000..236c8c7 --- /dev/null +++ b/common/pom.xml @@ -0,0 +1,22 @@ + + + + tingshu-parent + com.atguigu.tingshu + 1.0 + + 4.0.0 + + common + pom + + + service-util + common-util + rabbit-util + common-log + + + diff --git a/common/rabbit-util/pom.xml b/common/rabbit-util/pom.xml new file mode 100644 index 0000000..432d36f --- /dev/null +++ b/common/rabbit-util/pom.xml @@ -0,0 +1,48 @@ + + + + common + com.atguigu.tingshu + 1.0 + + 4.0.0 + + rabbit-util + 1.0 + jar + + + rabbit-util服务 + + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.springframework.cloud + spring-cloud-starter-bus-amqp + + + + com.alibaba + fastjson + + + + org.projectlombok + lombok + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + diff --git a/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.java b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.java new file mode 100644 index 0000000..06ff23e --- /dev/null +++ b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.java @@ -0,0 +1,139 @@ +package com.atguigu.tingshu.common.rabbit.config; + +import com.alibaba.fastjson.JSON; +import com.atguigu.tingshu.common.rabbit.entity.GuiguCorrelationData; +import lombok.extern.slf4j.Slf4j; +import org.springframework.amqp.rabbit.connection.CorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; + + +@Slf4j +@Component +public class RabbitInitConfigApplicationListener implements ApplicationListener { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private RedisTemplate redisTemplate; + + @Override + public void onApplicationEvent(ApplicationReadyEvent event) { + this.setupCallbacks(); + } + + private void setupCallbacks() { + + /** + * 只确认消息是否正确到达 Exchange 中,成功与否都会回调 + * + * @param correlation 相关数据 非消息本身业务数据 + * @param ack 应答结果 + * @param reason 如果发送消息到交换器失败,错误原因 + */ + this.rabbitTemplate.setConfirmCallback((correlationData, ack, reason) -> { + if (ack) { + //消息到交换器成功 + log.info("消息发送到Exchange成功:{}", correlationData); + } else { + //消息到交换器失败 + log.error("消息发送到Exchange失败:{}", reason); + + //执行消息重发 + this.retrySendMsg(correlationData); + } + }); + + /** + * 消息没有正确到达队列时触发回调,如果正确到达队列不执行 + */ + this.rabbitTemplate.setReturnsCallback(returned -> { + log.error("Returned: " + returned.getMessage() + "\nreplyCode: " + returned.getReplyCode() + + "\nreplyText: " + returned.getReplyText() + "\nexchange/rk: " + + returned.getExchange() + "/" + returned.getRoutingKey()); + + //当路由队列失败 也需要重发 + //1.构建相关数据对象 + String redisKey = returned.getMessage().getMessageProperties().getHeader("spring_returned_message_correlation"); + String correlationDataStr = (String) redisTemplate.opsForValue().get(redisKey); + GuiguCorrelationData guiguCorrelationData = JSON.parseObject(correlationDataStr, GuiguCorrelationData.class); + //todo 方式一:如果不考虑延迟消息重发 直接返回 + if(guiguCorrelationData.isDelay()){ + return; + } + //2.调用消息重发方法 + this.retrySendMsg(guiguCorrelationData); + }); + } + +// /** +// * 消息重新发送 +// * +// * @param correlationData +// */ +// private void retrySendMsg(CorrelationData correlationData) { +// //获取相关数据 +// GuiguCorrelationData gmallCorrelationData = (GuiguCorrelationData) correlationData; +// +// //获取redis中存放重试次数 +// //先重发,在写会到redis中次数 +// int retryCount = gmallCorrelationData.getRetryCount(); +// if (retryCount >= 3) { +// //超过最大重试次数 +// log.error("生产者超过最大重试次数,将失败的消息存入数据库用人工处理;给管理员发送邮件;给管理员发送短信;"); +// return; +// } +// //重发消息 +// rabbitTemplate.convertAndSend(gmallCorrelationData.getExchange(), gmallCorrelationData.getRoutingKey(), gmallCorrelationData.getMessage(), gmallCorrelationData); +// //重发次数+1 +// retryCount += 1; +// gmallCorrelationData.setRetryCount(retryCount); +// redisTemplate.opsForValue().set(gmallCorrelationData.getId(), JSON.toJSONString(gmallCorrelationData), 10, TimeUnit.MINUTES); +// log.info("进行消息重发!"); +// } + + /** + * 消息重新发送 + * + * @param correlationData + */ + private void retrySendMsg(CorrelationData correlationData) { + //获取相关数据 + GuiguCorrelationData gmallCorrelationData = (GuiguCorrelationData) correlationData; + + //获取redis中存放重试次数 + //先重发,在写会到redis中次数 + int retryCount = gmallCorrelationData.getRetryCount(); + if (retryCount >= 3) { + //超过最大重试次数 + log.error("生产者超过最大重试次数,将失败的消息存入数据库用人工处理;给管理员发送邮件;给管理员发送短信;"); + return; + } + //重发次数+1 + retryCount += 1; + gmallCorrelationData.setRetryCount(retryCount); + redisTemplate.opsForValue().set(gmallCorrelationData.getId(), JSON.toJSONString(gmallCorrelationData), 10, TimeUnit.MINUTES); + log.info("进行消息重发!"); + //重发消息 + //todo 方式二:如果是延迟消息,依然需要设置消息延迟时间 + if (gmallCorrelationData.isDelay()) { + //延迟消息 + rabbitTemplate.convertAndSend(gmallCorrelationData.getExchange(), gmallCorrelationData.getRoutingKey(), gmallCorrelationData.getMessage(), message -> { + message.getMessageProperties().setDelay(gmallCorrelationData.getDelayTime() * 1000); + return message; + }, gmallCorrelationData); + } else { + //普通消息 + rabbitTemplate.convertAndSend(gmallCorrelationData.getExchange(), gmallCorrelationData.getRoutingKey(), gmallCorrelationData.getMessage(), gmallCorrelationData); + } + } + +} + diff --git a/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/constant/MqConst.java b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/constant/MqConst.java new file mode 100644 index 0000000..6dac0ef --- /dev/null +++ b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/constant/MqConst.java @@ -0,0 +1,80 @@ +package com.atguigu.tingshu.common.rabbit.constant; + +public class MqConst { + + /** + * 专辑 + */ + public static final String EXCHANGE_ALBUM = "tingshu.album"; + public static final String ROUTING_ALBUM_UPPER = "tingshu.album.upper"; + public static final String ROUTING_ALBUM_LOWER = "tingshu.album.lower"; + public static final String ROUTING_ALBUM_STAT_UPDATE = "tingshu.album.stat.update"; + public static final String ROUTING_ALBUM_ES_STAT_UPDATE = "tingshu.album.es.stat.update"; + public static final String ROUTING_ALBUM_RANKING_UPDATE = "tingshu.album.ranking.update"; + //队列 + public static final String QUEUE_ALBUM_UPPER = "tingshu.album.upper"; + public static final String QUEUE_ALBUM_LOWER = "tingshu.album.lower"; + public static final String QUEUE_ALBUM_STAT_UPDATE = "tingshu.album.stat.update"; + public static final String QUEUE_ALBUM_ES_STAT_UPDATE = "tingshu.album.es.stat.update"; + public static final String QUEUE_ALBUM_RANKING_UPDATE = "tingshu.album.ranking.update"; + + /** + * 声音 + */ + public static final String EXCHANGE_TRACK = "tingshu.track"; + public static final String ROUTING_TRACK_STAT_UPDATE = "tingshu.track.stat.update"; + public static final String QUEUE_TRACK_STAT_UPDATE = "tingshu.track.stat.update"; + + /** + * 取消订单 + */ + //延迟取消订单队列 + /** + * 取消订单延迟消息 + */ + public static final String EXCHANGE_CANCEL_ORDER = "tingshu.cancel.order"; + public static final String ROUTING_CANCEL_ORDER = "tingshu.cancel.order"; + public static final String QUEUE_CANCEL_ORDER = "tingshu.cancel.order"; + public static final Integer CANCEL_ORDER_DELAY_TIME = 15 * 60; + + /** + * 支付 + */ + public static final String EXCHANGE_ORDER = "tingshu.order"; + public static final String ROUTING_ORDER_PAY_SUCCESS = "tingshu.order.pay.success"; + public static final String ROUTING_RECHARGE_PAY_SUCCESS = "tingshu.recharge.pay.success"; + public static final String QUEUE_ORDER_PAY_SUCCESS = "tingshu.order.pay.success"; + public static final String QUEUE_RECHARGE_PAY_SUCCESS = "tingshu.recharge.pay.success"; + + + /** + * 账户 + */ + public static final String EXCHANGE_ACCOUNT = "tingshu.account"; + public static final String ROUTING_ACCOUNT_UNLOCK = "tingshu.account.unlock"; + public static final String ROUTING_ACCOUNT_MINUS = "tingshu.account.minus"; + public static final String QUEUE_ACCOUNT_UNLOCK = "tingshu.account.unlock"; + public static final String QUEUE_ACCOUNT_MINUS = "tingshu.account.minus"; + + /** + * 用户 + */ + public static final String EXCHANGE_USER = "tingshu.user"; + public static final String ROUTING_USER_PAY_RECORD = "tingshu.user.pay.record"; + public static final String ROUTING_USER_REGISTER = "tingshu.user.register"; + public static final String ROUTING_USER_VIP_EXPIRE_STATUS = "tingshu.user.vip.expire.status"; + public static final String QUEUE_USER_PAY_RECORD = "tingshu.user.pay.record"; + public static final String QUEUE_USER_REGISTER = "tingshu.user.register"; + public static final String QUEUE_USER_VIP_EXPIRE_STATUS = "tingshu.user.vip.expire.status"; + + /** + * 热门关键字 + */ + public static final String EXCHANGE_KEYWORD = "tingshu.keyword"; + public static final String ROUTING_KEYWORD_INPUT = "tingshu.keyword.input"; + public static final String ROUTING_KEYWORD_OUT = "tingshu.keyword.out"; + public static final String QUEUE_KEYWORD_INPUT = "tingshu.keyword.input"; + public static final String QUEUE_KEYWORD_OUT = "tingshu.keyword.out"; + + +} diff --git a/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.java b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.java new file mode 100644 index 0000000..e8482cc --- /dev/null +++ b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.common.rabbit.entity; + +import lombok.Data; +import org.springframework.amqp.rabbit.connection.CorrelationData; + +@Data +public class GuiguCorrelationData extends CorrelationData { + + //消息体 + private Object message; + //交换机 + private String exchange; + //路由键 + private String routingKey; + //重试次数 + private int retryCount = 0; + //是否延迟消息 + private boolean isDelay = false; + //延迟时长 + private int delayTime = 10; +} diff --git a/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/service/RabbitService.java b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/service/RabbitService.java new file mode 100644 index 0000000..b25c49f --- /dev/null +++ b/common/rabbit-util/src/main/java/com/atguigu/tingshu/common/rabbit/service/RabbitService.java @@ -0,0 +1,74 @@ +package com.atguigu.tingshu.common.rabbit.service; + + +import com.alibaba.fastjson.JSON; +import com.atguigu.tingshu.common.rabbit.entity.GuiguCorrelationData; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +@Service +public class RabbitService { + + @Autowired + private RabbitTemplate rabbitTemplate; + + @Autowired + private RedisTemplate redisTemplate; + + /** + * 发送消息 + * + * @param exchange 交换机 + * @param routingKey 路由键 + * @param message 消息 + */ + public boolean sendMessage(String exchange, String routingKey, Object message) { + //1.创建自定义相关消息对象-包含业务数据本身,交换器名称,路由键,队列类型,延迟时间,重试次数 + GuiguCorrelationData correlationData = new GuiguCorrelationData(); + String uuid = "mq:" + UUID.randomUUID().toString().replaceAll("-", ""); + correlationData.setId(uuid); + correlationData.setMessage(message); + correlationData.setExchange(exchange); + correlationData.setRoutingKey(routingKey); + //2.将相关消息存入Redis Key:UUID 相关消息对象 10 分钟 + redisTemplate.opsForValue().set(uuid, JSON.toJSONString(correlationData), 10, TimeUnit.MINUTES); + //3.将相关消息封装到发送消息方法中 + rabbitTemplate.convertAndSend(exchange, routingKey, message, correlationData); + return true; + } + + /** + * 发送延迟消息方法 + * + * @param exchange 交换机 + * @param routingKey 路由键 + * @param message 消息数据 + * @param delayTime 延迟时间,单位为:秒 + */ + public boolean sendDealyMessage(String exchange, String routingKey, Object message, int delayTime) { + //1.创建自定义相关消息对象-包含业务数据本身,交换器名称,路由键,队列类型,延迟时间,重试次数 + GuiguCorrelationData correlationData = new GuiguCorrelationData(); + String uuid = "mq:" + UUID.randomUUID().toString().replaceAll("-", ""); + correlationData.setId(uuid); + correlationData.setMessage(message); + correlationData.setExchange(exchange); + correlationData.setRoutingKey(routingKey); + correlationData.setDelay(true); + correlationData.setDelayTime(delayTime); + + //2.将相关消息存入Redis Key:UUID 相关消息对象 10 分钟 + redisTemplate.opsForValue().set(uuid, JSON.toJSONString(correlationData), 10, TimeUnit.MINUTES); + //3.将相关消息封装到发送消息方法中 + rabbitTemplate.convertAndSend(exchange, routingKey, message, message1 -> { + message1.getMessageProperties().setDelay(delayTime * 1000); + return message1; + }, correlationData); + return true; + } + +} diff --git a/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.class b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.class new file mode 100644 index 0000000..b9d7b3c Binary files /dev/null and b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/config/RabbitInitConfigApplicationListener.class differ diff --git a/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/constant/MqConst.class b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/constant/MqConst.class new file mode 100644 index 0000000..c553699 Binary files /dev/null and b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/constant/MqConst.class differ diff --git a/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.class b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.class new file mode 100644 index 0000000..51b34e0 Binary files /dev/null and b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/entity/GuiguCorrelationData.class differ diff --git a/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/service/RabbitService.class b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/service/RabbitService.class new file mode 100644 index 0000000..fd84d80 Binary files /dev/null and b/common/rabbit-util/target/classes/com/atguigu/tingshu/common/rabbit/service/RabbitService.class differ diff --git a/common/service-util/pom.xml b/common/service-util/pom.xml new file mode 100644 index 0000000..cf9e591 --- /dev/null +++ b/common/service-util/pom.xml @@ -0,0 +1,92 @@ + + + + common + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-util + + + + com.atguigu.tingshu + common-util + 1.0 + + + com.atguigu.tingshu + model + 1.0 + + + org.springframework.boot + spring-boot-starter-web + + + com.baomidou + mybatis-plus-boot-starter + + + + mysql + mysql-connector-java + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + + + + org.springframework.boot + spring-boot-starter-validation + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + + + + + + + org.springframework.boot + spring-boot-starter-aop + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.java new file mode 100644 index 0000000..9cf3889 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.java @@ -0,0 +1,49 @@ +package com.atguigu.tingshu.common.config.knife4j; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Contact; +import io.swagger.v3.oas.models.info.Info; +import org.springdoc.core.models.GroupedOpenApi; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class Knife4jConfig { + + @Value("${spring.application.name}") + private String appName; + + @Bean + public GroupedOpenApi webApi() { + return GroupedOpenApi.builder() + .group("web-api") + .pathsToMatch("/api/**") + .build(); + } + + /*后台管理相关文档 接口地址以/admin开头 */ + //@Bean + //public GroupedOpenApi adminApi() { + // return GroupedOpenApi.builder() + // .group("admin-api") + // .pathsToMatch("/admin/**") + // .build(); + //} + + /*** + * @description 自定义接口信息 + */ + @Bean + public OpenAPI customOpenAPI() { + + return new OpenAPI() + .info(new Info() + .title(appName + "听书API接口文档") + .version("1.0") + .description("听书API接口文档") + .contact(new Contact().name("atguigu"))); + } + + +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.java new file mode 100644 index 0000000..04032f0 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.java @@ -0,0 +1,32 @@ +package com.atguigu.tingshu.common.config.mybatisPlus; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * MybatisPlus配置类 + * + */ +@EnableTransactionManagement +@Configuration +@MapperScan("com.atguigu.tingshu.*.mapper") +public class MybatisPlusConfig { + + /** + * + * @return + */ + @Bean + public MybatisPlusInterceptor optimisticLockerInnerInterceptor(){ + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + //向Mybatis过滤器链中添加分页拦截器 + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); + return interceptor; + } + +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/config/redis/RedisConfig.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/redis/RedisConfig.java new file mode 100644 index 0000000..a964ab0 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/config/redis/RedisConfig.java @@ -0,0 +1,39 @@ +package com.atguigu.tingshu.common.config.redis; + +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.*; + + +/** + * Redis配置类 + */ +@Configuration +@EnableCaching +public class RedisConfig { + + @Bean + @Primary + public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + + //String的序列化方式 + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + // 使用GenericJackson2JsonRedisSerializer 替换默认序列化(默认采用的是JDK序列化) + GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(); + + //序列号key value + redisTemplate.setKeySerializer(stringRedisSerializer); + redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer); + redisTemplate.setHashKeySerializer(stringRedisSerializer); + redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer); + + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/RedisConstant.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/RedisConstant.java new file mode 100644 index 0000000..7dfec26 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/RedisConstant.java @@ -0,0 +1,72 @@ +package com.atguigu.tingshu.common.constant; + +public class RedisConstant { + + public static final String ALBUM_INFO_PREFIX = "album:info:"; + + public static final String CACHE_INFO_PREFIX = "cache:info:"; + public static final String CACHE_LOCK_SUFFIX = ":lock"; + + //单位:秒 + //单位:秒 尝试获取锁的最大等待时间 + public static final long ALBUM_LOCK_WAIT_PX1 = 1; + //单位:秒 锁的持有时间 + public static final long ALBUM_LOCK_EXPIRE_PX2 = 3; + + public static final long ALBUM_TIMEOUT = 1 * 60 * 60; + // 商品如果在数据库中不存在那么会缓存一个空对象进去,但是这个对象是没有用的,所以这个对象的过期时间应该不能太长, + // 如果太长会占用内存。 + // 定义变量,记录空对象的缓存过期时间 + public static final long ALBUM_TEMPORARY_TIMEOUT = 10 * 60; + // 布隆过滤器使用! + public static final String ALBUM_BLOOM_FILTER = "album:bloom:filter"; + + + //订单防重流水号前缀 + public static final String ORDER_TRADE_NO_PREFIX = "user:trade:"; + //订单流水号有效期 + public static final int ORDER_TRADE_EXPIRE = 5; + + + //单位:秒 + //单位:秒 尝试获取锁的最大等待时间 + public static final long CACHE_LOCK_EXPIRE_PX1 = 1; + //单位:秒 锁的持有时间 + public static final long CACHE_LOCK_EXPIRE_PX2 = 1; + + public static final long CACHE_TIMEOUT = 24 * 60 * 60; + // 商品如果在数据库中不存在那么会缓存一个空对象进去,但是这个对象是没有用的,所以这个对象的过期时间应该不能太长, + // 如果太长会占用内存。 + // 定义变量,记录空对象的缓存过期时间 + public static final long CACHE_TEMPORARY_TIMEOUT = 10 * 60; + + //用户登录 + public static final String USER_LOGIN_KEY_PREFIX = "user:login:"; + public static final String USER_LOGIN_REFRESH_KEY_PREFIX = "user:login:refresh:"; + public static final int USER_LOGIN_KEY_TIMEOUT = 60 * 60 * 24 * 100; + public static final int USER_LOGIN_REFRESH_KEY_TIMEOUT = 60 * 60 * 24 * 365; + + public static final String RANKING_KEY_PREFIX = "ranking:"; + public static final String ALBUM_STAT_ENDTIME = "album:stat:endTime"; + + + //更新声音统计前缀 + public static final String USER_TRACK_REPEAT_STAT_PREFIX = "user:track:"; + + + //重复锁定账户 + public static final String ACCOUNT_MUTIPLE_CHECK = "account:rechecklock:"; + //账户锁定对象 + public static final String ACCOUNT_CHECK_DATA = "account:check:"; + + //重复扣减锁定金额 + public static final String ACCOUNT_MUTIPLE_MINUS = "account:deductlock"; + + + //公用的业务标识前缀 + public static final String BUSINESS_PREFIX = "biz:"; + + + + +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/SystemConstant.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/SystemConstant.java new file mode 100644 index 0000000..32f5b29 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/constant/SystemConstant.java @@ -0,0 +1,74 @@ +package com.atguigu.tingshu.common.constant; + +public class SystemConstant { + + //专辑付费类型 0101-免费、0102-vip免费、0103-付费 + public static final String ALBUM_PAY_TYPE_FREE="0101"; // 免费 + public static final String ALBUM_PAY_TYPE_VIPFREE="0102"; // vip免费 + public static final String ALBUM_PAY_TYPE_REQUIRE="0103"; // 付费 + + //专辑价格类型 0201-单集 0202-整专辑 + public static final String ALBUM_PRICE_TYPE_ONE="0201"; // 单级 + public static final String ALBUM_PRICE_TYPE_ALL="0202"; // 整专辑 + + //专辑状态 0301-审核通过 0302-审核不通过 + public static final String ALBUM_STATUS_PASS="0301"; // 审核通过 + public static final String ALBUM_STATUS_NO_PASS="0302"; // 审核不通过 + + //专辑统计 0401-播放量 0402-订阅量 0403-购买量 0403-评论数 + public static final String ALBUM_STAT_PLAY="0401"; // 播放量 + public static final String ALBUM_STAT_SUBSCRIBE="0402"; // 订阅量 + public static final String ALBUM_STAT_BUY="0403"; // 购买量 + public static final String ALBUM_STAT_COMMENT="0404"; // 评论数 + + //声音状态 0501-审核通过 0502"-审核不通过 + public static final String TRACK_STATUS_PASS="0501"; // 审核通过 + public static final String TRACK_STATUS_NO_PASS="0502"; // 审核不通过 + + //声音来源 0601-用户原创 0602-上传 + public static final String TRACK_SOURCE_USER="0601"; // 用户原创 + public static final String TRACK_SOURCE_UPLOAD="0602"; // 上传 + + // 声音统计 0701-播放量 0702-收藏量 0703-点赞量 0704-评论数 + public static final String TRACK_STAT_PLAY="0701"; // 播放量 + public static final String TRACK_STAT_COLLECT="0702"; // 收藏量 + public static final String TRACK_STAT_PRAISE="0703"; // 点赞量 + public static final String TRACK_STAT_COMMENT="0704"; // 评论数 + + //用户状态 0801-正常 0802-锁定 + public static final String USER_STATUS_NORMAL="0801"; // 正常 + public static final String USER_STATUS_LOCK="0802"; // 锁定 + + //订单状态 0901-正常 0902-已支付 0903-已取消 + public static final String ORDER_STATUS_UNPAID="0901"; // 未支付 + public static final String ORDER_STATUS_PAID="0902"; // 已支付 + public static final String ORDER_STATUS_CANCEL="0903"; // 已取消 + + //订单付款项目类型 1001-专辑 1002-声音 1003-vip会员 + public static final String ORDER_ITEM_TYPE_ALBUM="1001"; // 专辑 + public static final String ORDER_ITEM_TYPE_TRACK="1002"; // 声音 + public static final String ORDER_ITEM_TYPE_VIP="1003"; // vip会员 + + //订单支付方式 1101-微信 1102-支付宝 1103-账户余额 + public static final String ORDER_PAY_WAY_WEIXIN="1101"; // 微信 + public static final String ORDER_PAY_WAY_ALIPAY="1102"; // 支付宝 + public static final String ORDER_PAY_ACCOUNT="1103"; // 账户余额 + + //账号交易类型 1201-充值 1202-锁定 1203-解锁 1204-消费 + public static final String ACCOUNT_TRADE_TYPE_DEPOSIT="1201"; // 充值 + public static final String ACCOUNT_TRADE_TYPE_LOCK="1202"; // 锁定 + public static final String ACCOUNT_TRADE_TYPE_UNLOCK="1203"; // 解锁 + public static final String ACCOUNT_TRADE_TYPE_MINUS="1204"; // 消费 + + //支付类型 1301-订单 1302-充值 + public static final String PAYMENT_TYPE_ORDER="1301"; // 订单 + public static final String PAYMENT_TYPE_RECHARGE="1302"; // 充值 + + //支付表支付状态 1401-未支付 1402-已支付 + public static final String PAYMENT_STATUS_UNPAID="1401"; // 未支付 + public static final String PAYMENT_STATUS_PAID="1402"; // 已支付 + + //订单减免类型 1405-专辑折扣 1406-VIP服务折 + public static final String ORDER_DERATE_ALBUM_DISCOUNT="1405"; // 专辑折扣 + public static final String ORDER_DERATE_VIP_SERVICE_DISCOUNT="1406"; // VIP服务折扣 +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/execption/GuiguException.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/execption/GuiguException.java new file mode 100644 index 0000000..3af99b4 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/execption/GuiguException.java @@ -0,0 +1,45 @@ +package com.atguigu.tingshu.common.execption; + +import com.atguigu.tingshu.common.result.ResultCodeEnum; +import lombok.Data; + +/** + * 自定义全局异常类 + * + */ +@Data +public class GuiguException extends RuntimeException { + + private Integer code; + + private String message; + + /** + * 通过状态码和错误消息创建异常对象 + * @param code + * @param message + */ + public GuiguException(Integer code, String message) { + super(message); + this.code = code; + this.message = message; + } + + /** + * 接收枚举类型对象 + * @param resultCodeEnum + */ + public GuiguException(ResultCodeEnum resultCodeEnum) { + super(resultCodeEnum.getMessage()); + this.code = resultCodeEnum.getCode(); + this.message = resultCodeEnum.getMessage(); + } + + @Override + public String toString() { + return "GuliException{" + + "code=" + code + + ", message=" + this.getMessage() + + '}'; + } +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.java new file mode 100644 index 0000000..858b81d --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.java @@ -0,0 +1,83 @@ +package com.atguigu.tingshu.common.handler; + +import com.atguigu.tingshu.common.execption.GuiguException; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.common.result.ResultCodeEnum; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.BindException; +import org.springframework.validation.BindingResult; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +/** + * 全局异常处理类 + */ +@Slf4j +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(Exception.class) + @ResponseBody + public Result error(Exception e) { + log.error("触发Exception异常拦截:{}", e); + return Result.fail(); + } + + /** + * 自定义异常处理方法 + * + * @param e + * @return + */ + @ExceptionHandler(GuiguException.class) + @ResponseBody + public Result error(GuiguException e) { + log.error("触发GuiguException异常拦截:{}", e); + return Result.build(null, e.getCode(), e.getMessage()); + } + + @ExceptionHandler({IllegalArgumentException.class}) + @ResponseBody + public Result llegalArgumentException(Exception e) { + log.error("触发异常拦截: " + e.getMessage(), e); + return Result.build(null, ResultCodeEnum.ARGUMENT_VALID_ERROR); + } + + + @ExceptionHandler(value = BindException.class) + @ResponseBody + public Result error(BindException exception) { + BindingResult result = exception.getBindingResult(); + Map errorMap = new HashMap<>(); + List fieldErrors = result.getFieldErrors(); + fieldErrors.forEach(error -> { + log.error("field: " + error.getField() + ", msg:" + error.getDefaultMessage()); + errorMap.put(error.getField(), error.getDefaultMessage()); + }); + + log.error("触发BindException异常拦截: {}" + errorMap); + return Result.build(errorMap, ResultCodeEnum.ARGUMENT_VALID_ERROR); + } + + @ExceptionHandler(value = MethodArgumentNotValidException.class) + @ResponseBody + public Result error(MethodArgumentNotValidException exception) { + BindingResult result = exception.getBindingResult(); + Map errorMap = new HashMap<>(); + List fieldErrors = result.getFieldErrors(); + fieldErrors.forEach(error -> { + log.error("field: " + error.getField() + ", msg:" + error.getDefaultMessage()); + errorMap.put(error.getField(), error.getDefaultMessage()); + }); + log.error("触发MethodArgumentNotValidException异常拦截: {}" + errorMap); + return Result.build(errorMap, ResultCodeEnum.ARGUMENT_VALID_ERROR); + } +} diff --git a/common/service-util/src/main/java/com/atguigu/tingshu/common/interceptor/FeignInterceptor.java b/common/service-util/src/main/java/com/atguigu/tingshu/common/interceptor/FeignInterceptor.java new file mode 100644 index 0000000..41d5a60 --- /dev/null +++ b/common/service-util/src/main/java/com/atguigu/tingshu/common/interceptor/FeignInterceptor.java @@ -0,0 +1,25 @@ +package com.atguigu.tingshu.common.interceptor; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +@Component +public class FeignInterceptor implements RequestInterceptor { + + public void apply(RequestTemplate requestTemplate){ + // 获取请求对象 + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + //异步编排 与 MQ消费者端 为 null + if(null != requestAttributes) { + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)requestAttributes; + HttpServletRequest request = servletRequestAttributes.getRequest(); + String token = request.getHeader("token"); + requestTemplate.header("token", token); + } + } +} diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.class b/common/service-util/target/classes/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.class new file mode 100644 index 0000000..ed8a5a7 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/config/knife4j/Knife4jConfig.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.class b/common/service-util/target/classes/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.class new file mode 100644 index 0000000..45dc4c0 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/config/mybatisPlus/MybatisPlusConfig.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedisConfig.class b/common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedisConfig.class new file mode 100644 index 0000000..1162366 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/config/redis/RedisConfig.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/constant/RedisConstant.class b/common/service-util/target/classes/com/atguigu/tingshu/common/constant/RedisConstant.class new file mode 100644 index 0000000..4fe44a9 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/constant/RedisConstant.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/constant/SystemConstant.class b/common/service-util/target/classes/com/atguigu/tingshu/common/constant/SystemConstant.class new file mode 100644 index 0000000..64e0307 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/constant/SystemConstant.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/execption/GuiguException.class b/common/service-util/target/classes/com/atguigu/tingshu/common/execption/GuiguException.class new file mode 100644 index 0000000..a941fc8 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/execption/GuiguException.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.class b/common/service-util/target/classes/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.class new file mode 100644 index 0000000..6b0a64f Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/handler/GlobalExceptionHandler.class differ diff --git a/common/service-util/target/classes/com/atguigu/tingshu/common/interceptor/FeignInterceptor.class b/common/service-util/target/classes/com/atguigu/tingshu/common/interceptor/FeignInterceptor.class new file mode 100644 index 0000000..1b24da7 Binary files /dev/null and b/common/service-util/target/classes/com/atguigu/tingshu/common/interceptor/FeignInterceptor.class differ diff --git a/model/pom.xml b/model/pom.xml new file mode 100644 index 0000000..f7c78ae --- /dev/null +++ b/model/pom.xml @@ -0,0 +1,58 @@ + + + + tingshu-parent + com.atguigu.tingshu + 1.0 + + 4.0.0 + + model + + + + + org.projectlombok + lombok + + + com.atguigu.tingshu + common-util + 1.0 + provided + + + + + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + provided + + + com.baomidou + mybatis-plus-boot-starter + provided + + + + org.springframework.boot + spring-boot-starter-validation + provided + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + provided + + + org.springframework.boot + spring-boot-starter-data-mongodb + provided + + + \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/account/RechargeInfo.java b/model/src/main/java/com/atguigu/tingshu/model/account/RechargeInfo.java new file mode 100644 index 0000000..ab53e25 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/account/RechargeInfo.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.model.account; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "RechargeInfo") +@TableName("recharge_info") +public class RechargeInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户ID") + @TableField("user_id") + private Long userId; + + @Schema(description = "充值订单编号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "充值状态:0901-未支付 0902-已支付 0903-已取消") + @TableField("recharge_status") + private String rechargeStatus; + + @Schema(description = "充值金额") + @TableField("recharge_amount") + private BigDecimal rechargeAmount; + + @Schema(description = "支付方式:1101-微信 1102-支付宝") + @TableField("pay_way") + private String payWay; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/account/UserAccount.java b/model/src/main/java/com/atguigu/tingshu/model/account/UserAccount.java new file mode 100644 index 0000000..49d95fe --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/account/UserAccount.java @@ -0,0 +1,42 @@ +package com.atguigu.tingshu.model.account; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "UserAccount") +@TableName("user_account") +public class UserAccount extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "账户总金额") + @TableField("total_amount") + private BigDecimal totalAmount; + + @Schema(description = "锁定金额") + @TableField("lock_amount") + private BigDecimal lockAmount; + + @Schema(description = "可用金额") + @TableField("available_amount") + private BigDecimal availableAmount; + + @Schema(description = "总收入") + @TableField("total_income_amount") + private BigDecimal totalIncomeAmount; + + @Schema(description = "总支出") + @TableField("total_pay_amount") + private BigDecimal totalPayAmount; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/account/UserAccountDetail.java b/model/src/main/java/com/atguigu/tingshu/model/account/UserAccountDetail.java new file mode 100644 index 0000000..e6b9c87 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/account/UserAccountDetail.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.model.account; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "UserAccountDetail") +@TableName("user_account_detail") +public class UserAccountDetail extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "交易标题") + @TableField("title") + private String title; + + @Schema(description = "交易类型:1201-充值 1202-锁定 1203-解锁 1204-消费") + @TableField("trade_type") + private String tradeType; + + @Schema(description = "金额") + @TableField("amount") + private BigDecimal amount; + + @Schema(description = "订单编号") + @TableField("order_no") + private String orderNo; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/AlbumAttributeValue.java b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumAttributeValue.java new file mode 100644 index 0000000..7167ca0 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumAttributeValue.java @@ -0,0 +1,35 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + + +@Data +@Schema(description = "专辑属性值") +public class AlbumAttributeValue extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "专辑id") + private Long albumId; + + @NotNull(message = "属性id不能为空") + @Schema(description = "属性id") + private Long attributeId; + + @NotNull(message = "属性值id不能为空") + @Schema(description = "属性值id") + private Long valueId; + + @Schema(description = "属性名称") + @TableField(exist = false) + private String attributeName; + + @Schema(description = "属性值名称") + @TableField(exist = false) + private String valueName; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/AlbumInfo.java b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumInfo.java new file mode 100644 index 0000000..01c9b18 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumInfo.java @@ -0,0 +1,106 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "AlbumInfo") +@TableName("album_info") +public class AlbumInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "标题") + @TableField("album_title") + private String albumTitle; + + @Schema(description = "三级分类id") + @TableField("category3_id") + private Long category3Id; + + @Schema(description = "专辑简介") + @TableField("album_intro") + private String albumIntro; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + @TableField("cover_url") + private String coverUrl; + + @Schema(description = "专辑包含声音总数") + @TableField("include_track_count") + private Integer includeTrackCount; + + @Schema(description = "专辑是否完结:0-否;1-完结;") + @TableField("is_finished") + private String isFinished; + + @Schema(description = "预计更新多少集") + @TableField("estimated_track_count") + private Integer estimatedTrackCount; + + @Schema(description = "专辑简介,富文本") + @TableField("album_rich_intro") + private String albumRichIntro; + + @Schema(description = "专辑评分") + @TableField("quality_score") + private String qualityScore; + + @Schema(description = "付费类型: 0101-免费、0102-vip免费、0103-付费") + @TableField("pay_type") + private String payType; + + @Schema(description = "价格类型: 0201-单集 0202-整专辑") + @TableField("price_type") + private String priceType; + + @Schema(description = "原价") + @TableField("price") + private BigDecimal price; + + @Schema(description = "0.1-9.9 不打折 -1") + @TableField("discount") + private BigDecimal discount; + + @Schema(description = "0.1-9.9 不打折 -1") + @TableField("vip_discount") + private BigDecimal vipDiscount; + + @Schema(description = "免费试听集数") + @TableField("tracks_for_free") + private Integer tracksForFree; + + @Schema(description = "每集免费试听秒数") + @TableField("seconds_for_free") + private Integer secondsForFree; + + @Schema(description = "购买须知,富文本") + @TableField("buy_notes") + private String buyNotes; + + @Schema(description = "专辑卖点,富文本") + @TableField("selling_point") + private String sellingPoint; + + @Schema(description = "是否公开:0-否 1-是") + @TableField("is_open") + private String isOpen; + + @Schema(description = "状态") + @TableField("status") + private String status; + + @Schema(description = "属性值集合") + @TableField(exist = false) + private List albumAttributeValueVoList; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/AlbumStat.java b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumStat.java new file mode 100644 index 0000000..cd25630 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/AlbumStat.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "AlbumStat") +@TableName("album_stat") +public class AlbumStat extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "专辑id") + @TableField("album_id") + private Long albumId; + + @Schema(description = "统计类型") + @TableField("stat_type") + private String statType; + + @Schema(description = "统计数目") + @TableField("stat_num") + private Integer statNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttribute.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttribute.java new file mode 100644 index 0000000..9f888a9 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttribute.java @@ -0,0 +1,29 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "BaseAttribute") +@TableName("base_attribute") +public class BaseAttribute extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "一级分类id") + @TableField("category1_id") + private Long category1Id; + + @Schema(description = "属性显示名称") + @TableField("attribute_name") + private String attributeName; + + @TableField(exist = false) + private List attributeValueList; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttributeValue.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttributeValue.java new file mode 100644 index 0000000..4194e87 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseAttributeValue.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "BaseAttributeValue") +@TableName("base_attribute_value") +public class BaseAttributeValue extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "属性id") + @TableField("attribute_id") + private Long attributeId; + + @Schema(description = "属性值名称") + @TableField("value_name") + private String valueName; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory1.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory1.java new file mode 100644 index 0000000..ef14aac --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory1.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "BaseCategory1") +@TableName("base_category1") +public class BaseCategory1 extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "分类名称") + @TableField("name") + private String name; + + @Schema(description = "排序") + @TableField("order_num") + private Integer orderNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory2.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory2.java new file mode 100644 index 0000000..075c8f1 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory2.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "BaseCategory2") +@TableName("base_category2") +public class BaseCategory2 extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "二级分类名称") + @TableField("name") + private String name; + + @Schema(description = "一级分类编号") + @TableField("category1_id") + private Long category1Id; + + @Schema(description = "orderNum") + @TableField("order_num") + private Integer orderNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory3.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory3.java new file mode 100644 index 0000000..d92f852 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategory3.java @@ -0,0 +1,31 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "BaseCategory3") +@TableName("base_category3") +public class BaseCategory3 extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "三级分类名称") + @TableField("name") + private String name; + + @Schema(description = "二级分类编号") + @TableField("category2_id") + private Long category2Id; + + @Schema(description = "排序") + @TableField("order_num") + private Integer orderNum; + + @Schema(description = "是否置顶") + @TableField("is_top") + private Integer isTop; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategoryView.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategoryView.java new file mode 100644 index 0000000..904d939 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseCategoryView.java @@ -0,0 +1,50 @@ +// +// +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + *

+ * BaseCategoryView + *

+ * + * @author atguigu + */ +@Data +@Schema(description = "分类视图") +@TableName("base_category_view") +public class BaseCategoryView extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "一级分类编号") + @TableField("category1_id") + private Long category1Id; + + @Schema(description = "一级分类名称") + @TableField("category1_name") + private String category1Name; + + @Schema(description = "二级分类编号") + @TableField("category2_id") + private Long category2Id; + + @Schema(description = "二级分类名称") + @TableField("category2_name") + private String category2Name; + + @Schema(description = "三级分类编号") + @TableField("category3_id") + private Long category3Id; + + @Schema(description = "三级分类名称") + @TableField("category3_name") + private String category3Name; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/BaseDic.java b/model/src/main/java/com/atguigu/tingshu/model/album/BaseDic.java new file mode 100644 index 0000000..3b78546 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/BaseDic.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "BaseDic") +@TableName("base_dic") +public class BaseDic extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "code") + @TableField("code") + private String code; + + @Schema(description = "编码名称") + @TableField("dic_name") + private String dicName; + + @Schema(description = "父编号") + @TableField("parent_code") + private String parentCode; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/TrackInfo.java b/model/src/main/java/com/atguigu/tingshu/model/album/TrackInfo.java new file mode 100644 index 0000000..7a6659a --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/TrackInfo.java @@ -0,0 +1,81 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "TrackInfo") +@TableName("track_info") +public class TrackInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "专辑id") + @TableField("album_id") + private Long albumId; + + @Schema(description = "声音标题") + @TableField("track_title") + private String trackTitle; + + @Schema(description = "声音在专辑中的排序值,从0开始依次递增,值越小排序越前") + @TableField("order_num") + private Integer orderNum; + + @Schema(description = "声音简介") + @TableField("track_intro") + private String trackIntro; + + @Schema(description = "声音简介,富文本") + @TableField("track_rich_intro") + private String trackRichIntro; + + @Schema(description = "声音封面图url") + @TableField("cover_url") + private String coverUrl; + + @Schema(description = "声音媒体时长,单位秒") + @TableField("media_duration") + private BigDecimal mediaDuration; + + @Schema(description = "媒体文件的唯一标识") + @TableField("media_file_id") + private String mediaFileId; + + @Schema(description = "媒体播放地址") + @TableField("media_url") + private String mediaUrl; + + @Schema(description = "音频文件大小,单位字节") + @TableField("media_size") + private Long mediaSize; + + @Schema(description = "声音媒体类型") + @TableField("media_type") + private String mediaType; + + @Schema(description = "声音来源,1-用户原创,2-上传") + @TableField("source") + private String source; + + @Schema(description = "状态") + @TableField("status") + private String status; + + @Schema(description = "是否公开:0-否 1-是") + @TableField("is_open") + private String isOpen; + + @Schema(description = "发起审核任务ID") + @TableField("review_task_id") + private String reviewTaskId; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/album/TrackStat.java b/model/src/main/java/com/atguigu/tingshu/model/album/TrackStat.java new file mode 100644 index 0000000..6ca2e5b --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/album/TrackStat.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.album; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "TrackStat") +@TableName("track_stat") +public class TrackStat extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "声音id") + @TableField("track_id") + private Long trackId; + + @Schema(description = "统计类型") + @TableField("stat_type") + private String statType; + + @Schema(description = "统计数目") + @TableField("stat_num") + private Integer statNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/base/BaseEntity.java b/model/src/main/java/com/atguigu/tingshu/model/base/BaseEntity.java new file mode 100644 index 0000000..a575d85 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/base/BaseEntity.java @@ -0,0 +1,36 @@ +package com.atguigu.tingshu.model.base; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +@Data +public class BaseEntity implements Serializable { + + @TableId(type = IdType.AUTO) + private Long id; + + @TableField("create_time") + private Date createTime; + + @JsonIgnore + @TableField("update_time") + private Date updateTime; + + @JsonIgnore + @TableLogic + @TableField("is_deleted") + private Integer isDeleted; + + @JsonIgnore + @TableField(exist = false) + private Map param = new HashMap<>(); +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/comment/Comment.java b/model/src/main/java/com/atguigu/tingshu/model/comment/Comment.java new file mode 100644 index 0000000..5a78c7a --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/comment/Comment.java @@ -0,0 +1,55 @@ +package com.atguigu.tingshu.model.comment; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.annotation.Transient; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; +import java.util.List; + +@Data +@Schema(description = "专辑评论") +@Document +public class Comment { + + @Schema(description = "id") + @Id + private String id; + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "发表评论用户的昵称,已脱敏") + private String nickname; + + @Schema(description = "发表评论用户的头像图片地址") + private String avatarUrl; + + @Schema(description = "评论内容") + private String content; + + @Schema(description = "被回复的评论id") + private String replyCommentId; + + @Schema(description = "点赞数量") + private Integer praiseCount = 0; + + @Schema(description = "评论中对专辑的评分 (十分制,建议采用五星制,如10分显示五颗星,7分显示三颗半星)") + private Integer albumCommentScore; + + @Schema(description = "创建时间") + private Date createTime; + + @Schema(description = "当前用户是否点赞") + @Transient + private Boolean isPraise; + + @Schema(description = "回复评论列表") + @Transient //被该注解标注的,将不会被录入到数据库中。只作为普通的javaBean属性 + private List replyCommentList; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/comment/CommentPraise.java b/model/src/main/java/com/atguigu/tingshu/model/comment/CommentPraise.java new file mode 100644 index 0000000..5f6c331 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/comment/CommentPraise.java @@ -0,0 +1,39 @@ +package com.atguigu.tingshu.model.comment; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +/** + *

+ * CommentPraise + *

+ * + * @author atguigu + */ +@Data +@Schema(description = "专辑评论点赞") +@Document +public class CommentPraise { + + @Schema(description = "id") + @Id + private String id; + + @Schema(description = "动态id") + private Long albumId; + + @Schema(description = "评论id") + private String commentId; + + @Schema(description = "点赞者id") + private Long userId; + + @Schema(description = "创建时间") + private Date createTime; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobConfig.java b/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobConfig.java new file mode 100644 index 0000000..86b0de6 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobConfig.java @@ -0,0 +1,44 @@ +package com.atguigu.tingshu.model.dispatch; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "XxlJobConfig") +@TableName("xxl_job_config") +public class XxlJobConfig extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "调度任务标题") + @TableField("title") + private String title; + + @Schema(description = "调度执行handler") + @TableField("executor_handler") + private String executorHandler; + + @Schema(description = "调度任务参数") + @TableField("executor_param") + private String executorParam; + + @Schema(description = "调度表达式") + @TableField("cron") + private String cron; + + @Schema(description = "备注") + @TableField("remark") + private String remark; + + @Schema(description = "任务状态 0:失败 1:成功") + @TableField("status") + private Integer status; + + @Schema(description = "xxl任务平台id") + @TableField("xxl_job_id") + private Long xxlJobId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobLog.java b/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobLog.java new file mode 100644 index 0000000..a7b922b --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/dispatch/XxlJobLog.java @@ -0,0 +1,32 @@ +package com.atguigu.tingshu.model.dispatch; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "XxlJobLog") +@TableName("xxl_job_log") +public class XxlJobLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "任务配置id") + @TableField("job_config_id") + private Long jobConfigId; + + @Schema(description = "任务状态 0:失败 1:成功") + @TableField("status") + private Integer status; + + @Schema(description = "失败信息") + @TableField("error") + private String error; + + @Schema(description = "耗时(单位:毫秒)") + @TableField("times") + private Integer times; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/live/FromUser.java b/model/src/main/java/com/atguigu/tingshu/model/live/FromUser.java new file mode 100644 index 0000000..7862b8d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/live/FromUser.java @@ -0,0 +1,14 @@ +package com.atguigu.tingshu.model.live; + +import lombok.Data; + +@Data +public class FromUser { + + //用户id + private Long userId; + //昵称 + private String nickname; + //头像地址 + private String avatarUrl; +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/live/LiveRoom.java b/model/src/main/java/com/atguigu/tingshu/model/live/LiveRoom.java new file mode 100644 index 0000000..0120c5f --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/live/LiveRoom.java @@ -0,0 +1,74 @@ +package com.atguigu.tingshu.model.live; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "LiveRoom") +@TableName("live_room") +public class LiveRoom extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "直播间封面") + @TableField("cover_url") + private String coverUrl; + + @Schema(description = "直播标题") + @TableField("live_title") + private String liveTitle; + + @Schema(description = "当前直播场次的总访问人次") + @TableField("view_count") + private Integer viewCount; + + @Schema(description = "直播状态:1-直播正在进行,2-直播结束") + @TableField("status") + private String status; + + @Schema(description = "直播间标签id") + @TableField("tag_id") + private String tagId; + + @Schema(description = "直播应用名称") + @TableField("app_name") + private String appName; + + @Schema(description = "直播流名称") + @TableField("stream_name") + private String streamName; + + @Schema(description = "过期时间") + @TableField("expire_time") + private Date expireTime; + + @Schema(description = "推流地址") + @TableField("push_url") + private String pushUrl; + + @Schema(description = "播放地址") + @TableField("play_url") + private String playUrl; + + @Schema(description = "经度") + @TableField("longitude") + private String longitude; + + @Schema(description = "纬度") + @TableField("latitude") + private String latitude; + + @Schema(description = "位置") + @TableField("location") + private String location; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/live/LiveTag.java b/model/src/main/java/com/atguigu/tingshu/model/live/LiveTag.java new file mode 100644 index 0000000..8daeced --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/live/LiveTag.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.live; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "LiveTag") +@TableName("live_tag") +public class LiveTag extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "标签名称") + @TableField("name") + private String name; + + @Schema(description = "标签图标url") + @TableField("icon_url") + private String iconUrl; + + @Schema(description = "排序") + @TableField("order_num") + private Integer orderNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/live/SocketMsg.java b/model/src/main/java/com/atguigu/tingshu/model/live/SocketMsg.java new file mode 100644 index 0000000..3fcda0e --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/live/SocketMsg.java @@ -0,0 +1,49 @@ +package com.atguigu.tingshu.model.live; + + +import lombok.Data; +import lombok.Getter; + +/** + * 这里我们就不能使用简单的文本消息进行消息的发送了,我们使用json进行消息的发送。 + * 所以需要先创建一个消息对象,里面包含了消息发送者,消息接受者,消息类型(单聊还是群聊),还是就是消息,如下: + */ +@Data +public class SocketMsg { + + @Getter + public enum MsgTypeEnum { + + HEART_BEAT("0","心跳信息"), + PUBLIC_MSG("1","公共聊天消息"), + JOIN_CHAT("2","加入聊天室"), + CLOSE_SOCKET("3","退出聊天室"), + ONLINE_NUM("4","在线用户数"), + TOKEN_INVALID("-1","token无效"), + ; + + private String code; + private String data; + + MsgTypeEnum(String code, String data) { + this.code = code; + this.data = data; + } + + } + + //直播房间id + private Long liveRoomId; +// //消息体 +// private MsgBody msgBody; + + //消息类型 + private String msgType; + //消息内容 + private Object msgContent; + + //发送者 + private FromUser fromUser; + //时间戳 + private Long timestamp; +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/order/OrderDerate.java b/model/src/main/java/com/atguigu/tingshu/model/order/OrderDerate.java new file mode 100644 index 0000000..0742ede --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/order/OrderDerate.java @@ -0,0 +1,34 @@ +package com.atguigu.tingshu.model.order; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "OrderDerate") +@TableName("order_derate") +public class OrderDerate extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单id") + @TableField("order_id") + private Long orderId; + + @Schema(description = "订单减免类型 1405-专辑折扣 1406-VIP服务折") + @TableField("derate_type") + private String derateType; + + @Schema(description = "减免金额") + @TableField("derate_amount") + private BigDecimal derateAmount; + + @Schema(description = "备注") + @TableField("remarks") + private String remarks; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/order/OrderDetail.java b/model/src/main/java/com/atguigu/tingshu/model/order/OrderDetail.java new file mode 100644 index 0000000..958fbb4 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/order/OrderDetail.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.model.order; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "OrderDetail") +@TableName("order_detail") +public class OrderDetail extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单id") + @TableField("order_id") + private Long orderId; + + @Schema(description = "付费项目id") + @TableField("item_id") + private Long itemId; + + @Schema(description = "付费项目名称") + @TableField("item_name") + private String itemName; + + @Schema(description = "付费项目图片url") + @TableField("item_url") + private String itemUrl; + + @Schema(description = "付费项目价格") + @TableField("item_price") + private BigDecimal itemPrice; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java b/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java new file mode 100644 index 0000000..45b406a --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/order/OrderInfo.java @@ -0,0 +1,69 @@ +package com.atguigu.tingshu.model.order; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "OrderInfo") +@TableName("order_info") +public class OrderInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户ID") + @TableField("user_id") + private Long userId; + + @Schema(description = "订单标题") + @TableField("order_title") + private String orderTitle; + + @Schema(description = "订单号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "订单状态:0901-未支付 0902-已支付 0903-已取消") + @TableField("order_status") + private String orderStatus; + + @Schema(description = "订单原始金额") + @TableField("original_amount") + private BigDecimal originalAmount; + + @Schema(description = "减免总金额") + @TableField("derate_amount") + private BigDecimal derateAmount; + + @Schema(description = "订单总价") + @TableField("order_amount") + private BigDecimal orderAmount; + + @Schema(description = "付款项目类型: 1001-专辑 1002-声音 1003-vip会员") + @TableField("item_type") + private String itemType; + + @Schema(description = "支付方式:1101-微信 1102-支付宝 1103-账户余额") + @TableField("pay_way") + private String payWay; + + + @Schema(description = "订单明细列表") + @TableField(exist = false) + private List orderDetailList; + + @Schema(description = "订单减免明细列表") + @TableField(exist = false) + private List orderDerateList; + + @TableField(exist = false) + private String orderStatusName; + @TableField(exist = false) + private String payWayName; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/payment/PaymentInfo.java b/model/src/main/java/com/atguigu/tingshu/model/payment/PaymentInfo.java new file mode 100644 index 0000000..e695d44 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/payment/PaymentInfo.java @@ -0,0 +1,59 @@ +package com.atguigu.tingshu.model.payment; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Schema(description = "PaymentInfo") +@TableName("payment_info") +public class PaymentInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "支付类型:1301-订单 1302-充值") + @TableField("payment_type") + private String paymentType; + + @Schema(description = "订单号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "付款方式:1101-微信 1102-支付宝") + @TableField("pay_way") + private String payWay; + + @Schema(description = "交易编号(微信或支付)") + @TableField("out_trade_no") + private String outTradeNo; + + @Schema(description = "支付金额") + @TableField("amount") + private BigDecimal amount; + + @Schema(description = "交易内容") + @TableField("content") + private String content; + + @Schema(description = "支付状态:1401-未支付 1402-已支付") + @TableField("payment_status") + private String paymentStatus; + + @Schema(description = "回调时间") + @TableField("callback_time") + private Date callbackTime; + + @Schema(description = "回调信息") + @TableField("callback_content") + private String callbackContent; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/search/AlbumInfoIndex.java b/model/src/main/java/com/atguigu/tingshu/model/search/AlbumInfoIndex.java new file mode 100644 index 0000000..693d0db --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/search/AlbumInfoIndex.java @@ -0,0 +1,89 @@ +package com.atguigu.tingshu.model.search; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.DateFormat; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +@Data +@Document(indexName = "albuminfo") +@JsonIgnoreProperties(ignoreUnknown = true)//目的:防止json字符串转成实体对象时因未识别字段报错 +public class AlbumInfoIndex implements Serializable { + + private static final long serialVersionUID = 1L; + + // 专辑Id + @Id + private Long id; + + // es 中能分词的字段,这个字段数据类型必须是 text!keyword 不分词! analyzer = "ik_max_word" + @Field(type = FieldType.Text, analyzer = "ik_max_word") + private String albumTitle; + + @Field(type = FieldType.Text, analyzer = "ik_max_word") + private String albumIntro; + + @Field(type = FieldType.Keyword) + private String announcerName; + + //专辑封面 + @Field(type = FieldType.Keyword, index = false) + private String coverUrl; + + //专辑包含声音总数 + @Field(type = FieldType.Long, index = false) + private Integer includeTrackCount; + + //专辑是否完结:0-否;1-完结 + @Field(type = FieldType.Long, index = false) + private String isFinished; + + //付费类型:免费、vip免费、付费 + @Field(type = FieldType.Keyword, index = false) + private String payType; + + @Field(type = FieldType.Date,format = DateFormat.date_time, pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; // + + @Field(type = FieldType.Long) + private Long category1Id; + + @Field(type = FieldType.Long) + private Long category2Id; + + @Field(type = FieldType.Long) + private Long category3Id; + + //播放量 + @Field(type = FieldType.Integer) + private Integer playStatNum = 0; + + //订阅量 + @Field(type = FieldType.Integer) + private Integer subscribeStatNum = 0; + + //购买量 + @Field(type = FieldType.Integer) + private Integer buyStatNum = 0; + + //评论数 + @Field(type = FieldType.Integer) + private Integer commentStatNum = 0; + + // 商品的热度! + @Field(type = FieldType.Double) + private Double hotScore = 0d; + + //专辑属性值 + // Nested 支持嵌套查询 + @Field(type = FieldType.Nested) + private List attributeValueIndexList; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/search/AttributeValueIndex.java b/model/src/main/java/com/atguigu/tingshu/model/search/AttributeValueIndex.java new file mode 100644 index 0000000..83ed3ae --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/search/AttributeValueIndex.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.model.search; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; + +@Data +@Schema(description = "专辑属性值") +public class AttributeValueIndex { + + @Field(type = FieldType.Long) + private Long attributeId; + + @Field(type = FieldType.Long) + private Long valueId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/search/SuggestIndex.java b/model/src/main/java/com/atguigu/tingshu/model/search/SuggestIndex.java new file mode 100644 index 0000000..977cde2 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/search/SuggestIndex.java @@ -0,0 +1,32 @@ +package com.atguigu.tingshu.model.search; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.elasticsearch.annotations.CompletionField; +import org.springframework.data.elasticsearch.annotations.Document; +import org.springframework.data.elasticsearch.annotations.Field; +import org.springframework.data.elasticsearch.annotations.FieldType; +import org.springframework.data.elasticsearch.core.suggest.Completion; + +@Data +@Document(indexName = "suggestinfo") +@JsonIgnoreProperties(ignoreUnknown = true)//目的:防止json字符串转成实体对象时因未识别字段报错 +public class SuggestIndex { + + @Id + private String id; + + @Field(type = FieldType.Text, analyzer = "standard") + private String title; + + @CompletionField(analyzer = "standard", searchAnalyzer = "standard", maxInputLength = 20) + private Completion keyword; + + @CompletionField(analyzer = "standard", searchAnalyzer = "standard", maxInputLength = 20) + private Completion keywordPinyin; + + @CompletionField(analyzer = "standard", searchAnalyzer = "standard", maxInputLength = 20) + private Completion keywordSequence; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysDept.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysDept.java new file mode 100644 index 0000000..eb6739b --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysDept.java @@ -0,0 +1,50 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "部门") +@TableName("sys_dept") +public class SysDept extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "部门名称") + @TableField("name") + private String name; + + @Schema(description = "上级部门id") + @TableField("parent_id") + private Long parentId; + + @Schema(description = "树结构") + @TableField("tree_path") + private String treePath; + + @Schema(description = "排序") + @TableField("sort_value") + private Integer sortValue; + + @Schema(description = "负责人") + @TableField("leader") + private String leader; + + @Schema(description = "电话") + @TableField("phone") + private String phone; + + @Schema(description = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + + @Schema(description = "下级部门") + @TableField(exist = false) + private List children; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysLoginLog.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysLoginLog.java new file mode 100644 index 0000000..b6cc538 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysLoginLog.java @@ -0,0 +1,38 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "SysLoginLog") +@TableName("sys_login_log") +public class SysLoginLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户账号") + @TableField("username") + private String username; + + @Schema(description = "登录IP地址") + @TableField("ipaddr") + private String ipaddr; + + @Schema(description = "登录状态(0成功 1失败)") + @TableField("status") + private Integer status; + + @Schema(description = "提示信息") + @TableField("msg") + private String msg; + + @Schema(description = "访问时间") + @TableField("access_time") + private Date accessTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysMenu.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysMenu.java new file mode 100644 index 0000000..3a75a4d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysMenu.java @@ -0,0 +1,61 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "菜单") +@TableName("sys_menu") +public class SysMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "所属上级") + @TableField("parent_id") + private Long parentId; + + @Schema(description = "名称") + @TableField("name") + private String name; + + @Schema(description = "类型(1:菜单,2:按钮)") + @TableField("type") + private Integer type; + + @Schema(description = "路由地址") + @TableField("path") + private String path; + + @Schema(description = "组件路径") + @TableField("component") + private String component; + + @Schema(description = "权限标识") + @TableField("perms") + private String perms; + + @Schema(description = "图标") + @TableField("icon") + private String icon; + + @Schema(description = "排序") + @TableField("sort_value") + private Integer sortValue; + + @Schema(description = "状态(0:禁止,1:正常)") + @TableField("status") + private Integer status; + + // 下级列表 + @TableField(exist = false) + private List children; + //是否选中 + @TableField(exist = false) + private boolean isSelect; +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysOperLog.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysOperLog.java new file mode 100644 index 0000000..8d10516 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysOperLog.java @@ -0,0 +1,74 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "SysOperLog") +@TableName("sys_oper_log") +public class SysOperLog extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "模块标题") + @TableField("title") + private String title; + + @Schema(description = "业务类型(0其它 1新增 2修改 3删除)") + @TableField("business_type") + private String businessType; + + @Schema(description = "方法名称") + @TableField("method") + private String method; + + @Schema(description = "请求方式") + @TableField("request_method") + private String requestMethod; + + @Schema(description = "操作类别(0其它 1后台用户 2手机端用户)") + @TableField("operator_type") + private String operatorType; + + @Schema(description = "操作人员") + @TableField("oper_name") + private String operName; + + @Schema(description = "部门名称") + @TableField("dept_name") + private String deptName; + + @Schema(description = "请求URL") + @TableField("oper_url") + private String operUrl; + + @Schema(description = "主机地址") + @TableField("oper_ip") + private String operIp; + + @Schema(description = "请求参数") + @TableField("oper_param") + private String operParam; + + @Schema(description = "返回参数") + @TableField("json_result") + private String jsonResult; + + @Schema(description = "操作状态(0正常 1异常)") + @TableField("status") + private Integer status; + + @Schema(description = "错误消息") + @TableField("error_msg") + private String errorMsg; + + @Schema(description = "操作时间") + @TableField("oper_time") + private Date operTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysPost.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysPost.java new file mode 100644 index 0000000..1a4347c --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysPost.java @@ -0,0 +1,32 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "岗位") +@TableName("sys_post") +public class SysPost extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "岗位编码") + @TableField("post_code") + private String postCode; + + @Schema(description = "岗位名称") + @TableField("name") + private String name; + + @Schema(description = "显示顺序") + @TableField("description") + private String description; + + @Schema(description = "状态(1正常 0停用)") + @TableField("status") + private Integer status; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysRole.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysRole.java new file mode 100644 index 0000000..47a4c82 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysRole.java @@ -0,0 +1,31 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + + +@Data +@Schema(description = "角色") +@TableName("sys_role") +public class SysRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + //@NotBlank(message = "角色名称不能为空") + @Schema(description = "角色名称") + @TableField("role_name") + private String roleName; + + @Schema(description = "角色编码") + @TableField("role_code") + private String roleCode; + + @Schema(description = "描述") + @TableField("description") + private String description; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysRoleMenu.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysRoleMenu.java new file mode 100644 index 0000000..414ca2e --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysRoleMenu.java @@ -0,0 +1,25 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "角色菜单") +@TableName("sys_role_menu") +public class SysRoleMenu extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "角色id") + @TableField("role_id") + private Long roleId; + + @Schema(description = "菜单id") + @TableField("menu_id") + private Long menuId; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysUser.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysUser.java new file mode 100644 index 0000000..46d389f --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysUser.java @@ -0,0 +1,66 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "用户") +@TableName("sys_user") +public class SysUser extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户名") + @TableField("username") + private String username; + + @Schema(description = "密码") + @TableField("password") + private String password; + + @Schema(description = "姓名") + @TableField("name") + private String name; + + @Schema(description = "手机") + @TableField("phone") + private String phone; + + @Schema(description = "头像地址") + @TableField("head_url") + private String headUrl; + + @Schema(description = "部门id") + @TableField("dept_id") + private Long deptId; + + @Schema(description = "岗位id") + @TableField("post_id") + private Long postId; + + @Schema(description = "描述") + @TableField("description") + private String description; + + @Schema(description = "状态(1:正常 0:停用)") + @TableField("status") + private Integer status; + + @TableField(exist = false) + private List roleList; + //岗位 + @TableField(exist = false) + private String postName; + //部门 + @TableField(exist = false) + private String deptName; + + @TableField(exist = false) + List userPermsList; +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/system/SysUserRole.java b/model/src/main/java/com/atguigu/tingshu/model/system/SysUserRole.java new file mode 100644 index 0000000..02c952d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/system/SysUserRole.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.model.system; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户角色") +@TableName("sys_user_role") +public class SysUserRole extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "角色id") + @TableField("role_id") + private Long roleId; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; +} + diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserCertification.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserCertification.java new file mode 100644 index 0000000..c9427d2 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserCertification.java @@ -0,0 +1,40 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "UserCertification") +@TableName("user_certification") +public class UserCertification extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "身份证地址1") + @TableField("id_card1_url") + private String idCard1Url; + + @Schema(description = "身份证地址2") + @TableField("id_card2_url") + private String idCard2Url; + + @Schema(description = "人脸图片地址") + @TableField("face_url") + private String faceUrl; + + @Schema(description = "比对结果数据") + @TableField("result_data") + private String resultData; + + @Schema(description = "日志操作用户") + @TableField("operate_user_id") + private Long operateUserId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserCollect.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserCollect.java new file mode 100644 index 0000000..3b8223f --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserCollect.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +@Data +@Schema(description = "用户收藏") +@Document +public class UserCollect { + + @Schema(description = "id") + @Id + private String id; + + @Schema(description = "用户ID") + private Long userId; + + @Schema(description = "声音ID") + private Long trackId; + + @Schema(description = "创建时间") + private Date createTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserInfo.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserInfo.java new file mode 100644 index 0000000..54688bc --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserInfo.java @@ -0,0 +1,70 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "UserInfo") +@TableName("user_info") +public class UserInfo extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "手机") + @TableField("phone") + private String phone; + + @Schema(description = "密码") + @TableField("password") + private String password; + + @Schema(description = "微信openId") + @TableField("wx_open_id") + private String wxOpenId; + + @Schema(description = "nickname") + @TableField("nickname") + private String nickname; + + @Schema(description = "主播用户头像图片") + @TableField("avatar_url") + private String avatarUrl; + + @Schema(description = "用户是否为VIP会员 0:普通用户 1:VIP会员") + @TableField("is_vip") + private Integer isVip; + + @Schema(description = "当前VIP到期时间,即失效时间") + @TableField("vip_expire_time") + private Date vipExpireTime; + + @Schema(description = "性别") + @TableField("gender") + private Integer gender; + + @Schema(description = "出生年月") + @TableField("birthday") + private Date birthday; + + @Schema(description = "简介") + @TableField("intro") + private String intro; + + @Schema(description = "主播认证类型") + @TableField("certification_type") + private Integer certificationType; + + @Schema(description = "认证状态") + @TableField("certification_status") + private Integer certificationStatus; + + @Schema(description = "状态") + @TableField("status") + private String status; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserListenProcess.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserListenProcess.java new file mode 100644 index 0000000..ede9108 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserListenProcess.java @@ -0,0 +1,41 @@ +package com.atguigu.tingshu.model.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Schema(description = "UserListenProcess") +@Document +public class UserListenProcess { + + @Schema(description = "id") + @Id + private String id; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "声音id,声音id为0时,浏览的是专辑") + private Long trackId; + + @Schema(description = "相对于音频开始位置的播放跳出位置,单位为秒。比如当前音频总时长60s,本次播放到音频第25s处就退出或者切到下一首,那么break_second就是25") + private BigDecimal breakSecond; + + @Schema(description = "是否显示") + private Integer isShow; + + @Schema(description = "创建时间") + private Date createTime; + + @Schema(description = "更新时间") + private Date updateTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidAlbum.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidAlbum.java new file mode 100644 index 0000000..779812e --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidAlbum.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "UserPaidAlbum") +@TableName("user_paid_album") +public class UserPaidAlbum extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "用户ID") + @TableField("user_id") + private Long userId; + + @Schema(description = "专辑id") + @TableField("album_id") + private Long albumId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidTrack.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidTrack.java new file mode 100644 index 0000000..636ee14 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserPaidTrack.java @@ -0,0 +1,32 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "UserPaidTrack") +@TableName("user_paid_track") +public class UserPaidTrack extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "用户ID") + @TableField("user_id") + private Long userId; + + @Schema(description = "专辑id") + @TableField("album_id") + private Long albumId; + + @Schema(description = "声音id") + @TableField("track_id") + private Long trackId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserStat.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserStat.java new file mode 100644 index 0000000..28658a6 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserStat.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "UserStat") +@TableName("user_stat") +public class UserStat extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "统计类型") + @TableField("stat_type") + private Integer statType; + + @Schema(description = "统计数目") + @TableField("stat_num") + private Integer statNum; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserSubscribe.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserSubscribe.java new file mode 100644 index 0000000..96ecb5e --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserSubscribe.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.model.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Date; + +@Data +@Schema(description = "用户订阅") +@Document +public class UserSubscribe { + + @Schema(description = "id") + @Id + private String id; + + @Schema(description = "用户ID") + private Long userId; + + @Schema(description = "专辑ID") + private Long albumId; + + @Schema(description = "创建时间") + private Date createTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/UserVipService.java b/model/src/main/java/com/atguigu/tingshu/model/user/UserVipService.java new file mode 100644 index 0000000..cb99dfe --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/UserVipService.java @@ -0,0 +1,42 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "UserVipService") +@TableName("user_vip_service") +public class UserVipService extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "订单号") + @TableField("order_no") + private String orderNo; + + @Schema(description = "用户id") + @TableField("user_id") + private Long userId; + + @Schema(description = "开始生效日期") + @TableField("start_time") + private Date startTime; + + @Schema(description = "到期时间") + @TableField("expire_time") + private Date expireTime; + + @Schema(description = "是否自动续费") + @TableField("is_auto_renew") + private Integer isAutoRenew; + + @Schema(description = "下次自动续费时间") + @TableField("next_renew_time") + private Date nextRenewTime; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/model/user/VipServiceConfig.java b/model/src/main/java/com/atguigu/tingshu/model/user/VipServiceConfig.java new file mode 100644 index 0000000..4f3ee13 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/model/user/VipServiceConfig.java @@ -0,0 +1,46 @@ +package com.atguigu.tingshu.model.user; + +import com.atguigu.tingshu.model.base.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "VipServiceConfig") +@TableName("vip_service_config") +public class VipServiceConfig extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @Schema(description = "服务名称") + @TableField("name") + private String name; + + @Schema(description = "原价,单位元,用于营销展示") + @TableField("price") + private BigDecimal price; + + @Schema(description = "折后价,单位元,即实际价格") + @TableField("discount_price") + private BigDecimal discountPrice; + + @Schema(description = "优惠简介") + @TableField("intro") + private String intro; + + @Schema(description = "服务简介,富文本") + @TableField("rich_intro") + private String richIntro; + + @Schema(description = "服务月数") + @TableField("service_month") + private Integer serviceMonth; + + @Schema(description = "服务图片url") + @TableField("image_url") + private String imageUrl; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/query/album/AlbumInfoQuery.java b/model/src/main/java/com/atguigu/tingshu/query/album/AlbumInfoQuery.java new file mode 100644 index 0000000..3299d08 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/query/album/AlbumInfoQuery.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.query.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "专辑信息") +public class AlbumInfoQuery { + + @Schema(description = "标题") + private String albumTitle; + + @Schema(description = "状态") + private String status; + + @Schema(description = "用户id") + private Long userId; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/query/album/TrackInfoQuery.java b/model/src/main/java/com/atguigu/tingshu/query/album/TrackInfoQuery.java new file mode 100644 index 0000000..bd1d4d9 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/query/album/TrackInfoQuery.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.query.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "声音信息") +public class TrackInfoQuery { + + @Schema(description = "标题") + private String trackTitle; + + @Schema(description = "状态") + private String status; + + @Schema(description = "用户id") + private Long userId; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/query/order/OrderInfoQuery.java b/model/src/main/java/com/atguigu/tingshu/query/order/OrderInfoQuery.java new file mode 100644 index 0000000..825e76c --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/query/order/OrderInfoQuery.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.query.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "订单信息") +public class OrderInfoQuery { + + @Schema(description = "创建时间") + private String createTimeBegin; + + @Schema(description = "创建时间") + private String createTimeEnd; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/query/search/AlbumIndexQuery.java b/model/src/main/java/com/atguigu/tingshu/query/search/AlbumIndexQuery.java new file mode 100644 index 0000000..8b4becc --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/query/search/AlbumIndexQuery.java @@ -0,0 +1,33 @@ +package com.atguigu.tingshu.query.search; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +@Schema(description = "专辑信息搜索") +public class AlbumIndexQuery { + + @Schema(description = "关键字") + private String keyword; + + @Schema(description = "一级分类") + private Long category1Id; + + @Schema(description = "二级分类") + private Long category2Id; + + @Schema(description = "三级分类") + private Long category3Id; + + @Schema(description = "属性(属性id:属性值id)") + private List attributeList; + + // order=1:asc 排序规则 0:asc + @Schema(description = "排序(综合排序[1:desc] 播放量[2:desc] 发布时间[3:desc];asc:升序 desc:降序)") + private String order = "";// 1:综合排序 2:播放量 3:最近更新 + + private Integer pageNo = 1;//分页信息 + private Integer pageSize = 10; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/query/user/UserInfoQuery.java b/model/src/main/java/com/atguigu/tingshu/query/user/UserInfoQuery.java new file mode 100644 index 0000000..88e3d9a --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/query/user/UserInfoQuery.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.query.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "声音信息") +public class UserInfoQuery { + + @Schema(description = "手机") + private String phone; + + @Schema(description = "昵称") + private String nickname; + + @Schema(description = "创建时间") + private String createTimeBegin; + + @Schema(description = "创建时间") + private String createTimeEnd; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaid.java b/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaid.java new file mode 100644 index 0000000..b11c729 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaid.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.validation; + +import jakarta.validation.Constraint; +import jakarta.validation.Payload; + +import java.lang.annotation.*; + +@Documented +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.PARAMETER, ElementType.FIELD, ElementType.METHOD }) +@Constraint(validatedBy = NotEmptyPaidValidator.class) +public @interface NotEmptyPaid { + + String message() default "不能为空"; + + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaidValidator.java b/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaidValidator.java new file mode 100644 index 0000000..a575c52 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/validation/NotEmptyPaidValidator.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.validation; + +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; + + +public class NotEmptyPaidValidator implements ConstraintValidator { + + @Override + public boolean isValid(String value, ConstraintValidatorContext constraintValidatorContext) { + String[] array = value.split("_"); + if(array.length == 0 || "0101".equals(array[0])) return true; + if(array.length != 2) return false; + return true; + } +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/account/AccountDeductVo.java b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountDeductVo.java new file mode 100644 index 0000000..0d09dcd --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountDeductVo.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "扣减金额对象") +public class AccountDeductVo { + + @Schema(description = "订单号") + private String orderNo; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "扣减金额") + private BigDecimal amount; + + @Schema(description = "扣减内容") + private String content; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockResultVo.java b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockResultVo.java new file mode 100644 index 0000000..a4eb240 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockResultVo.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "锁定金额返回对象") +public class AccountLockResultVo { + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "锁定金额") + private BigDecimal amount; + + @Schema(description = "锁定内容") + private String content; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockVo.java b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockVo.java new file mode 100644 index 0000000..a6c2e92 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/account/AccountLockVo.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "锁定金额对象") +public class AccountLockVo { + + @Schema(description = "订单号") + private String orderNo; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "锁定金额") + private BigDecimal amount; + + @Schema(description = "锁定内容") + private String content; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/account/RechargeInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/account/RechargeInfoVo.java new file mode 100644 index 0000000..212cd24 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/account/RechargeInfoVo.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.vo.account; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "充值对象") +public class RechargeInfoVo { + + @Schema(description = "充值金额") + private BigDecimal amount; + + @Schema(description = "支付方式:1101-微信 1102-支付宝") + private String payWay; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.java new file mode 100644 index 0000000..b588abd --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +@Schema(description = "专辑属性值") +public class AlbumAttributeValueVo { + + @NotNull(message = "属性id不能为空") + @Schema(description = "属性id") + private Long attributeId; + + @NotNull(message = "属性值id不能为空") + @Schema(description = "属性值id") + private Long valueId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumInfoVo.java new file mode 100644 index 0000000..89e178f --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumInfoVo.java @@ -0,0 +1,91 @@ +package com.atguigu.tingshu.vo.album; + +import com.atguigu.tingshu.common.util.Decimal2Serializer; +import com.atguigu.tingshu.validation.NotEmptyPaid; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Positive; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "专辑信息") +public class AlbumInfoVo { + + @NotEmpty(message = "专辑标题不能为空") + @Length(min = 2, message = "专辑标题的长度必须大于2") + @Schema(description = "标题", required=true) + private String albumTitle; + + @Positive(message = "三级分类不能为空") + @Schema(description = "三级分类id", required=true) + private Long category3Id; + + @NotEmpty(message = "专辑简介不能为空") + @Schema(description = "专辑简介", required=true) + private String albumIntro; + + @NotEmpty(message = "专辑封面不能为空") + @Schema(description = "专辑封面图", required=true) + private String coverUrl; + + @Schema(description = "预计更新多少集") + private Integer estimatedTrackCount; + + @Schema(description = "专辑简介,富文本") + private String albumRichIntro; + + @NotEmpty(message = "付费类型不能为空") + @Schema(description = "付费类型: 0101-免费、0102-vip免费、0103-付费", required=true) + private String payType; + + @Schema(description = "价格类型: 0201-单集 0202-整专辑") + private String priceType; + + @Schema(description = "原价") + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal price; + + @Schema(description = "0.1-9.9 不打折 -1") + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal discount = new BigDecimal(-1); + + @Schema(description = "0.1-9.9 不打折 -1") + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal vipDiscount = new BigDecimal(-1); + + @Schema(description = "免费试听集数") + private Integer tracksForFree; + + @Schema(description = "每集免费试听秒数") + private Integer secondsForFree; + + @Schema(description = "购买须知,富文本") + private String buyNotes; + + @Schema(description = "专辑卖点,富文本") + private String sellingPoint; + + @Schema(description = "是否公开:0-否 1-是") + private String isOpen; + + //递归校验 + //@Valid + //@NotEmpty(message = "属性值集合不能为空") + @Schema(description = "属性值集合") + private List albumAttributeValueVoList; + + @NotEmptyPaid(message = "价格类型不能为空") + public String getPayTypeAndPriceType() { + return this.getPayType() + "_" + this.getPriceType(); + } + + @NotEmptyPaid(message = "价格不能为空") + public String getPayTypeAndPrice() { + return this.getPayType() + "_" + this.getPrice(); + } +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumListVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumListVo.java new file mode 100644 index 0000000..92029b0 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumListVo.java @@ -0,0 +1,40 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户专辑列表信息") +public class AlbumListVo { + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "标题") + private String albumTitle; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + private String coverUrl; + + @Schema(description = "专辑包含声音总数") + private Integer includeTrackCount; + + @Schema(description = "专辑是否完结:0-否;1-完结;") + private String isFinished; + + @Schema(description = "状态") + private String status; + + @Schema(description = "播放量") + private Integer playStatNum; + + @Schema(description = "订阅量") + private Integer subscribeStatNum; + + @Schema(description = "购买量") + private Integer buyStatNum; + + @Schema(description = "评论数") + private Integer commentStatNum; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatMqVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatMqVo.java new file mode 100644 index 0000000..86344a1 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatMqVo.java @@ -0,0 +1,22 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "AlbumStatMqVo") +public class AlbumStatMqVo { + + @Schema(description = "业务编号:去重使用") + private String businessNo; + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "统计类型") + private String statType; + + @Schema(description = "更新数目") + private Integer count; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatVo.java new file mode 100644 index 0000000..5be2481 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumStatVo.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "专辑统计信息") +public class AlbumStatVo { + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "播放量") + private Integer playStatNum; + + @Schema(description = "订阅量") + private Integer subscribeStatNum; + + @Schema(description = "购买量") + private Integer buyStatNum; + + @Schema(description = "评论数") + private Integer commentStatNum; +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumTrackListVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumTrackListVo.java new file mode 100644 index 0000000..ad51547 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/AlbumTrackListVo.java @@ -0,0 +1,37 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@Schema(description = "用户专辑声音列表信息") +public class AlbumTrackListVo { + + @Schema(description = "声音id") + private Long trackId; + + @Schema(description = "标题") + private String trackTitle; + + @Schema(description = "声音媒体时长,单位秒") + private BigDecimal mediaDuration; + + @Schema(description = "排序") + private Integer orderNum; + + @Schema(description = "播放量") + private Integer playStatNum; + + @Schema(description = "评论数") + private Integer commentStatNum; + + @Schema(description = "发布时间") + private Date createTime; + + @Schema(description = "是否显示付费标识,isShowPiadMark=true,则显示付费标识") + private Boolean isShowPaidMark = false; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/TrackInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackInfoVo.java new file mode 100644 index 0000000..7964a52 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackInfoVo.java @@ -0,0 +1,40 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Positive; +import lombok.Data; + +@Data +@Schema(description = "声音信息") +public class TrackInfoVo { + + @Positive(message = "专辑Id不能为空") + @Schema(description = "专辑id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long albumId; + + @NotEmpty(message = "媒体文件Id不能为空") + @Schema(description = "媒体文件的唯一标识", requiredMode = Schema.RequiredMode.REQUIRED) + private String mediaFileId; + + @NotEmpty(message = "媒体文件地址") + @Schema(description = "媒体文件地址", requiredMode = Schema.RequiredMode.REQUIRED) + private String mediaUrl; + + @NotEmpty(message = "声音标题不能为空") + @Schema(description = "声音标题", requiredMode = Schema.RequiredMode.REQUIRED) + private String trackTitle; + + @Schema(description = "声音简介") + private String trackIntro; + + @Schema(description = "声音简介,富文本") + private String trackRichIntro; + + @Schema(description = "声音封面图url") + private String coverUrl; + + @Schema(description = "是否公开:0-否 1-是") + private String isOpen; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/TrackListVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackListVo.java new file mode 100644 index 0000000..ddd154b --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackListVo.java @@ -0,0 +1,45 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "用户声音列表信息") +public class TrackListVo { + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "标题") + private String albumTitle; + + @Schema(description = "声音id") + private Long trackId; + + @Schema(description = "标题") + private String trackTitle; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + private String coverUrl; + + @Schema(description = "声音媒体时长,单位秒") + private BigDecimal mediaDuration; + + @Schema(description = "状态") + private String status; + + @Schema(description = "播放量") + private Integer playStatNum; + + @Schema(description = "订阅量") + private Integer collectStatNum; + + @Schema(description = "购买量") + private Integer praiseStatNum; + + @Schema(description = "评论数") + private Integer commentStatNum; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.java new file mode 100644 index 0000000..932a7d9 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "声音媒体信息") +public class TrackMediaInfoVo { + + @Schema(description = "音频文件大小,单位字节") + private Long size; + + @Schema(description = "声音时长,单位秒") + private Float duration; + + @Schema(description = "声音播放地址") + private String mediaUrl; + + @Schema(description = "声音媒体类型") + private String type; +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatMqVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatMqVo.java new file mode 100644 index 0000000..ce07e98 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatMqVo.java @@ -0,0 +1,25 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "TrackStatMqVo") +public class TrackStatMqVo { + + @Schema(description = "业务编号:去重使用") + private String businessNo; + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "声音id") + private Long trackId; + + @Schema(description = "统计类型") + private String statType; + + @Schema(description = "更新数目") + private Integer count; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatVo.java b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatVo.java new file mode 100644 index 0000000..d4911ef --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/album/TrackStatVo.java @@ -0,0 +1,23 @@ +package com.atguigu.tingshu.vo.album; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "用户声音统计信息") +public class TrackStatVo { + + + @Schema(description = "播放量") + private Integer playStatNum; + + @Schema(description = "订阅量") + private Integer collectStatNum; + + @Schema(description = "购买量") + private Integer praiseStatNum; + + @Schema(description = "评论数") + private Integer commentStatNum; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/base/PageVo.java b/model/src/main/java/com/atguigu/tingshu/vo/base/PageVo.java new file mode 100644 index 0000000..de93765 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/base/PageVo.java @@ -0,0 +1,53 @@ +package com.atguigu.tingshu.vo.base; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; + +import java.io.Serializable; +import java.util.List; + +/** + * 分页结果包装 + * + * @author atguigu + */ +@Data +@Schema(description = "分页数据消息体") +@Builder +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@NoArgsConstructor +public class PageVo implements Serializable { + + @Schema(description = "总条目数", requiredMode = Schema.RequiredMode.REQUIRED) + private Long total; + + @Schema(description = "页尺寸", requiredMode = Schema.RequiredMode.REQUIRED) + private Long size; + + @Schema(description = "总页数", requiredMode = Schema.RequiredMode.REQUIRED) + private Long pages; + + @Schema(description = "当前页码", requiredMode = Schema.RequiredMode.REQUIRED) + private long current; + + @Schema(description = "数据列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List records; + + public PageVo(IPage pageModel) { + this.setRecords(pageModel.getRecords()); + this.setTotal(pageModel.getTotal()); + this.setSize(pageModel.getSize()); + this.setPages(pageModel.getPages()); + this.setCurrent(pageModel.getCurrent()); + } + + public PageVo(List list, IPage pageModel) { + this.setRecords(list); + this.setTotal(pageModel.getTotal()); + this.setSize(pageModel.getSize()); + this.setPages(pageModel.getPages()); + this.setCurrent(pageModel.getCurrent()); + } + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/comment/CommentVo.java b/model/src/main/java/com/atguigu/tingshu/vo/comment/CommentVo.java new file mode 100644 index 0000000..974235d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/comment/CommentVo.java @@ -0,0 +1,28 @@ +package com.atguigu.tingshu.vo.comment; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Positive; +import lombok.Data; + +@Data +@Schema(description = "专辑评论") +public class CommentVo { + + @Positive(message = "专辑id不能为空") + @Schema(description = "专辑id") + private Long albumId; + + @Positive(message = "评分不能为空") + @Schema(description = "评论中对专辑的评分 (十分制,建议采用五星制,如10分显示五颗星,7分显示三颗半星)") + private Integer albumCommentScore; + + @NotEmpty(message = "评论内容不能为空") + @Schema(description = "评论内容") + private String content; + + @NotEmpty(message = "被回复的评论id不能为空") + @Schema(description = "被回复的评论id,一级评论默认为:0") + private String replyCommentId; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/live/LiveRoomVo.java b/model/src/main/java/com/atguigu/tingshu/vo/live/LiveRoomVo.java new file mode 100644 index 0000000..082e570 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/live/LiveRoomVo.java @@ -0,0 +1,34 @@ +package com.atguigu.tingshu.vo.live; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "LiveRoom") +public class LiveRoomVo { + + + @Schema(description = "直播间封面") + private String coverUrl; + + @Schema(description = "直播标题") + private String liveTitle; + + @Schema(description = "直播间标签id") + private String tagId; + + @Schema(description = "过期时间") + private Date expireTime; + + @Schema(description = "经度") + private String longitude; + + @Schema(description = "纬度") + private String latitude; + + @Schema(description = "位置") + private String location; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.java b/model/src/main/java/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.java new file mode 100644 index 0000000..6c8c51d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.java @@ -0,0 +1,13 @@ +package com.atguigu.tingshu.vo.live; + +import lombok.Data; + +@Data +public class TencentLiveAddressVo { + + private String pushWebRtcUrl; + private String pullFlvUrl; + private String pullM3u8Url; + private String pullRtmpUrl; + private String pullWebRtcUrl; +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDerateVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDerateVo.java new file mode 100644 index 0000000..fc86974 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDerateVo.java @@ -0,0 +1,24 @@ +package com.atguigu.tingshu.vo.order; + +import com.atguigu.tingshu.common.util.Decimal2Serializer; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "订单减免明细") +public class OrderDerateVo { + + @Schema(description = "订单减免类型 1405-专辑折扣 1406-VIP服务折") + private String derateType; + + @Schema(description = "减免金额") + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal derateAmount; + + @Schema(description = "备注") + private String remarks; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDetailVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDetailVo.java new file mode 100644 index 0000000..8d6a60a --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderDetailVo.java @@ -0,0 +1,44 @@ +package com.atguigu.tingshu.vo.order; + +import com.atguigu.tingshu.common.util.Decimal2Serializer; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "OrderDetail") +public class OrderDetailVo { + + @NotNull(message = "付费项目id不能为空") + @Schema(description = "付费项目id") + private Long itemId; + + @NotEmpty(message = "付费项目id不能为空") + @Schema(description = "付费项目名称") + private String itemName; + + @NotEmpty(message = "付费项目id不能为空") + @Schema(description = "付费项目图片url") + private String itemUrl; + + /** + * value:最小值 + * inclusive:是否可以等于最小值,默认true,>= 最小值 + * message:错误提示(默认有一个错误提示i18n支持中文) + * + * @DecimalMax 同上 + * @Digits integer: 整数位最多几位 + * fraction:小数位最多几位 + * message:同上,有默认提示 + */ + @DecimalMin(value = "0.00", inclusive = false, message = "付费项目价格必须大于0.00") + @DecimalMax(value = "9999.99", inclusive = true, message = "付费项目价格必须大于9999.99") + @Digits(integer = 4, fraction = 2) + @Schema(description = "付费项目价格") + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal itemPrice; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/OrderInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderInfoVo.java new file mode 100644 index 0000000..7891b37 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/order/OrderInfoVo.java @@ -0,0 +1,75 @@ +package com.atguigu.tingshu.vo.order; + +import com.atguigu.tingshu.common.util.Decimal2Serializer; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.Valid; +import jakarta.validation.constraints.DecimalMax; +import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Digits; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "订单对象") +public class OrderInfoVo { + + @NotEmpty(message = "交易号不能为空") + @Schema(description = "交易号", requiredMode = Schema.RequiredMode.REQUIRED) + private String tradeNo; + + @NotEmpty(message = "支付方式不能为空") + @Schema(description = "支付方式:1101-微信 1102-支付宝 1103-账户余额", requiredMode = Schema.RequiredMode.REQUIRED) + private String payWay; + + @NotEmpty(message = "付款项目类型不能为空") + @Schema(description = "付款项目类型: 1001-专辑 1002-声音 1003-vip会员", requiredMode = Schema.RequiredMode.REQUIRED) + private String itemType; + + /** + * value:最小值 + * inclusive:是否可以等于最小值,默认true,>= 最小值 + * message:错误提示(默认有一个错误提示i18n支持中文) + * + * @DecimalMax 同上 + * @Digits integer: 整数位最多几位 + * fraction:小数位最多几位 + * message:同上,有默认提示 + */ + @DecimalMin(value = "0.00", inclusive = false, message = "订单原始金额必须大于0.00") + @DecimalMax(value = "9999.99", inclusive = true, message = "订单原始金额必须大于9999.99") + @Digits(integer = 4, fraction = 2) + @Schema(description = "订单原始金额", requiredMode = Schema.RequiredMode.REQUIRED) + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal originalAmount; + + @DecimalMin(value = "0.00", inclusive = true, message = "减免总金额必须大于0.00") + @DecimalMax(value = "9999.99", inclusive = true, message = "减免总金额必须大于9999.99") + @Digits(integer = 4, fraction = 2) + @Schema(description = "减免总金额", requiredMode = Schema.RequiredMode.REQUIRED) + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal derateAmount; + + @DecimalMin(value = "0.00", inclusive = false, message = "订单总金额必须大于0.00") + @DecimalMax(value = "9999.99", inclusive = true, message = "订单总金额必须大于9999.99") + @Digits(integer = 4, fraction = 2) + @Schema(description = "订单总金额", requiredMode = Schema.RequiredMode.REQUIRED) + @JsonSerialize(using = Decimal2Serializer.class) + private BigDecimal orderAmount; + + @Valid + @NotEmpty(message = "订单明细列表不能为空") + @Schema(description = "订单明细列表", requiredMode = Schema.RequiredMode.REQUIRED) + private List orderDetailVoList; + + @Schema(description = "订单减免明细列表") + private List orderDerateVoList; + + @Schema(description = "时间戳", requiredMode = Schema.RequiredMode.REQUIRED) + private Long timestamp; + @Schema(description = "签名", requiredMode = Schema.RequiredMode.REQUIRED) + private String sign; +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/TradeResponeVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeResponeVo.java new file mode 100644 index 0000000..2cb2f53 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeResponeVo.java @@ -0,0 +1,37 @@ +package com.atguigu.tingshu.vo.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data +@Schema(description = "订单确认对象") +public class TradeResponeVo { + + @Schema(description = "订单原始金额") + private BigDecimal originalAmount; + + @Schema(description = "减免总金额") + private BigDecimal derateAmount; + + @Schema(description = "订单总价") + private BigDecimal orderAmount; + + @Schema(description = "付款项目类型: 1001-专辑 1002-声音 1003-vip会员") + private String itemType; + + @Schema(description = "付款项目类型Id") + private Long itemId; + + @Schema(description = "针对声音购买,购买当前集往后多少集") + private Integer trackCount; + + @Schema(description = "交易号") + private String tradeNo; + + @Schema(description = "付款项目详情") + List detailList; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java new file mode 100644 index 0000000..24543f1 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/order/TradeVo.java @@ -0,0 +1,23 @@ +package com.atguigu.tingshu.vo.order; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Positive; +import lombok.Data; + +@Data +@Schema(description = "订单确认对象") +public class TradeVo { + + @NotEmpty(message = "付款项目类型不能为空") + @Schema(description = "付款项目类型: 1001-专辑 1002-声音 1003-vip会员", requiredMode = Schema.RequiredMode.REQUIRED) + private String itemType; + + @Positive(message = "付款项目类型Id不能为空") + @Schema(description = "付款项目类型Id", requiredMode = Schema.RequiredMode.REQUIRED) + private Long itemId; + + @Schema(description = "针对声音购买,购买当前集往后多少集", required = false) + private Integer trackCount; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/payment/PaymentVo.java b/model/src/main/java/com/atguigu/tingshu/vo/payment/PaymentVo.java new file mode 100644 index 0000000..67234ed --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/payment/PaymentVo.java @@ -0,0 +1,26 @@ +package com.atguigu.tingshu.vo.payment; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description = "支付信息") +public class PaymentVo { + + + @Schema(description = "支付类型:1301-订单 1302-充值") + private String paymentType; + + @Schema(description = "订单号") + private String orderNo; + + @Schema(description = "付款方式:1101-微信 1102-支付宝") + private String payWay; + + @Schema(description = "支付金额") + private String amount; + + @Schema(description = "交易内容") + private String content; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.java b/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.java new file mode 100644 index 0000000..188c64d --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.java @@ -0,0 +1,55 @@ +package com.atguigu.tingshu.vo.search; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +public class AlbumInfoIndexVo { + + // 专辑Id + @Schema(description = "专辑id") + private Long id; + + @Schema(description = "专辑标题") + private String albumTitle; + + @Schema(description = "专辑简介") + private String albumIntro; + + @Schema(description = "主播名称") + private String announcerName; + + @Schema(description = "专辑封面") + private String coverUrl; + + @Schema(description = "专辑包含声音总数") + private Integer includeTrackCount; + + @Schema(description = "专辑是否完结:0-否;1-完结") + private String isFinished; + + @Schema(description = "付费类型: 0101-免费、0102-vip免费、0103-付费") + private String payType; + + @Schema(description = "专辑创建时间") + private Date createTime; // + + //播放量 + @Schema(description = "播放量") + private Integer playStatNum = 0; + + //订阅量 + @Schema(description = "订阅量") + private Integer subscribeStatNum = 0; + + //购买量 + @Schema(description = "购买量") + private Integer buyStatNum = 0; + + //评论数 + @Schema(description = "评论数") + private Integer commentStatNum = 0; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.java b/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.java new file mode 100644 index 0000000..2206801 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.vo.search; + +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +@Data +public class AlbumSearchResponseVo implements Serializable { + + + //检索出来的商品信息 + private List list = new ArrayList<>(); + + private Long total;//总记录数 + private Integer pageSize;//每页显示的内容 + private Integer pageNo;//当前页面 + private Long totalPages; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/AssginMenuVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/AssginMenuVo.java new file mode 100644 index 0000000..e057dd5 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/AssginMenuVo.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.vo.system; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "分配菜单") +@Data +public class AssginMenuVo { + + @Schema(description = "角色id") + private Long roleId; + + @Schema(description = "菜单id列表") + private List menuIdList; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/AssginRoleVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/AssginRoleVo.java new file mode 100644 index 0000000..60c76c3 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/AssginRoleVo.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.vo.system; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Schema(description = "分配菜单") +@Data +public class AssginRoleVo { + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "角色id列表") + private List roleIdList; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/LoginVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/LoginVo.java new file mode 100644 index 0000000..743172b --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/LoginVo.java @@ -0,0 +1,34 @@ +package com.atguigu.tingshu.vo.system; + + +/** + * 登录对象 + */ +public class LoginVo { + + /** + * 手机号 + */ + private String username; + + /** + * 密码 + */ + private String password; + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/MetaVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/MetaVo.java new file mode 100644 index 0000000..6ca5204 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/MetaVo.java @@ -0,0 +1,33 @@ +package com.atguigu.tingshu.vo.system; + +import lombok.Data; + +/** + * 路由显示信息 + * + */ +@Data +public class MetaVo +{ + /** + * 设置该路由在侧边栏和面包屑中展示的名字 + */ + private String title; + + /** + * 设置该路由的图标,对应路径src/assets/icons/svg + */ + private String icon; + + public MetaVo() + { + } + + public MetaVo(String title, String icon) + { + this.title = title; + this.icon = icon; + } + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/RouterVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/RouterVo.java new file mode 100644 index 0000000..bb727e4 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/RouterVo.java @@ -0,0 +1,50 @@ +package com.atguigu.tingshu.vo.system; + +import lombok.Data; + +import java.util.List; + +/** + * 路由配置信息 + * + */ +@Data +public class RouterVo +{ + /** + * 路由名字 + */ + //private String name; + + /** + * 路由地址 + */ + private String path; + + /** + * 是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现 + */ + private boolean hidden; + + /** + * 组件地址 + */ + private String component; + + /** + * 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面 + */ + private Boolean alwaysShow; + + /** + * 其他元素 + */ + private MetaVo meta; + + /** + * 子路由 + */ + private List children; + + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.java new file mode 100644 index 0000000..178ad1c --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.vo.system; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class SysLoginLogQueryVo { + + @Schema(description = "用户账号") + private String username; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.java new file mode 100644 index 0000000..879bded --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.vo.system; + +import lombok.Data; + +@Data +public class SysOperLogQueryVo { + + private String title; + private String operName; + + private String createTimeBegin; + private String createTimeEnd; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/SysPostQueryVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/SysPostQueryVo.java new file mode 100644 index 0000000..8d09610 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/SysPostQueryVo.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.vo.system; + +import lombok.Data; + +@Data +public class SysPostQueryVo { + + //@Schema(description = "岗位编码") + private String postCode; + + //@Schema(description = "岗位名称") + private String name; + + //@Schema(description = "状态(1正常 0停用)") + private Boolean status; + + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/SysRoleQueryVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/SysRoleQueryVo.java new file mode 100644 index 0000000..6acbbc7 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/SysRoleQueryVo.java @@ -0,0 +1,29 @@ +// +// +package com.atguigu.tingshu.vo.system; + +import java.io.Serializable; + +/** + *

+ * 角色查询实体 + *

+ * + * @author atguigu + * @since 2019-11-08 + */ +public class SysRoleQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String roleName; + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/system/SysUserQueryVo.java b/model/src/main/java/com/atguigu/tingshu/vo/system/SysUserQueryVo.java new file mode 100644 index 0000000..1ae1f76 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/system/SysUserQueryVo.java @@ -0,0 +1,30 @@ +// +// +package com.atguigu.tingshu.vo.system; + + +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 用户查询实体 + *

+ */ +@Data +public class SysUserQueryVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private String keyword; + + private String createTimeBegin; + private String createTimeEnd; + + private Long roleId; + private Long postId; + private Long deptId; + +} + diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/LoginVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/LoginVo.java new file mode 100644 index 0000000..5f1bfe7 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/LoginVo.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +@Schema(description="登录对象") +public class LoginVo { + + @Schema(description = "手机号") + private String phone; + + @Schema(description = "手机验证码") + private String code; +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserCollectVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserCollectVo.java new file mode 100644 index 0000000..b0948b7 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserCollectVo.java @@ -0,0 +1,27 @@ +package com.atguigu.tingshu.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "用户订阅") +public class UserCollectVo { + + @Schema(description = "专辑ID") + private Long albumId; + + @Schema(description = "声音ID") + private Long trackId; + + @Schema(description = "创建时间") + private Date createTime; + + @Schema(description = "标题") + private String trackTitle; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + private String coverUrl; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserInfoVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserInfoVo.java new file mode 100644 index 0000000..edbce0e --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserInfoVo.java @@ -0,0 +1,30 @@ +package com.atguigu.tingshu.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "UserInfoVo") +public class UserInfoVo { + + @Schema(description = "用户id") + private Long id; + + @Schema(description = "微信openId") + private String wxOpenId; + + @Schema(description = "nickname") + private String nickname; + + @Schema(description = "主播用户头像图片") + private String avatarUrl; + + @Schema(description = "用户是否为VIP会员 0:普通用户 1:VIP会员") + private Integer isVip; + + @Schema(description = "当前VIP到期时间,即失效时间") + private Date vipExpireTime; + +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessListVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessListVo.java new file mode 100644 index 0000000..c00c996 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessListVo.java @@ -0,0 +1,39 @@ +package com.atguigu.tingshu.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "UserListenProcessListVo") +public class UserListenProcessListVo { + + @Schema(description = "id") + private String id; + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "标题") + private String albumTitle; + + @Schema(description = "声音id") + private Long trackId; + + @Schema(description = "标题") + private String trackTitle; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + private String coverUrl; + + @Schema(description = "声音媒体时长,单位秒") + private BigDecimal mediaDuration; + + @Schema(description = "相对于音频开始位置的播放跳出位置,单位为秒。比如当前音频总时长60s,本次播放到音频第25s处就退出或者切到下一首,那么break_second就是25") + private BigDecimal breakSecond; + + @Schema(description = "播放比例") + private String playRate; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessVo.java new file mode 100644 index 0000000..5c74bb5 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserListenProcessVo.java @@ -0,0 +1,23 @@ +package com.atguigu.tingshu.vo.user; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@Schema(description = "UserListenProcess") +public class UserListenProcessVo { + + @Schema(description = "专辑id") + private Long albumId; + + @Schema(description = "声音id,声音id为0时,浏览的是专辑") + private Long trackId; + + @Schema(description = "相对于音频开始位置的播放跳出位置,单位为秒。比如当前音频总时长60s,本次播放到音频第25s处就退出或者切到下一首,那么break_second就是25") + @TableField("break_second") + private BigDecimal breakSecond; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserPaidRecordVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserPaidRecordVo.java new file mode 100644 index 0000000..9cef917 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserPaidRecordVo.java @@ -0,0 +1,14 @@ +package com.atguigu.tingshu.vo.user; + +import lombok.Data; + +import java.util.List; + +@Data +public class UserPaidRecordVo { + + private String orderNo; + private Long userId; + private String itemType; + private List itemIdList; +} diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserSubscribeVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserSubscribeVo.java new file mode 100644 index 0000000..6f27a19 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserSubscribeVo.java @@ -0,0 +1,30 @@ +package com.atguigu.tingshu.vo.user; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +@Data +@Schema(description = "用户订阅") +public class UserSubscribeVo { + + @Schema(description = "专辑ID") + private Long albumId; + + @Schema(description = "创建时间") + private Date createTime; + + @Schema(description = "标题") + private String albumTitle; + + @Schema(description = "专辑封面原图,尺寸不固定,最大尺寸为960*960(像素)") + private String coverUrl; + + @Schema(description = "专辑包含声音总数") + private Integer includeTrackCount; + + @Schema(description = "专辑是否完结:0-否;1-完结;") + private String isFinished; + +} \ No newline at end of file diff --git a/model/src/main/java/com/atguigu/tingshu/vo/user/UserUpdateVo.java b/model/src/main/java/com/atguigu/tingshu/vo/user/UserUpdateVo.java new file mode 100644 index 0000000..f5ed115 --- /dev/null +++ b/model/src/main/java/com/atguigu/tingshu/vo/user/UserUpdateVo.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.vo.user; + +import lombok.Data; + +@Data +public class UserUpdateVo { + + + //微信头像 + private String avatarUrl; + + //昵称 + private String nickname; + +} \ No newline at end of file diff --git a/model/target/classes/com/atguigu/tingshu/model/account/RechargeInfo.class b/model/target/classes/com/atguigu/tingshu/model/account/RechargeInfo.class new file mode 100644 index 0000000..54b9562 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/account/RechargeInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/account/UserAccount.class b/model/target/classes/com/atguigu/tingshu/model/account/UserAccount.class new file mode 100644 index 0000000..b02e156 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/account/UserAccount.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/account/UserAccountDetail.class b/model/target/classes/com/atguigu/tingshu/model/account/UserAccountDetail.class new file mode 100644 index 0000000..7fea094 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/account/UserAccountDetail.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/AlbumAttributeValue.class b/model/target/classes/com/atguigu/tingshu/model/album/AlbumAttributeValue.class new file mode 100644 index 0000000..f642c2a Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/AlbumAttributeValue.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/AlbumInfo.class b/model/target/classes/com/atguigu/tingshu/model/album/AlbumInfo.class new file mode 100644 index 0000000..62311f0 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/AlbumInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/AlbumStat.class b/model/target/classes/com/atguigu/tingshu/model/album/AlbumStat.class new file mode 100644 index 0000000..41e5276 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/AlbumStat.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseAttribute.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseAttribute.class new file mode 100644 index 0000000..66ed27f Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseAttribute.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseAttributeValue.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseAttributeValue.class new file mode 100644 index 0000000..e91657b Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseAttributeValue.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory1.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory1.class new file mode 100644 index 0000000..17c2964 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory1.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory2.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory2.class new file mode 100644 index 0000000..7fd6291 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory2.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory3.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory3.class new file mode 100644 index 0000000..e9bd048 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategory3.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseCategoryView.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategoryView.class new file mode 100644 index 0000000..83fbadf Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseCategoryView.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/BaseDic.class b/model/target/classes/com/atguigu/tingshu/model/album/BaseDic.class new file mode 100644 index 0000000..9e49b41 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/BaseDic.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/TrackInfo.class b/model/target/classes/com/atguigu/tingshu/model/album/TrackInfo.class new file mode 100644 index 0000000..6c7ee63 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/TrackInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/album/TrackStat.class b/model/target/classes/com/atguigu/tingshu/model/album/TrackStat.class new file mode 100644 index 0000000..f0042df Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/album/TrackStat.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/base/BaseEntity.class b/model/target/classes/com/atguigu/tingshu/model/base/BaseEntity.class new file mode 100644 index 0000000..4667d15 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/base/BaseEntity.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/comment/Comment.class b/model/target/classes/com/atguigu/tingshu/model/comment/Comment.class new file mode 100644 index 0000000..00819af Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/comment/Comment.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/comment/CommentPraise.class b/model/target/classes/com/atguigu/tingshu/model/comment/CommentPraise.class new file mode 100644 index 0000000..b7fee6d Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/comment/CommentPraise.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobConfig.class b/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobConfig.class new file mode 100644 index 0000000..a92f1cd Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobConfig.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobLog.class b/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobLog.class new file mode 100644 index 0000000..77f1089 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/dispatch/XxlJobLog.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/live/FromUser.class b/model/target/classes/com/atguigu/tingshu/model/live/FromUser.class new file mode 100644 index 0000000..385e70a Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/live/FromUser.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/live/LiveRoom.class b/model/target/classes/com/atguigu/tingshu/model/live/LiveRoom.class new file mode 100644 index 0000000..ecb2151 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/live/LiveRoom.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/live/LiveTag.class b/model/target/classes/com/atguigu/tingshu/model/live/LiveTag.class new file mode 100644 index 0000000..e4839a8 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/live/LiveTag.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg$MsgTypeEnum.class b/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg$MsgTypeEnum.class new file mode 100644 index 0000000..d45f075 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg$MsgTypeEnum.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg.class b/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg.class new file mode 100644 index 0000000..809fe7b Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/live/SocketMsg.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/order/OrderDerate.class b/model/target/classes/com/atguigu/tingshu/model/order/OrderDerate.class new file mode 100644 index 0000000..e208b23 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/order/OrderDerate.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/order/OrderDetail.class b/model/target/classes/com/atguigu/tingshu/model/order/OrderDetail.class new file mode 100644 index 0000000..5bbf555 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/order/OrderDetail.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/order/OrderInfo.class b/model/target/classes/com/atguigu/tingshu/model/order/OrderInfo.class new file mode 100644 index 0000000..1b1df33 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/order/OrderInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/payment/PaymentInfo.class b/model/target/classes/com/atguigu/tingshu/model/payment/PaymentInfo.class new file mode 100644 index 0000000..315fa42 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/payment/PaymentInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/search/AlbumInfoIndex.class b/model/target/classes/com/atguigu/tingshu/model/search/AlbumInfoIndex.class new file mode 100644 index 0000000..b1fefcc Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/search/AlbumInfoIndex.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/search/AttributeValueIndex.class b/model/target/classes/com/atguigu/tingshu/model/search/AttributeValueIndex.class new file mode 100644 index 0000000..d6d8468 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/search/AttributeValueIndex.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/search/SuggestIndex.class b/model/target/classes/com/atguigu/tingshu/model/search/SuggestIndex.class new file mode 100644 index 0000000..c3704a8 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/search/SuggestIndex.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysDept.class b/model/target/classes/com/atguigu/tingshu/model/system/SysDept.class new file mode 100644 index 0000000..6d3451c Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysDept.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysLoginLog.class b/model/target/classes/com/atguigu/tingshu/model/system/SysLoginLog.class new file mode 100644 index 0000000..62e6a38 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysLoginLog.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysMenu.class b/model/target/classes/com/atguigu/tingshu/model/system/SysMenu.class new file mode 100644 index 0000000..a2fba67 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysMenu.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysOperLog.class b/model/target/classes/com/atguigu/tingshu/model/system/SysOperLog.class new file mode 100644 index 0000000..e3dd6ac Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysOperLog.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysPost.class b/model/target/classes/com/atguigu/tingshu/model/system/SysPost.class new file mode 100644 index 0000000..f8ad061 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysPost.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysRole.class b/model/target/classes/com/atguigu/tingshu/model/system/SysRole.class new file mode 100644 index 0000000..b060ba3 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysRole.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysRoleMenu.class b/model/target/classes/com/atguigu/tingshu/model/system/SysRoleMenu.class new file mode 100644 index 0000000..2bf6d31 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysRoleMenu.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysUser.class b/model/target/classes/com/atguigu/tingshu/model/system/SysUser.class new file mode 100644 index 0000000..d7dcb92 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysUser.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/system/SysUserRole.class b/model/target/classes/com/atguigu/tingshu/model/system/SysUserRole.class new file mode 100644 index 0000000..4966d86 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/system/SysUserRole.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserCertification.class b/model/target/classes/com/atguigu/tingshu/model/user/UserCertification.class new file mode 100644 index 0000000..2dcfb8e Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserCertification.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserCollect.class b/model/target/classes/com/atguigu/tingshu/model/user/UserCollect.class new file mode 100644 index 0000000..f2e2e1c Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserCollect.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserInfo.class b/model/target/classes/com/atguigu/tingshu/model/user/UserInfo.class new file mode 100644 index 0000000..f509b64 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserInfo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserListenProcess.class b/model/target/classes/com/atguigu/tingshu/model/user/UserListenProcess.class new file mode 100644 index 0000000..d00036c Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserListenProcess.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserPaidAlbum.class b/model/target/classes/com/atguigu/tingshu/model/user/UserPaidAlbum.class new file mode 100644 index 0000000..6003a33 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserPaidAlbum.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserPaidTrack.class b/model/target/classes/com/atguigu/tingshu/model/user/UserPaidTrack.class new file mode 100644 index 0000000..05f318e Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserPaidTrack.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserStat.class b/model/target/classes/com/atguigu/tingshu/model/user/UserStat.class new file mode 100644 index 0000000..6aa160a Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserStat.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserSubscribe.class b/model/target/classes/com/atguigu/tingshu/model/user/UserSubscribe.class new file mode 100644 index 0000000..cfd4e32 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserSubscribe.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/UserVipService.class b/model/target/classes/com/atguigu/tingshu/model/user/UserVipService.class new file mode 100644 index 0000000..fa5c18a Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/UserVipService.class differ diff --git a/model/target/classes/com/atguigu/tingshu/model/user/VipServiceConfig.class b/model/target/classes/com/atguigu/tingshu/model/user/VipServiceConfig.class new file mode 100644 index 0000000..1ff5ea4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/model/user/VipServiceConfig.class differ diff --git a/model/target/classes/com/atguigu/tingshu/query/album/AlbumInfoQuery.class b/model/target/classes/com/atguigu/tingshu/query/album/AlbumInfoQuery.class new file mode 100644 index 0000000..14bb290 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/query/album/AlbumInfoQuery.class differ diff --git a/model/target/classes/com/atguigu/tingshu/query/album/TrackInfoQuery.class b/model/target/classes/com/atguigu/tingshu/query/album/TrackInfoQuery.class new file mode 100644 index 0000000..f68bcb7 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/query/album/TrackInfoQuery.class differ diff --git a/model/target/classes/com/atguigu/tingshu/query/order/OrderInfoQuery.class b/model/target/classes/com/atguigu/tingshu/query/order/OrderInfoQuery.class new file mode 100644 index 0000000..ae442bc Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/query/order/OrderInfoQuery.class differ diff --git a/model/target/classes/com/atguigu/tingshu/query/search/AlbumIndexQuery.class b/model/target/classes/com/atguigu/tingshu/query/search/AlbumIndexQuery.class new file mode 100644 index 0000000..ca14fa4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/query/search/AlbumIndexQuery.class differ diff --git a/model/target/classes/com/atguigu/tingshu/query/user/UserInfoQuery.class b/model/target/classes/com/atguigu/tingshu/query/user/UserInfoQuery.class new file mode 100644 index 0000000..ae91637 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/query/user/UserInfoQuery.class differ diff --git a/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaid.class b/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaid.class new file mode 100644 index 0000000..19cf9bd Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaid.class differ diff --git a/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaidValidator.class b/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaidValidator.class new file mode 100644 index 0000000..bf217fd Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/validation/NotEmptyPaidValidator.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/account/AccountDeductVo.class b/model/target/classes/com/atguigu/tingshu/vo/account/AccountDeductVo.class new file mode 100644 index 0000000..7cca29f Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/account/AccountDeductVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockResultVo.class b/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockResultVo.class new file mode 100644 index 0000000..5f01866 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockResultVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockVo.class b/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockVo.class new file mode 100644 index 0000000..f67a2fd Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/account/AccountLockVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/account/RechargeInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/account/RechargeInfoVo.class new file mode 100644 index 0000000..e5ab94e Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/account/RechargeInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.class new file mode 100644 index 0000000..d3119c4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumAttributeValueVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumInfoVo.class new file mode 100644 index 0000000..72faad5 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumListVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumListVo.class new file mode 100644 index 0000000..21a3c03 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumListVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatMqVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatMqVo.class new file mode 100644 index 0000000..d0a18be Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatMqVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatVo.class new file mode 100644 index 0000000..63e4bc4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumStatVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/AlbumTrackListVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumTrackListVo.class new file mode 100644 index 0000000..6ed243a Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/AlbumTrackListVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/TrackInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/TrackInfoVo.class new file mode 100644 index 0000000..06651a4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/TrackInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/TrackListVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/TrackListVo.class new file mode 100644 index 0000000..4facb9e Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/TrackListVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.class new file mode 100644 index 0000000..01dfe55 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/TrackMediaInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatMqVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatMqVo.class new file mode 100644 index 0000000..385437d Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatMqVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatVo.class b/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatVo.class new file mode 100644 index 0000000..d37230f Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/album/TrackStatVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/base/PageVo$PageVoBuilder.class b/model/target/classes/com/atguigu/tingshu/vo/base/PageVo$PageVoBuilder.class new file mode 100644 index 0000000..98fe8a5 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/base/PageVo$PageVoBuilder.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/base/PageVo.class b/model/target/classes/com/atguigu/tingshu/vo/base/PageVo.class new file mode 100644 index 0000000..b93c289 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/base/PageVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/comment/CommentVo.class b/model/target/classes/com/atguigu/tingshu/vo/comment/CommentVo.class new file mode 100644 index 0000000..b6e83e4 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/comment/CommentVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/live/LiveRoomVo.class b/model/target/classes/com/atguigu/tingshu/vo/live/LiveRoomVo.class new file mode 100644 index 0000000..5c3dca3 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/live/LiveRoomVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.class b/model/target/classes/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.class new file mode 100644 index 0000000..cdde9a2 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/live/TencentLiveAddressVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/OrderDerateVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/OrderDerateVo.class new file mode 100644 index 0000000..ed4038b Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/order/OrderDerateVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/OrderDetailVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/OrderDetailVo.class new file mode 100644 index 0000000..97c61cf Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/order/OrderDetailVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/OrderInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/OrderInfoVo.class new file mode 100644 index 0000000..67d7f28 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/order/OrderInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/TradeResponeVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/TradeResponeVo.class new file mode 100644 index 0000000..2004bad Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/order/TradeResponeVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/order/TradeVo.class b/model/target/classes/com/atguigu/tingshu/vo/order/TradeVo.class new file mode 100644 index 0000000..f3c8111 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/order/TradeVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/payment/PaymentVo.class b/model/target/classes/com/atguigu/tingshu/vo/payment/PaymentVo.class new file mode 100644 index 0000000..7ba7f7d Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/payment/PaymentVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.class b/model/target/classes/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.class new file mode 100644 index 0000000..ae15a94 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/search/AlbumInfoIndexVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.class b/model/target/classes/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.class new file mode 100644 index 0000000..2239d68 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/search/AlbumSearchResponseVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/AssginMenuVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/AssginMenuVo.class new file mode 100644 index 0000000..8c2fda3 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/AssginMenuVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/AssginRoleVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/AssginRoleVo.class new file mode 100644 index 0000000..a0ce8c0 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/AssginRoleVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/LoginVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/LoginVo.class new file mode 100644 index 0000000..d610e7d Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/LoginVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/MetaVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/MetaVo.class new file mode 100644 index 0000000..721b9e1 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/MetaVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/RouterVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/RouterVo.class new file mode 100644 index 0000000..e19f683 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/RouterVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.class new file mode 100644 index 0000000..364cab6 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/SysLoginLogQueryVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.class new file mode 100644 index 0000000..94e8f81 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/SysOperLogQueryVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/SysPostQueryVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/SysPostQueryVo.class new file mode 100644 index 0000000..8844a63 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/SysPostQueryVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/SysRoleQueryVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/SysRoleQueryVo.class new file mode 100644 index 0000000..8a3f6bf Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/SysRoleQueryVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/system/SysUserQueryVo.class b/model/target/classes/com/atguigu/tingshu/vo/system/SysUserQueryVo.class new file mode 100644 index 0000000..e864d72 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/system/SysUserQueryVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/LoginVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/LoginVo.class new file mode 100644 index 0000000..10464c8 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/LoginVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserCollectVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserCollectVo.class new file mode 100644 index 0000000..cf303c1 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserCollectVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserInfoVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserInfoVo.class new file mode 100644 index 0000000..65efadc Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserInfoVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessListVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessListVo.class new file mode 100644 index 0000000..69efc7c Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessListVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessVo.class new file mode 100644 index 0000000..eff0cd3 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserListenProcessVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserPaidRecordVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserPaidRecordVo.class new file mode 100644 index 0000000..43f78de Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserPaidRecordVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserSubscribeVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserSubscribeVo.class new file mode 100644 index 0000000..548599d Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserSubscribeVo.class differ diff --git a/model/target/classes/com/atguigu/tingshu/vo/user/UserUpdateVo.class b/model/target/classes/com/atguigu/tingshu/vo/user/UserUpdateVo.class new file mode 100644 index 0000000..27ee3f7 Binary files /dev/null and b/model/target/classes/com/atguigu/tingshu/vo/user/UserUpdateVo.class differ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..571afd9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,183 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.0.5 + + + + com.atguigu.tingshu + tingshu-parent + pom + 1.0 + + + common + model + service + server-gateway + service-client + + + + 17 + 2022.0.2 + 2022.0.0.0-RC1 + 3.5.3.1 + 8.0.30 + 4.1.0 + 1.2.29 + 2.1.4 + 8.2.0 + 2.10.1 + 2.4.0 + 0.0.3 + 3.20.0 + 23.0 + 2.5.0 + 3.0.4 + 3.1.0 + 3.1.0 + 2.11.0 + + + + + + + org.springframework.cloud + spring-cloud-dependencies + ${cloud.version} + pom + import + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + ${alibaba.version} + pom + import + + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus.version} + + + + mysql + mysql-connector-java + ${mysql.version} + + + + com.github.xiaoymin + knife4j-openapi3-jakarta-spring-boot-starter + ${knife4j.version} + + + + com.alibaba + fastjson + ${fastjson.version} + + + + + com.qcloud + vod_api + ${vod_api.version} + + + + + io.minio + minio + ${minio.version} + + + + + joda-time + joda-time + ${jodatime.version} + + + + + com.xuxueli + xxl-job-core + ${xxl-job.version} + + + + com.github.wxpay + wxpay-sdk + ${wxpay.version} + + + org.redisson + redisson-spring-boot-starter + ${redisson.version} + + + + + com.google.guava + guava + ${guava.version} + + + + + + com.belerweb + pinyin4j + ${pinyin4j.version} + + + + org.springframework.kafka + spring-kafka + ${spring-kafka.version} + + + org.apache.kafka + kafka-clients + ${kafka-clients.version} + + + org.apache.kafka + kafka-streams + ${kafka-streams.version} + + + + commons-io + commons-io + ${commons-io.version} + + + + + + ${project.artifactId} + + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + 17 + + + + + + diff --git a/server-gateway/pom.xml b/server-gateway/pom.xml new file mode 100644 index 0000000..c09d741 --- /dev/null +++ b/server-gateway/pom.xml @@ -0,0 +1,71 @@ + + + 4.0.0 + + + tingshu-parent + com.atguigu.tingshu + 1.0 + + 1.0 + server-gateway + + jar + server-gateway + + + + com.atguigu.tingshu + common-util + 1.0 + + + com.atguigu.tingshu + model + 1.0 + + + + org.springframework.cloud + spring-cloud-starter-gateway + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/server-gateway/src/main/java/com/atguigu/tingshu/ServerGatewayApplication.java b/server-gateway/src/main/java/com/atguigu/tingshu/ServerGatewayApplication.java new file mode 100644 index 0000000..01c4b4c --- /dev/null +++ b/server-gateway/src/main/java/com/atguigu/tingshu/ServerGatewayApplication.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ServerGatewayApplication { + + public static void main(String[] args) { + SpringApplication.run(ServerGatewayApplication.class, args); + } + +} diff --git a/server-gateway/src/main/java/com/atguigu/tingshu/gateway/config/CorsConfig.java b/server-gateway/src/main/java/com/atguigu/tingshu/gateway/config/CorsConfig.java new file mode 100644 index 0000000..1c4824f --- /dev/null +++ b/server-gateway/src/main/java/com/atguigu/tingshu/gateway/config/CorsConfig.java @@ -0,0 +1,37 @@ +package com.atguigu.tingshu.gateway.config; + + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.reactive.CorsWebFilter; +import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; + +/** + *

+ * 处理跨域 + *

+ * + * @author atguigu + */ +@Configuration +public class CorsConfig { + + @Bean + public CorsWebFilter corsWebFilter(){ + + // cors跨域配置对象 + CorsConfiguration configuration = new CorsConfiguration(); + configuration.addAllowedOriginPattern("*"); + configuration.setAllowCredentials(true); + configuration.addAllowedMethod("*"); + configuration.addAllowedHeader("*"); + + // 配置源对象 + UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource(); + configurationSource.registerCorsConfiguration("/**", configuration); + // cors过滤器对象 + return new CorsWebFilter(configurationSource); + } +} + diff --git a/server-gateway/src/main/java/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.java b/server-gateway/src/main/java/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.java new file mode 100644 index 0000000..eb30a27 --- /dev/null +++ b/server-gateway/src/main/java/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.java @@ -0,0 +1,31 @@ +package com.atguigu.tingshu.gateway.filter; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.stereotype.Component; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + *

+ * 全局Filter,统一处理会员登录与外部不允许访问的服务 + *

+ * + */ +@Slf4j +@Component +public class AuthGlobalFilter implements GlobalFilter, Ordered { + + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + return chain.filter(exchange); + } + + @Override + public int getOrder() { + return 0; + } +} diff --git a/server-gateway/src/main/resources/bootstrap.properties b/server-gateway/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..8eaf3eb --- /dev/null +++ b/server-gateway/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=server-gateway +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/server-gateway/target/classes/bootstrap.properties b/server-gateway/target/classes/bootstrap.properties new file mode 100644 index 0000000..8eaf3eb --- /dev/null +++ b/server-gateway/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=server-gateway +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/server-gateway/target/classes/com/atguigu/tingshu/ServerGatewayApplication.class b/server-gateway/target/classes/com/atguigu/tingshu/ServerGatewayApplication.class new file mode 100644 index 0000000..5246a53 Binary files /dev/null and b/server-gateway/target/classes/com/atguigu/tingshu/ServerGatewayApplication.class differ diff --git a/server-gateway/target/classes/com/atguigu/tingshu/gateway/config/CorsConfig.class b/server-gateway/target/classes/com/atguigu/tingshu/gateway/config/CorsConfig.class new file mode 100644 index 0000000..ce4049e Binary files /dev/null and b/server-gateway/target/classes/com/atguigu/tingshu/gateway/config/CorsConfig.class differ diff --git a/server-gateway/target/classes/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.class b/server-gateway/target/classes/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.class new file mode 100644 index 0000000..75b654e Binary files /dev/null and b/server-gateway/target/classes/com/atguigu/tingshu/gateway/filter/AuthGlobalFilter.class differ diff --git a/service-client/pom.xml b/service-client/pom.xml new file mode 100644 index 0000000..e7c038a --- /dev/null +++ b/service-client/pom.xml @@ -0,0 +1,50 @@ + + + 4.0.0 + + + tingshu-parent + com.atguigu.tingshu + 1.0 + + + + service-album-client + service-user-client + service-account-client + service-order-client + service-search-client + + + service-client + pom + 1.0 + + + + com.atguigu.tingshu + common-util + 1.0 + provided + + + com.atguigu.tingshu + model + 1.0 + + + org.springframework.boot + spring-boot-starter-web + provided + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + provided + + + + diff --git a/service-client/service-account-client/pom.xml b/service-client/service-account-client/pom.xml new file mode 100644 index 0000000..76e231b --- /dev/null +++ b/service-client/service-account-client/pom.xml @@ -0,0 +1,15 @@ + + + + service-client + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-account-client + 1.0 + jar + + diff --git a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java new file mode 100644 index 0000000..68c1f42 --- /dev/null +++ b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/AccountFeignClient.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.account; + +import com.atguigu.tingshu.account.impl.AccountDegradeFeignClient; +import org.springframework.cloud.openfeign.FeignClient; + +/** + *

+ * 账号模块远程调用API接口 + *

+ * + * @author atguigu + */ +@FeignClient(value = "service-account", fallback = AccountDegradeFeignClient.class) +public interface AccountFeignClient { + +} diff --git a/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java new file mode 100644 index 0000000..2c7217f --- /dev/null +++ b/service-client/service-account-client/src/main/java/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.account.impl; + + +import com.atguigu.tingshu.account.AccountFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class AccountDegradeFeignClient implements AccountFeignClient { + +} diff --git a/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/AccountFeignClient.class b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/AccountFeignClient.class new file mode 100644 index 0000000..887c9e0 Binary files /dev/null and b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/AccountFeignClient.class differ diff --git a/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.class b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.class new file mode 100644 index 0000000..dd71bc7 Binary files /dev/null and b/service-client/service-account-client/target/classes/com/atguigu/tingshu/account/impl/AccountDegradeFeignClient.class differ diff --git a/service-client/service-album-client/pom.xml b/service-client/service-album-client/pom.xml new file mode 100644 index 0000000..b50e93b --- /dev/null +++ b/service-client/service-album-client/pom.xml @@ -0,0 +1,15 @@ + + + + service-client + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-album-client + 1.0 + jar + + diff --git a/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/AlbumFeignClient.java b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/AlbumFeignClient.java new file mode 100644 index 0000000..e08a954 --- /dev/null +++ b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/AlbumFeignClient.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.album; + +import com.atguigu.tingshu.album.impl.AlbumDegradeFeignClient; +import org.springframework.cloud.openfeign.FeignClient; + +/** + *

+ * 专辑模块远程调用Feign接口 + *

+ * + * @author atguigu + */ +@FeignClient(value = "service-album", fallback = AlbumDegradeFeignClient.class) +public interface AlbumFeignClient { + +} diff --git a/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java new file mode 100644 index 0000000..2ca1666 --- /dev/null +++ b/service-client/service-album-client/src/main/java/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.impl; + + +import com.atguigu.tingshu.album.AlbumFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class AlbumDegradeFeignClient implements AlbumFeignClient { + + +} diff --git a/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/AlbumFeignClient.class b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/AlbumFeignClient.class new file mode 100644 index 0000000..ed17087 Binary files /dev/null and b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/AlbumFeignClient.class differ diff --git a/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.class b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.class new file mode 100644 index 0000000..912da49 Binary files /dev/null and b/service-client/service-album-client/target/classes/com/atguigu/tingshu/album/impl/AlbumDegradeFeignClient.class differ diff --git a/service-client/service-order-client/pom.xml b/service-client/service-order-client/pom.xml new file mode 100644 index 0000000..c7c2a68 --- /dev/null +++ b/service-client/service-order-client/pom.xml @@ -0,0 +1,15 @@ + + + + service-client + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-order-client + 1.0 + jar + + diff --git a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java new file mode 100644 index 0000000..9fa7ea4 --- /dev/null +++ b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/OrderFeignClient.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu.order.client; + +import com.atguigu.tingshu.order.client.impl.OrderDegradeFeignClient; +import org.springframework.cloud.openfeign.FeignClient; + +/** + *

+ * 订单模块远程调用API接口 + *

+ * + * @author atguigu + */ +@FeignClient(value = "service-order", fallback = OrderDegradeFeignClient.class) +public interface OrderFeignClient { + + +} diff --git a/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java new file mode 100644 index 0000000..7025aa2 --- /dev/null +++ b/service-client/service-order-client/src/main/java/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.order.client.impl; + + +import com.atguigu.tingshu.order.client.OrderFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class OrderDegradeFeignClient implements OrderFeignClient { + +} diff --git a/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/OrderFeignClient.class b/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/OrderFeignClient.class new file mode 100644 index 0000000..9093347 Binary files /dev/null and b/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/OrderFeignClient.class differ diff --git a/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.class b/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.class new file mode 100644 index 0000000..f707416 Binary files /dev/null and b/service-client/service-order-client/target/classes/com/atguigu/tingshu/order/client/impl/OrderDegradeFeignClient.class differ diff --git a/service-client/service-search-client/pom.xml b/service-client/service-search-client/pom.xml new file mode 100644 index 0000000..e6b5c0e --- /dev/null +++ b/service-client/service-search-client/pom.xml @@ -0,0 +1,20 @@ + + + + service-client + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-search-client + + + 8 + 8 + UTF-8 + + + diff --git a/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/SearchFeignClient.java b/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/SearchFeignClient.java new file mode 100644 index 0000000..f757729 --- /dev/null +++ b/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/SearchFeignClient.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu.search.client; + +import com.atguigu.tingshu.search.client.impl.SearchDegradeFeignClient; +import org.springframework.cloud.openfeign.FeignClient; + +/** + *

+ * 搜索模块远程调用API接口 + *

+ * + * @author atguigu + */ +@FeignClient(value = "service-search", fallback = SearchDegradeFeignClient.class) +public interface SearchFeignClient { + + +} diff --git a/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.java b/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.java new file mode 100644 index 0000000..7f19eb8 --- /dev/null +++ b/service-client/service-search-client/src/main/java/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.search.client.impl; + +import com.atguigu.tingshu.search.client.SearchFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author: atguigu + * @create: 2023-12-05 22:23 + */ + +@Slf4j +@Component +public class SearchDegradeFeignClient implements SearchFeignClient { +} diff --git a/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/SearchFeignClient.class b/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/SearchFeignClient.class new file mode 100644 index 0000000..996dbd4 Binary files /dev/null and b/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/SearchFeignClient.class differ diff --git a/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.class b/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.class new file mode 100644 index 0000000..dbdcbb3 Binary files /dev/null and b/service-client/service-search-client/target/classes/com/atguigu/tingshu/search/client/impl/SearchDegradeFeignClient.class differ diff --git a/service-client/service-user-client/pom.xml b/service-client/service-user-client/pom.xml new file mode 100644 index 0000000..900a7b7 --- /dev/null +++ b/service-client/service-user-client/pom.xml @@ -0,0 +1,15 @@ + + + + service-client + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-user-client + 1.0 + jar + + diff --git a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java new file mode 100644 index 0000000..bf0be8f --- /dev/null +++ b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/UserFeignClient.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.user.client; + +import com.atguigu.tingshu.user.client.impl.UserDegradeFeignClient; +import org.springframework.cloud.openfeign.FeignClient; + +/** + *

+ * 用户模块远程调用API接口 + *

+ * + * @author atguigu + */ +@FeignClient(value = "service-user", fallback = UserDegradeFeignClient.class) +public interface UserFeignClient { + +} diff --git a/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java new file mode 100644 index 0000000..72663d6 --- /dev/null +++ b/service-client/service-user-client/src/main/java/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.client.impl; + + +import com.atguigu.tingshu.user.client.UserFeignClient; +import org.springframework.stereotype.Component; + +@Component +public class UserDegradeFeignClient implements UserFeignClient { + +} diff --git a/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/UserFeignClient.class b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/UserFeignClient.class new file mode 100644 index 0000000..2aedbcd Binary files /dev/null and b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/UserFeignClient.class differ diff --git a/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.class b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.class new file mode 100644 index 0000000..9e117d9 Binary files /dev/null and b/service-client/service-user-client/target/classes/com/atguigu/tingshu/user/client/impl/UserDegradeFeignClient.class differ diff --git a/service/pom.xml b/service/pom.xml new file mode 100644 index 0000000..563fc12 --- /dev/null +++ b/service/pom.xml @@ -0,0 +1,63 @@ + + + + tingshu-parent + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service + pom + + + service-album + service-search + service-account + service-dispatch + service-order + service-payment + service-user + + + + + com.atguigu.tingshu + service-util + 1.0 + + + com.atguigu.tingshu + service-account-client + 1.0 + + + com.atguigu.tingshu + service-album-client + 1.0 + + + com.atguigu.tingshu + service-order-client + 1.0 + + + com.atguigu.tingshu + service-user-client + 1.0 + + + org.springframework.boot + spring-boot-starter-test + test + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + + diff --git a/service/service-account/pom.xml b/service/service-account/pom.xml new file mode 100644 index 0000000..543e273 --- /dev/null +++ b/service/service-account/pom.xml @@ -0,0 +1,37 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-account + jar + 1.0 + + + true + + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/ServiceAccountApplication.java b/service/service-account/src/main/java/com/atguigu/tingshu/ServiceAccountApplication.java new file mode 100644 index 0000000..5923361 --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/ServiceAccountApplication.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ServiceAccountApplication { + + public static void main(String[] args) { + SpringApplication.run(ServiceAccountApplication.class, args); + } +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java new file mode 100644 index 0000000..228bb98 --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/RechargeInfoApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.account.api; + +import com.atguigu.tingshu.account.service.RechargeInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "充值管理") +@RestController +@RequestMapping("api/account") +@SuppressWarnings({"all"}) +public class RechargeInfoApiController { + + @Autowired + private RechargeInfoService rechargeInfoService; + +} + diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/api/UserAccountApiController.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/UserAccountApiController.java new file mode 100644 index 0000000..ba52aea --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/api/UserAccountApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.account.api; + +import com.atguigu.tingshu.account.service.UserAccountService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "用户账户管理") +@RestController +@RequestMapping("api/account") +@SuppressWarnings({"all"}) +public class UserAccountApiController { + + @Autowired + private UserAccountService userAccountService; + +} + diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.java new file mode 100644 index 0000000..442d5fc --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.account.mapper; + +import com.atguigu.tingshu.model.account.RechargeInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RechargeInfoMapper extends BaseMapper { + + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.java new file mode 100644 index 0000000..c0138dd --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.account.mapper; + +import com.atguigu.tingshu.model.account.UserAccountDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserAccountDetailMapper extends BaseMapper { + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountMapper.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountMapper.java new file mode 100644 index 0000000..c98dbcb --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/mapper/UserAccountMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.account.mapper; + +import com.atguigu.tingshu.model.account.UserAccount; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserAccountMapper extends BaseMapper { + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/RechargeInfoService.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/RechargeInfoService.java new file mode 100644 index 0000000..d594cd0 --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/RechargeInfoService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.account.service; + +import com.atguigu.tingshu.model.account.RechargeInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface RechargeInfoService extends IService { + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java new file mode 100644 index 0000000..6e5216a --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/UserAccountService.java @@ -0,0 +1,9 @@ +package com.atguigu.tingshu.account.service; + +import com.atguigu.tingshu.model.account.UserAccount; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface UserAccountService extends IService { + + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.java new file mode 100644 index 0000000..8a42dcc --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu.account.service.impl; + +import com.atguigu.tingshu.account.mapper.RechargeInfoMapper; +import com.atguigu.tingshu.account.service.RechargeInfoService; +import com.atguigu.tingshu.model.account.RechargeInfo; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@SuppressWarnings({"all"}) +public class RechargeInfoServiceImpl extends ServiceImpl implements RechargeInfoService { + + @Autowired + private RechargeInfoMapper rechargeInfoMapper; + +} diff --git a/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java new file mode 100644 index 0000000..0ba782b --- /dev/null +++ b/service/service-account/src/main/java/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.account.service.impl; + +import com.atguigu.tingshu.account.mapper.UserAccountMapper; +import com.atguigu.tingshu.account.service.UserAccountService; +import com.atguigu.tingshu.model.account.UserAccount; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class UserAccountServiceImpl extends ServiceImpl implements UserAccountService { + + @Autowired + private UserAccountMapper userAccountMapper; + +} diff --git a/service/service-account/src/main/resources/bootstrap.properties b/service/service-account/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..f144ee9 --- /dev/null +++ b/service/service-account/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-account +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-account/src/main/resources/logback-spring.xml b/service/service-account/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-account/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-account/src/main/resources/mapper/UserAccountDetailMapper.xml b/service/service-account/src/main/resources/mapper/UserAccountDetailMapper.xml new file mode 100644 index 0000000..7c752b7 --- /dev/null +++ b/service/service-account/src/main/resources/mapper/UserAccountDetailMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + id,user_id,title,trade_type,amount,order_no,create_time,update_time,is_deleted + + + + diff --git a/service/service-account/src/main/resources/mapper/UserAccountMapper.xml b/service/service-account/src/main/resources/mapper/UserAccountMapper.xml new file mode 100644 index 0000000..a52f377 --- /dev/null +++ b/service/service-account/src/main/resources/mapper/UserAccountMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + id,user_id,total_amount,lock_amount,available_amount,total_income_amount,total_pay_amount,create_time,update_time,is_deleted + + + + diff --git a/service/service-account/target/classes/bootstrap.properties b/service/service-account/target/classes/bootstrap.properties new file mode 100644 index 0000000..f144ee9 --- /dev/null +++ b/service/service-account/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-account +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-account/target/classes/com/atguigu/tingshu/ServiceAccountApplication.class b/service/service-account/target/classes/com/atguigu/tingshu/ServiceAccountApplication.class new file mode 100644 index 0000000..e17998f Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/ServiceAccountApplication.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/api/RechargeInfoApiController.class b/service/service-account/target/classes/com/atguigu/tingshu/account/api/RechargeInfoApiController.class new file mode 100644 index 0000000..098e309 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/api/RechargeInfoApiController.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/api/UserAccountApiController.class b/service/service-account/target/classes/com/atguigu/tingshu/account/api/UserAccountApiController.class new file mode 100644 index 0000000..55e36dd Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/api/UserAccountApiController.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.class b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.class new file mode 100644 index 0000000..f372bf3 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/RechargeInfoMapper.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.class b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.class new file mode 100644 index 0000000..6c54e94 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountDetailMapper.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountMapper.class b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountMapper.class new file mode 100644 index 0000000..5a7ff30 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/mapper/UserAccountMapper.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/service/RechargeInfoService.class b/service/service-account/target/classes/com/atguigu/tingshu/account/service/RechargeInfoService.class new file mode 100644 index 0000000..658e376 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/service/RechargeInfoService.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/service/UserAccountService.class b/service/service-account/target/classes/com/atguigu/tingshu/account/service/UserAccountService.class new file mode 100644 index 0000000..951c44d Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/service/UserAccountService.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.class b/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.class new file mode 100644 index 0000000..fffd830 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/RechargeInfoServiceImpl.class differ diff --git a/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.class b/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.class new file mode 100644 index 0000000..2c931f4 Binary files /dev/null and b/service/service-account/target/classes/com/atguigu/tingshu/account/service/impl/UserAccountServiceImpl.class differ diff --git a/service/service-account/target/classes/logback-spring.xml b/service/service-account/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-account/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-account/target/classes/mapper/UserAccountDetailMapper.xml b/service/service-account/target/classes/mapper/UserAccountDetailMapper.xml new file mode 100644 index 0000000..7c752b7 --- /dev/null +++ b/service/service-account/target/classes/mapper/UserAccountDetailMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + id,user_id,title,trade_type,amount,order_no,create_time,update_time,is_deleted + + + + diff --git a/service/service-account/target/classes/mapper/UserAccountMapper.xml b/service/service-account/target/classes/mapper/UserAccountMapper.xml new file mode 100644 index 0000000..a52f377 --- /dev/null +++ b/service/service-account/target/classes/mapper/UserAccountMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + id,user_id,total_amount,lock_amount,available_amount,total_income_amount,total_pay_amount,create_time,update_time,is_deleted + + + + diff --git a/service/service-album/pom.xml b/service/service-album/pom.xml new file mode 100644 index 0000000..5dff7c5 --- /dev/null +++ b/service/service-album/pom.xml @@ -0,0 +1,60 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-album + jar + 1.0 + + + true + + + + + io.minio + minio + + + + com.qcloud + vod_api + + + + org.slf4j + slf4j-log4j12 + + + + + + com.auth0 + java-jwt + 4.3.0 + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/ServiceAlbumApplication.java b/service/service-album/src/main/java/com/atguigu/tingshu/ServiceAlbumApplication.java new file mode 100644 index 0000000..eb01876 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/ServiceAlbumApplication.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ServiceAlbumApplication { + + public static void main(String[] args) { + SpringApplication.run(ServiceAlbumApplication.class, args); + } + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/api/AlbumInfoApiController.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/AlbumInfoApiController.java new file mode 100644 index 0000000..d1a2406 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/AlbumInfoApiController.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu.album.api; + +import com.atguigu.tingshu.album.service.AlbumInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "专辑管理") +@RestController +@RequestMapping("api/album") +@SuppressWarnings({"all"}) +public class AlbumInfoApiController { + + @Autowired + private AlbumInfoService albumInfoService; + + +} + diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/api/BaseCategoryApiController.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/BaseCategoryApiController.java new file mode 100644 index 0000000..9b8072a --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/BaseCategoryApiController.java @@ -0,0 +1,42 @@ +package com.atguigu.tingshu.album.api; + +import com.alibaba.fastjson.JSONObject; +import com.atguigu.tingshu.album.service.BaseCategoryService; +import com.atguigu.tingshu.common.result.Result; +import com.atguigu.tingshu.model.album.BaseAttribute; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@Tag(name = "分类管理") +@RestController +@RequestMapping(value="/api/album") +@SuppressWarnings({"all"}) +public class BaseCategoryApiController { + + @Autowired + private BaseCategoryService baseCategoryService; + + @Operation(summary = "查询所有分类(1、2、3级分类)") + @GetMapping("/category/getBaseCategoryList") + public Result> getBaseCategoryList(){ + List list=baseCategoryService.getBaseCategoryList(); + return Result.ok(list); + } + + @Operation(summary = "根据一级分类Id获取分类属性以及属性值(标签名,标签值)列表") + @GetMapping("/category/findAttribute/{category1Id}") + public Result> findAttribute(@PathVariable Long category1Id){ + List list=baseCategoryService.findAttribute(category1Id); + return Result.ok(list); + } + + + + +} + diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/api/FileUploadApiController.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/FileUploadApiController.java new file mode 100644 index 0000000..3599943 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/FileUploadApiController.java @@ -0,0 +1,14 @@ +package com.atguigu.tingshu.album.api; + +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "上传管理接口") +@RestController +@RequestMapping("api/album") +public class FileUploadApiController { + + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/api/TrackInfoApiController.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/TrackInfoApiController.java new file mode 100644 index 0000000..7b067b6 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/api/TrackInfoApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.album.api; + +import com.atguigu.tingshu.album.service.TrackInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "声音管理") +@RestController +@RequestMapping("api/album") +@SuppressWarnings({"all"}) +public class TrackInfoApiController { + + @Autowired + private TrackInfoService trackInfoService; + +} + diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/config/MinioConstantProperties.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/config/MinioConstantProperties.java new file mode 100644 index 0000000..005c472 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/config/MinioConstantProperties.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.album.config; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix="minio") //读取节点 +@Data +public class MinioConstantProperties { + + private String endpointUrl; + private String accessKey; + private String secreKey; + private String bucketName; +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/config/VodConstantProperties.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/config/VodConstantProperties.java new file mode 100644 index 0000000..43ce17a --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/config/VodConstantProperties.java @@ -0,0 +1,21 @@ +package com.atguigu.tingshu.album.config; + + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix="vod") //读取节点 +@Data +public class VodConstantProperties { + + private Integer appId; + private String secretId; + private String secretKey; + //https://cloud.tencent.com/document/api/266/31756#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8 + private String region; + private String procedure; + private String tempPath; + private String playKey; +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.java new file mode 100644 index 0000000..66a59f0 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.AlbumAttributeValue; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlbumAttributeValueMapper extends BaseMapper { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.java new file mode 100644 index 0000000..f483cac --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.AlbumInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlbumInfoMapper extends BaseMapper { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumStatMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumStatMapper.java new file mode 100644 index 0000000..0b73de2 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/AlbumStatMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.AlbumStat; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface AlbumStatMapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.java new file mode 100644 index 0000000..18fabac --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseAttribute; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BaseAttributeMapper extends BaseMapper { + + + List findAttribute(@Param("category1Id") Long category1Id); +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.java new file mode 100644 index 0000000..80ca831 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseAttributeValue; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaseAttributeValueMapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.java new file mode 100644 index 0000000..23d2327 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseCategory1; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaseCategory1Mapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.java new file mode 100644 index 0000000..9c9bca4 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseCategory2; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaseCategory2Mapper extends BaseMapper { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.java new file mode 100644 index 0000000..c2b3d93 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseCategory3; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaseCategory3Mapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.java new file mode 100644 index 0000000..8f6ab0e --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.BaseCategoryView; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface BaseCategoryViewMapper extends BaseMapper { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackInfoMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackInfoMapper.java new file mode 100644 index 0000000..4736db6 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackInfoMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.TrackInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TrackInfoMapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackStatMapper.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackStatMapper.java new file mode 100644 index 0000000..e25c482 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/mapper/TrackStatMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.album.mapper; + +import com.atguigu.tingshu.model.album.TrackStat; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface TrackStatMapper extends BaseMapper { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/AlbumInfoService.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/AlbumInfoService.java new file mode 100644 index 0000000..af0d58f --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/AlbumInfoService.java @@ -0,0 +1,9 @@ +package com.atguigu.tingshu.album.service; + +import com.atguigu.tingshu.model.album.AlbumInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface AlbumInfoService extends IService { + + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/BaseCategoryService.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/BaseCategoryService.java new file mode 100644 index 0000000..274fbd7 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/BaseCategoryService.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu.album.service; + +import com.alibaba.fastjson.JSONObject; +import com.atguigu.tingshu.model.album.BaseAttribute; +import com.atguigu.tingshu.model.album.BaseCategory1; +import com.atguigu.tingshu.model.album.BaseCategoryView; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +public interface BaseCategoryService extends IService { + + + List getBaseCategoryList(); + + List findAttribute(Long category1Id); +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/TrackInfoService.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/TrackInfoService.java new file mode 100644 index 0000000..4bba8f2 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/TrackInfoService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.album.service; + +import com.atguigu.tingshu.model.album.TrackInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface TrackInfoService extends IService { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/VodService.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/VodService.java new file mode 100644 index 0000000..72fead0 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/VodService.java @@ -0,0 +1,5 @@ +package com.atguigu.tingshu.album.service; + +public interface VodService { + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.java new file mode 100644 index 0000000..6d4de53 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.album.service.impl; + +import com.atguigu.tingshu.album.mapper.AlbumInfoMapper; +import com.atguigu.tingshu.album.service.AlbumInfoService; +import com.atguigu.tingshu.model.album.AlbumInfo; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class AlbumInfoServiceImpl extends ServiceImpl implements AlbumInfoService { + + @Autowired + private AlbumInfoMapper albumInfoMapper; +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.java new file mode 100644 index 0000000..34a345f --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.java @@ -0,0 +1,106 @@ +package com.atguigu.tingshu.album.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.atguigu.tingshu.album.mapper.*; +import com.atguigu.tingshu.album.service.BaseCategoryService; +import com.atguigu.tingshu.model.album.BaseAttribute; +import com.atguigu.tingshu.model.album.BaseCategory1; +import com.atguigu.tingshu.model.album.BaseCategoryView; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service +@SuppressWarnings({"all"}) +public class BaseCategoryServiceImpl extends ServiceImpl implements BaseCategoryService { + + @Autowired + private BaseCategory1Mapper baseCategory1Mapper; + + @Autowired + private BaseCategory2Mapper baseCategory2Mapper; + + @Autowired + private BaseCategory3Mapper baseCategory3Mapper; + + @Autowired + private BaseCategoryViewMapper baseCategoryViewMapper; + @Autowired + private BaseAttributeMapper baseAttributeMapper; + + + + @Override + public List getBaseCategoryList() { + //1.创建响应结果集合对象-用于封装所有一级分类对象 + //创建一个新的List对象 + List returnList = new ArrayList<>(); + //2.查询所有分类数据-查询视图即可 共计401条记录 + List allCategoryList = baseCategoryViewMapper.selectList(null); + //3.处理一级分类数据 + //3.1 对所有分类集合列表进行分组按照1级分类ID进行分组 得到Map<分组ID,一级分类列表> + Map> category1Map = + allCategoryList.stream().collect(Collectors.groupingBy(BaseCategoryView::getCategory1Id)); + for (Map.Entry> entry1 : category1Map.entrySet()) { + //3.2 封装一级分类对象 + JSONObject jsonObject1 = new JSONObject(); + //3.2.1 封装1级分类ID + Long category1Id = entry1.getKey(); + jsonObject1.put("categoryId", category1Id); + //3.2.2 封装1级分类名称 + String category1Name = entry1.getValue().get(0).getCategory1Name(); + jsonObject1.put("categoryName", category1Name); + + //4. 处理二级分类数据 + List jsonObject2List = new ArrayList<>(); + //4.1 对"1级"分类集合按照二级分类ID进行分组 + Map> category2Map = entry1.getValue() + .stream().collect(Collectors.groupingBy(BaseCategoryView::getCategory2Id)); + //4.2 遍历"2级"分类Map + for (Map.Entry> entry2 : category2Map.entrySet()) { + //4.3 封装二级分类对象 + JSONObject jsonObject2 = new JSONObject(); + //4.3.1 封装2级分类ID + Long category2Id = entry2.getKey(); + jsonObject2.put("categoryId", category2Id); + //4.3.2 封装2级分类名称 + String category2Name = entry2.getValue().get(0).getCategory2Name(); + jsonObject2.put("categoryName", category2Name); + //4.4 将2级分类对象放入二级分类集合中 + jsonObject2List.add(jsonObject2); + //5. 处理三级分类数据 + List jsonObject3List = new ArrayList<>(); + //5.1 对"2级"分类列表进行遍历 + for (BaseCategoryView baseCategoryView : entry2.getValue()) { + //5.2 封装三级分类JSONOBject对象 + JSONObject jsonObject3 = new JSONObject(); + //5.2.1 封装3级分类ID + jsonObject3.put("categoryId", baseCategoryView.getCategory3Id()); + //5.2.2 封装3级分类名称 + jsonObject3.put("categoryName", baseCategoryView.getCategory3Name()); + //5.3 将3级分类对象放入集合中 + jsonObject3List.add(jsonObject3); + } + //5.4 将3级分类对象集合加入到二级分类对象"categoryChild"属性中 + jsonObject2.put("categoryChild", jsonObject3List); + } + //4.5 将二级分类集合封装在一级分类对象中"categoryChild"属性中 + jsonObject1.put("categoryChild", jsonObject2List); + returnList.add(jsonObject1); + } + return returnList; + + } + + @Override + public List findAttribute(Long category1Id) { + List list=baseAttributeMapper.findAttribute(category1Id); + return list; + + } +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.java new file mode 100644 index 0000000..57b418b --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.album.service.impl; + +import com.atguigu.tingshu.album.mapper.TrackInfoMapper; +import com.atguigu.tingshu.album.service.TrackInfoService; +import com.atguigu.tingshu.model.album.TrackInfo; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class TrackInfoServiceImpl extends ServiceImpl implements TrackInfoService { + + @Autowired + private TrackInfoMapper trackInfoMapper; + +} diff --git a/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/VodServiceImpl.java b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/VodServiceImpl.java new file mode 100644 index 0000000..b7fbb23 --- /dev/null +++ b/service/service-album/src/main/java/com/atguigu/tingshu/album/service/impl/VodServiceImpl.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.album.service.impl; + +import com.atguigu.tingshu.album.config.VodConstantProperties; +import com.atguigu.tingshu.album.service.VodService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + + +@Service +public class VodServiceImpl implements VodService { + + @Autowired + private VodConstantProperties vodConstantProperties; + +} diff --git a/service/service-album/src/main/resources/bootstrap.properties b/service/service-album/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..2665331 --- /dev/null +++ b/service/service-album/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-album +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-album/src/main/resources/logback-spring.xml b/service/service-album/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-album/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-album/src/main/resources/mapper/AlbumInfoMapper.xml b/service/service-album/src/main/resources/mapper/AlbumInfoMapper.xml new file mode 100644 index 0000000..5ad3286 --- /dev/null +++ b/service/service-album/src/main/resources/mapper/AlbumInfoMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/service/service-album/src/main/resources/mapper/BaseAttributeMapper.xml b/service/service-album/src/main/resources/mapper/BaseAttributeMapper.xml new file mode 100644 index 0000000..4a242ec --- /dev/null +++ b/service/service-album/src/main/resources/mapper/BaseAttributeMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + diff --git a/service/service-album/src/main/resources/mapper/TrackInfoMapper.xml b/service/service-album/src/main/resources/mapper/TrackInfoMapper.xml new file mode 100644 index 0000000..735afc4 --- /dev/null +++ b/service/service-album/src/main/resources/mapper/TrackInfoMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/service/service-album/target/classes/bootstrap.properties b/service/service-album/target/classes/bootstrap.properties new file mode 100644 index 0000000..2665331 --- /dev/null +++ b/service/service-album/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-album +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-album/target/classes/com/atguigu/tingshu/ServiceAlbumApplication.class b/service/service-album/target/classes/com/atguigu/tingshu/ServiceAlbumApplication.class new file mode 100644 index 0000000..b6124a9 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/ServiceAlbumApplication.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/api/AlbumInfoApiController.class b/service/service-album/target/classes/com/atguigu/tingshu/album/api/AlbumInfoApiController.class new file mode 100644 index 0000000..e0da897 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/api/AlbumInfoApiController.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/api/BaseCategoryApiController.class b/service/service-album/target/classes/com/atguigu/tingshu/album/api/BaseCategoryApiController.class new file mode 100644 index 0000000..255e5a4 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/api/BaseCategoryApiController.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/api/FileUploadApiController.class b/service/service-album/target/classes/com/atguigu/tingshu/album/api/FileUploadApiController.class new file mode 100644 index 0000000..716f19f Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/api/FileUploadApiController.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/api/TrackInfoApiController.class b/service/service-album/target/classes/com/atguigu/tingshu/album/api/TrackInfoApiController.class new file mode 100644 index 0000000..e2dae1d Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/api/TrackInfoApiController.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/config/MinioConstantProperties.class b/service/service-album/target/classes/com/atguigu/tingshu/album/config/MinioConstantProperties.class new file mode 100644 index 0000000..0f099c0 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/config/MinioConstantProperties.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/config/VodConstantProperties.class b/service/service-album/target/classes/com/atguigu/tingshu/album/config/VodConstantProperties.class new file mode 100644 index 0000000..38fecfa Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/config/VodConstantProperties.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.class new file mode 100644 index 0000000..3abec9f Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumAttributeValueMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.class new file mode 100644 index 0000000..8b11dbf Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumInfoMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumStatMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumStatMapper.class new file mode 100644 index 0000000..dc193e1 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/AlbumStatMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.class new file mode 100644 index 0000000..95f0a98 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.class new file mode 100644 index 0000000..ad03b96 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseAttributeValueMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.class new file mode 100644 index 0000000..7533ccb Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory1Mapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.class new file mode 100644 index 0000000..8fcaf2d Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory2Mapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.class new file mode 100644 index 0000000..2023653 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategory3Mapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.class new file mode 100644 index 0000000..f790eb2 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/BaseCategoryViewMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackInfoMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackInfoMapper.class new file mode 100644 index 0000000..9dc82ec Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackInfoMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackStatMapper.class b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackStatMapper.class new file mode 100644 index 0000000..741eef5 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/mapper/TrackStatMapper.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/AlbumInfoService.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/AlbumInfoService.class new file mode 100644 index 0000000..1ba3190 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/AlbumInfoService.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/BaseCategoryService.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/BaseCategoryService.class new file mode 100644 index 0000000..f79bb80 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/BaseCategoryService.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/TrackInfoService.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/TrackInfoService.class new file mode 100644 index 0000000..b771ee3 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/TrackInfoService.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/VodService.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/VodService.class new file mode 100644 index 0000000..bd861de Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/VodService.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.class new file mode 100644 index 0000000..3a8e8ce Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/AlbumInfoServiceImpl.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.class new file mode 100644 index 0000000..49cd8b3 Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/BaseCategoryServiceImpl.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.class new file mode 100644 index 0000000..fd86e9b Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/TrackInfoServiceImpl.class differ diff --git a/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/VodServiceImpl.class b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/VodServiceImpl.class new file mode 100644 index 0000000..a6b1ebd Binary files /dev/null and b/service/service-album/target/classes/com/atguigu/tingshu/album/service/impl/VodServiceImpl.class differ diff --git a/service/service-album/target/classes/logback-spring.xml b/service/service-album/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-album/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-album/target/classes/mapper/AlbumInfoMapper.xml b/service/service-album/target/classes/mapper/AlbumInfoMapper.xml new file mode 100644 index 0000000..5ad3286 --- /dev/null +++ b/service/service-album/target/classes/mapper/AlbumInfoMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/service/service-album/target/classes/mapper/BaseAttributeMapper.xml b/service/service-album/target/classes/mapper/BaseAttributeMapper.xml new file mode 100644 index 0000000..4a242ec --- /dev/null +++ b/service/service-album/target/classes/mapper/BaseAttributeMapper.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + diff --git a/service/service-album/target/classes/mapper/TrackInfoMapper.xml b/service/service-album/target/classes/mapper/TrackInfoMapper.xml new file mode 100644 index 0000000..735afc4 --- /dev/null +++ b/service/service-album/target/classes/mapper/TrackInfoMapper.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/service/service-dispatch/pom.xml b/service/service-dispatch/pom.xml new file mode 100644 index 0000000..520872b --- /dev/null +++ b/service/service-dispatch/pom.xml @@ -0,0 +1,51 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-dispatch + jar + 1.0 + + + true + + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + com.xuxueli + xxl-job-core + + + com.atguigu.tingshu + service-search-client + 1.0 + + + com.atguigu.tingshu + service-user-client + 1.0 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-dispatch/src/main/java/com/atguigu/tingshu/ServiceDispatchApplication.java b/service/service-dispatch/src/main/java/com/atguigu/tingshu/ServiceDispatchApplication.java new file mode 100644 index 0000000..db8fbb0 --- /dev/null +++ b/service/service-dispatch/src/main/java/com/atguigu/tingshu/ServiceDispatchApplication.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@EnableDiscoveryClient +@EnableFeignClients +@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) +public class ServiceDispatchApplication { + + + public static void main(String[] args) { + SpringApplication.run(ServiceDispatchApplication.class, args); + } + +} diff --git a/service/service-dispatch/src/main/java/com/atguigu/tingshu/dispatch/job/DispatchHandler.java b/service/service-dispatch/src/main/java/com/atguigu/tingshu/dispatch/job/DispatchHandler.java new file mode 100644 index 0000000..53ce1a6 --- /dev/null +++ b/service/service-dispatch/src/main/java/com/atguigu/tingshu/dispatch/job/DispatchHandler.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.dispatch.job; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class DispatchHandler { + +} \ No newline at end of file diff --git a/service/service-dispatch/src/main/resources/bootstrap.properties b/service/service-dispatch/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..16b67d8 --- /dev/null +++ b/service/service-dispatch/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-dispatch +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-dispatch/src/main/resources/logback-spring.xml b/service/service-dispatch/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-dispatch/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-dispatch/target/classes/bootstrap.properties b/service/service-dispatch/target/classes/bootstrap.properties new file mode 100644 index 0000000..16b67d8 --- /dev/null +++ b/service/service-dispatch/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-dispatch +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-dispatch/target/classes/com/atguigu/tingshu/ServiceDispatchApplication.class b/service/service-dispatch/target/classes/com/atguigu/tingshu/ServiceDispatchApplication.class new file mode 100644 index 0000000..e5efe7a Binary files /dev/null and b/service/service-dispatch/target/classes/com/atguigu/tingshu/ServiceDispatchApplication.class differ diff --git a/service/service-dispatch/target/classes/com/atguigu/tingshu/dispatch/job/DispatchHandler.class b/service/service-dispatch/target/classes/com/atguigu/tingshu/dispatch/job/DispatchHandler.class new file mode 100644 index 0000000..1750e82 Binary files /dev/null and b/service/service-dispatch/target/classes/com/atguigu/tingshu/dispatch/job/DispatchHandler.class differ diff --git a/service/service-dispatch/target/classes/logback-spring.xml b/service/service-dispatch/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-dispatch/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-order/pom.xml b/service/service-order/pom.xml new file mode 100644 index 0000000..d8ed73c --- /dev/null +++ b/service/service-order/pom.xml @@ -0,0 +1,58 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-order + jar + 1.0 + + + true + + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + com.atguigu.tingshu + service-account-client + 1.0 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + + ossrh + OSS Snapshot repository + https://oss.sonatype.org/content/repositories/snapshots/ + + false + + + true + + + + + diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/ServiceOrderApplication.java b/service/service-order/src/main/java/com/atguigu/tingshu/ServiceOrderApplication.java new file mode 100644 index 0000000..737e611 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/ServiceOrderApplication.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ServiceOrderApplication { + + public static void main(String[] args) { + SpringApplication.run(ServiceOrderApplication.class, args); + } +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java new file mode 100644 index 0000000..3354847 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/api/OrderInfoApiController.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu.order.api; + +import com.atguigu.tingshu.order.service.OrderInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "订单管理") +@RestController +@RequestMapping("api/order") +@SuppressWarnings({"all"}) +public class OrderInfoApiController { + + @Autowired + private OrderInfoService orderInfoService; + + +} + diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/helper/SignHelper.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/helper/SignHelper.java new file mode 100644 index 0000000..24a41a4 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/helper/SignHelper.java @@ -0,0 +1,80 @@ +package com.atguigu.tingshu.order.helper; + +import com.atguigu.tingshu.common.execption.GuiguException; +import com.atguigu.tingshu.common.result.ResultCodeEnum; +import com.atguigu.tingshu.common.util.MD5; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.Map; +import java.util.TreeMap; + +@Slf4j +public class SignHelper { + + private static String signKey = "atguigu123"; + /** + * 验签方法 + * @param parameterMap + */ + public static void checkSign(Map parameterMap){ + //校验签名时间 + Long remoteTimestamp = (Long)parameterMap.get("timestamp"); + if(StringUtils.isEmpty(remoteTimestamp)){ + throw new GuiguException(ResultCodeEnum.SIGN_ERROR); + } + long currentTimestamp = getTimestamp(); + if (Math.abs(currentTimestamp - remoteTimestamp) > 500000) { + log.error("签名已过期,服务器当前时间:{}", currentTimestamp); + throw new GuiguException(ResultCodeEnum.SIGN_OVERDUE); + } + + //校验签名 + String signRemote = (String)parameterMap.get("sign"); + + String signLocal = getSign(parameterMap); + if(StringUtils.isEmpty(signRemote)){ + throw new GuiguException(ResultCodeEnum.SIGN_ERROR); + } + + if(!signRemote.equals(signLocal)){ + throw new GuiguException(ResultCodeEnum.SIGN_ERROR); + } + } + + /** + * 请求数据获取签名 + * @param parameterMap + * @return + */ + public static String getSign(Map parameterMap) { + //去掉sign参数 + if(parameterMap.containsKey("sign")) { + parameterMap.remove("sign"); + } + + //有序 + TreeMap sorted = new TreeMap<>(parameterMap); + StringBuilder str = new StringBuilder(); + for (Map.Entry param : sorted.entrySet()) { + //获取键值对中的值 + str.append(param.getValue()).append("|"); + } + //最后连接signKey + str.append(signKey); + log.info("加密前:" + str.toString()); + String md5Str = MD5.encrypt(str.toString());//不可逆加密算法 + log.info("加密后:" + md5Str); + return md5Str; + } + + /** + * 获取时间戳 + * @return + */ + public static long getTimestamp() { + return new Date().getTime(); + } + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDerateMapper.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDerateMapper.java new file mode 100644 index 0000000..1499f16 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDerateMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.order.mapper; + +import com.atguigu.tingshu.model.order.OrderDerate; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OrderDerateMapper extends BaseMapper { + + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDetailMapper.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDetailMapper.java new file mode 100644 index 0000000..e60ff7d --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderDetailMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.order.mapper; + +import com.atguigu.tingshu.model.order.OrderDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OrderDetailMapper extends BaseMapper { + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderInfoMapper.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderInfoMapper.java new file mode 100644 index 0000000..64ed0c1 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/mapper/OrderInfoMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.order.mapper; + +import com.atguigu.tingshu.model.order.OrderInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface OrderInfoMapper extends BaseMapper { + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java new file mode 100644 index 0000000..322c51b --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/OrderInfoService.java @@ -0,0 +1,9 @@ +package com.atguigu.tingshu.order.service; + +import com.atguigu.tingshu.model.order.OrderInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface OrderInfoService extends IService { + + +} diff --git a/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java new file mode 100644 index 0000000..c3db232 --- /dev/null +++ b/service/service-order/src/main/java/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu.order.service.impl; + +import com.atguigu.tingshu.model.order.OrderInfo; +import com.atguigu.tingshu.order.mapper.OrderInfoMapper; +import com.atguigu.tingshu.order.service.OrderInfoService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class OrderInfoServiceImpl extends ServiceImpl implements OrderInfoService { + + @Autowired + private OrderInfoMapper orderInfoMapper; + + +} diff --git a/service/service-order/src/main/resources/bootstrap.properties b/service/service-order/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..8c4b0fb --- /dev/null +++ b/service/service-order/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-order +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-order/src/main/resources/logback-spring.xml b/service/service-order/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-order/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-order/src/main/resources/mapper/OrderInfoMapper.xml b/service/service-order/src/main/resources/mapper/OrderInfoMapper.xml new file mode 100644 index 0000000..7e2bea3 --- /dev/null +++ b/service/service-order/src/main/resources/mapper/OrderInfoMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/service/service-order/target/classes/bootstrap.properties b/service/service-order/target/classes/bootstrap.properties new file mode 100644 index 0000000..8c4b0fb --- /dev/null +++ b/service/service-order/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-order +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-order/target/classes/com/atguigu/tingshu/ServiceOrderApplication.class b/service/service-order/target/classes/com/atguigu/tingshu/ServiceOrderApplication.class new file mode 100644 index 0000000..e5bceaa Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/ServiceOrderApplication.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/api/OrderInfoApiController.class b/service/service-order/target/classes/com/atguigu/tingshu/order/api/OrderInfoApiController.class new file mode 100644 index 0000000..a0c131e Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/api/OrderInfoApiController.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/helper/SignHelper.class b/service/service-order/target/classes/com/atguigu/tingshu/order/helper/SignHelper.class new file mode 100644 index 0000000..796b4d7 Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/helper/SignHelper.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDerateMapper.class b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDerateMapper.class new file mode 100644 index 0000000..ade1ffd Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDerateMapper.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDetailMapper.class b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDetailMapper.class new file mode 100644 index 0000000..45f33f8 Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderDetailMapper.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderInfoMapper.class b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderInfoMapper.class new file mode 100644 index 0000000..36cc24b Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/mapper/OrderInfoMapper.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderInfoService.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderInfoService.class new file mode 100644 index 0000000..193e70d Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/service/OrderInfoService.class differ diff --git a/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.class b/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.class new file mode 100644 index 0000000..57eeac0 Binary files /dev/null and b/service/service-order/target/classes/com/atguigu/tingshu/order/service/impl/OrderInfoServiceImpl.class differ diff --git a/service/service-order/target/classes/logback-spring.xml b/service/service-order/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-order/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-order/target/classes/mapper/OrderInfoMapper.xml b/service/service-order/target/classes/mapper/OrderInfoMapper.xml new file mode 100644 index 0000000..7e2bea3 --- /dev/null +++ b/service/service-order/target/classes/mapper/OrderInfoMapper.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/service/service-payment/pom.xml b/service/service-payment/pom.xml new file mode 100644 index 0000000..04afa5a --- /dev/null +++ b/service/service-payment/pom.xml @@ -0,0 +1,47 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-payment + jar + 1.0 + + + true + + + + + com.github.wechatpay-apiv3 + wechatpay-java + 0.2.7 + + + org.apache.httpcomponents + httpclient + 4.5.1 + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/ServicePaymentApplication.java b/service/service-payment/src/main/java/com/atguigu/tingshu/ServicePaymentApplication.java new file mode 100644 index 0000000..dd52f11 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/ServicePaymentApplication.java @@ -0,0 +1,17 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@EnableFeignClients +@EnableDiscoveryClient +@SpringBootApplication +public class ServicePaymentApplication { + + public static void main(String[] args) { + SpringApplication.run(ServicePaymentApplication.class, args); + } +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/api/WxPayApiController.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/api/WxPayApiController.java new file mode 100644 index 0000000..c294b50 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/api/WxPayApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.payment.api; + +import com.atguigu.tingshu.payment.service.WxPayService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "微信支付接口") +@RestController +@RequestMapping("api/payment") +@Slf4j +public class WxPayApiController { + + @Autowired + private WxPayService wxPayService; + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/config/WxPayV3Config.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/config/WxPayV3Config.java new file mode 100644 index 0000000..f6b0e00 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/config/WxPayV3Config.java @@ -0,0 +1,36 @@ +package com.atguigu.tingshu.payment.config; + +import com.wechat.pay.java.core.RSAAutoCertificateConfig; +import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties(prefix="wechat.v3pay") //读取节点 +@Data +public class WxPayV3Config { + + private String appid; + /** 商户号 */ + public String merchantId; + /** 商户API私钥路径 */ + public String privateKeyPath; + /** 商户证书序列号 */ + public String merchantSerialNumber; + /** 商户APIV3密钥 */ + public String apiV3key; + /** 回调地址 */ + private String notifyUrl; + + @Bean + public RSAAutoCertificateConfig rsaAutoCertificateConfig(){ + return new RSAAutoCertificateConfig.Builder() + .merchantId(this.merchantId) + .privateKeyFromPath(privateKeyPath) + .merchantSerialNumber(merchantSerialNumber) + .apiV3Key(apiV3key) + .build(); + } +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.java new file mode 100644 index 0000000..4bea068 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.payment.mapper; + +import com.atguigu.tingshu.model.payment.PaymentInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PaymentInfoMapper extends BaseMapper { + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/PaymentInfoService.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/PaymentInfoService.java new file mode 100644 index 0000000..1fe37a2 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/PaymentInfoService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.payment.service; + +import com.atguigu.tingshu.model.payment.PaymentInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface PaymentInfoService extends IService { + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/WxPayService.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/WxPayService.java new file mode 100644 index 0000000..51eccfe --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/WxPayService.java @@ -0,0 +1,5 @@ +package com.atguigu.tingshu.payment.service; + +public interface WxPayService { + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java new file mode 100644 index 0000000..50ffb3a --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.java @@ -0,0 +1,13 @@ +package com.atguigu.tingshu.payment.service.impl; + +import com.atguigu.tingshu.model.payment.PaymentInfo; +import com.atguigu.tingshu.payment.mapper.PaymentInfoMapper; +import com.atguigu.tingshu.payment.service.PaymentInfoService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +@Service +@SuppressWarnings({"all"}) +public class PaymentInfoServiceImpl extends ServiceImpl implements PaymentInfoService { + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.java new file mode 100644 index 0000000..9aff2df --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu.payment.service.impl; + +import com.atguigu.tingshu.payment.service.PaymentInfoService; +import com.atguigu.tingshu.payment.service.WxPayService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@Slf4j +public class WxPayServiceImpl implements WxPayService { + + @Autowired + private PaymentInfoService paymentInfoService; + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/HttpClient.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/HttpClient.java new file mode 100644 index 0000000..5fc0b32 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/HttpClient.java @@ -0,0 +1,169 @@ +package com.atguigu.tingshu.payment.util; + +import org.apache.http.Consts; +import org.apache.http.HttpEntity; +import org.apache.http.NameValuePair; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.*; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLContextBuilder; +import org.apache.http.conn.ssl.TrustStrategy; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import javax.net.ssl.SSLContext; +import java.io.IOException; +import java.security.cert.CertificateException; +import java.security.cert.X509Certificate; +import java.text.ParseException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * http请求客户端 + * + * @author atguigu + * + */ +public class HttpClient { + private String url; + private Map param; + private int statusCode; + private String content; + private String xmlParam; + private boolean isHttps; + + public boolean isHttps() { + return isHttps; + } + + public void setHttps(boolean isHttps) { + this.isHttps = isHttps; + } + + public String getXmlParam() { + return xmlParam; + } + + public void setXmlParam(String xmlParam) { + this.xmlParam = xmlParam; + } + + public HttpClient(String url, Map param) { + this.url = url; + this.param = param; + } + + public HttpClient(String url) { + this.url = url; + } + + public void setParameter(Map map) { + param = map; + } + + public void addParameter(String key, String value) { + if (param == null) + param = new HashMap(); + param.put(key, value); + } + + public void post() throws ClientProtocolException, IOException { + HttpPost http = new HttpPost(url); + setEntity(http); + execute(http); + } + + public void put() throws ClientProtocolException, IOException { + HttpPut http = new HttpPut(url); + setEntity(http); + execute(http); + } + + public void get() throws ClientProtocolException, IOException { + if (param != null) { + StringBuilder url = new StringBuilder(this.url); + boolean isFirst = true; + for (String key : param.keySet()) { + if (isFirst) + url.append("?"); + else + url.append("&"); + url.append(key).append("=").append(param.get(key)); + } + this.url = url.toString(); + } + HttpGet http = new HttpGet(url); + execute(http); + } + + /** + * set http post,put param + */ + private void setEntity(HttpEntityEnclosingRequestBase http) { + if (param != null) { + List nvps = new LinkedList(); + for (String key : param.keySet()) + nvps.add(new BasicNameValuePair(key, param.get(key))); // 参数 + http.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8)); // 设置参数 + } + if (xmlParam != null) { + http.setEntity(new StringEntity(xmlParam, Consts.UTF_8)); + } + } + + private void execute(HttpUriRequest http) throws ClientProtocolException, + IOException { + CloseableHttpClient httpClient = null; + try { + if (isHttps) { + SSLContext sslContext = new SSLContextBuilder() + .loadTrustMaterial(null, new TrustStrategy() { + // 信任所有 + public boolean isTrusted(X509Certificate[] chain, + String authType) + throws CertificateException { + return true; + } + }).build(); + SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( + sslContext); + httpClient = HttpClients.custom().setSSLSocketFactory(sslsf) + .build(); + } else { + httpClient = HttpClients.createDefault(); + } + CloseableHttpResponse response = httpClient.execute(http); + try { + if (response != null) { + if (response.getStatusLine() != null) + statusCode = response.getStatusLine().getStatusCode(); + HttpEntity entity = response.getEntity(); + // 响应内容 + content = EntityUtils.toString(entity, Consts.UTF_8); + } + } finally { + response.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + httpClient.close(); + } + } + + public int getStatusCode() { + return statusCode; + } + + public String getContent() throws ParseException, IOException { + return content; + } + +} diff --git a/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/PayUtil.java b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/PayUtil.java new file mode 100644 index 0000000..9ccebd5 --- /dev/null +++ b/service/service-payment/src/main/java/com/atguigu/tingshu/payment/util/PayUtil.java @@ -0,0 +1,34 @@ +package com.atguigu.tingshu.payment.util; + +import jakarta.servlet.http.HttpServletRequest; + +import java.io.BufferedReader; +import java.io.IOException; + +public class PayUtil { + + public static String readData(HttpServletRequest request) { + BufferedReader br = null; + try { + StringBuilder result = new StringBuilder(); + br = request.getReader(); + for (String line; (line = br.readLine()) != null; ) { + if (result.length() > 0) { + result.append("\n"); + } + result.append(line); + } + return result.toString(); + } catch (IOException e) { + throw new RuntimeException(e); + } finally { + if (br != null) { + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } +} diff --git a/service/service-payment/src/main/resources/bootstrap.properties b/service/service-payment/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..c796c67 --- /dev/null +++ b/service/service-payment/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-payment +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-payment/src/main/resources/logback-spring.xml b/service/service-payment/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-payment/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-payment/target/classes/bootstrap.properties b/service/service-payment/target/classes/bootstrap.properties new file mode 100644 index 0000000..c796c67 --- /dev/null +++ b/service/service-payment/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-payment +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/ServicePaymentApplication.class b/service/service-payment/target/classes/com/atguigu/tingshu/ServicePaymentApplication.class new file mode 100644 index 0000000..46d3360 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/ServicePaymentApplication.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/api/WxPayApiController.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/api/WxPayApiController.class new file mode 100644 index 0000000..d7faf04 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/api/WxPayApiController.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/config/WxPayV3Config.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/config/WxPayV3Config.class new file mode 100644 index 0000000..25148a2 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/config/WxPayV3Config.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.class new file mode 100644 index 0000000..0b0bfbc Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/mapper/PaymentInfoMapper.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/PaymentInfoService.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/PaymentInfoService.class new file mode 100644 index 0000000..46d7ef8 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/PaymentInfoService.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/WxPayService.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/WxPayService.class new file mode 100644 index 0000000..0041a63 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/WxPayService.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.class new file mode 100644 index 0000000..e1c4e79 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/PaymentInfoServiceImpl.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.class new file mode 100644 index 0000000..a64ba19 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/service/impl/WxPayServiceImpl.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient$1.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient$1.class new file mode 100644 index 0000000..d9d4ddf Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient$1.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient.class new file mode 100644 index 0000000..227c378 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/HttpClient.class differ diff --git a/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/PayUtil.class b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/PayUtil.class new file mode 100644 index 0000000..0d2bf06 Binary files /dev/null and b/service/service-payment/target/classes/com/atguigu/tingshu/payment/util/PayUtil.class differ diff --git a/service/service-payment/target/classes/logback-spring.xml b/service/service-payment/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-payment/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-search/pom.xml b/service/service-search/pom.xml new file mode 100644 index 0000000..ba14291 --- /dev/null +++ b/service/service-search/pom.xml @@ -0,0 +1,50 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-search + jar + 1.0 + + + true + + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + org.springframework.boot + spring-boot-starter-data-elasticsearch + + + + org.apache.kafka + kafka-clients + + + org.apache.kafka + kafka-streams + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/ServiceSearchApplication.java b/service/service-search/src/main/java/com/atguigu/tingshu/ServiceSearchApplication.java new file mode 100644 index 0000000..8f93f25 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/ServiceSearchApplication.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; + +@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置 +@EnableDiscoveryClient +@EnableFeignClients +@EnableAsync +public class ServiceSearchApplication { + + public static void main(String[] args) { + SpringApplication.run(ServiceSearchApplication.class, args); + } + +} diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/api/SearchApiController.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/api/SearchApiController.java new file mode 100644 index 0000000..2a6e2d6 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/api/SearchApiController.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu.search.api; + +import com.atguigu.tingshu.search.service.SearchService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "搜索专辑管理") +@RestController +@RequestMapping("api/search") +@SuppressWarnings({"all"}) +public class SearchApiController { + + @Autowired + private SearchService searchService; + + +} + diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/api/itemApiController.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/api/itemApiController.java new file mode 100644 index 0000000..c90aae9 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/api/itemApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.search.api; + +import com.atguigu.tingshu.search.service.ItemService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "专辑详情管理") +@RestController +@RequestMapping("api/search") +@SuppressWarnings({"all"}) +public class itemApiController { + + @Autowired + private ItemService itemService; + +} + diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/service/ItemService.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/ItemService.java new file mode 100644 index 0000000..2b15983 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/ItemService.java @@ -0,0 +1,7 @@ +package com.atguigu.tingshu.search.service; + +public interface ItemService { + + + +} diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/service/SearchService.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/SearchService.java new file mode 100644 index 0000000..6eebf05 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/SearchService.java @@ -0,0 +1,7 @@ +package com.atguigu.tingshu.search.service; + +public interface SearchService { + + + +} diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.java new file mode 100644 index 0000000..a12f933 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.java @@ -0,0 +1,13 @@ +package com.atguigu.tingshu.search.service.impl; + +import com.atguigu.tingshu.search.service.ItemService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class ItemServiceImpl implements ItemService { + + +} diff --git a/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.java b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.java new file mode 100644 index 0000000..9bf6598 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.java @@ -0,0 +1,14 @@ +package com.atguigu.tingshu.search.service.impl; + +import com.atguigu.tingshu.search.service.SearchService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class SearchServiceImpl implements SearchService { + + +} diff --git a/service/service-search/src/main/resources/bootstrap.properties b/service/service-search/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..0296666 --- /dev/null +++ b/service/service-search/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-search +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-search/src/main/resources/logback-spring.xml b/service/service-search/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-search/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-search/target/classes/bootstrap.properties b/service/service-search/target/classes/bootstrap.properties new file mode 100644 index 0000000..0296666 --- /dev/null +++ b/service/service-search/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-search +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-search/target/classes/com/atguigu/tingshu/ServiceSearchApplication.class b/service/service-search/target/classes/com/atguigu/tingshu/ServiceSearchApplication.class new file mode 100644 index 0000000..50bb4ea Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/ServiceSearchApplication.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/api/SearchApiController.class b/service/service-search/target/classes/com/atguigu/tingshu/search/api/SearchApiController.class new file mode 100644 index 0000000..105a7c4 Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/api/SearchApiController.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/api/itemApiController.class b/service/service-search/target/classes/com/atguigu/tingshu/search/api/itemApiController.class new file mode 100644 index 0000000..a35259a Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/api/itemApiController.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/service/ItemService.class b/service/service-search/target/classes/com/atguigu/tingshu/search/service/ItemService.class new file mode 100644 index 0000000..d4e0dcf Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/service/ItemService.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/service/SearchService.class b/service/service-search/target/classes/com/atguigu/tingshu/search/service/SearchService.class new file mode 100644 index 0000000..2880a3e Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/service/SearchService.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.class b/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.class new file mode 100644 index 0000000..c5341b2 Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/ItemServiceImpl.class differ diff --git a/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.class b/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.class new file mode 100644 index 0000000..81ebc58 Binary files /dev/null and b/service/service-search/target/classes/com/atguigu/tingshu/search/service/impl/SearchServiceImpl.class differ diff --git a/service/service-search/target/classes/logback-spring.xml b/service/service-search/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-search/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-user/pom.xml b/service/service-user/pom.xml new file mode 100644 index 0000000..e2d8a92 --- /dev/null +++ b/service/service-user/pom.xml @@ -0,0 +1,46 @@ + + + + service + com.atguigu.tingshu + 1.0 + + 4.0.0 + + service-user + jar + 1.0 + + + true + + + + + com.atguigu.tingshu + rabbit-util + 1.0 + + + com.github.binarywang + weixin-java-miniapp + 4.1.0 + + + org.springframework.boot + spring-boot-starter-data-mongodb + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/ServiceUserApplication.java b/service/service-user/src/main/java/com/atguigu/tingshu/ServiceUserApplication.java new file mode 100644 index 0000000..31ffbd6 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/ServiceUserApplication.java @@ -0,0 +1,16 @@ +package com.atguigu.tingshu; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; + +@SpringBootApplication +@EnableDiscoveryClient +@EnableFeignClients +public class ServiceUserApplication { + + public static void main(String[] args) { + SpringApplication.run(ServiceUserApplication.class, args); + } +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserInfoApiController.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserInfoApiController.java new file mode 100644 index 0000000..0e76096 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserInfoApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.user.api; + +import com.atguigu.tingshu.user.service.UserInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "用户管理接口") +@RestController +@RequestMapping("api/user") +@SuppressWarnings({"all"}) +public class UserInfoApiController { + + @Autowired + private UserInfoService userInfoService; + +} + diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserListenProcessApiController.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserListenProcessApiController.java new file mode 100644 index 0000000..090660a --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/UserListenProcessApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.user.api; + +import com.atguigu.tingshu.user.service.UserListenProcessService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "用户声音播放进度管理接口") +@RestController +@RequestMapping("api/user") +@SuppressWarnings({"all"}) +public class UserListenProcessApiController { + + @Autowired + private UserListenProcessService userListenProcessService; + +} + diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/api/VipServiceConfigApiController.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/VipServiceConfigApiController.java new file mode 100644 index 0000000..8b0cdbf --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/VipServiceConfigApiController.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.user.api; + +import com.atguigu.tingshu.user.service.VipServiceConfigService; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "VIP服务配置管理接口") +@RestController +@RequestMapping("api/user") +@SuppressWarnings({"all"}) +public class VipServiceConfigApiController { + + @Autowired + private VipServiceConfigService vipServiceConfigService; + +} + diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/api/WxLoginApiController.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/WxLoginApiController.java new file mode 100644 index 0000000..5b67c1e --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/api/WxLoginApiController.java @@ -0,0 +1,20 @@ +package com.atguigu.tingshu.user.api; + +import com.atguigu.tingshu.user.service.UserInfoService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Tag(name = "微信授权登录接口") +@RestController +@RequestMapping("/api/user/wxLogin") +@Slf4j +public class WxLoginApiController { + + @Autowired + private UserInfoService userInfoService; + + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserCertificationMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserCertificationMapper.java new file mode 100644 index 0000000..60f4885 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserCertificationMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserCertification; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserCertificationMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserInfoMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserInfoMapper.java new file mode 100644 index 0000000..4bf6d9d --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserInfoMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserInfoMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.java new file mode 100644 index 0000000..d373d48 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserPaidAlbum; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserPaidAlbumMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.java new file mode 100644 index 0000000..1995087 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.java @@ -0,0 +1,11 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserPaidTrack; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserPaidTrackMapper extends BaseMapper { + + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserStatMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserStatMapper.java new file mode 100644 index 0000000..ed556c4 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserStatMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserStat; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserStatMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.java new file mode 100644 index 0000000..7da4827 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.UserVipService; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface UserVipServiceMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.java new file mode 100644 index 0000000..4fe5171 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.java @@ -0,0 +1,10 @@ +package com.atguigu.tingshu.user.mapper; + +import com.atguigu.tingshu.model.user.VipServiceConfig; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface VipServiceConfigMapper extends BaseMapper { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserInfoService.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserInfoService.java new file mode 100644 index 0000000..a8e1031 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserInfoService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.user.service; + +import com.atguigu.tingshu.model.user.UserInfo; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface UserInfoService extends IService { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserListenProcessService.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserListenProcessService.java new file mode 100644 index 0000000..723d5ec --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserListenProcessService.java @@ -0,0 +1,5 @@ +package com.atguigu.tingshu.user.service; + +public interface UserListenProcessService { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserPaidTrackService.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserPaidTrackService.java new file mode 100644 index 0000000..034fc6b --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/UserPaidTrackService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.user.service; + +import com.atguigu.tingshu.model.user.UserPaidTrack; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface UserPaidTrackService extends IService { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/VipServiceConfigService.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/VipServiceConfigService.java new file mode 100644 index 0000000..8d9ce0c --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/VipServiceConfigService.java @@ -0,0 +1,8 @@ +package com.atguigu.tingshu.user.service; + +import com.atguigu.tingshu.model.user.VipServiceConfig; +import com.baomidou.mybatisplus.extension.service.IService; + +public interface VipServiceConfigService extends IService { + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.java new file mode 100644 index 0000000..7e5f895 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.java @@ -0,0 +1,19 @@ +package com.atguigu.tingshu.user.service.impl; + +import com.atguigu.tingshu.model.user.UserInfo; +import com.atguigu.tingshu.user.mapper.UserInfoMapper; +import com.atguigu.tingshu.user.service.UserInfoService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@SuppressWarnings({"all"}) +public class UserInfoServiceImpl extends ServiceImpl implements UserInfoService { + + @Autowired + private UserInfoMapper userInfoMapper; + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.java new file mode 100644 index 0000000..e0c32e6 --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.java @@ -0,0 +1,15 @@ +package com.atguigu.tingshu.user.service.impl; + +import com.atguigu.tingshu.user.service.UserListenProcessService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.stereotype.Service; + +@Service +@SuppressWarnings({"all"}) +public class UserListenProcessServiceImpl implements UserListenProcessService { + + @Autowired + private MongoTemplate mongoTemplate; + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.java new file mode 100644 index 0000000..72a0ffd --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.user.service.impl; + +import com.atguigu.tingshu.model.user.UserPaidTrack; +import com.atguigu.tingshu.user.mapper.UserPaidAlbumMapper; +import com.atguigu.tingshu.user.mapper.UserPaidTrackMapper; +import com.atguigu.tingshu.user.service.UserPaidTrackService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@SuppressWarnings({"all"}) +public class UserPaidTrackServiceImpl extends ServiceImpl implements UserPaidTrackService { + + @Autowired + private UserPaidAlbumMapper userPaidAlbumMapper; + +} diff --git a/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.java b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.java new file mode 100644 index 0000000..2f4aeeb --- /dev/null +++ b/service/service-user/src/main/java/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.java @@ -0,0 +1,18 @@ +package com.atguigu.tingshu.user.service.impl; + +import com.atguigu.tingshu.model.user.VipServiceConfig; +import com.atguigu.tingshu.user.mapper.VipServiceConfigMapper; +import com.atguigu.tingshu.user.service.VipServiceConfigService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +@SuppressWarnings({"all"}) +public class VipServiceConfigServiceImpl extends ServiceImpl implements VipServiceConfigService { + + @Autowired + private VipServiceConfigMapper vipServiceConfigMapper; + + +} diff --git a/service/service-user/src/main/resources/bootstrap.properties b/service/service-user/src/main/resources/bootstrap.properties new file mode 100644 index 0000000..17c31f7 --- /dev/null +++ b/service/service-user/src/main/resources/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-user +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-user/src/main/resources/logback-spring.xml b/service/service-user/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-user/src/main/resources/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-user/src/main/resources/mapper/UserInfoMapper.xml b/service/service-user/src/main/resources/mapper/UserInfoMapper.xml new file mode 100644 index 0000000..b702968 --- /dev/null +++ b/service/service-user/src/main/resources/mapper/UserInfoMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + id,phone,password,wx_open_id,nickname,avatar_url,is_vip,vip_expire_time,gender,birthday,intro,certification_type,certification_status,status,create_time,update_time,is_deleted + + + + + + and phone like CONCAT('%',#{vo.phone},'%') + + + and nickname like CONCAT('%',#{nickname},'%') + + + and create_time >= #{vo.createTimeBegin} + + + and create_time <= #{vo.createTimeEnd} + + and is_deleted = 0 + + + + + + + diff --git a/service/service-user/target/classes/bootstrap.properties b/service/service-user/target/classes/bootstrap.properties new file mode 100644 index 0000000..17c31f7 --- /dev/null +++ b/service/service-user/target/classes/bootstrap.properties @@ -0,0 +1,8 @@ +spring.application.name=service-user +spring.profiles.active=dev +spring.main.allow-bean-definition-overriding=true +spring.cloud.nacos.discovery.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.server-addr=192.168.200.6:8848 +spring.cloud.nacos.config.prefix=${spring.application.name} +spring.cloud.nacos.config.file-extension=yaml +spring.cloud.nacos.config.shared-configs[0].data-id=common.yaml diff --git a/service/service-user/target/classes/com/atguigu/tingshu/ServiceUserApplication.class b/service/service-user/target/classes/com/atguigu/tingshu/ServiceUserApplication.class new file mode 100644 index 0000000..5713afe Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/ServiceUserApplication.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserInfoApiController.class b/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserInfoApiController.class new file mode 100644 index 0000000..53bc2c6 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserInfoApiController.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserListenProcessApiController.class b/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserListenProcessApiController.class new file mode 100644 index 0000000..74d4107 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/api/UserListenProcessApiController.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/api/VipServiceConfigApiController.class b/service/service-user/target/classes/com/atguigu/tingshu/user/api/VipServiceConfigApiController.class new file mode 100644 index 0000000..8a8748f Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/api/VipServiceConfigApiController.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/api/WxLoginApiController.class b/service/service-user/target/classes/com/atguigu/tingshu/user/api/WxLoginApiController.class new file mode 100644 index 0000000..a0cc8ef Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/api/WxLoginApiController.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserCertificationMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserCertificationMapper.class new file mode 100644 index 0000000..4d7c5eb Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserCertificationMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserInfoMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserInfoMapper.class new file mode 100644 index 0000000..b65b777 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserInfoMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.class new file mode 100644 index 0000000..c66e86e Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidAlbumMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.class new file mode 100644 index 0000000..86f5119 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserPaidTrackMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserStatMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserStatMapper.class new file mode 100644 index 0000000..a10f56a Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserStatMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.class new file mode 100644 index 0000000..af3a230 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/UserVipServiceMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.class b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.class new file mode 100644 index 0000000..4bac8c9 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/mapper/VipServiceConfigMapper.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserInfoService.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserInfoService.class new file mode 100644 index 0000000..f6cb7d6 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserInfoService.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserListenProcessService.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserListenProcessService.class new file mode 100644 index 0000000..a03898a Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserListenProcessService.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserPaidTrackService.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserPaidTrackService.class new file mode 100644 index 0000000..6dc1277 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/UserPaidTrackService.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/VipServiceConfigService.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/VipServiceConfigService.class new file mode 100644 index 0000000..3106618 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/VipServiceConfigService.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.class new file mode 100644 index 0000000..e06a453 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserInfoServiceImpl.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.class new file mode 100644 index 0000000..5b12d39 Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserListenProcessServiceImpl.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.class new file mode 100644 index 0000000..edd4efa Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/UserPaidTrackServiceImpl.class differ diff --git a/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.class b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.class new file mode 100644 index 0000000..bc3062e Binary files /dev/null and b/service/service-user/target/classes/com/atguigu/tingshu/user/service/impl/VipServiceConfigServiceImpl.class differ diff --git a/service/service-user/target/classes/logback-spring.xml b/service/service-user/target/classes/logback-spring.xml new file mode 100644 index 0000000..d970337 --- /dev/null +++ b/service/service-user/target/classes/logback-spring.xml @@ -0,0 +1,65 @@ + + + + logback + + + + + + + + + + + + + + + + + + + + + + + INFO + + + ${CONSOLE_LOG_PATTERN} + ${ENCODING} + + + + + + ${log.path}//log.log + true + + %date{yyyy-MM-dd HH:mm:ss} %msg%n + ${ENCODING} + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/service/service-user/target/classes/mapper/UserInfoMapper.xml b/service/service-user/target/classes/mapper/UserInfoMapper.xml new file mode 100644 index 0000000..b702968 --- /dev/null +++ b/service/service-user/target/classes/mapper/UserInfoMapper.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + id,phone,password,wx_open_id,nickname,avatar_url,is_vip,vip_expire_time,gender,birthday,intro,certification_type,certification_status,status,create_time,update_time,is_deleted + + + + + + and phone like CONCAT('%',#{vo.phone},'%') + + + and nickname like CONCAT('%',#{nickname},'%') + + + and create_time >= #{vo.createTimeBegin} + + + and create_time <= #{vo.createTimeEnd} + + and is_deleted = 0 + + + + + + +