Browse Source

扫码协议

guoshuai 2 weeks ago
parent
commit
8f5f2b4e8c

+ 8 - 0
src/main/java/com/qmrb/system/controller/SysMenuController.java

@@ -1,7 +1,9 @@
 package com.qmrb.system.controller;
 
 import java.util.List;
+import java.util.Set;
 
+import com.qmrb.system.pojo.entity.SysMenu;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -51,6 +53,12 @@ public class SysMenuController {
         return Result.success(menuList);
     }
 
+    @Operation(summary = "登录用户菜单列表",security = {@SecurityRequirement(name = "Authorization")})
+    @GetMapping("/ownerMenus")
+    public Result<?> ownerMenus() {
+        Set<SysMenu> menuList = menuService.ownerMenus();
+        return Result.success(menuList);
+    }
     @Operation(summary = "菜单下拉列表",security = {@SecurityRequirement(name = "Authorization")})
     @GetMapping("/options")
     public Result<?> listMenuOptions() {

+ 2 - 0
src/main/java/com/qmrb/system/mapper/SysMenuMapper.java

@@ -27,4 +27,6 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
      * @return
      */
     Set<String> listRolePerms(Set<String> roles);
+
+    Set<SysMenu> ownerMenus(Set<String> roles);
 }

+ 8 - 0
src/main/java/com/qmrb/system/pojo/entity/SysMenu.java

@@ -97,4 +97,12 @@ public class SysMenu implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
+
+    @TableField(exist = false)
+    private String parentPath;
+    @TableField(exist = false)
+    private String childrenPath;
+
+    @TableField(exist = false)
+    private String lastPath;
 }

+ 3 - 0
src/main/java/com/qmrb/system/pojo/entity/SysRole.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonInclude;
 
+import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 /**
@@ -57,6 +58,8 @@ public class SysRole implements Serializable {
      */
     private Integer dataScope;
     
+    private String defaultPath;
+    
     @TableField(fill = FieldFill.INSERT)
     @JsonInclude(value = JsonInclude.Include.NON_NULL)
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 3 - 0
src/main/java/com/qmrb/system/pojo/form/RoleForm.java

@@ -30,4 +30,7 @@ public class RoleForm {
     @Schema(description="数据权限")
     private Integer dataScope;
 
+    @Schema(description="默认路由")
+    private String defaultPath;
+
 }

+ 3 - 0
src/main/java/com/qmrb/system/pojo/vo/RolePageVO.java

@@ -30,4 +30,7 @@ public class RolePageVO {
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
+
+    @Schema(description="默认路由")
+    private String defaultPath;
 }

+ 3 - 0
src/main/java/com/qmrb/system/pojo/vo/UserInfoVO.java

@@ -36,4 +36,7 @@ public class UserInfoVO {
     // @Schema(description="部门代码")
     // private String deptCode;
 
+    @Schema(description="角色默认路由集合")
+    private Set<String> defaultPaths;
+
 }

+ 2 - 0
src/main/java/com/qmrb/system/service/SysMenuService.java

@@ -82,4 +82,6 @@ public interface SysMenuService extends IService<SysMenu> {
      * @return
      */
     boolean deleteMenu(Long id);
+
+    Set<SysMenu> ownerMenus();
 }

+ 18 - 7
src/main/java/com/qmrb/system/service/impl/CarParkChargingRulesServiceImpl.java

@@ -8,11 +8,8 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import com.qmrb.parking.fee.ParkingFeeCalculator;
-import com.qmrb.system.mapper.BarnRecordMapper;
-import com.qmrb.system.mapper.OrderMapper;
-import com.qmrb.system.pojo.entity.BarnRecord;
-import com.qmrb.system.pojo.entity.CarParkStoredCard;
-import com.qmrb.system.pojo.entity.Order;
+import com.qmrb.system.mapper.*;
+import com.qmrb.system.pojo.entity.*;
 import com.qmrb.system.service.ICarParkStoredCardService;
 import com.qmrb.system.service.OrderService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,13 +18,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qmrb.system.common.enums.StatusEnum;
 import com.qmrb.system.pojo.vo.Option;
 import com.qmrb.system.converter.CarParkChargingRulesConverter;
-import com.qmrb.system.pojo.entity.CarParkChargingRules;
 import com.qmrb.system.pojo.form.CarParkChargingRulesForm;
 import com.qmrb.system.pojo.vo.CarParkChargingRulesVO;
 import com.qmrb.system.pojo.query.CarParkChargingRulesQuery;
-import com.qmrb.system.mapper.CarParkChargingRulesMapper;
 import com.qmrb.system.service.ICarParkChargingRulesService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import cn.hutool.core.collection.CollectionUtil;
@@ -58,6 +54,13 @@ public class CarParkChargingRulesServiceImpl extends ServiceImpl<CarParkCharging
 	@Autowired
 	private OrderMapper orderMapper;
 	
+	@Autowired
+	private CouponMapper couponMapper;
+	
+	//是否开启抵扣
+	@Value("${deductionSwitch}")
+	private Boolean deductionSwitch;
+	
 
 	/**分页查询
 	 * */
