first commit

This commit is contained in:
GYJ
2024-12-02 10:29:28 +08:00
commit 03cd33b658
485 changed files with 63600 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
package com.sqx.modules.invite.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.invite.entity.InviteAward;
import com.sqx.modules.invite.service.InviteAwardService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* @author fang
* @date 2020/7/9
*/
@Slf4j
@RestController
@Api(value = "邀请奖励", tags = {"邀请奖励"})
@RequestMapping(value = "/inviteAward")
public class InviteAwardController {
@Autowired
private InviteAwardService inviteAwardService;
@PostMapping("/insertInviteAward")
@ApiOperation("添加邀请奖励")
public Result insertInviteAward(@RequestBody InviteAward inviteAward){
inviteAward.setCreateTime(DateUtils.format(new Date()));
inviteAwardService.save(inviteAward);
return Result.success();
}
@PostMapping("/updateInviteAward")
@ApiOperation("修改邀请奖励")
public Result updateInviteAward(@RequestBody InviteAward inviteAward){
inviteAwardService.updateById(inviteAward);
return Result.success();
}
@PostMapping("/deleteInviteAward")
@ApiOperation("删除邀请奖励")
public Result deleteInviteAward(Long inviteAwardId){
inviteAwardService.removeById(inviteAwardId);
return Result.success();
}
@GetMapping("/selectInviteAwardList")
@ApiOperation("查询邀请奖励列表")
public Result selectInviteAwardList(Integer page,Integer limit){
return Result.success().put("data",inviteAwardService.page(new Page<>(page,limit),new QueryWrapper<InviteAward>().orderByAsc("invite_count")));
}
}

View File

