瀏覽代碼

小程序
验证码发送
验证码登录正确,错误,超时
藏品展览套系的增删改查
藏品展览套系信息的获取,导出

jj 2 年之前
父節點
當前提交
af8b076f11

+ 1 - 0
pom.xml

@@ -189,6 +189,7 @@
         <module>ruoyi-generator</module>
         <module>ruoyi-common</module>
         <module>ruoyi-post</module>
+        <module>ruoyi-App</module>
     </modules>
     <packaging>pom</packaging>
 

+ 49 - 0
ruoyi-App/pom.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>ruoyi</artifactId>
+        <groupId>com.ruoyi</groupId>
+        <version>3.8.5</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>ruoyi-App</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-common</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.62</version>
+        </dependency>
+
+        <!--    短信服务    -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>dysmsapi20170525</artifactId>
+            <version>2.0.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+
+
+    </dependencies>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+</project>

+ 33 - 0
ruoyi-App/src/main/java/com/ruoyi/app/common/R.java

@@ -0,0 +1,33 @@
+package com.ruoyi.app.common;
+
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Data
+public class R<T> {
+    private Integer code;//编码值1为成功0为失败
+    private String msg;//错误信息
+    private T data;//数据
+    private Map map = new HashMap();//动态数据
+
+    public static <T> R<T> success(T data) {
+        R r = new R();
+        r.code = 1;
+        r.data = data;
+        return r;
+    }
+    public static <T> R<T> error(String message) {
+
+        R r = new R();
+        r.code = 0;
+        r.msg = message;
+        return r;
+    }
+    public R<T> put(String key ,Object value){
+
+        this.map.put(key,value);
+        return this;
+    }
+}

+ 43 - 0
ruoyi-App/src/main/java/com/ruoyi/app/common/SessionContextUtils.java

@@ -0,0 +1,43 @@
+package com.ruoyi.app.common;
+
+import javax.servlet.http.HttpSession;
+import java.util.HashMap;
+
+/**
+ * SessionContext用于获取session
+ * 根据sessionId获取session
+ */
+public class SessionContextUtils {
+    private static SessionContextUtils instance;
+    private HashMap<String, HttpSession> sessionMap;
+
+    private SessionContextUtils() {
+        sessionMap = new HashMap<String,HttpSession>();
+    }
+
+    public static SessionContextUtils getInstance() {
+        if (instance == null) {
+            instance = new SessionContextUtils();
+        }
+        return instance;
+    }
+
+    public synchronized void addSession(HttpSession session) {
+        if (session != null) {
+            sessionMap.put(session.getId(), session);
+        }
+    }
+
+    public synchronized void delSession(HttpSession session) {
+        if (session != null) {
+            sessionMap.remove(session.getId());
+        }
+    }
+
+    public synchronized HttpSession getSession(String sessionID) {
+        if (sessionID == null) {
+            return null;
+        }
+        return sessionMap.get(sessionID);
+    }
+}

+ 28 - 0
ruoyi-App/src/main/java/com/ruoyi/app/common/SessionListener.java

@@ -0,0 +1,28 @@
+package com.ruoyi.app.common;
+
+
+import javax.servlet.annotation.WebListener;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+
+/**
+ * 监听session
+ */ 
+@WebListener
+public class SessionListener implements HttpSessionListener {
+
+    private SessionContextUtils sessionContext= SessionContextUtils.getInstance();
+
+    @Override
+    public void sessionCreated(HttpSessionEvent httpSessionEvent) {
+        HttpSession session = httpSessionEvent.getSession();
+        sessionContext.addSession(session);
+    }
+
+    @Override
+    public void sessionDestroyed(HttpSessionEvent httpSessionEvent) {
+        HttpSession session = httpSessionEvent.getSession();
+        sessionContext.delSession(session);
+    }
+}

+ 146 - 0
ruoyi-App/src/main/java/com/ruoyi/app/domain/PostAppSeries.java

