From f237a61c412870933f47316a011237cd538de9bc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 20 八月 2024 09:07:02 +0800
Subject: [PATCH] 新增需求

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserController.java |  701 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 688 insertions(+), 13 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserController.java
index c8ac569..3df9393 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserController.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserController.java
@@ -5,6 +5,7 @@
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
+import com.stylefeng.guns.modular.system.dao.UserBlackMapper;
 import com.stylefeng.guns.modular.system.dto.*;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
@@ -20,6 +21,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
+import springfox.documentation.spring.web.paths.AbstractPathProvider;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -86,9 +88,12 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
     })
     public ResultUtil<PeopleListVO> peopleList() {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         PeopleListVO peopleListVO = new PeopleListVO();
         peopleListVO.setUserName(appUserService.getAppUser().getName());
-        AppUser appUser = appUserService.getAppUser();
         Integer inviteUserId = appUser.getInviteUserId();
         if (inviteUserId!=null){
             AppUser appUser1 = appUser.selectById(inviteUserId);
@@ -127,14 +132,22 @@
     })
     public ResultUtil getBindingUserName(String code) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         if (code.equals(appUser.getCode())){
-            return ResultUtil.errorInvite("不能绑定自己",null);
+            return ResultUtil.errorInvite("不能绑定自己","");
         }
         AppUser code1 = appUserService.selectOne(new EntityWrapper<AppUser>()
                 .eq("code", code));
         if (code1 == null){
-            return ResultUtil.errorInvite("邀请码无效",null);
+            return ResultUtil.errorInvite("邀请码无效","");
         }
+//        else{
+//            if (code1.getInviteUserId().equals(appUser.getId())){
+//                return ResultUtil.error("邀请失败,当前邀请用户为您的邀请人", null);
+//            }
+//        }
         return ResultUtil.success(code1.getName());
     }
     @ResponseBody
@@ -146,13 +159,21 @@
     })
     public ResultUtil updateBankCard(String code) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         AppUser code1 = appUserService.selectOne(new EntityWrapper<AppUser>()
                 .eq("code", code));
         if (code1 == null){
-            return ResultUtil.errorInvite("邀请码无效",null);
+            return ResultUtil.errorInvite("邀请码无效","");
         }
         if (code.equals(appUser.getCode())){
             return ResultUtil.error("不能绑定自己");
+        }
+        if (code1.getInviteUserId()!=null){
+            if (code1.getInviteUserId().equals(appUser.getId())){
+                return ResultUtil.error("邀请失败,当前邀请用户为您的邀请人", null);
+            }
         }
         appUser.setInviteUserId(code1.getId());
         appUserService.updateById(appUser);
@@ -169,6 +190,9 @@
     })
     public ResultUtil Withdrawal(BigDecimal money) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         if (!StringUtils.hasLength(appUser.getBankCard())){
             return ResultUtil.error("提现失败 请先绑定银行卡");
         }
@@ -203,6 +227,9 @@
     public ResultUtil updateBankCard(String accountName, String bankCard,String bankName,String bankPhone,String bankCardImg) {
 
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         appUser.setBankCard(bankCard);
         appUser.setAccountName(accountName);
         appUser.setBankName(bankName);
@@ -212,6 +239,71 @@
             return ResultUtil.success(appUser);
         }
         appUserService.updateById(appUser);
+        return ResultUtil.success();
+    }
+
+    @Autowired
+    private UserBlackMapper userBlackMapper;
+    @ResponseBody
+    @PostMapping("/base/appUser/blackList")
+    @ApiOperation(value = "拉黑列表", tags = {"2.0新增"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "pageSize", dataType = "int"),
+    })
+    public ResultUtil<List<BlackListVO>> blackList(Integer pageNum,Integer pageSize) {
+        List<BlackListVO> res = new ArrayList<>();
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
+        List<UserBlack> userId = userBlackService.selectList(new EntityWrapper<UserBlack>()
+                .eq("userId", appUser.getId()));
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
+
+        for (UserBlack userBlack : userId) {
+            AppUser appUser1 = appUserService.selectById(userBlack.getBlackUserId());
+            if (appUser1 != null){
+                BlackListVO blackListVO = new BlackListVO();
+                blackListVO.setId(appUser1.getId());
+                blackListVO.setHeadImg(appUser1.getHeadImg());
+                blackListVO.setName(appUser1.getName());
+                String format = simpleDateFormat.format(userBlack.getInsertTime());
+                res.add(blackListVO);
+            }
+        }
+        List<BlackListVO> findVOS = testing4(res.size(), pageNum, pageSize, res);
+        return ResultUtil.success(findVOS);
+    }
+    @Autowired
+    private IUserBlackService userBlackService;
+    @ResponseBody
+    @PostMapping("/base/appUser/black")
+    @ApiOperation(value = "拉黑/取消拉黑操作", tags = {"2.0新增"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+            @ApiImplicitParam(value = "被拉黑用户id", name = "id", dataType = "string" ),
+    })
+    public ResultUtil black(Integer id) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
+        UserBlack userBlack = userBlackService.selectOne(new EntityWrapper<UserBlack>()
+                .eq("userId", appUser.getId())
+                .eq("blackUserId", id));
+        // 执行取消拉黑操作
+        if (userBlack!=null){
+            userBlackService.deleteById(userBlack.getId());
+        }else{
+            // 执行新增拉黑操作
+            userBlack = new UserBlack();
+            userBlack.setInsertTime(new Date());
+            userBlack.setUserId(appUser.getId());
+            userBlack.setBlackUserId(id);
+            userBlackService.insert(userBlack);
+        }
         return ResultUtil.success();
     }
 
