Browse Source

feature-img-1.0:新增兑换绘画使用次数方法

feature-1.0-img
Penny 3 years ago
parent
commit
2451a20227
  1. 68
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CdkLog.java
  2. 89
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/PaintCdk.java
  3. 28
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/PaintCdkUseDto.java
  4. 18
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  5. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CdkLogMapper.java
  6. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/PaintCdkMapper.java
  7. 29
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/PaintCdkService.java
  8. 76
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/PaintCdkServiceImpl.java
  9. 18
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CdkLogMapper.xml
  10. 21
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/PaintCdkMapper.xml

68
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/CdkLog.java

@ -0,0 +1,68 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-common-core-domain-CdkLog")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_cdk_log")
public class CdkLog implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 兑换码
*/
@TableField(value = "cdk")
@ApiModelProperty(value="兑换码")
private String cdk;
/**
* 用户id
*/
@TableField(value = "user_id")
@ApiModelProperty(value="用户id")
private Long userId;
/**
* 平台(0->Hub;1->抖音;2->快手;3->微信)
*/
@TableField(value = "`source`")
@ApiModelProperty(value="平台(0->Hub;1->抖音;2->快手;3->微信)")
private String source;
/**
* 是否显示 (0->隐藏1->显示)
*/
@TableField(value = "is_show")
@ApiModelProperty(value="是否显示 (0->隐藏;1->显示)")
private String isShow;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
private static final long serialVersionUID = 1L;
}

89
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/PaintCdk.java

@ -0,0 +1,89 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-common-core-domain-PaintCdk")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_paint_cdk")
public class PaintCdk implements Serializable {
/**
* 主键Id
*/
@TableId(value = "id", type = IdType.ASSIGN_ID)
@ApiModelProperty(value="主键Id")
private Long id;
/**
* 兑换码
*/
@TableField(value = "cdk")
@ApiModelProperty(value="兑换码")
private String cdk;
/**
* 兑换次数
*/
@TableField(value = "paint_num")
@ApiModelProperty(value="兑换次数")
private String paintNum;
/**
* 是否显示 (0->隐藏1->显示)
*/
@TableField(value = "is_show")
@ApiModelProperty(value="是否显示 (0->隐藏;1->显示)")
private String isShow;
/**
* 是否使用 (0->未使用1->已使用)
*/
@TableField(value = "is_use")
@ApiModelProperty(value="是否使用 (0->未使用;1->已使用)")
private String isUse;
/**
* 平台(0->Hub;1->抖音;2->快手;3->微信)
*/
@TableField(value = "`source`")
@ApiModelProperty(value="平台(0->Hub;1->抖音;2->快手;3->微信)")
private String source;
/**
* 创建时间
*/
@TableField(value = "create_time")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
@ApiModelProperty(value="更新时间")
private Date updateTime;
/**
* 序号
*/
@TableField(value = "sort")
@ApiModelProperty(value="序号")
private Integer sort;
private static final long serialVersionUID = 1L;
}

28
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/dto/PaintCdkUseDto.java

@ -0,0 +1,28 @@
package com.bnyer.common.core.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("使用cdk接收类")
public class PaintCdkUseDto implements Serializable {
@NotNull(message = "兑换码不能为空!")
@ApiModelProperty(value="兑换码")
private String cdk;
@NotNull(message = "用户id不能为空!")
@ApiModelProperty(value="用户id")
private Long userId;
@NotNull(message = "平台渠道不能为空!")
@ApiModelProperty(value="平台(0->通用;1->抖音;2->快手;3->微信)")
private String source;
}

