From 99367ea1c11a68b420936e7f7db5fa7367da4f44 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期三, 22 一月 2025 11:44:54 +0800 Subject: [PATCH] 全部代码、数据库提交 --- xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java | 216 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 184 insertions(+), 32 deletions(-) diff --git a/xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java b/xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java index c826832..00b076f 100644 --- a/xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java +++ b/xinquan-modules/xinquan-system/src/main/java/com/xinquan/system/controller/HomeController.java @@ -3,10 +3,18 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; +import com.xinquan.common.core.constant.CacheConstants; import com.xinquan.common.core.domain.R; +import com.xinquan.common.core.exception.ServiceException; +import com.xinquan.common.core.utils.DateUtils; import com.xinquan.common.core.utils.WebUtils; import com.xinquan.common.core.utils.page.BeanUtils; import com.xinquan.common.core.utils.page.PageDTO; +import com.xinquan.common.core.web.domain.BaseModel; +import com.xinquan.common.log.annotation.Log; +import com.xinquan.common.log.enums.BusinessType; +import com.xinquan.common.redis.service.RedisService; +import com.xinquan.common.security.utils.SecurityUtils; import com.xinquan.course.api.domain.Course; import com.xinquan.course.api.domain.CourseCategory; import com.xinquan.course.api.domain.CourseDTO; @@ -15,10 +23,15 @@ import com.xinquan.order.api.domain.Order; import com.xinquan.order.api.domain.vo.HomeDto; import com.xinquan.order.api.feign.RemoteOrderService; +import com.xinquan.system.api.domain.SysUser; import com.xinquan.system.api.domain.vo.HomeVO; import com.xinquan.system.domain.Banner; +import com.xinquan.system.domain.Turn; +import com.xinquan.system.domain.Version; import com.xinquan.system.domain.export.HomeExport; import com.xinquan.system.service.BannerService; +import com.xinquan.system.service.ISysUserService; +import com.xinquan.system.service.TurnService; import com.xinquan.user.api.feign.RemoteAppUserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -35,6 +48,9 @@ import java.math.BigDecimal; import java.net.URLEncoder; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -60,6 +76,45 @@ private RemoteMeditationService remoteMeditationService; @Resource private RemoteOrderService remoteOrderService; + @Resource + private ISysUserService sysUserService; + @Resource + private RedisService redisService; + @Resource + private TurnService turnService; + @GetMapping("/getTurn") + @ApiOperation(value = "IOS获取是否跳转三方支付", tags = "IOS获取是否跳转三方支付") + public R getTurn() { + Turn one = turnService.getOne(null); + if (one.getIsTurn()==1){ + return R.ok(true); + }else{ + return R.ok(false); + } + } + + + + @GetMapping("/updatePassword") + @ApiOperation(value = "管理后台-修改密码", tags = "管理后台-修改密码") + @Log(title = "【修改密码】修改密码", businessType = BusinessType.UPDATE) + + public R updatePassword(String userName,String password) { + SysUser one = sysUserService.lambdaQuery() + .eq(SysUser::getUserType, "00") + .eq(SysUser::getDelFlag, "0") + .eq(SysUser::getUserName, userName).one(); + + if (one!=null){ +// if (one.getStatus().equals("1")){ +// return R.fail("账号已被冻结"); +// } + one.setPassword(SecurityUtils.encryptPassword(password)); + sysUserService.updateById(one); + return R.ok(); + } + return R.fail("修改失败,账号不存在"); + } @PostMapping("/homeStatistics") @ApiOperation(value = "首页统计",tags = "管理后台-首页统计") public R<HomeVO> bannerList(@RequestBody HomeDto homeDto) { @@ -112,9 +167,10 @@ if (!StringUtils.hasLength(homeDto.getTime())){ homeDto.setTime("1"); } - if(homeDto.getTimeType() == null){ - homeDto.setTimeType(1); + if (homeDto.getTimeType()==null){ + homeDto.setTimeType(5); } + List<Order> data6 = remoteOrderService.getOrderList(homeDto.getStatus(), homeDto.getTimeType(), homeDto.getTime()).getData(); homeVO.setOrderCount(data6.size()+""); BigDecimal bigDecimal = new BigDecimal("0"); @@ -127,7 +183,7 @@ Map<String, Object> x = new HashMap<>(); Map<String, Object> x1 = new HashMap<>(); Map<String, Object> x2 = new HashMap<>(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd"); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("d"); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); switch (homeDto.getTimeType()){ @@ -184,14 +240,14 @@ // 周 // 获取本周7天 格式为dd - calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); for (int i = 1; i <= 7; i++) { Date time = calendar.getTime(); String format1 = simpleDateFormat.format(time); x.put(format1,0); x1.put(format1,0); x2.put(format1,0); - calendar.add(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.DAY_OF_WEEK, 1); } break; case 4: @@ -207,28 +263,76 @@ calendar.add(Calendar.DAY_OF_MONTH, 1); } break; - } + case 5: + String startTime = null; + String endTime = null; + if (org.springframework.util.StringUtils.hasLength(homeDto.getTime())){ + String[] split = homeDto.getTime().split(" - "); + startTime = split[0]; + endTime = split[1]; + // 将其转化为LocalDate + LocalDate startLocalDate = LocalDate.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDate endLocalDate = LocalDate.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + // 将startLocalDate到endLocalDate之间的每一天的日期,包括startLocalDate和endLocalDate + List<LocalDate> localDates = new ArrayList<>(); + while (!startLocalDate.isAfter(endLocalDate)) { + // 将startLocalDate转化为格式为yyyy-MM-dd格式字符串 + String format1 = startLocalDate.format(DateTimeFormatter.ofPattern("d")); + x.put(format1,0); + x1.put(format1,0); + x2.put(format1,0); + localDates.add(startLocalDate); + startLocalDate = startLocalDate.plusDays(1); + } + } + + break; + } +// if (StringUtils.hasLength(homeDto.getTime())&&(!homeDto.getTime().equals("1"))){ +// List<LocalDate> localDates = generateDateList(homeDto.getTime()); +// for (LocalDate localDate : localDates) { +// x.put(localDate+"",0); +// x1.put(localDate+"",0); +// x2.put(localDate+"",0); +// } +// +// } for (Order order : data6) { int value = order.getCreateTime().getMonth().getValue(); int value1 = order.getCreateTime().getDayOfMonth(); + LocalDateTime createTime = order.getCreateTime(); + LocalDate localDate = createTime.toLocalDate(); switch (order.getOrderFrom()){ case 1: switch (homeDto.getTimeType()){ case 1: // 获取订单月份 - x.put(value+"",(int)x.get(value+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x.get(value+"")!=null){ + x.put(value+"",(int)x.get(value+"")+1); + } break; case 2: Date date = new Date(); String format = simpleDateFormat.format(date); - x.put(format,(int)x.get(format)+1); + if (StringUtils.hasLength(homeDto.getTime())&&x.get(value1+"")!=null){ + x.put(value1+"",(int)x.get(value1+"")+1); + } break; case 3: - x.put(value1+"",(int)x.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x.get(value1+"")!=null){ + x.put(value1+"",(int)x.get(value1+"")+1); + } break; case 4: - x.put(value1+"",(int)x.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x.get(value1+"")!=null){ + x.put(value1+"",(int)x.get(value1+"")+1); + } + break; + case 5: + if (StringUtils.hasLength(homeDto.getTime())&&x.get(value1+"")!=null){ + x.put(value1+"",(int)x.get(value1+"")+1); + } break; } break; @@ -236,18 +340,32 @@ switch (homeDto.getTimeType()){ case 1: // 获取订单月份 - x1.put(value+"",(int)x1.get(value+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x1.get(value+"")!=null){ + x1.put(value+"",(int)x1.get(value+"")+1); + } break; case 2: Date date = new Date(); String format = simpleDateFormat.format(date); - x1.put(format,(int)x1.get(format)+1); + if (StringUtils.hasLength(homeDto.getTime())&&x1.get(value1+"")!=null){ + x1.put(value1+"",(int)x1.get(value1+"")+1); + + } break; case 3: - x1.put(value1+"",(int)x1.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x1.get(value1+"")!=null){ + x1.put(value1+"",(int)x1.get(value1+"")+1); + } break; case 4: - x1.put(value1+"",(int)x1.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x1.get(value1+"")!=null){ + x1.put(value1+"",(int)x1.get(value1+"")+1); + } + break; + case 5: + if (StringUtils.hasLength(homeDto.getTime())&&x1.get(value1+"")!=null){ + x1.put(value1+"",(int)x1.get(value1+"")+1); + } break; } break; @@ -255,33 +373,40 @@ switch (homeDto.getTimeType()){ case 1: // 获取订单月份 - x2.put(value+"",(int)x2.get(value+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x2.get(value+"")!=null){ + x2.put(value+"",(int)x2.get(value+"")+1); + } break; case 2: Date date = new Date(); String format = simpleDateFormat.format(date); - x2.put(format,(int)x2.get(format)+1); + if (StringUtils.hasLength(homeDto.getTime())&&x2.get(value1+"")!=null){ + x2.put(value1+"",(int)x2.get(value1+"")+1); + + } break; case 3: - x2.put(value1+"",(int)x2.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x2.get(value1+"")!=null){ + + x2.put(value1+"",(int)x2.get(value1+"")+1); + } break; case 4: - x2.put(value1+"",(int)x2.get(value1+"")+1); + if (StringUtils.hasLength(homeDto.getTime())&&x2.get(value1+"")!=null){ + + x2.put(value1+"",(int)x2.get(value1+"")+1); + } + break; + case 5: + if (StringUtils.hasLength(homeDto.getTime())&&x2.get(value1+"")!=null){ + x2.put(value1+"",(int)x2.get(value1+"")+1); + } break; } break; } } - switch (homeDto.getTimeType()){ - case 1: - break; - case 2: - break; - case 3: - break; - case 4: - break; - } + // 对x的key值进行从小到大排序 Map<String, Object> sortedMap = new TreeMap<>(Comparator.reverseOrder()); sortedMap.putAll(x); @@ -294,14 +419,27 @@ homeVO.setOrderVipList(sortedMap2); return R.ok(homeVO); } + public static List<LocalDate> generateDateList(String dateRange) { + // 定义日期格式 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + // 解析日期范围字符串 + String[] dates = dateRange.split(" - "); + LocalDate startDate = LocalDate.parse(dates[0], formatter); + LocalDate endDate = LocalDate.parse(dates[1], formatter); + + // 创建日期列表 + List<LocalDate> dateList = new ArrayList<>(); + for (LocalDate date = startDate; !date.isAfter(endDate); date = date.plusDays(1)) { + dateList.add(date); + } + + return dateList; + } @PutMapping("/homeStatisticsExport") @ApiOperation(value = "首页统计-导出",tags = "管理后台-首页统计") public void homeStatisticsExport() { HomeVO homeVO = new HomeVO(); -// homeVO.setOrderMoney(); -// homeVO.setOrderCount(); -// homeVO.setOrderList(); -// homeVO.setOrderTimeList(); // 查询用户总数、非会员数、月卡会员数、季卡会员数、年卡会员数 String data = remoteAppUserService.getUserCount().getData(); if (data!=null){ @@ -343,6 +481,16 @@ HomeExport homeExport = new HomeExport(); BeanUtils.copyProperties(homeVO, homeExport); + if (data1!=null){ + String[] split = data1.split(","); + homeVO.setCourseCount(split[0]); + homeVO.setCourseFree(split[1]); + homeVO.setCourseVip(split[2]); + homeVO.setCoursePay(split[3]); + homeVO.setCourseOffOnline(split[4]); + Integer i = Integer.valueOf(homeExport.getCourseCount()); + Integer i1 = Integer.valueOf(split[4]); + } List<HomeExport> homeExports = new ArrayList<>(); homeExports.add(homeExport); Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), HomeExport.class, homeExports); @@ -409,6 +557,8 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "ids", name = "ids", required = true, dataType = "String"), }) + @Log(title = "【banner】批量删除banner", businessType = BusinessType.DELETE) + public R deleteBatch( @RequestParam(value = "ids") String ids) { @@ -418,6 +568,7 @@ } @PostMapping("/addBanner") @ApiOperation(value = "添加banner",tags = "管理后台banner") + @Log(title = "【banner】添加", businessType = BusinessType.INSERT) public R addBanner(@RequestBody Banner banner) { @@ -426,6 +577,7 @@ } @PostMapping("/updateBanner") @ApiOperation(value = "修改banner",tags = "管理后台banner") + @Log(title = "【banner】修改", businessType = BusinessType.UPDATE) public R updateBanner(@RequestBody Banner banner) { -- Gitblit v1.7.1