From ce7e055adaf6e14a774297c561923e36b3cd2199 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 28 Aug 2025 11:12:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(scenic-account):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=99=AF=E5=8C=BA=E8=B4=A6=E5=8F=B7=E6=BF=80=E6=B4=BB/?= =?UTF-8?q?=E5=81=9C=E7=94=A8=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增激活/停用景区账号的接口和相关逻辑 - 在登录时增加账号激活状态的验证 - 更新数据库表结构,添加 isActive 字段 - 优化 MyBatis 映射文件,支持新功能 --- .../pc/ScenicAccountController.java | 7 ++++++ .../basic/mapper/ScenicAccountMapper.java | 1 + .../pc/scenic/entity/ScenicAccountEntity.java | 1 + .../mobile/impl/AppScenicServiceImpl.java | 3 +++ .../service/pc/ScenicAccountService.java | 2 ++ .../pc/impl/ScenicAccountServiceImpl.java | 5 +++++ .../java/com/ycwl/basic/utils/WxMpUtil.java | 2 +- .../resources/mapper/ScenicAccountMapper.xml | 22 +++++++++++++++---- 8 files changed, 38 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/pc/ScenicAccountController.java b/src/main/java/com/ycwl/basic/controller/pc/ScenicAccountController.java index 53772ed..faa58b5 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/ScenicAccountController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/ScenicAccountController.java @@ -39,6 +39,13 @@ public class ScenicAccountController { return result > 0 ? ApiResponse.success("更新成功") : ApiResponse.fail("更新失败"); } + // 激活/停用景区账号 + @PostMapping("/updateActiveStatus/{id}") + public ApiResponse updateActiveStatus(@PathVariable Long id) { + int result = service.updateActiveStatus(id); + return result > 0 ? ApiResponse.success("操作成功") : ApiResponse.fail("操作失败"); + } + // 更新景区账号 @PostMapping("/update") public ApiResponse updateScenicAccount(@RequestBody ScenicAccountEntity entity) { diff --git a/src/main/java/com/ycwl/basic/mapper/ScenicAccountMapper.java b/src/main/java/com/ycwl/basic/mapper/ScenicAccountMapper.java index a6b7ce4..ecc9e82 100644 --- a/src/main/java/com/ycwl/basic/mapper/ScenicAccountMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/ScenicAccountMapper.java @@ -14,6 +14,7 @@ public interface ScenicAccountMapper { int update(ScenicAccountEntity scenicAccount); int deleteById(Long id); int updateStatus(Long id); + int updateActiveStatus(Long id); int deleteByScenicId(Long scenicId); ScenicAccountEntity findAccountById(String id); diff --git a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java index ade8398..48b043d 100644 --- a/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/scenic/entity/ScenicAccountEntity.java @@ -17,6 +17,7 @@ public class ScenicAccountEntity { private String account; private String password; private Integer status; + private Integer isActive; private Date createTime; private Date updateTime; } diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java index bca2acb..b3ab480 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppScenicServiceImpl.java @@ -90,6 +90,9 @@ public class AppScenicServiceImpl implements AppScenicService { if (scenicAccount.getStatus() == 0) { return ApiResponse.fail("账号已被禁用"); } + if (scenicAccount.getIsActive() == null || scenicAccount.getIsActive() != 1) { + return ApiResponse.fail("账号未激活"); + } if (!scenicAccount.getPassword().equals(scenicLoginReq.getPassword())) { return ApiResponse.fail("密码错误"); } diff --git a/src/main/java/com/ycwl/basic/service/pc/ScenicAccountService.java b/src/main/java/com/ycwl/basic/service/pc/ScenicAccountService.java index a57bb85..dac55b2 100644 --- a/src/main/java/com/ycwl/basic/service/pc/ScenicAccountService.java +++ b/src/main/java/com/ycwl/basic/service/pc/ScenicAccountService.java @@ -17,5 +17,7 @@ public interface ScenicAccountService { int updateStatus(Long id); + int updateActiveStatus(Long id); + ScenicAccountEntity getScenicAccountByAccount(String account); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/ScenicAccountServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/ScenicAccountServiceImpl.java index 7b75912..bdf0194 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/ScenicAccountServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/ScenicAccountServiceImpl.java @@ -72,6 +72,11 @@ public class ScenicAccountServiceImpl implements ScenicAccountService { return mapper.updateStatus(id); } + @Override + public int updateActiveStatus(Long id) { + return mapper.updateActiveStatus(id); + } + @Override public ScenicAccountEntity getScenicAccountByAccount(String account) { ScenicAccountEntity accountEntity = mapper.getByAccount(account); diff --git a/src/main/java/com/ycwl/basic/utils/WxMpUtil.java b/src/main/java/com/ycwl/basic/utils/WxMpUtil.java index b2e6344..5f1d8b9 100644 --- a/src/main/java/com/ycwl/basic/utils/WxMpUtil.java +++ b/src/main/java/com/ycwl/basic/utils/WxMpUtil.java @@ -141,6 +141,6 @@ public class WxMpUtil { } public static void main(String[] args) throws Exception { - generateWXAQRCode("wxe7ff26af70bfc37c", "5252fbbc68513bc77b7cc0052b9f9695", "trial", "pages/home/index?scenicId=3978838215909052416", "dhg_t.jpg"); + generateWXAQRCode("wxe7ff26af70bfc37c", "5252fbbc68513bc77b7cc0052b9f9695", "trial", "pages/home/index?scenicId=3930324797233434624&morphId=22", "zt_p_t.jpg"); } } \ No newline at end of file diff --git a/src/main/resources/mapper/ScenicAccountMapper.xml b/src/main/resources/mapper/ScenicAccountMapper.xml index 01ea7ab..e399976 100644 --- a/src/main/resources/mapper/ScenicAccountMapper.xml +++ b/src/main/resources/mapper/ScenicAccountMapper.xml @@ -2,8 +2,8 @@ - insert into scenic_account(id, is_super, name, phone, account, password, create_time, update_time) - values (#{id}, #{isSuper}, #{name}, #{phone}, #{account}, #{password}, now(), now()) + insert into scenic_account(id, is_super, name, phone, account, password, is_active, create_time, update_time) + values (#{id}, #{isSuper}, #{name}, #{phone}, #{account}, #{password}, #{isActive}, now(), now()) insert into account_scenic(account_id, scenic_id, is_admin) @@ -24,6 +24,9 @@ password = #{password}, + + is_active = #{isActive}, + update_time = now() where id = #{id} @@ -39,6 +42,17 @@ END) where id = #{id} + + update scenic_account + set is_active = (CASE + WHEN is_active = 1 THEN + 0 + WHEN is_active = 0 THEN + 1 + ELSE 1 + END) + where id = #{id} + delete from scenic_account where id = #{id} @@ -53,12 +67,12 @@