From b1935f4af3cac20500846cff0c94d1970eebadc3 Mon Sep 17 00:00:00 2001 From: Yen Date: Tue, 9 May 2023 11:47:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E4=BC=98=E5=85=88=E7=BA=A7?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/util/model/DateFormatString.java | 1 + .../qs/serve/controller/WxSvcLoginApi.java | 15 +++++++++++++ .../controller/TbsCostApplyController.java | 1 - .../service/TbsBudgetApplicationService.java | 22 +++++++++++++++---- .../impl/TbsBudgetConditionServiceImpl.java | 2 +- .../service/impl/TbsCostApplyServiceImpl.java | 2 +- .../qs/serve/modules/wx/api/WxSvcUserApi.java | 14 +++++++----- .../resources/mapper/sys/SysUserMapper.xml | 1 + 8 files changed, 46 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/qs/serve/common/util/model/DateFormatString.java b/src/main/java/com/qs/serve/common/util/model/DateFormatString.java index d7df1b0f..43aa4e4c 100644 --- a/src/main/java/com/qs/serve/common/util/model/DateFormatString.java +++ b/src/main/java/com/qs/serve/common/util/model/DateFormatString.java @@ -12,6 +12,7 @@ import lombok.Getter; public enum DateFormatString { DATE_TIME("yyyy-MM-dd HH:mm:ss"), + DATE_TIME2("yyyy-MM-dd HH:mm:ss.000"), DATE_TIME_NUM("yyyyMMddHHmmss"), DATE_TIME_CN("yyyy年MM月dd日 HH时mm分ss秒"), diff --git a/src/main/java/com/qs/serve/controller/WxSvcLoginApi.java b/src/main/java/com/qs/serve/controller/WxSvcLoginApi.java index 76251e17..f3ce53f6 100644 --- a/src/main/java/com/qs/serve/controller/WxSvcLoginApi.java +++ b/src/main/java/com/qs/serve/controller/WxSvcLoginApi.java @@ -3,6 +3,7 @@ package com.qs.serve.controller; import com.qs.serve.common.framework.redis.RedisService; import com.qs.serve.common.framework.security.model.LoginUser; import com.qs.serve.common.framework.security.model.LoginUserType; +import com.qs.serve.common.framework.security.service.SysUserDetailsServiceImpl; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.consts.RedisCacheKeys; import com.qs.serve.common.model.dto.R; @@ -10,12 +11,17 @@ import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.HttpCode; import com.qs.serve.common.model.enums.InterType; import com.qs.serve.common.util.*; +import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.mapper.SysTenantMapper; +import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.entity.dto.WxLoginUser; import com.qs.serve.modules.wx.service.WxUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @@ -43,8 +49,11 @@ public class WxSvcLoginApi { private final RedisService redisService; + private final SysUserDetailsServiceImpl userDetailsService; + private final SysTenantMapper sysTenantMapper; + private SysUserService sysUserService; /** * 公众号登录 @@ -86,6 +95,12 @@ public class WxSvcLoginApi { tokenMap.put("client",client); //关联 objectMap.put("adminTokenInfo",tokenMap); + //设置 +// SysUser sysUser = sysUserService.getById(wxUser.getSysUserId()); +// UserDetails userDetails = userDetailsService.buildLoginUser(sysUser); +// UsernamePasswordAuthenticationToken authentication = +// new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); +// SecurityContextHolder.getContext().setAuthentication(authentication); return R.ok(objectMap); } diff --git a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java index 2bd43310..2510f9c0 100644 --- a/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java +++ b/src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java @@ -91,7 +91,6 @@ public class TbsCostApplyController { * @param id * @return */ - @GetMapping("preview2") public R viewTable(Long id){ TbsBudgetTableVo result = budgetApplicationService.buildResultTable(id); diff --git a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java index 92005946..57c0124b 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java @@ -481,8 +481,8 @@ public class TbsBudgetApplicationService { String centerType = activityCostItem.getCenterType(); /* 科目条件优先级最高 */ List scheduleItemBudgets = activity.getScheduleItemBudgetList(); - for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { - for (TbsBudget budget : currentItemBudgetList) { + for (TbsBudget budget : currentItemBudgetList) { + for (TbsScheduleItemBudget scheduleItemBudget : scheduleItemBudgets) { if(!budget.getCenterId().equals(centerId) || !budget.getCenterType().equals(centerType) ){ continue; @@ -587,7 +587,7 @@ public class TbsBudgetApplicationService { Set levelPathSet = new LinkedHashSet<>(); levelPathSet.add(levelPath); TbsBudgetCostUtil.buildPaths(levelPath,levelPathSet); - List currentItemBudgetList = new ArrayList<>(); + List budgetConditionList = new ArrayList<>(); for (TbsBudget budget : budgetList) { if(budget.getConditionFlag().equals(1)){ List budgetConditionListByBudget = budget.getBudgetConditionList(); @@ -596,7 +596,7 @@ public class TbsBudgetApplicationService { if(unMatch){ for (TbsBudgetCondition budgetCondition : budgetConditionListByBudget) { if(budgetCondition.getTargetLevelPathIds().contains(conditionString)){ - currentItemBudgetList.add(budget); + budgetConditionList.add(budgetCondition); unMatch = false; break; } @@ -605,6 +605,20 @@ public class TbsBudgetApplicationService { } } } + Collections.sort(budgetConditionList, (o1, o2) -> { + int len1 = o1.getTargetLevelPathIds().split("_").length; + int len2 = o2.getTargetLevelPathIds().split("_").length; + return len2 - len1; + }); + List currentItemBudgetList = new ArrayList<>(); + for (TbsBudgetCondition condition : budgetConditionList) { + for (TbsBudget budget : budgetList) { + if(condition.getBudgetId().equals(budget.getId())){ + currentItemBudgetList.add(budget); + break; + } + } + } return currentItemBudgetList; } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetConditionServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetConditionServiceImpl.java index cd044ff1..0234a810 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetConditionServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsBudgetConditionServiceImpl.java @@ -24,7 +24,7 @@ public class TbsBudgetConditionServiceImpl extends ServiceImpl getByBudgetId(Long budgetId) { LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.le(TbsBudgetCondition::getBudgetId,budgetId); + lqw.eq(TbsBudgetCondition::getBudgetId,budgetId); return this.list(lqw); } } diff --git a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java index 64c896ad..dff2310d 100644 --- a/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java @@ -83,7 +83,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl info(){ WxUser wxUser = wxUserService.getCurrentWxUser(true); if(StringUtils.hasText(wxUser.getSysUserId())){ - LoginUser loginUser = AuthContextUtils.getLoginUser(); - if(loginUser!=null&&loginUser.getUserId()!=null){ - SysUser sysUser = sysUserService.getById(loginUser.getUserId()); - sysUser.setAuthorIds(loginUser.getAuthorIds()); - sysUser.setAuthorList(loginUser.getAuthorList()); + SysUser sysUser = sysUserService.getById(wxUser.getSysUserId()); + if(sysUser!=null){ + LoginUser userDetails = userDetailsService.buildLoginUser(sysUser); + sysUser.setAuthorIds(userDetails.getAuthorIds()); + sysUser.setAuthorList(userDetails.getAuthorList()); SysUserVo sysUserVo = sysUser.toSysUserVo(false); wxUser.setSysUserInfo(sysUserVo); } diff --git a/src/main/resources/mapper/sys/SysUserMapper.xml b/src/main/resources/mapper/sys/SysUserMapper.xml index d755c312..ac80d380 100644 --- a/src/main/resources/mapper/sys/SysUserMapper.xml +++ b/src/main/resources/mapper/sys/SysUserMapper.xml @@ -57,6 +57,7 @@ left join sys_user_role sys_user_role ON sys_user_role.user_id = sys_user.id + and sys_user.del_flag = '0' and sys_user.id = #{query.id} and sys_user.mobile = #{query.mobile} and sys_user.account = #{query.account}