From e8a2e9bee19d86005a6e9dc3a5aa121c4f8baf4b Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Wed, 4 Dec 2024 17:28:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/exception/SqxExceptionHandler.java | 72 ++++--- .../app/service/impl/UserServiceImpl.java | 2 +- .../service/impl/InviteServiceImpl.java | 183 +++++++++--------- .../com/sqx/modules/pay/wuyou/Constants.java | 1 + .../com/sqx/modules/pay/wuyou/WuyouPay.java | 5 +- 5 files changed, 139 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java b/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java index a171e7dd..348a8d2b 100644 --- a/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java +++ b/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java @@ -7,49 +7,59 @@ import org.slf4j.LoggerFactory; import org.springframework.dao.DuplicateKeyException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.context.request.WebRequest; import org.springframework.web.servlet.NoHandlerFoundException; /** * 异常处理器 * + * @author GYJ */ @RestControllerAdvice public class SqxExceptionHandler { - private Logger logger = LoggerFactory.getLogger(getClass()); + private final Logger logger = LoggerFactory.getLogger(getClass()); - /** - * 处理自定义异常 - */ - @ExceptionHandler(SqxException.class) - public Result handleException(SqxException e){ - Result r = new Result(); - r.put("code", e.getCode()); - r.put("msg", e.getMessage()); + /** + * 处理自定义异常 + */ + @ExceptionHandler(SqxException.class) + public Result handleException(SqxException e) { + Result r = new Result(); + r.put("code", e.getCode()); + r.put("msg", e.getMessage()); - return r; - } + return r; + } - @ExceptionHandler(NoHandlerFoundException.class) - public Result handlerNoFoundException(Exception e) { - logger.error(e.getMessage(), e); - return Result.error(404, "路径不存在,请检查路径是否正确"); - } + @ExceptionHandler(NoHandlerFoundException.class) + public Result handlerNoFoundException(Exception e, WebRequest webRequest) { + String requestUrl = webRequest.getDescription(false).split(" ")[1]; + logger.error("请求路径不存在:{}", requestUrl); + logger.error(e.getMessage(), e); + return Result.error(404, "路径不存在,请检查路径是否正确"); + } - @ExceptionHandler(DuplicateKeyException.class) - public Result handleDuplicateKeyException(DuplicateKeyException e){ - logger.error(e.getMessage(), e); - return Result.error("数据库中已存在该记录"); - } + @ExceptionHandler(DuplicateKeyException.class) + public Result handleDuplicateKeyException(DuplicateKeyException e, WebRequest webRequest) { + String requestUrl = webRequest.getDescription(false).split(" ")[1]; + logger.error("请求路径:{},数据库中已存在该记录", requestUrl); + logger.error(e.getMessage(), e); + return Result.error("数据库中已存在该记录"); + } - @ExceptionHandler(AuthorizationException.class) - public Result handleAuthorizationException(AuthorizationException e){ - logger.error(e.getMessage(), e); - return Result.error("没有权限,请联系管理员授权"); - } + @ExceptionHandler(AuthorizationException.class) + public Result handleAuthorizationException(AuthorizationException e, WebRequest webRequest) { + String requestUrl = webRequest.getDescription(false).split(" ")[1]; + logger.error("请求路径:{},没有权限", requestUrl); + logger.error(e.getMessage(), e); + return Result.error("没有权限,请联系管理员授权"); + } - @ExceptionHandler(Exception.class) - public Result handleException(Exception e){ - logger.error(e.getMessage(), e); - return Result.error(); - } + @ExceptionHandler(Exception.class) + public Result handleException(Exception e, WebRequest webRequest) { + String requestUrl = webRequest.getDescription(false).split(" ")[1]; + logger.error("请求路径:{},发生异常", requestUrl); + logger.error(e.getMessage(), e); + return Result.error(); + } } diff --git a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java index 538c1e67..c82dddad 100644 --- a/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java +++ b/src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java @@ -875,7 +875,7 @@ public class UserServiceImpl extends ServiceImpl implements return getResult(userInfo); } else { if(StringUtils.isEmpty(msg)){ - return Result.error("手机号未注册!"); + return Result.error("验证码不能为空!"); } Msg msg1 = msgDao.findByPhoneAndCode(phone, msg); if(msg1==null){ diff --git a/src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java b/src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java index b131d339..c2738dfe 100644 --- a/src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java +++ b/src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java @@ -61,19 +61,19 @@ public class InviteServiceImpl extends ServiceImpl implements private SysUserService sysUserService; @Override - public PageUtils selectInviteList(int page,int limit,Integer state,Long userId){ - Page> pages=new Page<>(page,limit); - if(state==null || state==-1){ - state=null; + public PageUtils selectInviteList(int page, int limit, Integer state, Long userId) { + Page> pages = new Page<>(page, limit); + if (state == null || state == -1) { + state = null; } - return new PageUtils(inviteDao.selectInviteList(pages,state,userId)); + return new PageUtils(inviteDao.selectInviteList(pages, state, userId)); } @Override - public PageUtils selectInviteUser(int page, int limit, Long userId, Integer state,Integer userType) { + public PageUtils selectInviteUser(int page, int limit, Long userId, Integer state, Integer userType) { Page> pages = new Page<>(page, limit); - return new PageUtils(inviteDao.selectInviteUser(pages, userId, state,userType)); + return new PageUtils(inviteDao.selectInviteUser(pages, userId, state, userType)); } @Override @@ -83,47 +83,47 @@ public class InviteServiceImpl extends ServiceImpl implements @Override public Integer selectInviteByUserIdCount(Long userId, Date startTime, Date endTime) { - return inviteDao.selectInviteByUserIdCount(userId,startTime,endTime); + return inviteDao.selectInviteByUserIdCount(userId, startTime, endTime); } @Override public Double selectInviteByUserIdSum(Long userId, Date startTime, Date endTime) { - return inviteDao.selectInviteByUserIdSum(userId,startTime,endTime); + return inviteDao.selectInviteByUserIdSum(userId, startTime, endTime); } @Override public Double sumInviteMoney(String time, Integer flag) { - return inviteDao.sumInviteMoney(time,flag); + return inviteDao.sumInviteMoney(time, flag); } @Override - public PageUtils inviteAnalysis(int page,int limit, String time, Integer flag) { - Page> pages=new Page<>(page,limit); - return new PageUtils(inviteDao.inviteAnalysis(pages,time,flag)); + public PageUtils inviteAnalysis(int page, int limit, String time, Integer flag) { + Page> 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; + public Integer selectInviteCount(Integer state, Long userId) { + if (state == null || state == -1) { + state = null; } - return inviteDao.selectInviteCount(state,userId); + return inviteDao.selectInviteCount(state, userId); } @Override public Double selectInviteSum(Integer state, Long userId) { - if(state==null || state==-1){ - state=null; + if (state == null || state == -1) { + state = null; } - return inviteDao.selectInviteSum(state,userId); + return inviteDao.selectInviteSum(state, userId); } @Override - public int saveBody(Long userId, UserEntity userEntity){ - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + 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 invite = new Invite(); invite.setState(0); invite.setMoney(0.00); invite.setUserId(userEntity.getUserId()); @@ -133,8 +133,8 @@ public class InviteServiceImpl extends ServiceImpl implements inviteDao.insert(invite); //同步二级 UserEntity two = userService.queryByInvitationCode(userEntity.getInviterCode()); - if(two!=null){ - invite=new Invite(); + if (two != null) { + invite = new Invite(); invite.setState(0); invite.setMoney(0.00); invite.setUserId(two.getUserId()); @@ -143,44 +143,47 @@ public class InviteServiceImpl extends ServiceImpl implements invite.setUserType(2); inviteDao.insert(invite); } - UserEntity user=new UserEntity(); + 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().eq("invite_count", inviterCount)); - if(inviteAward!=null){ - if(inviteAward.getInviteMonth()==0){ - userVipService.update(null, Wrappers.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); - } - } - } + if (!"是".equals(value)) { + return 0; + } + //获取邀请人的邀请数量 + int inviterCount = userService.queryInviterCount(userEntity.getInvitationCode()); + InviteAward inviteAward = inviteAwardService.getOne(new QueryWrapper().eq("invite_count", inviterCount)); + if (inviteAward == null) { + return 0; + } + if (inviteAward.getInviteMonth() == 0) { + userVipService.update(null, Wrappers.lambdaUpdate() + .set(UserVip::getIsVip, 2) + .set(UserVip::getEndTime, null) + .set(UserVip::getVipType, 1) + .eq(UserVip::getUserId, userEntity.getUserId())); + + return 1; + } + 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; @@ -188,10 +191,10 @@ public class InviteServiceImpl extends ServiceImpl implements @Override - public Map updateInvite(UserEntity userEntity, String format, Long userId, BigDecimal price) { - Map result=new HashMap<>(); + public Map updateInvite(UserEntity userEntity, String format, Long userId, BigDecimal price) { + Map result = new HashMap<>(); if (userEntity != null && userId != null && price != null) { - Invite invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId,1); + Invite invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId, 1); if (invite1 == null) { Invite invite = new Invite(); invite.setState(0); @@ -201,14 +204,14 @@ public class InviteServiceImpl extends ServiceImpl implements invite.setCreateTime(format); invite.setUserType(1); inviteDao.insert(invite); - invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId,1); + invite1 = inviteDao.selectInviteByUser(userEntity.getUserId(), userId, 1); } UserEntity userEntity1 = userService.selectUserById(userId); - BigDecimal oneMoney=BigDecimal.ZERO; - BigDecimal twoMoney=BigDecimal.ZERO; + 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; + oneMoney = rateMoney; Double money = rateMoney.doubleValue(); invite1.setUserType(1); invite1.setState(1); @@ -222,15 +225,15 @@ public class InviteServiceImpl extends ServiceImpl implements userMoneyDetails.setClassify(2); userMoneyDetails.setMoney(new BigDecimal(money)); userMoneyDetails.setCreateTime(format); - userMoneyDetails.setTitle("[邀请好友]好友名称:"+userEntity1.getUserName()); - userMoneyDetails.setContent("获取佣金:"+money); + userMoneyDetails.setTitle("[邀请好友]好友名称:" + userEntity1.getUserName()); + userMoneyDetails.setContent("获取佣金:" + money); userMoneyDetailsService.save(userMoneyDetails); - result.put("oneUserId",userEntity.getUserId()); - result.put("oneMoney",money); + 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 (two != null) { + Invite invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId, 2); if (invite2 == null) { Invite invite = new Invite(); invite.setState(0); @@ -240,11 +243,11 @@ public class InviteServiceImpl extends ServiceImpl implements invite.setCreateTime(format); invite.setUserType(2); inviteDao.insert(invite); - invite2 = inviteDao.selectInviteByUser(two.getUserId(), userId,2); + 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; + twoMoney = rateMoney; Double money = rateMoney.doubleValue(); invite2.setUserType(2); invite2.setState(1); @@ -258,39 +261,39 @@ public class InviteServiceImpl extends ServiceImpl implements userMoneyDetails.setMoney(new BigDecimal(money)); userMoneyDetails.setCreateTime(format); userMoneyDetails.setClassify(2); - userMoneyDetails.setTitle("[邀请好友]好友名称:"+userEntity1.getUserName()); - userMoneyDetails.setContent("获取佣金:"+money); + userMoneyDetails.setTitle("[邀请好友]好友名称:" + userEntity1.getUserName()); + userMoneyDetails.setContent("获取佣金:" + money); userMoneyDetailsService.save(userMoneyDetails); - result.put("twoUserId",two.getUserId()); - result.put("twoMoney",money); + result.put("twoUserId", two.getUserId()); + result.put("twoMoney", money); } } - if(StringUtils.isNotEmpty(userEntity1.getQdCode())){ + if (StringUtils.isNotEmpty(userEntity1.getQdCode())) { SysUserEntity sysUserEntity = sysUserService.selectSysUserByQdCode(userEntity1.getQdCode()); - if(sysUserEntity!=null){ + 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()); + 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; + userMoneyDetails.setTitle("[渠道用户]用户名称:" + userEntity1.getUserName()); + String title = "总佣金:" + rateMoney; + if (oneMoney.doubleValue() > 0) { + title = title + ",一级推广员扣除收益:" + oneMoney; } - if(twoMoney.doubleValue()>0){ - title=title+",二级推广员扣除收益:"+twoMoney; + if (twoMoney.doubleValue() > 0) { + title = title + ",二级推广员扣除收益:" + twoMoney; } - userMoneyDetails.setContent(title+",到账佣金:"+sumMoney); + userMoneyDetails.setContent(title + ",到账佣金:" + sumMoney); userMoneyDetailsService.save(userMoneyDetails); - result.put("sysUserId",sysUserEntity.getUserId()); - result.put("qdMoney",sumMoney); + result.put("sysUserId", sysUserEntity.getUserId()); + result.put("qdMoney", sumMoney); return result; } } diff --git a/src/main/java/com/sqx/modules/pay/wuyou/Constants.java b/src/main/java/com/sqx/modules/pay/wuyou/Constants.java index 7b1d6f13..666761aa 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/Constants.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/Constants.java @@ -16,5 +16,6 @@ public class Constants { final static String EXTRACT_QUERY_URL = BASE_URL + "/api/querySalary"; final static String NOTIFY_URL = "https://video.hnsiyao.cn/sqx_fast/app/wuyou/notify"; + final static String EXTRACT_NOTIFY_URL = "https://video.hnsiyao.cn/sqx_fast/app/wuyou/notify"; } diff --git a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java index 77dc8c75..1c281bd5 100644 --- a/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java +++ b/src/main/java/com/sqx/modules/pay/wuyou/WuyouPay.java @@ -2,6 +2,7 @@ package com.sqx.modules.pay.wuyou; import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,7 +54,7 @@ public class WuyouPay { params.put("bank_branch", "1"); params.put("province", "1"); params.put("city", "1"); - params.put("notify_url", "1"); + params.put("notify_url", Constants.EXTRACT_NOTIFY_URL); String sign = Encrypt.getParamsSign(params); params.put("sign", sign); @@ -93,7 +94,7 @@ public class WuyouPay { .execute() .body(); - logger.info("request url: {}, params: {}, response: {}", url, params, body); + logger.info("无忧支付 request url: {}, params: {}, response: {}", url, params, body); return body; }