新增接口邀请新用户获利

pull/1/head
ZhiShuo_Lou 2023-10-26 20:40:46 +08:00
parent 04212d76f2
commit 57fdeaaf3d
8 changed files with 251 additions and 38 deletions

View File

@ -1,33 +1,40 @@
//package com.ruoyi.mybasic.common.domain;
//
//import lombok.Data;
//
//import java.util.Date;
//
///**
// * @ClassName Purse
// * @Description 钱包列表
// * @Author WenHao.Sao
// */
//@Data
//public class Purse {
//
// private long purseId;//钱包主键自增id
//
// private long userId;//用户编号
//
// private Double walletIncome;//钱包总收入额
//
// private Double walletOutcome;//钱包总支出额
//
// private Double balanceFee;//钱包总可用余额
//
// private Date updateTime;//更新时间
//
// /***
// * 新增添
// */
// private int amount;//获取前台输入的金额
//
//
//}
package com.ruoyi.mybasic.common.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
* @author Lou_Zs
*/
@Data
public class Purse {
/**
*
*/
private Integer userId;
/**
*
*/
private double walletIncome;
/**
*
*/
private double walletOutcome;
/**
*
*/
private double balanceFee;
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date updateTime;
}

View File

@ -0,0 +1,45 @@
package com.ruoyi.mybasic.common.domain;
import lombok.Data;
/**
*
* @author Lou_Zs
*/
@Data
public class UserMoneyLogs {
/**
*
*/
private Integer id;
/**
*
* 1:
* 2:
*/
private Integer status;
/**
*
*/
private String moneyTypeId;
/**
*
*/
private Integer userId;
/**
*
*/
private Integer amountIncome;
//审计字段
// private Integer del_flag;
// private String create_user_id;
// private Date create_time;
// private String update_by;
// private Date update_time;
}

View File

@ -0,0 +1,35 @@
package com.ruoyi.mybasic.common.domain.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
*
* @author Lou_Zs
*/
@Data
public class RequestInvitationRecord {
/**
*
*/
private Integer id;
/**
*
*/
private Integer userId;
/**
*
*/
private Integer userPid;
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date createTime;
}

View File

@ -1,15 +1,15 @@
package com.ruoyi.mybasic.controller;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
import com.ruoyi.mybasic.service.InvitationService;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@ -24,6 +24,8 @@ public class InvitationController {
@Autowired
private InvitationService invitationService;
@Autowired
private HttpServletRequest request;
/**
*
@ -34,4 +36,21 @@ public class InvitationController {
return invitationService.show(userId);
}
/**
*
* @param requestInvitationRecord
* @return
*/
@PostMapping("/UserInviteTask")
public R UserInviteTask(@RequestBody RequestInvitationRecord requestInvitationRecord){
log.info("功能介绍:新用户邀请,请求方式:{},请求路径:{},请求参数:{}",
request.getMethod(),request.getRequestURI(), JSONObject.toJSONString(requestInvitationRecord));
//邀请新用户
R req = invitationService.UserInviteTask(requestInvitationRecord);
log.info("功能介绍:新用户邀请,请求方式:{},请求路径:{},响应结果:{}",
request.getMethod(),request.getRequestURI(),JSONObject.toJSONString(req));
return req;
}
}

View File

@ -1,8 +1,10 @@
package com.ruoyi.mybasic.mapper;
import com.ruoyi.mybasic.common.domain.UserMoneyLogs;
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -20,4 +22,19 @@ public interface InvitationMapper {
PurseRequest Inviteramount(long inviterId);
PurseRequest Inviteeamount(long inviteeId);
/**
*
* @param requestInvitationRecord
*/
void insertInvitationRecord(RequestInvitationRecord requestInvitationRecord);
/**
*
* @param userId
*/
void updateUserPurse(@Param("userId") Integer userId);
void insertUserMoneyLogs(UserMoneyLogs userMoneyLogs);
}

View File

@ -1,14 +1,16 @@
package com.ruoyi.mybasic.service.Impl;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.mybasic.common.domain.UserMoneyLogs;
import com.ruoyi.mybasic.common.domain.emal.IncomeAmount;
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
import com.ruoyi.mybasic.common.domain.request.PurseRequest;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
import com.ruoyi.mybasic.mapper.InvitationMapper;
import com.ruoyi.mybasic.service.InvitationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -57,4 +59,43 @@ public class InvitationServiceImpl implements InvitationService {
R<List<InvitationRecordRequest>> ok = R.ok(list);
return ok;
}
/**
*
* @param requestInvitationRecord
* @return
*/
@Override
@Transactional //事务
public R UserInviteTask(RequestInvitationRecord requestInvitationRecord) {
//新增一条邀请记录
invitationMapper.insertInvitationRecord(requestInvitationRecord);
//被邀请人id
Integer userPid = requestInvitationRecord.getUserPid();
//邀请人id
Integer userId = requestInvitationRecord.getUserId();
//修改邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
invitationMapper.updateUserPurse(userId);
//同时添加钱包变更记录表
UserMoneyLogs userMoneyLogs = new UserMoneyLogs();
userMoneyLogs.setUserId(userId);
userMoneyLogs.setMoneyTypeId("NEW_USER_INVITE");
userMoneyLogs.setStatus(2);
userMoneyLogs.setAmountIncome(300);
invitationMapper.insertUserMoneyLogs(userMoneyLogs);
//修改被邀请人钱包 (1.可用余额+300 2.总计收入+300 3.修改时间)
invitationMapper.updateUserPurse(userPid);
//同时添加钱包变更记录表
UserMoneyLogs PuserMoneyLogs = new UserMoneyLogs();
userMoneyLogs.setUserId(userPid);
userMoneyLogs.setMoneyTypeId("NEW_USER_INVITE");
userMoneyLogs.setStatus(2);
userMoneyLogs.setAmountIncome(300);
invitationMapper.insertUserMoneyLogs(PuserMoneyLogs);
return R.ok();
}
}

View File

@ -2,6 +2,7 @@ package com.ruoyi.mybasic.service;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest;
import com.ruoyi.mybasic.common.domain.request.RequestInvitationRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -13,4 +14,12 @@ import java.util.List;
*/
public interface InvitationService {
R<List<InvitationRecordRequest>> show(@Param("userId") String userId);
/**
*
* @param requestInvitationRecord
* @return
*/
R UserInviteTask(RequestInvitationRecord requestInvitationRecord);
}

View File

@ -3,6 +3,7 @@
<mapper namespace="com.ruoyi.mybasic.mapper.InvitationMapper">
<select id="show" resultType="com.ruoyi.mybasic.common.domain.request.InvitationRecordRequest">
</select>
@ -22,4 +23,43 @@ FROM
invitation_record ir
LEFT JOIN t_user USER ON ir.inviter_id = USER.id
</select>
<!-- 新增邀请记录-->
<insert id="insertInvitationRecord">
INSERT INTO invitation_record
( user_id,
user_pid,
create_time)
VALUES
(#{userId},
#{userPid},
now()
)
</insert>
<!-- 添加流水记录-->
<insert id="insertUserMoneyLogs">
INSERT INTO t_money_logs
(status,
money_type_id,
user_id,
amount_income
)
VALUES
(#{status},
#{moneyTypeId},
#{userId},
#{amountIncome}
)
</insert>
<!-- 修改钱包信息-->
<update id="updateUserPurse">
UPDATE t_purse
SET wallet_income = wallet_income + 300,
balance_fee = balance_fee + 300,
update_time = now()
WHERE
user_id = #{userId}
</update>
</mapper>