From c3d5fb8eab40b2257df4d6d5384a23cf12032446 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 17 八月 2024 13:59:13 +0800 Subject: [PATCH] 微信小程序登录,获取用户信息 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 101 insertions(+), 4 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java index 388669f..217799e 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java @@ -1,15 +1,27 @@ package com.ruoyi.account.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.account.api.dto.*; import com.ruoyi.account.api.model.*; +import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.account.service.*; +import com.ruoyi.account.wx.body.resp.Code2SessionRespBody; +import com.ruoyi.account.wx.body.resq.Code2SessionResqBody; +import com.ruoyi.account.wx.model.WeixinProperties; +import com.ruoyi.account.wx.tools.WxAppletTools; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BasePojo; +import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.feignClient.ChargingOrderClient; import com.ruoyi.order.api.feignClient.ExchangeOrderClient; import com.ruoyi.order.api.model.TChargingOrder; @@ -17,18 +29,20 @@ import com.ruoyi.other.api.domain.TCompany; import com.ruoyi.other.api.domain.TUserTag; import com.ruoyi.other.api.feignClient.OtherClient; +import com.ruoyi.system.api.domain.SysRole; +import com.ruoyi.system.api.model.LoginUserApplet; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; import javax.annotation.Resource; import java.time.Duration; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -39,6 +53,7 @@ * @author luodangjia * @since 2024-08-06 */ +@Slf4j @RestController @RequestMapping("/t-app-user") public class TAppUserController { @@ -63,6 +78,12 @@ @Resource private ExchangeOrderClient exchangeOrderClient; + + @ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"}) + @PostMapping(value = "/user/getUserIdsByPhone") + public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone) { + return R.ok(appUserService.list(new QueryWrapper<TAppUser>().like("phone",phone)).stream().map(TAppUser::getId).collect(Collectors.toList())); + } @ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"}) @PostMapping(value = "/unit/page") public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) { @@ -135,7 +156,48 @@ return R.ok(page); } + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券发放-选择人员") + @PostMapping("/choiceUser") + public R<Page<TAppUser>> choiceUser(@RequestBody ChoiceUserListQueryDto userListQueryDto) { + List<Long> userIds = new ArrayList<>(); + //如果要筛选标签。用标签获取useids + if (userListQueryDto.getUserTagId() != null){ + String[] split = userListQueryDto.getUserTagId().split(","); + userIds = appUserTagService.lambdaQuery().in(TAppUserTag::getUserTagId, Arrays.asList(split)).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); + } + //列表查询 + Page<TAppUser> page = appUserService.lambdaQuery() + .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone()) + .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode()) + .eq(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode()) + .in(!userIds.isEmpty(),TAppUser::getId,userIds) + .eq(TAppUser::getStatus,1) + .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize())); + if (page.getRecords().isEmpty()){ + return R.ok(page); + } + List<Integer> vipIds = new ArrayList<>(); + vipIds = page.getRecords().stream().map(TAppUser::getVipId).collect(Collectors.toList()); + //获取会员map + R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds); + //循环处理 + for (TAppUser appUser : page.getRecords()) { + //拿到最新的tagId + TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); + //设置最新的tagName + R<TUserTag> byIdTag = otherClient.getByIdTag(one.getUserTagId()); + if (byIdTag.getData()!=null) { + appUser.setTagName(byIdTag.getData().getName()); + } + //匹配vipMap的值 + appUser.setVipName(vipMap.getData().get(appUser.getVipId())); + //累计充电次数 + R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId()); + appUser.setOrderCount(useOrderCount.getData()); + } + return R.ok(page); + } @ApiOperation(value = "用户添加编辑", tags = {"用户管理-用户列表"}) @@ -284,5 +346,40 @@ return R.ok(); } + + /** + * 根据用户id查询用户信息 + * @param appUserIds 用户id + * @return + */ + @PostMapping(value = "/user/getUserByIds") + public R<List<TAppUser>> getUserByIds(@RequestBody List<Long> appUserIds){ + return R.ok(appUserService.list(Wrappers.<TAppUser>lambdaQuery().in(TAppUser::getId,appUserIds))); + } + + + /** + * 根据用户id获取用户 + * @param id + * @return + */ + @PostMapping(value = "/user/getUserById/{id}") + public R<TAppUser> getUserById(@PathVariable Long id){ + TAppUser appUser = appUserService.getById(id); + return R.ok(appUser); + } + + + /** + * 修改用户信息 + * @param appUser + * @return + */ + @ResponseBody + @PostMapping("/user/updateAppUser") + public R updateAppUser(@RequestBody TAppUser appUser){ + appUserService.updateById(appUser); + return R.ok(); + } } -- Gitblit v1.7.1