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;
import com.dlbridge.jadp.plugins.cmpt.utils.QRCodeUtil;
import com.google.gson.Gson;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -27,7 +25,6 @@ import java.util.stream.Collectors;
@Service
public class RichTextService {
private static final Logger log = LoggerFactory.getLogger(RichTextService.class);
@Resource
RichTextMapper richTextMapper;
......
......@@ -43,13 +43,6 @@ public class ResourcesController {
private WechatMiniService wechatMiniService;
/**
* 小程序码生成
* @param cmptid 赛事ID
......
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.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.neusoft.www.utils.web.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
@Controller
@RestController
......@@ -23,6 +26,20 @@ import javax.annotation.Resource;
public class WechatMiniController {
@Resource
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 参数
* @return string
......@@ -43,4 +60,14 @@ public class WechatMiniController {
public Result<String> generateUrlScheme(@RequestBody UrlSchemeParam 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;
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.neusoft.www.utils.web.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import com.neusoft.www.utils.web.Result;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
......@@ -25,8 +21,7 @@ import java.util.*;
@Slf4j
public class CommonController {
@Resource
private CmptService cmptService;
// 定义允许上传的文件类型及其对应的魔数
private static final Map<String, byte[]> ALLOWED_FILE_TYPES = new HashMap<>();
......@@ -102,6 +97,31 @@ public class CommonController {
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")
@ApiOperation(value = "参赛声明上传")
public Result<?> uploadClaimer(@RequestPart @RequestParam("file") MultipartFile file,@RequestParam(value = "gCmptId") Integer gCmptId) {
......
......@@ -404,6 +404,13 @@
<span class="menu-txt">领物导航</span>
</a>
</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>
</li>
</ul>
......@@ -466,7 +473,7 @@
var classes = ['cmptSetting', 'nameList', 'manual', 'contact', 'manage',
'route', 'road', 'equip', 'photo', 'news', 'cert', 'data',
'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;
var done = false;
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