init
This commit is contained in:
@@ -4,11 +4,12 @@ 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.ConsumeLog;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.UserExtend;
|
||||
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateWxTransNumReq;
|
||||
import com.ruoyi.xq.dto.app.account.AccountDetailVo;
|
||||
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
|
||||
import com.ruoyi.xq.enums.user.AccountChangeCodeEnum;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
@@ -35,8 +36,11 @@ public interface UserExtendService extends IService<UserExtend> {
|
||||
|
||||
void updateWxTransNum(UpdateWxTransNumReq bo);
|
||||
|
||||
boolean consumeWxTrans(Long sponsorUserId, User receiveUser, String traceId);
|
||||
|
||||
boolean incsWxTrans(Long userId,Integer wxTransNum, WxTransLogCateEnum cateEnum, String traceId, String remark);
|
||||
|
||||
UserExtend getByUserId(Long id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
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.WxTransData;
|
||||
import com.ruoyi.xq.dto.app.account.StarWxTransReq;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransDataListAppVo;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransDataQuery;
|
||||
|
||||
/**
|
||||
* 微信交换数据Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-25
|
||||
*/
|
||||
public interface WxTransDataService extends IService<WxTransData> {
|
||||
|
||||
void start(StarWxTransReq starWxTransReq);
|
||||
|
||||
Page<WxTransDataListAppVo> pageApp(PageQuery pageQuery, WxTransDataQuery wxTransDataQuery);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
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.User;
|
||||
import com.ruoyi.xq.domain.WxTransLog;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransLogListVo;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransLogQuery;
|
||||
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
|
||||
|
||||
/**
|
||||
* 微信交换记录Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-25
|
||||
*/
|
||||
public interface WxTransLogService extends IService<WxTransLog> {
|
||||
Page<WxTransLogListVo> pageApp(PageQuery pageQuery, WxTransLogQuery query);
|
||||
|
||||
void consumerSaveLog(Long sponsorUserId, String traceId, User receiveUser);
|
||||
|
||||
void saveLog(Long userId, Integer wxTransNum, WxTransLogCateEnum cateEnum, String traceId, String remark);
|
||||
}
|
||||
@@ -5,6 +5,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.WxTransOrder;
|
||||
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
|
||||
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接口
|
||||
@@ -14,7 +19,12 @@ import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
|
||||
*/
|
||||
public interface WxTransOrderService extends IService<WxTransOrder> {
|
||||
|
||||
WxTransOrder createVipOrder(Long userId, Integer wxTransNum);
|
||||
WxTransOrder createWxTransOrder(Long userId, Integer wxTransNum);
|
||||
|
||||
WxTransOrder getByOrderNo(String orderNo);
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
ConsumeResp doSuccess(String orderNo, Map<String, String> params, String appId, PlatformTypeEnum payTypeEnum);
|
||||
|
||||
Page<WxTransOrderAdminVo> pageAdmin(PageQuery pageQuery, WxTransOrderAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -14,21 +14,18 @@ import com.ruoyi.xq.domain.WxTransOrder;
|
||||
import com.ruoyi.xq.dto.admin.user.UserExtendAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateIncomeCoinReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateWxTransNumReq;
|
||||
import com.ruoyi.xq.dto.app.account.AccountDetailVo;
|
||||
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
|
||||
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||
import com.ruoyi.xq.enums.consumer.ConsumerTypeEnum;
|
||||
import com.ruoyi.xq.enums.pay.PayStatusEnum;
|
||||
import com.ruoyi.xq.enums.pay.PlatformTypeEnum;
|
||||
import com.ruoyi.xq.enums.user.AccountChangeCodeEnum;
|
||||
import com.ruoyi.xq.enums.wxtrans.WxTransSourceEnum;
|
||||
import com.ruoyi.xq.enums.account.WxTransSourceEnum;
|
||||
import com.ruoyi.xq.manager.OrderNoUtil;
|
||||
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||
import com.ruoyi.xq.mapper.UserExtendMapper;
|
||||
import com.ruoyi.xq.service.AccountChangeLogService;
|
||||
import com.ruoyi.xq.service.UserExtendService;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.WxTransOrderService;
|
||||
import com.ruoyi.xq.service.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -55,6 +52,8 @@ public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExte
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private AccountChangeLogService accountChangeLogService;
|
||||
@Autowired
|
||||
private WxTransLogService wxTransLogService;
|
||||
|
||||
@Override
|
||||
public boolean withdraw(Long userId, BigDecimal withdrawPrice,String traceId){
|
||||
@@ -159,6 +158,24 @@ public class UserExtendServiceImpl extends ServiceImpl<UserExtendMapper,UserExte
|
||||
wxTransOrderService.save(wxTransOrder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean consumeWxTrans(Long sponsorUserId, User receiveUser, String traceId) {
|
||||
boolean success = baseMapper.incsWxTransNum(sponsorUserId, 1);
|
||||
if(success){
|
||||
wxTransLogService.consumerSaveLog(sponsorUserId, traceId,receiveUser);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean incsWxTrans(Long userId, Integer wxTransNum, WxTransLogCateEnum cateEnum, String traceId, String remark) {
|
||||
boolean success = baseMapper.incsWxTransNum(userId, wxTransNum);
|
||||
if(success){
|
||||
wxTransLogService.saveLog(userId, wxTransNum,cateEnum,traceId,remark);
|
||||
}
|
||||
return success;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UserExtend getByUserId(Long userId) {
|
||||
return this.getOne(Wrappers.lambdaQuery(UserExtend.class).eq(UserExtend::getUserId, userId).last("limit 1"));
|
||||
|
||||
@@ -123,6 +123,7 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
|
||||
resp.setUserId(vipOrder.getUserId());
|
||||
resp.setTraceId(traceId);
|
||||
resp.setSuccess(true);
|
||||
resp.setVipId(vipOrder.getVipId());
|
||||
return resp;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
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.WxTransData;
|
||||
import com.ruoyi.xq.dto.app.account.StarWxTransReq;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransDataListAppVo;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransDataQuery;
|
||||
import com.ruoyi.xq.enums.ErrorEnum;
|
||||
import com.ruoyi.xq.enums.account.WxTransDataStatusEnum;
|
||||
import com.ruoyi.xq.enums.common.TraceIdEnum;
|
||||
import com.ruoyi.xq.mapper.WxTransDataMapper;
|
||||
import com.ruoyi.xq.service.UserExtendService;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.WxTransDataService;
|
||||
import com.ruoyi.xq.util.BirthdayUtil;
|
||||
import com.ruoyi.xq.util.PageConvert;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 微信交换数据Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-25
|
||||
*/
|
||||
@Service
|
||||
public class WxTransDataServiceImpl extends ServiceImpl<WxTransDataMapper,WxTransData> implements WxTransDataService {
|
||||
|
||||
@Autowired
|
||||
private UserExtendService userExtendService;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void start(StarWxTransReq starWxTransReq) {
|
||||
if(starWxTransReq.getSponsorUserId().equals(starWxTransReq.getReceiveUserId())){
|
||||
throw new ServiceException("自己不能和自己交换微信哦");
|
||||
}
|
||||
User receiveUser = userService.getById(starWxTransReq.getReceiveUserId());
|
||||
if(receiveUser == null){
|
||||
throw new ServiceException("接受用户不存在");
|
||||
}
|
||||
String traceId = TraceIdEnum.WX_TRANS.getCode();
|
||||
boolean success = userExtendService.consumeWxTrans(starWxTransReq.getSponsorUserId(),receiveUser, traceId);
|
||||
if(!success){
|
||||
throw new ServiceException(ErrorEnum.WX_TRANS_ERROR);
|
||||
}
|
||||
User sponsorUser = userService.getById(starWxTransReq.getSponsorUserId());
|
||||
WxTransData data = new WxTransData();
|
||||
data.setTraceId(traceId);
|
||||
data.setSponsorUserId(sponsorUser.getId());
|
||||
data.setSponsorUsercode(sponsorUser.getUsercode());
|
||||
data.setSponsorWx(sponsorUser.getWxCode());
|
||||
data.setReceiveUserId(receiveUser.getId());
|
||||
data.setReceiveUsercode(receiveUser.getUsercode());
|
||||
data.setReceiveWx(receiveUser.getWxCode());
|
||||
data.setStatus(WxTransDataStatusEnum.READY.getCode());
|
||||
this.save(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<WxTransDataListAppVo> pageApp(PageQuery pageQuery, WxTransDataQuery wxTransDataQuery) {
|
||||
Page<WxTransData> page = baseMapper.pageApp(pageQuery.build(), wxTransDataQuery);
|
||||
List<WxTransData> records = page.getRecords();
|
||||
if(CollectionUtils.isEmpty(records)){
|
||||
return PageConvert.convertEmpty(page);
|
||||
}
|
||||
Long userId = wxTransDataQuery.getUserId();
|
||||
List<Long> userIdList = new ArrayList<>();
|
||||
for (WxTransData record : records) {
|
||||
userIdList.add(record.getSponsorUserId());
|
||||
userIdList.add(record.getReceiveUserId());
|
||||
}
|
||||
List<User> users = userService.listByIds(userIdList);
|
||||
Map<Long, User> userMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity()));
|
||||
List<WxTransDataListAppVo> res = new ArrayList<>();
|
||||
for (WxTransData record : records) {
|
||||
WxTransDataListAppVo vo = new WxTransDataListAppVo();
|
||||
vo.setId(record.getId());
|
||||
vo.setCreateTime(record.getCreateTime());
|
||||
vo.setStatus(record.getStatus());
|
||||
if(record.getSponsorUserId().equals(userId)){
|
||||
vo.setUserId(record.getSponsorUserId());
|
||||
vo.setUsercode(record.getSponsorUsercode());
|
||||
User user = userMap.get(record.getSponsorUserId());
|
||||
if(user != null){
|
||||
vo.setAvatar(user.getAvatar());
|
||||
vo.setGender(user.getGender());
|
||||
vo.setNickname(user.getNickname());
|
||||
vo.setBirthday(user.getBirthday());
|
||||
vo.setBirthdayStr(BirthdayUtil.getMinBirthday(user.getBirthday()));
|
||||
vo.setAge(BirthdayUtil.getAge(user.getBirthday()));
|
||||
vo.setResidenceCityName(user.getResidenceCityName());
|
||||
vo.setEducation(user.getEducation());
|
||||
vo.setProfession(user.getProfession());
|
||||
}
|
||||
if(WxTransDataStatusEnum.SUCCESS.getCode().equals(record.getStatus())){
|
||||
vo.setWxCode(record.getReceiveWx());
|
||||
}
|
||||
} else {
|
||||
vo.setUserId(record.getReceiveUserId());
|
||||
vo.setUsercode(record.getReceiveUsercode());
|
||||
User user = userMap.get(record.getReceiveUserId());
|
||||
if(user != null){
|
||||
vo.setAvatar(user.getAvatar());
|
||||
vo.setGender(user.getGender());
|
||||
vo.setNickname(user.getNickname());
|
||||
vo.setBirthday(user.getBirthday());
|
||||
vo.setBirthdayStr(BirthdayUtil.getMinBirthday(user.getBirthday()));
|
||||
vo.setAge(BirthdayUtil.getAge(user.getBirthday()));
|
||||
vo.setResidenceCityName(user.getResidenceCityName());
|
||||
vo.setEducation(user.getEducation());
|
||||
vo.setProfession(user.getProfession());
|
||||
}
|
||||
if(WxTransDataStatusEnum.SUCCESS.getCode().equals(record.getStatus())){
|
||||
vo.setWxCode(record.getSponsorWx());
|
||||
}
|
||||
}
|
||||
res.add(vo);
|
||||
}
|
||||
return PageConvert.convert(page,res);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
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.xq.domain.User;
|
||||
import com.ruoyi.xq.domain.WxTransLog;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransLogListVo;
|
||||
import com.ruoyi.xq.dto.app.account.WxTransLogQuery;
|
||||
import com.ruoyi.xq.dto.common.user.MinUser;
|
||||
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
|
||||
import com.ruoyi.xq.mapper.WxTransLogMapper;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.WxTransLogService;
|
||||
import com.ruoyi.xq.util.PageConvert;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 微信交换记录Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2024-03-25
|
||||
*/
|
||||
@Service
|
||||
public class WxTransLogServiceImpl extends ServiceImpl<WxTransLogMapper,WxTransLog> implements WxTransLogService {
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Override
|
||||
public Page<WxTransLogListVo> pageApp(PageQuery pageQuery, WxTransLogQuery query) {
|
||||
Page<WxTransLog> page = this.page(pageQuery.build(), Wrappers.lambdaQuery(WxTransLog.class).eq(WxTransLog::getUserId, query.getUserId()));
|
||||
List<WxTransLog> records = page.getRecords();
|
||||
if(CollectionUtils.isEmpty(records)){
|
||||
return PageConvert.convertEmpty(page);
|
||||
}
|
||||
List<Long> userIdList = records.stream().map(WxTransLog::getTarUserId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
List<User> users = userService.listByIds(userIdList);
|
||||
Map<Long, User> userMap = users.stream().collect(Collectors.toMap(User::getId, Function.identity()));
|
||||
List<WxTransLogListVo> vo = new ArrayList<>();
|
||||
for (WxTransLog record : records) {
|
||||
WxTransLogListVo res = new WxTransLogListVo();
|
||||
res.setUserId(record.getUserId());
|
||||
res.setUsercode(record.getUsercode());
|
||||
res.setTitle(record.getCateName());
|
||||
res.setContent(record.getRemark());
|
||||
res.setCreateTime(record.getCreateTime());
|
||||
res.setChangeValue(record.getChangeValue());
|
||||
User user = userMap.get(record.getTarUserId());
|
||||
if(user != null){
|
||||
res.setSourceUserId(user.getId());
|
||||
res.setSourceNickname(user.getNickname());
|
||||
res.setSourceImg(user.getAvatar());
|
||||
}
|
||||
vo.add(res);
|
||||
}
|
||||
return PageConvert.convert(page,vo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void consumerSaveLog(Long sponsorUserId, String traceId, User receiveUser) {
|
||||
MinUser minUser = userService.getMinUserById(sponsorUserId);
|
||||
WxTransLog wxTransLog = new WxTransLog();
|
||||
wxTransLog.setUserId(minUser.getId());
|
||||
wxTransLog.setUsercode(minUser.getUsercode());
|
||||
wxTransLog.setTraceId(traceId);
|
||||
wxTransLog.setCateId(WxTransLogCateEnum.CONSUMER.getCode());
|
||||
wxTransLog.setCateName(WxTransLogCateEnum.CONSUMER.getText());
|
||||
wxTransLog.setRemark("使用一次微信交换");
|
||||
wxTransLog.setChangeValue(-1L);
|
||||
wxTransLog.setTarUserJson(JSON.toJSONString(receiveUser));
|
||||
wxTransLog.setTarUserId(receiveUser.getId());
|
||||
wxTransLog.setTarUsercode(receiveUser.getUsercode());
|
||||
this.save(wxTransLog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveLog(Long userId, Integer wxTransNum, WxTransLogCateEnum cateEnum, String traceId, String remark) {
|
||||
MinUser minUser = userService.getMinUserById(userId);
|
||||
WxTransLog wxTransLog = new WxTransLog();
|
||||
wxTransLog.setUserId(minUser.getId());
|
||||
wxTransLog.setUsercode(minUser.getUsercode());
|
||||
wxTransLog.setTraceId(traceId);
|
||||
wxTransLog.setCateId(cateEnum.getCode());
|
||||
wxTransLog.setCateName(cateEnum.getText());
|
||||
wxTransLog.setRemark(cateEnum.getText());
|
||||
if(StringUtils.isNotBlank(remark)){
|
||||
wxTransLog.setRemark(remark);
|
||||
}
|
||||
wxTransLog.setChangeValue(Long.valueOf(wxTransNum));
|
||||
this.save(wxTransLog);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +1,35 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
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.User;
|
||||
import com.ruoyi.xq.domain.WxTransOrder;
|
||||
import com.ruoyi.xq.dto.admin.wxtrans.WxTransOrderAdminVo;
|
||||
import com.ruoyi.xq.dto.app.pay.ConsumeResp;
|
||||
import com.ruoyi.xq.enums.account.WxTransLogCateEnum;
|
||||
import com.ruoyi.xq.enums.common.OrderTypeEnum;
|
||||
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||
import com.ruoyi.xq.enums.common.TraceIdEnum;
|
||||
import com.ruoyi.xq.enums.pay.PayStatusEnum;
|
||||
import com.ruoyi.xq.enums.wxtrans.WxTransSourceEnum;
|
||||
import com.ruoyi.xq.enums.account.WxTransSourceEnum;
|
||||
import com.ruoyi.xq.enums.pay.PlatformTypeEnum;
|
||||
import com.ruoyi.xq.manager.OrderNoUtil;
|
||||
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||
import com.ruoyi.xq.manager.TraceIdManager;
|
||||
import com.ruoyi.xq.mapper.WxTransOrderMapper;
|
||||
import com.ruoyi.xq.service.UserExtendService;
|
||||
import com.ruoyi.xq.service.UserService;
|
||||
import com.ruoyi.xq.service.WxTransOrderService;
|
||||
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业务层处理
|
||||
@@ -34,9 +44,11 @@ public class WxTransOrderServiceImpl extends ServiceImpl<WxTransOrderMapper,WxTr
|
||||
private SystemConfigManager systemConfigManager;
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
@Autowired
|
||||
private UserExtendService userExtendService;
|
||||
|
||||
@Override
|
||||
public WxTransOrder createVipOrder(Long userId, Integer wxTransNum) {
|
||||
public WxTransOrder createWxTransOrder(Long userId, Integer wxTransNum) {
|
||||
BigDecimal price = systemConfigManager.getSystemConfigOfBigDecimal(SystemConfigEnum.WX_TRANS_PRICE);
|
||||
String orderNo = OrderNoUtil.gen(OrderTypeEnum.WX_TRANS);
|
||||
User user = userService.getById(userId);
|
||||
@@ -53,6 +65,45 @@ public class WxTransOrderServiceImpl extends ServiceImpl<WxTransOrderMapper,WxTr
|
||||
return order;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WxTransOrder getByOrderNo(String orderNo){
|
||||
return this.getOne(Wrappers.lambdaQuery(WxTransOrder.class).eq(WxTransOrder::getOrderNo, orderNo).last("limit 1"));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ConsumeResp doSuccess(String orderNo, Map<String, String> params, String appId, PlatformTypeEnum payTypeEnum){
|
||||
WxTransOrder wxTransOrder = this.getByOrderNo(orderNo);
|
||||
if(wxTransOrder == null){
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setSuccess(false);
|
||||
return resp;
|
||||
}
|
||||
String traceId = TraceIdManager.gen(TraceIdEnum.VIP);
|
||||
boolean success = this.update(Wrappers.lambdaUpdate(WxTransOrder.class)
|
||||
.eq(WxTransOrder::getId, wxTransOrder.getId())
|
||||
.eq(WxTransOrder::getPayStatus, PayStatusEnum.READY_PAY.getCode())
|
||||
.set(WxTransOrder::getPayStatus, PayStatusEnum.PAY.getCode())
|
||||
.set(WxTransOrder::getTraceId, traceId)
|
||||
.set(WxTransOrder::getReturnContent, JSON.toJSONString(params))
|
||||
.set(WxTransOrder::getAppid,appId)
|
||||
.set(WxTransOrder::getPlatformType, payTypeEnum.getCode()));
|
||||
if(!success){
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setSuccess(false);
|
||||
return resp;
|
||||
}
|
||||
userExtendService.incsWxTrans(wxTransOrder.getUserId(),wxTransOrder.getWxNum(), WxTransLogCateEnum.ORDER,wxTransOrder.getTraceId(),
|
||||
"购买一次微信交换");
|
||||
ConsumeResp resp = new ConsumeResp();
|
||||
resp.setPrice(wxTransOrder.getWxPrice());
|
||||
resp.setUserId(wxTransOrder.getUserId());
|
||||
resp.setTraceId(traceId);
|
||||
resp.setSuccess(true);
|
||||
return resp;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<WxTransOrderAdminVo> pageAdmin(PageQuery pageQuery, WxTransOrderAdminVo bo) {
|
||||
return baseMapper.pageAdmin(pageQuery.build(), bo);
|
||||
|
||||
Reference in New Issue
Block a user