Kaynağa Gözat

盘古活码拉黑功能

leon 4 yıl önce
ebeveyn
işleme
7ebc550630

+ 2 - 0
src/main/java/com/mokamrp/privates/constant/RedisKey.java

@@ -23,6 +23,8 @@ public class RedisKey {
     public static final String PanPromoteMaxRecord = "pan_promote_max_record:";
     //.盘古活码上限/非上线标记
     public static final String PanPromoteMaxStamp = "pan_promote_max_stamp:";
+    //.盘古黑名单异步入库
+    public static final String PanPromoteBlackUserToMysql = "pan_promote_black_user_to_mysql";
     //.盘古活码详细信息
     public static final String PanPromoteCodeInfo = "pan_promote_code_info";
     //.检测微信环境域名状态第三方登录token

+ 55 - 0
src/main/java/com/mokamrp/privates/controller/pangu/PromoteBlackUserController.java

@@ -0,0 +1,55 @@
+package com.mokamrp.privates.controller.pangu;
+
+import com.mokamrp.privates.constant.HttpStatus;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.help.AjaxResult;
+import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.service.pangu.PromoteBlackUserService;
+import com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import com.mokamrp.privates.controller.BaseController;
+import javax.validation.Valid;
+import java.util.Map;
+import java.util.List;
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 盘古活码黑名单用户 前端控制器
+ * </p>
+ *
+ * @author leon
+ * @since 2021-09-28
+ */
+@RestController
+@RequestMapping("/pangu/promoteBlackUser")
+public class PromoteBlackUserController extends BaseController<PromoteBlackUser> {
+
+    @Autowired
+    public PromoteBlackUserService promoteBlackUserService;
+
+    /*
+     * @fast
+     * 默认生成的控制器所继承的父类中有index/add/edit/del四个基础方法,均为post json请求
+     * 如果需要定制化,需要将BaseController中对应的方法复制到当前控制器,然后进行修改
+     */
+
+    @PostMapping("/list")
+    public Object list(@Valid @RequestBody PostBasePageHandle postBasePageHandle, BindingResult bindingResult){
+        if (bindingResult.hasErrors()) {
+            return AjaxResult.error(HttpStatus.ERROR, bindingResult.getFieldError().getDefaultMessage());
+        }
+        ResHandle<List<PromoteBlackUser>> res = promoteBlackUserService.getList(postBasePageHandle);
+        return AjaxResult.success(res);
+    }
+
+
+}
+

+ 21 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/PromoteBlackUserMapper.java

@@ -0,0 +1,21 @@
+package com.mokamrp.privates.mapper.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.stereotype.Component;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 盘古活码黑名单用户 Mapper 接口
+ * </p>
+ *
+ * @author leon
+ * @since 2021-09-28
+ */
+@Component
+public interface PromoteBlackUserMapper extends BaseMapper<PromoteBlackUser> {
+    public List<PromoteBlackUser> getList(Page<PromoteBlackUser> pageObj);
+}

+ 23 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/PromoteBlackUserMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mokamrp.privates.mapper.pangu.PromoteBlackUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser">
+        <id column="id" property="id" />
+        <result column="promote_id" property="promoteId" />
+        <result column="uuid" property="uuid" />
+        <result column="uin" property="uin" />
+        <result column="union_id" property="unionId" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, promote_id, uuid, uin, union_id, create_at, update_at
+    </sql>
+    <select id="getList" resultType="com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser">
+        SELECT * FROM pan_promote_black_user
+    </select>
+</mapper>

+ 133 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/PromoteBlackUser.java

@@ -0,0 +1,133 @@
+package com.mokamrp.privates.mapper.pangu.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 盘古活码黑名单用户
+ * </p>
+ *
+ * @author leon
+ * @since 2021-09-28
+ */
+@TableName("pan_promote_black_user")
+public class PromoteBlackUser extends Model<PromoteBlackUser> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 活码ID
+     */
+    private Integer promoteId;
+
+    /**
+     * uuid
+     */
+    private String uuid;
+
+    /**
+     * uin码
+     */
+    private String uin;
+
+    /**
+     * union_id
+     */
+    private String unionId;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updateAt;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getPromoteId() {
+        return promoteId;
+    }
+
+    public void setPromoteId(Integer promoteId) {
+        this.promoteId = promoteId;
+    }
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) {
+        this.uuid = uuid;
+    }
+
+    public String getUin() {
+        return uin;
+    }
+
+    public void setUin(String uin) {
+        this.uin = uin;
+    }
+
+    public String getUnionId() {
+        return unionId;
+    }
+
+    public void setUnionId(String unionId) {
+        this.unionId = unionId;
+    }
+
+    public LocalDateTime getCreateAt() {
+        return createAt;
+    }
+
+    public void setCreateAt(LocalDateTime createAt) {
+        this.createAt = createAt;
+    }
+
+    public LocalDateTime getUpdateAt() {
+        return updateAt;
+    }
+
+    public void setUpdateAt(LocalDateTime updateAt) {
+        this.updateAt = updateAt;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "PromoteBlackUser{" +
+        "id=" + id +
+        ", promoteId=" + promoteId +
+        ", uuid=" + uuid +
+        ", uin=" + uin +
+        ", unionId=" + unionId +
+        ", createAt=" + createAt +
+        ", updateAt=" + updateAt +
+        "}";
+    }
+}

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/PromoteCode.java

