mg
2022-10-08 df1325b0c100ead300a5a1b99438055d9446a436
添加消息管理功能和生成随机数工具类
4个文件已修改
2个文件已添加
110 ■■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/common/util/RandomNumberGenerator.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/common/util/RandomStringUtil.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/message/Message.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/IMessageServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/common/util/RandomNumberGenerator.java
New file
@@ -0,0 +1,55 @@
package com.ycl.common.util;
import java.util.Random;
public class RandomNumberGenerator {
    /**
     * 这是典型的随机洗牌算法。
     * 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)
     * 算法时间复杂度O(n)
     * @return 随机8为不重复数组
     */
    public static synchronized String generateNumber(int count) {
        String no="";
        //初始化备选数组
        int[] defaultNums = new int[10];
        for (int i = 0; i < defaultNums.length; i++) {
            defaultNums[i] = i;
        }
        Random random = new Random();
        int[] nums = new int[count];
        //默认数组中可以选择的部分长度
        int canBeUsed = 10;
        //填充目标数组
        for (int i = 0; i < nums.length; i++) {
            //将随机选取的数字存入目标数组
            int index = random.nextInt(canBeUsed);
            nums[i] = defaultNums[index];
            //将已用过的数字扔到备选数组最后,并减小可选区域
            swap(index, canBeUsed - 1, defaultNums);
            canBeUsed--;
        }
        if (nums.length>0) {
            for (int i = 0; i < nums.length; i++) {
                no+=nums[i];
            }
        }
        return no;
    }
//    private static final int LENGTH = 6;
    private static void swap(int i, int j, int[] nums) {
        int temp = nums[i];
        nums[i] = nums[j];
        nums[j] = temp;
    }
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(generateNumber(8));
        }
    }
}
ycl-platform/src/main/java/com/ycl/common/util/RandomStringUtil.java
New file
@@ -0,0 +1,31 @@
package com.ycl.common.util;
import java.util.Random;
public class RandomStringUtil {
    public static final String NUMBERS = "0123456789";
    public static final String LOWER_CASE = "abcdefghijklmnopqrstuvwxyz";
    public static final String CAPITAL = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    public static final String ALL = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    /**
     * 生成指定长度的随机字符串
     *
     * @param length
     * @return
     */
    public static String getRandomString(int length, String base) { // length表示生成字符串的长度
        int baseLength = base.length();
        Random random = new Random();
        StringBuffer sb = new StringBuffer("");
        for (int i = 0; i < length; i++) {
            int number = random.nextInt(baseLength);
            sb.append(base.charAt(number));
        }
        return sb.toString();
    }
    public static void main(String[] args) {
        System.out.println(getRandomString(24, RandomStringUtil.ALL));
    }
}
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -22,7 +22,7 @@
 */
@RestController
@RequestMapping("/message")
@Api(tags = "消息")
@Api(tags = "消息管理")
public class MessageController {
    @Autowired
ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -4,7 +4,6 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
@@ -22,14 +21,14 @@
     * 标题
     */
    @ApiModelProperty(value = "标题")
    @NotBlank(message = "标题为空")
    @NotNull(message = "标题为空")
    private String head;
    /**
     * 消息类型
     */
    @ApiModelProperty(value = "消息类型")
    @NotBlank(message = "消息类型为空")
    private Long messageType;
    @NotNull(message = "消息类型为空")
    private Integer messageType;
    /**
     * 消息体
     */
@@ -46,7 +45,7 @@
     * 接收者
     */
    @ApiModelProperty(value = "接收者")
    @NotBlank(message = "接收者为空")
    @NotNull(message = "接收者为空")
    private String targetTo;
    /**
     * 随机码
@@ -57,7 +56,7 @@
     * 发送时间
     */
    @ApiModelProperty(value = "发送时间")
    @NotBlank(message = "发送时间为空")
    @NotNull(message = "发送时间为空")
    private String sendTime;
    /**
     * 状态0-未发布1-已发布
ycl-platform/src/main/java/com/ycl/entity/message/Message.java
@@ -51,7 +51,7 @@
    @TableField("message_type")
    @ApiModelProperty(value = "消息类型")
    @NotBlank(message = "消息类型为空")
    private Long messageType;
    private Integer messageType;
    /**
     * 消息体
@@ -113,7 +113,7 @@
     * 是否查看0-未查看1-已查看
     */
    @TableField("is_view")
    @ApiModelProperty(value = "状态0-未发布1-已发布")
    @ApiModelProperty(value = "是否查看0-未查看1-已查看")
    private Integer isView;
    /**
     * 备注
ycl-platform/src/main/java/com/ycl/service/message/impl/IMessageServiceImpl.java
@@ -1,6 +1,7 @@
package com.ycl.service.message.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.util.RandomNumberGenerator;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
import com.ycl.mapper.message.MessageMapper;
@@ -24,9 +25,15 @@
    public Message sendMessage(MessageParam mssageParam) {
        Message message = new Message();
        BeanUtils.copyProperties(mssageParam, message);
        //生成8位随机数消息编码
        String messageNumber = RandomNumberGenerator.generateNumber(8);
        StringBuilder sb = new StringBuilder("XX");
        sb.append(messageNumber);
        message.setMessageNumber(sb.toString());
        //生成默认参数
        message.setCreateTime(new Date());
        message.setUpdateTime(new Date());
        message.setIsView(0);
        baseMapper.insert(message);
        return message;
    }