From 9155df2aeab5b0d95c89dd928dbaefbfbaeae9d1 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期四, 05 九月 2024 17:10:35 +0800
Subject: [PATCH] zjh 2024-09-05

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java |  234 ++++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 170 insertions(+), 64 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
index 40e6f00..0632612 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
@@ -1,11 +1,14 @@
 package com.ltkj.web.controller.app;
 
+import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.common.base.Joiner;
 import com.ltkj.common.core.controller.BaseController;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.task.TaskService;
 import com.ltkj.common.utils.StringUtils;
 import com.ltkj.framework.config.MatchUtils;
 import com.ltkj.framework.config.UserHoder;
@@ -15,6 +18,8 @@
 import com.ltkj.mall.service.IMallTimeConfigService;
 import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.web.config.redis.OrderDelayService;
+import com.ltkj.web.config.task.TjReservationTask;
+import com.ltkj.web.wxUtils.WxUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -24,10 +29,7 @@
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * @Author: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -56,8 +58,18 @@
     private IMallTimeConfigService mallTimeConfigService;
     @Resource
     private ISysConfigService configService;
-    @Resource
-    private OrderDelayService delayService;
+    //    @Resource
+//    private OrderDelayService delayService;
+    @Autowired
+    private TaskService taskService;
+
+    @GetMapping("/isStartYy")
+    @ApiOperation(value = "鏌ヨ棰勭害鍔熻兘鏄惁寮�鍚�")
+    public AjaxResult isStartYy() {
+        String isStartYy = configService.selectConfigByKey("is_start_yy");
+        return AjaxResult.success(isStartYy);
+    }
+
 
     @PostMapping
     @ApiOperation(value = "涓汉棰勭害")
@@ -71,12 +83,12 @@
         if (!(MatchUtils.isMobileNO(tjReservation.getPhoe())))
             return AjaxResult.error("鎵嬫満鍙烽敊璇�");
 
