Explorar o código

增加订单发货方式,用户自提,接收用户手机验证码,将订单直接修改为已完成

Yangzw hai 4 meses
pai
achega
c11ff2b525
Modificáronse 19 ficheiros con 66 adicións e 90 borrados
  1. 12 6
      feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/admin/spu/ProductSpuController.java
  2. 9 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java
  3. 8 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateService.java
  4. 20 0
      feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java
  5. 2 2
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/AppAuthController.java
  6. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthCheckCodeReqVO.java
  7. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthLoginReqVO.java
  8. 1 2
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthLoginRespVO.java
  9. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsLoginReqVO.java
  10. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsSendReqVO.java
  11. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsValidateReqVO.java
  12. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSocialLoginReqVO.java
  13. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java
  14. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AuthWeixinJsapiSignatureRespVO.java
  15. 0 67
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/AppAuthController.http
  16. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/convert/auth/AuthConvert.java
  17. 1 2
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/auth/MemberAuthService.java
  18. 1 1
      feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/auth/MemberAuthServiceImpl.java
  19. 3 1
      feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/user/AdminUserMapper.java

+ 12 - 6
feifan-module-mall/feifan-module-product-biz/src/main/java/cn/newfeifan/mall/module/product/controller/admin/spu/ProductSpuController.java

