Quellcode durchsuchen

创建定时任务, 自动写入每日门票信息

Memory_LG vor 5 Monaten
Ursprung
Commit
01df70fdee

+ 31 - 1
qmjszx-admin/src/main/resources/templates/system/site/site.html

@@ -2,6 +2,8 @@
 <html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
 <head>
     <th:block th:include="include :: header('球场管理列表')" />
+    <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.4/css/bootstrap3/bootstrap-switch.min.css" rel="stylesheet">
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.4/js/bootstrap-switch.min.js"></script>
 </head>
 <body class="gray-bg">
      <div class="container-div">
@@ -117,7 +119,11 @@
                 },
                 {
                     field: 'siteStatus',
-                    title: '状态'
+                    title: '状态',
+                    align: 'center',
+                    formatter: function (value, row, index) {
+                        return statusTools(row);
+                    }
                 },
                 {
                     field: 'venueId',
@@ -136,6 +142,30 @@
             };
             $.table.init(options);
         });
+
+        function statusTools(row) {
+            if (row.siteStatus === "1") {
+                return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
+            } else {
+                return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
+            }
+        }
+
+        /* 用户管理-停用 */
+        function disable(userId) {
+            alert("停用")
+            // $.modal.confirm("确认要停用用户吗?", function() {
+            //     $.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
+            // })
+        }
+
+        /* 用户管理启用 */
+        function enable(userId) {
+            alert("开启")
+            // $.modal.confirm("确认要启用用户吗?", function() {
+            //     $.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
+            // })
+        }
     </script>
 </body>
 </html>

+ 2 - 2
qmjszx-business/pom.xml

@@ -49,10 +49,10 @@
         </dependency>
 
         <!-- 定时任务-->
-        <dependency>
+        <!--<dependency>
             <groupId>qmjszx</groupId>
             <artifactId>qmjszx-quartz</artifactId>
-        </dependency>
+        </dependency>-->
 
         <!-- 代码生成-->
         <dependency>

+ 51 - 0
qmjszx-business/src/main/java/beilv/admissionticket/domain/AdmissionTicket.java

@@ -0,0 +1,51 @@
+package beilv.admissionticket.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class AdmissionTicket {
+    /**
+     * 门票id
+     */
+    private String id;
+    /**
+     * 场馆id
+     */
+    private String venueId;
+    /**
+     * 场地名称
+     */
+    private String siteName;
+    /**
+     * 场地类型
+     */
+    private String siteType;
+    /**
+     * 场地时段
+     */
+    private String session;
+    /**
+     * 时段价格
+     */
+    private BigDecimal price;
+    /**
+     * 日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date ticketDate;
+    /**
+     * 门票状态
+     */
+    private String admissionTicketStatus;
+
+}

+ 9 - 0
qmjszx-business/src/main/java/beilv/admissionticket/mapper/AdmissionTicketMapper.java

@@ -0,0 +1,9 @@
+package beilv.admissionticket.mapper;
+
+import beilv.admissionticket.domain.AdmissionTicket;
+
+import java.util.List;
+
+public interface AdmissionTicketMapper {
+    int insertAdmissionTicketToList(List<AdmissionTicket> ticketList);
+}

+ 9 - 0
qmjszx-business/src/main/java/beilv/admissionticket/service/IAdmissionTicketService.java

@@ -0,0 +1,9 @@
+package beilv.admissionticket.service;
+
+import beilv.admissionticket.domain.AdmissionTicket;
+
+import java.util.List;
+
+public interface IAdmissionTicketService {
+    int insertAdmissionTicketToList(List<AdmissionTicket> ticketList);
+}

+ 22 - 0
qmjszx-business/src/main/java/beilv/admissionticket/service/impl/AdmissionTicketServiceImpl.java

@@ -0,0 +1,22 @@
+package beilv.admissionticket.service.impl;
+
+import beilv.admissionticket.domain.AdmissionTicket;
+import beilv.admissionticket.mapper.AdmissionTicketMapper;
+import beilv.admissionticket.service.IAdmissionTicketService;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class AdmissionTicketServiceImpl implements IAdmissionTicketService {
+
+    @Autowired
+    private AdmissionTicketMapper ticketMapper;
+
+    @Override
+    public int insertAdmissionTicketToList(List<AdmissionTicket> ticketList) {
+        return ticketMapper.insertAdmissionTicketToList(ticketList);
+    }
+}

+ 2 - 0
qmjszx-business/src/main/java/beilv/session/mapper/BeilvSessionMapper.java

@@ -67,4 +67,6 @@ public interface BeilvSessionMapper
      * @return
      */
     boolean selectOne(BeilvSession beilvSession);
+
+    List<BeilvSession> getAllToList();
 }

+ 2 - 0
qmjszx-business/src/main/java/beilv/session/service/IBeilvSessionService.java

@@ -60,4 +60,6 @@ public interface IBeilvSessionService
      * @return 结果
      */
     public int deleteBeilvSessionById(Long id);
+
+    List<BeilvSession> getAllToList();
 }

+ 5 - 0
qmjszx-business/src/main/java/beilv/session/service/impl/BeilvSessionServiceImpl.java

@@ -95,4 +95,9 @@ public class BeilvSessionServiceImpl implements IBeilvSessionService {
     public int deleteBeilvSessionById(Long id) {
         return beilvSessionMapper.deleteBeilvSessionById(id);
     }
+
+    @Override
+    public List<BeilvSession> getAllToList() {
+        return beilvSessionMapper.getAllToList();
+    }
 }

+ 2 - 0
qmjszx-business/src/main/java/beilv/site/mapper/BeilvSiteMapper.java

