From 51d28803923c532459e8974c3ba33fa41fb09c4d Mon Sep 17 00:00:00 2001 From: Chopper711 Date: Wed, 7 Dec 2022 09:37:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?'=E5=A2=9E=E5=8A=A0=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8=E5=85=B3=E9=97=AD=E4=BD=9C=E5=BA=9F=E4=BC=98=E6=83=A0?= =?UTF-8?q?=E5=88=B8'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/promotion/service/MemberCouponService.java | 7 +++++++ .../promotion/serviceimpl/MemberCouponServiceImpl.java | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java b/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java index 132367a9..7ca8245e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/MemberCouponService.java @@ -147,4 +147,11 @@ public interface MemberCouponService extends IService { */ boolean recoveryMemberCoupon(List memberCouponIds); + /** + * 作废优惠券 + * + * @param couponId 优惠券ID + */ + void voidCoupon(String couponId); + } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java index cee103dc..415f45fa 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberCouponServiceImpl.java @@ -293,6 +293,15 @@ public class MemberCouponServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(MemberCoupon::getCouponId, couponId); + updateWrapper.set(MemberCoupon::getMemberCouponStatus, MemberCouponStatusEnum.CLOSED.name()); + updateWrapper.set(MemberCoupon::getDeleteFlag, true); + this.update(updateWrapper); + } + /** * 清除无效的会员优惠券 * From b3f22866b595ae0ac297da8e47102ca6c30370e2 Mon Sep 17 00:00:00 2001 From: Chopper711 Date: Wed, 7 Dec 2022 09:38:10 +0800 Subject: [PATCH 2/3] =?UTF-8?q?'=E5=BA=97=E9=93=BA=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E8=A7=84=E8=8C=83=E5=8C=96=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E6=81=B6=E6=84=8F=E6=94=BB=E5=87=BB'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lili/common/enums/ResultCode.java | 1 + .../store/serviceimpl/StoreServiceImpl.java | 27 +++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/enums/ResultCode.java b/framework/src/main/java/cn/lili/common/enums/ResultCode.java index e7cc5514..1fa875f9 100644 --- a/framework/src/main/java/cn/lili/common/enums/ResultCode.java +++ b/framework/src/main/java/cn/lili/common/enums/ResultCode.java @@ -406,6 +406,7 @@ public enum ResultCode { STORE_NOT_LOGIN_ERROR(50005, "未登录店铺"), STORE_CLOSE_ERROR(50006, "店铺关闭,请联系管理员"), FREIGHT_TEMPLATE_NOT_EXIST(50010, "当前模版不存在"), + STORE_STATUS_ERROR(50011, "店铺状态异常,无法申请"), /** * 结算单 diff --git a/framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java b/framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java index e92c50f0..6b23f60e 100644 --- a/framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/store/serviceimpl/StoreServiceImpl.java @@ -250,6 +250,8 @@ public class StoreServiceImpl extends ServiceImpl implements return storeDetailService.save(storeDetail); } else { + //校验迪纳普状态 + checkStoreStatus(store); //复制参数 修改已存在店铺 BeanUtil.copyProperties(storeCompanyDTO, store); this.updateById(store); @@ -273,6 +275,8 @@ public class StoreServiceImpl extends ServiceImpl implements //获取当前操作的店铺 Store store = getStoreByMember(); + //校验迪纳普状态 + checkStoreStatus(store); StoreDetail storeDetail = storeDetailService.getStoreDetail(store.getId()); //设置店铺的银行信息 BeanUtil.copyProperties(storeBankDTO, storeDetail); @@ -283,6 +287,9 @@ public class StoreServiceImpl extends ServiceImpl implements public boolean applyThirdStep(StoreOtherInfoDTO storeOtherInfoDTO) { //获取当前操作的店铺 Store store = getStoreByMember(); + + //校验迪纳普状态 + checkStoreStatus(store); BeanUtil.copyProperties(storeOtherInfoDTO, store); this.updateById(store); @@ -304,6 +311,22 @@ public class StoreServiceImpl extends ServiceImpl implements return this.updateById(store); } + /** + * 申请店铺时 对店铺状态进行校验判定 + * + * @param store 店铺 + */ + private void checkStoreStatus(Store store) { + + //如果店铺状态为申请中或者已申请,则正常走流程,否则抛出异常 + if (store.getStoreDisable().equals(StoreStatusEnum.APPLY.name()) || store.getStoreDisable().equals(StoreStatusEnum.APPLYING.name())) { + return; + } else { + throw new ServiceException(ResultCode.STORE_STATUS_ERROR); + } + + } + @Override public void updateStoreGoodsNum(String storeId, Long num) { //修改店铺商品数量 @@ -320,10 +343,10 @@ public class StoreServiceImpl extends ServiceImpl implements @Override public void storeToClerk() { //清空店铺信息方便重新导入不会有重复数据 - clerkService.remove(new LambdaQueryWrapper().eq(Clerk::getShopkeeper,true)); + clerkService.remove(new LambdaQueryWrapper().eq(Clerk::getShopkeeper, true)); List clerkList = new ArrayList<>(); //遍历已开启的店铺 - for (Store store : this.list(new LambdaQueryWrapper().eq(Store::getDeleteFlag,false).eq(Store::getStoreDisable,StoreStatusEnum.OPEN.name()))) { + for (Store store : this.list(new LambdaQueryWrapper().eq(Store::getDeleteFlag, false).eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name()))) { clerkList.add(new Clerk(store)); } clerkService.saveBatch(clerkList); From 602678e2b9fc0aed96950623c4f1ae3622abd285 Mon Sep 17 00:00:00 2001 From: Chopper711 Date: Wed, 7 Dec 2022 15:14:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?'=E6=90=9C=E7=B4=A2=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E8=BF=87=E6=BB=A4=E5=85=B3=E9=94=AE=E5=AD=97?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E7=89=B9=E6=AE=8A=E5=AD=97=E7=AC=A6'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/lili/common/utils/RegularUtil.java | 76 ++++++++++++++++++- .../search/entity/dto/EsGoodsSearchDTO.java | 9 +++ 2 files changed, 81 insertions(+), 4 deletions(-) diff --git a/framework/src/main/java/cn/lili/common/utils/RegularUtil.java b/framework/src/main/java/cn/lili/common/utils/RegularUtil.java index 3837cf24..3bbf9dba 100644 --- a/framework/src/main/java/cn/lili/common/utils/RegularUtil.java +++ b/framework/src/main/java/cn/lili/common/utils/RegularUtil.java @@ -5,6 +5,7 @@ import java.util.regex.Pattern; /** * 用户名验证工具类 + * * @author Chopper */ public class RegularUtil { @@ -20,21 +21,88 @@ public class RegularUtil { */ private static final Pattern EMAIL = Pattern.compile("^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*\\.[a-zA-Z0-9]{2,6}$"); - public static boolean mobile(String v){ + //sql正则 + + static Pattern sqlPattern = Pattern.compile("(select|update|and|delete|insert|trancate|char|substr|ascii|declare|exec|count|master|into|drop|execute" + +// 可能涉及英文查询参数问题 +// "|in|not in exists|not exists" + +// "|between|not between" + +// "|like|not like" + +// "|is null|is not null" + + ")", Pattern.CASE_INSENSITIVE); + + //符号正则 + static Pattern symbolPattern = Pattern.compile("[\\s~·`!!@#¥$%^……&*(())\\-——\\-_=+【\\[\\]】{{}}\\|、\\\\;;::‘'“”\",,《<。.》>、/??]"); + + + /** + * 校验手机号 + * + * @param v + * @return + */ + public static boolean mobile(String v) { Matcher m = MOBILE.matcher(v); - if(m.matches()){ + if (m.matches()) { return true; } return false; } - public static boolean email(String v){ + //校验邮箱 + public static boolean email(String v) { Matcher m = EMAIL.matcher(v); - if(m.matches()){ + if (m.matches()) { return true; } return false; } + + + /** + * 搜索参数过滤 + * + * @param str 字符串 + * @return 过滤后的字符串 + */ + public static String replace(String str) { + + return symbolReplace(sqlReplace(str)); + } + + /** + * 过滤sql关键字 + * + * @param str 字符串 + * @return 过滤后的字符串 + */ + public static String sqlReplace(String str) { + if (StringUtils.isEmpty(str)) { + return ""; + } + Matcher sqlMatcher = sqlPattern.matcher(str); + return sqlMatcher.replaceAll(""); + } + + /** + * 符号过滤 + * + * @param str 字符串 + * @return 过滤后的字符串 + */ + public static String symbolReplace(String str) { + if (StringUtils.isEmpty(str)) { + return ""; + } + Matcher symbolMatcher = symbolPattern.matcher(str); + return symbolMatcher.replaceAll(""); + } + + public static void main(String[] args) { + System.out.println(replace("selectSELECTINORNOTIN123阿松大asdfa!@#$%^&&*()_+{}[]!?>?").trim()); + } + + } diff --git a/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java b/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java index 2f0759d6..305fd5f6 100644 --- a/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java +++ b/framework/src/main/java/cn/lili/modules/search/entity/dto/EsGoodsSearchDTO.java @@ -1,5 +1,7 @@ package cn.lili.modules.search.entity.dto; +import cn.lili.common.utils.RegularUtil; +import cn.lili.common.utils.StringUtils; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -47,4 +49,11 @@ public class EsGoodsSearchDTO { @ApiModelProperty("当前商品skuId,根据当前浏览的商品信息来给用户推荐可能喜欢的商品") private String currentGoodsId; + //过滤搜索关键字 + public String getKeyword() { + if (StringUtils.isNotEmpty(keyword)) { + RegularUtil.replace(this.keyword); + } + return keyword; + } }