ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TLotteryEvent.java
@@ -110,6 +110,12 @@ @ApiModelProperty("详情介绍") private String activityContent; /** * 微信小程序二维码 */ @TableField("wx_mini_program_qr_code") @ApiModelProperty("微信小程序二维码") private String wxMiniProgramQrCode; /** * 删除标记 */ @TableField("del_flag") ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -181,6 +181,11 @@ public R editMember(Member member) { return R.fail("修改会员失败:" + throwable.getMessage()); } @Override public String getWeiXinQrCode(String scene, String path) { return null; } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -302,4 +302,15 @@ */ @PostMapping("/member/editMember") R editMember(@RequestBody Member member); /** * 获取微信二维码 * * @param scene * @param path * @return */ @PostMapping("/member/getWeiXinQrCode") public String getWeiXinQrCode(@RequestParam("scene") String scene, @RequestParam("path") String path); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
@@ -19,6 +19,7 @@ import com.ruoyi.goods.service.lottery.IUserLotteryEventService; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.service.RemoteShopService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -55,9 +56,9 @@ @Resource private GoodsService goodsService; // @Resource // private WxMaService wxMaService; @Resource private RemoteMemberService remoteMemberService; @RequestMapping(value = "/getShopLotteryDrawList", method = RequestMethod.POST) @@ -115,6 +116,8 @@ public R editShopLotteryDraw(@RequestBody TLotteryEvent lotteryEvent) { if (lotteryEvent.getId() == null) { lotteryEvent.setId(IdUtils.simpleUUID()); String weiXinQrCode = remoteMemberService.getWeiXinQrCode("id=" + lotteryEvent.getId() + "&activityType=" + lotteryEvent.getActivityType(), "/pages/turntable/index"); lotteryEvent.setWxMiniProgramQrCode(weiXinQrCode); } lotteryEvent.setUpdateTime(LocalDateTime.now()); lotteryEvent.setUpdateUserId(SecurityUtils.getUserId()); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/ShopLotteryDrawListVo.java
@@ -21,4 +21,6 @@ private String startTime; @ApiModelProperty("抽奖结束时间") private String endTime; @ApiModelProperty("微信小程序二维码") private String wxMiniProgramQrCode; } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
@@ -34,7 +34,8 @@ activity_profile as activityProfile, cover_image as coverImage, DATE_FORMAT(start_time, '%Y-%m-%d %H:%i') as startTime, DATE_FORMAT(end_time, '%Y-%m-%d %H:%i') as endTime DATE_FORMAT(end_time, '%Y-%m-%d %H:%i') as endTime, wx_mini_program_qr_code as wxMiniProgramQrCode from t_lottery_event where del_flag == 0 and shop_id = #{shopId} order by create_time desc ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -413,4 +413,17 @@ memberGiftRecordService.save(memberGiftRecord); return R.ok(); } /** * 获取微信二维码 * * @param scene * @param path * @return */ @PostMapping("/getWeiXinQrCode") public String getWeiXinQrCode(@RequestParam("scene") String scene, @RequestParam("path") String path) { return memberService.getWeiXinQrCode(scene, path); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -38,21 +38,25 @@ import com.ruoyi.system.api.domain.poji.config.SysTag; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.poji.sys.SysFile; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteOrderService; import com.ruoyi.system.api.service.RemoteShopService; import com.ruoyi.system.api.service.RemoteUserService; import com.ruoyi.system.api.service.*; import io.jsonwebtoken.lang.Assert; import lombok.extern.log4j.Log4j2; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import org.springframework.util.FileCopyUtils; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Nullable; import javax.annotation.Resource; import java.io.*; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -121,6 +125,9 @@ @Resource private TokenService tokenService; @Resource private RemoteFileService remoteFileService; /** @@ -2298,4 +2305,72 @@ memberTotalService.saveOrUpdate(memberTotal); return R.ok(); } @Override public String getWeiXinQrCode(String scene, String path) { try { File file = wxMaService.getQrcodeService().createWxaCodeUnlimit(scene, path); FileInputStream input = new FileInputStream(file); MultipartFile multipartFile = new MyMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input)); SysFile sysFile = remoteFileService.upload(multipartFile).getData(); return sysFile.getUrl(); } catch (Exception e) { e.printStackTrace(); } return null; } public class MyMultipartFile implements MultipartFile { private final String name; private final byte[] content; private String originalFilename; @Nullable private String contentType; public MyMultipartFile(String name, @Nullable String originalFilename, @Nullable String contentType, @Nullable byte[] content) { Assert.hasLength(name, "Name must not be null"); this.name = name; this.originalFilename = originalFilename != null ? originalFilename : ""; this.contentType = contentType; this.content = content != null ? content : new byte[0]; } public String getName() { return this.name; } public String getOriginalFilename() { return this.originalFilename; } @Nullable public String getContentType() { return this.contentType; } public boolean isEmpty() { return this.content.length == 0; } public long getSize() { return (long) this.content.length; } public byte[] getBytes() throws IOException { return this.content; } public InputStream getInputStream() throws IOException { return new ByteArrayInputStream(this.content); } public void transferTo(File dest) throws IOException, IllegalStateException { FileCopyUtils.copy(this.content, dest); } } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -400,4 +400,9 @@ * @return */ R addIntegralRecord(Integer integral, Long userId, String orderId); /** * 获取微信二维码 */ String getWeiXinQrCode(String scene, String path); }