diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java index d14d8ee..4834662 100644 --- a/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/ShopController.java @@ -24,6 +24,7 @@ import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -54,14 +55,19 @@ public class ShopController { @GetMapping("/list") public ResponseDTO> getShopList(@RequestParam(required = false) String corpid, @RequestParam(required = false) Long mode, - @RequestParam(required = false) Long eqMode) { + @RequestParam(required = false) Long eqMode, + @RequestParam(required = false) String modeList) { List shopList; Long modeValue = mode != null ? mode : 4L; + List modeListValue = null; + if (StringUtils.isNotBlank(modeList)) { + modeListValue = Arrays.asList(modeList.split(",")).stream().map(Long::valueOf).collect(Collectors.toList()); + } if (StringUtils.isNotBlank(corpid)) { - shopList = shopApplicationService.getShopListByCorpid(corpid, modeValue, eqMode); + shopList = shopApplicationService.getShopListByCorpid(corpid, modeValue, eqMode, modeListValue); } else { log.warn("getShopList接口未接收到corpid参数,使用默认corpid: {}", WeixinConstants.corpid); - shopList = shopApplicationService.getShopListByCorpid(WeixinConstants.corpid, modeValue, eqMode); + shopList = shopApplicationService.getShopListByCorpid(WeixinConstants.corpid, modeValue, eqMode, modeListValue); } return ResponseDTO.ok(shopList); } diff --git a/agileboot-api/src/main/java/com/agileboot/api/controller/manage/AdminLoginController.java b/agileboot-api/src/main/java/com/agileboot/api/controller/manage/AdminLoginController.java new file mode 100644 index 0000000..7fade55 --- /dev/null +++ b/agileboot-api/src/main/java/com/agileboot/api/controller/manage/AdminLoginController.java @@ -0,0 +1,111 @@ +package com.agileboot.api.controller.manage; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.StrUtil; +import com.agileboot.common.core.dto.ResponseDTO; +import com.agileboot.common.enums.BasicEnumUtil; +import com.agileboot.domain.qywx.userQySys.SysUserQyUserApplicationService; +import com.agileboot.domain.qywx.userQySys.db.SysUserQyUserEntity; +import com.agileboot.domain.system.menu.MenuApplicationService; +import com.agileboot.domain.system.menu.dto.RouterDTO; +import com.agileboot.domain.system.menu.db.SysMenuEntity; +import com.agileboot.domain.system.role.db.SysRoleEntity; +import com.agileboot.domain.system.role.db.SysRoleService; +import com.agileboot.domain.system.user.db.SysUserEntity; +import com.agileboot.domain.system.user.db.SysUserService; +import com.agileboot.infrastructure.user.web.DataScopeEnum; +import com.agileboot.infrastructure.user.web.RoleInfo; +import com.agileboot.infrastructure.user.web.SystemLoginUser; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.SetUtils; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +@RestController +@RequestMapping("/api/manage/admin/login") +@CrossOrigin(origins = "*", allowedHeaders = "*") +@Slf4j +@RequiredArgsConstructor +public class AdminLoginController { + + private final MenuApplicationService menuApplicationService; + private final SysUserService userService; + private final SysRoleService roleService; + private final SysUserQyUserApplicationService sysUserQyUserApplicationService; + + @GetMapping("/getRouters") + public ResponseDTO> getRouters( + @RequestParam Integer qyUserId, + @RequestParam(required = false) String corpid) { + + // 1. 获取用户信息 + SysUserQyUserEntity sysUserQyUserEntity = sysUserQyUserApplicationService.getByQyUserId(qyUserId); + Long userId = sysUserQyUserEntity.getSysUserId(); + SysUserEntity userEntity = userService.getById(userId); + if (userEntity == null) { + log.warn("用户不存在, userId: {}", userId); + return ResponseDTO.ok(List.of()); // 返回空列表而不是错误 + } + + // 2. 检查用户状态 (可选,根据需求决定) + if (userEntity.getStatus() != 1) { // 1表示正常状态 + log.warn("用户状态异常, userId: {}, status: {}", userId, userEntity.getStatus()); + return ResponseDTO.ok(List.of()); + } + + // 4. 构造 SystemLoginUser (isAdmin设置为false) + SystemLoginUser loginUser = new SystemLoginUser( + userId, + false, // isAdmin = false + userEntity.getUsername(), + userEntity.getPassword(), + null, + userEntity.getDeptId() + ); + + // 5. 调用 menuApplicationService.getRouterTree() + List routerTree = menuApplicationService.getRouterTree(loginUser); + + // 6. 返回结果 + return ResponseDTO.ok(routerTree); + } + + @GetMapping("/getPermissions") + public ResponseDTO> getPermissions( + @RequestParam Integer qyUserId, + @RequestParam(required = false) String corpid) { + + SysUserQyUserEntity sysUserQyUserEntity = sysUserQyUserApplicationService.getByQyUserId(qyUserId); + Long userId = sysUserQyUserEntity.getSysUserId(); + SysUserEntity userEntity = userService.getById(userId); + if (userEntity == null) { + log.warn("用户不存在, userId: {}", userId); + return ResponseDTO.ok(List.of()); + } + + if (userEntity.getStatus() != 1) { + log.warn("用户状态异常, userId: {}, status: {}", userId, userEntity.getStatus()); + return ResponseDTO.ok(List.of()); + } + + SystemLoginUser loginUser = new SystemLoginUser( + userId, + false, + userEntity.getUsername(), + userEntity.getPassword(), + null, + userEntity.getDeptId() + ); + + List permissions = menuApplicationService.getPermissions(loginUser); + + return ResponseDTO.ok(permissions); + } +} diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/asset/AssetApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/asset/AssetApplicationService.java index d91ae41..c446fbd 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/asset/AssetApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/asset/AssetApplicationService.java @@ -139,6 +139,8 @@ public class AssetApplicationService { ReturnApprovalModel returnApprovalModel = returnApprovalModelFactory.create(); returnApprovalModel.initBaseEntity(); returnApprovalModel.loadAddCommand(returnApprovalCommand); + // 默认为已校验 + returnApprovalModel.setCodeCheck(1); List approvalGoodsModels = new ArrayList<>(); for (PostAssetApprovalCommand.ApprovalGoodsInfo command : postAssetApprovalCommand.getGoodsInfoList()) { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java index 73c2fcc..e6a2a1b 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/ShopApplicationService.java @@ -56,8 +56,8 @@ public class ShopApplicationService { return new ShopDTO(shopEntity); } - public List getShopListByCorpid(String corpid, Long mode, Long eqMode) { - return shopService.getShopListByCorpid(corpid, mode, eqMode); + public List getShopListByCorpid(String corpid, Long mode, Long eqMode, List modeList) { + return shopService.getShopListByCorpid(corpid, mode, eqMode, modeList); } public void addShop(AddShopCommand command) { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java index f10494e..e9cbbc8 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopService.java @@ -30,5 +30,5 @@ public interface ShopService extends IService { List getDistinctModeList(); - List getShopListByCorpid(String corpid, Long mode, Long eqMode); + List getShopListByCorpid(String corpid, Long mode, Long eqMode, List modeList); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java index 64a71f7..693e2b5 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/shop/shop/db/ShopServiceImpl.java @@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import cn.hutool.json.JSONUtil; +import lombok.extern.slf4j.Slf4j; + import org.springframework.stereotype.Service; import java.util.List; @@ -17,6 +21,7 @@ import java.util.List; * @since 2025-05-09 */ @Service +@Slf4j public class ShopServiceImpl extends ServiceImpl implements ShopService { @Override @@ -55,7 +60,7 @@ public class ShopServiceImpl extends ServiceImpl impleme } @Override - public List getShopListByCorpid(String corpid, Long mode, Long eqMode) { + public List getShopListByCorpid(String corpid, Long mode, Long eqMode, List modeList) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("corpid", corpid) .eq("deleted", 0); @@ -63,6 +68,9 @@ public class ShopServiceImpl extends ServiceImpl impleme queryWrapper.eq("mode", eqMode); } else { queryWrapper.ne("mode", mode); + if (modeList != null && !modeList.isEmpty()) { + queryWrapper.in("mode", modeList); + } } return this.list(queryWrapper); }