创客额度相关,分享改bug,

This commit is contained in:
liuyingfang
2023-08-21 18:22:12 +08:00
parent cd190ba1f5
commit b108849572
27 changed files with 571 additions and 18 deletions

View File

@@ -0,0 +1,46 @@
package cn.pluss.platform.controller;
import cn.pluss.platform.UserMakerQuota.UserMakerQuotaService;
import cn.pluss.platform.api.Result;
import cn.pluss.platform.api.ResultGenerator;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Map;
/**
* @author lyf
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/userMakerQuota")
public class UserMakerQuotaController {
@Resource
private UserMakerQuotaService userMakerQuotaService;
/**
* 汇总数据
* @return
*/
@GetMapping("/quota")
public Result<Object> quota() {
Map<String, BigDecimal> quota = userMakerQuotaService.quota();
return ResultGenerator.genSuccessResult(quota);
}
/**
* 额度明细
* @param page
* @param size
* @return
*/
@GetMapping("/quotaInfo")
public Result<Object> quotaList(Integer page, Integer size, Integer type){
return ResultGenerator.genSuccessResult(userMakerQuotaService.quotaList(page,size,type));
}
}

View File

@@ -69,7 +69,7 @@ public class TokenRegistryInterceptor extends HandlerInterceptorAdapter {
limitUri.add("/api/systemConfig/updateSystemVersion");
limitUri.add("/api/lkl/querySubMerInfo");
limitUri.add("/api/lkl/lklCallBack");
limitUri.add("/api/lkl/lklModfiyCallBack");
limitUri.add("/api/auditCallback/lklModfiyCallBack");
limitUri.add("/api/lkl/lklCallBackVoiceBox");
limitUri.add("/api/lkl/queryMerchantChannelStatus");
limitUri.add("/api/auditCallback/tradeCallBack");

View File

@@ -1,9 +1,20 @@
package cn.pluss.platform.mapper;
import cn.pluss.platform.entity.UserAccountFlow;
import cn.pluss.platform.entity.UserMakerFlow;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author lyf
*/
@Mapper
public interface UserAccountFlowMapper extends BaseMapper<UserAccountFlow> {
public interface UserAccountFlowMapper extends BaseMapper<UserAccountFlow> {
@Select("SELECT * FROM tb_pluss_user_account_flow WHERE user_id = #{userId} AND biz_code = 'SD' order by id desc limit #{pageSize} offset #{offset} ")
List<UserAccountFlow> selectByUserIdType(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset);
}

View File

@@ -19,6 +19,7 @@ public interface UserInfoMapper extends BaseMapper<UserInfo> {
*/
UserInfo selectMainUserInfo(Long id);
/**
* @description:取主商户和子商户信息
* @date: 2021/9/23 15:43

View File

@@ -0,0 +1,17 @@
package cn.pluss.platform.mapper;
import cn.pluss.platform.entity.UserMakerFlow;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author lyf
*/
public interface UserMakerFlowMapper extends BaseMapper<UserMakerFlow> {
@Select(value = "SELECT id,user_id AS userId ,biz_code AS bizCode ,biz_name AS bizName ,amount,balance,create_time AS createTime ,remark FROM tb_pluss_user_maker_flow WHERE user_id = #{userId} order by id desc limit #{pageSize} offset #{offset} ")
List<UserMakerFlow> selectByUserId(@Param("userId") Long userId,@Param("pageSize") Integer pageSize,@Param("offset") Integer offset);
}

View File

@@ -0,0 +1,23 @@
package cn.pluss.platform.mapper;
import cn.pluss.platform.entity.UserIntegral;
import cn.pluss.platform.entity.UserMakerQuota;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
/**
* @author lyf
*/
public interface UserMakerQuotaMapper extends BaseMapper<UserMakerQuota> {
BigDecimal sumQuota(@Param("userId") Long userId);
@Update(value = "update tb_pluss_user_account set amount=amount+#{amount} where userId=#{userId}")
Integer updateMakerFreeze(@Param("userId") Integer userId, @Param("amount") BigDecimal amount);
@Select(value ="SELECT * FROM tb_pluss_user_maker_quota WHERE userId = #{userId}")
UserMakerQuota selectByUserId(@Param("userId") Long userId);
}

View File

@@ -34,6 +34,7 @@ public interface UserPromotionMapper extends BaseMapper<UserPromotion> {
UserPromotion selectByUserId(@Param("userId") String userId);
UserPromotion selectByPrimaryKey(Long userId);
UserPromotion selectByUserIdMC(Long userId);
@Select("select max(current_fee) from tb_pluss_user_promotion where parent_user_id=#{id}")
BigDecimal selectMaxFeeByUserId(@Param("id")String id);
@Select(" select *\n" +

View File

@@ -0,0 +1,10 @@
<?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="cn.pluss.platform.mapper.UserMakerQuotaMapper">
<select id="sumQuota" resultType="java.math.BigDecimal">
SELECT SUM(amount)
FROM tb_pluss_user_maker_quota
WHERE userId = #{userId}
</select>
</mapper>

View File

@@ -37,4 +37,15 @@
from tb_pluss_user_promotion
where user_id = #{userId}
</select>
<select id="selectByUserIdMC" resultType="cn.pluss.platform.entity.UserPromotion">
select *
from tb_pluss_user_promotion
<where>
user_id = #{userId}
AND type_code = 'MC'
AND is_extend = '1'
</where>
</select>
</mapper>

View File

@@ -39,6 +39,9 @@ public class MerchantProfit {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private Long userId;
/**
*类型 1 直推收入 2间推收入 3二级间推收入 4 升级收益 5 推广分润(多代理分润收入),6V2.0分润模式 7: 缴费通8:音箱分润
*/
private String type;
private Double price;
private String orderNumber;

View File

@@ -1,5 +1,6 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -18,16 +19,16 @@ public class UserAccount implements Serializable {
@TableId
@TableField("user_id")
private Integer userId;
@TableField("freeze_balance")
private BigDecimal freezeBalance;
private BigDecimal balance;
@TableField("out_balance")
private BigDecimal outBalance;
@TableField("create_time")
private Date createTime;
@TableField("update_time")
private Date updateTime;
}

View File

@@ -1,6 +1,7 @@
package cn.pluss.platform.entity;
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 lombok.Data;
@@ -27,6 +28,8 @@ public class UserAccountFlow implements Serializable {
private String bizName;
private BigDecimal amount;
@TableField("order_amount")
private BigDecimal orderAmount;
private BigDecimal balance;

View File

@@ -0,0 +1,42 @@
package cn.pluss.platform.entity;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lyf
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_user_maker_flow")
public class UserMakerFlow implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("user_id")
private Integer userId;
@TableField("biz_code")
private String bizCode;
@TableField("biz_name")
private String bizName;
@TableField("amount")
private BigDecimal amount;
@TableField("balance")
private BigDecimal balance;
@TableField("remark")
private String remark;
@TableField("create_time")
private Date createTime;
@TableField("update_time")
private Date updateTime;
}

View File

@@ -0,0 +1,29 @@
package cn.pluss.platform.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lyf
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_pluss_user_maker_quota")
public class UserMakerQuota {
@TableField("id")
private Integer id;
@TableField("userId")
private Long userId;
@TableField("amount")
private BigDecimal amount;
@TableField("createTime")
private Date createTime;
}

View File

@@ -0,0 +1,23 @@
package cn.pluss.platform.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author lyf
*/
@Data
public class UserMakerQuotaVO {
private Integer id;
private String userName;
private BigDecimal amount;
private BigDecimal lowerAmount;
private Date createTime;
}

View File

@@ -0,0 +1,22 @@
package cn.pluss.platform.UserMakerQuota;
import cn.pluss.platform.entity.MerchantOrder;
import cn.pluss.platform.entity.UserMakerQuota;
import cn.pluss.platform.vo.UserMakerQuotaVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* @author lyf
*/
public interface UserMakerQuotaService extends IService<UserMakerQuota> {
Map<String, BigDecimal> quota();
void quotaInfo(MerchantOrder order);
List<UserMakerQuotaVO> quotaList(Integer page, Integer size,Integer type);
}

View File

@@ -0,0 +1,232 @@
package cn.pluss.platform.UserMakerQuota.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.pluss.platform.UserMakerQuota.UserMakerQuotaService;
import cn.pluss.platform.entity.*;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.mapper.*;
import cn.pluss.platform.merchant.MerchantBaseInfoService;
import cn.pluss.platform.userAccount.UserAccountService;
import cn.pluss.platform.userApp.UserAppService;
import cn.pluss.platform.util.N;
import cn.pluss.platform.vo.UserMakerQuotaVO;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.swagger.models.auth.In;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.util.*;
/**
* @author lyf
*/
@Service
public class UserMakerQuotaServiceImpl extends ServiceImpl<UserMakerQuotaMapper, UserMakerQuota> implements UserMakerQuotaService {
@Resource
private UserMakerQuotaMapper userMakerQuotaMapper;
@Resource
private UserAppService userAppService;
@Resource
private UserAccountService userAccountService;
@Resource
private UserPromotionMapper userPromotionMapper;
@Resource
private MerchantBaseInfoService merchantBaseInfoService;
@Resource
private UserMakerFlowMapper userMakerFlowMapper;
@Resource
private UserAccountFlowMapper userAccountFlowMapper;
@Override
public Map<String, BigDecimal> quota() {
UserApp userApp = userAppService.queryUserAppByToken();
BigDecimal bigDecimal = userMakerQuotaMapper.sumQuota(userApp.getUserId());
UserAccount userAccountByUserId = userAccountService.getUserAccountByUserId(userApp.getUserId());
HashMap<String, BigDecimal> map = new HashMap<>(16);
map.put("freeQuota",bigDecimal == null?
new BigDecimal("0.00") : bigDecimal);
map.put("returnFree",userAccountByUserId == null || userAccountByUserId.getBalance() == null?
new BigDecimal("0.00") : userAccountByUserId.getBalance());
return map;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void quotaInfo(MerchantOrder order) {
BigDecimal consumeFee = new BigDecimal(String.valueOf(order.getConsumeFee()));
//商户码转userId
if (consumeFee.compareTo(new BigDecimal("0.01"))>0) {
MerchantBaseInfo merchantBaseInfoByMerchantCode = merchantBaseInfoService.getMerchantBaseInfoByMerchantCode(order.getMerchantCode());
//找到上级增加额度
UserPromotion userInfo = userPromotionMapper.selectByPrimaryKey(Long.valueOf(merchantBaseInfoByMerchantCode.getUserId()));
if (userInfo != null) {
UserPromotion userParent = userPromotionMapper.selectByUserIdMC(Long.valueOf(userInfo.getParentUserId()));
if (userParent != null && "1".equals(userParent.getIsExtend())){
BigDecimal profit = consumeFee.multiply(new BigDecimal("0.0038")).setScale(2,BigDecimal.ROUND_DOWN);
String s = String.valueOf(userParent.getUserId());
Integer integer = Integer.valueOf(s);
this.modMakerFunds(integer,"SD","免费额度",profit,"");
}
}
//自己如果是创客的话
assert userInfo != null;
if ("1".equals(userInfo.getIsExtend())){
profit(userInfo,consumeFee);
}
}
}
@Override
public List<UserMakerQuotaVO> quotaList(Integer page, Integer size, Integer type) {
Integer pageSize = size;
Integer offset = (page-1)*size;
UserApp userApp = userAppService.queryUserAppByToken();
MerchantBaseInfo merchantBaseInfoByUserId = merchantBaseInfoService.getMerchantBaseInfoByUserId(String.valueOf(userApp.getUserId()));
switch (type) {
//额度明细
case 1:
List<UserMakerFlow> userMakerFlowsList = userMakerFlowMapper.selectByUserId(userApp.getUserId(), pageSize, offset);
List<UserMakerQuotaVO> vos = new ArrayList<>();
for (UserMakerFlow userMakerFlow : userMakerFlowsList) {
UserMakerQuotaVO userMakerQuotaVO = new UserMakerQuotaVO();
userMakerQuotaVO.setUserName(merchantBaseInfoByUserId == null?"下级商户":merchantBaseInfoByUserId.getAlias());
userMakerQuotaVO.setAmount(userMakerFlow.getAmount());
userMakerQuotaVO.setCreateTime(userMakerFlow.getCreateTime());
if (userMakerFlow.getAmount().compareTo(new BigDecimal(BigInteger.ZERO))>0) {
userMakerQuotaVO.setLowerAmount(userMakerFlow.getAmount().multiply(new BigDecimal("2")).setScale(2, RoundingMode.DOWN));
}else {
userMakerQuotaVO.setLowerAmount(userMakerFlow.getAmount());
}
vos.add(userMakerQuotaVO);
}
return vos;
//返现明细
case 2:
List<UserAccountFlow> userAccountFlowsList = userAccountFlowMapper.selectByUserIdType(userApp.getUserId(),pageSize, offset);
List<UserMakerQuotaVO> userAccountVos = new ArrayList<>();
for (UserAccountFlow userAccountFlow : userAccountFlowsList) {
UserMakerQuotaVO userMakerQuotaVO = new UserMakerQuotaVO();
userMakerQuotaVO.setUserName(merchantBaseInfoByUserId == null?"下级商户":merchantBaseInfoByUserId.getAlias());
userMakerQuotaVO.setAmount(userAccountFlow.getAmount());
userMakerQuotaVO.setCreateTime(userAccountFlow.getCreateTime());
userMakerQuotaVO.setLowerAmount(userAccountFlow.getOrderAmount());
userAccountVos.add(userMakerQuotaVO);
}
return userAccountVos;
}
return new ArrayList<UserMakerQuotaVO>();
}
//增加额度
private void makerQuota(MerchantOrder order){
BigDecimal consumeFee = new BigDecimal(String.valueOf(order.getConsumeFee()));
//商户码转userId
if (consumeFee.compareTo(new BigDecimal("0.01"))>0) {
MerchantBaseInfo merchantBaseInfoByMerchantCode = merchantBaseInfoService.getMerchantBaseInfoByMerchantCode(order.getMerchantCode());
UserPromotion userInfo = userPromotionMapper.selectByPrimaryKey(Long.valueOf(merchantBaseInfoByMerchantCode.getUserId()));
if (userInfo != null && "1".equals(userInfo.getIsExtend())){
BigDecimal profit = consumeFee.multiply(new BigDecimal("0.0038")).setScale(2, RoundingMode.DOWN);
String s = String.valueOf(userInfo.getUserId());
Integer integer = Integer.valueOf(s);
this.modMakerFunds(integer,"SD","免费额度",profit,"");
}
if (userInfo != null) {
UserPromotion userParent = userPromotionMapper.selectByUserIdMC(Long.valueOf(userInfo.getParentUserId()));
if (userParent != null) {
UserMakerQuota userMakerQuota = new UserMakerQuota();
userMakerQuota.setUserId(userParent.getUserId());
userMakerQuota.setAmount(consumeFee.divide(new BigDecimal("2"),2,BigDecimal.ROUND_DOWN));
userMakerQuota.setCreateTime(new Date());
userMakerQuotaMapper.insert(userMakerQuota);
}
}
}
}
//增加提现金额
private void profit(UserPromotion userInfo,BigDecimal consumeFee){
UserMakerQuota userMakerQuota = userMakerQuotaMapper.selectByUserId(userInfo.getUserId());
BigDecimal sumbigDecimal = userMakerQuota.getAmount();
if (sumbigDecimal !=null && sumbigDecimal.compareTo(consumeFee)>=0){
BigDecimal profit = consumeFee.multiply(new BigDecimal("0.0038")).setScale(2,BigDecimal.ROUND_DOWN);
sumbigDecimal = sumbigDecimal.subtract(consumeFee);
String s = String.valueOf(userInfo.getUserId());
Integer integer = Integer.valueOf(s);
//提现金额
userAccountService.modFunds(integer,"SD","免提现额度",profit,"");
//额度改变
this.modMakerFunds(integer,"SD","免费额度",sumbigDecimal,"");
}else {
BigDecimal profit = sumbigDecimal.multiply(new BigDecimal("0.0038")).setScale(2, BigDecimal.ROUND_DOWN);
String s = String.valueOf(userInfo.getUserId());
Integer integer = Integer.valueOf(s);
//提现金额
userAccountService.modFunds(integer,"SD","免提现额度",profit,"");
//额度改变
this.modMakerFunds(integer,"SD","免费额度",BigDecimal.ZERO,"");
}
}
/**
* 创客额度相关
* @param userId
* @param bizCode
* @param bizName
* @param difference
* @param remark
*/
public void modMakerFunds(Integer userId, String bizCode, String bizName, BigDecimal difference, String remark) {
Assert.notNull(userId, "NOt Null");
Assert.notNull(bizCode, "Not Null");
Assert.notNull(bizName, "Not Null");
Assert.notNull(difference, "Not Null");
UserMakerQuota userMakerQuota= initUserMaker(userId);
if(N.gt(BigDecimal.ZERO,difference)){
difference=difference.abs().negate();
}
if(N.gt(difference,BigDecimal.ZERO)){
difference=difference.abs();
}
userMakerQuotaMapper.updateMakerFreeze(userId,difference);
UserMakerFlow flow=new UserMakerFlow();
flow.setUserId(userId);
flow.setBizCode(bizCode);
flow.setBizName(bizName);
flow.setAmount(difference.abs());
flow.setBalance(userMakerQuota.getAmount());
flow.setCreateTime(new Date());
userMakerFlowMapper.insert(flow);
}
private UserMakerQuota initUserMaker(Integer userId){
Assert.notNull(userId, "NOt Null");
synchronized (this){
UserMakerQuota userMakerQuota = getUserAccountByUserId(userId);
if(ObjectUtil.isEmpty(userMakerQuota)){
userMakerQuota=new UserMakerQuota();
userMakerQuota.setUserId(Long.valueOf(userId));
userMakerQuota.setAmount(BigDecimal.ZERO);
userMakerQuota.setCreateTime(new Date());
int result=baseMapper.insert(userMakerQuota);
if(result<1){
MsgException.checkNull(null,"账户信息不存在");
}
}
return userMakerQuota;
}
}
public UserMakerQuota getUserAccountByUserId(Integer userId) {
return baseMapper.selectById(userId);
}
}

View File

@@ -122,7 +122,7 @@ public class AliPayNotifyServiceImpl extends BaseCallbackService implements AliP
/**
* 更新订单信息和状态
*
* @param param 订单回调信息
* @param param 银收客信息
*/
private void updateOrderStatus(Map<String, Object> param) {
// 商户订单号

View File

@@ -13,7 +13,7 @@ public interface UserAccountService {
* @return
*/
public UserAccount getUserAccountByUserId(Integer userId);
public UserAccount getUserAccountByUserId(Long userId);
/**
* 查询用户信息行锁
* @param userId

View File

@@ -36,6 +36,11 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserA
return baseMapper.selectById(userId);
}
@Override
public UserAccount getUserAccountByUserId(Long userId) {
return baseMapper.selectById(userId);
}
@Override
public UserAccount getUserAccountByUserIdForUpdate(Integer userId) {
return userAccountMapper.selectUserByUserId(userId);

View File

@@ -8,6 +8,7 @@ import cn.pluss.platform.dto.ChangePwdDTO;
import cn.pluss.platform.entity.MerchantOrder;
import cn.pluss.platform.entity.UserApp;
import cn.pluss.platform.entity.UserInfo;
import cn.pluss.platform.entity.UserPromotion;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.mapper.UserInfoMapper;
import com.alibaba.fastjson.JSONObject;
@@ -27,6 +28,9 @@ public interface UserInfoService extends IService<UserInfo> {
*/
void register(UserInfo userInfo);
void goregister(UserInfo userInfo, UserApp userApp, UserPromotion userPromotion);
/**
* 忘记密码
* @param userInfo 用户信息

View File

@@ -5,9 +5,11 @@ import cn.jiguang.common.utils.StringUtils;
import cn.pluss.platform.entity.*;
import cn.pluss.platform.exception.MsgException;
import cn.pluss.platform.jfShop.JfShopHandler;
import cn.pluss.platform.mapper.UserInfoMapper;
import cn.pluss.platform.mapper.UserPromotionMapper;
import cn.pluss.platform.roleUserInfo.RoleUserInfoService;
import cn.pluss.platform.systemConfig.SystemConfigService;
import cn.pluss.platform.user.UserIpRecordService;
import cn.pluss.platform.util.MD5Util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
@@ -19,7 +21,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -211,15 +212,39 @@ public class UserInfoServiceImpl extends BaseUserInfoService {
// ipRecordService.saveRegIp(userInfo.getId() + "", operatorUserId);
}
@Autowired
private UserIpRecordService ipRecordService;
@Autowired
private UserInfoMapper userInfoMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void goregister(UserInfo userInfo, UserApp userApp, UserPromotion userPromotion) {
save(userInfo);
userAppService.save(userApp);
userPromotionMapper.insert(userPromotion);
ipRecordService.saveRegIp(userInfo.getId() + "", userInfo.getId() + "");
}
@Resource
private UserPromotionMapper userPromotionMapper;
private UserPromotion getUserPromotionByUserId(String userId){
private UserPromotion getUserPromotionByUserId(String userId) {
UserPromotion userPromotion = new UserPromotion();
userPromotion.setUserId(Long.valueOf(userId));
UserPromotion promotion= userPromotionMapper.selectOne(new QueryWrapper<>(userPromotion));
UserPromotion promotion = userPromotionMapper.selectOne(new QueryWrapper<>(userPromotion));
if(ObjectUtil.isNotEmpty(promotion)){
if (ObjectUtil.isNotEmpty(promotion)) {
if("MG".equals(promotion.getTypeCode())||"FB".equals(promotion.getTypeCode())||
"SB".equals(promotion.getTypeCode())||"1".equals(promotion.getIsExtend())||
"2".equals(promotion.getIsExtend()) ||"AG".equals(promotion.getTypeCode())){

View File

@@ -181,6 +181,24 @@ public class UserInfoServiceNewImpl extends BaseUserInfoService {
}
@Autowired
private UserIpRecordService ipRecordService;
@Override
@Transactional(rollbackFor = Exception.class)
public void goregister(UserInfo userInfo, UserApp userApp, UserPromotion userPromotion) {
save(userInfo);
userApp.setUserId(userInfo.getId());
userAppService.save(userApp);
userPromotion.setUserId(userInfo.getId());
userPromotionMapper.insert(userPromotion);
ipRecordService.saveRegIp(userInfo.getId() + "", userInfo.getId() + "");
}
private String getRandomNum() {
String inviteNum;
UserApp condition = new UserApp();

View File

@@ -1,5 +1,6 @@
package cn.pluss.platform.controller.component;
import cn.pluss.platform.UserMakerQuota.UserMakerQuotaService;
import cn.pluss.platform.entity.MerchantOrder;
import cn.pluss.platform.merchantOrder.MerchantOrderService;
import cn.pluss.platform.merchantProfit.MerchantProfitService;
@@ -30,6 +31,9 @@ public class PayCallbackConsumer {
@Resource
private RealFansService realFansService;
@Resource
private UserMakerQuotaService userMakerQuotaService;
@RabbitHandler
public void process(String msg) {
log.info("接受到的消息内容为:{}", msg);
@@ -42,6 +46,8 @@ public class PayCallbackConsumer {
// realFansService.createFansProfit(order);
}
merchantProfitService.createOrderProfitV2(order,"1");
//判断是否创客增加额度
userMakerQuotaService.quotaInfo(order);
MerchantOrder update = new MerchantOrder();
update.setId(order.getId());
update.setProfitShareMoney(order.getProfitShareMoney());

View File

@@ -2491,7 +2491,7 @@ public class MerchantController {
}else {
inviteNum=params[0].split("=")[1];
result.put("typeCode",params[1].split("=")[1]);
result.put("currentFee",(params[1].split("=").length<=1)?"":params[1].split("=")[1]);
result.put("currentFee",(params[2].split("=").length<=1)?"":params[2].split("=")[1]);
}
String phone = "";
String userName = "";
@@ -2595,7 +2595,7 @@ public class MerchantController {
userInfo.setCreateTime(new Date());
userInfo.setTypeCode(typeCode == null? userInfo.getTypeCode(): typeCode);
userInfo.setCurrentFee(currentFee== null? userInfo.getCurrentFee(): currentFee);
userInfoService.saveUserInfo(userInfo);
UserApp userApp = new UserApp();
userApp.setUserId(userInfo.getId());
@@ -2649,12 +2649,21 @@ public class MerchantController {
promotion.setIsExtend(promotion.getTypeCode().equals("MC")?"0":"1");
promotion.setCreateTime(new Date());
userPromotionMapper.insert(promotion);
// 可能和数据库存储的数据不一致
userInfo.setCreateTime(null);
userAppService.save(userApp);
ipRecordService.saveRegIp(userInfo.getId() + "", userInfo.getId() + "");
userInfoService.goregister(userInfo,userApp,promotion);
PhoneValidateCode phoneValidate = new PhoneValidateCode();
if (StringUtil.isNotEmpty(phone)) {
phoneValidate.setPhone(phone);

View File

@@ -10,6 +10,16 @@
<!-- <link rel="stylesheet" href="https://act.weixin.qq.com/static/cdn/css/wepayui/0.1.1/wepayui.min.css">-->
<script src="https://www.shouyinbei.net/resources/js/alipayjsapi.min3.1.1.js"></script>
<title>向商户付款</title>
<script>
window.alert = function (name) {
var iframe = document.createElement("IFRAME");
iframe.style.display = "none";
iframe.setAttribute("src", 'data:text/plain,');
document.documentElement.appendChild(iframe);
window.frames[0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
</script>
<style>
* {
padding: 0;

View File

@@ -8,6 +8,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script src="http://passport.cnblogs.com/scripts/jsencrypt.min.js"></script>
<script type="text/javascript" src="/wap/resources/js/zepto.weui.js"></script>
<title>分享</title>
<style>
div,