18
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.domain.Feedback;
import com.bnyer.common.core.domain.PaintCdk;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.*;
import com.bnyer.common.core.web.controller.BaseController;
@ -92,6 +93,9 @@ public class TiktokMiniController extends BaseController {
@Autowired
private AiPaintService aiPaintService;
@Autowired
private PaintCdkService paintCdkService;
@ApiOperation(value="查询banner列表")
@GetMapping(value = "/listBanner")
public AjaxResult listBanner(){
@ -441,4 +445,18 @@ public class TiktokMiniController extends BaseController {
List<AiPaintVo> aiPaintList = aiPaintService.queryPage(dto);
return getDataTable(aiPaintList);
}
@ApiOperation(value="生成cdk")
@PostMapping(value = "/generatorCdk/{paintNum}")
public AjaxResult generatorCdk(@PathVariable int paintNum){
paintCdkService.generatorCdk("1",paintNum);
return AjaxResult.success();
}
@ApiOperation(value="使用cdk")
@PostMapping(value = "/useCdk")
public AjaxResult useCdk(@Validated @RequestBody @ApiParam("ai绘画对象") PaintCdkUseDto dto){
paintCdkService.useCdk(dto.getCdk(),dto.getSource(),dto.getUserId());
return AjaxResult.success();
}
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CdkLogMapper.java

@ -0,0 +1,9 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.CdkLog;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CdkLogMapper extends BaseMapper<CdkLog> {
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/PaintCdkMapper.java

@ -0,0 +1,9 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.common.core.domain.PaintCdk;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PaintCdkMapper extends BaseMapper<PaintCdk> {
}

29
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/PaintCdkService.java

@ -0,0 +1,29 @@
package com.bnyer.img.service;
import com.bnyer.common.core.domain.PaintCdk;
public interface PaintCdkService {
/**
* 生成不同平台的cdk
* @param source 平台
* @param paintNum 兑换次数
*/
void generatorCdk(String source,int paintNum);
/**
* 根据平台检查cdk是否使用
* @param cdk 兑换码
* @param source 平台
* @return -
*/
PaintCdk checkCdk(String cdk, String source);
/**
* 兑换cdk
* @param cdk 兑换码
* @param source 平台
* @param userId 用户id
*/
void useCdk(String cdk,String source,Long userId);
}

76
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/PaintCdkServiceImpl.java

@ -0,0 +1,76 @@
package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.bnyer.common.core.domain.CdkLog;
import com.bnyer.common.core.domain.PaintCdk;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.img.mapper.CdkLogMapper;
import com.bnyer.img.mapper.PaintCdkMapper;
import com.bnyer.img.service.PaintCdkService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@Service
@Slf4j
public class PaintCdkServiceImpl implements PaintCdkService {
@Autowired
private PaintCdkMapper paintCdkMapper;
@Autowired
private CdkLogMapper cdkLogMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void generatorCdk(String source,int paintNum) {
for (int i = 0; i < 50; i++) {
String cdk = IdUtils.fastSimpleUUID().toUpperCase();
PaintCdk paintCdk = new PaintCdk();
paintCdk.setCreateTime(new Date());
paintCdk.setIsShow("1");
paintCdk.setIsUse("0");
paintCdk.setSort(0);
paintCdk.setUpdateTime(new Date());
paintCdk.setSource(source);
paintCdk.setCdk(cdk);
paintCdkMapper.insert(paintCdk);
}
}
@Override
public PaintCdk checkCdk(String cdk, String source) {
LambdaQueryWrapper<PaintCdk> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PaintCdk::getSource, source);
wrapper.eq(PaintCdk::getCdk, cdk);
wrapper.eq(PaintCdk::getIsUse, "0");
return paintCdkMapper.selectOne(wrapper);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void useCdk(String cdk, String source,Long userId) {
//检查cdk是否被使用过
PaintCdk paintCdk = checkCdk(cdk, source);
if(paintCdk == null){
throw new ServiceException("该兑换码已被使用!");
}else{
//TODO 增加用户绘画次数
//修改cdk状态
paintCdk.setIsUse("1");
paintCdkMapper.updateById(paintCdk);
//写入使用记录
CdkLog cdkLog = new CdkLog();
cdkLog.setCreateTime(new Date());
cdkLog.setSource(source);
cdkLog.setIsShow("1");
cdkLog.setCdk(cdk);
cdkLog.setUserId(userId);
cdkLogMapper.insert(cdkLog);
}
}
}

18
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CdkLogMapper.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.img.mapper.CdkLogMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.CdkLog">
<!--@mbg.generated-->
<!--@Table img_cdk_log-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="cdk" jdbcType="VARCHAR" property="cdk" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="source" jdbcType="CHAR" property="source" />
<result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, cdk, user_id, `source`, is_show, create_time
</sql>
</mapper>

21
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/PaintCdkMapper.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.img.mapper.PaintCdkMapper">
<resultMap id="BaseResultMap" type="com.bnyer.common.core.domain.PaintCdk">
<!--@mbg.generated-->
<!--@Table img_paint_cdk-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="cdk" jdbcType="VARCHAR" property="cdk" />
<result column="paint_num" jdbcType="INTEGER" property="paintNum" />
<result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="is_use" jdbcType="CHAR" property="isUse" />
<result column="source" jdbcType="CHAR" property="source" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sort" jdbcType="INTEGER" property="sort" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, cdk, is_show, is_use, `source`, create_time, update_time, sort,paint_num
</sql>
</mapper>
Loading…
Cancel
Save