From ae84ae528290f44c66ef14c92f4a68bd3c1ce617 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 11 十一月 2024 08:50:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java | 166 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 155 insertions(+), 11 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 d10c050..e97b7bc 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 @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -15,11 +16,11 @@ import com.ruoyi.account.util.carBrand.CarBrandUtil; import com.ruoyi.account.wx.model.WeixinProperties; import com.ruoyi.common.core.constant.Constants; +import com.ruoyi.common.core.constant.MsgConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.PointChangeDto; 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.*; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BasePojo; @@ -33,9 +34,13 @@ 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.feignClient.OrderClient; import com.ruoyi.order.api.model.TChargingOrder; import com.ruoyi.order.api.model.TExchangeOrder; +import com.ruoyi.order.api.model.TGrantVip; import com.ruoyi.other.api.domain.*; +import com.ruoyi.other.api.domain.TCoupon; +import com.ruoyi.other.api.domain.TVip; import com.ruoyi.other.api.dto.UnitListQueryDto; import com.ruoyi.other.api.feignClient.IntegralRuleClient; import com.ruoyi.other.api.feignClient.OtherClient; @@ -50,6 +55,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.math.BigDecimal; import java.time.Duration; import java.time.LocalDate; import java.time.LocalDateTime; @@ -75,6 +81,8 @@ private TAppUserService appUserService; @Resource private TAppUserTagService appUserTagService; + @Autowired + private OrderClient orderClient; @Resource private TAppUserVipDetailService tAppUserVipDetailService; @@ -110,6 +118,7 @@ private TAppUserCarService carService; @Resource private IntegralRuleClient integralRuleClient; + @Resource private VipClient vipClient; @@ -223,11 +232,12 @@ Page<TAppUser> page = appUserService.lambdaQuery() .like(userListQueryDto.getUserPhone() != null && !"".equals(userListQueryDto.getUserPhone()), TAppUser::getPhone, userListQueryDto.getUserPhone()) .eq(userListQueryDto.getCompanyId() != null, TAppUser::getCompanyId, userListQueryDto.getCompanyId()) - .like(userListQueryDto.getProvinceCode() != null && !"".equals(userListQueryDto.getProvinceCode()), TAppUser::getProvinceCode, userListQueryDto.getProvinceCode()) + .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); @@ -295,6 +305,7 @@ .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()) @@ -328,6 +339,13 @@ appUser.setLastDays( Duration.between(LocalDateTime.now(), appUser.getVipEndTime()).toDays()); appUser.setUid(appUser.getId().toString()); + + 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); } @@ -348,7 +366,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())); @@ -361,6 +378,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 @@ -496,7 +521,7 @@ for (TAppUserIntegralChange record : page.getRecords()) { record.setDateTime(record.getCreateTime()); record.setUid(record.getId().toString()); - if (record.getChangeType()==2){ + 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()); @@ -518,6 +543,15 @@ @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()); + } + }else if (byId.getChangeType()==4){ + TAppUser byId1 = appUserService.getById(byId.getExtension()); + byId.setExtension(byId1.getPhone()); + } return R.ok(byId); } @@ -555,6 +589,8 @@ return R.ok(); } + @Resource + private TAppUserVipDetailService appUserVipDetailService; @ApiOperation(value = "个人中心信息", tags = {"小程序-个人中心"}) @GetMapping(value = "/user/info") @@ -563,14 +599,26 @@ 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())){ appUserInfoDto.setIsVip(0); }else { + TAppUserVipDetail one = appUserVipDetailService.getOne(new LambdaQueryWrapper<TAppUserVipDetail>() + .eq(TAppUserVipDetail::getAppUserId, userId) + .eq(TAppUserVipDetail::getVipId, byId.getVipId()) + .last(" and now() between start_time and end_time")); + Long count = appCouponService.lambdaQuery().eq(TAppCoupon::getDetailId, one.getId()).count(); + appUserInfoDto.setVipCouponNum(count); appUserInfoDto.setIsVip(1); appUserInfoDto.setVipExpireTime(byId.getVipEndTime()); + + + + } //判断当天是否签到 Long count = signService.lambdaQuery().eq(TAppUserSign::getAppUserId,userId).eq(TAppUserSign::getSignDay, LocalDate.now()).count(); @@ -586,8 +634,26 @@ 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 = "设置头像", 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(); } @@ -605,6 +671,7 @@ InfoCouponDto infoCouponDto = new InfoCouponDto(); BeanUtils.copyProperties(coupon, infoCouponDto); infoCouponDto.setId(tAppCoupon.getId().toString()); + infoCouponDto.setCouponId(coupon.getId()); infoCouponDto.setEndTime(tAppCoupon.getEndTime()); couponDtos1.add(infoCouponDto); @@ -646,9 +713,10 @@ @ApiOperation(value = "优惠卷详情(1可使用2不可用)", tags = {"小程序-个人中心"}) - @GetMapping(value = "/user/coupon/getById") + @PostMapping(value = "/user/coupon/getById") public R<TAppCoupon> couponGetById(@RequestParam("id")Long id) { TAppCoupon appCoupon = appCouponService.getById(id); + appCoupon.setUid(id.toString()); return R.ok(appCoupon); } @@ -672,9 +740,31 @@ } else if (giveVipDto.getType() == 3) { plusDay = 12; } - //增加vipDetail + BigDecimal bigDecimal = new BigDecimal("0"); + TVip info = vipClient.getInfo1(giveVipDto.getVipId()).getData(); + switch (giveVipDto.getType()){ + case 1: + bigDecimal = bigDecimal.add(info.getMonthlyCard()==null?new BigDecimal(0):info.getMonthlyCard()); + break; + case 2: + bigDecimal = bigDecimal.add(info.getSeasonCard()==null?new BigDecimal(0):info.getSeasonCard()); + break; + case 3: + bigDecimal = bigDecimal.add(info.getAnnualCard()==null?new BigDecimal(0):info.getAnnualCard()); + break; + } + //增加vipDetail giveVipUtil.sendVip(nowUser, giveVipDto.getVipId(),plusDay,giveVipDto.getType()); appUserService.updateById(nowUser); + // 新增后台赠送记录 + TGrantVip tGrantVip = new TGrantVip(); + tGrantVip.setCode(OrderCodeUtil.getOrderCode("ZS")); + tGrantVip.setAppUserId(nowUser.getId()); + tGrantVip.setVipId(giveVipDto.getVipId()); + tGrantVip.setOrderAmount(bigDecimal); + tGrantVip.setCreateTime(LocalDateTime.now()); + tGrantVip.setAppUserId(nowUser.getId()); + orderClient.managementGiveVip(tGrantVip); } return R.ok(); } @@ -683,8 +773,12 @@ @PostMapping(value = "/user/invite/page") public R<Page<TInviteUser>> invitePage(@RequestBody BasePage basePage) { Long userId = tokenService.getLoginUserApplet().getUserId(); - Page<TInviteUser> page = inviteUserService.lambdaQuery().eq(TInviteUser::getAppUserId, userId).isNotNull(TInviteUser::getAward).orderByDesc(TInviteUser::getCreateTime).page(Page.of(basePage.getPageCurr(), basePage.getPageSize())); + for (TInviteUser record : page.getRecords()) { + TAppUser byId = appUserService.getById(record.getBeInvitedAppUserId()); + record.setAvatar(byId.getAvatar()); + record.setName(byId.getName()); + } return R.ok(page); } @@ -815,7 +909,7 @@ boolean doubleVip = false; if (one!=null){ TVip tVip = JSONObject.parseObject(one.getVipJson(), TVip.class); - if (tVip.getDoubleIntegration()==1){ + if (tVip.getDoubleIntegration()!=null&&tVip.getDoubleIntegration()==1){ doubleVip = true; } } @@ -879,6 +973,10 @@ .eq(TAppUserSign::getAppUserId, userId) .orderByDesc(TAppUserSign::getSignDay) .list(); + for (TAppUserSign signRecord : signRecords) { + int i = signDayUtil.calculateContinuousSignDays1(signRecord.getAppUserId(), signRecord.getSignDay()); + signRecord.setContinueDays(i); + } return R.ok(signRecords); } @@ -930,7 +1028,7 @@ boolean doubleVip = false; if (one!=null){ TVip tVip = JSONObject.parseObject(one.getVipJson(), TVip.class); - if (tVip.getDoubleIntegration()==1){ + if (tVip.getDoubleIntegration()!=null&&tVip.getDoubleIntegration()==1){ doubleVip = true; } } @@ -1013,6 +1111,17 @@ String brand = CarBrandUtil.getBrand(); 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); } @@ -1022,6 +1131,10 @@ public R getModel(String id) throws Exception { String modelById = CarBrandUtil.getModelById(id); JSONObject jsonObject = JSON.parseObject(modelById); + Integer code = jsonObject.getInteger("code"); + if (code==701){ + return R.fail("当前品牌暂无分类"); + } JSONArray data = jsonObject.getJSONArray("data"); JSONArray backList = new JSONArray(); for (Object datum : data) { @@ -1057,5 +1170,36 @@ 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(); + } + + @PostMapping("/sendMessage") + public R<String> sendMessage(@RequestBody SendMessageDTO sendMessageDTO){ + switch (sendMessageDTO.getType()){ + case 1: + String reqStr1 = MsgUtil.codeMsg(sendMessageDTO.getPhone(), sendMessageDTO.getCode()); + String result1 = HttpUtils.post(MsgConstants.SEND_URL, reqStr1); + return R.ok(result1); + case 2: + String reqStr2 = MsgUtil.applyCodeMsg(sendMessageDTO.getPhone(), sendMessageDTO.getCode()); + String result2 = HttpUtils.post(MsgConstants.SEND_URL, reqStr2); + return R.ok(result2); + default: + String reqStr3 = MsgUtil.faultMsg(sendMessageDTO.getPhone(), sendMessageDTO.getSite(), sendMessageDTO.getChargeGun()); + String result3 = HttpUtils.post(MsgConstants.SEND_URL, reqStr3); + return R.ok(result3); + } + } + } -- Gitblit v1.7.1