23 changed files with 539 additions and 34 deletions
@ -0,0 +1,34 @@ |
|||
package com.bnyer.img.constants; |
|||
|
|||
/** |
|||
* @author chengkun |
|||
* @date 2022/4/21 18:12 |
|||
*/ |
|||
public class ProfitOrderConstant { |
|||
|
|||
/** |
|||
* 收益通过响应码 |
|||
*/ |
|||
public static final String PASS = "1"; |
|||
|
|||
/** |
|||
* 收益拒绝响应码 |
|||
*/ |
|||
public static final String UN_PASS = "2"; |
|||
|
|||
/** |
|||
* 抖音平台状态码 |
|||
*/ |
|||
public static final String TIKTOK = "0"; |
|||
|
|||
/** |
|||
* 快手平台状态码 |
|||
*/ |
|||
public static final String FAST_HAND = "1"; |
|||
|
|||
/** |
|||
* bnyer壁纸应用状态码 |
|||
*/ |
|||
public static final String BNYER_IMG = "0"; |
|||
|
|||
} |
|||
@ -0,0 +1,122 @@ |
|||
package com.bnyer.img.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 com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
import java.util.Date; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.Getter; |
|||
import lombok.NoArgsConstructor; |
|||
import lombok.Setter; |
|||
import lombok.ToString; |
|||
|
|||
/** |
|||
* @author chengkun |
|||
* @date 2022/6/10 14:42 |
|||
*/ |
|||
/** |
|||
* 图文平台-收益结算审核单表 |
|||
*/ |
|||
@ApiModel(value="com-bnyer-img-domain-ProfitVerifyOrder") |
|||
@Getter |
|||
@Setter |
|||
@ToString |
|||
@AllArgsConstructor |
|||
@NoArgsConstructor |
|||
@TableName(value = "img_profit_verify_order") |
|||
public class ProfitVerifyOrder implements Serializable { |
|||
/** |
|||
* 主键id |
|||
*/ |
|||
@TableId(value = "id", type = IdType.INPUT) |
|||
@ApiModelProperty(value="主键id") |
|||
private Long id; |
|||
|
|||
/** |
|||
* 昨日收益 |
|||
*/ |
|||
@TableField(value = "amt") |
|||
@ApiModelProperty(value="昨日收益") |
|||
private BigDecimal amt; |
|||
|
|||
/** |
|||
* 创建订单管理员id |
|||
*/ |
|||
@TableField(value = "admin_id") |
|||
@ApiModelProperty(value="创建订单管理员id") |
|||
private Long adminId; |
|||
|
|||
/** |
|||
* 平台(0->抖音;1->快手) |
|||
*/ |
|||
@TableField(value = "platform") |
|||
@ApiModelProperty(value="平台(0->抖音;1->快手)") |
|||
private String platform; |
|||
|
|||
/** |
|||
* 应用(0->bnyer) |
|||
*/ |
|||
@TableField(value = "app_type") |
|||
@ApiModelProperty(value="应用(0->bnyer)") |
|||
private String appType; |
|||
|
|||
/** |
|||
* 修改管理员id |
|||
*/ |
|||
@TableField(value = "update_admin_id") |
|||
@ApiModelProperty(value="修改管理员id") |
|||
private Long updateAdminId; |
|||
|
|||
/** |
|||
* 审核状态(0->待审核;1->通过;2->拒绝) |
|||
*/ |
|||
@TableField(value = "verify_status") |
|||
@ApiModelProperty(value="审核状态(0->待审核;1->通过;2->拒绝)") |
|||
private String verifyStatus; |
|||
|
|||
/** |
|||
* 审核意见 |
|||
*/ |
|||
@TableField(value = "reason") |
|||
@ApiModelProperty(value="审核意见") |
|||
private String reason; |
|||
|
|||
/** |
|||
* 审核管理员id |
|||
*/ |
|||
@TableField(value = "verify_admin_id") |
|||
@ApiModelProperty(value="审核管理员id") |
|||
private Long verifyAdminId; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
@TableField(value = "create_time") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value="创建时间") |
|||
private Date createTime; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
@TableField(value = "update_time") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value="更新时间") |
|||
private Date updateTime; |
|||
|
|||
/** |
|||
* 审批时间 |
|||
*/ |
|||
@TableField(value = "verify_time") |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
|||
@ApiModelProperty(value="审批时间") |
|||
private Date verifyTime; |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
} |
|||
@ -1,19 +0,0 @@ |
|||
package com.bnyer.img.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
|
|||
@Getter |
|||
@Setter |
|||
@ApiModel("下载记录分页接收类") |
|||
public class DownloadLogPageDto extends BasePageDto { |
|||
|
|||
@ApiModelProperty(value="渠道(0->抖音;1->快手;2->微信)") |
|||
private String channel; |
|||
|
|||
@ApiModelProperty(value="搜索码") |
|||
private String scanCode; |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
package com.bnyer.img.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
|
|||
|
|||
@Getter |
|||
@Setter |
|||
@ApiModel("收益审核订单审核接收类") |
|||
public class ProfitVerifyOrderDto implements Serializable { |
|||
|
|||
@NotNull(message = "主键id") |
|||
@ApiModelProperty(value="主键id") |
|||
private Long id; |
|||
|
|||
@NotBlank(message = "审核状态不能为空!") |
|||
@ApiModelProperty(value="审核状态(0->待审核;1->通过;2->拒绝)") |
|||
private String verifyStatus; |
|||
|
|||
@ApiModelProperty(value="审核意见") |
|||
private String reason; |
|||
|
|||
@NotNull(message = "审核管理员id不能为空!") |
|||
@ApiModelProperty(value="审核管理员id") |
|||
private Long verifyAdminId; |
|||
|
|||
@NotNull(message = "昨日收益不能为空!") |
|||
@ApiModelProperty(value="昨日收益") |
|||
private BigDecimal amt; |
|||
|
|||
@ApiModelProperty(value="平台(0->抖音;1->快手)") |
|||
private String platform; |
|||
|
|||
@ApiModelProperty(value="应用(0->bnyer)") |
|||
private String appType; |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
package com.bnyer.img.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
|
|||
|
|||
@Getter |
|||
@Setter |
|||
@ApiModel("收益审核订单新增接收类") |
|||
public class ProfitVerifyOrderInsertDto implements Serializable { |
|||
|
|||
@ApiModelProperty(value="昨日收益") |
|||
private BigDecimal amt; |
|||
|
|||
@ApiModelProperty(value="创建订单管理员id") |
|||
private Long adminId; |
|||
|
|||
@ApiModelProperty(value="平台(0->抖音;1->快手)") |
|||
private String platform; |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
package com.bnyer.img.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
@Getter |
|||
@Setter |
|||
@ApiModel("收益审核单分页接收类") |
|||
public class ProfitVerifyOrderPageDto extends BasePageDto { |
|||
|
|||
@ApiModelProperty(value="审核状态(0->待审核;1->通过;2->拒绝)") |
|||
private String verifyStatus; |
|||
|
|||
@ApiModelProperty(value="平台(0->抖音;1->快手)") |
|||
private String platform; |
|||
|
|||
@ApiModelProperty(value="开始时间") |
|||
private String startTime; |
|||
|
|||
@ApiModelProperty(value="结束时间") |
|||
private String endTime; |
|||
|
|||
} |
|||
@ -0,0 +1,33 @@ |
|||
package com.bnyer.img.dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Getter; |
|||
import lombok.Setter; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
import javax.validation.constraints.NotNull; |
|||
import java.io.Serializable; |
|||
import java.math.BigDecimal; |
|||
|
|||
|
|||
@Getter |
|||
@Setter |
|||
@ApiModel("收益审核订单更新接收类") |
|||
public class ProfitVerifyOrderUpdateDto implements Serializable { |
|||
|
|||
@NotNull(message = "主键id不能为空!") |
|||
@ApiModelProperty(value="主键id") |
|||
private Long id; |
|||
|
|||
@NotNull(message = "昨日收益不能为空!") |
|||
@ApiModelProperty(value="昨日收益") |
|||
private BigDecimal amt; |
|||
|
|||
@NotNull(message = "修改管理员id不能为空!") |
|||
@ApiModelProperty(value="修改管理员id") |
|||
private Long updateAdminId; |
|||
|
|||
@ApiModelProperty(value="平台(0->抖音;1->快手)") |
|||
private String platform; |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
package com.bnyer.img.mapper; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.bnyer.img.domain.ProfitVerifyOrder; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
/** |
|||
* @author chengkun |
|||
* @date 2022/6/10 14:42 |
|||
*/ |
|||
@Mapper |
|||
public interface ProfitVerifyOrderMapper extends BaseMapper<ProfitVerifyOrder> { |
|||
} |
|||
@ -0,0 +1,54 @@ |
|||
package com.bnyer.img.service; |
|||
|
|||
import com.bnyer.img.domain.ProfitVerifyOrder; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderInsertDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderPageDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderUpdateDto; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface ProfitVerifyOrderService { |
|||
|
|||
/** |
|||
* 新增profitVerifyOrder |
|||
* @param params - |
|||
* @return - |
|||
*/ |
|||
int insert(ProfitVerifyOrderInsertDto params); |
|||
|
|||
/** |
|||
* 修改profitVerifyOrder |
|||
* @param params - |
|||
* @return - |
|||
*/ |
|||
int update(ProfitVerifyOrderUpdateDto params); |
|||
|
|||
/** |
|||
* 批量删除profitVerifyOrder |
|||
* @param ids ids |
|||
* @return - |
|||
*/ |
|||
int delete(List<Long> ids); |
|||
|
|||
/** |
|||
* 查询profitVerifyOrder分页 |
|||
* @param dto 分页对象 |
|||
* @return - |
|||
*/ |
|||
List<ProfitVerifyOrder> queryPage(ProfitVerifyOrderPageDto dto); |
|||
|
|||
/** |
|||
* 查询profitVerifyOrder详情 |
|||
* @param id 主键id |
|||
* @return - |
|||
*/ |
|||
ProfitVerifyOrder queryDetails(Long id); |
|||
|
|||
/** |
|||
* 审核 |
|||
* @param params 审核参数 |
|||
* @return - |
|||
*/ |
|||
boolean verify(ProfitVerifyOrderDto params); |
|||
} |
|||
@ -0,0 +1,104 @@ |
|||
package com.bnyer.img.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.bnyer.common.core.utils.StringUtils; |
|||
import com.bnyer.img.constants.ProfitOrderConstant; |
|||
import com.bnyer.img.constants.RedisKeyConstant; |
|||
import com.bnyer.img.domain.ProfitVerifyOrder; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderInsertDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderPageDto; |
|||
import com.bnyer.img.dto.ProfitVerifyOrderUpdateDto; |
|||
import com.bnyer.img.mapper.ProfitVerifyOrderMapper; |
|||
import com.bnyer.img.service.ProfitVerifyOrderService; |
|||
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.math.BigDecimal; |
|||
import java.text.SimpleDateFormat; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
@Service |
|||
@Slf4j |
|||
public class ProfitVerifyOrderServiceImpl implements ProfitVerifyOrderService { |
|||
|
|||
@Autowired |
|||
private ProfitVerifyOrderMapper profitVerifyOrderMapper; |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public int insert(ProfitVerifyOrderInsertDto params) { |
|||
ProfitVerifyOrder order = new ProfitVerifyOrder(); |
|||
order.setAmt(params.getAmt()); |
|||
order.setAdminId(params.getAdminId()); |
|||
order.setPlatform(params.getPlatform()); |
|||
order.setCreateTime(new Date()); |
|||
order.setVerifyStatus("0"); |
|||
return profitVerifyOrderMapper.insert(order); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public int update(ProfitVerifyOrderUpdateDto params) { |
|||
ProfitVerifyOrder order = new ProfitVerifyOrder(); |
|||
order.setId(params.getId()); |
|||
order.setUpdateAdminId(params.getUpdateAdminId()); |
|||
order.setAmt(params.getAmt()); |
|||
order.setPlatform(params.getPlatform()); |
|||
order.setUpdateTime(new Date()); |
|||
return profitVerifyOrderMapper.updateById(order); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public int delete(List<Long> ids) { |
|||
return profitVerifyOrderMapper.deleteBatchIds(ids); |
|||
} |
|||
|
|||
@Override |
|||
public List<ProfitVerifyOrder> queryPage(ProfitVerifyOrderPageDto dto) { |
|||
LambdaQueryWrapper<ProfitVerifyOrder> wrapper = new LambdaQueryWrapper<>(); |
|||
if(StringUtils.isNotBlank(dto.getVerifyStatus())){ |
|||
wrapper.eq(ProfitVerifyOrder::getVerifyStatus, dto.getVerifyStatus()); |
|||
} |
|||
if(StringUtils.isNotBlank(dto.getPlatform())){ |
|||
wrapper.eq(ProfitVerifyOrder::getPlatform, dto.getPlatform()); |
|||
} |
|||
if(StringUtils.isNotBlank(dto.getStartTime()) && StringUtils.isNotBlank(dto.getEndTime())){ |
|||
wrapper.between(ProfitVerifyOrder::getCreateTime, dto.getStartTime(), dto.getEndTime()); |
|||
} |
|||
wrapper.orderByDesc(ProfitVerifyOrder::getCreateTime); |
|||
return profitVerifyOrderMapper.selectList(wrapper); |
|||
} |
|||
|
|||
@Override |
|||
public ProfitVerifyOrder queryDetails(Long id) { |
|||
return profitVerifyOrderMapper.selectById(id); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public boolean verify(ProfitVerifyOrderDto params) { |
|||
if(params.getVerifyStatus().equals(ProfitOrderConstant.PASS)){ |
|||
//审核通过计算收益
|
|||
//昨日总收益的80%
|
|||
BigDecimal yesterdayTotalProfit = params.getAmt().multiply(BigDecimal.valueOf(0.8)); |
|||
if(params.getPlatform().equals(ProfitOrderConstant.TIKTOK) && params.getAppType().equals(ProfitOrderConstant.BNYER_IMG)){ |
|||
//昨日抖音平台总下载量
|
|||
//获取昨日日期
|
|||
Date today = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); |
|||
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
|||
String date = simpleDateFormat.format(today); |
|||
String tiktokKey = RedisKeyConstant.TIKTOK_IMG_TOTAL_DOWNLOAD_NUM_KEY + date; |
|||
}else if(params.getPlatform().equals(ProfitOrderConstant.FAST_HAND) && params.getAppType().equals(ProfitOrderConstant.BNYER_IMG)){ |
|||
//昨日快手平台总下载量
|
|||
} |
|||
}else{ |
|||
//审核不通过,流程结束
|
|||
} |
|||
return false; |
|||
} |
|||
} |
|||
@ -0,0 +1,25 @@ |
|||
<?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.ProfitVerifyOrderMapper"> |
|||
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.ProfitVerifyOrder"> |
|||
<!--@mbg.generated--> |
|||
<!--@Table img_profit_verify_order--> |
|||
<id column="id" jdbcType="BIGINT" property="id" /> |
|||
<result column="amt" jdbcType="DECIMAL" property="amt" /> |
|||
<result column="admin_id" jdbcType="BIGINT" property="adminId" /> |
|||
<result column="update_admin_id" jdbcType="BIGINT" property="updateAdminId" /> |
|||
<result column="verify_status" jdbcType="CHAR" property="verifyStatus" /> |
|||
<result column="platform" jdbcType="CHAR" property="platform" /> |
|||
<result column="app_type" jdbcType="CHAR" property="appType" /> |
|||
<result column="reason" jdbcType="VARCHAR" property="reason" /> |
|||
<result column="verify_admin_id" jdbcType="BIGINT" property="verifyAdminId" /> |
|||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> |
|||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> |
|||
<result column="verify_time" jdbcType="TIMESTAMP" property="verifyTime" /> |
|||
</resultMap> |
|||
<sql id="Base_Column_List"> |
|||
<!--@mbg.generated--> |
|||
id, amt, admin_id, verify_status, reason, verify_admin_id, create_time, verify_time, |
|||
update_admin_id,updateTime,platform,app_type |
|||
</sql> |
|||
</mapper> |
|||
Loading…
Reference in new issue