From ee2b25ea43faed1d27a0a1deec839728773202a1 Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Sat, 27 Apr 2024 16:31:10 +0800 Subject: [PATCH] init --- .../controller/app/InviteAppController.java | 49 +++++++++++++++++++ .../controller/app/SettingAppController.java | 14 +++--- .../main/java/com/ruoyi/xq/domain/User.java | 2 + .../xq/dto/app/invite/UserInviteListVo.java | 21 ++++++++ .../java/com/ruoyi/xq/manager/PayManager.java | 11 +++-- .../com/ruoyi/xq/manager/ShareManager.java | 4 +- .../com/ruoyi/xq/mapper/UserInviteMapper.java | 4 ++ .../ruoyi/xq/service/AuthOrderService.java | 8 +++ .../ruoyi/xq/service/UserInviteService.java | 5 ++ .../xq/service/impl/AuthOrderServiceImpl.java | 45 +++++++++++++++++ .../service/impl/UserInviteServiceImpl.java | 29 +++++++++++ .../java/com/ruoyi/xq/util/ImageUtil.java | 8 ++- .../resources/mapper/xq/UserInviteMapper.xml | 10 +++- 13 files changed, 194 insertions(+), 16 deletions(-) create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/InviteAppController.java create mode 100644 ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/invite/UserInviteListVo.java diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/InviteAppController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/InviteAppController.java new file mode 100644 index 0000000..1663ab1 --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/InviteAppController.java @@ -0,0 +1,49 @@ +package com.ruoyi.xq.controller.app; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.domain.PageModel; +import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.helper.LoginHelper; +import com.ruoyi.xq.dto.app.invite.UserInviteListVo; +import com.ruoyi.xq.service.UserInviteService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +@RestController +@RequestMapping("/api/invite") +@Tag(name = "邀请相关接口") +@Slf4j +public class InviteAppController { + + @Autowired + private UserInviteService userInviteService; + + @GetMapping("/logs") + @Operation(summary = "邀请人员记录") + @Log(title = "邀请人员记录", businessType = BusinessType.OTHER, isSaveDb = false) + public R> inviteLogs(PageQuery pageQuery){ + IPage res = userInviteService.pageApp(pageQuery, LoginHelper.getUserId()); + return R.ok(PageModel.build(res)); + } + + @GetMapping("/share") + @Operation(summary = "获取分享图片") + @Log(title = "获取分享图片", businessType = BusinessType.OTHER, isSaveDb = false) + public R> share(){ + String url = userInviteService.share(LoginHelper.getUserId()); + Map map = new HashMap<>(); + map.put("share", url); + return R.ok(map); + } +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java index 40c67aa..eb3958f 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/controller/app/SettingAppController.java @@ -77,13 +77,13 @@ public class SettingAppController { } -// @GetMapping("/areaCode/list") -// @Operation(summary = "获取省市区编码接口") -// @Log(title = "获取省市区编码接口", businessType = BusinessType.OTHER, isSaveDb = false) -// public R> listAreaCode(AreaCodeQuery query){ -// List list = areaCodeService.listAreaCode(query); -// return R.ok(list); -// } + @GetMapping("/areaCode/list") + @Operation(summary = "获取省市区编码接口") + @Log(title = "获取省市区编码接口", businessType = BusinessType.OTHER, isSaveDb = false) + public R> listAreaCode(AreaCodeQuery query){ + List list = areaCodeService.listAreaCode(query); + return R.ok(list); + } @GetMapping("/areaCode/tree") @Operation(summary = "获取所有省市区编码") diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java index 7355ae4..6d0a43a 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/User.java @@ -171,6 +171,8 @@ public class User implements Serializable { */ private String imToken; + private String openId; + private LocalDateTime createTime; private LocalDateTime updateTime; diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/invite/UserInviteListVo.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/invite/UserInviteListVo.java new file mode 100644 index 0000000..b0f815a --- /dev/null +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/dto/app/invite/UserInviteListVo.java @@ -0,0 +1,21 @@ +package com.ruoyi.xq.dto.app.invite; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +@Data +public class UserInviteListVo { + @Schema(description = "用户ID") + private Long userId; + @Schema(description = "用户头像") + private String avatar; + @Schema(description = "性别 0-未知 1-女 2-男") + private Integer gender; + @Schema(description = "昵称") + private String nickname; + @Schema(description = "创建时间") + private LocalDateTime createTime; +} diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java index c9ca533..58d3eb9 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/PayManager.java @@ -11,10 +11,8 @@ import com.ruoyi.xq.enums.pay.PayStatusEnum; import com.ruoyi.xq.enums.pay.PlatformTypeEnum; import com.ruoyi.xq.mq.AmqpProducer; import com.ruoyi.xq.mq.handle.dto.CalculateSalesHandleDTO; -import com.ruoyi.xq.service.UserExtendService; -import com.ruoyi.xq.service.VipOrderService; -import com.ruoyi.xq.service.VipPriceService; -import com.ruoyi.xq.service.WxTransOrderService; +import com.ruoyi.xq.service.*; +import com.ruoyi.xq.service.impl.AuthOrderServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -34,6 +32,8 @@ public class PayManager { private VipPriceService vipPriceService; @Autowired private WxTransOrderService wxTransOrderService; + @Autowired + private AuthOrderService authOrderService; public PayOrderInfoDTO getOrderInfo(String orderNo){ OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo); @@ -125,6 +125,9 @@ public class PayManager { } } break; + case AUTH_ORDER: + ConsumeResp authResp = authOrderService.doSuccess(orderNo, params, appId, payTypeEnum); + break; default: break; } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/ShareManager.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/ShareManager.java index 33009b1..320158d 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/ShareManager.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/manager/ShareManager.java @@ -17,7 +17,7 @@ import java.io.File; @Component @Slf4j public class ShareManager { - private final static String login = "https://12903012.com"; + private final static String login = "https://xq.mubai8888.com/login?inviteCode="; @Autowired private UserExtendService userExtendService; @@ -32,7 +32,7 @@ public class ShareManager { if(StringUtils.isNotEmpty(userExtend.getQrUrl())){ return userExtend.getQrUrl(); } - String url = login + "from=" + usercode; + String url = login + usercode; try { File file = QrUtils.generateQrCode(usercode, url); SysOssVo oss = sysOssService.upload(file); diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserInviteMapper.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserInviteMapper.java index 0dedc9b..5d70c8c 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserInviteMapper.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/mapper/UserInviteMapper.java @@ -1,9 +1,11 @@ package com.ruoyi.xq.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.xq.domain.UserInvite; import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo; +import com.ruoyi.xq.dto.app.invite.UserInviteListVo; import org.apache.ibatis.annotations.Param; /** @@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Param; public interface UserInviteMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") UserInviteAdminVo bo); + + IPage pageApp(@Param("build") Page build, @Param("userId") Long userId); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AuthOrderService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AuthOrderService.java index 9f55754..17d57f9 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AuthOrderService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/AuthOrderService.java @@ -4,6 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.xq.domain.AuthOrder; +import com.ruoyi.xq.dto.app.pay.ConsumeResp; +import com.ruoyi.xq.enums.pay.PlatformTypeEnum; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; /** * 实名认证订单Service接口 @@ -17,4 +22,7 @@ public interface AuthOrderService extends IService { AuthOrder createVipOrder(Long userId); + AuthOrder getByOrderNo(String orderNo); + + ConsumeResp doSuccess(String orderNo, Map params, String appId, PlatformTypeEnum payTypeEnum); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserInviteService.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserInviteService.java index a784c3c..db951a7 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserInviteService.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/UserInviteService.java @@ -1,10 +1,12 @@ package com.ruoyi.xq.service; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.xq.domain.UserInvite; import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo; +import com.ruoyi.xq.dto.app.invite.UserInviteListVo; /** * 用户邀请Service接口 @@ -22,4 +24,7 @@ public interface UserInviteService extends IService { UserInvite getByUserId(Long sourceUserId); + String share(Long userId); + + IPage pageApp(PageQuery pageQuery, Long userId); } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AuthOrderServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AuthOrderServiceImpl.java index e984588..df4378b 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AuthOrderServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/AuthOrderServiceImpl.java @@ -1,21 +1,29 @@ package com.ruoyi.xq.service.impl; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.xq.domain.AuthOrder; import com.ruoyi.xq.domain.User; +import com.ruoyi.xq.dto.app.pay.ConsumeResp; import com.ruoyi.xq.enums.common.OrderTypeEnum; +import com.ruoyi.xq.enums.common.TraceIdEnum; import com.ruoyi.xq.enums.pay.PayStatusEnum; +import com.ruoyi.xq.enums.pay.PlatformTypeEnum; import com.ruoyi.xq.manager.OrderNoUtil; +import com.ruoyi.xq.manager.TraceIdManager; import com.ruoyi.xq.mapper.AuthOrderMapper; import com.ruoyi.xq.service.AuthOrderService; import com.ruoyi.xq.service.UserService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.Map; /** * 实名认证订单Service业务层处理 @@ -50,4 +58,41 @@ public class AuthOrderServiceImpl extends ServiceImpl this.save(authOrder); return authOrder; } + + @Override + public AuthOrder getByOrderNo(String orderNo){ + return this.getOne(Wrappers.lambdaQuery(AuthOrder.class).eq(AuthOrder::getOrderNo, orderNo).last("limit 1")); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ConsumeResp doSuccess(String orderNo, Map params, String appId, PlatformTypeEnum payTypeEnum){ + AuthOrder authOrder = this.getByOrderNo(orderNo); + if(authOrder == null){ + ConsumeResp resp = new ConsumeResp(); + resp.setSuccess(false); + return resp; + } + String traceId = TraceIdManager.gen(TraceIdEnum.VIP); + boolean success = this.update(Wrappers.lambdaUpdate(AuthOrder.class) + .eq(AuthOrder::getId, authOrder.getId()) + .eq(AuthOrder::getPayStatus, PayStatusEnum.READY_PAY.getCode()) + .set(AuthOrder::getPayStatus, PayStatusEnum.PAY.getCode()) + .set(AuthOrder::getTraceId, traceId) + .set(AuthOrder::getReturnContent, JSON.toJSONString(params)) + .set(AuthOrder::getAppid,appId) + .set(AuthOrder::getPlatformType, payTypeEnum.getCode())); + if(!success){ + ConsumeResp resp = new ConsumeResp(); + resp.setSuccess(false); + return resp; + } + ConsumeResp resp = new ConsumeResp(); + resp.setPrice(authOrder.getPrice()); + resp.setUserId(authOrder.getUserId()); + resp.setTraceId(traceId); + resp.setSuccess(true); + return resp; + + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserInviteServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserInviteServiceImpl.java index c5f3b08..1c25c7d 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserInviteServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/UserInviteServiceImpl.java @@ -1,14 +1,21 @@ package com.ruoyi.xq.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.xq.domain.User; +import com.ruoyi.xq.domain.UserExtend; import com.ruoyi.xq.domain.UserInvite; import com.ruoyi.xq.dto.admin.user.UserInviteAdminVo; +import com.ruoyi.xq.dto.app.invite.UserInviteListVo; +import com.ruoyi.xq.dto.common.user.MinUser; +import com.ruoyi.xq.manager.ShareManager; import com.ruoyi.xq.mapper.UserInviteMapper; +import com.ruoyi.xq.service.UserExtendService; import com.ruoyi.xq.service.UserInviteService; import com.ruoyi.xq.service.UserService; import lombok.extern.slf4j.Slf4j; @@ -30,6 +37,10 @@ public class UserInviteServiceImpl extends ServiceImpl pageApp(PageQuery pageQuery, Long userId) { + return baseMapper.pageApp(pageQuery.build(),userId); + } } diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/util/ImageUtil.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/util/ImageUtil.java index 4848976..645b0f0 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/util/ImageUtil.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/util/ImageUtil.java @@ -1,5 +1,8 @@ package com.ruoyi.xq.util; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.extern.slf4j.Slf4j; + import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; @@ -16,9 +19,10 @@ import java.net.URL; * 创建时间:2021年7月30日 上午10:27:13 * @version */ +@Slf4j public class ImageUtil { - private final static String BACK_IMAGE_PATH = "/home/server/cai/images/share_back.png"; + private final static String BACK_IMAGE_PATH = "/home/server/xq/images/share_back.png"; // 1260 2100 public static void main(String[] args) throws IOException { @@ -97,7 +101,7 @@ public class ImageUtil { //输出图片 ImageIO.write(big, "png", new File(outPath)); } catch (Exception e) { - e.printStackTrace(); + log.error("合成海报失败!",e); } } diff --git a/ruoyi-xq/src/main/resources/mapper/xq/UserInviteMapper.xml b/ruoyi-xq/src/main/resources/mapper/xq/UserInviteMapper.xml index f20b0bb..38b3364 100644 --- a/ruoyi-xq/src/main/resources/mapper/xq/UserInviteMapper.xml +++ b/ruoyi-xq/src/main/resources/mapper/xq/UserInviteMapper.xml @@ -32,7 +32,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t3.mobile = #{bo.inviteMobile} - order by t1.create_time + order by t1.create_time desc + +