@@ -23,10 +23,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.pojo.PageParam.PAGE_SIZE_NONE;
@@ -105,8 +102,17 @@ public class ProductSpuController {
     @Parameter(name = "spuIds", description = "spu 编号列表", required = true, example = "[1,2,3]")
     @PreAuthorize("@ss.hasPermission('product:spu:query')")
     public CommonResult<List<ProductSpuRespVO>> getSpuList(@RequestParam("spuIds") Collection<Long> spuIds) {
-        return success(ProductSpuConvert.INSTANCE.convertForSpuDetailRespListVO(
-                productSpuService.getSpuList(spuIds), productSkuService.getSkuListBySpuId(spuIds)));
+        List<ProductSpuRespVO> data = ProductSpuConvert.INSTANCE.convertForSpuDetailRespListVO(
+                productSpuService.getSpuList(spuIds), productSkuService.getSkuListBySpuId(spuIds));
+        List<ProductSpuRespVO> list = new ArrayList<>();
+        for (Long spuId : spuIds) {
+            for (ProductSpuRespVO vo : data) {
+                if(spuId.equals(vo.getId())){
+                    list.add(vo);
+                }
+            }
+        }
+        return success(list);
     }
 
     @GetMapping("/page")

+ 9 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -11,6 +11,7 @@ import cn.newfeifan.mall.framework.excel.core.util.ExcelUtils;
 import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
 import cn.newfeifan.mall.module.member.api.user.MemberUserApi;
 import cn.newfeifan.mall.module.member.api.user.dto.MemberUserRespDTO;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.AppAuthSmsLoginReqVO;
 import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageItemRespVO;
 import cn.newfeifan.mall.module.pay.controller.admin.order.vo.PayOrderPageReqVO;
 import cn.newfeifan.mall.module.pay.convert.order.PayOrderConvert;
@@ -188,6 +189,14 @@ public class TradeOrderController {
         return success(true);
     }
 
+    @PutMapping("/pick-up-in-a-store")
+    @Operation(summary = "订单发货-自提")
+    @PreAuthorize("@ss.hasPermission('trade:order:update')")
+    public CommonResult<Boolean> pickUpInAStore(@RequestBody AppAuthSmsLoginReqVO smsLoginReqVO,@RequestParam Long orderId) {
+        tradeOrderUpdateService.pickUpInAStore(smsLoginReqVO,orderId);
+        return success(true);
+    }
+
     @PostMapping("/callBackUrl")
     @Operation(summary = "订单订阅回调")
     public SubscribeResp callBackUrl(HttpServletRequest request) {

+ 8 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateService.java

@@ -1,5 +1,6 @@
 package cn.newfeifan.mall.module.trade.service.order;
 
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.AppAuthSmsLoginReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
@@ -202,4 +203,11 @@ public interface TradeOrderUpdateService {
      * @param payOrderId 支付订单id
      */
     void updateOrderPaid(Long payOrderId);
+
+    /**
+     * 用户自提
+     * @param smsLoginReqVO 验证码信息
+     * @param orderId 订单id
+     */
+    void pickUpInAStore(AppAuthSmsLoginReqVO smsLoginReqVO, Long orderId);
 }

+ 20 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -32,6 +32,8 @@ import cn.newfeifan.mall.module.distri.service.ptprofitlog.PtProfitLogService;
 import cn.newfeifan.mall.module.distri.service.sharepath.SharePathService;
 import cn.newfeifan.mall.module.member.api.address.MemberAddressApi;
 import cn.newfeifan.mall.module.member.api.address.dto.MemberAddressRespDTO;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.AppAuthSmsLoginReqVO;
+import cn.newfeifan.mall.module.member.convert.auth.AuthConvert;
 import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
 import cn.newfeifan.mall.module.member.service.user.MemberUserService;
 import cn.newfeifan.mall.module.pay.api.order.PayOrderApi;
@@ -42,6 +44,8 @@ import cn.newfeifan.mall.module.product.api.comment.ProductCommentApi;
 import cn.newfeifan.mall.module.product.api.comment.dto.ProductCommentCreateReqDTO;
 import cn.newfeifan.mall.module.product.dal.dataobject.sku.ProductSkuDO;
 import cn.newfeifan.mall.module.product.dal.mysql.sku.ProductSkuMapper;
+import cn.newfeifan.mall.module.system.api.sms.SmsCodeApi;
+import cn.newfeifan.mall.module.system.enums.sms.SmsSceneEnum;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderDeliveryReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderRemarkReqVO;
 import cn.newfeifan.mall.module.trade.controller.admin.order.vo.TradeOrderUpdateAddressReqVO;
@@ -173,6 +177,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     private JPushUtils jPushUtils;
     @Resource
     private MemberUserService memberUserService;
+    @Resource
+    private SmsCodeApi smsCodeApi;
 
     // =================== Order ===================
 
@@ -1226,6 +1232,20 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         calc(TradeOrderDOList, orderPercentageDO, JsonUtils.toJsonString(orderPercentageDO));
     }
 
+    @Override
+    public void pickUpInAStore(AppAuthSmsLoginReqVO smsLoginReqVO, Long orderId) {
+        // 校验验证码
+        String userIp = getClientIP();
+        smsCodeApi.useSmsCode(AuthConvert.INSTANCE.convert(smsLoginReqVO, SmsSceneEnum.MEMBER_LOGIN.getScene(), userIp));
+
+        TradeOrderDO updateOrderObj = new TradeOrderDO();
+        updateOrderObj.setId(orderId);
+        updateOrderObj.setStatus(TradeOrderStatusEnum.COMPLETED.getStatus())
+                .setDeliveryTime(LocalDateTime.now())
+                .setReceiveTime(LocalDateTime.now());
+        tradeOrderMapper.updateById(updateOrderObj);
+    }
+
     /**
      * 计算订单支付成功后,订单项的冻结积分转换
      *

+ 2 - 2
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/AppAuthController.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/AppAuthController.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth;
+package cn.newfeifan.mall.module.member.controller.admin.auth;
 
 import cn.hutool.core.util.StrUtil;
 import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
@@ -6,7 +6,7 @@ import cn.newfeifan.mall.framework.common.pojo.CommonResult;
 import cn.newfeifan.mall.framework.operatelog.core.annotations.OperateLog;
 import cn.newfeifan.mall.framework.security.config.SecurityProperties;
 import cn.newfeifan.mall.framework.security.core.util.SecurityFrameworkUtils;
-import cn.newfeifan.mall.module.member.controller.app.auth.vo.*;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.*;
 import cn.newfeifan.mall.module.member.convert.auth.AuthConvert;
 import cn.newfeifan.mall.module.member.service.auth.MemberAuthService;
 import cn.newfeifan.mall.module.system.api.social.SocialClientApi;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthCheckCodeReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthCheckCodeReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.newfeifan.mall.framework.common.validation.InEnum;
 import cn.newfeifan.mall.framework.common.validation.Mobile;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthLoginReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthLoginReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.hutool.core.util.StrUtil;
 import cn.newfeifan.mall.framework.common.validation.InEnum;

+ 1 - 2
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthLoginRespVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthLoginRespVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
@@ -29,7 +29,6 @@ public class AppAuthLoginRespVO {
 
     /**
      * 仅社交登录、社交绑定时会返回
-     *
      * 为什么需要返回?微信公众号、微信小程序支付需要传递 openid 给支付接口
      */
     @Schema(description = "社交用户 openid", example = "qq768")

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthSmsLoginReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsLoginReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.hutool.core.util.StrUtil;
 import cn.newfeifan.mall.framework.common.validation.InEnum;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthSmsSendReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsSendReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.newfeifan.mall.framework.common.validation.InEnum;
 import cn.newfeifan.mall.framework.common.validation.Mobile;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthSmsValidateReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSmsValidateReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.newfeifan.mall.framework.common.validation.InEnum;
 import cn.newfeifan.mall.framework.common.validation.Mobile;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthSocialLoginReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthSocialLoginReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import cn.newfeifan.mall.framework.common.validation.InEnum;
 import cn.newfeifan.mall.module.system.enums.social.SocialTypeEnum;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AppAuthWeixinMiniAppLoginReqVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/vo/AuthWeixinJsapiSignatureRespVO.java → feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/admin/auth/vo/AuthWeixinJsapiSignatureRespVO.java

@@ -1,4 +1,4 @@
-package cn.newfeifan.mall.module.member.controller.app.auth.vo;
+package cn.newfeifan.mall.module.member.controller.admin.auth.vo;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;

+ 0 - 67
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/controller/app/auth/AppAuthController.http

@@ -1,67 +0,0 @@
-### 请求 /login 接口 => 成功
-POST {{appApi}}/member/auth/login
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-
-{
-  "mobile": "15601691388",
-  "password": "admin123"
-}
-
-### 请求 /send-sms-code 接口 => 成功
-POST {{appApi}}/member/auth/send-sms-code
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-
-{
-  "mobile": "15601691388",
-  "scene": 1
-}
-
-### 请求 /sms-login 接口 => 成功
-POST {{appApi}}/member/auth/sms-login
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-terminal: 30
-
-{
-  "mobile": "15601691388",
-  "code": 9999
-}
-
-### 请求 /social-login 接口 => 成功
-POST {{appApi}}/member/auth/social-login
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-
-{
-  "type": 34,
-  "code": "0e1oc9000CTjFQ1oim200bhtb61oc90g",
-  "state": "default"
-}
-
-### 请求 /weixin-mini-app-login 接口 => 成功
-POST {{appApi}}/member/auth/weixin-mini-app-login
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-
-{
-  "phoneCode": "618e6412e0c728f5b8fc7164497463d0158a923c9e7fd86af8bba393b9decbc5",
-  "loginCode": "001frTkl21JUf94VGxol2hSlff1frTkR"
-}
-
-### 请求 /logout 接口 => 成功
-POST {{appApi}}/member/auth/logout
-Content-Type: application/json
-Authorization: Bearer c1b76bdaf2c146c581caa4d7fd81ee66
-tenant-id: {{appTenentId}}
-
-### 请求 /auth/refresh-token 接口 => 成功
-POST {{appApi}}/member/auth/refresh-token?refreshToken=bc43d929094849a28b3a69f6e6940d70
-Content-Type: application/json
-tenant-id: {{appTenentId}}
-
-### 请求 /auth/create-weixin-jsapi-signature 接口 => 成功
-POST {{appApi}}/member/auth/create-weixin-jsapi-signature?url=http://www.zhongxing.cn
-Authorization: Bearer {{appToken}}
-tenant-id: {{appTenentId}}

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/convert/auth/AuthConvert.java

@@ -1,6 +1,6 @@
 package cn.newfeifan.mall.module.member.convert.auth;
 
-import cn.newfeifan.mall.module.member.controller.app.auth.vo.*;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.*;
 import cn.newfeifan.mall.module.member.controller.app.social.vo.AppSocialUserUnbindReqVO;
 import cn.newfeifan.mall.module.member.controller.app.user.vo.AppMemberUserResetPasswordReqVO;
 import cn.newfeifan.mall.module.system.api.oauth2.dto.OAuth2AccessTokenRespDTO;

+ 1 - 2
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/auth/MemberAuthService.java

@@ -1,12 +1,11 @@
 package cn.newfeifan.mall.module.member.service.auth;
 
-import cn.newfeifan.mall.module.member.controller.app.auth.vo.*;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.*;
 
 import javax.validation.Valid;
 
 /**
  * 会员的认证 Service 接口
- *
  * 提供用户的账号密码登录、token 的校验等认证相关的功能
  *
  * @author 非繁源码

+ 1 - 1
feifan-module-member/feifan-module-member-biz/src/main/java/cn/newfeifan/mall/module/member/service/auth/MemberAuthServiceImpl.java

@@ -7,7 +7,7 @@ import cn.newfeifan.mall.framework.common.enums.TerminalEnum;
 import cn.newfeifan.mall.framework.common.enums.UserTypeEnum;
 import cn.newfeifan.mall.framework.common.util.monitor.TracerUtils;
 import cn.newfeifan.mall.framework.common.util.servlet.ServletUtils;
-import cn.newfeifan.mall.module.member.controller.app.auth.vo.*;
+import cn.newfeifan.mall.module.member.controller.admin.auth.vo.*;
 import cn.newfeifan.mall.module.member.convert.auth.AuthConvert;
 import cn.newfeifan.mall.module.member.dal.dataobject.user.MemberUserDO;
 import cn.newfeifan.mall.module.member.service.user.MemberUserService;

+ 3 - 1
feifan-module-system/feifan-module-system-biz/src/main/java/cn/newfeifan/mall/module/system/dal/mysql/user/AdminUserMapper.java

@@ -5,8 +5,10 @@ import cn.newfeifan.mall.framework.mybatis.core.mapper.BaseMapperX;
 import cn.newfeifan.mall.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.newfeifan.mall.module.system.controller.admin.user.vo.user.UserPageReqVO;
 import cn.newfeifan.mall.module.system.dal.dataobject.user.AdminUserDO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 
@@ -14,7 +16,7 @@ import java.util.List;
 public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
 
     default AdminUserDO selectByUsername(String username) {
-        return selectOne(AdminUserDO::getUsername, username,AdminUserDO::getCategoryId,3);
+        return selectOne(new LambdaQueryWrapper<AdminUserDO>().eq(AdminUserDO::getUsername, username).in(AdminUserDO::getCategoryId, Arrays.asList(2,3)));
     }
 
     default AdminUserDO selectByEmail(String email) {