diff --git a/mcwl-admin/src/main/java/com/mcwl/McWlApplication.java b/mcwl-admin/src/main/java/com/mcwl/McWlApplication.java index 5ac0012..f018ebf 100644 --- a/mcwl-admin/src/main/java/com/mcwl/McWlApplication.java +++ b/mcwl-admin/src/main/java/com/mcwl/McWlApplication.java @@ -2,6 +2,8 @@ package com.mcwl; import com.fasterxml.jackson.databind.SerializationFeature; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; @@ -37,4 +39,10 @@ public class McWlApplication public Jackson2ObjectMapperBuilderCustomizer customizer() { return builder -> builder.featuresToEnable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING); } + + // mq 消息转换器 + @Bean + public MessageConverter jacksonMessageConverter() { + return new Jackson2JsonMessageConverter(); + } } diff --git a/mcwl-admin/src/main/resources/application-druid.yml b/mcwl-admin/src/main/resources/application-druid.yml index a1c90fd..7c442bc 100644 --- a/mcwl-admin/src/main/resources/application-druid.yml +++ b/mcwl-admin/src/main/resources/application-druid.yml @@ -10,7 +10,7 @@ spring: listener: simple: prefetch: 1 # 每次之能获取一条 - acknowledge-mode: manual # 设置消费端手动ack确认 + acknowledge-mode: auto # 设置消费端手动ack确认 retry: enabled: true # 是否支持重试 # 生产者配置 diff --git a/mcwl-admin/src/main/resources/application.yml b/mcwl-admin/src/main/resources/application.yml index 8e36ea5..f2cf5f7 100644 --- a/mcwl-admin/src/main/resources/application.yml +++ b/mcwl-admin/src/main/resources/application.yml @@ -129,10 +129,8 @@ mybatis-plus: # AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID idType: auto logic-delete-field: del_flag - # 逻辑已删除值 - logicDeleteValue: '2' - # 逻辑未删除值 - logicNotDeleteValue: '0' + logic-delete-value: '2' + logic-not-delete-value: '0' # 数据库字段下划线命名规则 table-underline: true # 字段验证策略之 insert,在 insert 的时候的字段验证策略 diff --git a/mcwl-common/src/main/java/com/mcwl/common/core/domain/BaseEntity.java b/mcwl-common/src/main/java/com/mcwl/common/core/domain/BaseEntity.java index 16e76aa..9a637aa 100644 --- a/mcwl-common/src/main/java/com/mcwl/common/core/domain/BaseEntity.java +++ b/mcwl-common/src/main/java/com/mcwl/common/core/domain/BaseEntity.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.Map; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @@ -38,6 +39,10 @@ public class BaseEntity implements Serializable @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + // 删除标志(0代表存在 2代表删除) + @TableLogic + private String delFlag; + /** 备注 */ private String remark; diff --git a/mcwl-common/src/main/java/com/mcwl/common/domain/response/ResponseEnum.java b/mcwl-common/src/main/java/com/mcwl/common/domain/response/ResponseEnum.java new file mode 100644 index 0000000..e36caef --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/domain/response/ResponseEnum.java @@ -0,0 +1,220 @@ +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.domain.response; +// +// +//import com.mcwl.common.i18n.I18nMessage; +// +///** +// * @author FrozenWatermelon +// * @date 2020/7/9 +// */ +//public enum ResponseEnum { +// +// /** +// * ok +// */ +// OK("00000", "ok"), +// +// /** +// * 用于直接显示提示用户的错误,内容由输入内容决定 +// */ +// SHOW_FAIL("A00001", ""), +// +// /** +// * 用于直接显示提示系统的成功,内容由输入内容决定 +// */ +// SHOW_SUCCESS("A00002", ""), +// +// /** +// * 未授权 +// */ +// UNAUTHORIZED("A00004", "Unauthorized"), +// +// /** +// * 服务器出了点小差 +// */ +// EXCEPTION("A00005", "服务器出了点小差"), +// +// /** +// * TempUid异常 +// * 一般不会出现这个异常,出现这个异常会有两种已知可能 +// * 1. 一种是旧的tempUid +// * 2. 一种是同域名的localstorage 有个也叫tempUid的存储覆盖了(有的人测试环境和正式环境放在同一个域名不同子目录下) +// * 如果前端看到返回了这个异常,为了让用户能够顺利登录,需要重新获取一遍code,重新获取tempUid +// */ +// TEMP_UID_ERROR("A00012", "TempUid Error"), +// +// /** +// * 接口不存在 +// */ +// NOT_FOUND("A00013", "接口不存在"), +// +// /** +// * 方法参数没有校验,内容由输入内容决定 +// */ +// METHOD_ARGUMENT_NOT_VALID("A00014", "方法参数没有校验"), +// +// /** +// * 支付密码错误 +// */ +// PAY_PASSWORD_ERROR("A00015", I18nMessage.getMessage("yami.user.pay.password.error")), +// +// +// SCANCODE_PAY_ERROR("A00016", "扫描支付发生错误"), +// +// +// NEW_USER_NO_INVITOR_ERROR("A00017", "新注册用户必须填写邀请码"), +// +// NEW_USER_INVITOR_ERROR("A00018", "邀请码错误"), +// +// /** +// * 01开头代表商品 +// * 商品已下架,返回特殊的状态码,用于渲染商品下架的页面 +// */ +//// SPU_NOT_EXIST("A01000", "商品不存在"), +// +// /** +// * 02开头代表购物车 +// */ +//// SHOP_CART_NOT_EXIST("A02000", "商品已下架"), +// +// /** +// * 03开头代表订单 +// */ +// API_ORDER_NOT_EXIST("A03000", "订单不存在"), +// ORDER_BUSY("A03001", "订单繁忙,请稍后再试"), +// +// /** +// * 订单不支持该配送方式 +// */ +// ORDER_DELIVERY_NOT_SUPPORTED("A03001", "The delivery method is not supported"), +// +// /** +// * 请勿重复提交订单, +// * 1.当前端遇到该异常时,说明前端防多次点击没做好 +// * 2.提示用户 订单已发生改变,请勿重复下单 +// */ +// REPEAT_ORDER("A03002", "订单已过期,请重新下单"), +// +// /** +// * 优惠券不能共用 +// */ +// COUPON_CANNOT_USE_TOGETHER("A03003", "优惠券不能共用"), +// +// /** +// * 代金券金额超过了订单金额 +// */ +// COUPON_OF_RMRT_GT_ORDER("A03004", "代金券金额超过了订单金额"), +// +// /** +// * 库存不足,body会具体返回那个skuid的库存不足,后台通过skuId知道哪个商品库存不足,前端不需要判断 +// */ +// NOT_STOCK("A03010", "not stock"), +// +// /** +// * 该社交账号被其他用户绑定了,如果返回这个状态码,前端应该提示用户解绑已经绑定的账号重新绑定 +// */ +// SOCIAL_ACCOUNT_BIND_BY_OTHER("A04002", "social account bind by other"), +// +// /** +// * 存在未完成订单不能注销 +// */ +// DESTROY_USER_FAIL("A05000", "您的账户当前有未完成的订单,请待所有订单完成后再注销账户"), +// +// /** +// * 用户收货地址超过配送范围 +// */ +// DELIVERY_OVER("A07001", ""), +// /** +// * 账号重复 +// */ +// ACCOUNT_REPEAT("P01001", "账号已经被使用"), +// ACCOUNT_NOT_EXIT("P01002", "账号不存在"), +// ACCOUNT_NOT_ROLE("P01003", "账号不存在角色"), +// ACCOUNT_STATUS_ERROR("P01004", "账号被锁"), +// ACCOUNT_NOT_AREA("P01005", "账号没绑定经营地区"), +// ACCOUNT_CREATE_ERROR("P01006", "账号创建失败"), +// ACCOUNT_NO_MENU("P01007", "账号无菜单权限"), +// PUSH_ID_NO_ACCOUNT("P01008", "该id无账号"), +// ACCOUNT_ERROR("P01009", "账号权限错误"), +// QUERY_TYPE_ERROR("P01010", "分页查询用户类型有误"), +// // P02 钱包类 +// PUSH_USER_WALLET_NOT_EXIST("P02001", "用户钱包不存在"), +// ORDER_NOT_EXIST("P02002", "订单不存在"), +// NOT_SCANCODE_ORDER("P02003", "订单不是扫码下单"), +// NOT_PAY_ORDER("P02004", "订单为未支付完成"), +// ACTUAL_PAY_LITTLE_ORDER("P02005", "订单支付金额小于1元,不进行分成"), +// NOT_BIND_ORDER("P02006", "订单商家未被推客绑定,不进行分成"), +// PUSH_ERR("P02007", "分成失败"), +// ACCOUNT_WX_BIND("P02101","改用户已经绑定openid" ), +// WX_APPID_SECRET_ERR("P02102","获取配置的appid错误" ), +// WITHDRAW_EXCESS_ERROR("P02005", "提现金额超出可提现额度"), +// SHOP_BANK_CARD_NOT_EXIST("P02006", "银行卡不存在"), +// SHOP_BANK_CARD_STATE_ERROR("P02007", "申请提现银行卡状态错误"), +// +// SHOP_BANK_ACCOUNT_ERROR("P02008", "注册新生账号异常"), +// SHOP_BANK_BIND_CONFIRM("P02010", "请输入验证码绑定银行卡"), +// /** +// * C开头为公共部分 +// */ +// ACCESS_TOKEN_ERR("C01001", "获取access_token失败"), +// TICKET_ERR("C01002", "获取ticket失败"), +// GENERATE_URL_LINK_ERR("C01003", "创建URLLink失败"), +// GET_WX_CODE_SESSION_ERR("C01004", "微信登录凭证校验败"), +// +// DATA_EXISTS("C01009", "数据已存在"), +// DATA_NOT_CHANGE_ABLE("C01010", "数据不可变更"), +// +// +// +// +// /** +// * 远程接口调用错误 +// */ +// RPC_CALL_EXCEPTION("A08001", ""), +// /** +// * +// */ +// RPC_CALL_HTTP_EXCEPTION("A08002", ""), +// +// +// BAIDU_MAP_CONVERT_ERROR("A08003","百度地图接口调用错误" ), +// +// /** +// * T 平台活动类 +// */ +// REPEAT_ACTIVITY_SUB_ITEM("T00001", "重复的活动子项目"),; +// +// +// +// private final String code; +// +// private final String msg; +// +// public String value() { +// return code; +// } +// +// public String getMsg() { +// return msg; +// } +// +// ResponseEnum(String code, String msg) { +// this.code = code; +// this.msg = msg; +// } +// +// @Override +// public String toString() { +// return "ResponseEnum{" + "code='" + code + '\'' + ", msg='" + msg + '\'' + "} " + super.toString(); +// } +// +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/domain/response/ServerResponseEntity.java b/mcwl-common/src/main/java/com/mcwl/common/domain/response/ServerResponseEntity.java new file mode 100644 index 0000000..8f929ae --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/domain/response/ServerResponseEntity.java @@ -0,0 +1,215 @@ +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.domain.response; +// +//import com.fasterxml.jackson.databind.annotation.JsonSerialize; +//import com.mcwl.common.config.serializer.SensitiveJsonSerializer; +//import io.swagger.v3.oas.annotations.media.Schema; +//import org.slf4j.Logger; +//import org.slf4j.LoggerFactory; +// +//import java.io.Serializable; +//import java.util.Objects; +// +///** +// * 响应实体 +// * @author mcwl +// */ +//public class ServerResponseEntity implements Serializable { +// +// private static final Logger log = LoggerFactory.getLogger(ServerResponseEntity.class); +// +// /** +// * 状态码 +// */ +// @Schema(description = "状态码" ) private String code; +// +// /** +// * 信息 +// */ +// @Schema(description = "信息" ) private String msg; +// +// /** +// * 数据 +// */ +// @Schema(description = "数据" ) +// @JsonSerialize(using = SensitiveJsonSerializer.class) +// private T data; +// +// /** +// * 版本 +// */ +// private String version; +// +// /** +// * 时间 +// */ +// private Long timestamp; +// +// private String sign; +// +// public String getSign() { +// return sign; +// } +// +// public void setSign(String sign) { +// this.sign = sign; +// } +// +// public String getCode() { +// return code; +// } +// +// public void setCode(String code) { +// this.code = code; +// } +// +// public String getMsg() { +// return msg; +// } +// +// public void setMsg(String msg) { +// this.msg = msg; +// } +// +// public T getData() { +// return data; +// } +// +// public ServerResponseEntity setData(T data) { +// this.data = data; +// return this; +// } +// +// public Long getTimestamp() { +// return timestamp; +// } +// +// public void setTimestamp(Long timestamp) { +// this.timestamp = timestamp; +// } +// +// public String getVersion() { +// return version; +// } +// +// public void setVersion(String version) { +// this.version = version; +// } +// +// public boolean isSuccess() { +// return Objects.equals(ResponseEnum.OK.value(), this.code); +// } +// public boolean isFail() { +// return !Objects.equals(ResponseEnum.OK.value(), this.code); +// } +// +// public ServerResponseEntity() { +// // 版本号 +// this.version = "mall4j.v231204"; +// } +// +// public static ServerResponseEntity success(T data) { +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setData(data); +// serverResponseEntity.setCode(ResponseEnum.OK.value()); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity success() { +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setCode(ResponseEnum.OK.value()); +// serverResponseEntity.setMsg(ResponseEnum.OK.getMsg()); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity success(Integer code, T data) { +// return success(String.valueOf(code), data); +// } +// +// public static ServerResponseEntity success(String code, T data) { +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setCode(code); +// serverResponseEntity.setData(data); +// return serverResponseEntity; +// } +// +// /** +// * 前端显示失败消息 +// * @param msg 失败消息 +// * @return +// */ +// public static ServerResponseEntity showFailMsg(String msg) { +// log.error(msg); +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setMsg(msg); +// serverResponseEntity.setCode(ResponseEnum.SHOW_FAIL.value()); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity fail(ResponseEnum responseEnum) { +// log.error(responseEnum.toString()); +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setMsg(responseEnum.getMsg()); +// serverResponseEntity.setCode(responseEnum.value()); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity fail(ResponseEnum responseEnum, T data) { +// log.error(responseEnum.toString()); +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setMsg(responseEnum.getMsg()); +// serverResponseEntity.setCode(responseEnum.value()); +// serverResponseEntity.setData(data); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity fail(String code, String msg, T data) { +// log.error(msg); +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setMsg(msg); +// serverResponseEntity.setCode(code); +// serverResponseEntity.setData(data); +// return serverResponseEntity; +// } +// +// public static ServerResponseEntity fail(String code, String msg) { +// return fail(code, msg, null); +// } +// +// public static ServerResponseEntity fail(Integer code, T data) { +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setCode(String.valueOf(code)); +// serverResponseEntity.setData(data); +// return serverResponseEntity; +// } +// +// @SuppressWarnings("unchecked") +// public static ServerResponseEntity transform(ServerResponseEntity oldServerResponseEntity) { +// ServerResponseEntity serverResponseEntity = new ServerResponseEntity<>(); +// serverResponseEntity.setMsg(oldServerResponseEntity.getMsg()); +// serverResponseEntity.setCode(oldServerResponseEntity.getCode()); +// serverResponseEntity.setData((T) oldServerResponseEntity.getData()); +// log.error(serverResponseEntity.toString()); +// return serverResponseEntity; +// } +// +// @Override +// public String toString() { +// return "ServerResponseEntity{" + +// "code='" + code + '\'' + +// ", msg='" + msg + '\'' + +// ", data=" + data + +// ", version='" + version + '\'' + +// ", timestamp=" + timestamp + +// ", sign='" + sign + '\'' + +// '}'; +// } +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/exception/YamiBizException.java b/mcwl-common/src/main/java/com/mcwl/common/exception/YamiBizException.java new file mode 100644 index 0000000..614b2a5 --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/exception/YamiBizException.java @@ -0,0 +1,60 @@ +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.exception; +// +// +//import com.mcwl.common.domain.response.ResponseEnum; +//import lombok.Getter; +// +///** +// * 自定义异常 +// * @author mcwl +// */ +//@Getter +//public class YamiBizException extends RuntimeException{ +// +// /** +// * +// */ +// private static final long serialVersionUID = -4137688758944857209L; +// +// /** +// * http状态码 +// */ +// private String code; +// +// /** +// * @param responseEnum http状态码 +// */ +// public YamiBizException(ResponseEnum responseEnum) { +// super(responseEnum.getMsg()); +// this.code = responseEnum.value(); +// } +// +// /** +// * @param responseEnum http状态码 +// */ +// public YamiBizException(ResponseEnum responseEnum, String msg) { +// super(msg); +// this.code = responseEnum.value(); +// } +// +// public YamiBizException(String msg) { +//// super(msg); +// super(msg); +// this.code = ResponseEnum.SHOW_FAIL.value(); +// } +// +// public YamiBizException(String code,String msg) { +//// super(msg); +// super(msg); +// this.code = code; +// } +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/exception/YamiShopBindException.java b/mcwl-common/src/main/java/com/mcwl/common/exception/YamiShopBindException.java new file mode 100644 index 0000000..f7f6ad6 --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/exception/YamiShopBindException.java @@ -0,0 +1,74 @@ +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.exception; +// +//import com.mcwl.common.domain.response.ResponseEnum; +//import com.mcwl.common.domain.response.ServerResponseEntity; +//import com.mcwl.common.i18n.I18nMessage; +//import lombok.Getter; +// +///** +// * 自定义异常 +// * @author mcwl +// */ +//@Getter +//public class YamiShopBindException extends RuntimeException{ +// +// /** +// * +// */ +// private static final long serialVersionUID = -4137688758944857209L; +// +// /** +// * http状态码 +// */ +// private String code; +// +// private Object object; +// +// private ServerResponseEntity serverResponseEntity; +// +// /** +// * @param responseEnum http状态码 +// */ +// public YamiShopBindException(ResponseEnum responseEnum) { +// super(responseEnum.getMsg()); +// this.code = responseEnum.value(); +// } +// +// /** +// * @param responseEnum http状态码 +// */ +// public YamiShopBindException(ResponseEnum responseEnum, String msg) { +// super(I18nMessage.getMessage(msg)); +// this.code = responseEnum.value(); +// } +// +// public YamiShopBindException(ServerResponseEntity serverResponseEntity) { +// this.serverResponseEntity = serverResponseEntity; +// } +// +// public YamiShopBindException(String msg) { +//// super(msg); +// super(I18nMessage.getMessage(msg)); +// this.code = ResponseEnum.SHOW_FAIL.value(); +// } +// +// public YamiShopBindException(String msg, Object object) { +// super(I18nMessage.getMessage(msg)); +// this.code = ResponseEnum.SHOW_FAIL.value(); +// this.object = object; +// } +// +// public YamiShopBindException(String code, String msg) { +// super(I18nMessage.getMessage(msg)); +// this.code = code; +// } +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/i18n/I18nMessage.java b/mcwl-common/src/main/java/com/mcwl/common/i18n/I18nMessage.java new file mode 100644 index 0000000..e69de29 diff --git a/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeFilter.java b/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeFilter.java index 93ec305..ab1dc4e 100644 --- a/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeFilter.java +++ b/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeFilter.java @@ -1,53 +1,53 @@ -/* - * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. - * - * https://www.mall4j.com/ - * - * 未经允许,不可做商业用途! - * - * 版权所有,侵权必究! - */ -package com.mcwl.common.i18n; - - - -import lombok.extern.slf4j.Slf4j; -import org.springframework.context.i18n.LocaleContextHolder; -import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; - -import javax.servlet.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.Locale; -import java.util.Objects; - -/** - * RequestContextFilter 会传入默认的Locale,优先级(-105) 要比RequestContextFilter优先级高 - * @author LGH - */ -@Slf4j -@Component -@Order(-104) -public class YamiLocaleChangeFilter implements Filter { - - public static String ZH_CN = "zh_CN"; - public static String ZH_CN_L = "zh_cn"; - - @Override - public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { - HttpServletRequest request = (HttpServletRequest) servletRequest; - HttpServletResponse response = (HttpServletResponse) servletResponse; - - String newLocale = request.getHeader("locale"); - if(Objects.equals(newLocale,ZH_CN)||Objects.equals(newLocale,ZH_CN_L)){ - newLocale = "zh"; - } - if (newLocale != null) { - String lowerLocale = newLocale.toLowerCase(); - LocaleContextHolder.setLocale(new Locale(lowerLocale)); - } - filterChain.doFilter(request, response); - } -} +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.i18n; +// +// +// +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.context.i18n.LocaleContextHolder; +//import org.springframework.core.annotation.Order; +//import org.springframework.stereotype.Component; +// +//import javax.servlet.*; +//import javax.servlet.http.HttpServletRequest; +//import javax.servlet.http.HttpServletResponse; +//import java.io.IOException; +//import java.util.Locale; +//import java.util.Objects; +// +///** +// * RequestContextFilter 会传入默认的Locale,优先级(-105) 要比RequestContextFilter优先级高 +// * @author LGH +// */ +//@Slf4j +//@Component +//@Order(-104) +//public class YamiLocaleChangeFilter implements Filter { +// +// public static String ZH_CN = "zh_CN"; +// public static String ZH_CN_L = "zh_cn"; +// +// @Override +// public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { +// HttpServletRequest request = (HttpServletRequest) servletRequest; +// HttpServletResponse response = (HttpServletResponse) servletResponse; +// +// String newLocale = request.getHeader("locale"); +// if(Objects.equals(newLocale,ZH_CN)||Objects.equals(newLocale,ZH_CN_L)){ +// newLocale = "zh"; +// } +// if (newLocale != null) { +// String lowerLocale = newLocale.toLowerCase(); +// LocaleContextHolder.setLocale(new Locale(lowerLocale)); +// } +// filterChain.doFilter(request, response); +// } +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeInterceptor.java b/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeInterceptor.java index 89ff1c1..6a806ec 100644 --- a/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeInterceptor.java +++ b/mcwl-common/src/main/java/com/mcwl/common/i18n/YamiLocaleChangeInterceptor.java @@ -1,58 +1,58 @@ -/* - * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. - * - * https://www.mall4j.com/ - * - * 未经允许,不可做商业用途! - * - * 版权所有,侵权必究! - */ -package com.mcwl.common.i18n; - - - -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.LocaleResolver; -import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; -import org.springframework.web.servlet.support.RequestContextUtils; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** - * @author LGH - */ -@Component("localeChangeInterceptor") -@Slf4j -public class YamiLocaleChangeInterceptor extends LocaleChangeInterceptor { - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { - - String newLocale = request.getHeader(getParamName()); - if (newLocale != null) { - LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); - if (localeResolver == null) { - throw new IllegalStateException( - "No LocaleResolver found: not in a DispatcherServlet request?"); - } - try { - localeResolver.setLocale(request, response, parseLocaleValue(newLocale)); - } - catch (IllegalArgumentException ex) { - if (isIgnoreInvalidLocale()) { - if (logger.isDebugEnabled()) { - logger.debug("Ignoring invalid locale value [" + newLocale + "]: " + ex.getMessage()); - } - } - else { - throw ex; - } - } - } - // Proceed in any case. - return true; - } - -} +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.i18n; +// +// +// +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +//import org.springframework.web.servlet.LocaleResolver; +//import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; +//import org.springframework.web.servlet.support.RequestContextUtils; +// +//import javax.servlet.http.HttpServletRequest; +//import javax.servlet.http.HttpServletResponse; +// +///** +// * @author LGH +// */ +//@Component("localeChangeInterceptor") +//@Slf4j +//public class YamiLocaleChangeInterceptor extends LocaleChangeInterceptor { +// +// @Override +// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { +// +// String newLocale = request.getHeader(getParamName()); +// if (newLocale != null) { +// LocaleResolver localeResolver = RequestContextUtils.getLocaleResolver(request); +// if (localeResolver == null) { +// throw new IllegalStateException( +// "No LocaleResolver found: not in a DispatcherServlet request?"); +// } +// try { +// localeResolver.setLocale(request, response, parseLocaleValue(newLocale)); +// } +// catch (IllegalArgumentException ex) { +// if (isIgnoreInvalidLocale()) { +// if (logger.isDebugEnabled()) { +// logger.debug("Ignoring invalid locale value [" + newLocale + "]: " + ex.getMessage()); +// } +// } +// else { +// throw ex; +// } +// } +// } +// // Proceed in any case. +// return true; +// } +// +//} diff --git a/mcwl-common/src/main/java/com/mcwl/common/utils/ImageUtil.java b/mcwl-common/src/main/java/com/mcwl/common/utils/ImageUtil.java new file mode 100644 index 0000000..eaa3fdd --- /dev/null +++ b/mcwl-common/src/main/java/com/mcwl/common/utils/ImageUtil.java @@ -0,0 +1,99 @@ +///* +// * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved. +// * +// * https://www.mall4j.com/ +// * +// * 未经允许,不可做商业用途! +// * +// * 版权所有,侵权必究! +// */ +//package com.mcwl.common.utils; +// +//import cn.hutool.core.util.StrUtil; +//import com.mcwl.common.exception.YamiShopBindException; +// +// +//import javax.imageio.ImageIO; +//import java.awt.*; +//import java.awt.image.BufferedImage; +//import java.io.ByteArrayOutputStream; +//import java.io.IOException; +//import java.net.URL; +// +///** +// * 图片处理工具类 +// +// */ +//public class ImageUtil { +// private static final String JPG = "jpg"; +// private static final String JPEG = "jpeg"; +// /** +// * 将图片转为二进制数组 +// * @param imgUrl +// * @return +// */ +// public static byte[] imgToBinary(String imgUrl) { +// try { +// BufferedImage bufferedImage = ImageIO.read(new URL(imgUrl)); +// ByteArrayOutputStream baos = new ByteArrayOutputStream(); +// String suffix = imgUrlFileType(imgUrl); +// //ImageIO无法写入jpeg文件 报Invalid argument to native writeImage,需重画 +// if(StrUtil.equals(suffix, JPG) || StrUtil.equals(suffix,JPEG)){ +// BufferedImage tag; +// tag = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_BGR); +// Graphics g = tag.getGraphics(); +// g.drawImage(bufferedImage, 0, 0, null); +// g.dispose(); +// bufferedImage = tag; +// } +// ImageIO.write(bufferedImage, suffix, baos); +// byte[] bytes = baos.toByteArray(); +// return bytes; +// } catch (IOException e) { +// // 图片丢失,请重新上传图片 +// throw new YamiShopBindException("yami.img.lose"); +// } +// } +// +// /** +// * @param imgUrl +// * @return 文件得后缀,文件类型 jpg , png , ... +// */ +// public static String imgUrlFileType(String imgUrl) { +// if (StrUtil.isBlank(imgUrl)) { +// return imgUrl; +// } +// imgUrl.trim(); +// String[] split = imgUrl.split("\\."); +// String s = split[split.length - 1]; +// return s; +// } +// +// /** +// * @param imgUrl +// * @return 获取文件名称 +// */ +// public static String imgUrlFileName(String imgUrl) { +// if (StrUtil.isBlank(imgUrl)) { +// return imgUrl; +// } +// imgUrl.trim(); +// String[] split = imgUrl.split("/"); +// String s = split[split.length - 1]; +// return s; +// } +// /** +// * @param imgUrl +// * @return 获取文件名称 45d3631e97d8438d80f9db1369595b8c +// */ +// public static String imgUrlFileNameNoSuffix(String imgUrl) { +// if (StrUtil.isBlank(imgUrl)) { +// return imgUrl; +// } +// imgUrl.trim(); +// String[] split = imgUrl.split("/"); +// String s = split[split.length - 1]; +// String[] split1 = s.split("\\."); +// return split1[0]; +// } +//} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Member.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Member.java index 3ee9333..bbe83db 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Member.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Member.java @@ -34,9 +34,6 @@ public class Member extends BaseEntity { // 订阅周期(天) private Integer subscriptionPeriod; - // 删除标志(0代表存在 2代表删除) - private String delFlag; - // 备注 private String remark; } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/UserMember.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/UserMember.java index 7dca9ea..097e922 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/UserMember.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/UserMember.java @@ -3,6 +3,7 @@ package com.mcwl.memberCenter.domain; import com.baomidou.mybatisplus.annotation.EnumValue; import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; import com.mcwl.common.core.domain.BaseEntity; import com.mcwl.memberCenter.enums.MemberMenu; @@ -53,9 +54,6 @@ public class UserMember extends BaseEntity { // 状态(0:正常 1:禁用) private String status; - // 删除标志(0代表存在 2代表删除) - private String delFlag; - // 备注 private String remark; diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java index f2f13a0..7f06d09 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/task/UserMemberTask.java @@ -81,7 +81,7 @@ public class UserMemberTask { userMemberService.updateById(userMember); // 发送会员账单消息,如果支付成功,更新last_payment_date,并重新计算end_date(start_date + 1个月) rabbitTemplate.convertAndSend(QueueConstants.MEMBER_BILLING_QUEUE, userMember); - } else if (subscriptionStatus == MemberMenu.MEMBER_CENTER_INACTIVE){ + } else if (subscriptionStatus == MemberMenu.MEMBER_CENTER_INACTIVE) { // 不是连续包月,会员状态改为过期,状态改为"1" userMember.setSubscriptionStatus(MemberMenu.MEMBER_CENTER_EXPIRED); userMember.setStatus("1"); @@ -101,7 +101,9 @@ public class UserMemberTask { .ge(UserMember::getEndDate, System.currentTimeMillis()) .ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_EXPIRED) .ne(UserMember::getSubscriptionStatus, MemberMenu.MEMBER_CENTER_PENDING) - .eq(UserMember::getStatus, '0'); + .eq(UserMember::getStatus, "0"); + // 对应的sql为 + System.out.println("sql = " + qw.getSqlSegment()); return userMemberService.list(); } diff --git a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Commission.java b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Commission.java index 7cb2dac..05d127d 100644 --- a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Commission.java +++ b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Commission.java @@ -27,9 +27,6 @@ public class Commission extends BaseEntity { // 支付状态 private Integer payStatus; - // 删除标志(0代表存在 2代表删除) - private String delFlag; - // 备注 private String remark; diff --git a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java index 626cc26..6d9cc5a 100644 --- a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java +++ b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Consume.java @@ -25,9 +25,6 @@ public class Consume extends BaseEntity { // 消费时间 private Date consumeDate; - // 删除标志(0代表存在 2代表删除) - private String delFlag; - // 备注 private String remark; diff --git a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Invitation.java b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Invitation.java index c4b917a..06b237f 100644 --- a/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Invitation.java +++ b/mcwl-myInvitation/src/main/java/com/mcwl/myInvitation/domain/Invitation.java @@ -25,9 +25,6 @@ public class Invitation extends BaseEntity { // 邀请码 private String invitationCode; - // 删除标志(0代表存在 2代表删除) - private String delFlag; - // 备注 private String remark;