Преглед на файлове

fix 拉黑用户;用户关联手机号查询

zoujiajian преди 3 години
родител
ревизия
07122bd567

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/User.java

@@ -56,5 +56,10 @@ public class User extends BaseEntity implements Serializable{
      * 推广id
      */
     private Long popularizeId;
+
+    /**
+     * 用户是否被拉黑 true是
+     */
+    private Boolean isBlack;
 }
 

+ 5 - 1
netflix-dao/src/main/java/com/cyksj/model/manage/views/UserView.java

@@ -18,7 +18,8 @@ import java.util.Date;
 @SearchBean(tables = "user u left join user_distribute_shared usd on usd.user_id = u.id" +
         " left join user_bind_phone up on up.user_id = u.id" +
         " left join channel_popularize cp on cp.id = u.popularize_id" +
-        " left join channel c on c.id = cp.channel_id")
+        " left join channel c on c.id = cp.channel_id",
+where = ":otherPhone:")
 public class UserView {
 
     /**
@@ -108,6 +109,9 @@ public class UserView {
     @DbField("u.created_time")
     private Date createdTime;
 
+    @DbField("u.is_black")
+    private Boolean isBlack;
+
     /**
      * 邀请人名称
      */

+ 3 - 0
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -225,6 +225,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		} else {
 			user = userMapper.selectById(payRequest.getUserId());
 			if (user == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
+			if (user.getIsBlack()) throw BusinessRuntimeException.getInstance("您的账号操作异常,已被拉黑");
 			payOpenId = user.getOpenId();
 			if (goodsDon.getType() == 1) {
 				GroupsRelation relation = null;
@@ -627,6 +628,8 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	public OrderDon renewal(OrderPayRequest payRequest) throws Exception {
 		Long userId = payRequest.getUserId();
 		User user = userMapper.selectById(userId);
+		if (user == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
+		if (user.getIsBlack()) throw BusinessRuntimeException.getInstance("您的账号操作异常,已被拉黑");
 		Long renewSkuId = payRequest.getSkuId();
 		CouponUser couponUser = null;
 		if (StrUtil.isNotBlank(payRequest.getCouponExCode()) || payRequest.getCouponId() != null) {

+ 23 - 9
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsUserController.java

@@ -1,25 +1,25 @@
 package com.cyksj.web.controller.manage;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.UserMapper;
-import com.cyksj.mapper.market.task.UserBindPhoneMapper;
 import com.cyksj.model.entity.GroupsRelation;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.manage.views.UserView;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Optional;
 
 /**
  * @author chan
@@ -39,13 +39,14 @@ public class CmsUserController{
 
     private final UserMapper userMapper;
 
-    private final UserBindPhoneMapper userBindPhoneMapper;
-
-
     @GetMapping("/get")
     @SaCheckPermission("user:view")
-    public Result<SearchResult<UserView>> get(){
-        SearchResult<UserView> search = beanSearcher.search(UserView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+    public Result<SearchResult<UserView>> get(String otherPhone) {
+        MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
+        if (StrUtil.isNotBlank(otherPhone)) {
+            builder.put("otherPhone", String.format("(up.phone like '%s%%' or u.login_phone like '%s%%')", otherPhone, otherPhone));
+        }
+        SearchResult<UserView> search = beanSearcher.search(UserView.class, builder.build());
         search.getDataList().forEach((userView)->{
             userView.setAccountNum(relationMapper.selectCount(Wrappers.lambdaQuery(GroupsRelation.class).eq(GroupsRelation::getUserId,userView.getId())));
             if (userView.getSharedId() != null) {
@@ -60,6 +61,19 @@ public class CmsUserController{
     }
 
 
+    /**
+     * 修改用户的拉黑状态
+     */
+    @PutMapping("/put/black/status/{id}")
+    @SaCheckPermission("user:black")
+    public Result<String> putBlackStatus(@PathVariable Long id) {
+        User user = userMapper.selectById(id);
+        Optional.ofNullable(user).ifPresent(u->{
+            u.setIsBlack(!u.getIsBlack());
+            userMapper.updateById(u);
+        });
+        return GatewayResponse.SUCCESS.newBuilder().toResult();
+    }
 
 
 }