diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/AuthorizationController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/AuthorizationController.java index 5ba1af9d..7e64291c 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/AuthorizationController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/AuthorizationController.java @@ -59,8 +59,8 @@ public class AuthorizationController { * @return token信息 */ @PostMapping("login") - public CzgResult login(@Validated @RequestBody SysLoginDTO loginDTO) { - return CzgResult.success(authorizationService.login(loginDTO)); + public CzgResult login(@Validated @RequestBody SysLoginDTO loginDTO, @RequestHeader(defaultValue = "WEB") String platformType) { + return CzgResult.success(authorizationService.login(loginDTO, platformType)); } /** diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPagePermissionController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPagePermissionController.java new file mode 100644 index 00000000..32bf9561 --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/ShopPagePermissionController.java @@ -0,0 +1,78 @@ +package com.czg.controller.admin; + +import com.czg.account.dto.pagepath.PagePathPermissionAddDTO; +import com.czg.account.entity.ShopPagePath; +import com.czg.account.entity.ShopStaffPagePermission; +import com.czg.account.service.ShopPagePathService; +import com.czg.account.service.ShopStaffPagePermissionService; +import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; +import com.mybatisflex.core.query.QueryWrapper; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * 收银机页面权限相关 + * @author Administrator + */ +@RestController +@RequestMapping("/admin/shopPagePermission") +public class ShopPagePermissionController { + @Resource + private ShopPagePathService shopPagePathService; + @Resource + private ShopStaffPagePermissionService shopStaffPagePermissionService; + + /** + * 获取所有页面路径 + * @return 页面路径 + */ + @GetMapping + public CzgResult> page() { + return CzgResult.success(shopPagePathService.list()); + } + + /** + * 保存修改权限 + * @return 是否成功 + */ + @PostMapping + public CzgResult add(@RequestBody @Validated PagePathPermissionAddDTO pagePathPermissionAddDTO) { + if (StpKit.USER.isStaff()) { + return CzgResult.failure("员工无权限"); + } + return CzgResult.success(shopStaffPagePermissionService.add(StpKit.USER.getShopId(), pagePathPermissionAddDTO)); + } + + /** + * 获取员工拥有页面路径 + * @param staffId 员工ID + */ + @GetMapping("/detail") + public CzgResult> detail(@RequestParam Long staffId) { + Set pageIdList = shopStaffPagePermissionService.list(new QueryWrapper().eq(ShopStaffPagePermission::getShopId, + StpKit.USER.getShopId()).eq(ShopStaffPagePermission::getStaffId, staffId)).stream().map(ShopStaffPagePermission::getPagePathId).collect(Collectors.toSet()); + if (pageIdList.isEmpty()) { + return CzgResult.success(new ArrayList<>()); + } + return CzgResult.success(shopPagePathService.list(new QueryWrapper().in(ShopPagePath::getId, pageIdList))); + } + + /** + * 获取当前员工已拥有页面路径权限 + */ + @GetMapping("/mine") + public CzgResult> mine() { + Set pageIdList = shopStaffPagePermissionService.list(new QueryWrapper().eq(ShopStaffPagePermission::getShopId, StpKit.USER.getShopId()).eq(ShopStaffPagePermission::getStaffId, StpKit.USER.getLoginIdAsLong())).stream().map(ShopStaffPagePermission::getPagePathId).collect(Collectors.toSet()); + if (pageIdList.isEmpty()) { + return CzgResult.success(new ArrayList<>()); + } + return CzgResult.success(shopPagePathService.list(new QueryWrapper().in(ShopPagePath::getId, pageIdList))); + } +} diff --git a/cash-api/account-server/src/main/resources/application.yml b/cash-api/account-server/src/main/resources/application.yml index 403ca595..7cd6922c 100644 --- a/cash-api/account-server/src/main/resources/application.yml +++ b/cash-api/account-server/src/main/resources/application.yml @@ -1,7 +1,5 @@ server: port: 9100 - servlet: - context-path: /account spring: application: diff --git a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java index 1420a12d..ab2857f5 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java @@ -2,17 +2,17 @@ package com.czg.controller; import com.alibaba.fastjson2.JSONObject; import com.czg.CzgPayUtils; -import com.czg.account.service.MemberPointsService; import com.czg.entity.CzgBaseRespParams; import com.czg.mq.PrintMqListener; import com.czg.order.service.OrderInfoService; -import com.czg.order.service.ShopOrderStatisticService; import com.czg.task.StatisticTask; import com.czg.utils.AssertUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.apache.dubbo.config.annotation.DubboReference; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * @author ww @@ -30,26 +30,18 @@ public class NotifyController { @Resource private StatisticTask statisticTask; - @DubboReference - private MemberPointsService pointsService; - @Resource - private ShopOrderStatisticService shopOrderStatisticService; - - - @GetMapping("/payCallBack") - public String notifyCallBack() { - - shopOrderStatisticService.statistic(); - //JSONObject czg = CzgPayUtils.getCzg(respParams); - //AssertUtil.isNull(czg, "支付回调数据为空"); - //log.info("支付回调数据为:{}", czg); - //orderInfoService.payCallBackOrder(czg.getString("mchOrderNo"), czg); + @RequestMapping("/payCallBack") + public String notifyCallBack(@RequestBody CzgBaseRespParams respParams){ + JSONObject czg = CzgPayUtils.getCzg(respParams); + AssertUtil.isNull(czg, "支付回调数据为空"); + log.info("支付回调数据为:{}", czg); + orderInfoService.payCallBackOrder(czg.getString("mchOrderNo"), czg); return SUCCESS; } @RequestMapping("/refundCallBack") - public String refundCallBack(@RequestBody CzgBaseRespParams respParams) { + public String refundCallBack(@RequestBody CzgBaseRespParams respParams){ JSONObject czg = CzgPayUtils.getCzg(respParams); AssertUtil.isNull(czg, "退款回调数据为空"); log.info("退款回调数据为:{}", czg); @@ -59,7 +51,6 @@ public class NotifyController { @Resource private PrintMqListener printMqListener; - @RequestMapping("/test") public void test(@RequestParam String id) { printMqListener.orderPrint(id); diff --git a/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java b/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java index fef8334c..e387fe68 100644 --- a/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java +++ b/cash-api/order-server/src/main/java/com/czg/task/StatisticTask.java @@ -27,8 +27,8 @@ public class StatisticTask { long start = System.currentTimeMillis(); log.info("定时任务执行,开始统计数据"); shopOrderStatisticService.statistic(); - //shopProdStatisticService.statistic(); - //shopTableOrderStatisticService.statistic(); + shopProdStatisticService.statistic(); + shopTableOrderStatisticService.statistic(); log.info("定时任务执行完毕,耗时:{}ms", start - System.currentTimeMillis()); } } diff --git a/cash-api/order-server/src/main/resources/application.yml b/cash-api/order-server/src/main/resources/application.yml index 516f3d32..aad8910e 100644 --- a/cash-api/order-server/src/main/resources/application.yml +++ b/cash-api/order-server/src/main/resources/application.yml @@ -1,7 +1,5 @@ server: port: 9200 - servlet: - context-path: /order spring: application: diff --git a/cash-api/product-server/src/main/java/com/czg/ProductApplication.java b/cash-api/product-server/src/main/java/com/czg/ProductApplication.java index ad8c9c62..2a249f20 100644 --- a/cash-api/product-server/src/main/java/com/czg/ProductApplication.java +++ b/cash-api/product-server/src/main/java/com/czg/ProductApplication.java @@ -18,7 +18,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; public class ProductApplication { public static void main(String[] args) { - SpringApplication.run(ProductApplication.class, args); } diff --git a/cash-api/product-server/src/main/resources/application.yml b/cash-api/product-server/src/main/resources/application.yml index f6c8d284..b923d51f 100644 --- a/cash-api/product-server/src/main/resources/application.yml +++ b/cash-api/product-server/src/main/resources/application.yml @@ -1,7 +1,5 @@ server: port: 9300 - servlet: - context-path: /product spring: application: diff --git a/cash-api/system-server/src/main/java/com/czg/controller/admin/VersionController.java b/cash-api/system-server/src/main/java/com/czg/controller/admin/VersionController.java index 8eb0d5d0..6e000705 100644 --- a/cash-api/system-server/src/main/java/com/czg/controller/admin/VersionController.java +++ b/cash-api/system-server/src/main/java/com/czg/controller/admin/VersionController.java @@ -71,7 +71,7 @@ public class VersionController { * @return VersionDTO */ @GetMapping("/{source}/{type}") - @SaAdminCheckPermission(value = "version:get", name = "版本获取") +// @SaAdminCheckPermission(value = "version:get", name = "版本获取") public CzgResult getVersionInfo(@PathVariable("source") String source, @PathVariable("type") String type) { return versionService.getVersionInfo(source, type); } diff --git a/cash-api/system-server/src/main/resources/application.yml b/cash-api/system-server/src/main/resources/application.yml index cb8965a5..414d20b9 100644 --- a/cash-api/system-server/src/main/resources/application.yml +++ b/cash-api/system-server/src/main/resources/application.yml @@ -1,7 +1,5 @@ server: port: 9400 - servlet: - context-path: /system spring: application: diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java index cf58f951..c07aac7f 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/config/SaTokenConfigure.java @@ -61,17 +61,15 @@ public class SaTokenConfigure implements WebMvcConfigurer { SaRouter.match("/user/**").notMatch("/user/login", "/user/test", "/user/geo/**", "/user/home/**", "/user/home/**", "/user/dict/**", "/user/openId") .notMatch("/pay/**") - .notMatch("/order/notify/**") - .notMatch("/user/product/**") + .notMatch("/notify/**") .check(r -> MyStpLogic.CLIENT_LOGIC.checkLogin()) .setHit(true) // .match("/**") .notMatch("/user/**") .notMatch("/pay/**") - .notMatch("/order/notify/**") - .notMatch("/account/admin/auth/**") - .notMatch("/user/product/**") - .notMatch("/account/admin/shopMsgPush/subscribe/**") + .notMatch("/notify/**") + .notMatch("/admin/auth/**") + .notMatch("/admin/shopMsgPush/subscribe/**") .check(r -> MyStpLogic.ADMIN_LOGIC.checkLogin()); })).addPathPatterns("/**"); diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopPagePathDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopPagePathDTO.java new file mode 100644 index 00000000..dd798673 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopPagePathDTO.java @@ -0,0 +1,60 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author zs + * @since 2025-04-02 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ShopPagePathDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 名称 + */ + private String name; + + /** + * 页面路径 + */ + private String path; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopStaffPagePermissionDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopStaffPagePermissionDTO.java new file mode 100644 index 00000000..37277b0c --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/ShopStaffPagePermissionDTO.java @@ -0,0 +1,34 @@ + +package com.czg.account.dto; + +import java.io.Serializable; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author zs + * @since 2025-04-02 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ShopStaffPagePermissionDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 店铺id + */ + private Long shopId; + + /** + * 页面路径 + */ + private Long pagePathId; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pagepath/PagePathPermissionAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pagepath/PagePathPermissionAddDTO.java new file mode 100644 index 00000000..ff662d38 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/pagepath/PagePathPermissionAddDTO.java @@ -0,0 +1,18 @@ +package com.czg.account.dto.pagepath; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.util.List; + +/** + * @author Administrator + */ +@Data +public class PagePathPermissionAddDTO { + @NotEmpty(message = "权限id不为空") + private List pagePathIdList; + @NotNull(message = "员工id不为空") + private Long staffId; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffAddDTO.java index 153620cd..9cb31aba 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffAddDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffAddDTO.java @@ -21,6 +21,10 @@ public class ShopStaffAddDTO { * 店铺权限id集合 */ private List shopPermissionIds; + /** + * 页面路径权限 + */ + private List pagePathIdList; /** * 员工姓名 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffEditDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffEditDTO.java index 754f9290..59a09618 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffEditDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/staff/ShopStaffEditDTO.java @@ -19,6 +19,10 @@ public class ShopStaffEditDTO { * 店铺权限id集合 */ private List shopPermissionIds; + /** + * 页面权限 + */ + private List pagePathIdList; /** * 角色id */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPagePath.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPagePath.java new file mode 100644 index 00000000..93bc63d8 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopPagePath.java @@ -0,0 +1,63 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author zs + * @since 2025-04-02 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_page_path") +public class ShopPagePath implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 页面路径 + */ + private String path; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java new file mode 100644 index 00000000..6987e8d1 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/ShopStaffPagePermission.java @@ -0,0 +1,44 @@ +package com.czg.account.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 实体类。 + * + * @author zs + * @since 2025-04-02 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("tb_shop_staff_page_permission") +public class ShopStaffPagePermission implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + @Id(keyType = KeyType.Auto) + private Long id; + /** + * 店铺id + */ + @Id + private Long shopId; + private Long staffId; + + /** + * 页面路径 + */ + private Long pagePathId; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/AuthorizationService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/AuthorizationService.java index 4d5b4b45..14242000 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/AuthorizationService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/AuthorizationService.java @@ -10,5 +10,5 @@ import com.czg.account.vo.LoginVO; public interface AuthorizationService { Object getCaptcha(); - LoginVO login(SysLoginDTO loginDTO); + LoginVO login(SysLoginDTO loginDTO, String platformType); } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPagePathService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPagePathService.java new file mode 100644 index 00000000..8f4d95c9 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopPagePathService.java @@ -0,0 +1,14 @@ +package com.czg.account.service; + +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.ShopPagePath; + +/** + * 服务层。 + * + * @author zs + * @since 2025-04-02 + */ +public interface ShopPagePathService extends IService { + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopStaffPagePermissionService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopStaffPagePermissionService.java new file mode 100644 index 00000000..82e616d7 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/ShopStaffPagePermissionService.java @@ -0,0 +1,17 @@ +package com.czg.account.service; + +import com.czg.account.dto.pagepath.PagePathPermissionAddDTO; +import com.mybatisflex.core.service.IService; +import com.czg.account.entity.ShopStaffPagePermission; + +/** + * 服务层。 + * + * @author zs + * @since 2025-04-02 + */ +public interface ShopStaffPagePermissionService extends IService { + + Boolean add(Long shopId, PagePathPermissionAddDTO pagePathPermissionAddDTO); + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopPagePathMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopPagePathMapper.java new file mode 100644 index 00000000..0fcd57fa --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopPagePathMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopPagePath; + +/** + * 映射层。 + * + * @author zs + * @since 2025-04-02 + */ +public interface ShopPagePathMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopStaffPagePermissionMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopStaffPagePermissionMapper.java new file mode 100644 index 00000000..7621e802 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/ShopStaffPagePermissionMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.account.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.account.entity.ShopStaffPagePermission; + +/** + * 映射层。 + * + * @author zs + * @since 2025-04-02 + */ +public interface ShopStaffPagePermissionMapper extends BaseMapper { + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index 28e5eea4..d56aba81 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -74,7 +74,7 @@ public class AuthorizationServiceImpl implements AuthorizationService { } @Override - public LoginVO login(SysLoginDTO loginDTO) { + public LoginVO login(SysLoginDTO loginDTO, String platType) { Object code = redisService.get(RedisCst.LOGIN_CODE + loginDTO.uuid()); if (!"666666".equals(loginDTO.code()) && (code == null || !code.equals(loginDTO.code().toLowerCase()))) { throw new ApiNotPrintException("验证码错误"); @@ -91,7 +91,7 @@ public class AuthorizationServiceImpl implements AuthorizationService { if (sysUser == null) { throw new ApiNotPrintException("登录账号不存在"); } - if (StatusEnum.DISABLE.value() == sysUser.getStatus()) { + if ("WEB".equals(platType) && StatusEnum.DISABLE.value() == sysUser.getStatus()) { throw new ApiNotPrintException("账户未启用"); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java new file mode 100644 index 00000000..02cf681d --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopPagePathServiceImpl.java @@ -0,0 +1,18 @@ +package com.czg.service.account.service.impl; + +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopPagePath; +import com.czg.account.service.ShopPagePathService; +import com.czg.service.account.mapper.ShopPagePathMapper; +import org.springframework.stereotype.Service; + +/** + * 服务层实现。 + * + * @author zs + * @since 2025-04-02 + */ +@Service +public class ShopPagePathServiceImpl extends ServiceImpl implements ShopPagePathService{ + +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java new file mode 100644 index 00000000..03df7cf6 --- /dev/null +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffPagePermissionServiceImpl.java @@ -0,0 +1,61 @@ +package com.czg.service.account.service.impl; + +import com.czg.account.dto.pagepath.PagePathPermissionAddDTO; +import com.czg.account.entity.ShopPagePath; +import com.czg.account.entity.ShopStaff; +import com.czg.account.service.ShopPagePathService; +import com.czg.exception.ApiNotPrintException; +import com.czg.service.account.mapper.ShopStaffMapper; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.account.entity.ShopStaffPagePermission; +import com.czg.account.service.ShopStaffPagePermissionService; +import com.czg.service.account.mapper.ShopStaffPagePermissionMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; + +/** + * 服务层实现。 + * + * @author zs + * @since 2025-04-02 + */ +@Service +public class ShopStaffPagePermissionServiceImpl extends ServiceImpl implements ShopStaffPagePermissionService{ + @Resource + private ShopPagePathService shopPagePathService; + @Resource + private ShopStaffMapper shopStaffMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean add(Long shopId, PagePathPermissionAddDTO pagePathPermissionAddDTO) { + ShopStaff shopStaff = shopStaffMapper.selectOneByQuery(new QueryWrapper().eq(ShopStaff::getId, pagePathPermissionAddDTO.getStaffId()).eq(ShopStaff::getShopId, shopId)); + if (shopStaff == null) { + throw new ApiNotPrintException("员工不存在"); + } + + long count = shopPagePathService.count(new QueryWrapper().in(ShopPagePath::getId, pagePathPermissionAddDTO.getPagePathIdList())); + if (count != pagePathPermissionAddDTO.getPagePathIdList().size()) { + throw new ApiNotPrintException("存在错误id"); + } + + ArrayList pagePermissions = new ArrayList<>(); + remove(new QueryWrapper().eq(ShopStaffPagePermission::getStaffId, pagePathPermissionAddDTO.getStaffId())); + pagePathPermissionAddDTO.getPagePathIdList().forEach(item -> { + long count1 = count(new QueryWrapper().eq(ShopStaffPagePermission::getStaffId, shopStaff).eq(ShopStaffPagePermission::getPagePathId, item)); + if (count1 > 0) { + return; + } + ShopStaffPagePermission permission = new ShopStaffPagePermission(); + permission.setShopId(shopId); + permission.setPagePathId(item); + permission.setStaffId(pagePathPermissionAddDTO.getStaffId()); + pagePermissions.add(permission); + }); + return saveBatch(pagePermissions); + } +} diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffServiceImpl.java index 4eadbe4c..32517682 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopStaffServiceImpl.java @@ -2,6 +2,7 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; +import com.czg.account.dto.pagepath.PagePathPermissionAddDTO; import com.czg.account.dto.staff.ShopStaffAddDTO; import com.czg.account.dto.staff.ShopStaffEditDTO; import com.czg.account.dto.staff.ShopStaffRemoveDTO; @@ -39,6 +40,8 @@ public class ShopStaffServiceImpl extends ServiceImpl imp if (b) { sysRolesMenusService.updateChain().eq(SysRolesMenus::getRoleId, role.getId()).remove(); return addMenu(role.getId(), roleEditDTO.getMenuIdList()); - } + } throw new ApiNotPrintException("保存失败"); } } diff --git a/cash-service/account-service/src/main/resources/mapper/ShopPagePathMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopPagePathMapper.xml new file mode 100644 index 00000000..bdb16f36 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopPagePathMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopStaffPagePermissionMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopStaffPagePermissionMapper.xml new file mode 100644 index 00000000..648c04c1 --- /dev/null +++ b/cash-service/account-service/src/main/resources/mapper/ShopStaffPagePermissionMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml b/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml index 52c513ff..b908fc82 100644 --- a/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml +++ b/cash-service/account-service/src/main/resources/mapper/ShopUserMapper.xml @@ -56,29 +56,54 @@