From 19251fb5596415bfa83c51b8ed130ecbb31644ce Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期一, 09 十月 2023 18:31:30 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 176 insertions(+), 4 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index 260bd03..384d2d1 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -1,8 +1,10 @@
 package com.dsh.account.controller;
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.dsh.account.dto.SelectDto;
+import com.dsh.account.dto.UserInfoQueryDTO;
 import com.dsh.account.entity.Coach;
 import com.dsh.account.entity.TAppUser;
 import com.dsh.account.entity.TCourseInfoRecord;
@@ -12,19 +14,25 @@
 import com.dsh.account.service.IVipPaymentService;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.service.TCourseInfoRecordService;
-import com.dsh.account.util.PayMoneyUtil;
-import com.dsh.account.util.ResultUtil;
-import com.dsh.account.util.TokenUtil;
-import com.dsh.account.util.ToolUtil;
+import com.dsh.account.util.*;
+import com.dsh.account.vo.GroupCityInfoVO;
+import com.dsh.account.vo.UserInfoQueryVO;
+import com.dsh.account.vo.entity.DayData;
+import com.dsh.account.vo.entity.MonthData;
+import com.dsh.account.vo.entity.WeekData;
+import com.dsh.account.vo.entity.YearData;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.*;
 import java.util.List;
 
@@ -50,6 +58,9 @@
 
     @Autowired
     private TCourseInfoRecordService courseInfoRecordService;
