Procházet zdrojové kódy

feat(store): 商户信息相关修改

wxd před 1 měsícem
rodič
revize
0578bcb491

+ 23 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/MerchantUserController.java

@@ -9,6 +9,8 @@ import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreUserVo;
 import shop.alien.storeplatform.service.MerchantUserService;
 
+import java.util.Map;
+
 /**
  * web端商户用户管理控制器
  *
@@ -62,6 +64,27 @@ public class MerchantUserController {
             return R.fail("修改失败:" + e.getMessage());
         }
     }
+
+    @ApiOperation("检查是否设置支付密码")
+    @ApiOperationSupport(order = 3)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "storeUserId", value = "用户ID", dataType = "String", paramType = "query", required = true),
+            @ApiImplicitParam(name = "password", value = "支付密码(可选,如果提供则验证密码是否正确)", dataType = "String", paramType = "query", required = false)
+    })
+    @GetMapping("/checkPayPassword")
+    public R<Map<String, Object>> checkPayPassword(
+            @RequestParam("storeUserId") String storeUserId,
+            @RequestParam(value = "password", required = false) String password) {
+        log.info("MerchantUserController.checkPayPassword?storeUserId={}, hasPassword={}", 
+                storeUserId, password != null);
+        try {
+            Map<String, Object> result = merchantUserService.checkPayPassword(storeUserId, password);
+            return R.data(result);
+        } catch (Exception e) {
+            log.error("MerchantUserController.checkPayPassword ERROR: {}", e.getMessage(), e);
+            return R.fail("查询失败:" + e.getMessage());
+        }
+    }
 }
 
 

+ 5 - 8
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/NoticeController.java

@@ -8,6 +8,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.vo.LifeNoticeVo;
+import shop.alien.storeplatform.dto.MarkAllNoticesReadDTO;
 import shop.alien.storeplatform.service.NoticeService;
 
 /**
@@ -90,16 +91,12 @@ public class NoticeController {
 
     @ApiOperation("批量标记通知为已读(一键已读)")
     @ApiOperationSupport(order = 4)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "receiverId", value = "接收人ID(商户ID)", dataType = "String", paramType = "query", required = true),
-            @ApiImplicitParam(name = "noticeType", value = "通知类型(0-系统通知和订单提醒之外的类型,1-系统通知,2-订单提醒)。不传则标记所有类型", dataType = "Integer", paramType = "query", required = false)
-    })
     @PostMapping("/markAllNoticesAsRead")
-    public R<Integer> markAllNoticesAsRead(@RequestParam("receiverId") String receiverId,
-                                            @RequestParam(value = "noticeType", required = false) Integer noticeType) {
-        log.info("NoticeController.markAllNoticesAsRead?receiverId={}, noticeType={}", receiverId, noticeType);
+    public R<Integer> markAllNoticesAsRead(@RequestBody MarkAllNoticesReadDTO dto) {
+        log.info("NoticeController.markAllNoticesAsRead?receiverId={}, noticeType={}", 
+                dto.getReceiverId(), dto.getNoticeType());
         try {
-            int result = noticeService.markAllNoticesAsRead(receiverId, noticeType);
+            int result = noticeService.markAllNoticesAsRead(dto.getReceiverId(), dto.getNoticeType());
             if (result > 0) {
                 return R.data(result, "批量标记已读成功,共标记 " + result + " 条通知");
             }

+ 1 - 1
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/StoreManageController.java

@@ -36,7 +36,7 @@ public class StoreManageController {
         try {
             StoreInfoVo result = storeManageService.applyStore(storeInfoDto);
             if (result != null) {
-                return R.data(result, "店铺入住申请提交");
+                return R.data(result, "店铺入住申请提交成功");
             }
             return R.fail("申请失败");
         } catch (Exception e) {

+ 1 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/example/LoginUserUtilExample.java

@@ -253,3 +253,4 @@ public class LoginUserUtilExample {
 }
 
 
+

+ 11 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/MerchantUserService.java

@@ -3,6 +3,8 @@ package shop.alien.storeplatform.service;
 import shop.alien.entity.store.StoreUser;
 import shop.alien.entity.store.vo.StoreUserVo;
 
+import java.util.Map;
+
 /**
  * web端商户用户管理服务接口
  *
@@ -26,6 +28,15 @@ public interface MerchantUserService {
      * @return 是否修改成功
      */
     boolean updateMerchantUserInfo(StoreUser storeUser);
+
+    /**
+     * 检查用户是否设置支付密码(可选验证密码)
+     *
+     * @param storeUserId 用户ID
+     * @param password    支付密码(可选,如果提供则验证密码是否正确)
+     * @return 包含验证结果的Map
+     */
+    Map<String, Object> checkPayPassword(String storeUserId, String password);
 }
 
 

+ 48 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/service/impl/MerchantUserServiceImpl.java

@@ -16,6 +16,8 @@ import java.math.RoundingMode;
 import java.time.Duration;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * web端商户用户管理服务实现类
@@ -145,6 +147,52 @@ public class MerchantUserServiceImpl implements MerchantUserService {
 
         return success;
     }
+
+    @Override
+    public Map<String, Object> checkPayPassword(String storeUserId, String password) {
+        log.info("MerchantUserServiceImpl.checkPayPassword - 检查支付密码: storeUserId={}, hasPassword={}", 
+                storeUserId, password != null);
+
+        Map<String, Object> returnMap = new HashMap<>();
+        returnMap.put("code", 200);
+
+        // 1. 查询用户信息
+        StoreUser storeUser = storeUserMapper.selectById(storeUserId);
+        
+        // 2. 用户不存在
+        if (storeUser == null) {
+            log.warn("MerchantUserServiceImpl.checkPayPassword - 用户不存在: storeUserId={}", storeUserId);
+            returnMap.put("message", "未查询到用户");
+            returnMap.put("data", "false");
+            return returnMap;
+        }
+
+        // 3. 检查是否设置了支付密码
+        if (storeUser.getPayPassword() == null) {
+            log.info("MerchantUserServiceImpl.checkPayPassword - 用户未设置支付密码: storeUserId={}", storeUserId);
+            returnMap.put("message", "用户未设置支付密码");
+            returnMap.put("data", "false");
+            return returnMap;
+        }
+
+        // 4. 如果提供了密码,验证密码是否正确
+        if (password != null) {
+            if (!password.equals(storeUser.getPayPassword())) {
+                log.warn("MerchantUserServiceImpl.checkPayPassword - 密码错误: storeUserId={}", storeUserId);
+                returnMap.put("message", "密码错误");
+                returnMap.put("data", "false");
+                return returnMap;
+            }
+            log.info("MerchantUserServiceImpl.checkPayPassword - 密码验证成功: storeUserId={}", storeUserId);
+        }
+
+        // 5. 验证通过
+        returnMap.put("data", "true");
+        returnMap.put("message", "用户已设置支付密码");
+        
+        log.info("MerchantUserServiceImpl.checkPayPassword - 检查完成: storeUserId={}, result=true", storeUserId);
+        return returnMap;
+    }
 }
 
 

+ 1 - 0
alien-store-platform/src/main/java/shop/alien/storeplatform/util/LoginUserUtil.java

@@ -245,3 +245,4 @@ public class LoginUserUtil {
 }
 
 
+