@@ -241,6 +333,10 @@
 
     })
     public ResultUtil<AppUser> updateBankCard() {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         return ResultUtil.success(appUserService.getAppUser());
     }
 
@@ -254,6 +350,9 @@
         List<CouponVO> res = new ArrayList<>();
         req.setPageNum((req.getPageNum() - 1) * req.getPageSize());
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         req.setUserId(appUser.getId());
         List<CouponReceive> couponReceives = couponReceiveService.getList(req);
         for (CouponReceive couponReceive : couponReceives) {
@@ -286,6 +385,9 @@
     })
     public ResultUtil<List<WithdtawalVO>> withdrawal(Integer year,Integer month,Integer pageNum,Integer pageSize) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         List<WithdtawalVO> withdtawalVOS = new ArrayList<>();
         Wrapper<Withdrawal> eq1 = new EntityWrapper<Withdrawal>()
                 .eq("userId", appUser.getId());
@@ -357,6 +459,10 @@
     public ResultUtil<WalletVO> wallet(Integer year,Integer month,Integer pageNum,Integer pageSize) {
         WalletVO walletVO = new WalletVO();
         List<UserDetailVO> detail = new ArrayList<>();
+        AppUser appUser3 = appUserService.getAppUser();
+        if (appUser3 == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         Integer id = appUserService.getAppUser().getId();
         BigDecimal balance = appUserService.getAppUser().getBalance();
         walletVO.setBalance(balance);
@@ -509,6 +615,484 @@
         walletVO.setDetails(testing);
         return ResultUtil.success(walletVO);
     }
+    @ResponseBody
+    @PostMapping("/base/appUser/appleWallet")
+    @ApiOperation(value = "苹果佣金列表(提现 好友消费 佣金 充值 平台红包)", tags = {"我的"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+            @ApiImplicitParam(value = "年", name = "year", dataType = "int"),
+            @ApiImplicitParam(value = "月", name = "month", dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "pageSize", dataType = "int"),
+            @ApiImplicitParam(value = "类型 1=提现 2=好友消费 3=佣金 4=充值 5=平台红包", name = "type"),
+    })
+    public ResultUtil<WalletVO> appleWallet(Integer year,Integer month,Integer pageNum,Integer pageSize,String type) {
+        WalletVO walletVO = new WalletVO();
+        List<UserDetailVO> detail = new ArrayList<>();
+        AppUser appUser3 = appUserService.getAppUser();
+        if (appUser3 == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
+        Integer id = appUserService.getAppUser().getId();
+        BigDecimal balance = appUserService.getAppUser().getBalance();
+        walletVO.setBalance(balance);
+        if (!StringUtils.hasLength(type)){
+            // 查询全部
+            Wrapper<Recharge> eq1 = new EntityWrapper<Recharge>()
+                    .eq("userId", id)
+                    .eq("state", 2);
+            // 如果传递了年份和月份,则添加时间条件
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq1.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+            // 查询充值记录
+            List<Recharge> recharges = rechargeService.selectList(eq1);
+            for (Recharge recharge : recharges) {
+                UserDetailVO userDetailVO = new UserDetailVO();
+                userDetailVO.setAmount("+"+recharge.getAmount().toString());
+                userDetailVO.setType("充值");
+                userDetailVO.setInsertTime1(recharge.getInsertTime());
+                SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                String format1 = format.format(recharge.getInsertTime());
+                userDetailVO.setInsertTime(format1);
+                detail.add(userDetailVO);
+            }
+            // 查询购课记录 只查询钱包支付的
+            Wrapper<OrderCourse> eq2 = new EntityWrapper<OrderCourse>()
+                    .eq("userId", id)
+//                .eq("payType", 3)
+                    .eq("state", 2);
+            // 如果传递了年份和月份,则添加时间条件
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq2.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+//        List<OrderCourse> orderCourses = orderCourseService.selectList(eq2);
+//        for (OrderCourse orderCours : orderCourses) {
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            userDetailVO.setAmount("-"+orderCours.getRealMoney());
+//            userDetailVO.setType("购买课程");
+//            userDetailVO.setInsertTime1(orderCours.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(orderCours.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+            Wrapper<Order> eq = new EntityWrapper<Order>()
+                    .eq("userId", id)
+//                .eq("payType", 3)
+                    .eq("state", 2);
+
+            // 如果传递了年份和月份,则添加时间条件
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+//        List<Order> orders = orderService.selectList(eq);
+            // 查询购买套餐记录 只查询钱包支付的
+
+//        for (Order order : orders) {
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            userDetailVO.setAmount("-"+order.getRealMoney());
+//            userDetailVO.setType("购买套餐");
+//            userDetailVO.setInsertTime1(order.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(order.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+            // 查询提现记录
+            Wrapper<Withdrawal> eq3 = new EntityWrapper<Withdrawal>()
+                    .eq("userId", id);
+            // 如果传递了年份和月份,则添加时间条件
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq3.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+            List<Withdrawal> withdrawals = withdrawalService.selectList(eq3);
+            for (Withdrawal withdrawal : withdrawals) {
+                UserDetailVO userDetailVO = new UserDetailVO();
+                switch (withdrawal.getState()){
+                    case 1:
+                        userDetailVO.setAmount("-"+withdrawal.getAmount());
+                        userDetailVO.setType("提现");
+                        break;
+                    case 2:
+                        userDetailVO.setAmount("-"+withdrawal.getAmount());
+                        userDetailVO.setType("提现");
+                        break;
+                    case 3:
+                        userDetailVO.setAmount("+"+withdrawal.getAmount());
+                        userDetailVO.setType("提现失败");
+                        break;
+                }
+                userDetailVO.setInsertTime1(withdrawal.getInsertTime());
+                SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                String format1 = format.format(withdrawal.getInsertTime());
+                userDetailVO.setInsertTime(format1);
+                detail.add(userDetailVO);
+            }
+            // 查询是否有邀请过用户 获得消费奖励
+            Wrapper<Invite> eq4 = new EntityWrapper<Invite>()
+                    .eq("giftUserId", id);
+            // 如果传递了年份和月份,则添加时间条件
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq4.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+            eq4.eq("type",1);
+            List<Invite> giftUserId = inviteService.selectList(eq4);
+            for (Invite invite : giftUserId) {
+                UserDetailVO userDetailVO = new UserDetailVO();
+                userDetailVO.setAmount("+"+invite.getAmount());
+                AppUser appUser = appUserService.selectById(invite.getUserId());
+                userDetailVO.setType("好友消费:("+appUser.getName()+"消费了"+invite.getConsume()+"元)");
+                userDetailVO.setInsertTime1(invite.getInsertTime());
+                SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                String format1 = format.format(invite.getInsertTime());
+                userDetailVO.setInsertTime(format1);
+                detail.add(userDetailVO);
+            }
+            // 查询红包发放记录
+            Wrapper<RedPackage> eq5 = new EntityWrapper<RedPackage>();
+            if (year != null && month != null) {
+                LocalDate startDate = LocalDate.of(year, month, 1);
+                LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                eq5.ge("insertTime", startDate).le("insertTime", endDate);
+            }
+            List<RedPackage> redPackages = redPackageService.selectList(eq5);
+            for (RedPackage redPackage : redPackages) {
+                if (appUserService.getAppUser().getInsertTime().compareTo(redPackage.getInsertTime())>0){
+                    continue;
+                }
+                UserDetailVO userDetailVO = new UserDetailVO();
+                userDetailVO.setAmount("+"+redPackage.getAmount());
+                userDetailVO.setType("平台红包");
+                userDetailVO.setInsertTime1(redPackage.getInsertTime());
+                SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                String format1 = format.format(redPackage.getInsertTime());
+                userDetailVO.setInsertTime(format1);
+                detail.add(userDetailVO);
+            }
+            List<UserDetailVO> sortedList = detail.stream()
+                    .sorted(Comparator.comparing(UserDetailVO::getInsertTime1).reversed())
+                    .collect(Collectors.toList());
+            List<UserDetailVO> testing = testing(sortedList.size(), pageNum, pageSize, sortedList);
+            walletVO.setDetails(testing);
+            return ResultUtil.success(walletVO);
+        }else{
+            String[] split = type.split(",");
+            List<String> collect = Arrays.stream(split).collect(Collectors.toList());
+            if (collect.contains("1")){
+                // 查询提现记录
+                Wrapper<Withdrawal> eq3 = new EntityWrapper<Withdrawal>()
+                        .eq("userId", id);
+                // 如果传递了年份和月份,则添加时间条件
+                if (year != null && month != null) {
+                    LocalDate startDate = LocalDate.of(year, month, 1);
+                    LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                    eq3.ge("insertTime", startDate).le("insertTime", endDate);
+                }
+                List<Withdrawal> withdrawals = withdrawalService.selectList(eq3);
+                for (Withdrawal withdrawal : withdrawals) {
+                    UserDetailVO userDetailVO = new UserDetailVO();
+                    switch (withdrawal.getState()){
+                        case 1:
+                            userDetailVO.setAmount("-"+withdrawal.getAmount());
+                            userDetailVO.setType("提现");
+                            break;
+                        case 2:
+                            userDetailVO.setAmount("-"+withdrawal.getAmount());
+                            userDetailVO.setType("提现");
+                            break;
+                        case 3:
+                            userDetailVO.setAmount("+"+withdrawal.getAmount());
+                            userDetailVO.setType("提现失败");
+                            break;
+                    }
+                    userDetailVO.setInsertTime1(withdrawal.getInsertTime());
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                    String format1 = format.format(withdrawal.getInsertTime());
+                    userDetailVO.setInsertTime(format1);
+                    detail.add(userDetailVO);
+                }
+            }
+            if (collect.contains("2")){
+                // 查询是否有邀请过用户 获得消费奖励
+                Wrapper<Invite> eq4 = new EntityWrapper<Invite>()
+                        .eq("giftUserId", id);
+                // 如果传递了年份和月份,则添加时间条件
+                if (year != null && month != null) {
+                    LocalDate startDate = LocalDate.of(year, month, 1);
+                    LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                    eq4.ge("insertTime", startDate).le("insertTime", endDate);
+                }
+                eq4.eq("type",1);
+                List<Invite> giftUserId = inviteService.selectList(eq4);
+                for (Invite invite : giftUserId) {
+                    UserDetailVO userDetailVO = new UserDetailVO();
+                    userDetailVO.setAmount("+"+invite.getAmount());
+                    AppUser appUser = appUserService.selectById(invite.getUserId());
+                    userDetailVO.setType("好友消费:("+appUser.getName()+"消费了"+invite.getConsume()+"元)");
+                    userDetailVO.setInsertTime1(invite.getInsertTime());
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                    String format1 = format.format(invite.getInsertTime());
+                    userDetailVO.setInsertTime(format1);
+                    detail.add(userDetailVO);
+                }
+            }
+            if (collect.contains("3")){
+// 查询是否有邀请过用户 获得消费奖励
+                Wrapper<Invite> eq4 = new EntityWrapper<Invite>()
+                        .eq("giftUserId", id);
+                // 如果传递了年份和月份,则添加时间条件
+                if (year != null && month != null) {
+                    LocalDate startDate = LocalDate.of(year, month, 1);
+                    LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                    eq4.ge("insertTime", startDate).le("insertTime", endDate);
+                }
+                eq4.eq("type",1);
+                List<Invite> giftUserId = inviteService.selectList(eq4);
+                for (Invite invite : giftUserId) {
+                    UserDetailVO userDetailVO = new UserDetailVO();
+                    userDetailVO.setAmount("+"+invite.getAmount());
+                    AppUser appUser = appUserService.selectById(invite.getUserId());
+                    userDetailVO.setType("好友消费:("+appUser.getName()+"消费了"+invite.getConsume()+"元)");
+                    userDetailVO.setInsertTime1(invite.getInsertTime());
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                    String format1 = format.format(invite.getInsertTime());
+                    userDetailVO.setInsertTime(format1);
+                    detail.add(userDetailVO);
+                }
+            }
+            if (collect.contains("4")){
+                Wrapper<Recharge> eq1 = new EntityWrapper<Recharge>()
+                        .eq("userId", id)
+                        .eq("state", 2);
+                // 如果传递了年份和月份,则添加时间条件
+                if (year != null && month != null) {
+                    LocalDate startDate = LocalDate.of(year, month, 1);
+                    LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                    eq1.ge("insertTime", startDate).le("insertTime", endDate);
+                }
+                // 查询充值记录
+                List<Recharge> recharges = rechargeService.selectList(eq1);
+                for (Recharge recharge : recharges) {
+                    UserDetailVO userDetailVO = new UserDetailVO();
+                    userDetailVO.setAmount("+"+recharge.getAmount().toString());
+                    userDetailVO.setType("充值");
+                    userDetailVO.setInsertTime1(recharge.getInsertTime());
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                    String format1 = format.format(recharge.getInsertTime());
+                    userDetailVO.setInsertTime(format1);
+                    detail.add(userDetailVO);
+                }
+            }
+            if (collect.contains("5")){
+                // 查询红包发放记录
+                Wrapper<RedPackage> eq5 = new EntityWrapper<RedPackage>();
+                if (year != null && month != null) {
+                    LocalDate startDate = LocalDate.of(year, month, 1);
+                    LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+                    eq5.ge("insertTime", startDate).le("insertTime", endDate);
+                }
+                List<RedPackage> redPackages = redPackageService.selectList(eq5);
+                for (RedPackage redPackage : redPackages) {
+                    if (appUserService.getAppUser().getInsertTime().compareTo(redPackage.getInsertTime())>0){
+                        continue;
+                    }
+                    UserDetailVO userDetailVO = new UserDetailVO();
+                    userDetailVO.setAmount("+"+redPackage.getAmount());
+                    userDetailVO.setType("平台红包");
+                    userDetailVO.setInsertTime1(redPackage.getInsertTime());
+                    SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+                    String format1 = format.format(redPackage.getInsertTime());
+                    userDetailVO.setInsertTime(format1);
+                    detail.add(userDetailVO);
+                }
+            }
+            List<UserDetailVO> sortedList = detail.stream()
+                    .sorted(Comparator.comparing(UserDetailVO::getInsertTime1).reversed())
+                    .collect(Collectors.toList());
+            List<UserDetailVO> testing = testing(sortedList.size(), pageNum, pageSize, sortedList);
+            walletVO.setDetails(testing);
+            return ResultUtil.success(walletVO);
+        }
+    }
+    @ResponseBody
+    @PostMapping("/base/appUser/appleWalletCourse")
+    @ApiOperation(value = "苹果购课、购买套餐列表", tags = {"我的"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"),
+            @ApiImplicitParam(value = "年", name = "year", dataType = "int"),
+            @ApiImplicitParam(value = "月", name = "month", dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "pageSize", dataType = "int"),
+    })
+    public ResultUtil<WalletVO> appleWalletCourse(Integer year,Integer month,Integer pageNum,Integer pageSize) {
+        WalletVO walletVO = new WalletVO();
+        List<UserDetailVO> detail = new ArrayList<>();
+        AppUser appUser3 = appUserService.getAppUser();
+        if (appUser3 == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
+        Integer id = appUserService.getAppUser().getId();
+        BigDecimal balance = appUserService.getAppUser().getBalance();
+        walletVO.setBalance(balance);
+        Wrapper<Recharge> eq1 = new EntityWrapper<Recharge>()
+                .eq("userId", id)
+                .eq("state", 2);
+        // 如果传递了年份和月份,则添加时间条件
+        if (year != null && month != null) {
+            LocalDate startDate = LocalDate.of(year, month, 1);
+            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+            eq1.ge("insertTime", startDate).le("insertTime", endDate);
+        }
+        // 查询充值记录
+//        List<Recharge> recharges = rechargeService.selectList(eq1);
+//        for (Recharge recharge : recharges) {
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            userDetailVO.setAmount("+"+recharge.getAmount().toString());
+//            userDetailVO.setType("充值");
+//            userDetailVO.setInsertTime1(recharge.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(recharge.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+        // 查询购课记录 只查询钱包支付的
+        Wrapper<OrderCourse> eq2 = new EntityWrapper<OrderCourse>()
+                .eq("userId", id)
+//                .eq("payType", 3)
+                .eq("state", 2);
+        // 如果传递了年份和月份,则添加时间条件
+        if (year != null && month != null) {
+            LocalDate startDate = LocalDate.of(year, month, 1);
+            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+            eq2.ge("insertTime", startDate).le("insertTime", endDate);
+        }
+        List<OrderCourse> orderCourses = orderCourseService.selectList(eq2);
+        for (OrderCourse orderCours : orderCourses) {
+            UserDetailVO userDetailVO = new UserDetailVO();
+            userDetailVO.setAmount("-"+orderCours.getRealMoney());
+            userDetailVO.setType("购买课程");
+            userDetailVO.setInsertTime1(orderCours.getInsertTime());
+            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+            String format1 = format.format(orderCours.getInsertTime());
+            userDetailVO.setInsertTime(format1);
+            detail.add(userDetailVO);
+        }
+        Wrapper<Order> eq = new EntityWrapper<Order>()
+                .eq("userId", id)
+//                .eq("payType", 3)
+                .eq("state", 2);
+
+        // 如果传递了年份和月份,则添加时间条件
+        if (year != null && month != null) {
+            LocalDate startDate = LocalDate.of(year, month, 1);
+            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+            eq.ge("insertTime", startDate).le("insertTime", endDate);
+        }
+        List<Order> orders = orderService.selectList(eq);
+        // 查询购买套餐记录 只查询钱包支付的
+        for (Order order : orders) {
+            UserDetailVO userDetailVO = new UserDetailVO();
+            userDetailVO.setAmount("-"+order.getRealMoney());
+            userDetailVO.setType("购买套餐");
+            userDetailVO.setInsertTime1(order.getInsertTime());
+            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+            String format1 = format.format(order.getInsertTime());
+            userDetailVO.setInsertTime(format1);
+            detail.add(userDetailVO);
+        }
+        // 查询提现记录
+//        Wrapper<Withdrawal> eq3 = new EntityWrapper<Withdrawal>()
+//                .eq("userId", id);
+//        // 如果传递了年份和月份,则添加时间条件
+//        if (year != null && month != null) {
+//            LocalDate startDate = LocalDate.of(year, month, 1);
+//            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+//            eq3.ge("insertTime", startDate).le("insertTime", endDate);
+//        }
+//        List<Withdrawal> withdrawals = withdrawalService.selectList(eq3);
+//        for (Withdrawal withdrawal : withdrawals) {
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            switch (withdrawal.getState()){
+//                case 1:
+//                    userDetailVO.setAmount("-"+withdrawal.getAmount());
+//                    userDetailVO.setType("提现");
+//                    break;
+//                case 2:
+//                    userDetailVO.setAmount("-"+withdrawal.getAmount());
+//                    userDetailVO.setType("提现");
+//                    break;
+//                case 3:
+//                    userDetailVO.setAmount("+"+withdrawal.getAmount());
+//                    userDetailVO.setType("提现失败");
+//                    break;
+//            }
+//            userDetailVO.setInsertTime1(withdrawal.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(withdrawal.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+        // 查询是否有邀请过用户 获得消费奖励
+//        Wrapper<Invite> eq4 = new EntityWrapper<Invite>()
+//                .eq("giftUserId", id);
+//        // 如果传递了年份和月份,则添加时间条件
+//        if (year != null && month != null) {
+//            LocalDate startDate = LocalDate.of(year, month, 1);
+//            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+//            eq4.ge("insertTime", startDate).le("insertTime", endDate);
+//        }
+//        eq4.eq("type",1);
+//        List<Invite> giftUserId = inviteService.selectList(eq4);
+//        for (Invite invite : giftUserId) {
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            userDetailVO.setAmount("+"+invite.getAmount());
+//            AppUser appUser = appUserService.selectById(invite.getUserId());
+//            userDetailVO.setType("好友消费:("+appUser.getName()+"消费了"+invite.getConsume()+"元)");
+//            userDetailVO.setInsertTime1(invite.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(invite.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+        // 查询红包发放记录
+//        Wrapper<RedPackage> eq5 = new EntityWrapper<RedPackage>();
+//        if (year != null && month != null) {
+//            LocalDate startDate = LocalDate.of(year, month, 1);
+//            LocalDate endDate = startDate.plusMonths(1).minusDays(1);
+//            eq5.ge("insertTime", startDate).le("insertTime", endDate);
+//        }
+//        List<RedPackage> redPackages = redPackageService.selectList(eq5);
+//        for (RedPackage redPackage : redPackages) {
+//            if (appUserService.getAppUser().getInsertTime().compareTo(redPackage.getInsertTime())>0){
+//                continue;
+//            }
+//            UserDetailVO userDetailVO = new UserDetailVO();
+//            userDetailVO.setAmount("+"+redPackage.getAmount());
+//            userDetailVO.setType("平台红包");
+//            userDetailVO.setInsertTime1(redPackage.getInsertTime());
+//            SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
+//            String format1 = format.format(redPackage.getInsertTime());
+//            userDetailVO.setInsertTime(format1);
+//            detail.add(userDetailVO);
+//        }
+        List<UserDetailVO> sortedList = detail.stream()
+                .sorted(Comparator.comparing(UserDetailVO::getInsertTime1).reversed())
+                .collect(Collectors.toList());
+        List<UserDetailVO> testing = testing(sortedList.size(), pageNum, pageSize, sortedList);
+        walletVO.setDetails(testing);
+        return ResultUtil.success(walletVO);
+    }
     public static List<UserDetailVO> testing(long total, long current, long size, List<UserDetailVO> str){
         List<UserDetailVO> result = new ArrayList<>();
         //获取初始化分页结构
@@ -540,6 +1124,9 @@
     })
     public ResultUtil changeConstellation(String consName ) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         appUser.setConstellation(consName);
         appUserService.updateById(appUser);
         return ResultUtil.success();
@@ -585,6 +1172,9 @@
         int month = currentDate.getMonthValue();
         int day = currentDate.getDayOfMonth();
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         if (!StringUtils.hasLength(appUser.getConstellation())){
             // 根据月份和日期确定星座
             consName = getZodiacSign(month, day);
@@ -609,6 +1199,10 @@
             @ApiImplicitParam(value = "动态id", name = "findId", dataType = "int"),
     })
     public ResultUtil feedBack(Integer findId) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         Find find = findService.selectById(findId);
         find.setIsDelete(1);
         findService.updateById(find);
@@ -624,8 +1218,12 @@
             @ApiImplicitParam(value = "页条数", name = "pageSize", dataType = "int")
     })
     public ResultUtil<List<FindVO>> myFind(Integer pageNum,Integer pageSize) {
-        Integer id = appUserService.getAppUser().getId();
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
+        Integer id = appUserService.getAppUser().getId();
+
         List<String> strings = new ArrayList<>();
         strings.add("insertTime");
         List<Find> finds = findService.selectList(new EntityWrapper<Find>()
@@ -649,6 +1247,27 @@
         }
         List<FindVO> findVOS = testing3(res.size(), pageNum, pageSize, res);
         return ResultUtil.success(findVOS);
+    }
+    public static List<BlackListVO> testing4(long total, long current, long size, List<BlackListVO> str){
+        List<BlackListVO> result = new ArrayList<>();
+        //获取初始化分页结构
+        com.stylefeng.guns.modular.system.util.Page<BlackListVO> page = new Page().getPage(total, size, current - 1);
+        //获取集合下标初始值
+        long startIndex = page.getStartIndex();
+        //获取集合下标结束值
+        long endInddex = 0;
+        if(startIndex + page.getCurrent() >= total || size > total){
+            endInddex = total;
+        }else {
+            endInddex = Math.min(startIndex + page.getSize(), total);
+        }
+        //如果输入的开始查询下标大于集合大小,则查询为空值
+        if(startIndex > total){
+            result = Collections.emptyList();
+        }else{
+            result = str.subList((int)startIndex,(int)endInddex);
+        }
+        return result;
     }
     public static List<FindVO> testing3(long total, long current, long size, List<FindVO> str){
         List<FindVO> result = new ArrayList<>();
@@ -679,6 +1298,10 @@
             @ApiImplicitParam(name = "title", value = "标题"),
     })
     public ResultUtil<List<UseGuide>> useGuide(String title) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         EntityWrapper<UseGuide> wrapper = new EntityWrapper<>();
         List<String> strings = new ArrayList<>();
         strings.add("sort");