+
+    @Autowired
+    private RedisUtil redisUtil;
 
     /**
      * 获取所有用户
@@ -208,6 +219,27 @@
     public ResultUtil<String> loginWeChat(LoginWeChatVo loginWeChatVo){
         try {
             return appUserService.loginWechat(loginWeChatVo);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+    @ResponseBody
+    @PostMapping("/base/appUser/bind")
+    @ApiOperation(value = "微信登录--绑定手机号", tags = {"APP-登录注册"})
+    @ApiImplicitParams({
+    })
+    public ResultUtil<String> bind(String phone,String openId,String code){
+        try {
+            String value = redisUtil.getValue(phone);
+            if(!code.equals(value)){
+                return ResultUtil.error("验证码无效", "");
+            }
+            List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, openId));
+            TAppUser tAppUser = list.get(0);
+            tAppUser.setPhone(phone);
+            appUserService.updateById(tAppUser);
+            return ResultUtil.success();
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
@@ -479,4 +511,144 @@
         System.out.println("=======selectDtos======>"+selectDtos);
         return selectDtos;
     }
+
+
+    @PostMapping("/appUser/userInfo")
+    public UserInfoQueryVO userInfo(@RequestBody UserInfoQueryDTO dto){
+
+        UserInfoQueryVO userInfoQueryVO = new UserInfoQueryVO();
+
+        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
+
+        if(StringUtils.hasLength(dto.getCityCode())){
+            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
+        }
+
+        if(Objects.nonNull(dto.getOperatorId())){
+            wrapper.eq(TAppUser::getInsertType,2);
+            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
+        }
+
+        if(Objects.nonNull(dto.getStoreId())){
+            wrapper.eq(TAppUser::getInsertType,3);
+            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
+        }
+
+        // 查询会员总数,年度会员总数
+        int userCount = appUserService.count(wrapper);
+        int userVipCount = appUserService.count(wrapper.eq(TAppUser::getIsVip,1));
+
+        userInfoQueryVO.setUserCount(userCount);
+        userInfoQueryVO.setUserVipCount(userVipCount);
+
+        if(Objects.nonNull(dto.getIsVip())){
+            wrapper.eq(TAppUser::getIsVip,dto.getIsVip());
+        }
+
+        // 年度数据
+        List<YearData> yearData = appUserService.getYearUserCount(dto);
+        userInfoQueryVO.setYearData(yearData);
+        // 月度数据
+        List<MonthData> monthData = appUserService.getMonthUserCount(dto);
+        userInfoQueryVO.setMonthData(monthData);
+
+        // 获取最近四周
+        LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+        LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+        // 周度数据
+        dto.setStartTime(minNow.minusDays(6).toString());
+        dto.setEndTime(maxNow.toString());
+        WeekData week4 = appUserService.getWeekUserCount4(dto);
+        dto.setStartTime(minNow.minusDays(13).toString());
+        dto.setEndTime(maxNow.minusDays(6).toString());
+        WeekData week3 = appUserService.getWeekUserCount3(dto);
+        dto.setStartTime(minNow.minusDays(20).toString());
+        dto.setEndTime(maxNow.minusDays(13).toString());
+        WeekData week2 = appUserService.getWeekUserCount2(dto);
+        dto.setStartTime(minNow.minusDays(27).toString());
+        dto.setEndTime(maxNow.minusDays(20).toString());
+        WeekData week1 = appUserService.getWeekUserCount1(dto);
+
+        List<WeekData> weekDataList = new ArrayList<>();
+        weekDataList.add(week1);
+        weekDataList.add(week2);
+        weekDataList.add(week3);
+        weekDataList.add(week4);
+        userInfoQueryVO.setWeekData(weekDataList);
+
+        // 日度数据
+        dto.setStartTime(minNow.minusDays(6).toString());
+        dto.setEndTime(maxNow.toString());
+        List<DayData> dayData = appUserService.getDayUserCount(dto);
+        userInfoQueryVO.setDayData(dayData);
+        return userInfoQueryVO;
+    }
+
+    @PostMapping("/appUser/ageInfo")
+    public Map<String,Long> ageInfo(@RequestBody UserInfoQueryDTO dto){
+
+        Map<String,Long> map = new HashMap<>();
+
+        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
+
+        if(StringUtils.hasLength(dto.getCityCode())){
+            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
+        }
+
+        if(Objects.nonNull(dto.getOperatorId())){
+            wrapper.eq(TAppUser::getInsertType,2);
+            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
+        }
+
+        if(Objects.nonNull(dto.getStoreId())){
+            wrapper.eq(TAppUser::getInsertType,3);
+            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
+        }
+
+        List<TAppUser> list = appUserService.list(wrapper);
+        // 查询会员
+        list.forEach(tAppUser->tAppUser.setAge(DateUtil.ageOfNow(tAppUser.getBirthday())));
+
+        map.put("age1", list.stream().filter(e -> e.getAge() > 0 && e.getAge() <= 12).count());
+        map.put("age2",list.stream().filter(e -> e.getAge() >= 13 && e.getAge() <= 18).count());
+        map.put("age3",list.stream().filter(e -> e.getAge() >= 19 && e.getAge() <= 25).count());
+        map.put("age4",list.stream().filter(e -> e.getAge() >= 26 && e.getAge() <= 35).count());
+        map.put("age5",list.stream().filter(e -> e.getAge() >= 36 && e.getAge() <= 50).count());
+        map.put("age6",list.stream().filter(e -> e.getAge() >= 51).count());
+        return map;
+    }
+
+    @PostMapping("/appUser/sexInfo")
+    public Map<String,Integer> sexInfo(@RequestBody UserInfoQueryDTO dto){
+
+        Map<String,Integer> map = new HashMap<>(2);
+        LambdaQueryWrapper<TAppUser> wrapper = new LambdaQueryWrapper<>();
+
+        if(StringUtils.hasLength(dto.getCityCode())){
+            wrapper.eq(TAppUser::getCityCode,dto.getCityCode());
+        }
+
+        if(Objects.nonNull(dto.getOperatorId())){
+            wrapper.eq(TAppUser::getInsertType,2);
+            wrapper.eq(TAppUser::getAddUserId,dto.getOperatorId());
+        }
+
+        if(Objects.nonNull(dto.getStoreId())){
+            wrapper.eq(TAppUser::getInsertType,3);
+            wrapper.eq(TAppUser::getAddUserId,dto.getStoreId());
+        }
+
+        // 查询会员
+        int boyCount = appUserService.count(wrapper.eq(TAppUser::getGender,1));
+        int girlCount = appUserService.count(wrapper.eq(TAppUser::getGender,2));
+        map.put("boyCount",boyCount);
+        map.put("girlCount",girlCount);
+        return map;
+    }
+
+    @PostMapping("/appUser/groupCityInfo")
+    public List<GroupCityInfoVO> groupCityInfo(@RequestBody UserInfoQueryDTO dto){
+        // 查询地区会员
+        return appUserService.groupCityInfo(dto);
+    }
 }

--
Gitblit v1.7.1