From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 19 May 2025 17:02:07 +0800 Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑 --- src/main/java/cc/mrbird/febs/mall/controller/CommonController.java | 175 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 144 insertions(+), 31 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java index 00c7369..afc1e6f 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/CommonController.java @@ -2,25 +2,38 @@ import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.enumerates.CommonDictionaryEnum; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.*; import cc.mrbird.febs.mall.dto.AccountAndCodeDto; import cc.mrbird.febs.mall.dto.Base64UploadDto; import cc.mrbird.febs.mall.entity.DataDictionaryCustom; import cc.mrbird.febs.mall.service.ICommonService; +import cc.mrbird.febs.mall.vo.ScoreSignVo; +import cc.mrbird.febs.mall.vo.common.ApiCommonSetVo; +import cc.mrbird.febs.mall.vo.common.ApiIndexSetVo; +import cn.hutool.core.io.file.FileNameUtil; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import io.swagger.annotations.ApiParam; +import com.thoughtworks.xstream.core.BaseException; +import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import net.coobird.thumbnailator.Thumbnails; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.FileCopyUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import sun.misc.BASE64Encoder; +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,7 +66,9 @@ // 发送手机验证码 if (AppContants.ACCOUNT_TYPE_MOBILE.equals(type)) { - boolean result = ZzSmsSend.sendVerifyCode(account, code.toString(), 2); +// boolean result = Sms106Send.sendVerifyCode(account, code.toString(), 2); + boolean result = ZzSmsSend.sendALiYun(account, code.toString()); +// boolean result = ZzSmsSend.sendVerifyCode(account, code.toString(), 2); if (result) { Map<String, Object> map = new HashMap<>(); boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120); @@ -92,7 +107,7 @@ boolean result = ZzSmsSend.sendALiYun(account, code.toString()); if (result) { Map<String, Object> map = new HashMap<>(); - boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 120); + boolean flag = redisUtils.set(AppContants.VERIFY_CODE_PREFIX + account, code, 300); map.put("code", flag); return new FebsResponse().success().message("验证码发送成功"); } @@ -113,40 +128,60 @@ } /** + * 通用上传请求 + */ + // 文件保存目录路径 + @Value("${static.resource.url}") + private String resourceUrl; + // 文件保存目录URL + @Value("${static.resource.path}") + private String resourcePath; + + @ControllerEndpoint(operation = "文件上传服务器", exceptionMessage = "上传失败") + @PostMapping(value = "/fileUploadEsc") + public Map<String,Object> fileUploadEsc(@RequestBody @Validated MultipartFile file) throws IOException { + if (file == null) { + throw new FebsException("上传文件不能为空"); + } + return FileUtil.fileUploadEsc(file,resourceUrl,resourcePath); + } + + /** * 图片上传 * @return */ @PostMapping(value = "/uploadFileBase64") @ControllerEndpoint(operation = "图片上传", exceptionMessage = "上传失败") - public Map<String,Object> uploadFileBase64(@RequestBody @Validated MultipartFile file) { + public Map<String,Object> uploadFileBase64(@RequestBody @Validated MultipartFile file) throws IOException { if (file == null || file.isEmpty()) { return new FebsResponse().message("上传文件为空"); } + return FileUtil.fileUploadEsc(file,resourceUrl,resourcePath); - //文件加密 - BASE64Encoder base64Encoder =new BASE64Encoder(); - String base64EncoderImg = null; - try { - base64EncoderImg = base64Encoder.encode(file.getBytes()); - } catch (IOException e) { - e.printStackTrace(); - } - - String imageFuffix = ".png"; - String imageNames = System.currentTimeMillis() + IdUtil.simpleUUID() + imageFuffix; - String imageName = "uploadeFile/" + imageNames; - OssUtils.uploadFileWithBase64(base64EncoderImg, imageName); - String bucket_name ="https://excoin.oss-cn-hangzhou.aliyuncs.com"; - String url = bucket_name + "/" + imageName; - - Map<String,Object> map = new HashMap<String,Object>(); - Map<String,Object> map2 = new HashMap<String,Object>(); - map.put("code",0);//0表示成功,1失败 - map.put("msg","上传成功");//提示消息 - map.put("data",map2); - map2.put("src",url);//图片url - map2.put("title",imageNames);//图片名称,这个会显示在输入框里 - return map; +// //文件加密 +// BASE64Encoder base64Encoder =new BASE64Encoder(); +// String base64EncoderImg = null; +// try { +// base64EncoderImg = base64Encoder.encode(file.getBytes()); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// +// String imageFuffix = ".png"; +// String imageNames = System.currentTimeMillis() + IdUtil.simpleUUID() + imageFuffix; +// String imageName = "uploadeFile/" + imageNames; +// OssUtils.uploadFileWithBase64(base64EncoderImg, imageName); +// String bucket_name ="https://excoin.oss-cn-hangzhou.aliyuncs.com"; +// String url = bucket_name + "/" + imageName; +// +// Map<String,Object> map = new HashMap<String,Object>(); +// Map<String,Object> map2 = new HashMap<String,Object>(); +// map.put("code",0);//0表示成功,1失败 +// map.put("msg","上传成功");//提示消息 +// map.put("data",map2); +// map2.put("src",url);//图片url +// map2.put("title",imageNames);//图片名称,这个会显示在输入框里 +// return map; } @ApiOperation(value = "数据字典") @@ -154,6 +189,84 @@ public FebsResponse findDataDic(@PathVariable("type") String type) { List<DataDictionaryCustom> dic = commonService.findDataDicByType(type); return new FebsResponse().success().data(dic); + } + + @ApiOperation(value = "小程序系统公共设置") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiCommonSetVo.class) + }) + @GetMapping(value = "/commonSet") + public FebsResponse commonSet() { + ApiCommonSetVo apiCommonSetVo = new ApiCommonSetVo(); + + String graySet = commonService.getDicByTypeAndCode( + CommonDictionaryEnum.GRAY_SET.getType(), + CommonDictionaryEnum.GRAY_SET.getCode() + ); + if (graySet == null) { + graySet = "0"; + } + apiCommonSetVo.setGrayState(graySet); + return new FebsResponse().success().data(apiCommonSetVo); + } + + @ApiOperation(value = "小程序开屏页设置") + @ApiResponses({ + @ApiResponse(code = 200, message = "success", response = ApiIndexSetVo.class) + }) + @GetMapping(value = "/indexSet") + public FebsResponse indexSet() { + ApiIndexSetVo apiIndexSetVo = new ApiIndexSetVo(); + + String pngUrl = commonService.getDicByTypeAndCode( + CommonDictionaryEnum.PNG_URL_INDEX.getType(), + CommonDictionaryEnum.PNG_URL_INDEX.getCode() + ); + if (pngUrl == null) { + pngUrl = ""; + } + apiIndexSetVo.setPngUrl(pngUrl); + + String timeStop = commonService.getDicByTypeAndCode( + CommonDictionaryEnum.TIME_URL_INDEX.getType(), + CommonDictionaryEnum.TIME_URL_INDEX.getCode() + ); + if (timeStop == null) { + timeStop = "3"; + } + apiIndexSetVo.setTimeStop(timeStop); + return new FebsResponse().success().data(apiIndexSetVo); + } + + @ApiOperation(value = "base64FileUpload上传") + @PostMapping(value = "/base64FileUpload") + public Map<String,Object> base64FileUpload(@RequestBody @Validated MultipartFile file) throws IOException { + if (file == null || file.isEmpty()) { + return new FebsResponse().message("上传文件为空").fail(); + } + + try { + byte[] fileBytes = file.getBytes(); + String base64Str = java.util.Base64.getEncoder().encodeToString(fileBytes); + String imageSuffix = "." + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1); + String imageNames = System.currentTimeMillis() + IdUtil.simpleUUID() + imageSuffix; + String imageName = "hc/" + imageNames; + OssUtils.uploadFileWithBase64(base64Str, imageName); + String bucket_name = "https://excoin.oss-cn-hangzhou.aliyuncs.com"; + String url = bucket_name + "/" + imageName; + + Map<String,Object> map = new HashMap<String,Object>(); + Map<String,Object> map2 = new HashMap<String,Object>(); + map2.put("src",url);//图片url + map2.put("title",imageNames);//图片名称,这个会显示在输入框里 + map.put("code",0);//0表示成功,1失败 + map.put("msg","上传成功");//提示消息 + map.put("data",map2); + return map; + } catch (IOException e) { + log.error("上传失败: {}", e.getMessage()); + return new FebsResponse().message("上传失败").fail(); + } } @ApiOperation(value = "base64上传") @@ -166,7 +279,7 @@ String imageFuffix = ".jpg"; String imageNames = System.currentTimeMillis() + IdUtil.simpleUUID() + imageFuffix; - String imageName = "uploadeFile/" + imageNames; + String imageName = "hc/" + imageNames; OssUtils.uploadFileWithBase64(base64Str, imageName); String bucket_name ="https://excoin.oss-cn-hangzhou.aliyuncs.com"; String url = bucket_name + "/" + imageName; -- Gitblit v1.9.1