@@ -60,4 +60,6 @@ public interface BeilvSiteMapper
     public int deleteBeilvSiteByIds(String[] ids);
 
     boolean selectOne(BeilvSite beilvSite);
+
+    List<BeilvSite> getAllToList();
 }

+ 2 - 0
qmjszx-business/src/main/java/beilv/site/service/IBeilvSiteService.java

@@ -58,4 +58,6 @@ public interface IBeilvSiteService
      * @return 结果
      */
     public int deleteBeilvSiteById(Long id);
+
+    List<BeilvSite> getAllToList();
 }

+ 5 - 0
qmjszx-business/src/main/java/beilv/site/service/impl/BeilvSiteServiceImpl.java

@@ -94,4 +94,9 @@ public class BeilvSiteServiceImpl implements IBeilvSiteService {
     public int deleteBeilvSiteById(Long id) {
         return beilvSiteMapper.deleteBeilvSiteById(id);
     }
+
+    @Override
+    public List<BeilvSite> getAllToList() {
+        return beilvSiteMapper.getAllToList();
+    }
 }

+ 36 - 0
qmjszx-business/src/main/resources/mapper/admissionticket/AdmissionTicketMapper.xml

@@ -0,0 +1,36 @@
+<?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="beilv.admissionticket.mapper.AdmissionTicketMapper">
+    
+    <resultMap type="admissionTicket" id="admissionTicketResult">
+        <result property="id"    column="id"    />
+        <result property="venueId" column="venue_id"/>
+        <result property="siteName" column="site_name"/>
+        <result property="siteType" column="site_type"/>
+        <result property="session" column="session"/>
+        <result property="price" column="price"/>
+        <result property="ticketDate" column="ticket_date"/>
+        <result property="admissionTicketStatus" column="admission_ticket_status"/>
+    </resultMap>
+
+    <insert id="insertAdmissionTicketToList" parameterType="list">
+        insert into beilv_admission_ticket
+        (id, venue_id, site_name, site_type, session, price, ticket_date, admission_ticket_status)
+        values
+        <foreach collection="list" item="ticket" separator="," >
+            (
+                #{ticket.id},
+                #{ticket.venueId},
+                #{ticket.siteName},
+                #{ticket.siteType},
+                #{ticket.session},
+                #{ticket.price},
+                #{ticket.ticketDate},
+                #{ticket.admissionTicketStatus}
+            )
+        </foreach>
+    </insert>
+
+</mapper>

+ 4 - 0
qmjszx-business/src/main/resources/mapper/session/BeilvSessionMapper.xml

@@ -93,4 +93,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
+    <select id="getAllToList" resultMap="BeilvSessionResult">
+        select * from beilv_session
+    </select>
+
 </mapper>

+ 4 - 0
qmjszx-business/src/main/resources/mapper/site/BeilvSiteMapper.xml

@@ -110,4 +110,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
     </select>
 
+    <select id="getAllToList" resultMap="BeilvSiteResult">
+        select * from beilv_site
+    </select>
+
 </mapper>

+ 5 - 0
qmjszx-quartz/pom.xml

@@ -35,6 +35,11 @@
             <artifactId>qmjszx-common</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>qmjszx</groupId>
+            <artifactId>qmjszx-business</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 78 - 0
qmjszx-quartz/src/main/java/beilv/quartz/task/SiteTask.java

@@ -0,0 +1,78 @@
+package beilv.quartz.task;
+
+import beilv.admissionticket.domain.AdmissionTicket;
+import beilv.admissionticket.service.IAdmissionTicketService;
+import beilv.common.utils.uuid.IdUtils;
+import beilv.session.domain.BeilvSession;
+import beilv.session.service.IBeilvSessionService;
+import beilv.site.domain.BeilvSite;
+import beilv.site.service.IBeilvSiteService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+@Component("siteTask")
+public class SiteTask {
+
+    @Autowired
+    private IBeilvSessionService sessionService;
+
+    @Autowired
+    private IBeilvSiteService siteService;
+
+    @Autowired
+    private IAdmissionTicketService ticketService;
+
+
+    public void abcd(){
+        System.out.println("==================================================");
+    }
+
+    /**
+     * 门票定时任务
+     * 定时将日期下的各类型场地+时段写入到数据表中
+     *
+     * @param day 天数
+     */
+    public void addAdmissionTicket(Integer day) {
+
+        // 计算写入日期 = 当前日期 + 传入的day天数
+        Date writeDate = addDaysToDate(new Date(), day);
+
+        //获取场地信息
+        List<BeilvSite> siteList = siteService.getAllToList();
+
+        //获取时段信息
+        List<BeilvSession> sessionList = sessionService.getAllToList();
+
+        //创建写入集合, 用于批量新增
+        List<AdmissionTicket> ticketList = new ArrayList<>();
+
+        siteList.forEach(site -> {
+            sessionList.forEach(session -> {
+                //判断场馆相同, 并且场地类型相同
+                if (session.getVenueId().equals(site.getVenueId()) && session.getSiteType().equals(site.getSiteType())) {
+                    //创建门票实体
+                    AdmissionTicket admissionTicket = new AdmissionTicket(IdUtils.fastSimpleUUID(), String.valueOf(session.getVenueId()), site.getName(), session.getSiteType(), session.getSession(), session.getPrice(), writeDate,"0");
+                    ticketList.add(admissionTicket);
+                }
+            });
+        });
+
+        //批量写入门票信息
+        ticketService.insertAdmissionTicketToList(ticketList);
+    }
+
+    // 将Date类型加上指定天数的方法
+    private Date addDaysToDate(Date date, int days) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DAY_OF_YEAR, days);
+        return calendar.getTime();
+    }
+
+}