@@ -699,6 +1322,9 @@
     })
     public ResultUtil setUnit(Integer type) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         appUser.setUnit(type);
         appUserService.updateById(appUser);
         return ResultUtil.success("设置成功");
@@ -714,6 +1340,9 @@
     public ResultUtil setWeight(Integer type ,Double weight) {
         Double temp = 0.0;
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         switch (appUser.getUnit()){
             case 1:
                 temp = weight;
@@ -771,6 +1400,10 @@
             @ApiImplicitParam(name = "img", value = "图片地址,多张逗号隔开")
     })
     public ResultUtil feedBack(String content,String img) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         AuditVO content1 = auditUtil.content(content);
         switch (content1.getType()){
             case "terrorism":
@@ -805,6 +1438,9 @@
     public ResultUtil<UserInfoVO> userInfo() {
         UserInfoVO userInfoVO = new UserInfoVO();
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         userInfoVO.setConstellation(appUser.getConstellation());
         BeanUtils.copyProperties(appUser,userInfoVO);
         if (appUser.getConstellation() == null){
@@ -1033,12 +1669,7 @@
         return temp;
     }
 
-    public static void main(String[] args) {
-        UserInfoVO userInfoVO = new UserInfoVO();
 
-        BMIVO bmi = getBMI(userInfoVO, 160, 2, 58D);
-        System.err.println(bmi);
-    }
     private static BMIVO getBMI(UserInfoVO userInfoVO, Integer height,Integer gender, Double temp) {
         String url = "http://apis.juhe.cn/fapig/calculator/weight";
         Map<String, String> params = new HashMap<String, String>();
@@ -1111,8 +1742,14 @@
         }
         return null;
     }
+    public static void main(String[] args) {
+        UserInfoVO userInfoVO = new UserInfoVO();
+        String index = getIndex(80, 1, 3d, 3L);
+        System.err.println(index);
+
+    }
     // 获取健康指数
-    private String getIndex(Integer height,Integer gender, Double temp,Long age) {
+    private static String getIndex(Integer height,Integer gender, Double temp,Long age) {
         String url = "http://apis.juhe.cn/fapig/healthy/bmr";
         Map<String, String> params = new HashMap<String, String>();
         params.put("key", "c28bcb61589b8943ea35887e4fd35afe"); // 在个人中心->我的数据,接口名称上方查看
@@ -1388,6 +2025,10 @@
     })
     public ResultUtil<List<CourseList>> collectCourse(CourseQuery req) {
         req.setPageNum((req.getPageNum() - 1) * req.getPageSize());
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         Integer id = appUserService.getAppUser().getId();
         // 查询用户已收藏的课程ids
         List<Integer> courseIds = collectService.selectList(new EntityWrapper<UserCollect>()
@@ -1397,6 +2038,17 @@
             courseIds.add(-1);
         }
         req.setCourseIds(courseIds);
+        List<String> strings = new ArrayList<>();
+        if (req.getPositionName1()!=null){
+            String positionName1 = req.getPositionName1();
+            if (!positionName1.equals("全部")){
+                strings.add(req.getPositionName1());
+                req.setPositionName(strings);
+            }else{
+                req.setPositionName(new ArrayList<String>());
+            }
+        }
+
         // 查询出收藏的课程 并且将免费的展示在最前面
         List<CourseList> res = courseService.courseSearch(req);
         for (CourseList re : res) {
@@ -1433,6 +2085,10 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header")
     })
     public ResultUtil updateUserInfo(UpdateAppUserDTO dto) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         if(StringUtils.hasLength(dto.getHeadImg())){
             AuditVO image = auditUtil.image(dto.getHeadImg());
             switch (image.getType()){
@@ -1475,7 +2131,7 @@
             }
         }
 
-        AppUser appUser = appUserService.getAppUser();
+
         // 根据当前用户所选择的单位 将weight置换成公斤存储
         if (dto.getWeight()!=null){
             // 本次体重
@@ -1532,6 +2188,9 @@
     public ResultUtil<UserInfoVO> getUserInfo() {
 
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         UserInfoVO userInfoVO = new UserInfoVO();
         BeanUtils.copyProperties(appUser,userInfoVO);
         if (appUser.getHeight()!=null && appUser.getGender()!=null &&appUser.getWeight()!=null ){
@@ -1541,6 +2200,7 @@
             System.err.println(appUser.getWeight());
             BMIVO bmi = getBMI(userInfoVO,appUser.getHeight(),appUser.getGender(),appUser.getWeight());
             userInfoVO.setBMI(bmi.getBmi());
+            userInfoVO.setBMIInfo(bmi.getMsg());
         }else{
             userInfoVO.setBMI("0");
         }
@@ -1602,6 +2262,10 @@
             @ApiImplicitParam(name = "code", value = "邀请码"),
     })
     public ResultUtil updatePhone(String phone, String code) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         // 原手机号码
         String phone1 = appUserService.getAppUser().getPhone();
         // 判断手机验证码是否匹配
@@ -1631,7 +2295,7 @@
         if (appUsers.size()>0){
             return ResultUtil.error("该手机号已注册");
         }
-        AppUser appUser = appUserService.getAppUser();
+
         appUser.setPhone(phone);
         appUser.setAccount(phone);
         appUserService.updateById(appUser);
@@ -1647,6 +2311,9 @@
     })
     public ResultUtil deleteAppUser( ) {
         AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         appUser.setState(3);
         appUserService.updateById(appUser);
         // 清除token
@@ -1662,6 +2329,10 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header")
     })
     public ResultUtil setAddress(Recipient dto) {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         Integer id = appUserService.getAppUser().getId();
         Recipient userId = recipientService.selectOne(new EntityWrapper<Recipient>()
                 .eq("userId", id));
@@ -1684,6 +2355,10 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header")
     })
     public ResultUtil<Recipient> getAddress() {
+        AppUser appUser = appUserService.getAppUser();
+        if (appUser == null){
+            return ResultUtil.tokenErr("登录失效");
+        }
         Integer id = appUserService.getAppUser().getId();
         Recipient userId = recipientService.selectOne(new EntityWrapper<Recipient>()
                 .eq("userId", id));

--
Gitblit v1.7.1