From a00dbefc3837ab7781f9d50cd8ddb1261a416b79 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期三, 23 十月 2024 09:54:20 +0800 Subject: [PATCH] marge --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 421 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 369 insertions(+), 52 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 432ccae..dbd4de1 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 @@ -11,11 +11,9 @@ 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.util.*; import com.ruoyi.account.util.carBrand.CarBrandUtil; 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.dto.PointChangeDto; @@ -26,6 +24,9 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BasePojo; import com.ruoyi.common.core.web.page.BasePage; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.auth.AuthUtil; import com.ruoyi.common.security.service.TokenService; @@ -35,6 +36,7 @@ import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.other.api.domain.*; +import com.ruoyi.other.api.domain.TCoupon; import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.OtherClient; @@ -110,13 +112,29 @@ @Resource private IntegralRuleClient integralRuleClient; + @Resource private VipClient vipClient; @Resource private TInviteUserService inviteUserService; + @Resource + private GiveVipUtil giveVipUtil; - + /** + * 远程调用 积分兑换订单 退款回退积分 + * @return + */ + @PostMapping(value = "/refundPoints/{param}") + public R refundPoints(@PathVariable("param")String param) { + String[] split = param.split("-"); + String userId = split[0]; + String points = split[1]; + TAppUser byId = appUserService.getById(userId); + byId.setPoints(byId.getPoints()+Integer.parseInt(points)); + appUserService.updateById(byId); + return R.ok(); + } @ApiOperation(value = "查询当前用户是否为会员 0否1是", tags = {"小程序--查询当前用户是否为会员"}) @PostMapping(value = "/getUserInfo") @@ -136,8 +154,9 @@ 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) { @@ -167,6 +186,7 @@ @ApiOperation(value = "单位管理添加或编辑", tags = {"用户管理-单位管理"}) @PostMapping(value = "/unit/addOrUpdate") + @Log(title = "【单位管理】添加或编辑单位", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE) public R add(@RequestBody TCompany tCompany) { //拿到单位列表 otherClient.unitAddorUpadate(tCompany); @@ -178,7 +198,12 @@ @ApiOperation(value = "单位管理删除", tags = {"用户管理-单位管理"}) @DeleteMapping(value = "/unit/delete") + @Log(title = "【单位管理】删除单位", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) public R add(@RequestParam String ids) { + List<TAppUser> list = appUserService.lambdaQuery().in(TAppUser::getCompanyId, Arrays.asList(ids.split(","))).list(); + if (!list.isEmpty()){ + return R.fail("当前单位已存在用户,无法删除!"); + } String[] split = ids.split(","); for (String s : split) { otherClient.unitDelete(Integer.valueOf(s)); @@ -200,16 +225,18 @@ Page<TAppUser> page = appUserService.lambdaQuery() .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone()) .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId()) + .eq(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode()) .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()) .in(!userIds.isEmpty(),TAppUser::getId,userIds) + .orderByDesc(BasePojo::getCreateTime) .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()); +// vipIds = page.getRecords().stream().map(TAppUser::getVipId).collect(Collectors.toList()); //获取会员map R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds); //循环处理 @@ -223,12 +250,28 @@ appUser.setTagName(byIdTag.getData().getName()); } } - //匹配vipMap的值 - appUser.setVipName(vipMap.getData().get(appUser.getVipId())); + if (appUser.getVipEndTime()!=null&&appUser.getVipEndTime().isAfter(LocalDateTime.now())) { + //匹配vipMap的值 + appUser.setVipName(vipMap.getData().get(appUser.getVipId())); + } //累计充电次数 R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId()); appUser.setOrderCount(useOrderCount.getData()); appUser.setUid(appUser.getId().toString()); + if (appUser.getCompanyId()!=null){ + TCompany data = otherClient.unitDetail(appUser.getCompanyId()).getData(); + if (data!=null){ + appUser.setCompanyName(data.getName()); + } + } + + TAppUserCar one1 = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, appUser.getId()).orderByDesc(BasePojo::getCreateTime).last("limit 1").one(); + if (one1!=null){ + CarNumDto carNumDto = CarUtil.carNum(one1.getLicensePlate()); + appUser.setPlace(carNumDto.getProvince()+carNumDto.getCity()); + + } + } return R.ok(page); @@ -242,16 +285,25 @@ if (userListQueryDto.getUserTagId() != null){ userIds = appUserTagService.lambdaQuery().eq(TAppUserTag::getUserTagId, userListQueryDto.getUserTagId()).list().stream().map(TAppUserTag::getAppUserId).collect(Collectors.toList()); } + LocalDateTime end1 = null; + LocalDateTime end2 = null ; + if (userListQueryDto.getVipEndTime1()!=null) { + end1 = LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime1()); + } + if (userListQueryDto.getVipEndTime2()!=null){ + end2 = LocalDateTime.now().plusDays(userListQueryDto.getVipEndTime2()); + } //列表查询 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.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode()) .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())) + .ge(userListQueryDto.getVipEndTime1() != null, TAppUser::getVipEndTime, end1 ) + .le(userListQueryDto.getVipEndTime2() != null, TAppUser::getVipEndTime, end2) .in(!userIds.isEmpty(), TAppUser::getId, userIds) .page(Page.of(userListQueryDto.getPageCurr(), userListQueryDto.getPageSize())); if (page.getRecords().isEmpty()){ @@ -300,7 +352,6 @@ 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())); @@ -313,6 +364,14 @@ R<Map<Integer, String>> vipMap = otherClient.getVipMap(vipIds); //循环处理 for (TAppUser appUser : page.getRecords()) { + if (appUser.getProvinceCode()!=null){ + Region data = otherClient.getRegionBuyCode(appUser.getProvinceCode()).getData(); + appUser.setProvince(data.getName()); + } + if(appUser.getCityCode()!=null){ + Region data = otherClient.getRegionBuyCode(appUser.getCityCode()).getData(); + appUser.setCity(data.getName()); + } //拿到最新的tagId TAppUserTag one = appUserTagService.lambdaQuery().eq(TAppUserTag::getAppUserId, appUser.getId()).orderByDesc(TAppUserTag::getCreateTime).last("limit 1").one(); //设置最新的tagName @@ -327,6 +386,7 @@ //累计充电次数 R<Long> useOrderCount = chargingOrderClient.useOrderCount(appUser.getId()); appUser.setOrderCount(useOrderCount.getData()); + appUser.setUid(appUser.getId().toString()); } return R.ok(page); @@ -335,6 +395,7 @@ @ApiOperation(value = "用户添加编辑", tags = {"用户管理-用户列表"}) @PostMapping(value = "/user/addOrUpdate") + @Log(title = "【用户列表】添加编辑用户", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE) public R addOrUpdate(@RequestBody TAppUser tAppUser) { if (tAppUser.getId() != null){ //为编辑操作,要进行vip的逻辑处理 @@ -369,6 +430,11 @@ } } + }else { + List<TAppUser> list = appUserService.lambdaQuery().eq(TAppUser::getPhone, tAppUser.getPhone()).list(); + if (!list.isEmpty()){ + return R.fail("该手机号已注册"); + } } appUserService.saveOrUpdate(tAppUser); return R.ok(); @@ -378,12 +444,16 @@ @GetMapping(value = "/user/detail/{id}") public R<UserDetailDto> userDetail(@PathVariable Long id) { TAppUser user = appUserService.getById(id); - UserDetailDto userDetailDto = new UserDetailDto(); - BeanUtils.copyProperties(user,userDetailDto); - if (user.getVipId()!=null) { - R<Map<Integer, String>> vipMap = otherClient.getVipMap(Arrays.asList(user.getVipId())); + R<Map<Integer, String>> vipMap = otherClient.getVipMap(Collections.singletonList(user.getVipId())); + if (user.getVipEndTime()!=null&&user.getVipEndTime().isAfter(LocalDateTime.now())) { + //匹配vipMap的值 user.setVipName(vipMap.getData().get(user.getVipId())); } + + + UserDetailDto userDetailDto = new UserDetailDto(); + BeanUtils.copyProperties(user,userDetailDto); + //获取累计充电数量 R<Long> useOrderCount = chargingOrderClient.useOrderCount(user.getId()); userDetailDto.setOrderCount(useOrderCount.getData()); @@ -399,19 +469,34 @@ 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) { + if (pointsQueryDto.getUserId()==null){ + pointsQueryDto.setUserId(tokenService.getLoginUserApplet().getUserId()); + } List<Integer> types = new ArrayList<>(); - if (pointsQueryDto.getType()!=null){ + if (pointsQueryDto.getType()==null){ types.add(1); types.add(2); types.add(3); types.add(4); types.add(5); + types.add(6); + }else if (pointsQueryDto.getType()==1){ + types.add(1); + types.add(2); + types.add(3); + types.add(4); + types.add(5); + }else if (pointsQueryDto.getType()==2){ + types.add(6); } Page<TAppUserIntegralChange> page = integralChangeService.lambdaQuery() .eq(TAppUserIntegralChange::getAppUserId, pointsQueryDto.getUserId()) @@ -420,7 +505,9 @@ .in(!types.isEmpty(), TAppUserIntegralChange::getChangeType, types).page(Page.of(pointsQueryDto.getPageCurr(), pointsQueryDto.getPageSize())); for (TAppUserIntegralChange record : page.getRecords()) { - if (record.getChangeType()==2){ + record.setDateTime(record.getCreateTime()); + record.setUid(record.getId().toString()); + if (record.getChangeType()==2||record.getChangeType()==3){ R<TChargingOrder> tChargingOrderR = chargingOrderClient.orderDetail(Long.valueOf(record.getExtension())); if (tChargingOrderR.getData()!=null) { record.setOrderNum(tChargingOrderR.getData().getCode()); @@ -438,8 +525,22 @@ } + @ApiOperation(value = "积分详情", tags = {"小程序-个人中心"}) + @GetMapping(value = "/user/points/detail") + public R<TAppUserIntegralChange> pointsDetail(String id) { + TAppUserIntegralChange byId = integralChangeService.getById(id); + if (byId.getChangeType()==6) { + TExchangeOrder data = exchangeOrderClient.orderDetail(Long.valueOf(byId.getExtension())).getData(); + if (data != null) { + byId.setGoodType(data.getOrderType()); + } + } + return R.ok(byId); + } + @ApiOperation(value = "冻结解冻用户", tags = {"后台-用户管理-用户列表"}) @PostMapping(value = "/user/status/change") + @Log(title = "【用户列表】冻结解冻用户", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) public R pointsDetail(@RequestBody UserChangeDto userChangeDto) { TAppUser appUser = appUserService.getById(userChangeDto.getUserId()); appUser.setStatus(userChangeDto.getStatus()); @@ -450,6 +551,7 @@ @ApiOperation(value = "修改单位", tags = {"后台-用户管理-用户列表"}) @PostMapping(value = "/user/unit/change") + @Log(title = "【用户列表】修改用户单位", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) public R unitChange(@RequestBody UnitChangeDto unitChangeDto) { for (String s : unitChangeDto.getIds().split(",")) { TAppUser byId = appUserService.getById(s); @@ -461,6 +563,7 @@ @ApiOperation(value = "删除用户", tags = {"后台-用户管理-用户列表"}) @DeleteMapping(value = "/user/delete") + @Log(title = "【用户列表】删除用户", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE) public R userDelete(String ids) { String[] split = ids.split(","); for (String s : split) { @@ -477,7 +580,9 @@ TAppUser byId = appUserService.getById(userId); AppUserInfoDto appUserInfoDto = new AppUserInfoDto(); TVip data = vipClient.getVipInfoByType(2).getData(); - appUserInfoDto.setMinPrice(data.getMonthlyCard()); + if(null != data){ + appUserInfoDto.setMinPrice(data.getMonthlyCard()); + } //判断会员 if (byId.getVipEndTime()==null||byId.getVipEndTime().isBefore(LocalDateTime.now())){ @@ -485,45 +590,109 @@ }else { appUserInfoDto.setIsVip(1); appUserInfoDto.setVipExpireTime(byId.getVipEndTime()); + + + + + + + + } //判断当天是否签到 - Long count = signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).count(); + Long count = signService.lambdaQuery().eq(TAppUserSign::getAppUserId,userId).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(); + Long coupons = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).ge(TAppCoupon::getEndTime, LocalDateTime.now()).eq(TAppCoupon::getStatus, 1).count(); appUserInfoDto.setCouponNum(Math.toIntExact(coupons)); //当前绑定的车辆 List<TAppUserCar> list = carService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).list(); + for (TAppUserCar tAppUserCar : list) { + tAppUserCar.setUid(tAppUserCar.getId().toString()); + } appUserInfoDto.setUserCars(list); + appUserInfoDto.setFirstAdd(byId.getFirstAdd()!=null?byId.getFirstAdd():0); + appUserInfoDto.setPoints(byId.getPoints()==null?0:byId.getPoints()); + + + + + 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); - infoCouponDto.setId(tAppCoupon.getId()); - couponDtos.add(infoCouponDto); + @ApiOperation(value = "设置头像", tags = {"小程序-个人中心"}) + @GetMapping(value = "/user/set/avatar") + public R avatar(String url) { + Long userId = tokenService.getLoginUserApplet().getUserId(); + TAppUser byId = appUserService.getById(userId); + byId.setAvatar(url); + appUserService.updateById(byId); - } - - - return R.ok(couponDtos); - + return R.ok(); } @ApiOperation(value = "优惠卷列表不分页(1可使用2不可用)", tags = {"小程序-个人中心"}) - @PostMapping(value = "/user/coupon/getById") + @GetMapping(value = "/user/coupon") + public R<ListInfoCouponDto> userCoupon(@RequestParam("type") Integer type) { + Long userId = tokenService.getLoginUserApplet().getUserId(); + LocalDateTime now = LocalDateTime.now(); + + List<InfoCouponDto> couponDtos1 = new ArrayList<>(); + + List<TAppCoupon> list = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).ge(TAppCoupon::getEndTime, now).eq(TAppCoupon::getStatus, 1).list(); + for (TAppCoupon tAppCoupon : list) { + TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); + InfoCouponDto infoCouponDto = new InfoCouponDto(); + BeanUtils.copyProperties(coupon, infoCouponDto); + infoCouponDto.setId(tAppCoupon.getId().toString()); + infoCouponDto.setCouponId(coupon.getId()); + infoCouponDto.setEndTime(tAppCoupon.getEndTime()); + couponDtos1.add(infoCouponDto); + + } + + List<TAppCoupon> list1 = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).eq(TAppCoupon::getStatus, 2).list(); + List<TAppCoupon> list2 = appCouponService.lambdaQuery().eq(TAppCoupon::getAppUserId, userId).lt(TAppCoupon::getEndTime, now).list(); + + List<InfoCouponDto> couponDtos2 = new ArrayList<>(); + for (TAppCoupon tAppCoupon : list1) { + TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); + InfoCouponDto infoCouponDto = new InfoCouponDto(); + BeanUtils.copyProperties(coupon, infoCouponDto); + infoCouponDto.setId(tAppCoupon.getId().toString()); + infoCouponDto.setEndTime(tAppCoupon.getEndTime()); + couponDtos2.add(infoCouponDto); + } + for (TAppCoupon tAppCoupon : list2) { + TCoupon coupon = JSON.toJavaObject(JSON.parseObject(tAppCoupon.getCouponJson()), TCoupon.class); + InfoCouponDto infoCouponDto = new InfoCouponDto(); + BeanUtils.copyProperties(coupon, infoCouponDto); + infoCouponDto.setId(tAppCoupon.getId().toString()); + infoCouponDto.setEndTime(tAppCoupon.getEndTime()); + couponDtos2.add(infoCouponDto); + } + + + ListInfoCouponDto listInfoCouponDto = new ListInfoCouponDto(); + if (type==1){ + listInfoCouponDto.setInfoCouponDtoList(couponDtos1); + }else { + listInfoCouponDto.setInfoCouponDtoList(couponDtos2); + } + listInfoCouponDto.setNum1(couponDtos1.size()); + listInfoCouponDto.setNum2(couponDtos2.size()); + return R.ok(listInfoCouponDto); + + } + + + @ApiOperation(value = "优惠卷详情(1可使用2不可用)", tags = {"小程序-个人中心"}) + @GetMapping(value = "/user/coupon/getById") public R<TAppCoupon> couponGetById(@RequestParam("id")Long id) { TAppCoupon appCoupon = appCouponService.getById(id); return R.ok(appCoupon); @@ -533,6 +702,7 @@ @ApiOperation(value = "赠送会员", tags = {"用户管理-用户列表"}) @PostMapping(value = "/user/give/vip") + @Log(title = "【用户列表】赠送会员", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE) public R giveVip(@RequestBody GiveVipDto giveVipDto) { String[] split = giveVipDto.getUserIds().split(","); for (String s : split) { @@ -549,7 +719,7 @@ plusDay = 12; } //增加vipDetail - giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay); + giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType()); appUserService.updateById(nowUser); } return R.ok(); @@ -565,7 +735,7 @@ } @ApiOperation(value = "已赠送列表", tags = {"小程序-个人中心-邀请好友"}) - @PostMapping(value = "/user/invite/info") + @GetMapping(value = "/user/invite/info") public R<InviteInfoDto> inviteInfo() { Long userId = tokenService.getLoginUserApplet().getUserId(); Integer point = 0; @@ -586,7 +756,7 @@ @ApiOperation(value = "更换手机号", tags = {"小程序-用户管理-更换手机号"}) @PostMapping(value = "/user/updatePhone") public AjaxResult<String> updatePhone(@Validated @RequestBody UpdatePhoneDTO dto) { - String code = redisService.getCacheObject(dto.getPhone() + Constants.APPLET); + String code = redisService.getCacheObject(dto.getPhone() + Constants.UPDATE_PHONE); if(StringUtils.isEmpty(code)){ return AjaxResult.error("验证码已过期,请重新获取验证码!"); } @@ -662,6 +832,16 @@ .eq(TAppUser::getPhone,phone) .last("LIMIT 1"))); } + /** + * 通过手机号模糊查询用户 + * @param phone + * @return + */ + @GetMapping("/user/selectByPhoneLike") + public R<List<TAppUser>> selectByPhoneLike(@RequestParam("phone") String phone){ + return R.ok(appUserService.list(Wrappers.lambdaQuery(TAppUser.class) + .eq(TAppUser::getPhone,phone))); + } @ApiOperation(value = "签到", tags = {"小程序-个人中心-签到"}) @GetMapping(value = "/user/sign") @@ -675,6 +855,17 @@ if (signService.lambdaQuery().eq(TAppUserSign::getSignDay, LocalDate.now()).eq(TAppUserSign::getAppUserId, userId).count()>0){ return R.fail("今日已签到"); } + + //判断当前生效的vipDetail + TAppUserVipDetail one = tAppUserVipDetailService.lambdaQuery().le(TAppUserVipDetail::getStartTime, LocalDateTime.now()).ge(TAppUserVipDetail::getEndTime, LocalDateTime.now()).eq(TAppUserVipDetail::getAppUserId, userId).last("limit 1").one(); + boolean doubleVip = false; + if (one!=null){ + TVip tVip = JSONObject.parseObject(one.getVipJson(), TVip.class); + if (tVip.getDoubleIntegration()!=null&&tVip.getDoubleIntegration()==1){ + doubleVip = true; + } + } + //签到业务 TAppUserSign appUserSign = new TAppUserSign(); appUserSign.setSignDay(LocalDate.now()); @@ -685,11 +876,14 @@ //签到加积分记录 R<TIntegralRule> set = integralRuleClient.getSet(); TIntegralRule data = set.getData(); - JSONObject jsonObject = JSON.parseObject(data.getAddVehiclesEarnsPoints()); + JSONObject jsonObject = JSON.parseObject(data.getSignInForPoints()); //增加每日积分 Integer points = 0; Integer point = jsonObject.getInteger("num1"); points= points+point; + if (doubleVip){ + points= points+point; + } JSONArray num2 = jsonObject.getJSONArray("num2"); if (num2!=null) { //获取连续签到的规则放入map @@ -704,15 +898,20 @@ Integer i = map.get(days); if (i!=null){ points= points+i; + if (doubleVip){ + points= points+i; + } appUserSign.setIsGift(1); signService.updateById(appUserSign); } } - pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points,1,userId,"每日签到","JF"); + pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points,1,userId,"每日签到","JF",""); byId.setPoints(byId.getPoints()+points); appUserService.updateById(byId); return R.ok(); } + + //已签到日期 @ApiOperation(value = "本月已签到日期", tags = {"小程序-个人中心-签到"}) @GetMapping(value = "/user/has/sign") @@ -745,11 +944,20 @@ //积分变化记录用 - @PostMapping(value = "/user/points/change") - public R change(@RequestBody PointChangeDto points) { +// @PostMapping(value = "/user/points/change") +// public R change(@RequestBody PointChangeDto points) { +// TAppUser byId = appUserService.getById(points.getUserId()); +// pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF"); +// byId.setPoints(byId.getPoints()+points.getPoints()); +// appUserService.updateById(byId); +// return R.ok(); +// } + + @PostMapping(value = "/user/points/change/down") + public R changeDown(@RequestBody PointChangeDto points) { TAppUser byId = appUserService.getById(points.getUserId()); - pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF"); - byId.setPoints(byId.getPoints()+points.getPoints()); + pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()-points.getPoints(),points.getType(),points.getUserId(),points.getRemark(),"JF",points.getCode()); + byId.setPoints(byId.getPoints()-points.getPoints()); appUserService.updateById(byId); return R.ok(); } @@ -761,7 +969,17 @@ LoginUserApplet loginUserApplet = tokenService.getLoginUserApplet(); Long userId = loginUserApplet.getUserId(); TAppUser byId = appUserService.getById(userId); + appUserCar.setAppUserId(userId); + //判断当前生效的vipDetail + TAppUserVipDetail one = tAppUserVipDetailService.lambdaQuery().le(TAppUserVipDetail::getStartTime, LocalDateTime.now()).ge(TAppUserVipDetail::getEndTime, LocalDateTime.now()).eq(TAppUserVipDetail::getAppUserId, userId).last("limit 1").one(); + boolean doubleVip = false; + if (one!=null){ + TVip tVip = JSONObject.parseObject(one.getVipJson(), TVip.class); + if (tVip.getDoubleIntegration()!=null&&tVip.getDoubleIntegration()==1){ + doubleVip = true; + } + } //如果是第一次添加车辆,增加积分 Long count = appUserCarService.lambdaQuery().eq(TAppUserCar::getAppUserId, userId).count(); @@ -776,38 +994,137 @@ Integer point = 0; //增加车牌50分,必填 point = point+jsonObject.getInteger("num1"); + if (doubleVip){ + point = point+jsonObject.getInteger("num1"); + } //增加车型分 if (StringUtils.isNotEmpty(appUserCar.getVehicleModel())){ point = point+jsonObject.getInteger("num2"); + if (doubleVip){ + point = point+jsonObject.getInteger("num2"); + } } //增加车辆用途分 if (StringUtils.isNotEmpty(appUserCar.getVehicleUse())){ point = point+jsonObject.getInteger("num3"); + if (doubleVip){ + point = point+jsonObject.getInteger("num3"); + } } //增加续航分 if (StringUtils.isNotEmpty(appUserCar.getEndurance())){ point = point+jsonObject.getInteger("num4"); + if (doubleVip){ + point = point+jsonObject.getInteger("num4"); + } } //增加积分记录 - pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),""); + pointDetailUtil.addDetail(byId.getPoints(),byId.getPoints()+point,5,userId,appUserCar.getLicensePlate(),"",""); byId.setPoints(byId.getPoints()+point); - appUserService.updateById(byId); + byId.setFirstAdd(1); } + CarNumDto carNumDto = CarUtil.carNum(appUserCar.getLicensePlate()); + if (carNumDto==null){ + return R.fail("请输入正确的车牌"); + } + + byId.setCityCode(carNumDto.getAreaCode()); + byId.setProvinceCode(carNumDto.getAreaCode().substring(0,2)+"0000"); + appUserService.updateById(byId); // appUserCarService.saveOrUpdate(appUserCar); return R.ok(); } + @ApiOperation(value = "添加编辑车辆", tags = {"小程序-个人中心-车辆"}) + @GetMapping(value = "/user/car/delete") + public R carDelete(String id) { + boolean b = appUserCarService.removeById(id); + return R.ok(); + } + @ApiOperation(value = "车辆详情", tags = {"小程序-个人中心-车辆"}) + @GetMapping(value = "/user/car/detail") + public R<TAppUserCar> carDetail(String id) { + TAppUserCar byId = appUserCarService.getById(id); + return R.ok(byId); + } @ApiOperation(value = "获取车辆品牌", tags = {"小程序-个人中心-车辆"}) @GetMapping(value = "/user/car/getBrands") - public R getBrands() throws Exception { + public R getBrands(String name) throws Exception { String brand = CarBrandUtil.getBrand(); - return R.ok(brand); + JSONObject jsonObject = JSON.parseObject(brand); + JSONArray data = jsonObject.getJSONArray("data"); + JSONArray data1 = new JSONArray(); + if (name!=null) { + for (int i = 0; i < data.size(); i++) { + JSONObject brand1 = data.getJSONObject(i); + String o = (String) brand1.get("name"); + if (o.contains(name)) { + data1.add(brand1); + } + } + return R.ok(data1); + } + return R.ok(data); + + } + + @ApiOperation(value = "根据品牌获取车系", tags = {"小程序-个人中心-车辆"}) + @GetMapping(value = "/user/car/getModel") + public R getModel(String id) throws Exception { + String modelById = CarBrandUtil.getModelById(id); + JSONObject jsonObject = JSON.parseObject(modelById); + JSONArray data = jsonObject.getJSONArray("data"); + JSONArray backList = new JSONArray(); + for (Object datum : data) { + JSONObject jsonObject1 = JSON.parseObject(datum.toString()); + JSONArray list = jsonObject1.getJSONArray("list"); + backList.addAll(list); + } + return R.ok(backList); + } + @ApiOperation(value = "根据车系获取车型", tags = {"小程序-个人中心-车辆"}) + @GetMapping(value = "/user/car/getSeries") + public R getSeries(String id) throws Exception { + String modelById = CarBrandUtil.getSeriesById(id); + JSONObject jsonObject = JSON.parseObject(modelById); + JSONObject data1 = jsonObject.getJSONObject("data"); + JSONArray data = data1.getJSONArray("list"); +// JSONArray data = jsonObject.getJSONArray(data1.get("list").toString()); +// JSONArray backList = new JSONArray(); +// for (Object datum : data) { +// JSONObject jsonObject1 = JSON.parseObject(datum.toString()); +// JSONArray list = jsonObject1.getJSONArray("list"); +// backList.addAll(jsonObject1); +// } + return R.ok(data); + + } + + @ApiOperation(value = "根据车型获取详情", tags = {"小程序-个人中心-车辆"}) + @GetMapping(value = "/user/car/getDetail") + public R getDetail(String id) throws Exception { + String detailById = CarBrandUtil.getDetailById(id); + JSONObject jsonObject = JSON.parseObject(detailById); + + return R.ok(jsonObject.getJSONObject("data")); + } + + + + + @PostMapping(value = "/user/editAppUserInfo") + @ApiOperation(value = "修改个人信息", tags = {"小程序-个人中心"}) + public AjaxResult editAppUserInfo(@RequestBody TAppUser appUser){ + Long userId = tokenService.getLoginUserApplet().getUserId(); + appUser.setId(userId); + appUserService.updateById(appUser); + return AjaxResult.success(); } } -- Gitblit v1.7.1