From 852681bc9257e9eaae64d027a9bc6d88f93f35b4 Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期六, 23 九月 2023 09:51:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 253 ++++++++++++++++++++++++-------------------------- 1 files changed, 123 insertions(+), 130 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index f0b1108..20c6292 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -1,10 +1,13 @@ package com.dsh.account.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.dto.SelectDto; import com.dsh.account.entity.*; import com.dsh.account.enums.RechargeRecordEnum; +import com.dsh.account.feignclient.activity.IntroduceRewardsClient; import com.dsh.account.feignclient.activity.MerChandiseClient; import com.dsh.account.feignclient.activity.MerChandiseStoreClient; import com.dsh.account.feignclient.activity.UserConponClient; @@ -12,6 +15,7 @@ import com.dsh.account.feignclient.competition.DeductionCompetitionsClient; import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; import com.dsh.account.feignclient.competition.model.PaymentCompetition; +import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.course.CoursePackageClient; import com.dsh.account.feignclient.course.CoursePackageConfigClient; import com.dsh.account.feignclient.course.CoursePaymentClient; @@ -28,11 +32,15 @@ import com.dsh.account.mapper.*; import com.dsh.account.model.*; import com.dsh.account.model.dto.Coupon; +import com.dsh.account.model.query.appUserQuery.QueryAppUser; +import com.dsh.account.model.vo.DetailsListVo; +import com.dsh.account.model.vo.QueryAppUserVO; import com.dsh.account.model.vo.classDetails.CourseVenue; import com.dsh.account.model.vo.classDetails.ExerciseVideo; import com.dsh.account.model.vo.classDetails.RegisteredCourse; import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo; import com.dsh.account.model.vo.userBenefitDetail.*; +import com.dsh.account.service.TAppGiftService; import com.dsh.account.service.TAppUserService; import com.dsh.account.util.*; import com.dsh.account.util.akeylogin.Md5Util; @@ -42,6 +50,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; @@ -132,6 +141,32 @@ @Resource private SiteClient stClient; + @Autowired + private TAppUserMapper appUserMapper; + + @Autowired + private TAppGiftService appGiftService; + + @Autowired + private IntroduceRewardsClient introduceRewardsClient; + @Override + public List<QueryAppUserVO> listAll(QueryAppUser query) { + return appUserMapper.listAll(query); + } + + @Override + public HashMap<String,Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId,String lon,String lat) { + // 门店id 查出所有课程 + HashMap<String, Object> map = paymentClient.weeksOfCourseDetailsList(new CourseDetailReq(appUserId, stuId, time, storeId,lon,lat)); + + return map; + } + + + @Override + public List<SelectDto> getSelects(List<Integer> studentIds) { + return this.baseMapper.getSelects(studentIds); + } @Override public ClassInfoVo queryUserOfStus(Integer id) { @@ -162,6 +197,7 @@ coursePackIds = stuCoursePayment.stream().map(StuCourseResp::getCourseId).collect(Collectors.toList()); for (StuCourseResp tCoursePackagePayment : stuCoursePayment) { RegisteredCourse course = new RegisteredCourse(); + course.setId(tCoursePackagePayment.getId()); course.setCourseId(tCoursePackagePayment.getCourseId()); course.setCourseName(tCoursePackagePayment.getCourseName()); course.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums()); @@ -170,6 +206,7 @@ course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity()); courseList.add(course); } + } classInfoVo.setCourseList(courseList); List<ExerciseVideo> stuCourseOfVideoList = voclClient.getStuCourseOfVideoList(coursePackIds); @@ -216,6 +253,10 @@ couList.setTimeStr(courseOfStoreVo.getClassStartTime() + "-" + courseOfStoreVo.getClassEndTime()); couList.setDetail("¥" + courseOfStoreVo.getCoursePrice() + "/会员扣2学时"); couList.setStatus(courseOfStoreVo.getStatus()); + + couList.setAllNum(courseOfStoreVo.getAllNum()); + couList.setUseNum(courseOfStoreVo.getUseNum()); + couList.setLastNum(courseOfStoreVo.getLastNum()); courses.add(couList); } courseVenue.setCourses(courses); @@ -278,6 +319,32 @@ tAppUser.setState(1); tAppUser.setInsertTime(new Date()); this.baseMapper.insert(tAppUser); + + + // 介绍有礼 + if(addAppUserVo.getReferralUserId()!=null){ + Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat()); + Integer num=0; + if(null != geocode){ + String province = geocode.get("province"); + String provinceCode = geocode.get("provinceCode"); + String city = geocode.get("city"); + String cityCode = geocode.get("cityCode"); + num = introduceRewardsClient.getGiftList(cityCode); + } + TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, addAppUserVo.getReferralUserId())); + if(one!=null){ + one.setNum(one.getNum()+num); + appGiftService.updateById(one); + }else { + TAppGift tAppGift = new TAppGift(); + tAppGift.setUserId(addAppUserVo.getReferralUserId()); + tAppGift.setNum(num); + appGiftService.save(tAppGift); + } + + } + return ResultUtil.success(); } @@ -690,6 +757,8 @@ commodity.setBelongsType(vicinityGood.getUserPopulation()); commodity.setGoodsType(1); commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId())); + List<Integer> integers = mcsClient.queryPointMerStoreIds(vicinityGood.getId()); + commodity.setShopIds(integers); break; case 2: commodity.setGoodId(vicinityGood.getCoursePackageId()); @@ -706,6 +775,7 @@ commodity.setBelongsType(vicinityGood.getUserPopulation()); commodity.setGoodsType(2); commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId())); + commodity.setShopIds(mcsClient.queryPointMerStoreIds(vicinityGood.getId())); break; case 3: commodity.setGoodId(vicinityGood.getId()); @@ -721,6 +791,7 @@ commodity.setBelongsType(vicinityGood.getUserPopulation()); commodity.setGoodsType(3); commodity.setNums(mcClient.getRedeemedQuantity(vicinityGood.getId())); + commodity.setShopIds(mcsClient.queryPointMerStoreIds(vicinityGood.getId())); break; default: break; @@ -748,6 +819,7 @@ goods.add(commodity); } } + if (StringUtils.hasText(request.getSearch())){ if (goods.size() > 0 ){ goods = goods.stream() @@ -755,6 +827,15 @@ .collect(Collectors.toList()); } } + // 2.0 门店筛选 + if (request.getShopId()!=null){ + if (goods.size() > 0 ){ + goods = goods.stream() + .filter(merchandise -> merchandise.getShopIds().contains(request.getShopId())) + .collect(Collectors.toList()); + } + } + if (null != request.getRank()){ switch (request.getRank()){ case 1: @@ -854,6 +935,7 @@ } @Override + @Transactional public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { System.out.println("exchangeType:--->"); System.out.println(exchangeType); @@ -874,11 +956,21 @@ }else { goodsNums = exchangeType.getNums(); } + AppUserGoodResp goodResp = new AppUserGoodResp(); + goodResp.setAppUserId(userIdFormRedis); + goodResp.setGoodId(merchandise.getId()); + int count = mcClient.queryUserHasGoodsNums(goodResp); + if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){ + return ResultUtil.error("超过限领数量"); + } + for (int i = 0; i < goodsNums; i++) { // 新增积分商品兑换记录 UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); pointsMerchandise.setUserId(userIdFormRedis); + pointsMerchandise.setStatus(1); + pointsMerchandise.setState(1); if (merchandise.getUseScope() == 3){ if (exchangeType.getGoodsType() == 2){ CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); @@ -926,7 +1018,6 @@ packagePayment.setPayUserId(userIdFormRedis); packagePayment.setStatus(1); packagePayment.setState(1); - packagePayment.setInsertTime(new Date()); packagePayment.setCode(code); paymentClient.savePaymentCoursePackage(packagePayment); } @@ -937,7 +1028,6 @@ coupon.setCouponId(exchangeType.getGoodId()); coupon.setUserId(userIdFormRedis); coupon.setStatus(1); - coupon.setInsertTime(new Date()); ucponClient.insertToAppuserCoupon(coupon); } break; @@ -951,59 +1041,6 @@ case 2: // 积分+现金 boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); - if (dealt){ - switch (exchangeType.getGoodsType()){ -// 1实物 2课包 3门票 4优惠券 - case 2: - Integer stuNums = 0; - if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){ - stuNums = exchangeType.getStuIds().size(); - }else { - stuNums = 1; - } - for (int i = 0; i < stuNums; i++) { - List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId()); - TCoursePackagePayment packagePayment = new TCoursePackagePayment(); - packagePayment.setAppUserId(userIdFormRedis); - packagePayment.setStudentId(exchangeType.getStuIds().get(i)); - packagePayment.setCoursePackageId(merchandise.getCoursePackageId()); - for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) { - if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) { - packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); - break; - } - } - packagePayment.setPlayPaiCoin(merchandise.getIntegral()); - packagePayment.setAbsencesNumber(0); - packagePayment.setPayUserType(1); - packagePayment.setPayStatus(1); - packagePayment.setPayUserId(userIdFormRedis); - packagePayment.setStatus(1); - packagePayment.setState(1); - packagePayment.setInsertTime(new Date()); - packagePayment.setCode(code); - paymentClient.savePaymentCoursePackage(packagePayment); - } - break; - case 4: - for (int i = 0; i < goodsNums; i++) { - UserCoupon coupon = new UserCoupon(); - coupon.setCouponId(exchangeType.getGoodId()); - coupon.setUserId(userIdFormRedis); - coupon.setStatus(1); - coupon.setInsertTime(new Date()); - ucponClient.insertToAppuserCoupon(coupon); - } - break; - default: - break; - } - }else { - return ResultUtil.error("用户积分不足!"); - } switch (exchangeType.getPayType()) { case 1: try { @@ -1026,55 +1063,6 @@ } break; case 3: -// 现金 - switch (exchangeType.getGoodsType()){ - case 2: - Integer stuNums = 0; - if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){ - stuNums = exchangeType.getStuIds().size(); - }else { - stuNums = 1; - } - for (int i = 0; i < stuNums; i++) { - List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId()); - TCoursePackagePayment packagePayment = new TCoursePackagePayment(); - packagePayment.setAppUserId(userIdFormRedis); - packagePayment.setStudentId(exchangeType.getStuIds().get(i)); - packagePayment.setCoursePackageId(merchandise.getCoursePackageId()); - for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) { - if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) { - packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); - packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); - break; - } - } - packagePayment.setCashPayment(merchandise.getCash()); - packagePayment.setAbsencesNumber(0); - packagePayment.setPayUserType(1); - packagePayment.setPayStatus(1); - packagePayment.setPayUserId(userIdFormRedis); - packagePayment.setStatus(1); - packagePayment.setState(1); - packagePayment.setInsertTime(new Date()); - packagePayment.setCode(code); - paymentClient.savePaymentCoursePackage(packagePayment); - } - break; - case 4: - for (int i = 0; i < goodsNums; i++) { - UserCoupon coupon = new UserCoupon(); - coupon.setCouponId(exchangeType.getGoodId()); - coupon.setUserId(userIdFormRedis); - coupon.setStatus(1); - coupon.setInsertTime(new Date()); - ucponClient.insertToAppuserCoupon(coupon); - } - break; - default: - break; - } switch (exchangeType.getPayType()) { case 1: try { @@ -1115,6 +1103,7 @@ appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); userIntegralChanges.setNewIntegral(appUser.getIntegral()); userIntegralChanges.setInsertTime(new Date()); + userIntegralChanges.setCategory(2); uicMapper.insert(userIntegralChanges); this.baseMapper.updateById(appUser); @@ -1153,11 +1142,10 @@ Map<String, String> data1 = resultUtil.getData(); String s = data1.get("tradeStatus"); String tradeNo = data1.get("tradeNo"); -// if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ -// coursePackagePayment.setState(3); -// couPayClient.delPaymentCoursePackage(coursePackagePayment.getId()); -// break; -// } + if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){ + mcClient.deletePaymentRecord(code); + break; + } if("TRADE_SUCCESS".equals(s)){ for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) { userPointsMerchandise.setPayStatus(2); @@ -1173,6 +1161,7 @@ } } }catch (Exception e){ + mcClient.deletePaymentRecord(code); e.printStackTrace(); } } @@ -1213,11 +1202,10 @@ Map<String, String> data1 = resultUtil.getData(); String s = data1.get("trade_state"); String transaction_id = data1.get("transaction_id"); -// if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){ -// coursePackagePayment.setState(3); -// couPayClient.delPaymentCoursePackage(coursePackagePayment.getId()); -// break; -// } + if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){ + mcClient.deletePaymentRecord(code); + break; + } if("SUCCESS".equals(s)){ for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) { userPointsMerchandise.setPayStatus(2); @@ -1269,7 +1257,6 @@ coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId()); coupon.setUserId(userPointsMerchandises.get(0).getUserId()); coupon.setStatus(1); - coupon.setInsertTime(new Date()); ucponClient.insertToAppuserCoupon(coupon); break; default: @@ -1300,7 +1287,6 @@ coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId()); coupon.setUserId(userPointsMerchandises.get(0).getUserId()); coupon.setStatus(1); - coupon.setInsertTime(new Date()); ucponClient.insertToAppuserCoupon(coupon); break; default: @@ -1316,24 +1302,29 @@ List<StoreResponse> responses = new ArrayList<>(); if (goodsType == 4){ List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId); - for (Integer couponStoreId : couponStoreIds) { - StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId); - if(ToolUtil.isNotEmpty(courseOfStore)){ - StoreResponse response = new StoreResponse(); - response.setStoreId(couponStoreId); - response.setStoreName(courseOfStore.getStoreName()); - responses.add(response); + if (couponStoreIds.size() > 0 ){ + for (Integer couponStoreId : couponStoreIds) { + StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId); + if(ToolUtil.isNotEmpty(courseOfStore)){ + StoreResponse response = new StoreResponse(); + response.setStoreId(couponStoreId); + response.setStoreName(courseOfStore.getStoreName()); + responses.add(response); + } } } + }else { List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId); - for (Integer integer : integers) { - StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer); - if(ToolUtil.isNotEmpty(courseOfStore)){ - StoreResponse response = new StoreResponse(); - response.setStoreId(integer); - response.setStoreName(courseOfStore.getStoreName()); - responses.add(response); + if (integers.size() > 0 ){ + for (Integer integer : integers) { + StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer); + if(ToolUtil.isNotEmpty(courseOfStore)){ + StoreResponse response = new StoreResponse(); + response.setStoreId(integer); + response.setStoreName(courseOfStore.getStoreName()); + responses.add(response); + } } } } @@ -1357,4 +1348,6 @@ } + + } -- Gitblit v1.7.1