Commit 2ec8939b authored by daniel's avatar daniel

fix(wechat): 微信小程序工具

parent 1a6681e7
package com.dlbridge.jadp.plugins.cmpt.bean;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "小程序WxCodeParam",description = "小程序WxCodeParam")
public class WxCodeParam {
@ApiModelProperty(value = "宽度")
Integer width=1280;
@ApiModelProperty(value = "跳转的页面",allowEmptyValue = true)
String path="pages/index/index";
@ApiModelProperty(value = "正式版为 release,体验版为 trial,开发版为 develop" )
String envVersion="release";
@ApiModelProperty(value = "赛客id" )
Integer cmptId;
}
\ No newline at end of file
...@@ -7,8 +7,6 @@ import com.dlbridge.jadp.plugins.cmpt.utils.GpsUtil; ...@@ -7,8 +7,6 @@ import com.dlbridge.jadp.plugins.cmpt.utils.GpsUtil;
import com.dlbridge.jadp.plugins.cmpt.utils.QRCodeUtil; import com.dlbridge.jadp.plugins.cmpt.utils.QRCodeUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -27,7 +25,6 @@ import java.util.stream.Collectors; ...@@ -27,7 +25,6 @@ import java.util.stream.Collectors;
@Service @Service
public class RichTextService { public class RichTextService {
private static final Logger log = LoggerFactory.getLogger(RichTextService.class);
@Resource @Resource
RichTextMapper richTextMapper; RichTextMapper richTextMapper;
......
...@@ -43,13 +43,6 @@ public class ResourcesController { ...@@ -43,13 +43,6 @@ public class ResourcesController {
private WechatMiniService wechatMiniService; private WechatMiniService wechatMiniService;
/** /**
* 小程序码生成 * 小程序码生成
* @param cmptid 赛事ID * @param cmptid 赛事ID
......
package com.dlbridge.jadp.plugins.cmpt.web; package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.plugins.cmpt.bean.UrlLinkParam; import com.dlbridge.jadp.plugins.cmpt.bean.UrlLinkParam;
import com.dlbridge.jadp.plugins.cmpt.bean.UrlSchemeParam; import com.dlbridge.jadp.plugins.cmpt.bean.UrlSchemeParam;
import com.dlbridge.jadp.plugins.cmpt.bean.WxCodeParam;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.service.WechatMiniService; import com.dlbridge.jadp.plugins.cmpt.service.WechatMiniService;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@Controller @Controller
@RestController @RestController
...@@ -23,6 +26,20 @@ import javax.annotation.Resource; ...@@ -23,6 +26,20 @@ import javax.annotation.Resource;
public class WechatMiniController { public class WechatMiniController {
@Resource @Resource
private WechatMiniService wechatMiniService; private WechatMiniService wechatMiniService;
@Resource
private CmptService cmptService;
@RequestMapping("index/{cmptId}")
@PageView
public ModelAndView index(@PathVariable("cmptId") Integer cmptId, ModelAndView mv) {
Cmpt cmpt = cmptService.queryCmptBycmptId(cmptId);
mv.addObject("cmpt", cmpt);
mv.setViewName("cmpt/wechat");
return mv;
}
/** /**
* @param urlLinkParam 参数 * @param urlLinkParam 参数
* @return string * @return string
...@@ -43,4 +60,14 @@ public class WechatMiniController { ...@@ -43,4 +60,14 @@ public class WechatMiniController {
public Result<String> generateUrlScheme(@RequestBody UrlSchemeParam urlSchemeParam) { public Result<String> generateUrlScheme(@RequestBody UrlSchemeParam urlSchemeParam) {
return wechatMiniService.generateUrlScheme(urlSchemeParam); return wechatMiniService.generateUrlScheme(urlSchemeParam);
} }
/**
* @param wxCodeParam 参数
* @return string
* @link <a href="https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-link/generateUrlLink.html">...</a>
*/
@GetMapping("/wxQrCode")
@ApiOperation(value = "生成小程序二维码",notes = "生成小程序二维码")
public void generateQrcode(WxCodeParam wxCodeParam, HttpServletResponse response) {
wechatMiniService.generateQrCode(wxCodeParam,response);
}
} }
package com.dlbridge.jadp.plugins.common; package com.dlbridge.jadp.plugins.common;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import com.dlbridge.jadp.plugins.cmpt.service.CmptService;
import com.dlbridge.jadp.plugins.cmpt.utils.AliOssUtil; import com.dlbridge.jadp.plugins.cmpt.utils.AliOssUtil;
import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import com.neusoft.www.utils.web.Result;
import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.*; import java.util.*;
...@@ -25,8 +21,7 @@ import java.util.*; ...@@ -25,8 +21,7 @@ import java.util.*;
@Slf4j @Slf4j
public class CommonController { public class CommonController {
@Resource
private CmptService cmptService;
// 定义允许上传的文件类型及其对应的魔数 // 定义允许上传的文件类型及其对应的魔数
private static final Map<String, byte[]> ALLOWED_FILE_TYPES = new HashMap<>(); private static final Map<String, byte[]> ALLOWED_FILE_TYPES = new HashMap<>();
...@@ -102,6 +97,31 @@ public class CommonController { ...@@ -102,6 +97,31 @@ public class CommonController {
return Result.fail().setMsg("文件上传失败"); return Result.fail().setMsg("文件上传失败");
} }
@PostMapping("/uploadWithName")
@ApiOperation(value = "文件上传+文件名")
public Result<?> uploadWithName(@RequestPart @RequestParam("file") MultipartFile file, @RequestParam(value = "folder", defaultValue = "") String folder,@RequestParam(value = "fileName") String fileName) {
try {
String originalFilename = file.getOriginalFilename();
assert originalFilename != null;
// 检查文件名中是否包含点号
int lastIndex = originalFilename.lastIndexOf(".");
if (lastIndex == -1) {
// 如果没有后缀名,直接返回报错信息
return Result.fail().setMsg("上传的文件没有后缀名,请检查文件");
}
String objectName = fileName;
if (!Objects.equals(folder, "")) {
objectName = folder + "/" + fileName;
}
String filePath = aliOssUtil.upload(file.getBytes(), objectName);
log.info("文件上传名: {} 保存的文件名:{}", originalFilename,filePath);
return Result.success().setContent(filePath);
} catch (IOException e) {
log.error("文件上传失败:{}", e);
}
return Result.fail().setMsg("文件上传失败");
}
@PostMapping("/uploadClaimer") @PostMapping("/uploadClaimer")
@ApiOperation(value = "参赛声明上传") @ApiOperation(value = "参赛声明上传")
public Result<?> uploadClaimer(@RequestPart @RequestParam("file") MultipartFile file,@RequestParam(value = "gCmptId") Integer gCmptId) { public Result<?> uploadClaimer(@RequestPart @RequestParam("file") MultipartFile file,@RequestParam(value = "gCmptId") Integer gCmptId) {
......
...@@ -404,6 +404,13 @@ ...@@ -404,6 +404,13 @@
<span class="menu-txt">领物导航</span> <span class="menu-txt">领物导航</span>
</a> </a>
</li> </li>
<li class="wechat menu-sub-item">
<a
href="/gk/wechatMini/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="left-arrow"></span>
<span class="menu-txt">微信小程序</span>
</a>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
...@@ -466,7 +473,7 @@ ...@@ -466,7 +473,7 @@
var classes = ['cmptSetting', 'nameList', 'manual', 'contact', 'manage', var classes = ['cmptSetting', 'nameList', 'manual', 'contact', 'manage',
'route', 'road', 'equip', 'photo', 'news', 'cert', 'data', 'route', 'road', 'equip', 'photo', 'news', 'cert', 'data',
'banner', 'score', 'auto', 'scan', 'review', 'customer', 'rule', 'banner', 'score', 'auto', 'scan', 'review', 'customer', 'rule',
'outter-link', 'sure-letter', 'rankSetting', 'service', "module", "swiper", "bag", "invoice", "markNoSelect", "feedback", "markNoRule", "gunRule", "disClaimer", "location"]; 'outter-link', 'sure-letter', 'rankSetting', 'service', "module", "swiper", "bag", "invoice", "markNoSelect", "feedback", "markNoRule", "gunRule", "disClaimer", "location", "wechat"];
let url = document.location.href; let url = document.location.href;
var done = false; var done = false;
for (var i in classes) { for (var i in classes) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment