diff --git a/congomall-basic-data/congomall-basic-data-infrastructure/src/main/java/org/opengoofy/congomall/biz/basicdata/infrastructure/repository/RegionInfoRepositoryImpl.java b/congomall-basic-data/congomall-basic-data-infrastructure/src/main/java/org/opengoofy/congomall/biz/basicdata/infrastructure/repository/RegionInfoRepositoryImpl.java index f3df4c93ff946c87a06a26fa33eea43f1278109e..4ea689456ea570cde6cf2b82ca3fae9beb608869 100644 --- a/congomall-basic-data/congomall-basic-data-infrastructure/src/main/java/org/opengoofy/congomall/biz/basicdata/infrastructure/repository/RegionInfoRepositoryImpl.java +++ b/congomall-basic-data/congomall-basic-data-infrastructure/src/main/java/org/opengoofy/congomall/biz/basicdata/infrastructure/repository/RegionInfoRepositoryImpl.java @@ -19,6 +19,7 @@ package org.opengoofy.congomall.biz.basicdata.infrastructure.repository; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import lombok.RequiredArgsConstructor; import org.opengoofy.congomall.biz.basicdata.domain.aggregate.RegionInfo; import org.opengoofy.congomall.biz.basicdata.domain.repository.RegionInfoRepository; @@ -28,6 +29,7 @@ import org.opengoofy.congomall.springboot.starter.common.toolkit.BeanUtil; import org.springframework.stereotype.Repository; import java.util.List; +import java.util.function.Function; /** * 行政区划仓储层实现 @@ -44,51 +46,33 @@ public class RegionInfoRepositoryImpl implements RegionInfoRepository { @Override public List listAllRegionInfo() { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(RegionInfoDO.class).select( - RegionInfoDO::getId, - RegionInfoDO::getCode, - RegionInfoDO::getName, - RegionInfoDO::getParent, - RegionInfoDO::getLevel, - RegionInfoDO::getSort); - List regionInfoDOList = regionInfoMapper.selectList(queryWrapper); - return BeanUtil.convert(regionInfoDOList, RegionInfo.class); + return BeanUtil.convert(getRegionInfoList(null, null), RegionInfo.class); } @Override public List listRegionInfoByLevel(Integer level) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(RegionInfoDO.class) - .eq(RegionInfoDO::getLevel, level) - .select( - RegionInfoDO::getId, - RegionInfoDO::getCode, - RegionInfoDO::getName, - RegionInfoDO::getParent, - RegionInfoDO::getLevel, - RegionInfoDO::getSort); - List regionInfoDOList = regionInfoMapper.selectList(queryWrapper); - return BeanUtil.convert(regionInfoDOList, RegionInfo.class); + return BeanUtil.convert(getRegionInfoList(RegionInfoDO::getLevel, level), RegionInfo.class); } @Override public List listRegionInfoByCode(String code) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(RegionInfoDO.class) - .eq(RegionInfoDO::getCode, code) - .select( - RegionInfoDO::getId, - RegionInfoDO::getCode, - RegionInfoDO::getName, - RegionInfoDO::getParent, - RegionInfoDO::getLevel, - RegionInfoDO::getSort); - List regionInfoDOList = regionInfoMapper.selectList(queryWrapper); - return BeanUtil.convert(regionInfoDOList, RegionInfo.class); + return BeanUtil.convert(getRegionInfoList(RegionInfoDO::getCode, code), RegionInfo.class); } @Override public List listRegionInfoByParent(String parent) { + return BeanUtil.convert(getRegionInfoList(RegionInfoDO::getParent, parent), RegionInfo.class); + } + + /** + * 获取区域信息列表 + * + * @param field 字段 e.g RegionInfoDO::getParent + * @param value 字段值 e.g parent + * @return {@code List} + */ + private List getRegionInfoList(Function field, Object value) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(RegionInfoDO.class) - .eq(RegionInfoDO::getParent, parent) .select( RegionInfoDO::getId, RegionInfoDO::getCode, @@ -96,7 +80,21 @@ public class RegionInfoRepositoryImpl implements RegionInfoRepository { RegionInfoDO::getParent, RegionInfoDO::getLevel, RegionInfoDO::getSort); - List regionInfoDOList = regionInfoMapper.selectList(queryWrapper); - return BeanUtil.convert(regionInfoDOList, RegionInfo.class); + addEq(queryWrapper, field, value); + return regionInfoMapper.selectList(queryWrapper); } + + /** + * 查询器增加条件 + * + * @param queryWrapper 查询wrapper + * @param field 字段 + * @param value 值 + */ + private void addEq(LambdaQueryWrapper queryWrapper, Function field, Object value) { + if (value != null) { + queryWrapper.eq((SFunction) field, value); + } + } + } diff --git a/congomall-bff/congomall-bff-biz/src/main/java/org/opengoofy/congomall/biz/bff/toolkit/GeeTestLib.java b/congomall-bff/congomall-bff-biz/src/main/java/org/opengoofy/congomall/biz/bff/toolkit/GeeTestLib.java index bcd03caba7b2d19819e2faa5d7ca73012c5a5b9c..829373154bacbf2ce62fdbdf8fb881b6c08d49ec 100644 --- a/congomall-bff/congomall-bff-biz/src/main/java/org/opengoofy/congomall/biz/bff/toolkit/GeeTestLib.java +++ b/congomall-bff/congomall-bff-biz/src/main/java/org/opengoofy/congomall/biz/bff/toolkit/GeeTestLib.java @@ -19,6 +19,7 @@ package org.opengoofy.congomall.biz.bff.toolkit; import com.alibaba.fastjson2.JSONException; import com.alibaba.fastjson2.JSONObject; +import org.jetbrains.annotations.NotNull; import org.opengoofy.congomall.biz.bff.config.GeeTestProperties; import java.io.IOException; @@ -26,6 +27,7 @@ import java.io.InputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; +import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.HashMap; @@ -42,12 +44,12 @@ public class GeeTestLib { /** * 公钥 */ - private String captchaId = ""; + private final String captchaId; /** * 私钥 */ - private String privateKey = ""; + private final String privateKey; /** * 返回字符串 @@ -101,7 +103,7 @@ public class GeeTestLib { param = param + "&ip_address=" + ipAddress; } String result_str = readContentFromGet(getUrl + param); - if (result_str == "fail") { + if ("fail".equals(result_str)) { return 0; } JSONObject jsonObject = JSONObject.parseObject(result_str); @@ -131,7 +133,7 @@ public class GeeTestLib { jsonObject.put("success", 0); jsonObject.put("gt", this.captchaId); jsonObject.put("challenge", challenge); - jsonObject.put("new_captcha", this.NEW_FAIL_BACK); + jsonObject.put("new_captcha", NEW_FAIL_BACK); } catch (JSONException ignored) { } return jsonObject.toString(); @@ -151,13 +153,18 @@ public class GeeTestLib { connection.setConnectTimeout(2000); connection.setReadTimeout(2000); connection.connect(); + return respStringFromGet(connection); + } + + @NotNull + private String respStringFromGet(HttpURLConnection connection) throws IOException { if (connection.getResponseCode() == 200) { StringBuffer sBuffer = new StringBuffer(); InputStream inStream; byte[] buf = new byte[1024]; inStream = connection.getInputStream(); for (int n; (n = inStream.read(buf)) != -1; ) { - sBuffer.append(new String(buf, 0, n, "UTF-8")); + sBuffer.append(new String(buf, 0, n, StandardCharsets.UTF_8)); } inStream.close(); connection.disconnect(); @@ -166,7 +173,7 @@ public class GeeTestLib { return "fail"; } } - + /** * 预处理成功后的标准串 */ @@ -185,15 +192,15 @@ public class GeeTestLib { * MD5 加密 */ private String md5Encode(String plainText) { - String re_md5 = new String(); + String re_md5 = ""; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plainText.getBytes()); byte b[] = md.digest(); int i; - StringBuffer buf = new StringBuffer(""); - for (int offset = 0; offset < b.length; offset++) { - i = b[offset]; + StringBuffer buf = new StringBuffer(); + for (byte value : b) { + i = value; if (i < 0) { i += 256; } @@ -260,30 +267,18 @@ public class GeeTestLib { /** * 检查客户端的请求是否合法,三个只要有一个为空,则判断不合法 */ - private boolean requestIsLegal(String challenge, String validate, String seccode) { - if (objIsEmpty(challenge)) { - return false; - } - if (objIsEmpty(validate)) { - return false; - } - if (objIsEmpty(seccode)) { - return false; - } - return true; + private Boolean requestIsLegal(String challenge, String validate, String seccode) { + return !objIsEmpty(challenge) && !objIsEmpty(validate) && !objIsEmpty(seccode); } /** * 判断一个表单对象值是否为空 */ - protected boolean objIsEmpty(Object gtObj) { + protected Boolean objIsEmpty(Object gtObj) { if (gtObj == null) { return true; } - if (gtObj.toString().trim().length() == 0) { - return true; - } - return false; + return gtObj.toString().trim().length() == 0; } protected boolean checkResultByPrivate(String challenge, String validate) { @@ -305,24 +300,11 @@ public class GeeTestLib { connection.setDoOutput(true); connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.connect(); - OutputStreamWriter outputStreamWriter = new OutputStreamWriter(connection.getOutputStream(), "utf-8"); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(connection.getOutputStream(), StandardCharsets.UTF_8); outputStreamWriter.write(data); outputStreamWriter.flush(); outputStreamWriter.close(); - if (connection.getResponseCode() == 200) { - StringBuffer sBuffer = new StringBuffer(); - InputStream inStream = null; - byte[] buf = new byte[1024]; - inStream = connection.getInputStream(); - for (int n; (n = inStream.read(buf)) != -1; ) { - sBuffer.append(new String(buf, 0, n, "UTF-8")); - } - inStream.close(); - connection.disconnect(); - return sBuffer.toString(); - } else { - return "fail"; - } + return respStringFromGet(connection); } /** diff --git a/congomall-cart/congomall-cart-application/src/main/java/org/opengoofy/congomall/biz/cart/application/service/CartItemService.java b/congomall-cart/congomall-cart-application/src/main/java/org/opengoofy/congomall/biz/cart/application/service/CartItemService.java index d8283853f24043d4bab1dfe4bc2b4744c1909571..1d70de9e581d8c897d03f8201eec9ba263607c72 100644 --- a/congomall-cart/congomall-cart-application/src/main/java/org/opengoofy/congomall/biz/cart/application/service/CartItemService.java +++ b/congomall-cart/congomall-cart-application/src/main/java/org/opengoofy/congomall/biz/cart/application/service/CartItemService.java @@ -45,7 +45,7 @@ public interface CartItemService { * 查询用户选中购物车商品 * * @param customerUserId 用户 ID - * @return + * @return {@code List} */ List querySelectCartByCustomerUserId(String customerUserId); diff --git a/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/dao/entity/CartItemDO.java b/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/dao/entity/CartItemDO.java index e99c3bd14c84e84b13c26e6cae9cd9c265719c68..3781788b520230222689309ff1ab83f97f8b9edd 100644 --- a/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/dao/entity/CartItemDO.java +++ b/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/dao/entity/CartItemDO.java @@ -19,6 +19,7 @@ package org.opengoofy.congomall.biz.cart.infrastructure.dao.entity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import lombok.EqualsAndHashCode; import org.opengoofy.congomall.mybatisplus.springboot.starter.BaseDO; import java.math.BigDecimal; @@ -31,6 +32,7 @@ import java.math.BigDecimal; * @公众号 马丁玩编程,关注回复:资料,领取后端技术专家成长手册 */ @Data +@EqualsAndHashCode(callSuper = true) @TableName("cart_item") public class CartItemDO extends BaseDO { diff --git a/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/repository/CartItemRepositoryImpl.java b/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/repository/CartItemRepositoryImpl.java index 87f16a6f9b707be2cb59269ee0b50fcf543abd60..f04663933f581a06a03e24a1c34d6da8e2540e9a 100644 --- a/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/repository/CartItemRepositoryImpl.java +++ b/congomall-cart/congomall-cart-infrastructure/src/main/java/org/opengoofy/congomall/biz/cart/infrastructure/repository/CartItemRepositoryImpl.java @@ -68,7 +68,7 @@ public class CartItemRepositoryImpl implements CartItemRepository { public PageResponse pageQueryCartItem(String userId, PageRequest pageRequest) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(CartItemDO.class) .eq(CartItemDO::getCustomerUserId, userId); - Page selectPage = cartItemMapper.selectPage(new Page(pageRequest.getCurrent(), pageRequest.getSize()), queryWrapper); + Page selectPage = cartItemMapper.selectPage(new Page<>(pageRequest.getCurrent(), pageRequest.getSize()), queryWrapper); return PageUtil.convert(selectPage, CartItem.class); }