-        if(tjReservation.getIdCard().length()==18){
+        if (tjReservation.getIdCard().length() == 18) {
             if (!MatchUtils.isIdCard(tjReservation.getIdCard())) {
                 return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
             }
         }
-        if(tjReservation.getIdCard().length()==9){
+        if (tjReservation.getIdCard().length() == 9) {
             if (!MatchUtils.cardValidates(tjReservation.getIdCard())) {
                 return AjaxResult.error("韬唤璇佸彿鐮侀敊璇�");
             }
@@ -101,20 +113,22 @@
         tjReservation.setUpdateTime(new Date());
         tjReservation.setWechat(String.valueOf(wxuser.getOpenid()));
         tjReservation.setConnect(String.valueOf(wxuser.getId()));
-        if(null !=tjReservation.getProIdList() && tjReservation.getProIdList().size()>0){
+        if (null != tjReservation.getProIdList() && tjReservation.getProIdList().size() > 0) {
             String join = Joiner.on(",").join(tjReservation.getProIdList());
             tjReservation.setProIds(join);
         }
         if (reservationService.save(tjReservation)) {
-            delayService.reservation(tjReservation.getId());
 
-            TjCustomer one = customerService.getOne(new LambdaQueryWrapper<TjCustomer>().eq(TjCustomer::getCusIdcard,tjReservation.getIdCard()));
-            if(null !=one){
+            taskService.addTask(new TjReservationTask(tjReservation.getId(),
+                    DateUtil.between(new Date(), DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS)));
+
+            TjCustomer one = customerService.getOne(new LambdaQueryWrapper<TjCustomer>().eq(TjCustomer::getCusIdcard, tjReservation.getIdCard()));
+            if (null != one) {
                 one.setWechat(String.valueOf(wxuser.getId()));
                 one.setConnect(wxuser.getOpenid());
                 customerService.updateById(one);
-            }else {
-                TjCustomer customer=new TjCustomer();
+            } else {
+                TjCustomer customer = new TjCustomer();
                 customer.setCusName(tjReservation.getName());
                 customer.setCusSex(Long.valueOf(tjReservation.getSex()));
                 customer.setCusBrithday(tjReservation.getBirthday());
@@ -134,26 +148,67 @@
             if ((null == tjReservation.getProIdList() || tjReservation.getProIdList().size() == 0) && (null == tjReservation.getPacId())) {
                 transitionService.deletedTbTransitionByCusId(tjReservation.getIdCard());
             }
-            if(null !=tjReservation.getPacId()){
-            asyncService.addRedisTransitionPac(tjReservation.getIdCard(), Long.valueOf(tjReservation.getPacId()),ppservice.getTjPackageProjectListByPacId(tjReservation.getPacId()));
+            if (null != tjReservation.getPacId()) {
+                asyncService.addRedisTransitionPac(tjReservation.getIdCard(), Long.valueOf(tjReservation.getPacId()), ppservice.getTjPackageProjectListByPacId(tjReservation.getPacId()));
             }
 
-            if(null !=tjReservation.getProIdList() && tjReservation.getProIdList().size()>0){
-                asyncService.addRedisTransitionPro(tjReservation.getIdCard(),tjReservation.getProIdList());
+            if (null != tjReservation.getProIdList() && tjReservation.getProIdList().size() > 0) {
+                asyncService.addRedisTransitionPro(tjReservation.getIdCard(), tjReservation.getProIdList());
             }
 
             String isPays = configService.selectConfigByKey("isPay");
-            if(null !=isPays  && isPays.equals("true") ){
+            if (null != isPays && isPays.equals("true")) {
                 //瀵瑰簲棰勭害鏃堕棿鏁伴噺鍑�1
                 final TjReservation byId = reservationService.getById(tjReservation.getId());
                 final Date reservationTime = byId.getReservationTime();
-                LambdaQueryWrapper<MallTimeConfig> wq111=new LambdaQueryWrapper<>();
-                wq111.eq(MallTimeConfig::getTime,reservationTime);
+                LambdaQueryWrapper<MallTimeConfig> wq111 = new LambdaQueryWrapper<>();
+                wq111.eq(MallTimeConfig::getTime, reservationTime);
                 final MallTimeConfig config = mallTimeConfigService.getOne(wq111);
-                config.setNowNum(config.getNowNum()-1);
+                config.setNowNum(config.getNowNum() - 1);
                 mallTimeConfigService.updateById(config);
             }
-            return AjaxResult.success("棰勭害鎴愬姛!!!",tjReservation.getId());
+
+            //鍙戣鍗曚俊鎭粰wx璁㈤槄鏈嶅姟娑堟伅鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�攕tart鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��
+            Map<String, Object> res = new HashMap<>();
+            res.put("touser", wxuser.getOpenid());
+            res.put("template_id", "M4K_BNVG7g4hOAcrIDO18ux8KOTneHeNide5GdPW3kc");
+            res.put("page", "pages/mine/index");
+            res.put("miniprogram_state", "trial");
+            //璁㈤槄娑堟伅鍙傛暟鍊�
+            JSONObject data = new JSONObject();
+
+            JSONObject name1 = new JSONObject();
+            name1.put("value", tjReservation.getName());
+            data.put("thing1", name1);
+
+            JSONObject amount3 = new JSONObject();
+            amount3.put("value", "浣撴涓績");
+            data.put("thing2", amount3);
+
+            JSONObject time4 = new JSONObject();
+            String dateFormat = DateUtil.format(tjReservation.getReservationTime(), "yyyy-MM-dd");
+            time4.put("value", dateFormat);
+            data.put("time4", time4);
+
+            final TjPackage byId = packageService.getById(tjReservation.getPacId());
+            if (byId != null) {
+                JSONObject thing5 = new JSONObject();
+                thing5.put("value", byId.getPacName());
+                data.put("thing5", thing5);
+            } else {
+                JSONObject thing5 = new JSONObject();
+                thing5.put("value", "鏈煡");
+                data.put("thing5", thing5);
+            }
+
+
+            JSONObject thing6 = new JSONObject();
+            thing6.put("value", "浣撴鍓嶄竴澶╄鎮ㄨ繘娓呮贰楗,鍕块ギ閰掞紒");
+            data.put("thing6", thing6);
+            WxUtil.sendCommonSubscribeMessage(res, data);
+            //鍙戣鍗曚俊鎭粰wx璁㈤槄鏈嶅姟娑堟伅鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�攅nd鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��
+
+            return AjaxResult.success("棰勭害鎴愬姛!!!", tjReservation.getId());
         }
         return AjaxResult.error("棰勭害澶辫触");
     }
@@ -162,26 +217,72 @@
     @ApiOperation(value = "鎾ら攢涓汉棰勭害")
     @Transactional
     public AjaxResult cusDeletedReservation(@RequestBody TjReservation reservation) {
-        LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjReservation::getIdCard, reservation.getIdCard());
-        wq.eq(TjReservation::getIsExpire, 2);
-        TjReservation one = reservationService.getOne(wq);
+        Wxuser wxuser = UserHoder.getWxuser();
+//        LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
+//        wq.eq(TjReservation::getIdCard, reservation.getIdCard());
+//        wq.eq(TjReservation::getIsExpire, 2);
+//        TjReservation one = reservationService.getOne(wq);
+        if (reservation.getId() == null) {
+            return AjaxResult.success("鍑洪敊浜嗭紝璇疯仈绯诲伐浣滀汉鍛橈紒");
+        }
+        taskService.removeTask(new TjReservationTask(reservation.getId()));
+        TjReservation one = reservationService.getById(reservation.getId());
         if (null != one) {
             String isPays = configService.selectConfigByKey("isPay");
-            if(null !=isPays  && isPays.equals("true") ){
+            if (null != isPays && isPays.equals("true")) {
                 //瀵瑰簲棰勭害鏃堕棿鏁伴噺+1
                 final TjReservation byId = reservationService.getById(one.getId());
                 final Date reservationTime = byId.getReservationTime();
-                LambdaQueryWrapper<MallTimeConfig> wq111=new LambdaQueryWrapper<>();
-                wq111.eq(MallTimeConfig::getTime,reservationTime);
+                LambdaQueryWrapper<MallTimeConfig> wq111 = new LambdaQueryWrapper<>();
+                wq111.eq(MallTimeConfig::getTime, reservationTime);
                 final MallTimeConfig config = mallTimeConfigService.getOne(wq111);
-                config.setNowNum(config.getNowNum()+1);
+                config.setNowNum(config.getNowNum() + 1);
                 mallTimeConfigService.updateById(config);
             }
 
             transitionService.deletedTbTransitionByCusId(reservation.getIdCard());
             reservationService.removeById(one);
-            return AjaxResult.success();
+
+
+            //鍙戣鍗曚俊鎭粰wx璁㈤槄鏈嶅姟娑堟伅鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�攕tart鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��
+            Map<String, Object> res = new HashMap<>();
+            res.put("touser", wxuser.getOpenid());
+            res.put("template_id", "X467Xtd8HnFDNk-IoT0ChcdoBnClLZJQQwP7DMztYQ8");
+            res.put("page", "pages/mine/index");
+            res.put("miniprogram_state", "trial");
+            //璁㈤槄娑堟伅鍙傛暟鍊�
+            JSONObject data = new JSONObject();
+
+            JSONObject amount3 = new JSONObject();
+            amount3.put("value", "浣撴涓績");
+            data.put("thing3", amount3);
+
+            JSONObject name1 = new JSONObject();
+            name1.put("value", reservation.getName());
+            data.put("name1", name1);
+
+            final TjPackage byId = packageService.getById(reservation.getPacId());
+            if (byId != null) {
+                JSONObject thing5 = new JSONObject();
+                thing5.put("value", byId.getPacName());
+                data.put("thing4", thing5);
+            } else {
+                JSONObject thing5 = new JSONObject();
+                thing5.put("value", "鏈煡");
+                data.put("thing4", thing5);
+            }
+
+            JSONObject time4 = new JSONObject();
+            String dateFormat = DateUtil.format(reservation.getReservationTime(), "yyyy-MM-dd");
+            time4.put("value", dateFormat);
+            data.put("date2", time4);
+
+            JSONObject thing6 = new JSONObject();
+            thing6.put("value", "鎮ㄥ凡鎴愬姛鍙栨秷鏈棰勭害锛屾杩庡啀娆′娇鐢紒");
+            data.put("thing5", thing6);
+            WxUtil.sendCommonSubscribeMessage(res, data);
+            //鍙戣鍗曚俊鎭粰wx璁㈤槄鏈嶅姟娑堟伅鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�攅nd鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��
+            return AjaxResult.success("鍙栨秷鎴愬姛");
         }
         return AjaxResult.success("鏆傛棤棰勭害淇℃伅");
     }
@@ -193,9 +294,9 @@
         LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
         wq.eq(TjReservation::getConnect, wxuser.getId());
 //        wq.eq(TjReservation::getIsExpire, 2);
-        wq.eq(TjReservation::getPhoe,wxuser.getPhone());
+        wq.eq(TjReservation::getPhoe, wxuser.getPhone());
         List<TjReservation> reservationList = reservationService.list(wq);
-        if (null != reservationList && reservationList.size()>0) {
+        if (null != reservationList && reservationList.size() > 0) {
             for (TjReservation one : reservationList) {
                 TjPackage tjPackage = packageService.getById(one.getPacId());
                 if (null != tjPackage) {
@@ -233,23 +334,28 @@
     @Transactional
     public AjaxResult updateReservationTime(@RequestBody @ApiParam(value = "浣撴棰勭害瀵硅薄") TjReservation tjReservation) {
         TjReservation one = reservationService.getById(tjReservation.getId());
-        if(null !=one && one.getIsExpire().equals(2)){
+        if (null != one && one.getIsExpire().equals(2)) {
             //鍘熸椂闂存鏁板姞1
-            LambdaQueryWrapper<MallTimeConfig> wq111=new LambdaQueryWrapper<>();
-            wq111.eq(MallTimeConfig::getTime,one.getReservationTime());
+            LambdaQueryWrapper<MallTimeConfig> wq111 = new LambdaQueryWrapper<>();
+            wq111.eq(MallTimeConfig::getTime, one.getReservationTime());
             final MallTimeConfig config = mallTimeConfigService.getOne(wq111);
-            config.setNowNum(config.getNowNum()+1);
+            config.setNowNum(config.getNowNum() + 1);
             mallTimeConfigService.updateById(config);
 
             //淇敼鍚庢椂闂存鏁�-1
-            LambdaQueryWrapper<MallTimeConfig> wq=new LambdaQueryWrapper<>();
-            wq.eq(MallTimeConfig::getTime,tjReservation.getReservationTime());
+            LambdaQueryWrapper<MallTimeConfig> wq = new LambdaQueryWrapper<>();
+            wq.eq(MallTimeConfig::getTime, tjReservation.getReservationTime());
             final MallTimeConfig config1 = mallTimeConfigService.getOne(wq);
-            config1.setNowNum(config1.getNowNum()-1);
+            config1.setNowNum(config1.getNowNum() - 1);
             mallTimeConfigService.updateById(config1);
 
             one.setReservationTime(tjReservation.getReservationTime());
-            reservationService.updateById(one);
+            if (reservationService.updateById(one)) {
+                taskService.removeTask(new TjReservationTask(tjReservation.getId()));
+                taskService.addTask(new TjReservationTask(tjReservation.getId(),
+                        DateUtil.between(new Date(), DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS)));
+            }
+
             return AjaxResult.success("鎿嶄綔鎴愬姛");
         }
         return AjaxResult.error("棰勭害涓嶅瓨鍦ㄦ垨宸茶秴鏃� 涓嶅彲淇敼!");
@@ -262,7 +368,7 @@
         Wxuser wxuser = UserHoder.getWxuser();
         LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
         wq.eq(TjReservation::getConnect, wxuser.getId());
-        wq.eq(TjReservation::getPhoe,wxuser.getPhone());
+        wq.eq(TjReservation::getPhoe, wxuser.getPhone());
         wq.orderByDesc(TjReservation::getCreateTime);
         List<TjReservation> reservationList = reservationService.list(wq);
         if (null != reservationList && reservationList.size() > 0) {
@@ -312,35 +418,35 @@
     @ApiOperation(value = "鏍规嵁韬唤璇佸彿鏌ョ湅棰勭害淇℃伅")
     public AjaxResult getReservationByIdCard(@RequestParam @ApiParam(value = "韬唤璇佸彿") String idCard) {
         LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
-        wq.eq(TjReservation::getIdCard,idCard);
+        wq.eq(TjReservation::getIdCard, idCard);
         wq.orderByDesc(TjReservation::getCreateTime);
         TjReservation one = reservationService.list(wq).get(0);
         if (null != one) {
 //            for (TjReservation one : reservationList) {
-                TjPackage tjPackage = packageService.getById(one.getPacId());
-                if (null != tjPackage) {
-                    LambdaQueryWrapper<TjPackageProject> wq1 = new LambdaQueryWrapper<>();
-                    wq1.eq(TjPackageProject::getPacId, one.getPacId());
-                    List<TjPackageProject> projectList = ppservice.list(wq1);
-                    if (null != projectList && projectList.size() > 0) {
-                        List<TjProject> tjProjectList = new ArrayList<>();
-                        for (TjPackageProject packageProject : projectList) {
-                            tjProjectList.add(projectService.getById(packageProject.getProId()));
-                        }
-                        tjPackage.setTjProjectList(tjProjectList);
+            TjPackage tjPackage = packageService.getById(one.getPacId());
+            if (null != tjPackage) {
+                LambdaQueryWrapper<TjPackageProject> wq1 = new LambdaQueryWrapper<>();
+                wq1.eq(TjPackageProject::getPacId, one.getPacId());
+                List<TjPackageProject> projectList = ppservice.list(wq1);
+                if (null != projectList && projectList.size() > 0) {
+                    List<TjProject> tjProjectList = new ArrayList<>();
+                    for (TjPackageProject packageProject : projectList) {
+                        tjProjectList.add(projectService.getById(packageProject.getProId()));
                     }
-                    one.setTjPackage(tjPackage);
+                    tjPackage.setTjProjectList(tjProjectList);
                 }
-                if (null != one.getProIds()) {
-                    String[] proIds = StringUtils.split(one.getProIds(), ",");
-                    if (null != proIds && proIds.length > 0) {
-                        List<TjProject> projectList = new ArrayList<>();
-                        for (String proId : proIds) {
-                            projectList.add(projectService.getById(proId));
-                        }
-                        one.setProjectList(projectList);
+                one.setTjPackage(tjPackage);
+            }
+            if (null != one.getProIds()) {
+                String[] proIds = StringUtils.split(one.getProIds(), ",");
+                if (null != proIds && proIds.length > 0) {
+                    List<TjProject> projectList = new ArrayList<>();
+                    for (String proId : proIds) {
+                        projectList.add(projectService.getById(proId));
                     }
+                    one.setProjectList(projectList);
                 }
+            }
 //            }
             return AjaxResult.success(one);
         }

--
Gitblit v1.8.0