From 757ed89c1a364c3b67ed0eccc78ae33219a13122 Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Sat, 6 Apr 2024 16:35:50 +0800
Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20SecKill=E7=AE=A1?=
=?UTF-8?q?=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/atguigu/ssyx/common/CodeGet.java | 4 +-
.../atguigu/ssyx/vo/user/LeaderAddressVo.java | 61 ++++++++-------
.../acl/controller/PermissionController.java | 15 ++++
.../ssyx/acl/mapper/RolePermissionMapper.java | 9 +++
.../ssyx/acl/service/PermissionService.java | 16 ++++
.../acl/service/RolePermissionService.java | 7 ++
.../service/impl/PermissionServiceImpl.java | 54 +++++++++++++
.../impl/RolePermissionServiceImpl.java | 11 +++
service/service-user/pom.xml | 5 ++
.../user/controller/WeiXinApiController.java | 28 +++++++
.../ssyx/user/service/WeiXinApiService.java | 12 +++
.../service/impl/WeiXinApiServiceImpl.java | 78 +++++++++++++++++++
.../module/WeiXinApiServiceModule.java | 26 +++++++
13 files changed, 295 insertions(+), 31 deletions(-)
create mode 100644 service/service-acl/src/main/java/com/atguigu/ssyx/acl/mapper/RolePermissionMapper.java
create mode 100644 service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/RolePermissionService.java
create mode 100644 service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/RolePermissionServiceImpl.java
create mode 100644 service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeiXinApiController.java
create mode 100644 service/service-user/src/main/java/com/atguigu/ssyx/user/service/WeiXinApiService.java
create mode 100644 service/service-user/src/main/java/com/atguigu/ssyx/user/service/impl/WeiXinApiServiceImpl.java
create mode 100644 service/service-user/src/main/java/com/atguigu/ssyx/user/service/module/WeiXinApiServiceModule.java
diff --git a/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java b/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java
index 4119363..0617902 100644
--- a/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java
+++ b/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java
@@ -58,8 +58,8 @@ public class CodeGet {
@NotNull
private static StrategyConfig getStrategyConfig() {
StrategyConfig strategy = new StrategyConfig();
-
- strategy.setInclude("activity_info", "activity_rule", "activity_sku", "coupon_info", "coupon_range", "coupon_use");
+ // TODO 要生成的表
+ strategy.setInclude("seckill", "seckill_sku", "seckill_sku_notice", "sku_info");
strategy.setNaming(NamingStrategy.underline_to_camel);// 数据库表映射到实体的命名策略
strategy.setColumnNaming(NamingStrategy.underline_to_camel);// 数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
diff --git a/model/src/main/java/com/atguigu/ssyx/vo/user/LeaderAddressVo.java b/model/src/main/java/com/atguigu/ssyx/vo/user/LeaderAddressVo.java
index 88697ae..b48ae98 100644
--- a/model/src/main/java/com/atguigu/ssyx/vo/user/LeaderAddressVo.java
+++ b/model/src/main/java/com/atguigu/ssyx/vo/user/LeaderAddressVo.java
@@ -1,9 +1,11 @@
package com.atguigu.ssyx.vo.user;
-import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
+import lombok.NoArgsConstructor;
/**
*
@@ -13,47 +15,48 @@ import lombok.Data;
* @author qy
*/
@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
@ApiModel(description = "用户地址")
public class LeaderAddressVo {
+ @ApiModelProperty(value = "用户id")
+ private Long userId;
- @ApiModelProperty(value = "用户id")
- private Long userId;
+ @ApiModelProperty(value = "团长id")
+ private Long leaderId;
- @ApiModelProperty(value = "团长id")
- private Long leaderId;
+ @ApiModelProperty(value = "团长名称")
+ private String leaderName;
- @ApiModelProperty(value = "团长名称")
- private String leaderName;
+ @ApiModelProperty(value = "团长电话")
+ private String leaderPhone;
- @ApiModelProperty(value = "团长电话")
- private String leaderPhone;
+ @ApiModelProperty(value = "仓库id")
+ private Long wareId;
- @ApiModelProperty(value = "仓库id")
- private Long wareId;
+ @ApiModelProperty(value = "提货点名称")
+ private String takeName;
- @ApiModelProperty(value = "提货点名称")
- private String takeName;
+ @ApiModelProperty(value = "省")
+ private String province;
- @ApiModelProperty(value = "省")
- private String province;
+ @ApiModelProperty(value = "城市")
+ private String city;
- @ApiModelProperty(value = "城市")
- private String city;
+ @ApiModelProperty(value = "区域")
+ private String district;
- @ApiModelProperty(value = "区域")
- private String district;
+ @ApiModelProperty(value = "详细地址")
+ private String detailAddress;
- @ApiModelProperty(value = "详细地址")
- private String detailAddress;
+ @ApiModelProperty(value = "经度")
+ private String longitude;
- @ApiModelProperty(value = "经度")
- private String longitude;
-
- @ApiModelProperty(value = "纬度")
- private String latitude;
-
- @ApiModelProperty(value = "门店照片")
- private String storePath;
+ @ApiModelProperty(value = "纬度")
+ private String latitude;
+ @ApiModelProperty(value = "门店照片")
+ private String storePath;
}
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/controller/PermissionController.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/controller/PermissionController.java
index 6dde174..c408577 100644
--- a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/controller/PermissionController.java
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/controller/PermissionController.java
@@ -46,4 +46,19 @@ public class PermissionController {
permissionService.removeChildById(id);
return Result.success();
}
+
+ @ApiOperation(value = "查询所有菜单和角色分配菜单")
+ @GetMapping("toAssign/{roleId}")
+ public Result> toAssign(@PathVariable Long roleId) {
+ List permissionList = permissionService.findMenuByRoleId(roleId);
+ return Result.success(permissionList);
+ }
+
+ @ApiOperation(value = "查询所有菜单和角色分配菜单")
+ @PostMapping("doAssign")
+ public Result doAssign(@RequestParam Long roleId,
+ @RequestParam List permissions) {
+ permissionService.doAssign(roleId, permissions);
+ return Result.success();
+ }
}
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/mapper/RolePermissionMapper.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/mapper/RolePermissionMapper.java
new file mode 100644
index 0000000..b50e764
--- /dev/null
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/mapper/RolePermissionMapper.java
@@ -0,0 +1,9 @@
+package com.atguigu.ssyx.acl.mapper;
+
+import com.atguigu.ssyx.model.acl.RolePermission;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RolePermissionMapper extends BaseMapper {
+}
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/PermissionService.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/PermissionService.java
index 7cc67b0..feeefab 100644
--- a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/PermissionService.java
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/PermissionService.java
@@ -20,4 +20,20 @@ public interface PermissionService extends IService {
* @param id 删除ID
*/
void removeChildById(Long id);
+
+ /**
+ * 查询所有菜单和角色分配菜单
+ *
+ * @param roleId 角色Id
+ * @return 权限列表
+ */
+ List findMenuByRoleId(Long roleId);
+
+ /**
+ * 查询所有菜单和角色分配菜单
+ *
+ * @param roleId 角色Id
+ * @param permissions 分配权限Id
+ */
+ void doAssign(Long roleId, List permissions);
}
\ No newline at end of file
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/RolePermissionService.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/RolePermissionService.java
new file mode 100644
index 0000000..64dc7f1
--- /dev/null
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/RolePermissionService.java
@@ -0,0 +1,7 @@
+package com.atguigu.ssyx.acl.service;
+
+import com.atguigu.ssyx.model.acl.RolePermission;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface RolePermissionService extends IService {
+}
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/PermissionServiceImpl.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/PermissionServiceImpl.java
index 5239d4e..170f822 100644
--- a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/PermissionServiceImpl.java
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/PermissionServiceImpl.java
@@ -3,19 +3,25 @@ package com.atguigu.ssyx.acl.service.impl;
import com.atguigu.common.utils.PermissionHelper;
import com.atguigu.ssyx.acl.mapper.PermissionMapper;
import com.atguigu.ssyx.acl.service.PermissionService;
+import com.atguigu.ssyx.acl.service.RolePermissionService;
import com.atguigu.ssyx.acl.service.module.PermissionServiceModule;
import com.atguigu.ssyx.model.acl.Permission;
+import com.atguigu.ssyx.model.acl.RolePermission;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
@Service
public class PermissionServiceImpl extends ServiceImpl implements PermissionService {
@Autowired
private PermissionServiceModule permissionServiceModule;
+ @Autowired
+ private RolePermissionService rolePermissionService;
/**
* 获取所有菜单列表
@@ -43,4 +49,52 @@ public class PermissionServiceImpl extends ServiceImpl findMenuByRoleId(Long roleId) {
+ List permissionList = list();
+
+ List rolePermissionList = rolePermissionService.list(
+ Wrappers.lambdaQuery().eq(RolePermission::getRoleId, roleId)
+ );
+
+ List permissionIdList = rolePermissionList.stream().map(RolePermission::getPermissionId).collect(Collectors.toList());
+
+ permissionList.forEach(permission -> {
+ if (permissionIdList.contains(permission.getId())) {
+ permission.setSelect(true);
+ }
+ permission.setSelect(false);
+ });
+
+ return PermissionHelper.buildPermissions(permissionList);
+ }
+
+ /**
+ * 查询所有菜单和角色分配菜单
+ *
+ * @param roleId 角色Id
+ * @param permissions 分配权限Id
+ */
+ @Override
+ public void doAssign(Long roleId, List permissions) {
+ // 先删除之前分配的角色
+ rolePermissionService.remove(Wrappers.lambdaQuery().eq(RolePermission::getRoleId, roleId));
+ ArrayList list = new ArrayList<>();
+
+ permissions.forEach(permissionId -> {
+ RolePermission rolePermission = new RolePermission();
+ rolePermission.setPermissionId(permissionId);
+ rolePermission.setRoleId(roleId);
+ list.add(rolePermission);
+ });
+
+ rolePermissionService.saveBatch(list);
+ }
}
diff --git a/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/RolePermissionServiceImpl.java b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/RolePermissionServiceImpl.java
new file mode 100644
index 0000000..3b04c95
--- /dev/null
+++ b/service/service-acl/src/main/java/com/atguigu/ssyx/acl/service/impl/RolePermissionServiceImpl.java
@@ -0,0 +1,11 @@
+package com.atguigu.ssyx.acl.service.impl;
+
+import com.atguigu.ssyx.acl.mapper.RolePermissionMapper;
+import com.atguigu.ssyx.acl.service.RolePermissionService;
+import com.atguigu.ssyx.model.acl.RolePermission;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RolePermissionServiceImpl extends ServiceImpl implements RolePermissionService {
+}
diff --git a/service/service-user/pom.xml b/service/service-user/pom.xml
index 3af923f..f219b14 100644
--- a/service/service-user/pom.xml
+++ b/service/service-user/pom.xml
@@ -18,6 +18,11 @@
+
+ com.atguigu
+ service-util
+ 1.0-SNAPSHOT
+
com.atguigu
service-product-client
diff --git a/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeiXinApiController.java b/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeiXinApiController.java
new file mode 100644
index 0000000..ecd00fe
--- /dev/null
+++ b/service/service-user/src/main/java/com/atguigu/ssyx/user/controller/WeiXinApiController.java
@@ -0,0 +1,28 @@
+package com.atguigu.ssyx.user.controller;
+
+import com.atguigu.ssyx.common.result.Result;
+import com.atguigu.ssyx.user.service.WeiXinApiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@Api(tags = "用户微信接口")
+@RestController
+@RequestMapping("/api/user/weixin")
+public class WeiXinApiController {
+ @Autowired
+ private WeiXinApiService weChatService;
+
+ @ApiOperation(value = "微信登录获取openid(小程序)")
+ @GetMapping("/wxLogin/{code}")
+ public Result