From a93d4f40f35ad4464ec1d5602262a1d8d8407ece Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期二, 08 八月 2023 21:04:12 +0800 Subject: [PATCH] app端口:积分商品详情的字段处理 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 354 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 271 insertions(+), 83 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 7406b63..471d8df 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 @@ -854,105 +854,293 @@ } @Override - public ResultUtil productRedemptionOperation(Integer userIdFormRedis, Integer goodId, Integer goodsType,Integer nums,Integer exchangeType,Integer payType,List<Integer> stuIds) { - PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(goodId); + public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { + System.out.println("exchangeType:--->"); + System.out.println(exchangeType); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - for (int i = 0; i < nums; i++) { + PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId()); + if (ToolUtil.isEmpty(merchandise)){ + return ResultUtil.error("商品不存在"); + } + TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis); + if (ToolUtil.isEmpty(tAppUser)){ + return ResultUtil.error("用户不存在"); + } +// 查询是否超出限领数量 + switch (exchangeType.getGoodsType()){ + case 1: + + break; + case 2: + + break; + case 3: + + break; + case 4: + + break; + default: + break; + } + int goodsNums = 0; + if (ToolUtil.isEmpty(exchangeType.getNums())){ + goodsNums = 1; + }else { + goodsNums = exchangeType.getNums(); + } + for (int i = 0; i < goodsNums; i++) { +// 新增积分商品兑换记录 UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); - pointsMerchandise.setPointsMerchandiseId(goodId); + pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); pointsMerchandise.setUserId(userIdFormRedis); + pointsMerchandise.setStatus(1); + if (merchandise.getUseScope() == 3){ + if (exchangeType.getGoodsType() == 2){ + CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); + pointsMerchandise.setStoreId(coursePackage.getStoreId()); + }else { + pointsMerchandise.setStoreId(exchangeType.getStoreId()); + } + } pointsMerchandise.setCode(code); mcClient.saveDetailsUserPointMercase(pointsMerchandise); } -// 扣减积分 - TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis); - - -// 积分变更记录 - UserIntegralChanges userIntegralChanges = new UserIntegralChanges(); - userIntegralChanges.setAppUserId(userIdFormRedis); - userIntegralChanges.setOldIntegral(tAppUser.getIntegral()); - userIntegralChanges.setType(2); - tAppUser.setIntegral(null == tAppUser.getIntegral() ? merchandise.getIntegral() : tAppUser.getIntegral() +merchandise.getIntegral()); - userIntegralChanges.setNewIntegral(tAppUser.getIntegral()); - userIntegralChanges.setInsertTime(new Date()); - uicMapper.insert(userIntegralChanges); - - this.baseMapper.updateById(tAppUser); -// 现金支付 - if (exchangeType == 2 || exchangeType == 3) { - switch (goodsType) { - case 2: - for (int i = 0; i < stuIds.size(); i++) { - List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId()); - - TCoursePackagePayment packagePayment = new TCoursePackagePayment(); - packagePayment.setAppUserId(userIdFormRedis); - packagePayment.setStudentId(stuIds.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; + switch (exchangeType.getExchangeType()){ +// 积分 + case 1: + boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); + if (b){ + 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.setPlayPaiCoin(merchandise.getIntegral()); + packagePayment.setAbsencesNumber(0); + packagePayment.setPayUserType(1); + packagePayment.setPayStatus(2); + 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("用户积分不足!"); + } + break; + 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 { + if (merchandise.getType() == 2) { + return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + } else { + return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + } + } catch (Exception e) { + return ResultUtil.runErr(); } - 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 < nums; i++) { - UserCoupon coupon = new UserCoupon(); - coupon.setCouponId(goodId); - coupon.setUserId(userIdFormRedis); - coupon.setStatus(1); - coupon.setInsertTime(new Date()); - ucponClient.insertToAppuserCoupon(coupon); - } - break; - default: - break; - } - - switch (payType){ - case 1: - try { - if (merchandise.getType() == 2){ - return WechatPayment(merchandise.getCash().multiply(new BigDecimal(stuIds.size())),code); + case 2: + if (merchandise.getType() == 2) { + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + } else { + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + } + default: + break; + } + break; + case 3: +// 现金 + switch (exchangeType.getGoodsType()){ + case 2: + Integer stuNums = 0; + if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){ + stuNums = exchangeType.getStuIds().size(); }else { - return WechatPayment(merchandise.getCash().multiply(new BigDecimal(nums)),code); + stuNums = 1; } - }catch (Exception e){ - return ResultUtil.runErr(); - } - case 2: - if (merchandise.getType() == 2){ - AlipayPayment(merchandise.getCash().multiply(new BigDecimal(stuIds.size())),code); - }else { - AlipayPayment(merchandise.getCash().multiply(new BigDecimal(nums)),code); - } - break; - default: - break; - } + 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 { + if (merchandise.getType() == 2) { + return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + } else { + return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + } + } catch (Exception e) { + return ResultUtil.runErr(); + } + case 2: + if (merchandise.getType() == 2) { + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code); + } else { + return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code); + } + default: + break; + } + break; + default: + break; } - return ResultUtil.success(); } + public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){ + try { + if (ToolUtil.isEmpty(appUser.getIntegral()) || (ToolUtil.isNotEmpty(appUser.getIntegral()) && appUser.getIntegral() < points)){ + return false; + } + // 积分变更记录 + UserIntegralChanges userIntegralChanges = new UserIntegralChanges(); + userIntegralChanges.setAppUserId(appUserId); + userIntegralChanges.setOldIntegral(appUser.getIntegral()); + userIntegralChanges.setType(2); + appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); + userIntegralChanges.setNewIntegral(appUser.getIntegral()); + userIntegralChanges.setInsertTime(new Date()); + uicMapper.insert(userIntegralChanges); + + this.baseMapper.updateById(appUser); + return true; + }catch (Exception e){ + return false; + } + } private ResultUtil AlipayPayment(BigDecimal cash, String code) { ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, cash.toString(), -- Gitblit v1.7.1