@@ -76,6 +76,7 @@ public class PromoteCode extends Model<PromoteCode> {
     private Integer custservicePlaybillId;
 
     private Integer hourResumeType;
+    private Integer unusualMax;
 
     private LocalDateTime createAt;
 

+ 1 - 0
src/main/java/com/mokamrp/privates/mapper/pangu/pojo/PromoteCodeVo.java

@@ -106,6 +106,7 @@ public class PromoteCodeVo extends Model<PromoteCodeVo> {
     private String custserviceQrcodeY;
 
     private Integer hourResumeType;
+    private Integer unusualMax;
 
     private LocalDateTime createAt;
 

+ 20 - 0
src/main/java/com/mokamrp/privates/service/pangu/PromoteBlackUserService.java

@@ -0,0 +1,20 @@
+package com.mokamrp.privates.service.pangu;
+
+import com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 盘古活码黑名单用户 服务类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-09-28
+ */
+public interface PromoteBlackUserService extends IService<PromoteBlackUser> {
+    //.@leon 获取数据列表
+    public ResHandle<List<PromoteBlackUser>> getList(PostBasePageHandle handle);
+}

+ 43 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/PromoteBlackUserServiceImpl.java

@@ -0,0 +1,43 @@
+package com.mokamrp.privates.service.pangu.impl;
+
+import com.mokamrp.privates.mapper.pangu.pojo.PromoteBlackUser;
+import com.mokamrp.privates.mapper.pangu.PromoteBlackUserMapper;
+import com.mokamrp.privates.service.pangu.PromoteBlackUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import com.mokamrp.privates.entity.ResHandle;
+import java.util.*;
+
+/**
+ * <p>
+ * 盘古活码黑名单用户 服务实现类
+ * </p>
+ *
+ * @author leon
+ * @since 2021-09-28
+ */
+@Service
+public class PromoteBlackUserServiceImpl extends ServiceImpl<PromoteBlackUserMapper, PromoteBlackUser> implements PromoteBlackUserService {
+
+    @Autowired
+    public PromoteBlackUserMapper promoteBlackUserMapper;
+    /**
+     * 获取数据列表 支持分页
+     * @param handle
+     * @return
+     */
+    public ResHandle<List<PromoteBlackUser>> getList(PostBasePageHandle handle) {
+        Integer pagesize = handle.getPagesize();
+        Integer page = handle.getPage();
+        Page<PromoteBlackUser> pageObj = new Page<PromoteBlackUser>(page, pagesize);
+        List<PromoteBlackUser> list = promoteBlackUserMapper.getList(pageObj);
+        ResHandle<List<PromoteBlackUser>> res = new ResHandle<>();
+        res.setList(list);
+        res.setTotal(pageObj.getTotal());
+        return res;
+    }
+}

+ 55 - 0
src/main/java/com/mokamrp/privates/task/pangu/SyncPromoteBlackUserToMysql.java

@@ -0,0 +1,55 @@
+package com.mokamrp.privates.task.pangu;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.constant.RedisKey;
+import com.mokamrp.privates.mapper.pangu.pojo.*;
+import com.mokamrp.privates.service.pangu.DomainFirstService;
+import com.mokamrp.privates.service.pangu.DomainSecondService;
+import com.mokamrp.privates.service.pangu.PromoteBlackUserService;
+import com.mokamrp.privates.utils.Cmd;
+import com.mokamrp.privates.utils.http.HttpUtils;
+import net.javacrumbs.shedlock.core.SchedulerLock;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Component
+public class SyncPromoteBlackUserToMysql {
+
+    @Autowired
+    public StringRedisTemplate stringRedisTemplate;
+
+    @Autowired
+    public PromoteBlackUserService promoteBlackUserService;
+
+    @Scheduled(cron = "0 */1 * * * ?")
+    @SchedulerLock(name = "pangu:SyncPromoteBlackUserToMysql", lockAtLeastForString = "PT5S", lockAtMostForString = "PT15M")
+    public void execute() {
+        Integer cnt = 1;
+        while (true) {
+            cnt++;
+            if (cnt > 20) {
+                break;
+            }
+            try {
+                Thread.sleep(100);
+                String info = stringRedisTemplate.opsForList().rightPop(RedisKey.PanPromoteBlackUserToMysql);
+                if (info == null || info.isEmpty()) {
+                    continue;
+                }
+                PromoteBlackUser promoteBlackUser = JSON.parseObject(info, PromoteBlackUser.class);
+                promoteBlackUser.setUpdateAt(LocalDateTime.now());
+                promoteBlackUser.setCreateAt(LocalDateTime.now());
+                promoteBlackUserService.save(promoteBlackUser);
+            } catch (InterruptedException ie) {
+                Thread.currentThread().interrupt();
+            }
+        }
+    }
+}

+ 1 - 1
src/test/java/com/mokamrp/AutoMPPangu.java

@@ -48,7 +48,7 @@ public class AutoMPPangu {
 				.setColumnNaming(NamingStrategy.underline_to_camel)
 				.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略,下划线转驼峰命名
 				.setTablePrefix("pan_") //表名前缀
-				.setInclude("pan_promote_max_record");  //生成的表
+				.setInclude("pan_promote_black_user");  //生成的表
 
 		//4. 包名策略配置
 		PackageConfig pkConfig = new PackageConfig();