Commit 25af0193 by giaogiao

开通vip接口

parent 1fc880d9
...@@ -49,7 +49,7 @@ public class AppUserController extends BaseController { ...@@ -49,7 +49,7 @@ public class AppUserController extends BaseController {
*/ */
@GetMapping("/myInfo/") @GetMapping("/myInfo/")
@OperationLog(name = "APP用户详情", type = OperationLogType.INFO) @OperationLog(name = "APP用户详情", type = OperationLogType.INFO)
@ApiOperation(value = "APP用户详情", response = AppUserQueryVo.class) @ApiOperation(value = "获取APP用户详情", response = AppUserQueryVo.class)
public ApiResult<AppUserQueryVo> getAppUser() throws Exception { public ApiResult<AppUserQueryVo> getAppUser() throws Exception {
AppUserQueryVo appUserQueryVo = appUserService.getMyInfo(); AppUserQueryVo appUserQueryVo = appUserService.getMyInfo();
return ApiResult.ok(appUserQueryVo); return ApiResult.ok(appUserQueryVo);
......
package com.sien.common.controller; package com.sien.common.controller;
import com.sien.common.param.VipRecordOpenParam;
import com.sien.common.service.VipRecordService; import com.sien.common.service.VipRecordService;
import io.geekidea.springbootplus.framework.common.api.ApiResult;
import io.geekidea.springbootplus.framework.common.controller.BaseController; import io.geekidea.springbootplus.framework.common.controller.BaseController;
import io.geekidea.springbootplus.framework.core.validator.groups.Add;
import io.geekidea.springbootplus.framework.log.annotation.OperationLog;
import io.geekidea.springbootplus.framework.log.enums.OperationLogType;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -23,6 +32,18 @@ public class VipRecordController extends BaseController { ...@@ -23,6 +32,18 @@ public class VipRecordController extends BaseController {
@Autowired @Autowired
private VipRecordService vipRecordService; private VipRecordService vipRecordService;
/**
* 添加Vip开通记录
*/
@PostMapping("/open")
@OperationLog(name = "添加Vip开通记录", type = OperationLogType.ADD)
@ApiOperation(value = "添加Vip开通记录")
public ApiResult<Boolean> addVipRecord(@Validated(Add.class) @RequestBody VipRecordOpenParam vipRecordOpenParam)throws Exception{
boolean flag= vipRecordService.openVip(vipRecordOpenParam);
return ApiResult.result(flag);
}
// /** // /**
// * 添加Vip开通记录 // * 添加Vip开通记录
// */ // */
......
package com.sien.common.param;
import io.geekidea.springbootplus.framework.core.pagination.BasePageOrderParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* <pre>
* 开通会员参数对象
* </pre>
*
* @author hewei
* @date 2021-02-25
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "捐款记录分页参数")
public class VipRecordOpenParam extends BasePageOrderParam {
private static final long serialVersionUID = 1L;
@ApiModelProperty("开通会员金额")
private BigDecimal money;
@NotNull(message = "开通多久不能为空")
@ApiModelProperty("开通多久")
private Integer years;
@NotBlank(message = "会员等级不能为空")
@ApiModelProperty("会员等级,直接传文字")
private String vipLevel;
@NotBlank(message = "不能为空")
@ApiModelProperty("是否代替他人捐款")
private Boolean isAgent;
@NotBlank(message = "不能为空")
@ApiModelProperty("替他人捐款,接收人userId, 当isAgent=1为必填")
private Long agentUserId;
}
package com.sien.common.service; package com.sien.common.service;
import com.sien.common.entity.VipRecord; import com.sien.common.entity.VipRecord;
import com.sien.common.param.VipRecordOpenParam;
import com.sien.common.param.VipRecordPageParam; import com.sien.common.param.VipRecordPageParam;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import com.sien.common.vo.VipRecordQueryVo; import com.sien.common.vo.VipRecordQueryVo;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.Paging;
/** /**
...@@ -24,6 +25,14 @@ public interface VipRecordService extends BaseService<VipRecord> { ...@@ -24,6 +25,14 @@ public interface VipRecordService extends BaseService<VipRecord> {
boolean saveVipRecord(VipRecord vipRecord)throws Exception; boolean saveVipRecord(VipRecord vipRecord)throws Exception;
/** /**
* 开通vip
* @param vipRecordOpenParam
* @return
* @throws Exception
*/
boolean openVip(VipRecordOpenParam vipRecordOpenParam)throws Exception;
/**
* 修改 * 修改
* *
* @param vipRecord * @param vipRecord
......
package com.sien.common.service.impl; package com.sien.common.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sien.common.entity.VipRecord; import com.sien.common.entity.VipRecord;
import com.sien.common.mapper.VipRecordMapper; import com.sien.common.mapper.VipRecordMapper;
import com.sien.common.param.VipRecordOpenParam;
import com.sien.common.param.VipRecordPageParam;
import com.sien.common.service.VipRecordService; import com.sien.common.service.VipRecordService;
import com.sien.common.param.VipRecordPageParam; import com.sien.common.vo.VipRecordQueryVo;
import com.sien.common.vo.VipRecordQueryVo;
import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl; import io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl;
import io.geekidea.springbootplus.framework.core.pagination.Paging; import io.geekidea.springbootplus.framework.core.pagination.PageInfo;
import io.geekidea.springbootplus.framework.core.pagination.PageInfo; import io.geekidea.springbootplus.framework.core.pagination.Paging;
import com.baomidou.mybatisplus.core.metadata.IPage; import io.geekidea.springbootplus.framework.shiro.jwt.JwtToken;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Calendar;
/** /**
* Vip开通记录 服务实现类 * Vip开通记录 服务实现类
...@@ -26,37 +31,64 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -26,37 +31,64 @@ import org.springframework.beans.factory.annotation.Autowired;
@Service @Service
public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRecord> implements VipRecordService { public class VipRecordServiceImpl extends BaseServiceImpl<VipRecordMapper, VipRecord> implements VipRecordService {
@Autowired @Autowired
private VipRecordMapper vipRecordMapper; private VipRecordMapper vipRecordMapper;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean saveVipRecord(VipRecord vipRecord)throws Exception{ public boolean saveVipRecord(VipRecord vipRecord) throws Exception {
return super.save(vipRecord); return super.save(vipRecord);
} }
@Transactional(rollbackFor = Exception.class) @Override
@Override public boolean openVip(VipRecordOpenParam vipRecordOpenParam) throws Exception {
public boolean updateVipRecord(VipRecord vipRecord)throws Exception{ JwtToken jwtToken = (JwtToken) SecurityUtils.getSubject().getPrincipal();
VipRecord vipRecord = new VipRecord();
vipRecord.setFkUserId(jwtToken.getUserId());
vipRecord.setMoney(vipRecordOpenParam.getMoney());
vipRecord.setFkRechargeUser(-1L);
// 设置到期时间
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, vipRecordOpenParam.getYears());
vipRecord.setExpiredAt(calendar.getTime());
vipRecord.setYears(vipRecordOpenParam.getYears());
vipRecord.setVipLevel(vipRecordOpenParam.getVipLevel());
// vipRecord.setRemark("");
// vipRecord.setCreateTime(new Date());
// vipRecord.setUpdateTime(new Date());
// 判断是否为替他人
if (vipRecordOpenParam.getIsAgent()) {
vipRecord.setFkRechargeUser(vipRecordOpenParam.getAgentUserId());
}
return super.save(vipRecord);
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateVipRecord(VipRecord vipRecord) throws Exception {
return super.updateById(vipRecord); return super.updateById(vipRecord);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public boolean deleteVipRecord(Long id)throws Exception{ public boolean deleteVipRecord(Long id) throws Exception {
return super.removeById(id); return super.removeById(id);
} }
@Override @Override
public VipRecordQueryVo getVipRecordById(Long id)throws Exception{ public VipRecordQueryVo getVipRecordById(Long id) throws Exception {
return vipRecordMapper.getVipRecordById(id); return vipRecordMapper.getVipRecordById(id);
} }
@Override @Override
public Paging<VipRecordQueryVo> getVipRecordPageList(VipRecordPageParam vipRecordPageParam)throws Exception{ public Paging<VipRecordQueryVo> getVipRecordPageList(VipRecordPageParam vipRecordPageParam) throws Exception {
Page<VipRecordQueryVo> page=new PageInfo<>(vipRecordPageParam,OrderItem.desc(getLambdaColumn(VipRecord::getCreateTime))); Page<VipRecordQueryVo> page = new PageInfo<>(vipRecordPageParam, OrderItem.desc(getLambdaColumn(VipRecord::getCreateTime)));
IPage<VipRecordQueryVo> iPage= vipRecordMapper.getVipRecordPageList(page, vipRecordPageParam); IPage<VipRecordQueryVo> iPage = vipRecordMapper.getVipRecordPageList(page, vipRecordPageParam);
return new Paging<VipRecordQueryVo>(iPage); return new Paging<VipRecordQueryVo>(iPage);
} }
} }
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