From c560f1a14ae1fc468d90e50e6a32d805295875da Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 01 九月 2025 15:35:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java | 1566 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 1,493 insertions(+), 73 deletions(-)
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
index 8179ac2..0080217 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -1,56 +1,72 @@
package com.dsh.guns.modular.system.controller.system;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.common.utils.Md5Utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.dto.JsDto;
+import com.dsh.course.dto.StudentQeryDto;
+import com.dsh.course.feignClient.account.AppUserClient;
import com.dsh.course.feignClient.account.CityManagerClient;
import com.dsh.course.feignClient.account.CoachClient;
-import com.dsh.course.feignClient.account.model.CityManager;
import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.course.CoursePackageClient;
import com.dsh.course.feignClient.course.CoursePackageDiscountClient;
import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient;
import com.dsh.course.feignClient.course.CoursePackageTypeClient;
-import com.dsh.course.feignClient.course.model.TCoursePackageType;
+import com.dsh.course.feignClient.course.model.TCoursePackage;
import com.dsh.course.feignClient.other.BallClient;
+import com.dsh.course.feignClient.other.SiteClient;
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.course.service.TGameConfigService;
+import com.dsh.course.util.UUIDUtil;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
+import com.dsh.guns.core.util.ToolUtil;
+import com.dsh.guns.modular.system.controller.util.MD5;
import com.dsh.guns.modular.system.model.*;
-import com.dsh.guns.modular.system.model.dto.BallQueryDto;
-import com.dsh.guns.modular.system.model.dto.ConsumeQuery;
-import com.dsh.guns.modular.system.service.ICityService;
-import com.dsh.guns.modular.system.service.ICoursePackageService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import com.dsh.guns.modular.system.service.ITSiteService;
-import com.dsh.guns.modular.system.util.HttpRequestUtil;
-import com.dsh.guns.modular.system.util.ResultUtil;
-import com.google.common.base.Ascii;
-import com.google.gson.JsonObject;
-import com.netflix.ribbon.proxy.annotation.Http;
-import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader;
-import io.netty.util.AsciiString;
-import io.rong.util.HttpUtil;
-import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.logging.log4j.util.Base64Util;
+import com.dsh.guns.modular.system.model.dto.*;
+import com.dsh.guns.modular.system.service.*;
+import com.dsh.guns.modular.system.util.*;
+import com.dsh.course.entity.SiteLock;
+import com.google.gson.Gson;
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.WriterException;
+import com.google.zxing.client.j2se.MatrixToImageWriter;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.tomcat.util.http.fileupload.ByteArrayOutputStream;
+import org.json.JSONArray;
+import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpRequest;
+import org.springframework.core.io.ByteArrayResource;
+import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
-import org.springframework.util.Base64Utils;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.annotation.Resource;
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
+import javax.imageio.ImageIO;
+
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.math.BigDecimal;
+
+import java.nio.file.FileSystems;
+import java.nio.file.Path;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.stream.Collectors;
@Controller
@RequestMapping("/ball")
@@ -87,16 +103,104 @@
@Resource
private CoursePackageClient coursePackageClient;
+ @Autowired
+ private AppUserClient appUserClient;
@RequestMapping("/tolist")
public String tolist(Model model) {
-
List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
model.addAttribute("list",list);
String roleid = UserExt.getUser().getRoleid();
model.addAttribute("role",roleid);
return PREFIX+"ball.html";
+ }
+
+ //入园方式
+ @RequestMapping("/joinmethod/{id}")
+ public String joinmethod(Model model,@PathVariable("id") Integer id) {
+
+
+ model.addAttribute("id",id);
+
+ return PREFIX+"join.html";
+ }
+
+
+ @RequestMapping("/selectJoin")
+ @ResponseBody
+ public ResultUtil join(@RequestBody MethodDto method) {
+
+ System.out.println("============"+method);
+ SiteBooking siteBooking = new SiteBooking();
+ siteBooking.setStatus(2);
+ siteBooking.setId(method.getId());
+ siteBooking.setGoType(method.getMethod());
+ iSiteBookingService.updateById(siteBooking);
+
+ return new ResultUtil<>(0,0,"到店成功",null,null);
+ }
+
+
+
+ @RequestMapping(value = "/yunying")
+ @ResponseBody
+ public ResultUtil getUserSlect() {
+
+
+
+ List<SelectDto> selectDtos = storeService.getSelect();
+ Map<String,List<SelectDto>> map = new HashMap<>();
+ map.put("options",selectDtos);
+
+ System.out.println("=======selectDtos====="+selectDtos);
+ return new ResultUtil(0,0,"编辑成功",map,"");
+ }
+
+ //取消凭证页面
+ @RequestMapping("/tocancel/{id}")
+ public String tocancel(Model model,@PathVariable("id") Integer id) {
+
+ model.addAttribute("id",id);
+
+ return PREFIX+"cancel.html";
+ }
+
+
+ @RequestMapping("/cancel")
+ @ResponseBody
+ public ResultUtil cancel(Integer id,String voucher,String textarea) {
+
+ System.out.println("============"+id);
+ SiteBooking siteBooking = new SiteBooking();
+ siteBooking.setId(id);
+ siteBooking.setStatus(5);
+ siteBooking.setVoucher(voucher);
+ siteBooking.setRemark(textarea);
+ siteBooking.setCancelUserId(UserExt.getUser().getId());
+ iSiteBookingService.updateById(siteBooking);
+
+ return new ResultUtil<>(0,0,"到店成功",null,null);
+ }
+
+ @RequestMapping("/confirm/{id}")
+ @ResponseBody
+ public ResultUtil confirm(@PathVariable("id") Integer id) {
+
+ SiteBooking byId = iSiteBookingService.getById(id);
+ String money = byId.getMoney();
+ String[] split = money.split(",");
+ Double aDouble = Double.valueOf(split[0]);
+ System.out.println("============"+id);
+ SiteBooking siteBooking = new SiteBooking();
+ siteBooking.setPayMoney(aDouble);
+ siteBooking.setId(id);
+ siteBooking.setStatus(1);
+ siteBooking.setPayType(4);
+ siteBooking.setPayUserId(UserExt.getUser().getId());
+ iSiteBookingService.updateById(siteBooking);
+
+ return new ResultUtil<>(0,0,"手动支付成功",null,null);
}
@@ -109,68 +213,635 @@
@RequestMapping("/list")
@ResponseBody
public List<Game> changelist(BallQueryDto ballQueryDto) {
-System.out.println("=======ballQueryDto=========="+ballQueryDto);
-
+ System.out.println("=======ballQueryDto=========="+ballQueryDto);
+ User user = UserExt.getUser();
+ ballQueryDto.setType(user.getObjectType());
+ ballQueryDto.setId(user.getObjectId());
return ballClient.list(ballQueryDto);
}
+ @ResponseBody
+ @PostMapping("/editCoursePackageState")
+ public ResultUtil editCoursePackageState(Integer id, Integer state){
+ Game game = new Game();
+ game.setId(id);
+ game.setState(state);
+ ballClient.save(game);
+
+ return ResultUtil.success();
+ }
+
+ public static MultipartFile convert(BufferedImage bufferedImage, String fileName) throws IOException {
+ // 将 BufferedImage 转换为字节数组
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ImageIO.write(bufferedImage, "png", baos);
+ byte[] bytes = baos.toByteArray();
+
+ // 创建 ByteArrayResource
+ ByteArrayResource resource = new ByteArrayResource(bytes);
+
+ // 创建 MockMultipartFile
+ MockMultipartFile multipartFile = new MockMultipartFile(
+ "file",
+ fileName,
+ "image/png",
+ resource.getInputStream()
+ );
+
+ return multipartFile;
+ }
+
@RequestMapping("/save")
@ResponseBody
- public ResultUtil save(String red,String blue,String province,String city, Integer site,Integer store) {
-// JSONObject jsonObject = JSONObject.parseObject("111");
+ public ResultUtil save(Integer id, String operationId, String red, String blue, String province, String city, Integer site, Integer store
+ , String kuacheng, BigDecimal kuachengCoin, BigDecimal kuachengCash, String kuachengImage, BigDecimal kuachengInt, Integer kuachengId,Integer kcId
+ , String shequ, BigDecimal shequCoin, BigDecimal shequCash, String shequImage, BigDecimal shequInt, Integer shequId,Integer shequIId
+ , String shemen, BigDecimal shemenCoin, BigDecimal shemenCash, String shemenImage, BigDecimal shemenInt, Integer shemenId,Integer smId
+ , String sudu, BigDecimal suduCoin, BigDecimal suduCash, String suduImage, BigDecimal suduInt, Integer suduId,Integer sdId
+ , String fangkuai, BigDecimal fangkuaiCoin, BigDecimal fangkuaiCash, String fangkuaiImage, BigDecimal fangkuaiInt, Integer fangkuaiId,Integer fkId
+ , String jx, BigDecimal jxCoin, BigDecimal jxCash, String jxImage, BigDecimal jxInt, Integer jxId,Integer jxIId
+ , String sq, BigDecimal sqCoin, BigDecimal sqCash, String sqImage, BigDecimal sqInt, Integer sqId,Integer qwId
+ , String zs, BigDecimal zsCoin, BigDecimal zsCash, String zsImage, BigDecimal zsInt, Integer zsId,Integer zsIId
+ , String zs2, BigDecimal zs2Coin, BigDecimal zs2Cash, String zs2Image, BigDecimal zs2Int, Integer zs2Id,Integer zs2IId
+ , String ly, BigDecimal lyCoin, BigDecimal lyCash, String lyImage, BigDecimal lyInt, Integer lyId,Integer lyIId
+ , String v3, BigDecimal v3Coin, BigDecimal v3Cash, String v3Image, BigDecimal v3Int, Integer v3Id,Integer v3IId
+ ,String sutuName
+
+ ) throws Exception {
+
Game game = new Game();
- game.setRed(red);
- game.setBlue(blue);
- game.setProvince(province);
- game.setCity(city);
+ game.setRedName(red);
+ game.setState(0);
+ game.setBlueName(blue);
+
+
+ Integer objectType = UserExt.getUser().getObjectType();
+
+ if (objectType ==3){
+
+
+ TStore byId = storeService.getById(UserExt.getUser().getObjectId());
+ System.out.println("=====byId======="+byId);
+ game.setProvinceCode(byId.getProvinceCode());
+ game.setCityCode(byId.getCityCode());
+
+
+ }else {
+ game.setProvinceCode(province);
+ game.setCityCode(city);
+
+ }
game.setSiteId(site);
game.setStoreId(store);
+ game.setId(id);
+
+
+
+ if (!operationId.equals("平台")){
+ game.setOperationId(Integer.valueOf(operationId));}
+ else {
+ game.setOperationId(0);
+ }
System.out.println("============"+game);
- ballClient.save(game);
+ TStore tStore = storeService.getById(store);
+ game.setOperationId(tStore.getOperatorId());
+ // 判断是新增还是修改 修改不会重新生成sutuId
+ if (game.getId()==null) {
+ HashMap<String, String> map5 = new HashMap<>();
+ map5.put("space_id", store + "");
+ map5.put("area_id", site + "");
+ String s5 = HttpRequestUtil.getRequest("https://port.daowepark.com/v7/user_api/general/get_space_sutu", map5);
+ System.err.println(s5);
+ JSONObject jsonObject5 = new JSONObject(s5);
+ JSONArray data = jsonObject5.getJSONArray("data");
+ Integer temp = null; // 临时sutuid
+ Integer temp1 = null; // 临时sutuid
+ TSite si = siteService.getById(site);
+ if (data.length() == 0) {
+ // 这个场地没有添加过sutu
+ HashMap<String, String> map3 = new HashMap<>();
+ HashMap<String, String> map4 = new HashMap<>();
+ // 添加sutu编号
+ // 调用两次 创建sutu
+ map3.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
+ map4.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
+ map3.put("space_id", store + "");
+ map3.put("area_id", si.getId() + "");
+ map4.put("space_id", store + "");
+ map4.put("area_id", si.getId() + "");
+ map3.put("name", blue);
+ map4.put("name", red);
+ map3.put("city_code", city);
+ map4.put("city_code", city);
+ String s3 = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/addSpaceSutu", map3);
+ String s4 = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/addSpaceSutu", map4);
+ JSONObject jsonObject = new JSONObject(s3);
+ JSONObject jsonObject1 = new JSONObject(s4);
+ // 获取 data 字段的值
+ JSONObject dataObject = jsonObject.getJSONObject("data");
+ JSONObject dataObject1 = jsonObject1.getJSONObject("data");
+ // 获取 sutu_id 字段的值
+ String sutuIdValue = dataObject.getString("sutu_id");
+ String sutuIdValue1 = dataObject1.getString("sutu_id");
+ Integer sutuId = Integer.valueOf(sutuIdValue);
+ Integer sutuId1 = Integer.valueOf(sutuIdValue1);
+ game.setBlue("" + sutuId);
+ game.setRed("" + sutuId1);
+ // 生成红蓝sutu二维码
+ HashMap<String, String> blueCode = new HashMap<>();
+ blueCode.put("scan_type", "1000");
+ blueCode.put("sutu_id", "" + sutuId);
+ blueCode.put("space_id", si.getId() + "");
+ HashMap<String, String> redCode = new HashMap<>();
+ redCode.put("scan_type", "1000");
+ redCode.put("sutu_id", sutuId1 + "");
+ redCode.put("space_id", si.getId() + "");
+ String blueS = "{\"scan_type\": 1000, \"space_id\": " + si.getId() + ", \"sutu_id\": " + sutuId + "}";
+ String redS = "{\"scan_type\": 1000, \"space_id\": " + si.getId() + ", \"sutu_id\": " + sutuId1 + "}";
+ MyQrCodeUtil.createCodeToFile(blueS);
+ MyQrCodeUtil.createCodeToFile(redS);
+ BufferedImage blueImage = QRCodeUtil.createImage(blueS);
+ BufferedImage redImage = QRCodeUtil.createImage(redS);
+ MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+ MultipartFile redFile = convert(redImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+ String s = OssUploadUtil.ossUpload("img/", blueFile);
+ String s1 = OssUploadUtil.ossUpload("img/", redFile);
+ game.setBlueCode(s);
+ game.setRedCode(s1);
+ } else {
+ Integer sutuid = 0;
+ Integer sutuid1 = 0;
+ JSONObject element = data.getJSONObject(0);
+ if (site == 27) {
+ sutuid = 1036;
+ sutuid1 = 1037;
+ game.setBlue(sutuid.toString());
+ game.setRed(sutuid1.toString());
+ } else {
+ sutuid = element.getInt("id");
+ game.setBlue(sutuid.toString());
+ JSONObject element1 = data.getJSONObject(1);
+ sutuid1 = element1.getInt("id");
+ game.setRed(sutuid1.toString());
+ }
+ // 生成红蓝sutu二维码
+ HashMap<String, String> blueCode = new HashMap<>();
+ blueCode.put("scan_type", "1000");
+ blueCode.put("sutu_id", "" + sutuid);
+ blueCode.put("space_id", si.getId() + "");
+ HashMap<String, String> redCode = new HashMap<>();
+ redCode.put("scan_type", "1000");
+ redCode.put("sutu_id", sutuid1 + "");
+ redCode.put("space_id", si.getId() + "");
+ String blueS = "{\"scan_type\": 1000, \"space_id\": " + si.getId() + ", \"sutu_id\": " + sutuid + "}";
+ String redS = "{\"scan_type\": 1000, \"space_id\": " + si.getId() + ", \"sutu_id\": " + sutuid1 + "}";
+ MyQrCodeUtil.createCodeToFile(blueS);
+ MyQrCodeUtil.createCodeToFile(redS);
+ BufferedImage blueImage = QRCodeUtil.createImage(blueS);
+ BufferedImage redImage = QRCodeUtil.createImage(redS);
+ MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+ MultipartFile redFile = convert(redImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+ String s = OssUploadUtil.ossUpload("img/", blueFile);
+ String s1 = OssUploadUtil.ossUpload("img/", redFile);
+ game.setBlueCode(s);
+ game.setRedCode(s1);
+ }
+
+ }
+
+ Integer gameId = ballClient.save(game);
+ List<TGameConfig> gameConfigList = new ArrayList<>();
+ //玩湃跨城赛
+ TGameConfig gameConfigkuacheng = new TGameConfig();
+ gameConfigkuacheng.setId(kcId);
+ gameConfigkuacheng.setGameId(kuachengId);
+ gameConfigkuacheng.setCash(kuachengCash);
+ gameConfigkuacheng.setImg(kuachengImage);
+ gameConfigkuacheng.setName(kuacheng);
+ gameConfigkuacheng.setPlayCoin(kuachengCoin);
+ gameConfigkuacheng.setIntegral(kuachengInt);
+ gameConfigkuacheng.setOtherId(gameId);
+ System.out.println("========gameConfig======"+gameConfigkuacheng);
+ gameConfigList.add(gameConfigkuacheng);
+ System.out.println("======gameConfigList======="+gameConfigList);
+ //社区冠军赛
+ TGameConfig gameConfigshequ = new TGameConfig();
+ gameConfigshequ.setId(shequIId);
+ gameConfigshequ.setGameId(shequId);
+ gameConfigshequ.setCash(shequCash);
+ gameConfigshequ.setImg(shequImage);
+ gameConfigshequ.setName(shequ);
+ gameConfigshequ.setPlayCoin(shequCoin);
+ gameConfigshequ.setIntegral(shequInt);
+ gameConfigshequ.setOtherId(gameId);
+ gameConfigList.add(gameConfigshequ);
+
+ //射门速度-玩湃熊之力
+ TGameConfig gameConfigshemen = new TGameConfig();
+ gameConfigshemen.setGameId(shemenId);
+ gameConfigshemen.setId(smId);
+ gameConfigshemen.setCash(shemenCash);
+ gameConfigshemen.setImg(shemenImage);
+ gameConfigshemen.setName(shemen);
+ gameConfigshemen.setPlayCoin(shemenCoin);
+ gameConfigshemen.setIntegral(shemenInt);
+ gameConfigshemen.setOtherId(gameId);
+ gameConfigList.add(gameConfigshemen);
+
+
+ //玩湃熊之力-速度
+ TGameConfig gameConfigsudu = new TGameConfig();
+ gameConfigsudu.setGameId(suduId);gameConfigsudu.setId(sdId);
+ gameConfigsudu.setCash(suduCash);
+ gameConfigsudu.setImg(suduImage);
+ gameConfigsudu.setName(sudu);
+ gameConfigsudu.setPlayCoin(suduCoin);
+ gameConfigsudu.setIntegral(suduInt);
+ gameConfigsudu.setOtherId(gameId);
+ gameConfigList.add(gameConfigsudu);
+
+
+ //方块球王
+ TGameConfig gameConfigfangkuai = new TGameConfig();
+ gameConfigfangkuai.setGameId(fangkuaiId);
+ gameConfigfangkuai.setId(fkId);
+ gameConfigfangkuai.setCash(fangkuaiCash);
+ gameConfigfangkuai.setImg(fangkuaiImage);
+ gameConfigfangkuai.setName(fangkuai);
+ gameConfigfangkuai.setPlayCoin(fangkuaiCoin);
+ gameConfigfangkuai.setIntegral(fangkuaiInt);
+ gameConfigfangkuai.setOtherId(gameId);
+ gameConfigList.add(gameConfigfangkuai);
+
+
+ //镜像阵容
+ TGameConfig gameConfigjx = new TGameConfig();
+ gameConfigjx.setGameId(jxId);
+ gameConfigjx.setId(jxIId);
+ gameConfigjx.setCash(jxCash);
+ gameConfigjx.setImg(jxImage);
+ gameConfigjx.setName(jx);
+ gameConfigjx.setPlayCoin(jxCoin);
+ gameConfigjx.setIntegral(jxInt);
+ gameConfigjx.setOtherId(gameId);
+ gameConfigList.add(gameConfigjx);
+
+
+ //社区小球王
+ TGameConfig gameConfigsq = new TGameConfig();
+ gameConfigsq.setGameId(sqId);
+ gameConfigsq.setId(qwId);
+ gameConfigsq.setCash(sqCash);
+ gameConfigsq.setImg(sqImage);
+ gameConfigsq.setName(sq);
+ gameConfigsq.setPlayCoin(sqCoin);
+ gameConfigsq.setIntegral(sqInt);
+ gameConfigsq.setOtherId(gameId);
+ gameConfigList.add(gameConfigsq);
+
+
+
+ //涨姿势
+ TGameConfig gameConfigzs = new TGameConfig();
+ gameConfigzs.setGameId(zsId);
+ gameConfigzs.setId(zsIId);
+ gameConfigzs.setCash(zsCash);
+ gameConfigzs.setImg(zsImage);
+ gameConfigzs.setName(zs);
+ gameConfigzs.setPlayCoin(zsCoin);
+ gameConfigzs.setIntegral(zsInt);
+ gameConfigzs.setOtherId(gameId);
+ gameConfigList.add(gameConfigzs);
+
+ //涨姿势2
+ TGameConfig gameConfigzs2 = new TGameConfig();
+ gameConfigzs2.setGameId(zs2Id);gameConfigzs2.setId(zs2IId);
+ gameConfigzs2.setCash(zs2Cash);
+ gameConfigzs2.setImg(zs2Image);
+ gameConfigzs2.setName(zs2);
+ gameConfigzs2.setPlayCoin(zs2Coin);
+ gameConfigzs2.setIntegral(zs2Int);
+ gameConfigzs2.setOtherId(gameId);
+ gameConfigList.add(gameConfigzs2);
+
+ //绿茵密码
+ TGameConfig gameConfigly = new TGameConfig();
+ gameConfigly.setGameId(lyId);
+ gameConfigly.setId(lyIId);
+ gameConfigly.setCash(lyCash);
+ gameConfigly.setImg(lyImage);
+ gameConfigly.setName(ly);
+ gameConfigly.setPlayCoin(lyCoin);
+ gameConfigly.setIntegral(lyInt);
+ gameConfigly.setOtherId(gameId);
+ gameConfigList.add(gameConfigly);
+
+ //激战3V3
+ TGameConfig gameConfigv3 = new TGameConfig();
+ gameConfigv3.setGameId(v3Id);
+ gameConfigv3.setId(v3IId);
+ gameConfigv3.setCash(v3Cash);
+ gameConfigv3.setImg(v3Image);
+ gameConfigv3.setName(v3);
+ gameConfigv3.setPlayCoin(v3Coin);
+ gameConfigv3.setIntegral(v3Int);
+ gameConfigv3.setOtherId(gameId);
+ gameConfigList.add(gameConfigv3);
+ HashMap<String, String> map1 = new HashMap<>();
+ HashMap<String, String> map2 = new HashMap<>();
+
+
+// map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
+// map1.put("space_id", si.getId() + "");
+// map1.put("device_id", red);
+// map1.put("region_id", st.getId() + "");
+// // 添加门禁
+// String s1 = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/addDevice", map1);
+// map2.put("sign", "0DB011836143EEE2C2E072967C9F4E4B");
+// map2.put("space_id", si.getId() + "");
+// map2.put("device_id", blue);
+// map2.put("region_id", st.getId() + "");
+// // 添加门禁
+// String s2 = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/addDevice", map2);
+
+
+
+ ballClient.saveConfig( gameConfigList);
return null;
}
+ public static void main(String[] args) throws Exception {
+ String blueS = "{\"vipDetail\":1,role\":1,\"time\":[{\"start_time\":\"2025-08-25 09:00:00\",\"end_time\":\"2025-08-30 23:00:00\"}]}";
+ MyQrCodeUtil.createCodeToFile(blueS);
+ BufferedImage blueImage = QRCodeUtil.createImage(blueS);
+ MultipartFile blueFile = convert(blueImage, new Date().getTime() + UUIDUtil.getRandomCode(3) + ".PNG");
+ String s = OssUploadUtil.ossUpload("img/", blueFile);
+ System.err.println(s);
+ }
+
@RequestMapping("/pre_add")
public String add(Model model) {
-// Map<String,String> map = new HashMap<>();
-// map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
-// map.put("space_id","1001");
-// map.put("sutu_id","1001");
-//
-// String request = HttpRequestUtil.getRequest("https://try.daowepark.com/v7/user_api/general/gameList", map);
-// System.out.println("=======request=========="+request);
-////
-//// return ballClient.list(ballQueryDto);
-// }
-Map<String,String> map =new HashMap<>();
-map.put("sign","0DB011836143EEE2C2E072967C9F4E4B");
- map.put("space_id","1001");
- map.put("sutu_id","1001");
+ Integer objectType = UserExt.getUser().getObjectType();
- String req = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/gameList", map);
- System.out.println("================"+req);
-// AsciiString cached = AsciiString.cached(req);
- String convertedString = StringEscapeUtils.unescapeJava(req);
+ if (objectType ==3){
-System.out.println("-------------"+convertedString);
- JSONObject parse = JSONObject.parseObject(convertedString);
- JSONArray data = JSONObject.parseArray(parse.getString("data"));
- JSONObject jsonObject =data.getJSONObject(0);
+ model.addAttribute("is3","true");
+ model.addAttribute("storeId",UserExt.getUser().getObjectId());
+ TStore byId = storeService.getById(UserExt.getUser().getObjectId());
+ System.out.println("=====byId======="+byId);
+ model.addAttribute("cityCode",byId.getCityCode());
+ model.addAttribute("provinceCode",byId.getProvinceCode());
+ model.addAttribute("oId",byId.getOperatorId());
+ return PREFIX+"ball_pre_add1.html";
+
+ }
+
+ if (objectType == 2){
+ model.addAttribute("is2","true");
+ model.addAttribute("oId",UserExt.getUser().getObjectId());
+ return PREFIX+"ball_pre_add2.html";
+ }
- //
+ model.addAttribute("is","${is}");
+
+
+
+ return PREFIX+"ball_pre_add.html";
+ }
+
+
+
+ @Autowired
+ private TGameConfigService gameConfigService;
+ @RequestMapping("/pre_edit/{id}")
+ public String pre_edit(@PathVariable("id") Integer id,Model model) {
+ Game game = ballClient.queryGame(id);
+ System.out.println("---------game------"+game);
+ model.addAttribute("game",game);
+ if (game.getOperationId() ==0){
+ model.addAttribute("opId","平台");
+ model.addAttribute("is","平台");
+ }else {
+ model.addAttribute("opId",game.getOperationId());
+ }
+
+ TGameConfig kc = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 14));
+ model.addAttribute("kc",kc);
+
+
+ TGameConfig sq = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 16));
+ model.addAttribute("sq",sq);
+
+
+ TGameConfig sm = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 13));
+ model.addAttribute("sm",sm);
+
+ TGameConfig sd = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 15));
+ model.addAttribute("sd",sd);
+
+ TGameConfig fk = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 1));
+ model.addAttribute("fk",fk);
+
+ TGameConfig jx = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 7));
+ model.addAttribute("jx",jx);
+
+ TGameConfig qw = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 8));
+ model.addAttribute("qw",qw);
+
+ TGameConfig zs = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 10));
+ model.addAttribute("zs",zs);
+
+ TGameConfig zs2 = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 11));
+ model.addAttribute("zs2",zs2);
+
+ TGameConfig ly = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 5));
+ model.addAttribute("ly",ly);
+
+ TGameConfig v3 = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 0));
+ model.addAttribute("v3",v3);
+
+
+ Integer objectType = UserExt.getUser().getObjectType();
+
+ if (objectType ==3){
+ model.addAttribute("is3","true");
+ model.addAttribute("storeId",UserExt.getUser().getObjectId());
+ TStore byId = storeService.getById(UserExt.getUser().getObjectId());
+ model.addAttribute("cityCode",byId.getCityCode());
+ model.addAttribute("provinceCode",byId.getProvinceCode());
+ model.addAttribute("oId",byId.getOperatorId());
+ return PREFIX+"ball_pre_edit1.html";
+
+ }
+ if (objectType == 2){
+ return PREFIX+"ball_pre_edit2.html";
+
+ }
+
+ return PREFIX+"ball_pre_edit.html";
+ }
+
+
+ @RequestMapping("/pre_info/{id}")
+ public String pre_info(@PathVariable("id") Integer id,Model model) {
+
+ Game game = ballClient.queryGame(id);
+ System.out.println("---------game------"+game);
+ model.addAttribute("game",game);
+
+
+ if (game.getOperationId() ==0){
+ model.addAttribute("opId","平台");
+ model.addAttribute("is","平台");
+ }else {
+ model.addAttribute("opId",game.getOperationId());
+ }
+
+ TGameConfig kc = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 14));
+ model.addAttribute("kc",kc);
+
+
+ TGameConfig sq = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 16));
+ model.addAttribute("sq",sq);
+
+
+ TGameConfig sm = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 13));
+ model.addAttribute("sm",sm);
+
+ TGameConfig sd = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 15));
+ model.addAttribute("sd",sd);
+
+ TGameConfig fk = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 1));
+ model.addAttribute("fk",fk);
+
+ TGameConfig jx = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 7));
+ model.addAttribute("jx",jx);
+
+ TGameConfig qw = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 8));
+ model.addAttribute("qw",qw);
+
+ TGameConfig zs = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 10));
+ model.addAttribute("zs",zs);
+
+ TGameConfig zs2 = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 11));
+ model.addAttribute("zs2",zs2);
+
+ TGameConfig ly = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 5));
+ model.addAttribute("ly",ly);
+
+ TGameConfig v3 = gameConfigService.getOne(new QueryWrapper<TGameConfig>().eq("otherId", id).eq("gameId", 0));
+ model.addAttribute("v3",v3);
+
+
+ return PREFIX+"ball_pre_info.html";
+ }
+
+ @Autowired
+ private ISiteBookingService iSiteBookingService;
+
+ @RequestMapping("/yueyue_edit/{id}")
+ public String yueyue_edit(@PathVariable("id") Integer id,Model model) {
+
+ List<String> strings1 = new ArrayList<>();
+
+ SiteBooking book = iSiteBookingService.getById(id);
+ model.addAttribute("item", book);
+ if (book.getMoney()!=null){
+ model.addAttribute("money",book.getMoney().split(","));}
+ String[] split1 = book.getTimes().split(";");
+ model.addAttribute("date",split1[0].substring(0,10));
+
+ for (String s : split1) {
+
+ String convertedValue = s.substring(11);
+ strings1.add(convertedValue);
+ }
+
+ System.out.println("========strings1====="+strings1);
+
+//时间段
+ List<String> strings = new ArrayList<>();
+// List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
+ List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10)));
+ System.out.println("=======siteBookings======"+siteBookings);
+ for (SiteBooking siteBooking : siteBookings) {
+ String[] split = siteBooking.getTimes().split(";");
+ for (String s : split) {
+
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+
+ }
+ System.out.println("======strings======="+strings);
+
+
+ List<OrderDto> timeRanges = new ArrayList<>();
+ Site site = siteClient.listById(book.getSiteId());
+ System.out.println("================"+site);
+ String appointmentStartTime = site.getAppointmentStartTime();
+ String appointmentEndTime = site.getAppointmentEndTime();
+ //生成用于比较日期是否超过的当前日期
+ LocalDate currentDate = LocalDate.now();
+ LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE);
+ boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
+ System.out.println("是否超过当前日期"+isAfterCurrentDate);
+ String currentTime = appointmentStartTime;
+ while (currentTime.compareTo(appointmentEndTime) < 0) {
+ String nextTime = null;
+ if("智慧场地".equals(site.getTypeName())){
+ nextTime=getNextTimeOne(currentTime);
+ }else {
+ nextTime= getNextTime(currentTime);
+ }
+
+
+ String timeRange = currentTime + "-" + nextTime;
+ OrderDto orderDto = new OrderDto();
+ orderDto.setTime(timeRange);
+
+ LocalTime currentTime1 = LocalTime.now();
+ LocalTime targetTime = LocalTime.parse(currentTime);
+
+ boolean hasExceeded = currentTime1.isAfter(targetTime);
+ //是否超过当前时间
+ if (hasExceeded){
+ orderDto.setState(0);
+ }
+ //是否已经预定
+ if (strings.contains(timeRange)){
+ orderDto.setState(0);
+ }
+ //日期是否超过
+ if (isAfterCurrentDate){
+ orderDto.setState(0);
+ }
+ //是否是当前场地当前日期预定的
+ if (strings1.contains(timeRange)){
+ orderDto.setState(1);
+ }
+
+ timeRanges.add(orderDto);
+ currentTime = nextTime;
+ }
+ System.out.println("-------------"+timeRanges);
+ model.addAttribute("timeRanges",timeRanges);
+
+System.out.println("======timeRanges========"+timeRanges);
+
+
+
+
+
Integer objectType = UserExt.getUser().getObjectType();
Integer objectId = UserExt.getUser().getObjectId();
- List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType();
- model.addAttribute("coursePackageType", tCoursePackageTypes);
+
String cityCode = null;
- if(objectType == 2){//城市管理员
- CityManager cityManager = cityManagerClient.queryCityManagerById(objectId);
- cityCode = cityManager.getCityCode();
- }
+
List<Map<String, Object>> list = storeService.queryProvince(cityCode);
model.addAttribute("province", list);
Object code = list.get(0).get("code");
@@ -178,11 +849,760 @@
model.addAttribute("city", list1);
String code1 = list1.get(0).get("code").toString();
List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1));
+ if(UserExt.getUser().getObjectType()==3){
+ list2=storeService.list(new QueryWrapper<TStore>().eq("id", UserExt.getUser().getObjectId()).eq("state", 1));
+ }
model.addAttribute("store", list2);
TStore store = list2.get(0);
List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1));
model.addAttribute("site", list3);
+ model.addAttribute("objType", UserExt.getUser().getObjectType());
+ // 查询运营商下所有门店 所有场地
+ if (objectType == 2){
+ List<TStore> stores = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId));
+ model.addAttribute("store", stores);
+ // 门店ids
+ List<Integer> storeIds = stores.stream().map(TStore::getId).collect(Collectors.toList());
+ List<TSite> sites = siteService.list(new QueryWrapper<TSite>().in("storeId", storeIds));
+ model.addAttribute("site", sites);
+ }
+ model.addAttribute("objectType", objectType);
+
+ return PREFIX+"yuyue_edit.html";
+ }
- return PREFIX+"ball_pre_add.html";
- }}
+
+
+@Autowired
+private IUserService userService;
+
+ @RequestMapping("/yueyue_info/{id}")
+ public String yueyue_info(@PathVariable("id") Integer id,Model model) {
+
+ List<String> strings1 = new ArrayList<>();
+
+ SiteBooking book = iSiteBookingService.getById(id);
+ model.addAttribute("item", book);
+ if (book.getMoney()!=null){
+ model.addAttribute("money",book.getMoney().split(","));}
+ String[] split1 = book.getTimes().split(";");
+ model.addAttribute("date",split1[0].substring(0,10));
+
+
+ User user = userService.getById(book.getCancelUserId());
+ if (user!=null) {
+ model.addAttribute("cancelUser", user.getName());
+ }
+
+
+ for (String s : split1) {
+
+ String convertedValue = s.substring(11);
+ strings1.add(convertedValue);
+ }
+ switch (book.getStatus()){
+ case 0:
+ model.addAttribute("state","待支付");
+ break;
+ case 1:
+ model.addAttribute("state","待核销");
+ break;
+ case 2:
+ model.addAttribute("state","已到店");
+ break;
+ case 3:
+ model.addAttribute("state","已完成");
+ break;
+ case 4:
+ model.addAttribute("state","已过期");
+ break;
+ case 5:
+ model.addAttribute("state","已取消");
+ break;
+ }
+ System.out.println("========strings1====="+strings1);
+
+//时间段
+ List<String> strings = new ArrayList<>();
+// List<SiteBooking> siteBookings = siteClient.listBooks(book.getSiteId());
+ List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", book.getSiteId()).like("times",split1[0].substring(0,10)));
+ System.out.println("=======siteBookings======"+siteBookings);
+ for (SiteBooking siteBooking : siteBookings) {
+ String[] split = siteBooking.getTimes().split(";");
+ for (String s : split) {
+
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+
+ }
+ System.out.println("======strings======="+strings);
+
+
+ List<OrderDto> timeRanges = new ArrayList<>();
+
+ TSite site = siteService.getById(book.getSiteId());
+ System.out.println("================"+site);
+ String appointmentStartTime = site.getAppointmentStartTime();
+ String appointmentEndTime = site.getAppointmentEndTime();
+ //生成用于比较日期是否超过的当前日期
+ LocalDate currentDate = LocalDate.now();
+ LocalDate parsedDate = LocalDate.parse(split1[0].substring(0,10), DateTimeFormatter.ISO_DATE);
+ boolean isAfterCurrentDate = parsedDate.isBefore(currentDate);
+ System.out.println("是否超过当前日期"+isAfterCurrentDate);
+ String currentTime = appointmentStartTime;
+ while (currentTime.compareTo(appointmentEndTime) < 0) {
+ String nextTime = getNextTime(currentTime);
+
+
+ String timeRange = currentTime + "-" + nextTime;
+ OrderDto orderDto = new OrderDto();
+ orderDto.setTime(timeRange);
+
+ LocalTime currentTime1 = LocalTime.now();
+ LocalTime targetTime = LocalTime.parse(currentTime);
+
+ boolean hasExceeded = currentTime1.isAfter(targetTime);
+ //是否超过当前时间
+ if (hasExceeded){
+ orderDto.setState(0);
+ }
+ //是否已经预定
+ if (strings.contains(timeRange)){
+ orderDto.setState(0);
+ }
+ //日期是否超过
+ if (isAfterCurrentDate){
+ orderDto.setState(0);
+ }
+ //是否是当前场地当前日期预定的
+ if (strings1.contains(timeRange)){
+ orderDto.setState(1);
+ }
+
+
+
+
+ timeRanges.add(orderDto);
+ currentTime = nextTime;
+ }
+ System.out.println("-------------"+timeRanges);
+ model.addAttribute("timeRanges",timeRanges);
+ System.out.println("======timeRanges========"+timeRanges);
+ Integer objectType = UserExt.getUser().getObjectType();
+ model.addAttribute("province", book.getProvince());
+ model.addAttribute("city", book.getCity());
+ model.addAttribute("store",storeService.getById(book.getStoreId()).getName());
+ model.addAttribute("siteName",siteService.getById(book.getSiteId()).getName());
+ model.addAttribute("objectType", objectType);
+ return PREFIX+"yuyue_info.html";
+ }
+
+
+
+ @RequestMapping("/paike")
+ public String paike(Model model) {
+
+ return PREFIX+"paike.html";
+ }
+
+
+
+
+
+
+ @RequestMapping("/getStudentTotal")
+ @ResponseBody
+ public List<Map<String, Object>>getStudentTotal(@RequestBody StudentQeryDto studentQeryDto) {
+ if (studentQeryDto.getTimes()!=null&& studentQeryDto.getTimes()!=""){
+ String[] split = studentQeryDto.getTimes().split(",");
+ studentQeryDto.setStart(split[0]);
+ studentQeryDto.setEnd(split[1]);
+ }
+ // 如果当前登陆人是运营商 只查询该运营商下的课包的数据
+ if(UserExt.getUser().getObjectType() == 2){
+ // 先查询这个运营商下的所有门店ids
+ List<Integer> storeIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", UserExt.getUser().getObjectId()))
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ // 根据门店ids 查询所有课包ids
+ List<TCoursePackage> tCoursePackages = new ArrayList<>();
+ for (Integer storeId : storeIds) {
+ List<TCoursePackage> coursePackageByStoreId = coursePackageClient.getCoursePackageByStoreId(storeId);
+ tCoursePackages.addAll(coursePackageByStoreId);
+ }
+
+ List<Integer> coursePackageByStoreIds = tCoursePackages.stream().distinct().map(TCoursePackage::getId).collect(Collectors.toList());
+ if (tCoursePackages.isEmpty()){
+ coursePackageByStoreIds.add(-1);
+ }
+ studentQeryDto.setCoursePackageIds(coursePackageByStoreIds);
+
+ }
+ // 如果当前登陆人是门店 只查询该门店下的课包的数据
+ if(UserExt.getUser().getObjectType() == 3){
+ // 先查询这个运营商下的所有门店ids
+
+ List<Integer> storeIds = new ArrayList<>();
+ storeIds.add(UserExt.getUser().getObjectId());
+ // 根据门店ids 查询所有课包ids
+ List<TCoursePackage> tCoursePackages = new ArrayList<>();
+ for (Integer storeId : storeIds) {
+ List<TCoursePackage> coursePackageByStoreId = coursePackageClient.getCoursePackageByStoreId(storeId);
+ tCoursePackages.addAll(coursePackageByStoreId);
+ }
+ List<Integer> coursePackageByStoreIds = tCoursePackages.stream().distinct().map(TCoursePackage::getId).collect(Collectors.toList());
+ if (tCoursePackages.isEmpty()){
+ coursePackageByStoreIds.add(-1);
+ }
+ studentQeryDto.setCoursePackageIds(coursePackageByStoreIds);
+ }
+
+ List<Map<String, Object>> pays = coursePackageClient.getStudentTotal(studentQeryDto);
+ return pays;
+ }
+
+
+
+ @RequestMapping("/bypac")
+ @ResponseBody
+ public List<Map<String, Object>>bypac(@RequestBody PacQueryDto pacQueryDto) {
+ if (pacQueryDto.getTimes()!=null&& pacQueryDto.getTimes()!=""){
+ String[] split = pacQueryDto.getTimes().split(",");
+ pacQueryDto.setStart(split[0]);
+ pacQueryDto.setEnd(split[1]);
+ }
+ if (UserExt.getUser().getObjectType() == 2){
+ QueryWrapper<TStore> queryWrapper = new QueryWrapper<TStore>().eq("operatorId", UserExt.getUser().getObjectId()).eq("state", 1);
+ if(ToolUtil.isNotEmpty(pacQueryDto.getCityCode())){
+ queryWrapper.eq("cityCode", pacQueryDto.getCityCode());
+ }
+ if(ToolUtil.isNotEmpty(pacQueryDto.getName())){
+ queryWrapper.like("name", pacQueryDto.getName());
+ }
+ List<Integer> storeIds = storeService.list(queryWrapper)
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ storeIds.add(-1);
+ pacQueryDto.setStoreIds(storeIds);
+ }else{
+ QueryWrapper<TStore> queryWrapper = new QueryWrapper<TStore>().eq("state", 1);
+ if(ToolUtil.isNotEmpty(pacQueryDto.getCityCode())){
+ queryWrapper.eq("cityCode", pacQueryDto.getCityCode());
+ }
+ if(ToolUtil.isNotEmpty(pacQueryDto.getName())){
+ queryWrapper.like("name", pacQueryDto.getName());
+ }
+ List<Integer> storeIds = storeService.list(queryWrapper)
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ storeIds.add(-1);
+ pacQueryDto.setStoreIds(storeIds);
+ }
+ List<Map<String, Object>> pays = coursePackageClient.bypac(pacQueryDto);
+ return pays;
+ }
+
+
+ @RequestMapping("/yuyue")
+ public String yuyue(Model model) {
+ List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ model.addAttribute("list",list);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+
+ return PREFIX+"yuyue.html";
+ }
+
+
+ @RequestMapping("/jieshao")
+ public String jieshao(Model model) {
+ List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+ model.addAttribute("list",list);
+ String roleid = UserExt.getUser().getRoleid();
+ model.addAttribute("role",roleid);
+
+ return PREFIX+"jieshao.html";
+ }
+
+
+
+ /**
+ * 获取有效期
+ */
+ @RequestMapping("/yuyuelist")
+ @ResponseBody
+ public List<Map<String,Object>> yuyuelist(BookingQuery bookingQuery) {
+ Integer objectType = UserExt.getUser().getObjectType();
+
+ if(objectType==2){
+ List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>()
+ .eq("operatorId", UserExt.getUser().getObjectId()))
+ .stream().map(TStore::getId).collect(Collectors.toList());
+ bookingQuery.setStoreIds(operatorId);
+ }
+ if(objectType==3){
+ bookingQuery.setStoreId(UserExt.getUser().getObjectId());
+ }
+ List<Map<String,Object>> orders = ballClient.listorder(bookingQuery);
+ System.out.println("=======ballQueryDto=========="+bookingQuery);
+ for (Map<String, Object> vo : orders) {
+
+
+ if (vo.get("payType")!=null && Integer.parseInt(vo.get("payType").toString()) == 1){
+ vo.put("payType","微信");
+ }else if (vo.get("payType")!=null && Integer.parseInt(vo.get("payType").toString()) == 2){
+ vo.put("payType","支付宝");
+ }else if (vo.get("payType")!=null && Integer.parseInt(vo.get("payType").toString()) == 3){
+ vo.put("payType","玩湃币");
+ }else if (vo.get("payType")!=null && Integer.parseInt(vo.get("payType").toString()) == 4){
+ if (vo.get("payUserId")!=null){
+ User payUserId = userService.getById(Integer.parseInt(vo.get("payUserId").toString()));
+ if(payUserId!=null){
+ vo.put("payType","手动支付"+"-"+payUserId.getName());
+ }
+ }
+ }
+
+// if (Integer.parseInt(vo.get("status").toString())==1 ){
+// String dateTimeStr = vo.get("times").toString();
+// String formattedDateTimeStr = dateTimeStr.substring(0, 11) + dateTimeStr.substring(17);
+//
+// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+// try {
+// Date date = sdf.parse(formattedDateTimeStr);
+// if (new Date().after(date)){
+// vo.put("status",4);
+// }
+//
+// System.out.println(date);
+// } catch (ParseException e) {
+// e.printStackTrace();
+// }
+// }
+ }
+ return orders;
+ }
+
+
+ @RequestMapping("/addjs")
+ @ResponseBody
+ public ResultUtil addjs( @RequestBody JsDto jsDto) {
+ System.out.println("=======jsDto========"+jsDto);
+ storeService.insert(jsDto);
+ return new ResultUtil(0,0,"保存成功",null,null);
+
+ }
+
+ @RequestMapping("/get/{id}")
+ @ResponseBody
+ public JsDto getJs( @PathVariable("id") Integer id) {
+ JsDto jsDto = storeService.get(id);
+ return jsDto;
+ }
+
+
+ @RequestMapping("/getMoney/{id}/{type}")
+ @ResponseBody
+ public List<Double> getMoney( @PathVariable("id") Integer id,@PathVariable("type") Integer type) {
+ List<Double> doubles = new ArrayList<>();
+ Site site = siteClient.listById(id);
+ System.out.println("=====stie====="+site);
+ System.out.println("=====type====="+type);
+
+ if (type == 1 ){
+ doubles.add(site.getCashPrice());
+ doubles.add(Double.valueOf(site.getPlayPaiCoin()));
+ return doubles;
+ }else {
+ doubles.add(site.getCashPriceOne());
+ doubles.add(site.getPlayPaiCoinOne());
+ return doubles;
+ }
+
+ }
+ @Resource
+ private SiteClient siteClient;
+
+
+
+ @Autowired
+ private ISiteLockService siteLockService;
+
+
+ @RequestMapping("/yuyuetimes/{id}")
+ @ResponseBody
+ public List<OrderDto> yuyuetimes(@PathVariable("id") Integer id,String date,String siteName,String halfName) throws ParseException {
+// System.out.println("=======date======"+date);
+//
+// List<String> strings = new ArrayList<>();
+//
+//// List<SiteBooking> siteBookings = siteClient.listBooks(id);
+// List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>()
+// .eq("siteId", id).like("times",date));
+//System.out.println("=======siteBookings======"+siteBookings);
+// for (SiteBooking siteBooking : siteBookings) {
+// String[] split = siteBooking.getTimes().split(";");
+// for (String s : split) {
+//
+// String convertedValue = s.substring(11);
+// strings.add(convertedValue);
+// }
+//
+// }
+// System.out.println("======strings======="+strings);
+//
+// List<OrderDto> timeRanges = new ArrayList<>();
+//
+// Site site = siteClient.listById(id);
+//System.out.println("================"+site);
+// String appointmentStartTime = site.getAppointmentStartTime();
+// String appointmentEndTime = site.getAppointmentEndTime();
+//
+// String currentTime = appointmentStartTime;
+// while (currentTime.compareTo(appointmentEndTime) < 0){
+// String nextTime = null;
+// if("智慧场地".equals(site.getTypeName())){
+// nextTime=getNextTimeOne(currentTime);
+// }else {
+// nextTime= getNextTime(currentTime);
+// }
+//
+// String timeRange = currentTime + "-" + nextTime;
+// OrderDto orderDto = new OrderDto();
+// orderDto.setTime(timeRange);
+//
+// LocalTime currentTime1 = LocalTime.now();
+// LocalTime targetTime = LocalTime.parse(currentTime);
+//
+// boolean hasExceeded = currentTime1.isAfter(targetTime);
+// if (hasExceeded){
+// orderDto.setState(0);
+// }
+// if (strings.contains(timeRange)){
+// orderDto.setState(0);
+// }
+//
+//
+// timeRanges.add(orderDto);
+// currentTime = nextTime;
+// }
+// System.out.println("-------------"+timeRanges);
+//
+// return timeRanges;
+
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ Date now = new Date();
+
+ System.out.println("=======date======" + date);
+ List<String> strings = new ArrayList<>();
+
+ List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).eq("nextName", siteName).like("times", date));
+
+ if (siteName == null || siteName.equals("")) {
+ siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status", 5).like("times", date));
+ }
+
+
+ System.out.println("=======siteBookings======" + siteBookings);
+ for (SiteBooking siteBooking : siteBookings) {
+
+
+ String[] split = siteBooking.getTimes().split(";");
+
+ if (siteBooking.getIsHalf() == 2) {
+ for (String s : split) {
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+ } else {
+ if (halfName == null) {
+ for (String s : split) {
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+ }
+
+ if (siteBooking.getHalfName().equals(halfName)) {
+ for (String s : split) {
+ String convertedValue = s.substring(11);
+ strings.add(convertedValue);
+ }
+
+ }
+ }
+ }
+ System.out.println("======strings=======" + strings);
+
+
+ List<OrderDto> timeRanges = new ArrayList<>();
+
+
+ TSite site = siteService.getById(id);
+ System.out.println("================" + site);
+ String appointmentStartTime = site.getAppointmentStartTime();
+ String appointmentEndTime = site.getAppointmentEndTime();
+
+ String currentTime = appointmentStartTime;
+ while (currentTime.compareTo(appointmentEndTime) < 0) {
+ String nextTime = null;
+ if ("智慧场地".equals(site.getTypeName())) {
+ nextTime = getNextTimeOne(currentTime);
+ } else {
+ nextTime = getNextTime(currentTime);
+ }
+
+
+ String timeRange = currentTime + "-" + nextTime;
+ OrderDto orderDto = new OrderDto();
+ orderDto.setTime(timeRange);
+
+ LocalTime currentTime1 = LocalTime.now();
+ LocalTime targetTime = LocalTime.parse(currentTime);
+
+ boolean hasExceeded = currentTime1.isAfter(targetTime);
+// if (hasExceeded){
+// orderDto.setSelectable(0);
+// }
+ if (strings.contains(timeRange)) {
+
+ orderDto.setState(0);
+ } else {
+
+ String stime = date + " " + currentTime;
+ String etime = date + " " + nextTime;
+ Date isPass = format.parse(etime);
+
+
+
+ orderDto.setState(1);
+ // 查出lock
+ List<SiteLock> list = siteLockService.list(new LambdaQueryWrapper<SiteLock>().eq(SiteLock::getSiteId, id));
+ for (SiteLock siteLock : list) {
+ boolean stringDateBetween = DateComparisonExample.isStringDateBetween(stime + " - " + etime, siteLock.getStartTime(), siteLock.getEndTime());
+ if (stringDateBetween) {
+ orderDto.setState(0);
+ }
+ if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())) {
+ orderDto.setState(0);
+ }
+ if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())) {
+ orderDto.setState(0);
+ }
+
+ }
+ if (isPass.before(now)){
+ orderDto.setState(0);
+ }
+
+ }
+
+
+ timeRanges.add(orderDto);
+ currentTime = nextTime;
+ }
+ System.out.println("-------------" + timeRanges);
+
+ return timeRanges;
+
+
+
+ }
+
+
+ public static String getNextTime(String currentTime) {
+ String[] parts = currentTime.split(":");
+ int hour = Integer.parseInt(parts[0]);
+ int minute = Integer.parseInt(parts[1]);
+
+ if (minute == 30) {
+ hour++;
+ minute = 0;
+ } else {
+ minute = 30;
+ }
+
+ return String.format("%02d:%02d", hour, minute);
+
+
+ }
+
+
+ public static String getNextTimeOne(String currentTime) {
+
+ String[] parts = currentTime.split(":");
+ int hour = Integer.parseInt(parts[0]);
+ int minute = Integer.parseInt(parts[1]);
+
+ if (minute == 45) {
+ hour++;
+ minute = 0;
+ } else if (minute == 0){
+ minute = 15;
+ }else if (minute == 15){
+ minute = 30;
+ }else if (minute == 30){
+ minute = 45;
+ }
+
+ return String.format("%02d:%02d", hour, minute);
+
+ }
+
+
+ @RequestMapping("/halfName/{id}")
+ @ResponseBody
+ public String[] halfName(@PathVariable("id") Integer id) {
+ TSite byId = siteService.getById(id);
+ String[] split = byId.getHalfName().split(",");
+ System.out.println("=-============"+split);
+
+ return split;
+ }
+
+ @RequestMapping("/nextName/{id}")
+ @ResponseBody
+ public String[] nextName(@PathVariable("id") Integer id) {
+ TSite byId = siteService.getById(id);
+ String[] split = byId.getNextName().split(",");
+ System.out.println("=-============"+split);
+
+ return split;
+ }
+
+
+ @RequestMapping("/yuyue_add")
+ public String yuyueadd(Model model) {
+ Integer objectType = UserExt.getUser().getObjectType();
+ Integer objectId = UserExt.getUser().getObjectId();
+ String cityCode = null;
+ if(objectType == 2){//城市管理员
+ // 获取到这个运营商下面的所有门店
+ List<TStore> operatorId = storeService.list(new QueryWrapper<TStore>().eq("operatorId",objectId));
+ model.addAttribute("store", operatorId);
+ List<Coach> coach = coachClient.queryCoachByOperatorId(objectId);
+ model.addAttribute("coach", coach);
+ // 如果该运营商下面没有门店
+ if (operatorId.size()==0){
+ List<TStore> o = new ArrayList<>();
+ List<TSite> tSites = new ArrayList<>();
+ model.addAttribute("store", o);
+ model.addAttribute("site", tSites);
+ }else{
+ List<TSite> storeId = siteService.list(new QueryWrapper<TSite>()
+ .eq("storeId", operatorId.get(0).getId()));
+ model.addAttribute("site", storeId);
+ }
+ }else {
+ List<Map<String, Object>> list = storeService.queryProvince(cityCode);
+ model.addAttribute("province", list);
+ Object code = list.get(0).get("code");
+ List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode);
+ model.addAttribute("city", list1);
+ String code1 = list1.get(0).get("code").toString();
+ List<TStore> list2 =new ArrayList<>();
+ if(objectType==3){
+ list2 = storeService.list(new QueryWrapper<TStore>().eq("id", objectId).eq("state", 1));
+ }else {
+ list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1));
+ }
+ model.addAttribute("store", list2);
+
+ TStore store = list2.get(0);
+ List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1));
+ model.addAttribute("site", list3);
+ }
+ model.addAttribute("objectType",objectType);
+ return PREFIX+"yuyue_add.html";
+ }
+
+
+
+ @RequestMapping("/ordersave")
+ @ResponseBody
+ public ResultUtil ordersave(SiteBooking siteBooking){
+ siteBooking.setInsertTime(new Date());
+ siteBooking.setState(1);
+ siteBooking.setStatus(0);
+ siteBooking.setAddType(1);
+
+ //存开始和结束时间
+ String times = siteBooking.getTimes();
+ String[] dates = times.split(";");
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ try {
+ String start = dates[0];
+ String startDateStr = start.substring(0, start.lastIndexOf("-"));
+ Date startDate = format.parse(startDateStr);
+
+ String end = dates[dates.length - 1];
+ String[] str = end.split(" ");
+ String endDateStr = str[0] + " " + str[1].substring(str[1].indexOf("-") + 1);
+ Date endDate = format.parse(endDateStr);
+ siteBooking.setStartTime(startDate);
+ siteBooking.setEndTime(endDate);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ siteBooking.setPayType(2);
+ //存多少钱
+ String money = siteBooking.getMoney();
+ String[] moneys = money.split(",");
+ siteBooking.setPayMoney(Double.valueOf(moneys[0]));
+ // 查询当前预约人是否是会员
+ String phone = siteBooking.getPhone();
+ String booker = siteBooking.getBooker();
+ TAppUser appUserByPhone = appUserClient.getAppUserByPhone(phone);
+ TStore byId1 = storeService.getById(siteBooking.getStoreId());
+ if (appUserByPhone== null){
+ // 则当前预约人不是会员 添加到会员表里
+ TAppUser tAppUser = new TAppUser();
+ tAppUser.setName(booker);
+ tAppUser.setPhone(phone);
+ tAppUser.setProvince(byId1.getProvince());
+ tAppUser.setProvinceCode(byId1.getProvinceCode());
+ tAppUser.setCity(byId1.getCity());
+ tAppUser.setCityCode(byId1.getCityCode());
+ tAppUser.setIsVip(0);
+ tAppUser.setInsertType(UserExt.getUser().getObjectType());
+ tAppUser.setAddUserId(UserExt.getUser().getObjectId());
+ tAppUser.setInsertTime(new Date());
+ tAppUser.setPassword(MD5.md5("111111"));
+ appUserClient.addAppUser1(tAppUser);
+ TAppUser appUserByPhone1 = appUserClient.getAppUserByPhone(phone);
+ siteBooking.setAppUserId(appUserByPhone1.getId());
+ }else{
+ siteBooking.setAppUserId(appUserByPhone.getId());
+ }
+ // 如果是运营商添加的话 根据门店的省市来存储
+ if (UserExt.getUser().getObjectType() == 2){
+ TStore byId = storeService.getById(siteBooking.getStoreId());
+ siteBooking.setProvince(byId.getProvince());
+ siteBooking.setProvinceCode(byId.getProvinceCode());
+ siteBooking.setCity(byId.getCity());
+ siteBooking.setCityCode(byId.getCityCode());
+ }
+ if (UserExt.getUser().getObjectType() == 3){
+ TStore byId = storeService.getById(UserExt.getUser().getObjectId());
+ siteBooking.setProvince(byId.getProvince());
+ siteBooking.setProvinceCode(byId.getProvinceCode());
+ siteBooking.setCity(byId.getCity());
+ siteBooking.setCityCode(byId.getCityCode());
+ }
+
+ siteClient.addSiteBooking(siteBooking);
+ System.out.println("================="+siteBooking);
+ return new ResultUtil<>(null,200,null,null,null);
+ }
+
+ @RequestMapping("/orderedit")
+ @ResponseBody
+ public ResultUtil orderedit(SiteBooking siteBooking){
+ iSiteBookingService.updateById(siteBooking);
+
+ System.out.println("================="+siteBooking);
+
+ return new ResultUtil<>(null,200,null,null,null);
+ }
+
+}
--
Gitblit v1.7.1