From 1789e777865d8f3bdd750f3ad58f8123bd6066c0 Mon Sep 17 00:00:00 2001 From: xiezhijun <15270898033@163.com> Date: Fri, 9 Apr 2021 19:59:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=A1=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/SysWxUserLogController.java | 44 ++++- .../common/utils/oss/AliyunOSSUtils.java | 33 +++- .../stdiet/custom/domain/SysWxUserLog.java | 16 +- .../mapper/custom/SysWxUserLogMapper.xml | 11 +- stdiet-ui/src/api/custom/wxUserLog.js | 13 +- .../PunchLog/PunchLogDetail/index.vue | 186 ++++++++++++++++++ .../src/views/custom/wxUserLog/index.vue | 114 ++++++++--- 7 files changed, 376 insertions(+), 41 deletions(-) create mode 100644 stdiet-ui/src/components/PunchLog/PunchLogDetail/index.vue diff --git a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java index 0faf52b4a..cf4eb42d9 100644 --- a/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java +++ b/stdiet-admin/src/main/java/com/stdiet/web/controller/custom/SysWxUserLogController.java @@ -7,6 +7,7 @@ import com.stdiet.common.core.domain.AjaxResult; import com.stdiet.common.core.page.TableDataInfo; import com.stdiet.common.enums.BusinessType; import com.stdiet.common.utils.StringUtils; +import com.stdiet.common.utils.oss.AliyunOSSUtils; import com.stdiet.common.utils.poi.ExcelUtil; import com.stdiet.custom.domain.SysWxUserInfo; import com.stdiet.custom.domain.SysWxUserLog; @@ -19,7 +20,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; -import java.util.List; +import java.time.LocalDate; +import java.util.*; /** * 微信用户记录Controller @@ -80,7 +82,6 @@ public class SysWxUserLogController extends BaseController { @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") String id) { SysWxUserLog sysWxUserLog = sysWxUserLogService.selectSysWxUserLogById(id); - System.out.println(sysWxUserLog.getPhone()); return AjaxResult.success(sysWxUserLog); } @@ -149,4 +150,43 @@ public class SysWxUserLogController extends BaseController { int count = sysWxUserLogService.checkWxLogInfoCount(openid); return AjaxResult.success(count); } + + /** + * 获取微信用户记录详细信息 + */ + @PreAuthorize("@ss.hasPermi('custom:wxUserLog:query')") + @GetMapping(value = "/getPunchLogDetail/{id}") + public AjaxResult getPunchLogDetail(@PathVariable("id") String id) { + SysWxUserLog sysWxUserLog = null; + //根据ID查询 + SysWxUserLog param = new SysWxUserLog(); + param.setId(Long.parseLong(id)); + List sysWxUserLogList = sysWxUserLogService.selectSysWxUserLogList(param); + if(sysWxUserLogList != null && sysWxUserLogList.size() > 0){ + sysWxUserLog = sysWxUserLogList.get(0); + } + if(sysWxUserLog == null){ + return AjaxResult.error("打卡记录不存在"); + } + Map> imageUrlMap = new HashMap<>(); + List breakfastImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getBreakfastImages()) ? Arrays.asList(sysWxUserLog.getBreakfastImages().split("\\|")) : new ArrayList<>(); + imageUrlMap.put("breakfastImages", breakfastImagesUrlList); + + List lunchImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getLunchImages()) ? Arrays.asList(sysWxUserLog.getLunchImages().split("\\|")) : new ArrayList<>(); + imageUrlMap.put("lunchImages", lunchImagesUrlList); + + List dinnerImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getDinnerImages()) ? Arrays.asList(sysWxUserLog.getDinnerImages().split("\\|")) : new ArrayList<>(); + imageUrlMap.put("dinnerImages", dinnerImagesUrlList); + + List extraMealImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getExtraMealImages()) ? Arrays.asList(sysWxUserLog.getExtraMealImages().split("\\|")) : new ArrayList<>(); + imageUrlMap.put("extraMealImages", extraMealImagesUrlList); + + List bodyImagesUrlList = StringUtils.isNotEmpty(sysWxUserLog.getBodyImages()) ? Arrays.asList(sysWxUserLog.getBodyImages().split("\\|")) : new ArrayList<>(); + imageUrlMap.put("bodyImages", bodyImagesUrlList ); + + //生成预览链接 + Map> downUrlList = AliyunOSSUtils.generatePresignedUrl(imageUrlMap); + sysWxUserLog.setImagesUrl(downUrlList); + return AjaxResult.success(sysWxUserLog); + } } \ No newline at end of file diff --git a/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java b/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java index 0a5b163b1..4e7ccdd53 100644 --- a/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java +++ b/stdiet-common/src/main/java/com/stdiet/common/utils/oss/AliyunOSSUtils.java @@ -16,10 +16,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.util.*; public class AliyunOSSUtils { @@ -274,6 +271,34 @@ public class AliyunOSSUtils { return downUrlList; } + /** + * + * @param fileUrlList + * @return + */ + public static Map> generatePresignedUrl(Map> fileUrlList){ + Map> downUrlMap = new HashMap<>(); + + // 创建OSSClient实例。 + OSS ossClient = getOssClient(); + + Date expiration = new Date(System.currentTimeMillis() + expire); + + for (String key : fileUrlList.keySet()) { + List urlList = fileUrlList.get(key); + List downList = new ArrayList<>(); + for (String fileUrl : urlList) { + downList.add(ossClient.generatePresignedUrl(AliyunOSSConfig.Buckets, getObjectName(fileUrl), expiration).toString()); + } + downUrlMap.put(key, downList); + } + + // 关闭OSSClient。 + ossClient.shutdown(); + + return downUrlMap; + } + /** * 删除指定路径下的一个文件 * diff --git a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java index 40c818cbd..9cb4ce4c8 100644 --- a/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java +++ b/stdiet-custom/src/main/java/com/stdiet/custom/domain/SysWxUserLog.java @@ -2,13 +2,13 @@ package com.stdiet.custom.domain; import java.math.BigDecimal; import java.util.Date; +import java.util.List; +import java.util.Map; + import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.apache.commons.lang3.builder.ToStringBuilder; -import org.apache.commons.lang3.builder.ToStringStyle; import com.stdiet.common.annotation.Excel; import com.stdiet.common.core.domain.BaseEntity; -import org.springframework.web.multipart.MultipartFile; /** * 微信用户记录对象 sys_wx_user_log @@ -119,4 +119,14 @@ public class SysWxUserLog extends BaseEntity /** 体型对比照 */ @Excel(name = "体型对比照") private String bodyImages; + + //售后营养师ID + private Long afterNutritionistId; + + //售后营养师 + @Excel(name = "售后营养师") + private String afterNutritionist; + + //图片预览路径 + private Map> imagesUrl; } \ No newline at end of file diff --git a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml index 50ee15f59..1ceef353a 100644 --- a/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml +++ b/stdiet-custom/src/main/resources/mapper/custom/SysWxUserLogMapper.xml @@ -37,6 +37,7 @@ + @@ -72,12 +73,17 @@ diff --git a/stdiet-ui/src/api/custom/wxUserLog.js b/stdiet-ui/src/api/custom/wxUserLog.js index 29a706b55..9ef6d2ecb 100644 --- a/stdiet-ui/src/api/custom/wxUserLog.js +++ b/stdiet-ui/src/api/custom/wxUserLog.js @@ -36,9 +36,9 @@ export function updateWxUserLog(data) { } // 删除微信用户记录 -export function delWxUserLog(openid) { +export function delWxUserLog(id) { return request({ - url: '/custom/wxUserLog/' + openid, + url: '/custom/wxUserLog/' + id, method: 'delete' }) } @@ -51,3 +51,12 @@ export function exportWxUserLog(query) { params: query }) } + +// 根据ID查询打卡日志详情 +export function getPunchLogDetail(id) { + return request({ + url: '/custom/wxUserLog/getPunchLogDetail/' + id, + method: 'get', + params: {} + }) +} diff --git a/stdiet-ui/src/components/PunchLog/PunchLogDetail/index.vue b/stdiet-ui/src/components/PunchLog/PunchLogDetail/index.vue new file mode 100644 index 000000000..e5e9203c6 --- /dev/null +++ b/stdiet-ui/src/components/PunchLog/PunchLogDetail/index.vue @@ -0,0 +1,186 @@ + + + + diff --git a/stdiet-ui/src/views/custom/wxUserLog/index.vue b/stdiet-ui/src/views/custom/wxUserLog/index.vue index 08f9a3254..78fbb22ab 100644 --- a/stdiet-ui/src/views/custom/wxUserLog/index.vue +++ b/stdiet-ui/src/views/custom/wxUserLog/index.vue @@ -7,7 +7,7 @@ v-show="showSearch" label-width="68px" > - + + + + + + + - + - - - - - - - - {{ parseTime(scope.row.logTime, "{y}-{m}-{d}") }} + + + + + + + + + + + - - - - - - + + + + + + + +