From 779324080bbacd544a48a516ffa0e7dde9794dc1 Mon Sep 17 00:00:00 2001 From: lzq <2495532633@qq.com> Date: Mon, 2 Mar 2026 18:11:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/templates/ts/form_vue.btl | 5 +- .../cst/customer/service/CustomerService.java | 4 +- .../cst/order/service/OrderService.java | 30 ++++++- .../station/controller/StationController.java | 14 ++++ .../controller/StationMemberController.java | 66 ++++++++++++++++ .../cst/station/mapper/StationMapper.java | 4 + .../station/mapper/StationMemberMapper.java | 12 +++ .../pojo/entity/StationMemberEntity.java | 47 +++++++++++ .../station/service/StationMemberService.java | 60 ++++++++++++++ .../cst/station/service/StationService.java | 22 +++++- .../sys/auth/controller/AuthController.java | 7 +- .../sys/auth/pojo/result/MyResult.java | 78 +++++++++++++++++-- .../dispose/sys/auth/service/AuthService.java | 13 +++- .../mapper/cst/order/OrderMapper.xml | 3 + .../mapper/cst/station/StationMapper.xml | 6 ++ .../cst/station/StationMemberMapper.xml | 4 + z-doc/pdma/njzscloud-dispose.pdma | 8 +- 17 files changed, 361 insertions(+), 22 deletions(-) create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationMemberController.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMemberMapper.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/pojo/entity/StationMemberEntity.java create mode 100644 njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationMemberService.java create mode 100644 njzscloud-svr/src/main/resources/mapper/cst/station/StationMemberMapper.xml diff --git a/njzscloud-common/njzscloud-common-gen/src/main/resources/templates/ts/form_vue.btl b/njzscloud-common/njzscloud-common-gen/src/main/resources/templates/ts/form_vue.btl index 7bbb962..45f47bd 100644 --- a/njzscloud-common/njzscloud-common-gen/src/main/resources/templates/ts/form_vue.btl +++ b/njzscloud-common/njzscloud-common-gen/src/main/resources/templates/ts/form_vue.btl @@ -46,7 +46,6 @@ const props = withDefaults(defineProps<{ const formPanelIns = useTemplateRef('formPanel') const status = ref<'add' | 'modify'>('add') const formPanelProps = buildFormPanelProps<${ucc}Types.Search${ucc}Result>({ - title: status.value === 'add' ? '新建${table.comment}' : '修改${table.comment}信息', detailsLoader(id?: string) { if (Strings.isBlank(id)) { status.value = 'add' @@ -77,7 +76,9 @@ const formPanelProps = buildFormPanelProps<${ucc}Types.Search${ucc}Result>({ <%}%> }, }) - +watchEffect(() => { + formPanelProps.title = status.value === 'add' ? '新建${table.comment}' : '修改${table.comment}信息' +}) defineExpose({ open(data?: ${ucc}Types.Search${ucc}Result) { formPanelIns.value?.open(data?.id) diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java index d57efe5..774defc 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/customer/service/CustomerService.java @@ -132,11 +132,11 @@ public class CustomerService extends ServiceImpl Assert.isTrue(identityInfo.isPresent(), () -> Exceptions.exception("目标身份不存在,无法切换")); Long currentCustomerId = myResult.getCurrentCustomerId(); IdentityInfo currentIdentity = myResult.currentIdentity(); - Assert.isTrue(Objects.equals(currentCustomerId, targetCustomerId), () -> Exceptions.exception("已是【{}】身份,无需切换", currentIdentity.getIdentityCategory().getTxt())); + Assert.isFalse(Objects.equals(currentCustomerId, targetCustomerId), () -> Exceptions.exception("已是【{}】身份,无需切换", currentIdentity.getIdentityCategory().getTxt())); myResult.setCurrentCustomerId(targetCustomerId); SecurityUtil.updateUser(myResult); Long userId = myResult.getUserId(); Integer client = myResult.getClient(); - return (MyResult) authService.my(userId, client); + return (MyResult) authService.my(userId, client, currentCustomerId); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java index b23dc32..0d11ffb 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/order/service/OrderService.java @@ -1,6 +1,7 @@ package com.njzscloud.dispose.cst.order.service; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; @@ -34,6 +35,8 @@ import com.njzscloud.dispose.cst.project.pojo.entity.ProjectEntity; import com.njzscloud.dispose.cst.project.service.ProjectService; import com.njzscloud.dispose.cst.station.mapper.StationMapper; import com.njzscloud.dispose.cst.station.pojo.entity.StationEntity; +import com.njzscloud.dispose.cst.station.pojo.result.StationResult; +import com.njzscloud.dispose.cst.station.service.StationService; import com.njzscloud.dispose.cst.truck.mapper.TruckMapper; import com.njzscloud.dispose.cst.truck.pojo.entity.TruckEntity; import com.njzscloud.dispose.finance.constant.ExpenseItemCategory; @@ -80,6 +83,7 @@ public class OrderService extends ServiceImpl { private final StationMapper stationMapper; private final PaymentRecordHelper paymentRecordHelper; private final ProjectService projectService; + private final StationService stationService; @Transactional(rollbackFor = Exception.class) public void add(CreateOrderParam param) { @@ -228,6 +232,27 @@ public class OrderService extends ServiceImpl { String keywords = searchOrderParam.getKeywords(); LocalDateTime orderTimeStart = searchOrderParam.getOrderTimeStart(); LocalDateTime orderTimeEnd = searchOrderParam.getOrderTimeEnd(); + Page page = pageParam.toPage(); + + MyResult myResult = SecurityUtil.loginUser(); + IdentityCategory identityCategory = myResult.currentIdentity().getIdentityCategory(); + Long userId = null; + Long driverIdUserId = null; + Long transOrgId = null; + List stationIds = null; + if (myResult.isXiaoNa() && identityCategory == IdentityCategory.XiaoNa) { + List stationResults = stationService.listAll(); + if (CollUtil.isEmpty(stationResults)) return PageResult.of(page); + stationIds = stationResults.stream().map(StationResult::getId).toList(); + } else if ((myResult.isCaiGou() || myResult.isChanFei()) && (identityCategory == IdentityCategory.CaiGou || identityCategory == IdentityCategory.ChanFei)) { + userId = myResult.getUserId(); + } else if (myResult.isYunShu() && identityCategory == IdentityCategory.YunShu) { + transOrgId = myResult.getCurrentOrgId(); + } else if (myResult.isSiJi() && identityCategory == IdentityCategory.SiJi) { + driverIdUserId = myResult.getUserId(); + } else { + throw Exceptions.exception("无访问权限"); + } QueryWrapper ew = Wrappers.query() .exists("YuYue".equals(orderType), "SELECT 1 FROM cst_order_trans b WHERE b.order_id = a.id AND b.trans_status IN ('DaiPaiDan','DaiJieDan')") @@ -235,6 +260,10 @@ public class OrderService extends ServiceImpl { .exists("LiShi".equals(orderType), "SELECT 1 FROM cst_order_trans b WHERE b.order_id = a.id AND b.trans_status = 'YiWanCheng'") .exists("QuXiao".equals(orderType), "SELECT 1 FROM cst_order_trans b WHERE b.order_id = a.id AND b.trans_status = 'YiQuXiao'") .in("DuanBo".equals(bizType), "a.order_category", OrderCategory.DuanBoChu, OrderCategory.DuanBoRu) + .in(CollUtil.isNotEmpty(stationIds), "a.station_id", stationIds) + .eq(userId != null, "a.user_id", userId) + .eq(transOrgId != null, "a.trans_org_id", transOrgId) + .eq(driverIdUserId != null, "b.driver_user_id", driverIdUserId) .eq("HuiShou".equals(bizType), "a.order_category", OrderCategory.HuiShouYuYue) .eq("XiaoShou".equals(bizType), "a.order_category", OrderCategory.XiaoShouYuYue) .like(StrUtil.isNotBlank(sn), "a.sn", sn) @@ -254,7 +283,6 @@ public class OrderService extends ServiceImpl { .or().like("j.org_name", keywords) .or().like("f.project_name", keywords) ); - Page page = pageParam.toPage(); page.addOrder(OrderItem.desc("a.create_time")); IPage resultPage = baseMapper.paging(page, ew); List results = resultPage.getRecords(); diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationController.java index c360f38..4468f40 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationController.java @@ -12,8 +12,11 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 站点信息 + * * @author ljw */ @Slf4j @@ -57,6 +60,17 @@ public class StationController { public R> paging(PageParam pageParam, StationQueryParam queryParam) { return R.success(stationService.paging(pageParam, queryParam)); } + + + /** + * 查询当前用户的站点 + */ + @GetMapping("/list_all") + public R> listAll() { + return R.success(stationService.listAll()); + } + + } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationMemberController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationMemberController.java new file mode 100644 index 0000000..24189d6 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/controller/StationMemberController.java @@ -0,0 +1,66 @@ +package com.njzscloud.dispose.cst.station.controller; + +import com.njzscloud.common.core.utils.R; +import com.njzscloud.common.mp.support.PageParam; +import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.dispose.cst.station.pojo.entity.StationMemberEntity; +import com.njzscloud.dispose.cst.station.service.StationMemberService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 站点成员 + */ +@Slf4j +@RestController +@RequestMapping("/station_member") +@RequiredArgsConstructor +public class StationMemberController { + private final StationMemberService stationMemberService; + + /** + * 新增 + */ + @PostMapping("/add") + public R add(@RequestBody StationMemberEntity stationMemberEntity) { + stationMemberService.add(stationMemberEntity); + return R.success(); + } + + /** + * 修改 + */ + @PostMapping("/modify") + public R modify(@RequestBody StationMemberEntity stationMemberEntity) { + stationMemberService.modify(stationMemberEntity); + return R.success(); + } + + /** + * 删除 + */ + @PostMapping("/del") + public R del(@RequestBody List ids) { + stationMemberService.del(ids); + return R.success(); + } + + /** + * 详情 + */ + @GetMapping("/detail") + public R detail(@RequestParam("id") Long id) { + return R.success(stationMemberService.detail(id)); + } + + /** + * 分页查询 + */ + @GetMapping("/paging") + public R> paging(PageParam pageParam, StationMemberEntity stationMemberEntity) { + return R.success(stationMemberService.paging(pageParam, stationMemberEntity)); + } +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java index 6ad5955..0cb2d84 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMapper.java @@ -8,6 +8,8 @@ import com.njzscloud.dispose.cst.station.pojo.result.StationResult; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 站点信息 * @author ljw @@ -18,6 +20,8 @@ public interface StationMapper extends BaseMapper { IPage paging(IPage page, @Param("ew") QueryWrapper ew); StationResult detail(@Param("id") Long id); + + List listAll(@Param("ew") QueryWrapper ew); } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMemberMapper.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMemberMapper.java new file mode 100644 index 0000000..fa72e80 --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/mapper/StationMemberMapper.java @@ -0,0 +1,12 @@ +package com.njzscloud.dispose.cst.station.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njzscloud.dispose.cst.station.pojo.entity.StationMemberEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * 站点成员 + */ +@Mapper +public interface StationMemberMapper extends BaseMapper { +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/pojo/entity/StationMemberEntity.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/pojo/entity/StationMemberEntity.java new file mode 100644 index 0000000..be5f88b --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/pojo/entity/StationMemberEntity.java @@ -0,0 +1,47 @@ +package com.njzscloud.dispose.cst.station.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import lombok.experimental.Accessors; + +/** + * 站点成员 + */ +@Getter +@Setter +@ToString +@Accessors(chain = true) +@TableName("cst_station_member") +public class StationMemberEntity { + + /** + * Id + */ + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + /** + * 用户 Id + */ + private Long userId; + + /** + * 客户 Id + */ + private Long customerId; + + /** + * 组织 Id + */ + private Long orgId; + + /** + * 站点 Id + */ + private Long stationId; + +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationMemberService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationMemberService.java new file mode 100644 index 0000000..4104d9e --- /dev/null +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationMemberService.java @@ -0,0 +1,60 @@ +package com.njzscloud.dispose.cst.station.service; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njzscloud.common.mp.support.PageParam; +import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.dispose.cst.station.mapper.StationMemberMapper; +import com.njzscloud.dispose.cst.station.pojo.entity.StationMemberEntity; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 站点成员 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class StationMemberService extends ServiceImpl implements IService { + + /** + * 新增 + */ + public void add(StationMemberEntity stationMemberEntity) { + this.save(stationMemberEntity); + } + + /** + * 修改 + */ + public void modify(StationMemberEntity stationMemberEntity) { + this.updateById(stationMemberEntity); + } + + /** + * 删除 + */ + @Transactional(rollbackFor = Exception.class) + public void del(List ids) { + this.removeBatchByIds(ids); + } + + /** + * 详情 + */ + public StationMemberEntity detail(Long id) { + return this.getById(id); + } + + /** + * 分页查询 + */ + public PageResult paging(PageParam pageParam, StationMemberEntity stationMemberEntity) { + return PageResult.of(this.page(pageParam.toPage(), Wrappers.query(stationMemberEntity))); + } +} diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java index 4a80ef4..2cc3654 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/cst/station/service/StationService.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njzscloud.common.mp.support.PageParam; import com.njzscloud.common.mp.support.PageResult; +import com.njzscloud.common.security.util.SecurityUtil; import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.cst.customer.pojo.param.AddCustomerParam; import com.njzscloud.dispose.cst.customer.pojo.result.AddCustomerResult; @@ -18,6 +19,7 @@ import com.njzscloud.dispose.cst.org.constant.OrgCategory; import com.njzscloud.dispose.cst.org.pojo.param.AddOrgParam; import com.njzscloud.dispose.cst.station.mapper.StationMapper; import com.njzscloud.dispose.cst.station.pojo.entity.StationEntity; +import com.njzscloud.dispose.cst.station.pojo.entity.StationMemberEntity; import com.njzscloud.dispose.cst.station.pojo.param.AddStationParam; import com.njzscloud.dispose.cst.station.pojo.param.ModifyStationParam; import com.njzscloud.dispose.cst.station.pojo.param.StationQueryParam; @@ -27,6 +29,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** * 站点信息 * @@ -38,6 +42,7 @@ import org.springframework.transaction.annotation.Transactional; public class StationService extends ServiceImpl implements IService { private final CustomerService customerService; + private final StationMemberService stationMemberService; @Transactional(rollbackFor = Exception.class) public void add(AddStationParam addStationParam) { @@ -54,9 +59,18 @@ public class StationService extends ServiceImpl im .setOrgCategory(OrgCategory.QiYe) ); AddCustomerResult customerResult = customerService.add(customer); + + Long orgId = customerResult.getOrgId(); StationEntity stationEntity = BeanUtil.copyProperties(addStationParam, StationEntity.class) - .setOrgId(customerResult.getOrgId()); + .setOrgId(orgId); this.save(stationEntity); + + stationMemberService.add(new StationMemberEntity() + .setStationId(stationEntity.getId()) + .setUserId(userId) + .setOrgId(orgId) + .setCustomerId(customerResult.getCustomerId()) + ); } @Transactional(rollbackFor = Exception.class) @@ -86,6 +100,12 @@ public class StationService extends ServiceImpl im return PageResult.of(baseMapper.paging(page, ew)); } + public List listAll() { + Long userId = SecurityUtil.currentUserId(); + List memberEntityList = stationMemberService.list(Wrappers.lambdaQuery(StationMemberEntity.class).eq(StationMemberEntity::getUserId, userId)); + List stationIds = memberEntityList.stream().map(StationMemberEntity::getStationId).toList(); + return baseMapper.listAll(Wrappers.query().in("a.id", stationIds)); + } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/controller/AuthController.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/controller/AuthController.java index 42f4437..5bd4a8a 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/controller/AuthController.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/controller/AuthController.java @@ -5,6 +5,7 @@ import com.njzscloud.common.core.ex.Exceptions; import com.njzscloud.common.core.utils.R; import com.njzscloud.common.security.support.UserDetail; import com.njzscloud.common.security.util.SecurityUtil; +import com.njzscloud.dispose.sys.auth.pojo.result.MyResult; import com.njzscloud.dispose.sys.auth.service.AuthService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -27,12 +28,14 @@ public class AuthController { */ @GetMapping("/my") public R my() { - UserDetail userDetail = SecurityUtil.loginUser(); + MyResult userDetail = SecurityUtil.loginUser(); Long userId = userDetail.getUserId(); Integer client = userDetail.getClient(); Assert.notNull(client, () -> Exceptions.exception("客户端信息错误")); - return R.success(authService.my(userId, client)); + UserDetail my = authService.my(userId, client, userDetail.getCurrentCustomerId()); + + return R.success(my); } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java index 970c56d..3737958 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/pojo/result/MyResult.java @@ -1,8 +1,8 @@ package com.njzscloud.dispose.sys.auth.pojo.result; -import cn.hutool.core.lang.Assert; -import com.njzscloud.common.core.ex.Exceptions; +import com.fasterxml.jackson.annotation.JsonProperty; import com.njzscloud.common.security.support.UserDetail; +import com.njzscloud.dispose.cst.customer.constant.IdentityCategory; import com.njzscloud.dispose.sys.user.constant.Gender; import lombok.Getter; import lombok.Setter; @@ -12,7 +12,8 @@ import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; + +import static com.njzscloud.common.security.contant.Constants.ROLE_ADMIN; @Getter @Setter @@ -20,6 +21,11 @@ import java.util.Optional; public class MyResult extends UserDetail { public static final String ROLE_KANLIAO = "ROLE_KANLIAO"; + public static final String ROLE_XiaoNa = "ROLE_XiaoNa"; + public static final String ROLE_ChanFei = "ROLE_ChanFei"; + public static final String ROLE_YunShu = "ROLE_YunShu"; + public static final String ROLE_CaiGou = "ROLE_CaiGou"; + public static final String ROLE_SiJi = "ROLE_SiJi"; /** * 菜单信息 @@ -77,12 +83,12 @@ public class MyResult extends UserDetail { */ private BigDecimal revenue; + @JsonProperty("currentIdentity") public IdentityInfo currentIdentity() { - Optional identityInfo = identities.stream().filter(it -> Objects.equals(it.getCustomerId(), currentCustomerId)).findFirst(); - - Assert.isTrue(identityInfo.isPresent(), () -> Exceptions.error("无身份信息")); - // noinspection OptionalGetWithoutIsPresent - return identityInfo.get(); + return identities.stream() + .filter(it -> Objects.equals(it.getCustomerId(), currentCustomerId)) + .findFirst() + .orElseGet(IdentityInfo::new); } /** @@ -90,8 +96,64 @@ public class MyResult extends UserDetail { * * @return true/false */ + @JsonProperty("isKanLiao") public boolean isKanLiao() { return this.getRoles().contains(ROLE_KANLIAO); } + @JsonProperty("isXiaoNa") + public boolean isXiaoNa() { + return this.currentIdentity().getIdentityCategory() == IdentityCategory.XiaoNa; + } + + @JsonProperty("isChanFei") + public boolean isChanFei() { + return this.currentIdentity().getIdentityCategory() == IdentityCategory.ChanFei; + } + + @JsonProperty("isCaiGou") + public boolean isCaiGou() { + return this.currentIdentity().getIdentityCategory() == IdentityCategory.CaiGou; + } + + @JsonProperty("isYunShu") + public boolean isYunShu() { + return this.currentIdentity().getIdentityCategory() == IdentityCategory.YunShu; + } + + @JsonProperty("isSiJi") + public boolean isSiJi() { + return this.currentIdentity().getIdentityCategory() == IdentityCategory.SiJi; + } + + @JsonProperty("isAdmin") + public boolean isAdmin() { + return this.getRoles().contains(ROLE_ADMIN); + + } + + @JsonProperty("hasXiaoNa") + public boolean hasXiaoNa() { + return this.getRoles().contains(ROLE_XiaoNa); + } + + @JsonProperty("hasChanFei") + public boolean hasChanFei() { + return this.getRoles().contains(ROLE_ChanFei); + } + + @JsonProperty("hasCaiGou") + public boolean hasCaiGou() { + return this.getRoles().contains(ROLE_CaiGou); + } + + @JsonProperty("hasYunShu") + public boolean hasYunShu() { + return this.getRoles().contains(ROLE_YunShu); + } + + @JsonProperty("hasSiJi") + public boolean hasSiJi() { + return this.getRoles().contains(ROLE_SiJi); + } } diff --git a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java index b01c6f2..fe97889 100644 --- a/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java +++ b/njzscloud-svr/src/main/java/com/njzscloud/dispose/sys/auth/service/AuthService.java @@ -75,20 +75,29 @@ public class AuthService implements IAuthService { return my(userDetail, client); } + public UserDetail my(Long userId, Integer client, Long currentCustomerId) { + UserDetail userDetail = authMapper.selectUser(Wrappers.query().eq("b.id", userId).eq("a.deleted", 0)); + Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); + return my(userDetail, client, currentCustomerId); + } + private UserDetail my(UserDetail userDetail, Integer client) { + return my(userDetail, client, null); + } + + private UserDetail my(UserDetail userDetail, Integer client, Long currentCustomerId) { if (userDetail == null) return null; Long userId = userDetail.getUserId(); Assert.notNull(userDetail, () -> Exceptions.exception("未查询到用户信息")); List menuResources = authMapper.selectUserMenu(userId, client); List endpointResources = authMapper.selectUserEndpoint(userId); List identityInfoList = authMapper.selectUserIdentity(userId); - Long currentCustomerId = null; Long currentOrgId = null; MoneyAccountEntity moneyAccount = moneyAccountMapper.selectOne(Wrappers.lambdaQuery() .eq(MoneyAccountEntity::getUserId, userId) .eq(MoneyAccountEntity::getDeleted, Boolean.FALSE)); - if (CollUtil.isNotEmpty(identityInfoList)) { + if (CollUtil.isNotEmpty(identityInfoList) && currentCustomerId == null) { IdentityInfo identityInfo = identityInfoList.getFirst(); currentCustomerId = identityInfo.getCustomerId(); currentOrgId = identityInfo.getOrgId(); diff --git a/njzscloud-svr/src/main/resources/mapper/cst/order/OrderMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/order/OrderMapper.xml index c30b955..d97a749 100644 --- a/njzscloud-svr/src/main/resources/mapper/cst/order/OrderMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/cst/order/OrderMapper.xml @@ -70,6 +70,9 @@ FROM (SELECT a.id a.create_time FROM (SELECT a.id FROM cst_order a + INNER JOIN cst_order_trans b ON b.order_id = a.id + LEFT JOIN cst_project f ON f.id = a.project_id + INNER JOIN cst_org j ON j.id = a.trans_org_id ${ew.customSqlSegment} diff --git a/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml index f99e4ef..e345b06 100644 --- a/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml +++ b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMapper.xml @@ -74,4 +74,10 @@ WHERE a.id = #{id} + diff --git a/njzscloud-svr/src/main/resources/mapper/cst/station/StationMemberMapper.xml b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMemberMapper.xml new file mode 100644 index 0000000..4ced935 --- /dev/null +++ b/njzscloud-svr/src/main/resources/mapper/cst/station/StationMemberMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/z-doc/pdma/njzscloud-dispose.pdma b/z-doc/pdma/njzscloud-dispose.pdma index ba6165a..8dcc40f 100644 --- a/z-doc/pdma/njzscloud-dispose.pdma +++ b/z-doc/pdma/njzscloud-dispose.pdma @@ -22567,7 +22567,7 @@ "dataLen": "", "numScale": "", "primaryKey": 0, - "notNull": 0, + "notNull": 1, "autoIncrement": 0, "defaultValue": "", "stndDictId": "", @@ -22707,7 +22707,7 @@ "primaryKey": 0, "notNull": 1, "autoIncrement": 0, - "defaultValue": "'XianFu'", + "defaultValue": "'Wu'", "stndDictId": "settlement_way", "stndFieldId": "", "stndDictKey": "settlement_way", @@ -41858,7 +41858,7 @@ "readonly": false, "allowWs": false }, - "updateTime": 1772157612371, - "signature": "1d75ec8e295700be8f58198dab84523e", + "updateTime": 1772414968697, + "signature": "65777342475351a9f31d7b9e1e5d4087", "branchId": "1111" } \ No newline at end of file