From 965af8a1b7b7470a1d3659fb9efed1da21713a1c Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期日, 29 九月 2024 09:01:52 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java | 85 +++++++++++++++++++++++++++++++++++++++++- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/FileUploadUtils.java | 4 - ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java | 1 ruoyi-service/ruoyi-account/pom.xml | 5 ++ ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java | 2 ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java | 14 ++++++- ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml | 2 8 files changed, 104 insertions(+), 11 deletions(-) diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/FileUploadUtils.java similarity index 97% rename from ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java rename to ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/FileUploadUtils.java index 8109d34..9512737 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/FileUploadUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/FileUploadUtils.java @@ -1,4 +1,4 @@ -package com.ruoyi.file.utils; +package com.ruoyi.common.core.utils; import java.io.File; import java.io.IOException; @@ -10,8 +10,6 @@ import com.ruoyi.common.core.exception.file.FileNameLengthLimitExceededException; import com.ruoyi.common.core.exception.file.FileSizeLimitExceededException; import com.ruoyi.common.core.exception.file.InvalidExtensionException; -import com.ruoyi.common.core.utils.DateUtils; -import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.file.FileTypeUtils; import com.ruoyi.common.core.utils.file.MimeTypeUtils; import com.ruoyi.common.core.utils.uuid.Seq; diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java index 3247e9b..6b0606e 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java @@ -4,7 +4,7 @@ import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.file.utils.FileUploadUtils; +import com.ruoyi.common.core.utils.FileUploadUtils; /** * 本地文件存储 diff --git a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java index f53d86f..790c36b 100644 --- a/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java +++ b/ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java @@ -6,7 +6,7 @@ import org.springframework.web.multipart.MultipartFile; import com.alibaba.nacos.common.utils.IoUtils; import com.ruoyi.file.config.MinioConfig; -import com.ruoyi.file.utils.FileUploadUtils; +import com.ruoyi.common.core.utils.FileUploadUtils; import io.minio.MinioClient; import io.minio.PutObjectArgs; diff --git a/ruoyi-service/ruoyi-account/pom.xml b/ruoyi-service/ruoyi-account/pom.xml index a464162..23763ed 100644 --- a/ruoyi-service/ruoyi-account/pom.xml +++ b/ruoyi-service/ruoyi-account/pom.xml @@ -16,6 +16,11 @@ <dependencies> <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-mock</artifactId> + <version>2.0.8</version> + </dependency> + <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-api-order</artifactId> </dependency> diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java index de9af48..52f457e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java @@ -1,6 +1,7 @@ package com.ruoyi.account.controller; import com.alibaba.fastjson.JSONObject; +import com.alipay.api.internal.util.codec.Base64; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -15,6 +16,7 @@ import com.ruoyi.account.wx.tools.WxAppletTools; import com.ruoyi.account.wx.tools.WxUtils; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.FileUploadUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.redis.service.RedisService; @@ -24,12 +26,25 @@ import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.RestTemplate; +import org.springframework.web.multipart.MultipartFile; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.security.SecureRandom; +import java.text.SimpleDateFormat; +import java.util.*; + /** * <p> * 微信小程序登录 前端控制器 @@ -48,6 +63,11 @@ private WeixinProperties wxConfig; @Autowired private RestTemplate wxRestTemplate; + /** + * 上传文件存储在本地的根路径 + */ + @Value("${file.path}") + private String localFilePath; @ApiOperation(value = "通过code获得openid,获取用户信息",tags = {"微信小程序登录"}) @PostMapping("/openIdByJsCode") public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestBody AppletUserEncrypteData data) { @@ -79,4 +99,63 @@ public AjaxResult<Map<String, Object>> openIdByJsCode(@RequestBody AppletUserDecodeData appletUserDecodeData) { return AjaxResult.success(appUserService.wxLogin(appletUserDecodeData, null)); } + public static MultipartFile convertInputStreamToMultipartFile(InputStream inputStream, String fileName, String contentType) throws IOException { + return new MockMultipartFile(fileName, fileName, contentType, inputStream); + } + + /** + * 获取微信小程序二维码 + */ + public void getQRCode() { + InputStream inputStream = null; + OutputStream outputStream = null; + WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig); + String accessToken = appletTools.getAccessToken(""); + try { + String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken; + Map<String, Object> param = new HashMap<>(); +// param.put("page", "pageA/houseDetail"); + param.put("check_path", false); + param.put("env_version", "trial"); + param.put("width", 200); //二维码尺寸 + param.put("is_hyaline", true); // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 参数仅对小程序码生效 + param.put("auto_color", true); // 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 参数仅对小程序码生效 + Map<String, Object> line_color = new HashMap<>(); + line_color.put("r", 0); + line_color.put("g", 0); + line_color.put("b", 0); + param.put("line_color", line_color); + System.err.println("调用生成微信URL接口传参:" + param); + MultiValueMap<String, String> headers = new LinkedMultiValueMap<>(); + HttpEntity requestEntity = new HttpEntity(param, headers); + ResponseEntity<byte[]> entity = wxRestTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]); + System.err.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody()); + byte[] result = entity.getBody(); + System.err.println(Base64.encodeBase64String(result)); + inputStream = new ByteArrayInputStream(result); + String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + ".jpeg"; + MultipartFile multipartFile = convertInputStreamToMultipartFile(inputStream, finalFileName, "image/jpeg"); + String name = FileUploadUtils.upload(localFilePath, multipartFile); + System.err.println(name); + // 保存文件到本地 +// String s = ossService.uploadFile2OSS(inputStream, objectName); + } catch (Exception e) { + System.err.println("调用小程序生成微信永久小程序码URL接口异常" + e); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } } diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java index 2dd2f67..6f19eea 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/wx/tools/WxAppletTools.java @@ -5,6 +5,7 @@ import com.ruoyi.account.wx.body.resq.Code2SessionResqBody; import com.ruoyi.account.wx.model.WeixinProperties; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.client.RestTemplate; diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java index 0feffa7..03a99b1 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TAdvertisingController.java @@ -17,10 +17,20 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; -import java.util.List; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.security.SecureRandom; +import java.text.SimpleDateFormat; +import java.util.*; /** * <p> diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml index f74b1ec..c8879ee 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TGoodsMapper.xml @@ -46,7 +46,7 @@ AND inventory = 0 </if> <if test="req.otherState != null and req.otherState ==3"> - AND status = 3 + AND status = 2 </if> AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} </where> -- Gitblit v1.7.1