From 6284342349538cf3796828dce1935e001e539ea5 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期四, 22 八月 2024 14:34:32 +0800
Subject: [PATCH] 登录修改
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 578 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 548 insertions(+), 30 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 06b8120..a3e6011 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,39 +1,55 @@
package com.ruoyi.account.controller;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.account.api.dto.UnitListQueryDto;
-import com.ruoyi.account.api.dto.UserDetailDto;
-import com.ruoyi.account.api.dto.UserListQueryDto;
-import com.ruoyi.account.api.model.TAppUser;
-import com.ruoyi.account.api.model.TAppUserCar;
-import com.ruoyi.account.api.model.TAppUserTag;
-import com.ruoyi.account.api.model.TAppUserVipDetail;
-import com.ruoyi.account.service.TAppUserCarService;
-import com.ruoyi.account.service.TAppUserService;
-import com.ruoyi.account.service.TAppUserTagService;
-import com.ruoyi.account.service.TAppUserVipDetailService;
+import com.ruoyi.account.api.dto.*;
+import com.ruoyi.account.api.model.*;
+import com.ruoyi.account.service.*;
+import com.ruoyi.account.util.PointDetailUtil;
+import com.ruoyi.account.util.SignDayUtil;
+import com.ruoyi.account.wx.model.WeixinProperties;
+import com.ruoyi.account.util.GiveVipUtil;
+import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.enums.status.AppUserStatusEnum;
+import com.ruoyi.common.core.utils.JwtUtils;
+import com.ruoyi.common.core.utils.StringUtils;
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.security.annotation.RequiresPermissions;
+import com.ruoyi.common.redis.service.RedisService;
+import com.ruoyi.common.security.auth.AuthUtil;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.order.api.feignClient.ExchangeOrderClient;
+import com.ruoyi.order.api.model.TChargingOrder;
+import com.ruoyi.order.api.model.TExchangeOrder;
+import com.ruoyi.other.api.dto.UnitListQueryDto;
import com.ruoyi.other.api.domain.TCompany;
+import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.domain.TUserTag;
+import com.ruoyi.other.api.feignClient.IntegralRuleClient;
import com.ruoyi.other.api.feignClient.OtherClient;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
+import com.ruoyi.system.api.model.LoginUserApplet;
import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
import java.time.Duration;
+import java.time.LocalDate;
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;
/**
@@ -44,6 +60,7 @@
* @author luodangjia
* @since 2024-08-06
*/
+@Slf4j
@RestController
@RequestMapping("/t-app-user")
public class TAppUserController {
@@ -63,6 +80,56 @@
@Resource
private TAppUserCarService appUserCarService;
+ @Resource
+ private TAppUserIntegralChangeService integralChangeService;
+ @Resource
+ private SignDayUtil signDayUtil;
+
+ @Resource
+ private ExchangeOrderClient exchangeOrderClient;
+ @Autowired
+ private TokenService tokenService;
+ @Autowired
+ private RedisService redisService;
+ @Autowired
+ private WeixinProperties wxConfig;
+ @Autowired
+ private RestTemplate wxRestTemplate;
+ @Resource
+ private PointDetailUtil pointDetailUtil;
+
+ @Resource
+ private TAppUserSignService signService;
+ @Resource
+ private TAppCouponService appCouponService;
+ @Resource
+ private TAppUserCarService carService;
+ @Resource
+ private IntegralRuleClient integralRuleClient;
+
+
+
+
+ @ApiOperation(value = "查询当前用户是否为会员 0否1是", tags = {"小程序--查询当前用户是否为会员"})
+ @PostMapping(value = "/getUserInfo")
+ public AjaxResult<Integer> getUserInfo() {
+ TAppUser byId = appUserService.getById(tokenService.getLoginUserApplet().getUserId());
+ if (byId.getVipEndTime() == null){
+ return AjaxResult.ok(0);
+ }else if (byId.getVipEndTime().isAfter(LocalDateTime.now())){
+ return AjaxResult.ok(1);
+ }else{
+ return AjaxResult.ok(0);
+ }
+ }
+
+ @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()));
+ }
+ @Resource
+ private GiveVipUtil giveVipUtil;
@ApiOperation(value = "单位管理列表", tags = {"用户管理-单位管理"})
@PostMapping(value = "/unit/page")
public R<Page<TCompany>> unitPage(@RequestBody UnitListQueryDto unitListQueryDto) {
@@ -76,6 +143,20 @@
return R.ok(data);
}
+
+ @ApiOperation(value = "单位下拉框", tags = {"用户管理-单位管理"})
+ @GetMapping(value = "/unit/select")
+ public R<List<TCompany>> unitSelect() {
+ UnitListQueryDto unitListQueryDto = new UnitListQueryDto();
+ unitListQueryDto.setPageCurr(1);
+ unitListQueryDto.setPageSize(9999);
+ //拿到单位列表
+ R<Page<TCompany>> pageR = otherClient.queryUnitPage(unitListQueryDto);
+
+ return R.ok(pageR.getData().getRecords());
+ }
+
+
@ApiOperation(value = "单位管理添加或编辑", tags = {"用户管理-单位管理"})
@PostMapping(value = "/unit/addOrUpdate")
public R add(@RequestBody TCompany tCompany) {
@@ -83,10 +164,17 @@
otherClient.unitAddorUpadate(tCompany);
return R.ok();
}
+
+
+
+
@ApiOperation(value = "单位管理删除", tags = {"用户管理-单位管理"})
- @PostMapping(value = "/unit/delete/{id}")
- public R add(@PathVariable Integer id) {
- otherClient.unitDelete(id);
+ @DeleteMapping(value = "/unit/delete")
+ public R add(@RequestParam String ids) {
+ String[] split = ids.split(",");
+ for (String s : split) {
+ otherClient.unitDelete(Integer.valueOf(s));
+ }
return R.ok();
}
@@ -109,7 +197,6 @@
.eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId())
.in(!userIds.isEmpty(),TAppUser::getId,userIds)
.page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize()));
-
if (page.getRecords().isEmpty()){
return R.ok(page);
}
@@ -121,18 +208,121 @@
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());
+ if (one!=null) {
+ //设置最新的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());
+ appUser.setUid(appUser.getId().toString());
+
}
return R.ok(page);
}
+ @ApiOperation(value = "会员列表", tags = {"用户管理-会员列表"})
+ @PostMapping(value = "/user/vip/page")
+ public R<Page<TAppUser>> vipPage(@RequestBody UserListQueryDto userListQueryDto) {
+ List<Long> userIds = new ArrayList<>();
+ //如果要筛选标签。用标签获取useids
+ if (userListQueryDto.getUserTagId() != null){
+ userIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, userListQueryDto.getUserTagId()).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList());
+ }
+ //列表查询
+ Page<TAppUser> page = appUserService.lambdaQuery()
+ .ge(TAppUser::getVipEndTime, LocalDateTime.now())
+ .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone())
+ .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId())
+ .eq(userListQueryDto.getCityCode() != null && !"".equals(userListQueryDto.getCityCode()), TAppUser::getCityCode, userListQueryDto.getCityCode())
+ .eq(userListQueryDto.getStatus() != null, TAppUser::getStatus, userListQueryDto.getStatus())
+ .eq(userListQueryDto.getVipTypeId() != null, TAppUser::getVipId, userListQueryDto.getVipTypeId())
+ .ge(userListQueryDto.getVipEndTime1() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime1() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime1()))
+ .le(userListQueryDto.getVipEndTime2() != null, TAppUser::getVipEndTime, userListQueryDto.getVipEndTime2() == null ? null : LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime2()))
+ .in(!userIds.isEmpty(), TAppUser::getId, userIds)
+ .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
+ if (one!=null) {
+ 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());
+ appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays());
+ appUser.setUid(appUser.getId().toString());
+ }
+ 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());
+ if (userIds.isEmpty()){
+ userIds.add(-1L);
+ }
+ }
+ //列表查询
+ 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
+ if (one!=null){
+ 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 = {"用户管理-用户列表"})
@@ -177,7 +367,7 @@
}
@ApiOperation(value = "用户详情", tags = {"用户管理-用户列表"})
- @PostMapping(value = "/user/detail/{id}")
+ @GetMapping(value = "/user/detail/{id}")
public R<UserDetailDto> userDetail(@PathVariable Long id) {
TAppUser user = appUserService.getById(id);
UserDetailDto userDetailDto = new UserDetailDto();
@@ -198,8 +388,336 @@
List<Integer> tagIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, id).orderByDesc(TAppUserTag::getCreateTime).list().stream().map(TAppUserTag::getUserTagId).collect(Collectors.toList());
R<Map<Integer, String>> tagMap = otherClient.getTagMap(tagIds);
- userDetailDto.setTagName(tagMap.getData().values().toString());
+ userDetailDto.setTagName(tagMap.getData().values()
+ .stream()
+ .collect(Collectors.joining(",")));
return R.ok(userDetailDto);
}
+
+ @ApiOperation(value = "用户详情积分明细", tags = {"后台-用户管理-用户列表","小程序-个人中心"})
+ @PostMapping(value = "/user/points/page")
+ public R<Page<TAppUserIntegralChange>> pointsDetail(@RequestBody PointsQueryDto pointsQueryDto) {
+ List<Integer> types = new ArrayList<>();
+ if (pointsQueryDto.getType()!=null){
+ types.add(1);
+ types.add(2);
+ types.add(3);
+ types.add(4);
+ types.add(5);
+ }
+ Page<TAppUserIntegralChange> page = integralChangeService.lambdaQuery()
+ .eq(TAppUserIntegralChange::getAppUserId, pointsQueryDto.getUserId())
+ .orderByDesc(TAppUserIntegralChange::getCreateTime)
+ .eq(pointsQueryDto.getChangeType() != null, TAppUserIntegralChange::getChangeType, pointsQueryDto.getChangeType())
+ .in(!types.isEmpty(), TAppUserIntegralChange::getChangeType, types).page(Page.of(pointsQueryDto.getPageCurr(), pointsQueryDto.getPageSize()));
+
+ for (TAppUserIntegralChange record : page.getRecords()) {
+ if (record.getChangeType()==2){
+ R<TChargingOrder> tChargingOrderR = chargingOrderClient.orderDetail(Long.valueOf(record.getExtension()));
+ if (tChargingOrderR.getData()!=null) {
+ record.setOrderNum(tChargingOrderR.getData().getCode());
+ }
+ }
+ if (record.getChangeType()==6){
+ R<TExchangeOrder> tExchangeOrderR = exchangeOrderClient.orderDetail(Long.valueOf(record.getExtension()));
+ if (tExchangeOrderR.getData()!=null){
+ record.setOrderNum(tExchangeOrderR.getData().getCode());
+ }
+ }
+ }
+
+ return R.ok(page);
+
+ }
+
+ @ApiOperation(value = "冻结解冻用户", tags = {"后台-用户管理-用户列表"})
+ @PostMapping(value = "/user/status/change")
+ public R pointsDetail(@RequestBody UserChangeDto userChangeDto) {
+ TAppUser appUser = appUserService.getById(userChangeDto.getUserId());
+ appUser.setStatus(userChangeDto.getStatus());
+ appUserService.updateById(appUser);
+ return R.ok();
+ }
+
+ @ApiOperation(value = "修改单位", tags = {"后台-用户管理-用户列表"})
+ @PostMapping(value = "/user/unit/change")
+ public R unitChange(@RequestBody UnitChangeDto unitChangeDto) {
+ for (String s : unitChangeDto.getIds().split(",")) {
+ TAppUser byId = appUserService.getById(s);
+ byId.setCompanyId(unitChangeDto.getUnitId());
+ appUserService.updateById(byId);
+ }
+ return R.ok();
+ }
+
+ @ApiOperation(value = "删除用户", tags = {"后台-用户管理-用户列表"})
+ @DeleteMapping(value = "/user/delete")
+ public R userDelete(String ids) {
+ String[] split = ids.split(",");
+ for (String s : split) {
+ appUserService.removeById(s);
+ }
+ return R.ok();
+
+ }
+
+ @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"})
+ @PostMapping(value = "/user/info")
+ public R<AppUserInfoDto> info() {
+ Long userId = 1L;
+ TAppUser byId = appUserService.getById(userId);
+ AppUserInfoDto appUserInfoDto = new AppUserInfoDto();
+
+ //判断会员
+ if (byId.getVipEndTime()==null||byId.getVipEndTime().isBefore(LocalDateTime.now())){
+ appUserInfoDto.setIsVip(0);
+ }else {
+ appUserInfoDto.setIsVip(1);
+ appUserInfoDto.setVipExpireTime(byId.getVipEndTime());
+ }
+ //判断当天是否签到
+ Long count = signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).count();
+ appUserInfoDto.setIsSign(count>0?1:0);
+ //获取当前拥有的优惠卷数量
+ Long coupons = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).eq(TAppCoupon::getStatus, 1).count();
+ appUserInfoDto.setCouponNum(Math.toIntExact(coupons));
+ //当前绑定的车辆
+ List<TAppUserCar> list = carService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).list();
+ appUserInfoDto.setUserCars(list);
+ return R.ok(appUserInfoDto);
+
+
+ }
+
+ @ApiOperation(value = "优惠卷列表不分页(1可使用2不可用)", tags = {"小程序-个人中心"})
+ @PostMapping(value = "/user/coupon")
+ public R<List<InfoCouponDto>> userCoupon(@RequestParam("type") Integer type) {
+ LocalDateTime now = LocalDateTime.now();
+
+ List<InfoCouponDto> couponDtos = new ArrayList<>();
+ List<TAppCoupon> list = appCouponService.lambdaQuery().le(TAppCoupon::getStartTime, now).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, type).list();
+ for (TAppCoupon tAppCoupon : list) {
+ TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class);
+ InfoCouponDto infoCouponDto = new InfoCouponDto();
+ BeanUtils.copyProperties(coupon,infoCouponDto);
+ couponDtos.add(infoCouponDto);
+
+ }
+
+
+ return R.ok(couponDtos);
+
+
+ }
+
+
+
+ @ApiOperation(value = "赠送会员", tags = {"用户管理-用户列表"})
+ @PostMapping(value = "/user/give/vip")
+ public R giveVip(@RequestBody GiveVipDto giveVipDto) {
+ String[] split = giveVipDto.getUserIds().split(",");
+ for (String s : split) {
+
+
+ TAppUser nowUser = appUserService.getById(s);
+
+ int plusDay = 0;
+ if (giveVipDto.getType() == 1) {
+ plusDay = 1;
+ } else if (giveVipDto.getType() == 2) {
+ plusDay = 3;
+ } else if (giveVipDto.getType() == 3) {
+ plusDay = 12;
+ }
+ //增加vipDetail
+ giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay);
+
+
+ appUserService.updateById(nowUser);
+ //执行一次赠送优惠卷的定时任务
+ }
+ return R.ok();
+ }
+
+ @ApiOperation(value = "更换手机号", tags = {"小程序-用户管理-更换手机号"})
+ @PostMapping(value = "/user/updatePhone")
+ public AjaxResult<String> updatePhone(@Validated @RequestBody UpdatePhoneDTO dto) {
+ String code = redisService.getCacheObject(dto.getPhone() + Constants.APPLET);
+ if(StringUtils.isEmpty(code)){
+ return AjaxResult.error("验证码已过期,请重新获取验证码!");
+ }
+ if(!code.equals(dto.getCode())){
+ return AjaxResult.error("验证码错误!");
+ }
+ // 获取当前用户信息
+ Long userId = tokenService.getLoginUserApplet().getUserId();
+ TAppUser appUser = appUserService.getById(userId);
+ appUser.setPhone(dto.getPhone());
+ appUserService.updateById(appUser);
+ return AjaxResult.success();
+ }
+
+ @ApiOperation(value = "注销接口", tags = {"小程序-用户管理-注销账号"})
+ @DeleteMapping("/logoff")
+ public AjaxResult<?> logoff(HttpServletRequest request) {
+ String token = SecurityUtils.getToken(request);
+ if (StringUtils.isNotEmpty(token))
+ {
+ String userId = JwtUtils.getUserId(token);
+ // 账号注销
+ appUserService.update(Wrappers.<TAppUser>lambdaUpdate().set(TAppUser::getStatus, AppUserStatusEnum.LOGOFF.getCode()).eq(TAppUser::getId, userId));
+ // 删除用户缓存记录
+ AuthUtil.logoutByToken(token);
+ }
+ return AjaxResult.success();
+ }
+
+ /**
+ * 根据用户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();
+ }
+
+ /**
+ * 通过手机号查询用户
+ * @param phone
+ * @return
+ */
+ @GetMapping("/user/selectByPhone")
+ public R<TAppUser> selectByPhone(@RequestParam("phone") String phone){
+ return R.ok(appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class)
+ .eq(TAppUser::getPhone,phone)
+ .last("LIMIT 1")));
+ }
+
+ @ApiOperation(value = "签到", tags = {"小程序-个人中心-签到"})
+ @PostMapping(value = "/user/sign")
+ public R sign() {
+ LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
+ Long userId = loginUserApplet.getUserId();
+
+ TAppUser byId = appUserService.getById(userId);
+
+
+ if (signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).eq(TAppUserSign::getAppUserId, userId).count()>0){
+ return R.fail("今日已签到");
+ }
+ //签到业务
+ TAppUserSign appUserSign = new TAppUserSign();
+ appUserSign.setSignDay(LocalDate.now());
+ appUserSign.setRewardPoints(2);
+ appUserSign.setCreateTime(LocalDateTime.now());
+ appUserSign.setAppUserId(userId);
+ signService.save(appUserSign);
+ //签到加积分记录
+ R<TIntegralRule> set = integralRuleClient.getSet();
+ TIntegralRule data = set.getData();
+ JSONObject jsonObject = JSON.parseObject(data.getAddVehiclesEarnsPoints());
+ //增加每日积分
+ Integer points = 0;
+ Integer point = jsonObject.getInteger("num1");
+ points= points+point;
+ JSONArray num2 = jsonObject.getJSONArray("num2");
+ if (num2!=null) {
+ //获取连续签到的规则放入map
+ Map<Integer,Integer> map = new HashMap<>();
+ for (Object o : num2) {
+ String o1 = (String) o;
+ String[] split = o1.split(",");
+ map.put(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
+ }
+ //加上今日签到,计算连续了多少天,如果到达就增加奖励的分数
+ int days = signDayUtil.calculateContinuousSignDays(userId);
+ Integer i = map.get(days);
+ if (i!=null){
+ points= points+i;
+ appUserSign.setIsGift(1);
+ signService.updateById(appUserSign);
+ }
+ }
+ pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points,1,userId,"每日签到","");
+ byId.setPoints(byId.getPoints()+points);
+ appUserService.updateById(byId);
+ return R.ok();
+ }
+
+
+ @ApiOperation(value = "添加编辑车辆", tags = {"小程序-个人中心-车辆"})
+ @PostMapping(value = "/user/car/addOrUpdate")
+ public R carAdd(@RequestBody TAppUserCar appUserCar) {
+
+ LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet();
+ Long userId = loginUserApplet.getUserId();
+ TAppUser byId = appUserService.getById(userId);
+
+
+ //如果是第一次添加车辆,增加积分
+ Long count = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).count();
+
+
+ if (count==0){
+ R<TIntegralRule> set = integralRuleClient.getSet();
+ TIntegralRule data = set.getData();
+ JSONObject jsonObject = JSON.parseObject(data.getAddVehiclesEarnsPoints());
+
+
+ Integer point = 0;
+ //增加车牌50分,必填
+ point = point+jsonObject.getInteger("num1");
+ //增加车型分
+ if (StringUtils.isNotEmpty(appUserCar.getVehicleModel())){
+ point = point+jsonObject.getInteger("num2");
+ }
+ //增加车辆用途分
+ if (StringUtils.isNotEmpty(appUserCar.getVehicleUse())){
+ point = point+jsonObject.getInteger("num3");
+ }
+ //增加续航分
+ if (StringUtils.isNotEmpty(appUserCar.getEndurance())){
+ point = point+jsonObject.getInteger("num4");
+ }
+
+ //增加积分记录
+ pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),"");
+ byId.setPoints(byId.getPoints()+point);
+ appUserService.updateById(byId);
+
+
+ }
+
+ //
+ appUserCarService.saveOrUpdate(appUserCar);
+
+ return R.ok();
+ }
}
--
Gitblit v1.7.1