@@ -0,0 +1,184 @@
package com.sqx.modules.invite.controller;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.invite.entity.InviteMoney;
import com.sqx.modules.invite.service.InviteMoneyService;
import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.utils.InvitationCodeUtil;
import com.sqx.modules.utils.SenInfoCheckUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author fang
* @date 2020/7/9
*/
@Slf4j
@RestController
@Api(value = "邀请收益", tags = {"邀请收益"})
@RequestMapping(value = "/invite")
public class InviteController {
@Autowired
private InviteService inviteService;
@Autowired
private UserService userService;
@Autowired
private InviteMoneyService inviteMoneyService;
@Autowired
private CommonInfoService commonInfoService;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@RequestMapping(value = "/selectInviteCount", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员数量")
@ResponseBody
public Result selectInviteCount(Integer state,Long userId){
return Result.success().put("data",inviteService.selectInviteCount(state,userId));
}
@RequestMapping(value = "/selectInviteAndPoster", method = RequestMethod.GET)
@ApiOperation("查看我的邀请码和海报二维码")
@ResponseBody
public Result selectInviteAndPoster(Long userId){
UserEntity userEntity = userService.queryByUserId(userId);
CommonInfo one = commonInfoService.findOne(19);
Map<String,Object> map=new HashMap<>();
map.put("url",one.getValue());
map.put("user",userEntity);
return Result.success().put("data",map);
}
@RequestMapping(value = "/selectInviteByUserIdList", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员列表(只查看邀请成功成为会员))")
@ResponseBody
public Result selectInviteByUserIdList(int page,int limit,Long userId,Integer userType){
PageUtils pageUtils = inviteService.selectInviteUser(page, limit, userId,1,userType);
InviteMoney inviteMoney = inviteMoneyService.selectInviteMoneyByUserId(userId);
Map<String,Object> map=new HashMap<>();
map.put("pageUtils",pageUtils);
map.put("inviteMoney",inviteMoney);
return Result.success().put("data",map);
}
@GetMapping("/mpCreateQr")
@ApiOperation("小程序推广二维码")
public void mpCreateQr(String relation, String page,HttpServletResponse response) {
SenInfoCheckUtil.getPoster(relation,page,response);
}
/*@RequestMapping(value = "/selectZhiFeiMoney", method = RequestMethod.GET)
@ApiOperation("查询直属非直属邀请收益")
@ResponseBody
public Result selectZhiFeiMoney(Long userId){
UserEntity userEntity = userService.queryByUserId(userId);
//查询直属邀请人数数量
Integer zhiUserInviteCount = userService.selectZhiUserInviteCount(userEntity.getInvitationCode());
//查询非直属邀请人数量
Integer feiUserInviteCount = userService.selectFeiUserInviteCount(userEntity.getInvitationCode());
Map<String,Object> map=new HashMap<>();
map.put("zhiUserInviteCount",zhiUserInviteCount);
map.put("feiUserInviteCount",feiUserInviteCount);
return Result.success().put("data",map);
}*/
/*@RequestMapping(value = "/selectZhiInviteByUserIdList", method = RequestMethod.GET)
@ApiOperation("直属")
@ResponseBody
public Result selectZhiInviteByUserIdList(int page,int limit,Long userId){
return userService.selectZhiInviteByUserIdList(page,limit,userId);
}
@RequestMapping(value = "/selectFeiInviteByUserIdList", method = RequestMethod.GET)
@ApiOperation("非直属用户")
@ResponseBody
public Result selectFeiInviteByUserIdList(int page,int limit,Long userId){
return userService.selectFeiInviteByUserIdList(page,limit,userId);
}*/
@RequestMapping(value = "/selectInviteByUserIdLists", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员列表(查看所有邀请列表)")
@ResponseBody
public Result selectInviteByUserIdLists(int page,int limit,Long userId,Integer userType){
PageUtils pageUtils = inviteService.selectInviteUser(page, limit, userId,null,userType);
Map<String,Object> map=new HashMap<>();
map.put("pageUtils",pageUtils);
return Result.success().put("data",map);
}
@RequestMapping(value = "/insertInvitationCode", method = RequestMethod.POST)
@ApiOperation("填写邀请码")
@ResponseBody
public Result insertInvitationCode(Long userId,String invitationCode)
{
if(StringUtils.isBlank(invitationCode)){
return Result.error("邀请码不能为空!");
}
long inviteeUserId = InvitationCodeUtil.codeToId(invitationCode);
UserEntity userEntity = userService.queryByUserId(inviteeUserId);
if(userEntity==null){
return Result.error("邀请码填写错误!");
}
inviteService.saveBody(userId,userEntity);
return Result.success();
}
@PostMapping("addInviteMoney/{userId}/{money}")
@ApiOperation("添加金额")
public Result addInviteMoney(@PathVariable("userId") Long userId, @PathVariable("money") Double money) {
inviteMoneyService.updateInviteMoneySum(money, userId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("平台修改收益");
userMoneyDetails.setContent("平台增加收益:" + money);
userMoneyDetails.setType(1);
userMoneyDetails.setClassify(2);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
return Result.success();
}
@PostMapping("subInviteMoney/{userId}/{money}")
@ApiOperation("减少金额")
public Result subInviteMoney(@PathVariable("userId") Long userId, @PathVariable("money") Double money) {
inviteMoneyService.updateInviteMoneySumSub(money, userId);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userId);
userMoneyDetails.setTitle("平台修改收益");
userMoneyDetails.setContent("平台减少收益:" + money);
userMoneyDetails.setType(2);
userMoneyDetails.setClassify(2);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(sdf.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
return Result.success();
}
}

View File

@@ -0,0 +1,179 @@
package com.sqx.modules.invite.controller.app;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.common.utils.PageUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.annotation.Login;
import com.sqx.modules.app.annotation.LoginUser;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.common.entity.CommonInfo;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.invite.entity.InviteAward;
import com.sqx.modules.invite.entity.InviteMoney;
import com.sqx.modules.invite.service.InviteAwardService;
import com.sqx.modules.invite.service.InviteMoneyService;
import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.urlAddress.service.UrlAddressService;
import com.sqx.modules.utils.SenInfoCheckUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
import java.util.Map;
/**
* @author fang
* @date 2020/7/9
*/
@Slf4j
@RestController
@Api(value = "邀请收益", tags = {"邀请收益"})
@RequestMapping(value = "/app/invite")
public class AppInviteController {
@Autowired
private InviteService inviteService;
@Autowired
private UserService userService;
@Autowired
private InviteMoneyService inviteMoneyService;
@Autowired
private CommonInfoService commonInfoService;
@Autowired
private UserMoneyService userMoneyService;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Autowired
private InviteAwardService inviteAwardService;
@Resource
private QrConfig qrconig;
@Autowired
private UrlAddressService urlAddressService;
@RequestMapping(value = "/selectInviteCount", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员数量")
@ResponseBody
public Result selectInviteCount(Integer state,Long userId){
return Result.success().put("data",inviteService.selectInviteCount(state,userId));
}
@Login
@RequestMapping(value = "/selectUserMoney", method = RequestMethod.GET)
@ApiOperation("查看我的钱包")
@ResponseBody
public Result selectUserMoney(@RequestAttribute("userId") Long userId){
return Result.success().put("data",userMoneyService.selectUserMoneyByUserId(userId));
}
@RequestMapping(value = "/selectInviteAndPoster", method = RequestMethod.GET)
@ApiOperation("查看我的邀请码和海报二维码")
@ResponseBody
public Result selectInviteAndPoster(Long userId){
UserEntity userEntity = userService.queryByUserId(userId);
CommonInfo one = commonInfoService.findOne(19);
Map<String,Object> map=new HashMap<>();
map.put("url",one.getValue());
map.put("user",userEntity);
return Result.success().put("data",map);
}
@Login
@RequestMapping(value = "/selectInviteMoney", method = RequestMethod.GET)
@ApiOperation("我的收益")
@ResponseBody
public Result selectInviteMoney(@RequestAttribute("userId") Long userId){
InviteMoney inviteMoney = inviteMoneyService.selectInviteMoneyByUserId(userId);
Integer inviteCount = inviteService.selectInviteCount(-1, userId);
Map<String,Object> result=new HashMap<>();
result.put("inviteMoney",inviteMoney);
result.put("inviteCount",inviteCount);
return Result.success().put("data",result);
}
@GetMapping("/mpCreateQr")
@ApiOperation("微信小程序推广二维码")
public void mpCreateQr(String invitationCode,String page, HttpServletResponse response) {
SenInfoCheckUtil.getPoster(invitationCode,page,response);
}
@GetMapping("/dyCreateQr")
@ApiOperation("抖音小程序推广二维码")
public void dyCreateQr(String invitationCode,String page, HttpServletResponse response) {
SenInfoCheckUtil.getDyImg(invitationCode,page,response);
}
@GetMapping("/insertQrCode")
@ApiOperation("生成二维码")
public void selectQrCode(String content,String courseId, HttpServletResponse servletResponse) throws Exception{
String invitationCode = commonInfoService.findOne(88).getValue();
String value="";
if(StringUtils.isNotBlank(courseId)){
value=urlAddressService.selectUrlAddressOne().getUrlAddress()+"?invitation="+invitationCode+"&qdCode="+content+"&id="+courseId;
}else{
value=urlAddressService.selectUrlAddressOne().getUrlAddress()+"?invitation="+invitationCode+"&qdCode="+content;
}
QrCodeUtil.generate(value,qrconig,"png",servletResponse.getOutputStream());
}
@Login
@RequestMapping(value = "/selectInviteByUserIdLists", method = RequestMethod.GET)
@ApiOperation("查看我邀请的人员列表(查看所有邀请列表)")
@ResponseBody
public Result selectInviteByUserIdLists(int page,int limit,@RequestAttribute("userId") Long userId,Integer userType){
PageUtils pageUtils = inviteService.selectInviteUser(page, limit, userId,null,userType);
return Result.success().put("data",pageUtils);
}
@Login
@ApiOperation("钱包明细")
@GetMapping("/queryUserMoneyDetails")
public Result queryUserMoneyDetails(Integer page, Integer limit,@RequestAttribute("userId") Long userId,Integer classify,Integer type) {
return userMoneyDetailsService.queryUserMoneyDetails(page, limit,null, userId,2,type);
}
@GetMapping("/selectInviteAwardList")
@ApiOperation("查询邀请奖励列表")
public Result selectInviteAwardList(Integer page,Integer limit){
return Result.success().put("data",inviteAwardService.page(new Page<>(page,limit),new QueryWrapper<InviteAward>().orderByAsc("invite_count")));
}
@Login
@GetMapping("/selectInviteAwardByUserId")
@ApiOperation("查询当前邀请人数的下一个等级")
public Result selectInviteAwardByUserId(@LoginUser UserEntity userEntity){
int inviterCount = userService.queryInviterCount(userEntity.getInvitationCode());
return Result.success().put("data",inviteAwardService.getOne(new QueryWrapper<InviteAward>().gt("invite_count",inviterCount)
.last(" order by invite_count limit 1")));
}
@Login
@GetMapping("/selectInviteUserListByUserId")
@ApiOperation("查询当前邀请人列表")
public Result selectInviteUserListByUserId(@LoginUser UserEntity userEntity){
return Result.success().put("data",userService.list(new QueryWrapper<UserEntity>().eq("inviter_code",userEntity.getInvitationCode())));
}
@Login
@PostMapping("/inviteMoneyConvertUserMoney")
@ApiOperation("收益充值京豆")
public Result inviteMoneyConvertUserMoney(@LoginUser UserEntity userEntity, Long payClassifyId){
return inviteMoneyService.inviteMoneyConvertUserMoney(userEntity,payClassifyId);
}
}

View File

@@ -0,0 +1,16 @@
package com.sqx.modules.invite.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.invite.entity.InviteAward;
import org.apache.ibatis.annotations.Mapper;
/**
* @author fang
* @date 2023/12/12
*/
@Mapper
public interface InviteAwardDao extends BaseMapper<InviteAward> {
}

View File

@@ -0,0 +1,41 @@
package com.sqx.modules.invite.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sqx.modules.invite.entity.Invite;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.Map;
/**
* @author fang
* @date 2020/7/9
*/
@Mapper
public interface InviteDao extends BaseMapper<Invite> {
IPage<Invite> selectInviteList(Page<Map<String,Object>> page, @Param("state") Integer state, @Param("userId") Long userId);
Integer selectInviteCount(@Param("state") Integer state, @Param("userId") Long userId);
Double selectInviteSum(@Param("state") Integer state, @Param("userId") Long userId);
IPage<Map<String,Object>> selectInviteUser(Page<Map<String,Object>> page, @Param("userId") Long userId,@Param("state") Integer state,@Param("userType") Integer userType);
Invite selectInviteByUser(@Param("userId")Long userId,@Param("inviteeUserId") Long inviteeUserId,@Param("userType") Integer userType);
Integer selectInviteByUserIdCountNotTime(@Param("userId")Long userId);
Integer selectInviteByUserIdCount(@Param("userId") Long userId, @Param("startTime")Date startTime,@Param("endTime")Date endTime);
Double selectInviteByUserIdSum(@Param("userId") Long userId, @Param("startTime")Date startTime,@Param("endTime")Date endTime);
Double sumInviteMoney(@Param("time")String time,@Param("flag")Integer flag);
IPage<Map<String,Object>> inviteAnalysis(Page<Map<String,Object>> page,@Param("time")String time,@Param("flag")Integer flag);
}

View File

@@ -0,0 +1,26 @@
package com.sqx.modules.invite.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sqx.modules.invite.entity.InviteMoney;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 邀请收益钱包
*
*/
@Mapper
public interface InviteMoneyDao extends BaseMapper<InviteMoney> {
InviteMoney selectInviteMoneyByUserId(Long userId);
int updateInviteMoneySum(@Param("money") Double money,@Param("userId") Long userId);
int updateInviteMoneySumSub(@Param("money") Double money,@Param("userId") Long userId);
int updateInviteMoneyCashOut(@Param("type") Integer type,@Param("money") Double money,@Param("userId") Long userId);
int updateInviteMoneySub(@Param("money") Double money,@Param("userId") Long userId);
}

View File

@@ -0,0 +1,55 @@
package com.sqx.modules.invite.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
/**
* @author fang
* @date 2020/7/9
*/
@Data
@TableName("invite")
public class Invite implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 邀请id
*/
@TableId(type = IdType.INPUT)
private Long id;
/**
* 邀请人id
*/
private Long userId;
/**
* 被邀请人id
*/
private Long inviteeUserId;
/**
* 状态 0非会员 1会员
*/
private Integer state;
/**
* 收益
*/
private Double money;
/**
* 创建时间
*/
private String createTime;
/**
* 类型 1一级好友 2二级好友
*/
private Integer userType;
}

View File

@@ -0,0 +1,47 @@
package com.sqx.modules.invite.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.Serializable;
/**
* @description invite_award
* @author fang
* @date 2023-12-12
*/
@Data
public class InviteAward implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(type = IdType.AUTO)
/**
* 邀请奖励id
*/
private Integer inviteAwardId;
/**
* 图片
*/
private String inviteImg;
/**
* 邀请人数
*/
private Integer inviteCount;
/**
* 奖励月份 0是永久
*/
private Integer inviteMonth;
/**
* 创建时间
*/
private String createTime;
public InviteAward() {}
}

View File

@@ -0,0 +1,44 @@
package com.sqx.modules.invite.entity;
import lombok.Data;
import java.io.Serializable;
/**
* invite_money
* @author fang 2020-07-28
*/
@Data
public class InviteMoney implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 邀请收益钱包id
*/
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 总获取收益
*/
private Double moneySum;
/**
* 当前金豆
*/
private Double money;
/**
* 累计提现
*/
private Double cashOut;
public InviteMoney() {
}
}

View File

@@ -0,0 +1,10 @@
package com.sqx.modules.invite.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.modules.invite.entity.InviteAward;
public interface InviteAwardService extends IService<InviteAward> {
}

View File

@@ -0,0 +1,27 @@
package com.sqx.modules.invite.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.invite.entity.InviteMoney;
/**
* 邀请收益
*
*/
public interface InviteMoneyService extends IService<InviteMoney> {
InviteMoney selectInviteMoneyByUserId(Long userId);
int updateInviteMoneySum(Double money,Long userId);
int updateInviteMoneySumSub(Double money, Long userId);
int updateInviteMoneyCashOut(Double money,Long userId);
int updateInviteMoneyCashOut(Integer type,Double money, Long userId);
Result inviteMoneyConvertUserMoney(UserEntity userEntity, Long payClassifyId);
}

View File

@@ -0,0 +1,35 @@
package com.sqx.modules.invite.service;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.app.entity.UserEntity;
import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
public interface InviteService {
PageUtils selectInviteList(int page, int limit, Integer state, Long userId);
Integer selectInviteCount(Integer state,Long userId);
Double selectInviteSum(Integer state,Long userId);
int saveBody(Long userId, UserEntity userEntity);
PageUtils selectInviteUser(int page,int limit,Long userId,Integer state,Integer userType);
Integer selectInviteByUserIdCountNotTime(Long userId);
Integer selectInviteByUserIdCount(Long userId, Date startTime, Date endTime);
Double selectInviteByUserIdSum(Long userId, Date startTime,Date endTime);
Double sumInviteMoney(String time,Integer flag);
PageUtils inviteAnalysis(int page,int limit, String time, Integer flag);
Map updateInvite(UserEntity userEntity, String format, Long userId, BigDecimal price);
}

View File

@@ -0,0 +1,18 @@
package com.sqx.modules.invite.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.modules.invite.dao.InviteAwardDao;
import com.sqx.modules.invite.entity.InviteAward;
import com.sqx.modules.invite.service.InviteAwardService;
import org.springframework.stereotype.Service;
@Service("InviteAwardService")
public class InviteAwardServiceImpl extends ServiceImpl<InviteAwardDao, InviteAward> implements InviteAwardService {
}

View File

@@ -0,0 +1,106 @@
package com.sqx.modules.invite.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.Result;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.invite.dao.InviteMoneyDao;
import com.sqx.modules.invite.entity.InviteMoney;
import com.sqx.modules.invite.service.InviteMoneyService;
import com.sqx.modules.pay.entity.PayClassify;
import com.sqx.modules.pay.service.PayClassifyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
@Service("InviteMoneyService")
public class InviteMoneyServiceImpl extends ServiceImpl<InviteMoneyDao, InviteMoney> implements InviteMoneyService {
@Autowired
private InviteMoneyDao inviteMoneyDao;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Autowired
private UserMoneyService userMoneyService;
@Autowired
private PayClassifyService payClassifyService;
@Override
public InviteMoney selectInviteMoneyByUserId(Long userId) {
InviteMoney inviteMoney = inviteMoneyDao.selectInviteMoneyByUserId(userId);
if(inviteMoney==null){
inviteMoney=new InviteMoney();
inviteMoney.setCashOut(0.00);
inviteMoney.setUserId(userId);
inviteMoney.setMoney(0.00);
inviteMoney.setMoneySum(0.00);
inviteMoneyDao.insert(inviteMoney);
}
return inviteMoney;
}
@Override
public int updateInviteMoneySum(Double money, Long userId) {
selectInviteMoneyByUserId(userId);
return inviteMoneyDao.updateInviteMoneySum(money,userId);
}
@Override
public int updateInviteMoneySumSub(Double money, Long userId) {
selectInviteMoneyByUserId(userId);
return inviteMoneyDao.updateInviteMoneySumSub(money,userId);
}
@Override
public int updateInviteMoneyCashOut(Double money, Long userId) {
return inviteMoneyDao.updateInviteMoneySum(money,userId);
}
@Override
public int updateInviteMoneyCashOut(Integer type,Double money, Long userId) {
return inviteMoneyDao.updateInviteMoneyCashOut(type,money,userId);
}
@Override
public Result inviteMoneyConvertUserMoney(UserEntity userEntity, Long payClassifyId){
PayClassify payClassify = payClassifyService.getById(payClassifyId);
BigDecimal price = payClassify.getPrice();
InviteMoney inviteMoney = selectInviteMoneyByUserId(userEntity.getUserId());
if(inviteMoney.getMoney()<price.doubleValue()){
return Result.error("收益不足!");
}
BigDecimal add = payClassify.getMoney().add(payClassify.getGiveMoney());
inviteMoneyDao.updateInviteMoneySub(price.doubleValue(),userEntity.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userEntity.getUserId());
userMoneyDetails.setTitle("收益转余额");
userMoneyDetails.setContent("减少收益:"+price+",增加余额:"+add);
userMoneyDetails.setType(2);
userMoneyDetails.setClassify(2);
userMoneyDetails.setMoney(price);
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
userMoneyService.updateMoney(1,userEntity.getUserId(),add.doubleValue());
userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userEntity.getUserId());
userMoneyDetails.setTitle("收益转余额");
userMoneyDetails.setContent("减少收益:"+price+",增加余额:"+add);
userMoneyDetails.setType(1);
userMoneyDetails.setClassify(1);
userMoneyDetails.setMoney(add);
userMoneyDetails.setCreateTime(DateUtils.format(new Date()));
userMoneyDetailsService.save(userMoneyDetails);
//创建订单返回对象
return Result.success();
}
}

