diff --git a/hiver-core/src/main/java/cc/hiver/core/entity/User.java b/hiver-core/src/main/java/cc/hiver/core/entity/User.java
index a6d11cb2..6972be58 100644
--- a/hiver-core/src/main/java/cc/hiver/core/entity/User.java
+++ b/hiver-core/src/main/java/cc/hiver/core/entity/User.java
@@ -169,6 +169,36 @@ public class User extends HiverBaseEntity {
@ApiModelProperty(value = "邀请人Id")
private String inviterId;
+ @ApiModelProperty(value = "拉新来源区域id")
+ private String inviteRegionId;
+
+ @ApiModelProperty(value = "拉新设备标识")
+ private String inviteDeviceId;
+
+ @ApiModelProperty(value = "是否邀请链路新用户 1是 0否")
+ private Integer inviteNewUser = 0;
+
+ @ApiModelProperty(value = "拉新奖励状态 0未处理 1成功 2失败 3跳过")
+ private Integer inviteRewardStatus = 0;
+
+ @ApiModelProperty(value = "拉新奖励金额")
+ private BigDecimal inviteRewardAmount = new BigDecimal(0);
+
+ @ApiModelProperty(value = "拉新奖励时间")
+ private Date inviteRewardTime;
+
+ @ApiModelProperty(value = "拉新转账免确认授权商户单号")
+ private String inviteTransferAuthNo;
+
+ @ApiModelProperty(value = "拉新转账微信免确认授权单号")
+ private String inviteTransferAuthId;
+
+ @ApiModelProperty(value = "拉新转账免确认授权状态")
+ private String inviteTransferAuthState;
+
+ @ApiModelProperty(value = "拉新转账免确认授权时间")
+ private Date inviteTransferAuthTime;
+
@ApiModelProperty("当前账户余额")
private BigDecimal depoBal = new BigDecimal(0);
diff --git a/hiver-core/src/main/java/cc/hiver/core/vo/WechatVo.java b/hiver-core/src/main/java/cc/hiver/core/vo/WechatVo.java
index 3677d9cf..d42c22f8 100644
--- a/hiver-core/src/main/java/cc/hiver/core/vo/WechatVo.java
+++ b/hiver-core/src/main/java/cc/hiver/core/vo/WechatVo.java
@@ -17,6 +17,12 @@ public class WechatVo {
@ApiModelProperty(value = "inviterId")
private String inviterId;
+ @ApiModelProperty(value = "拉新来源区域id")
+ private String regionId;
+
+ @ApiModelProperty(value = "拉新设备标识")
+ private String deviceId;
+
@ApiModelProperty(value = "wechatName")
private String wechatName;
diff --git a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
index 705bb333..44a7e064 100644
--- a/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
+++ b/hiver-modules/hiver-base/src/main/java/cc/hiver/base/controller/manage/UserController.java
@@ -690,6 +690,7 @@ public class UserController {
}
if (wechatUser == null) {
+ boolean newUserCreated = false;
log.info("微信登录未根据userid和unionid查询到用户,准备新增用户userId:{};unionid:{}",wechatVo.getUserId(),unionid);
try {
// 新增用户信息
@@ -704,10 +705,15 @@ public class UserController {
wechatUser.setPassword(encryptPass);
wechatUser.setType(UserConstant.USER_TYPE_NORMAL);
//设置邀请人
- if(wechatVo.getInviterId() != null){
+ if(StringUtils.isNotEmpty(wechatVo.getInviterId())){
wechatUser.setInviterId(wechatVo.getInviterId());
+ wechatUser.setInviteRegionId(wechatVo.getRegionId());
+ wechatUser.setInviteDeviceId(wechatVo.getDeviceId());
+ wechatUser.setInviteNewUser(1);
+ wechatUser.setInviteRewardStatus(0);
}
wechatUser = userService.save(wechatUser);
+ newUserCreated = true;
// 设置用户角色
// 默认角色
final List
roleList = roleService.findByDefaultRole(true);
@@ -725,10 +731,13 @@ public class UserController {
//customerService.updateUserId(wechatVo.getCustomId(), wechatUser.getId());
// 返回当前登录人的信息
resultMap.put("msg", "新增用户信息,并绑定成功!");
+ resultMap.put("isNewUser", newUserCreated);
//resultMap.put("customId", wechatVo.getCustomId());
} catch (Exception e) {
return ResultUtil.error(e.getMessage());
}
+ } else {
+ resultMap.put("isNewUser", false);
}
wechatUser.setUnionid(unionid);
wechatUser.setWechatName(wechatVo.getWechatName());
diff --git a/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/InviteRewardController.java b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/InviteRewardController.java
new file mode 100644
index 00000000..9d880453
--- /dev/null
+++ b/hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/InviteRewardController.java
@@ -0,0 +1,121 @@
+package cc.hiver.mall.controller;
+
+import cc.hiver.core.common.utils.ResultUtil;
+import cc.hiver.core.common.utils.SecurityUtil;
+import cc.hiver.core.common.vo.PageVo;
+import cc.hiver.core.common.vo.Result;
+import cc.hiver.core.entity.User;
+import cc.hiver.mall.invite.entity.InviteRewardConfig;
+import cc.hiver.mall.invite.entity.InviteRewardRecord;
+import cc.hiver.mall.invite.service.InviteRewardService;
+import cc.hiver.mall.invite.service.WechatTransferAuthorizationResult;
+import cc.hiver.mall.utils.WechatPayConfig;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@RestController
+@Api(tags = "拉新返现接口")
+@RequestMapping("/hiver/app/inviteReward")
+public class InviteRewardController {
+
+ @Autowired
+ private SecurityUtil securityUtil;
+
+ @Autowired
+ private InviteRewardService inviteRewardService;
+
+ @Autowired
+ private WechatPayConfig wechatPayConfig;
+
+ @Value("${wechatpay.mchId:}")
+ private String mchId;
+
+ private PageVo buildPage(Integer pageNumber, Integer pageSize) {
+ PageVo pageVo = new PageVo();
+ pageVo.setPageNumber(pageNumber == null ? 1 : pageNumber);
+ pageVo.setPageSize(pageSize == null ? 10 : pageSize);
+ return pageVo;
+ }
+
+ @ApiOperation(value = "我的拉新返现记录")
+ @RequestMapping(value = "/my/page", method = RequestMethod.GET)
+ public Result> myPage(@RequestParam(required = false) Integer pageNumber,
+ @RequestParam(required = false) Integer pageSize) {
+ User user = securityUtil.getCurrUser();
+ if (user == null || user.getId() == null) {
+ return ResultUtil.error("请先登录");
+ }
+ return new ResultUtil>()
+ .setData(inviteRewardService.pageRecords(buildPage(pageNumber, pageSize), null, user.getId()));
+ }
+
+ @ApiOperation(value = "当前区域拉新返现配置")
+ @RequestMapping(value = "/config", method = RequestMethod.GET)
+ public Result config(@RequestParam(required = false) String regionId) {
+ return new ResultUtil().setData(inviteRewardService.getEnabledConfig(regionId));
+ }
+
+ @ApiOperation(value = "免确认收款授权状态")
+ @RequestMapping(value = "/transferAuth/status", method = RequestMethod.GET)
+ public Result