Jelajahi Sumber

修复红包审核功能

udream-cxs 4 tahun lalu
induk
melakukan
ab4b79922f

+ 6 - 0
lift-chat-service/src/main/java/cn/com/ty/chat/neety/process/LoginProcessor.java

@@ -5,6 +5,8 @@ import cn.com.ty.chat.neety.support.WebSoketSupport;
 import io.netty.channel.Channel;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.Optional;
+
 /**
  * 用户登录websoket初始化操作类
  * 
@@ -33,6 +35,10 @@ public class LoginProcessor extends WebSoketSupport implements ProcessorInterfac
         client.attr(IP_ADDR).getAndSet(getAddress(client));
 
         //连接成功之后把链接与用户相关联,方便以后推送消息。
+        Optional.ofNullable(userChannel.get(USER_ID)).ifPresent(channel -> {
+            //如果重复登录退出原有登录,替换新的连接。
+            logout(channel);
+        });
         userChannel.put(USER_ID, client);
 
 

+ 1 - 28
lift-ud-service/src/main/java/cn/com/ty/lift/ud/coupon/controller/CouponController.java

@@ -81,35 +81,8 @@ public class CouponController extends BaseController<Coupon, CouponQuery> {
     @ApiOperation(value = "审批 1:通过0:驳回2:待主管审核,3等待财务审核")
     @PostMapping("/examine")
     public RestResponse examine(@RequestBody Coupon neDto) {
-        String userMobile = CurrentUserInfo.userMobile();
-        UserInfoEntity userByMobile = iUserInfoService.getUserByMobile(userMobile);
-        if (userByMobile != null) {
-            List<Role> currentUserRoleList = roleService.getByUserId(userByMobile.getUserId());
-            for (Role role : currentUserRoleList) {
-                if (role.getCode().equals("REGION_DIRECTOR")) {// 区域主管审核
-                    if (neDto.getCheckFalg() == 1) {
-                    	couponService.updateSatus(neDto.getId(), 3, 0);
-                        return RestResponse.success("审批成功,等待财务审核");
-                    } else {
-                        couponService.updateSatus(neDto.getId(), 0, 0);
-                        return RestResponse.success("驳回成功");
-                    }
-                }
-                if (role.getCode().equals("FINANCE")) {// 财务审核
-                    if (neDto.getCheckFalg() == 1) {
-                        couponService.updateSatus(neDto.getId(), 1, 1);
-                        return RestResponse.success("审批通过");
-                    } else {
-                        couponService.updateSatus(neDto.getId(), 0, 0);
-                        return RestResponse.success("驳回成功");
-                    }
-                }
-            }
-        } else {
-            return RestResponse.fail("请重新登录");
-        }
-        return RestResponse.fail("权限不足");
 
+        return couponService.examine(neDto);
     }
 
     // 修改

+ 8 - 0
lift-ud-service/src/main/java/cn/com/ty/lift/ud/coupon/service/ICouponService.java

@@ -3,6 +3,7 @@ package cn.com.ty.lift.ud.coupon.service;
 import java.math.BigDecimal;
 import java.util.List;
 
+import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import cn.com.ty.lift.ud.coupon.mapper.entity.Coupon;
@@ -27,4 +28,11 @@ public interface ICouponService extends IService<Coupon> {
     void updateCouponById(Long id);
     
     Coupon getByCouponId(Long id);
+
+    /**
+     * 审核卡券
+     * @param param
+     * @return
+     */
+    RestResponse examine(Coupon param);
 }

+ 54 - 0
lift-ud-service/src/main/java/cn/com/ty/lift/ud/coupon/service/impl/CouponServiceImpl.java

@@ -2,9 +2,19 @@ package cn.com.ty.lift.ud.coupon.service.impl;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
+import cn.com.ty.lift.ud.exception.CatchException;
 import cn.com.ty.lift.ud.userCoupon.mapper.UserCouponMapper;
 import cn.com.ty.lift.ud.userCoupon.mapper.entity.UserCoupon;
+import cn.com.ty.lift.ud.userInfo.mapper.RoleMapper;
+import cn.com.ty.lift.ud.userInfo.mapper.UserInfoMapper;
+import cn.com.ty.lift.ud.userInfo.mapper.entity.Role;
+import cn.com.ty.lift.ud.userInfo.mapper.entity.UserInfoEntity;
+import cn.com.ty.lift.ud.utils.CurrentUserInfo;
+import cn.com.xwy.boot.web.dto.RestResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -30,6 +40,12 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
     @Autowired
     private UserCouponMapper userCouponMapper;
 
+    @Autowired
+    private UserInfoMapper userInfoMapper;
+
+    @Autowired
+    private RoleMapper roleMapper;
+
     @Override
     public void updateByIds(List<Long> ids, Integer status) {
         for (Long id : ids) {
@@ -112,4 +128,42 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon> impleme
         return couponMapper.getByCouponId(id);
     }
 
+    @Override
+    public RestResponse examine(Coupon param) {
+        String userMobile = CurrentUserInfo.userMobile();
+        try {
+            Coupon couponEntity = Optional.ofNullable(baseMapper.selectById(param.getId())).orElseThrow(() -> new CatchException("该红包不存在"));
+            UserInfoEntity userInfo = Optional.ofNullable(userInfoMapper.getUserByMobile(userMobile)).orElseThrow(() -> new CatchException("该用户不存在"));
+            List<Role> roleList = Optional.ofNullable(roleMapper.getByUserId(userInfo.getUserId())).orElseThrow(() -> new CatchException("该用户不具有审核权限"));
+
+            Map<String, Role> roleMap = roleList.stream().collect(Collectors.toMap(Role::getCode, role -> role));
+
+            //主管审核逻辑
+            if (couponEntity.getCheckFalg() == 2){
+                Optional.ofNullable(roleMap.get("REGION_DIRECTOR")).orElseThrow(() -> new CatchException("该用户不是区域主管,不能审核"));
+                if (param.getCheckFalg() == 1) {
+                    baseMapper.updateSatus(param.getId(), 3, 0);
+                    return RestResponse.success("审批成功,等待财务审核");
+                } else {
+                    baseMapper.updateSatus(param.getId(), 0, 0);
+                    return RestResponse.success("驳回成功");
+                }
+            }
+            //财务审核逻辑
+            if (couponEntity.getCheckFalg() == 3){
+                Optional.ofNullable(roleMap.get("FINANCE")).orElseThrow(() -> new CatchException("该用户不是财务主管,不能审核"));
+                if (param.getCheckFalg() == 1) {
+                    baseMapper.updateSatus(param.getId(), 1, 1);
+                    return RestResponse.success("审批通过");
+                } else {
+                    baseMapper.updateSatus(param.getId(), 0, 0);
+                    return RestResponse.success("驳回成功");
+                }
+            }
+        } catch (CatchException e) {
+            return RestResponse.fail(e.getMessage());
+        }
+
+        return RestResponse.fail("操作异常");
+    }
 }

+ 12 - 0
lift-ud-service/src/main/java/cn/com/ty/lift/ud/exception/CatchException.java

@@ -0,0 +1,12 @@
+package cn.com.ty.lift.ud.exception;
+
+import lombok.Data;
+
+@Data
+public class CatchException extends Exception {
+    private String msg;
+
+    public CatchException(String msg) {
+        super(msg);
+    }
+}