@@ -0,0 +1,146 @@
+package com.ruoyi.app.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+
+/**
+ * 邮贝套系信息;
+ * 
+ * @author huianan
+ * @date 2023-02-11
+ */
+
+public class PostAppSeries extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 套系ID */
+    private Long seriesId;
+
+    /** 套系名称 */
+    @Excel(name = "套系名称")
+    private String seriesName;
+
+    /** 藏品数量 */
+    @Excel(name = "藏品数量")
+    private Long collectionCounts;
+
+    /** 套系状态(0在售 1预售 2已过期) */
+    @Excel(name = "套系状态", readConverterExp = "0=在售,1=预售,2=已过期")
+    private String status;
+
+    /** 套系兑换状态(0可兑换 1不可兑换) */
+    @Excel(name = "套系兑换状态", readConverterExp = "0=可兑换,1=不可兑换")
+    private String exchangeStatus;
+
+    /** 展示时间初始 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "展示时间初始", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date startTime;
+
+    /** 展示时间末端 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "展示时间末端", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date endTime;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    public void setSeriesId(Long seriesId)
+    {
+        this.seriesId = seriesId;
+    }
+
+    public Long getSeriesId()
+    {
+        return seriesId;
+    }
+    public void setSeriesName(String seriesName)
+    {
+        this.seriesName = seriesName;
+    }
+
+    public String getSeriesName()
+    {
+        return seriesName;
+    }
+    public void setCollectionCounts(Long collectionCounts)
+    {
+        this.collectionCounts = collectionCounts;
+    }
+
+    public Long getCollectionCounts()
+    {
+        return collectionCounts;
+    }
+    public void setStatus(String status)
+    {
+        this.status = status;
+    }
+
+    public String getStatus()
+    {
+        return status;
+    }
+    public void setExchangeStatus(String exchangeStatus)
+    {
+        this.exchangeStatus = exchangeStatus;
+    }
+
+    public String getExchangeStatus()
+    {
+        return exchangeStatus;
+    }
+    public void setStartTime(Date startTime)
+    {
+        this.startTime = startTime;
+    }
+
+    public Date getStartTime()
+    {
+        return startTime;
+    }
+    public void setEndTime(Date endTime)
+    {
+        this.endTime = endTime;
+    }
+
+    public Date getEndTime()
+    {
+        return endTime;
+    }
+    public void setDelFlag(String delFlag)
+    {
+        this.delFlag = delFlag;
+    }
+
+    public String getDelFlag()
+    {
+        return delFlag;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+                .append("seriesId", getSeriesId())
+                .append("seriesName", getSeriesName())
+                .append("collectionCounts", getCollectionCounts())
+                .append("status", getStatus())
+                .append("exchangeStatus", getExchangeStatus())
+                .append("startTime", getStartTime())
+                .append("endTime", getEndTime())
+                .append("delFlag", getDelFlag())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("remark", getRemark())
+                .toString();
+    }
+}

+ 66 - 0
ruoyi-App/src/main/java/com/ruoyi/app/mapper/PostAppSeriesMapper.java

@@ -0,0 +1,66 @@
+package com.ruoyi.app.mapper;
+
+import com.ruoyi.app.domain.PostAppSeries;
+import org.apache.ibatis.annotations.Mapper;
+
+
+import java.util.List;
+
+/**
+ * 邮贝套系信息; 
+ * 
+ * @author huianan
+ * @date 2023-02-11
+ */
+@Mapper
+public interface PostAppSeriesMapper
+{
+    /**
+     * 查询邮贝套系信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 邮贝套系信息
+     */
+    public PostAppSeries selectPostSeriesBySeriesId(Long seriesId);
+
+    /**
+     * 查询邮贝套系信息列表
+     *
+     * @param postSeries 邮贝套系信息
+     * @return 邮贝套系信息集合
+     */
+    public List<PostAppSeries> selectPostSeriesList(PostAppSeries postSeries);
+
+    /**
+     * 新增邮贝套系信息
+     *
+     * @param postSeries 邮贝套系信息
+     * @return 结果
+     */
+    public int insertPostSeries(PostAppSeries postSeries);
+
+    /**
+     * 修改邮贝套系信息
+     *
+     * @param postSeries 邮贝套系信息
+     * @return 结果
+     */
+    public int updatePostSeries(PostAppSeries postSeries);
+
+    /**
+     * 删除邮贝套系信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 结果
+     */
+    public int deletePostSeriesBySeriesId(Long seriesId);
+
+    /**
+     * 批量删除邮贝套系信息
+     *
+     * @param seriesIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deletePostSeriesBySeriesIds(Long[] seriesIds);
+
+}

+ 10 - 0
ruoyi-App/src/main/java/com/ruoyi/app/service/MSGService.java

@@ -0,0 +1,10 @@
+package com.ruoyi.app.service;
+
+import java.util.Map;
+
+public interface MSGService {
+
+    boolean send(Map map, String phone);
+
+    void coll();
+}

+ 62 - 0
ruoyi-App/src/main/java/com/ruoyi/app/service/PostAppSeriesService.java

@@ -0,0 +1,62 @@
+package com.ruoyi.app.service;
+
+import com.ruoyi.app.domain.PostAppSeries;
+
+import java.util.List;
+
+/**
+ * 邮贝套系信息Service接口
+ *
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+public interface PostAppSeriesService
+{
+    /**
+     * 查询邮贝套系信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 邮贝套系信息
+     */
+    public PostAppSeries selectPostAppSeriesBySeriesId(Long seriesId);
+
+    /**
+     * 查询邮贝套系信息列表
+     *
+     * @param PostAppSeries 邮贝套系信息
+     * @return 邮贝套系信息集合
+     */
+    public List<PostAppSeries> selectPostAppSeriesList(PostAppSeries PostAppSeries);
+
+    /**
+     * 新增邮贝套系信息
+     *
+     * @param PostAppSeries 邮贝套系信息
+     * @return 结果
+     */
+    public int insertPostAppSeries(PostAppSeries PostAppSeries);
+
+    /**
+     * 修改邮贝套系信息
+     *
+     * @param PostAppSeries 邮贝套系信息
+     * @return 结果
+     */
+    public int updatePostAppSeries(PostAppSeries PostAppSeries);
+
+    /**
+     * 批量删除邮贝套系信息
+     *
+     * @param seriesIds 需要删除的邮贝套系信息主键集合
+     * @return 结果
+     */
+    public int deletePostAppSeriesBySeriesIds(Long[] seriesIds);
+
+    /**
+     * 删除邮贝套系信息信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 结果
+     */
+    public int deletePostAppSeriesBySeriesId(Long seriesId);
+}