View File

@@ -0,0 +1,303 @@
package com.sqx.modules.invite.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sqx.common.utils.DateUtils;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.app.entity.UserMoneyDetails;
import com.sqx.modules.app.entity.UserVip;
import com.sqx.modules.app.service.UserMoneyDetailsService;
import com.sqx.modules.app.service.UserMoneyService;
import com.sqx.modules.app.service.UserService;
import com.sqx.modules.app.service.UserVipService;
import com.sqx.modules.common.service.CommonInfoService;
import com.sqx.modules.invite.dao.InviteDao;
import com.sqx.modules.invite.entity.Invite;
import com.sqx.modules.invite.entity.InviteAward;
import com.sqx.modules.invite.service.InviteAwardService;
import com.sqx.modules.invite.service.InviteMoneyService;
import com.sqx.modules.invite.service.InviteService;
import com.sqx.modules.sys.entity.SysUserEntity;
import com.sqx.modules.sys.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 邀请记录
*/
@Service
public class InviteServiceImpl extends ServiceImpl<InviteDao, Invite> implements InviteService {
@Autowired
private InviteDao inviteDao;
@Autowired
private UserService userService;
@Autowired
private CommonInfoService commonInfoService;
@Autowired
private InviteMoneyService inviteMoneyService;
@Autowired
private UserMoneyService userMoneyService;
@Autowired
private UserMoneyDetailsService userMoneyDetailsService;
@Autowired
private InviteAwardService inviteAwardService;
@Autowired
private UserVipService userVipService;
@Autowired
private SysUserService sysUserService;
@Override
public PageUtils selectInviteList(int page,int limit,Integer state,Long userId){
Page<Map<String,Object>> pages=new Page<>(page,limit);
if(state==null || state==-1){
state=null;
}
return new PageUtils(inviteDao.selectInviteList(pages,state,userId));
}
@Override
public PageUtils selectInviteUser(int page, int limit, Long userId, Integer state,Integer userType) {
Page<Map<String, Object>> pages = new Page<>(page, limit);
return new PageUtils(inviteDao.selectInviteUser(pages, userId, state,userType));
}
@Override
public Integer selectInviteByUserIdCountNotTime(Long userId) {
return inviteDao.selectInviteByUserIdCountNotTime(userId);
}
@Override
public Integer selectInviteByUserIdCount(Long userId, Date startTime, Date endTime) {
return inviteDao.selectInviteByUserIdCount(userId,startTime,endTime);
}
@Override
public Double selectInviteByUserIdSum(Long userId, Date startTime, Date endTime) {
return inviteDao.selectInviteByUserIdSum(userId,startTime,endTime);
}
@Override
public Double sumInviteMoney(String time, Integer flag) {
return inviteDao.sumInviteMoney(time,flag);
}
@Override
public PageUtils inviteAnalysis(int page,int limit, String time, Integer flag) {
Page<Map<String,Object>> pages=new Page<>(page,limit);
return new PageUtils(inviteDao.inviteAnalysis(pages,time,flag));
}
@Override
public Integer selectInviteCount(Integer state,Long userId){
if(state==null || state==-1){
state=null;
}
return inviteDao.selectInviteCount(state,userId);
}
@Override
public Double selectInviteSum(Integer state, Long userId) {
if(state==null || state==-1){
state=null;
}
return inviteDao.selectInviteSum(state,userId);
}
@Override
public int saveBody(Long userId, UserEntity userEntity){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(new Date());
Invite invite=new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(userEntity.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(1);
inviteDao.insert(invite);
//同步二级
UserEntity two = userService.queryByInvitationCode(userEntity.getInviterCode());
if(two!=null){
invite=new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(two.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(2);
inviteDao.insert(invite);
}
UserEntity user=new UserEntity();
user.setUserId(userId);
user.setInviterCode(userEntity.getInvitationCode());
userService.updateById(user);
String value = commonInfoService.findOne(813).getValue();
if("".equals(value)){
//获取邀请人的邀请数量
int inviterCount = userService.queryInviterCount(userEntity.getInvitationCode());
InviteAward inviteAward = inviteAwardService.getOne(new QueryWrapper<InviteAward>().eq("invite_count", inviterCount));
if(inviteAward!=null){
if(inviteAward.getInviteMonth()==0){
userVipService.update(null, Wrappers.<UserVip>lambdaUpdate()
.set(UserVip::getIsVip,2)
.set(UserVip::getEndTime,null)
.set(UserVip::getVipType,1)
.eq(UserVip::getUserId,userEntity.getUserId()));
}else{
UserVip userVip = userVipService.selectUserVipByUserId(userEntity.getUserId());
Calendar calendar=Calendar.getInstance();
if(userVip!=null && userVip.getIsVip()==2){
Date date = DateUtils.stringToDate(userVip.getEndTime(), DateUtils.DATE_TIME_PATTERN);
calendar.setTime(date);
}else{
userVip=new UserVip();
userVip.setUserId(userEntity.getUserId());
userVip.setCreateTime(DateUtils.format(new Date()));
}
userVip.setIsVip(2);
userVip.setVipType(1);
calendar.add(Calendar.MONTH,inviteAward.getInviteMonth());
userVip.setEndTime(DateUtils.format(calendar.getTime()));
if(userVip.getVipId()!=null){
userVipService.updateById(userVip);
}else{
userVipService.save(userVip);
}
}
}
}
return 1;
}
@Override
public Map updateInvite(UserEntity userEntity, String format, Long userId, BigDecimal price) {
Map<String,Object> result=new HashMap<>();
if (userEntity != null && userId != null && price != null) {
Invite invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId,1);
if (invite1 == null) {
Invite invite = new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(userEntity.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(1);
inviteDao.insert(invite);
invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId,1);
}
UserEntity userEntity1 = userService.selectUserById(userId);
BigDecimal oneMoney=BigDecimal.ZERO;
BigDecimal twoMoney=BigDecimal.ZERO;
if (userEntity.getRate() != null && userEntity.getRate().doubleValue() > 0) {
BigDecimal rateMoney = price.multiply(userEntity.getRate()).setScale(2, BigDecimal.ROUND_HALF_UP);
oneMoney=rateMoney;
Double money = rateMoney.doubleValue();
invite1.setUserType(1);
invite1.setState(1);
BigDecimal add = BigDecimal.valueOf(invite1.getMoney()).add(BigDecimal.valueOf(money));
invite1.setMoney(add.doubleValue());
inviteDao.updateById(invite1);
inviteMoneyService.updateInviteMoneySum(money, userEntity.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(userEntity.getUserId());
userMoneyDetails.setType(1);
userMoneyDetails.setClassify(2);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(format);
userMoneyDetails.setTitle("[邀请好友]好友名称:"+userEntity1.getUserName());
userMoneyDetails.setContent("获取佣金:"+money);
userMoneyDetailsService.save(userMoneyDetails);
result.put("oneUserId",userEntity.getUserId());
result.put("oneMoney",money);
}
UserEntity two = userService.queryByInvitationCode(userEntity.getInviterCode());
if(two!=null){
Invite invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId,2);
if (invite2 == null) {
Invite invite = new Invite();
invite.setState(0);
invite.setMoney(0.00);
invite.setUserId(two.getUserId());
invite.setInviteeUserId(userId);
invite.setCreateTime(format);
invite.setUserType(2);
inviteDao.insert(invite);
invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId,2);
}
if (two.getTwoRate() != null && two.getTwoRate().doubleValue() > 0) {
BigDecimal rateMoney = price.multiply(two.getTwoRate()).setScale(2, RoundingMode.HALF_UP);
twoMoney=rateMoney;
Double money = rateMoney.doubleValue();
invite2.setUserType(2);
invite2.setState(1);
BigDecimal add = BigDecimal.valueOf(invite2.getMoney()).add(BigDecimal.valueOf(money));
invite2.setMoney(add.doubleValue());
inviteDao.updateById(invite2);
inviteMoneyService.updateInviteMoneySum(money, two.getUserId());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setUserId(two.getUserId());
userMoneyDetails.setType(1);
userMoneyDetails.setMoney(new BigDecimal(money));
userMoneyDetails.setCreateTime(format);
userMoneyDetails.setClassify(2);
userMoneyDetails.setTitle("[邀请好友]好友名称:"+userEntity1.getUserName());
userMoneyDetails.setContent("获取佣金:"+money);
userMoneyDetailsService.save(userMoneyDetails);
result.put("twoUserId",two.getUserId());
result.put("twoMoney",money);
}
}
if(StringUtils.isNotEmpty(userEntity1.getQdCode())){
SysUserEntity sysUserEntity = sysUserService.selectSysUserByQdCode(userEntity1.getQdCode());
if(sysUserEntity!=null){
BigDecimal rateMoney = price.multiply(sysUserEntity.getQdRate()).setScale(2, RoundingMode.HALF_UP);
BigDecimal sumMoney = rateMoney.subtract(oneMoney);
sumMoney = sumMoney.subtract(twoMoney);
userMoneyService.updateSysMoney(1,sysUserEntity.getUserId(),sumMoney.doubleValue());
UserMoneyDetails userMoneyDetails = new UserMoneyDetails();
userMoneyDetails.setSysUserId(sysUserEntity.getUserId());
userMoneyDetails.setType(1);
userMoneyDetails.setMoney(sumMoney);
userMoneyDetails.setCreateTime(format);
userMoneyDetails.setClassify(10);
userMoneyDetails.setTitle("[渠道用户]用户名称:"+userEntity1.getUserName());
String title="总佣金:"+rateMoney;
if(oneMoney.doubleValue()>0){
title=title+",一级推广员扣除收益:"+oneMoney;
}
if(twoMoney.doubleValue()>0){
title=title+",二级推广员扣除收益:"+twoMoney;
}
userMoneyDetails.setContent(title+",到账佣金:"+sumMoney);
userMoneyDetailsService.save(userMoneyDetails);
result.put("sysUserId",sysUserEntity.getUserId());
result.put("qdMoney",sumMoney);
return result;
}
}
}
return result;
}
}