package com.hollywood.applet.service.impl;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.hollywood.applet.dto.PerformanceJoinDto;
|
import com.hollywood.applet.mapper.TPerformerActivityMapper;
|
import com.hollywood.applet.mapper.TPerformerActivityUserMapper;
|
import com.hollywood.applet.mapper.TUserMapper;
|
import com.hollywood.applet.query.TPerformerActivityQuery;
|
import com.hollywood.applet.service.TPerformerActivityService;
|
import com.hollywood.applet.service.TPerformerActivityUserService;
|
import com.hollywood.common.basic.ApiResult;
|
import com.hollywood.common.basic.PageInfo;
|
import com.hollywood.common.exception.ServiceException;
|
import com.hollywood.common.model.*;
|
|
import com.hollywood.common.redis.RedisAutoTemplate;
|
import com.hollywood.common.utils.PayMoneyUtil;
|
import com.hollywood.common.utils.UUIDUtil;
|
import org.checkerframework.checker.units.qual.A;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* <p>
|
* 演员活动 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2024-02-29
|
*/
|
@Service
|
public class TPerformerActivityServiceImpl extends ServiceImpl<TPerformerActivityMapper, TPerformerActivity> implements TPerformerActivityService {
|
|
|
@Autowired
|
private PayMoneyUtil payMoneyUtil;
|
@Autowired
|
private TUserMapper userMapper;
|
@Autowired
|
private TPerformerActivityUserMapper tPerformerActivityUserMapper;
|
@Autowired
|
private RedisAutoTemplate redisAutoTemplate;
|
@Override
|
public PageInfo<TPerformerActivity> pageList(TPerformerActivityQuery query,List<Long> ids) {
|
PageInfo<TPerformerActivity> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TPerformerActivity> list = this.baseMapper.pageList(query,pageInfo,ids);
|
for (TPerformerActivity tPerformerActivity : list) {
|
tPerformerActivity.setHot(redisAutoTemplate.getSet("performer:hot:"+tPerformerActivity.getId()).size());
|
}
|
pageInfo.setRecords(list);
|
return pageInfo;
|
}
|
|
@Override
|
public int upAndDown(Long id, Integer status) {
|
TPerformerActivity performerActivity = this.baseMapper.selectById(id);
|
performerActivity.setStatus(status);
|
return this.baseMapper.updateById(performerActivity);
|
}
|
|
@Override
|
public ApiResult join(PerformanceJoinDto performanceJoinDto, Long userId) throws Exception {
|
|
|
//进行支付操作
|
if(performanceJoinDto.getPayType() == 1){//微信支付
|
return weChatPaymentAPerformance(performanceJoinDto,userId);
|
}
|
if (performanceJoinDto.getPayType()==2){
|
return aliPayPerformance(performanceJoinDto,userId);
|
}
|
return ApiResult.failed("请选择支付方式");
|
}
|
|
public ApiResult weChatPaymentAPerformance(PerformanceJoinDto performanceJoinDto, Long userId) throws Exception{
|
TPerformerActivity tPerformerActivity = this.baseMapper.selectById(performanceJoinDto.getAcId());
|
|
|
TUser tUser = userMapper.selectById(userId);
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
|
|
TPerformerActivityUser tPerformerActivityUser = new TPerformerActivityUser();
|
tPerformerActivityUser.setActivityId(performanceJoinDto.getAcId());
|
tPerformerActivityUser.setPersonName(performanceJoinDto.getName());
|
tPerformerActivityUser.setPersonPhone(tUser.getUserPhone());
|
tPerformerActivityUser.setGainVotesCount(0);
|
tPerformerActivityUser.setSelfIntroduction(performanceJoinDto.getIntroduce());
|
tPerformerActivityUser.setPerformerCover(performanceJoinDto.getIndexPic());
|
tPerformerActivityUser.setDetailPicture(performanceJoinDto.getInfoPic());
|
tPerformerActivityUser.setDetailPicture(performanceJoinDto.getInfoPic());
|
if (tPerformerActivity.getRegistrationFee()==0) {
|
tPerformerActivityUser.setIsPay(2);
|
}else {
|
tPerformerActivityUser.setIsPay(1);
|
}
|
tPerformerActivityUser.setMoney(BigDecimal.valueOf(tPerformerActivity.getRegistrationFee()));
|
tPerformerActivityUser.setUserId(userId);
|
tPerformerActivityUser.setCode(code);
|
tPerformerActivityUserMapper.insert(tPerformerActivityUser);
|
|
if (tPerformerActivity.getRegistrationFee()==0){
|
return ApiResult.success();
|
}
|
|
ApiResult weixinpay = payMoneyUtil.weixinpay("参加演员活动", "", code,tPerformerActivity.getRegistrationFee().toString(), "/base/performance/callback", "APP");
|
|
return weixinpay;
|
}
|
|
|
private ApiResult aliPayPerformance(PerformanceJoinDto performanceJoinDto, Long userId) {
|
TPerformerActivity tPerformerActivity = this.baseMapper.selectById(performanceJoinDto.getAcId());
|
TUser tUser = userMapper.selectById(userId);
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
|
|
TPerformerActivityUser tPerformerActivityUser = new TPerformerActivityUser();
|
tPerformerActivityUser.setActivityId(performanceJoinDto.getAcId());
|
tPerformerActivityUser.setPersonName(performanceJoinDto.getName());
|
tPerformerActivityUser.setPersonPhone(tUser.getUserPhone());
|
tPerformerActivityUser.setGainVotesCount(0);
|
tPerformerActivityUser.setSelfIntroduction(performanceJoinDto.getIntroduce());
|
tPerformerActivityUser.setPerformerCover(performanceJoinDto.getIndexPic());
|
tPerformerActivityUser.setDetailPicture(performanceJoinDto.getInfoPic());
|
tPerformerActivityUser.setDetailPicture(performanceJoinDto.getInfoPic());
|
if (tPerformerActivity.getRegistrationFee()==0) {
|
tPerformerActivityUser.setIsPay(2);
|
}else {
|
tPerformerActivityUser.setIsPay(1);
|
}
|
tPerformerActivityUser.setMoney(BigDecimal.valueOf(tPerformerActivity.getRegistrationFee()));
|
tPerformerActivityUser.setUserId(userId);
|
tPerformerActivityUser.setCode(code);
|
tPerformerActivityUserMapper.insert(tPerformerActivityUser);
|
if (tPerformerActivity.getRegistrationFee()==0) {
|
return ApiResult.success();
|
}
|
ApiResult alipay = payMoneyUtil.alipay("参加演员活动", "参加演员活动", code, tPerformerActivity.getRegistrationFee().toString(), "/base/performance/aliPaymentCourseCallback");
|
return alipay;
|
}
|
}
|