+ 68 - 0
ruoyi-App/src/main/java/com/ruoyi/app/service/impl/MSGServiceImpl.java

@@ -0,0 +1,68 @@
+package com.ruoyi.app.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyun.dysmsapi20170525.Client;
+import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.teaopenapi.models.Config;
+
+import com.google.gson.Gson;
+import com.ruoyi.app.service.MSGService;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.*;
+
+@Service
+public class MSGServiceImpl implements MSGService {
+
+    @Override
+    public boolean send(Map map, String phone) {
+        if(StringUtils.isEmpty(phone)) return false;
+
+        Config config = new Config()
+                // 您的AccessKey ID
+                .setAccessKeyId("LTAI4G7nRizWr6666RfgSys")
+                // 您的AccessKey Secret
+                .setAccessKeySecret("n9TuOpZP77777kZusepek");
+        // 访问的域名(这个不用变都是这个)
+        config.endpoint = "dysmsapi.aliyuncs.com";
+        Client client = null;
+        try {
+            client = new Client(config);
+            SendSmsRequest request = new SendSmsRequest();
+
+            request.setSignName("阿里云短信测试");//签名名称
+            request.setTemplateCode("SMS_154950000");//模版Code
+            request.setPhoneNumbers("1991470000");//电话号码
+            //这里的参数是json格式的字符串
+            request.setTemplateParam(JSONObject.toJSONString(map));
+            SendSmsResponse response = client.sendSms(request);
+            System.out.println("发送成功:"+new Gson().toJson(response));
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    //控制只能输入数字
+    @Override
+    public void coll(){
+        Scanner i_Scanner = new Scanner(System.in);
+        System.out.print("请输入数字: ");
+        while (true) {
+            try {
+                String str = i_Scanner.next();
+                int a = Integer.valueOf(str);
+                return;
+            } catch (Exception e) {
+                System.out.println("ERROR!");
+                System.out.println("请重新输入:");
+            }
+        }
+    }
+}
+
+

+ 93 - 0
ruoyi-App/src/main/java/com/ruoyi/app/service/impl/PostAppSeriesServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.app.service.impl;
+
+
+import com.ruoyi.app.domain.PostAppSeries;
+import com.ruoyi.app.mapper.PostAppSeriesMapper;
+import com.ruoyi.app.service.PostAppSeriesService;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PostAppSeriesServiceImpl implements PostAppSeriesService {
+
+    @Autowired
+    private PostAppSeriesMapper PostAppSeriesMapper;
+
+    /**
+     * 查询邮贝套系信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 邮贝套系信息
+     */
+    @Override
+    public PostAppSeries selectPostAppSeriesBySeriesId(Long seriesId)
+    {
+        return PostAppSeriesMapper.selectPostSeriesBySeriesId(seriesId);
+    }
+
+    /**
+     * 查询邮贝套系信息列表
+     *
+     * @param
+     * @return 邮贝套系信息
+     */
+    @Override
+    public List<PostAppSeries> selectPostAppSeriesList(PostAppSeries postAppSeries)
+    {
+        return PostAppSeriesMapper.selectPostSeriesList(postAppSeries);
+    }
+
+    /**
+     * 新增邮贝套系信息
+     *
+     * @param PostAppSeries 邮贝套系信息
+     * @return 结果
+     */
+    @Override
+    public int insertPostAppSeries(PostAppSeries PostAppSeries)
+    {
+        PostAppSeries.setCreateTime(DateUtils.getNowDate());
+        return PostAppSeriesMapper.insertPostSeries(PostAppSeries);
+    }
+
+    /**
+     * 修改邮贝套系信息
+     *
+     * @param
+     * @return 结果
+     */
+    @Override
+    public int updatePostAppSeries(PostAppSeries postAppSeries)
+    {
+        postAppSeries.setUpdateTime(DateUtils.getNowDate());
+        return PostAppSeriesMapper.updatePostSeries(postAppSeries);
+    }
+
+    /**
+     * 批量删除邮贝套系信息
+     *
+     * @param seriesIds 需要删除的邮贝套系信息主键
+     * @return 结果
+     */
+    @Override
+    public int deletePostAppSeriesBySeriesIds(Long[] seriesIds)
+    {
+        return PostAppSeriesMapper.deletePostSeriesBySeriesIds(seriesIds);
+    }
+
+    /**
+     * 删除邮贝套系信息信息
+     *
+     * @param seriesId 邮贝套系信息主键
+     * @return 结果
+     */
+    @Override
+    public int deletePostAppSeriesBySeriesId(Long seriesId)
+    {
+        return PostAppSeriesMapper.deletePostSeriesBySeriesId(seriesId);
+    }
+
+}

+ 62 - 0
ruoyi-App/src/main/java/com/ruoyi/app/utils/RandomUtil.java

@@ -0,0 +1,62 @@
+package com.ruoyi.app.utils;
+
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 获取随机数
+ *
+ */
+public class RandomUtil {
+
+    private static final Random random = new Random();
+
+    //private static final DecimalFormat fourdf = new DecimalFormat("0000");
+
+    private static final DecimalFormat sixdf = new DecimalFormat("000000");
+
+    /*public static String getFourBitRandom() {
+        return fourdf.format(random.nextInt(10000));
+    }*/
+
+    public static String getSixBitRandom() {
+        return sixdf.format(random.nextInt(1000000));
+    }
+
+    /**
+     * 给定数组,抽取n个数据
+     * @param list
+     * @param n
+     * @return
+     */
+    public static ArrayList getRandom(List list, int n) {
+
+        Random random = new Random();
+
+        HashMap<Object, Object> hashMap = new HashMap<Object, Object>();
+
+        // 生成随机数字并存入HashMap
+        for (int i = 0; i < list.size(); i++) {
+
+            int number = random.nextInt(100) + 1;
+
+            hashMap.put(number, i);
+        }
+
+        // 从HashMap导入数组
+        Object[] robjs = hashMap.values().toArray();
+
+        ArrayList r = new ArrayList();
+
+        // 遍历数组并打印数据
+        for (int i = 0; i < n; i++) {
+            r.add(list.get((int) robjs[i]));
+            System.out.print(list.get((int) robjs[i]) + "\t");
+        }
+        System.out.print("\n");
+        return r;
+    }
+}

+ 124 - 0
ruoyi-App/src/main/resources/mapper/PostAppSeriesMapper.xml

@@ -0,0 +1,124 @@
+<?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.ruoyi.app.mapper.PostAppSeriesMapper">
+
+    <resultMap type="PostSeries" id="PostSeriesResult">
+        <result property="seriesId" column="series_id"/>
+        <result property="seriesName" column="series_name"/>
+        <result property="collectionCounts" column="collection_counts"/>
+        <result property="status" column="status"/>
+        <result property="exchangeStatus" column="exchange_status"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="delFlag" column="del_flag"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <sql id="selectPostSeriesVo">
+        select series_id,
+               series_name,
+               collection_counts,
+               status,
+               exchange_status,
+               start_time,
+               end_time,
+               del_flag
+        from post_series
+        where del_flag = '0'
+    </sql>
+    <!--查询套系列表-->
+    <select id="selectPostSeriesList" parameterType="PostAppSeries" resultMap="PostSeriesResult">
+        <include refid="selectPostSeriesVo"/>
+        <where>
+            <if test="seriesName != null  and seriesName != ''">and series_name like concat('%', #{seriesName}, '%')
+            </if>
+            <if test="collectionCounts != null ">and collection_counts = #{collectionCounts}</if>
+            <if test="status != null  and status != ''">and status = #{status}</if>
+            <if test="exchangeStatus != null  and exchangeStatus != ''">and exchange_status = #{exchangeStatus}</if>
+            <if test="startTime != null ">and start_time = #{startTime}</if>
+            <if test="endTime != null ">and end_time = #{endTime}</if>
+        </where>
+    </select>
+    <!--套系ID查询-->
+    <select id="selectPostSeriesBySeriesId" parameterType="Long" resultMap="PostSeriesResult">
+        <include refid="selectPostSeriesVo"/>
+        and series_id = #{seriesId}
+    </select>
+    <!--添加套系信息-->
+    <insert id="insertPostSeries" parameterType="PostSeries" useGeneratedKeys="true" keyProperty="seriesId">
+        insert into post_series
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="seriesName != null and seriesName != ''">series_name,</if>
+            <if test="collectionCounts != null">collection_counts,</if>
+            <if test="status != null and status != ''">status,</if>
+            <if test="exchangeStatus != null and exchangeStatus != ''">exchange_status,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="seriesName != null and seriesName != ''">#{seriesName},</if>
+            <if test="collectionCounts != null">#{collectionCounts},</if>
+            <if test="status != null and status != ''">#{status},</if>
+            <if test="exchangeStatus != null and exchangeStatus != ''">#{exchangeStatus},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+    <!--修改套系信息-->
+    <update id="updatePostSeries" parameterType="PostSeries">
+        update post_series
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="seriesName != null and seriesName != ''">series_name = #{seriesName},</if>
+            <if test="collectionCounts != null">collection_counts = #{collectionCounts},</if>
+            <if test="status != null and status != ''">status = #{status},</if>
+            <if test="exchangeStatus != null and exchangeStatus != ''">exchange_status = #{exchangeStatus},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where series_id = #{seriesId}
+    </update>
+    <!--删除套系ID-->
+    <update id="deletePostSeriesBySeriesId" parameterType="Long">
+        update post_series
+        set del_flag = '1'
+        where series_id = #{seriesId}
+    </update>
+    <!--批量删除-->
+    <update id="deletePostSeriesBySeriesIds" parameterType="String">
+        update post_series set del_flag = '1' where series_id in
+        <foreach item="seriesId" collection="array" open="(" separator="," close=")">
+            #{seriesId}
+        </foreach>
+    </update>
+    <!-- 判断套系名字唯一   -->
+    <select id="checkSeriesNameUnique" parameterType="String" resultMap="PostSeriesResult">
+        select series_id, series_name
+        from post_series
+        where series_name = #{seriesName} limit 1
+    </select>
+</mapper>

+ 93 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/MSGController.java

@@ -0,0 +1,93 @@
+package com.ruoyi.web.controller.app;
+
+
+import com.aliyuncs.utils.IOUtils;
+import com.ruoyi.app.common.R;
+import com.ruoyi.app.common.SessionContextUtils;
+import com.ruoyi.app.service.MSGService;
+import com.ruoyi.app.utils.RandomUtil;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@RestController
+@RequestMapping("JWTTest")
+public class MSGController {
+
+    @Autowired
+    private MSGService jwtService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Autowired
+    private HttpServletRequest request;
+
+    @Autowired
+    private HttpServletResponse response;
+
+    @GetMapping("send/{phone}/interAspect")
+    public void sendMsm(@PathVariable String phone,HttpSession session) throws IOException {
+        //生成随机数
+        String code = RandomUtil.getSixBitRandom();
+
+        Map map = new HashMap();
+        map.put("code",code);
+        request.getSession().setAttribute("code",code);
+        //System.out.println(session.getId());
+        request.getSession().setAttribute("sessionId",session.getId());
+
+        ServletOutputStream outputStream = response.getOutputStream();
+
+        outputStream.print(code);
+
+        IOUtils.closeQuietly(outputStream);
+        //利用redisTemplate设置验证码过期时间
+        redisTemplate.opsForValue().set(phone,code,60, TimeUnit.MINUTES);
+        boolean b = jwtService.send(map,phone);
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    public R login(String code, HttpServletRequest request) {
+        Map<String, Object> data = new HashMap<>();
+        //获取请求头中的sessionId,然后根据sessionId来获取session
+        //String sessionId = request.getHeader("sessionId");
+        String sessionId = request.getSession().getId();
+        //System.out.println(sessionId);
+        SessionContextUtils sessionContext= SessionContextUtils.getInstance();
+        HttpSession session = sessionContext.getSession(sessionId);
+        // 验证码
+        Object verCode = request.getSession().getAttribute("code");
+        System.out.println(verCode);
+
+        if (null == verCode) {
+            data.put("msg", "验证码已失效,请重新输入");
+            data.put("type",1);
+            return R.error(String.valueOf(data));
+        }
+
+        String verCodeStr = verCode.toString();
+        if (verCodeStr == null || StringUtils.isEmpty(code) || !verCodeStr.equalsIgnoreCase(code)) {
+            data.put("msg", "验证码错误");
+            //data.put("type", 3);
+            return R.error(String.valueOf(data));
+        }
+        else {
+            //验证成功,删除存储的验证码
+            request.getSession().removeAttribute("code");
+        }
+
+        return R.success("登录成功");
+    }
+}
+

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/app/PostAppSeriesController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.app;
+
+import com.ruoyi.app.domain.PostAppSeries;
+import com.ruoyi.app.service.PostAppSeriesService;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 邮贝套系信息Controller
+ * 
+ * @author ruoyi
+ * @date 2023-03-10
+ */
+@RestController
+@RequestMapping("/system/series")
+public class PostAppSeriesController extends BaseController
+{
+    @Resource
+    private PostAppSeriesService PostAppSeriesService;
+
+    /**
+     * 查询邮贝套系信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(PostAppSeries PostAppSeries)
+    {
+        startPage();
+        List<PostAppSeries> list = PostAppSeriesService.selectPostAppSeriesList(PostAppSeries);
+        return getDataTable(list);
+        /*startPage();
+        List<PostAppSeries> list = PostAppSeriesService.selectPostAppSeriesList(PostAppSeries);
+        return getDataTable(list);*/
+//      return PostAppSeriesMapper.selectPostAppSeriesList(PostAppSeries);
+    }
+
+
+    /**
+     * 导出邮贝套系信息列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:export')")
+    @Log(title = "邮贝套系信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, PostAppSeries PostAppSeries)
+    {
+        List<PostAppSeries> list = PostAppSeriesService.selectPostAppSeriesList(PostAppSeries);
+        ExcelUtil<PostAppSeries> util = new ExcelUtil<PostAppSeries>(PostAppSeries.class);
+        util.exportExcel(response, list, "邮贝套系信息数据");
+    }
+
+    /**
+     * 获取邮贝套系信息详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:query')")
+    @GetMapping(value = "/{seriesId}")
+    public AjaxResult getInfo(@PathVariable("seriesId") Long seriesId)
+    {
+        return success(PostAppSeriesService.selectPostAppSeriesBySeriesId(seriesId));
+    }
+
+    /**
+     * 新增邮贝套系信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:add')")
+    @Log(title = "邮贝套系信息", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody PostAppSeries PostAppSeries)
+    {
+        return toAjax(PostAppSeriesService.insertPostAppSeries(PostAppSeries));
+    }
+
+    /**
+     * 修改邮贝套系信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:edit')")
+    @Log(title = "邮贝套系信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/update")
+    public AjaxResult edit(@RequestBody PostAppSeries PostAppSeries)
+    {
+        return toAjax(PostAppSeriesService.updatePostAppSeries(PostAppSeries));
+    }
+
+    /**
+     * 删除邮贝套系信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:series:remove')")
+    @Log(title = "邮贝套系信息", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{seriesIds}")
+    public AjaxResult remove(@PathVariable Long[] seriesIds)
+    {
+        return toAjax(PostAppSeriesService.deletePostAppSeriesBySeriesIds(seriesIds));
+    }
+}