@@ -138,6 +141,14 @@ public class CarParkChargingRulesServiceImpl extends ServiceImpl<CarParkCharging
 		// 获取所有订单
 		List<Order> orderList = orderMapper.selectList(new LambdaQueryWrapper<Order>().eq(Order::getGoodId, recordId).eq(Order::getPayStatus,1)); //查询已支付订单
 
+		
+		// 根据停车记录获取拥有的优惠券
+		if(deductionSwitch){
+			List<Coupon> coupons = couponMapper.selectList(new LambdaQueryWrapper<Coupon>().eq(Coupon::getGoodsId, recordId));
+			if(CollectionUtil.isNotEmpty(coupons)){
+				
+			}
+		}
 		// 示例计费规则
 		ParkingFeeCalculator.FeeRule feeRule = new ParkingFeeCalculator.FeeRule();
 		feeRule.freeDurationMinutes = carParkChargingRules.getFreeTime();//免费时长

+ 14 - 0
src/main/java/com/qmrb/system/service/impl/SysMenuServiceImpl.java

@@ -10,6 +10,7 @@ import com.qmrb.system.common.constant.SystemConstants;
 import com.qmrb.system.common.enums.MenuTypeEnum;
 import com.qmrb.system.common.enums.StatusEnum;
 import com.qmrb.system.converter.MenuConverter;
+import com.qmrb.system.framework.security.util.SecurityUtils;
 import com.qmrb.system.mapper.SysMenuMapper;
 import com.qmrb.system.pojo.bo.RouteBO;
 import com.qmrb.system.pojo.entity.SysMenu;
@@ -208,6 +209,19 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
         return true;
     }
 
+    @Override
+    public Set<SysMenu> ownerMenus() {
+        Set<SysMenu> sysMenus = baseMapper.ownerMenus(SecurityUtils.getRoles());
+        if(CollectionUtil.isNotEmpty(sysMenus)){
+            sysMenus = sysMenus.stream().map(item->{
+                String lastPath = item.getChildrenPath().startsWith("/") ? item.getChildrenPath() : (item.getParentPath() +"/" + item.getChildrenPath());
+                item.setLastPath(lastPath);
+                return item;
+            }).collect(Collectors.toSet());
+        }
+        return sysMenus;
+    }
+
     /**
      * 递归生成菜单列表
      *

+ 11 - 0
src/main/java/com/qmrb/system/service/impl/SysUserServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmrb.system.mapper.SysUserMapper;
 import com.qmrb.system.pojo.bo.UserAuthInfo;
 import com.qmrb.system.pojo.bo.UserBO;
 import com.qmrb.system.pojo.bo.UserFormBO;
+import com.qmrb.system.pojo.entity.SysRole;
 import com.qmrb.system.pojo.entity.SysUser;
 import com.qmrb.system.pojo.entity.SysUserRole;
 import com.qmrb.system.pojo.form.UserForm;
@@ -263,6 +264,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         Set<String> roles = SecurityUtils.getRoles();
         userInfoVO.setRoles(roles);
 
+        List<SysRole> sysRoles = roleService.list(new LambdaQueryWrapper<SysRole>().in(SysRole::getCode, roles).isNotNull(SysRole::getDefaultPath));
+        HashSet<String> defaultPaths = new HashSet<>();
+        if(CollectionUtil.isNotEmpty(sysRoles)){
+            for (SysRole sysRole : sysRoles) {
+                defaultPaths.add(sysRole.getDefaultPath());
+            }
+        }
+        userInfoVO.setDefaultPaths(defaultPaths);
+
+
         userInfoVO.setPhone(user.getMobile());
         // 用户权限集合
         @SuppressWarnings("unchecked")

+ 3 - 1
src/main/resources/application-dev.yml

@@ -176,4 +176,6 @@ pickCarProducer:
   tags: push
   
   
-default_qrcode_login_url: http://mini.qmrb.net:9990/#/receive-coupon
+default_qrcode_login_url: http://mini.qmrb.net:9990/#/receive-coupon
+# 是否开启抵扣
+deductionSwitch: false

+ 3 - 1
src/main/resources/application-prod.yml

@@ -174,4 +174,6 @@ pickCarProducer:
   tags: push
   
   
-default_qrcode_login_url: http://mini.qmrb.net:9990/#/receive-coupon
+default_qrcode_login_url: http://mini.qmrb.net:9990/#/receive-coupon
+# 是否开启抵扣
+deductionSwitch: false

+ 21 - 0
src/main/resources/mapper/SysMenuMapper.xml

@@ -67,4 +67,25 @@
             </otherwise>
           </choose>
     </select>
+    <select id="ownerMenus" resultType="com.qmrb.system.pojo.entity.SysMenu">
+        SELECT
+        sm.NAME,
+        sm.component,
+        sm2.path as parentPath,
+        sm.path as childrenPath
+        FROM
+        sys_menu sm
+        INNER JOIN sys_role_menu srm ON srm.menu_id = sm.id
+        INNER JOIN sys_role sr ON sr.id = srm.role_id
+        INNER JOIN sys_menu sm2 ON sm.parent_id = sm2.id
+        WHERE
+        sm.type = 1
+        <if test="roles!=null and roles.size()>0">
+            AND sr.`code` IN
+            <foreach collection="roles" item="role" separator="," open="(" close=")">
+                #{role}
+            </foreach>
+        </if>
+
+    </select>
 </mapper>