| | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alipay.api.AlipayApiException; |
| | | import com.alipay.api.domain.Person; |
| | | import com.alipay.api.response.AlipayTradeQueryResponse; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import com.dsh.course.entity.*; |
| | | import com.dsh.course.entity.TAppUser; |
| | | import com.dsh.course.entity.dto.StudentQeryDto; |
| | | import com.dsh.course.feignclient.account.AppUserClient; |
| | | import com.dsh.course.feignclient.account.CoachClient; |
| | | import com.dsh.course.feignclient.account.StudentClient; |
| | | import com.dsh.course.feignclient.account.UserIntegralChangesClient; |
| | | import com.dsh.course.feignclient.account.*; |
| | | import com.dsh.course.feignclient.account.model.*; |
| | | import com.dsh.course.feignclient.activity.BenefitVideoClient; |
| | | import com.dsh.course.feignclient.activity.CouponClient; |
| | |
| | | import javax.annotation.Resource; |
| | | import javax.persistence.criteria.CriteriaBuilder; |
| | | import java.math.BigDecimal; |
| | | import java.math.MathContext; |
| | | import java.math.RoundingMode; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | |
| | | @Resource |
| | | private UserIntegralChangesClient userIntegralChangesClient; |
| | | |
| | | @Resource |
| | | private StudentHonorClient studentHonorClient; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<CoursePackagePaymentVO> listAll(CoursePackagePaymentQuery query) { |
| | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto) { |
| | | List<Map<String, Object>> studentTotal = this.baseMapper.getStudentTotal(studentQeryDto); |
| | | |
| | | for (Map<String, Object> student : studentTotal) { |
| | | Integer appUserId = (Integer) student.get("appUserId"); |
| | | AppUser appUser = appuClient.queryAppUser(appUserId); |
| | | student.put("province", appUser.getProvince()); |
| | | student.put("provinceCode", appUser.getProvinceCode()); |
| | | |
| | | student.put("city", appUser.getCity()); |
| | | student.put("cityCode", appUser.getCityCode()); |
| | | |
| | | Student studentId = studentClient.queryStudentById((Integer) student.get("studentId")); |
| | | student.put("studentName", studentId.getName()); |
| | | BigDecimal cashPayment = (BigDecimal) student.get("cashPayment"); |
| | | BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours"); |
| | | BigDecimal hasHours = (BigDecimal) student.get("hasHours"); |
| | | if (cashPayment == null) { |
| | | String cityCode = studentQeryDto.getCityCode(); |
| | | //获取用户数据 |
| | | List<Integer> appUserIds = null; |
| | | if(ToolUtil.isNotEmpty(cityCode)){ |
| | | List<AppUser> appUsers = appuClient.queryAppUserByCityCode(cityCode); |
| | | if(appUsers.size() > 0){ |
| | | appUserIds = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); |
| | | } |
| | | } |
| | | QueryWrapper<CoursePackageStudent> status = new QueryWrapper<CoursePackageStudent>().eq("payStatus", 2).eq("status", 1); |
| | | if(null != appUserIds){ |
| | | status.in("appUserId", appUserIds); |
| | | } |
| | | List<Map<String, Object>> maps = this.baseMapper.getStudentTotal(appUserIds, studentQeryDto.getStart(), studentQeryDto.getEnd()); |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | for (Map<String, Object> objectMap : maps) { |
| | | if(null == objectMap.get("studentId")){ |
| | | continue; |
| | | } |
| | | if (totalClassHours.compareTo(BigDecimal.ZERO) == 0) { |
| | | totalClassHours = totalClassHours.add(new BigDecimal("1")); |
| | | Integer studentId = Integer.valueOf(objectMap.get("studentId").toString()); |
| | | Integer appUserId = Integer.valueOf(objectMap.get("appUserId").toString()); |
| | | Integer coursePackageId = Integer.valueOf(objectMap.get("coursePackageId").toString()); |
| | | Integer number = Integer.valueOf(objectMap.get("number").toString()); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | Student student = studentClient.queryStudentById(studentId); |
| | | if(null == student){ |
| | | continue; |
| | | } |
| | | BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP) |
| | | .multiply(hasHours).setScale(2, RoundingMode.HALF_UP); |
| | | student.put("hasPayment", hasPayment); |
| | | } |
| | | |
| | | if (studentQeryDto.getCityCode() != null && studentQeryDto.getCityCode() != "") { |
| | | String value = studentQeryDto.getCityCode(); |
| | | boolean allZeros = value.substring(value.length() - 4).endsWith("0000"); |
| | | System.out.println(allZeros); // Output: true |
| | | if (allZeros) { |
| | | Iterator<Map<String, Object>> iterator = studentTotal.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map<String, Object> student = iterator.next(); |
| | | String cityCode = (String) student.get("provinceCode"); |
| | | if (!cityCode.equals(studentQeryDto.getCityCode())) { |
| | | iterator.remove(); // Remove the element from the list |
| | | } |
| | | } |
| | | } else { |
| | | Iterator<Map<String, Object>> iterator = studentTotal.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map<String, Object> student = iterator.next(); |
| | | String cityCode = (String) student.get("cityCode"); |
| | | if (!cityCode.equals(studentQeryDto.getCityCode())) { |
| | | iterator.remove(); // Remove the element from the list |
| | | } |
| | | } |
| | | map.put("studentName", student.getName()); |
| | | AppUser appUser = appuClient.queryAppUser(appUserId); |
| | | if(null == appUser){ |
| | | continue; |
| | | } |
| | | } |
| | | map.put("province", appUser.getProvince()); |
| | | map.put("provinceCode", appUser.getProvinceCode()); |
| | | map.put("city", appUser.getCity()); |
| | | map.put("cityCode", appUser.getCityCode()); |
| | | TCoursePackage coursePackage = coursePackageService.getById(coursePackageId); |
| | | map.put("courseName", coursePackage.getName()); |
| | | map.put("totalClassHours", number); |
| | | |
| | | if (studentQeryDto.getStudentName() != null && studentQeryDto.getStudentName() != "") { |
| | | List<Map<String, Object>> totallike = new ArrayList<>(); |
| | | for (Map<String, Object> student : studentTotal) { |
| | | String studentName = (String) student.get("studentName"); |
| | | if (studentName.contains(studentQeryDto.getStudentName())) { |
| | | totallike.add(student); |
| | | } |
| | | |
| | | CoursePackageOrder coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>().eq("appUserId", appUserId) |
| | | .eq("coursePackageId", coursePackageId).eq("payStatus", 2).eq("state", 1) |
| | | .gt("cashPayment", 0).last(" and studentIds like '%" + studentId + "%' order by insertTime desc limit 0, 1")); |
| | | Double cashPayment = 0D; |
| | | if(null != coursePackageOrder && coursePackageOrder.getClassHours() > 0){ |
| | | cashPayment = coursePackageOrder.getCashPayment().divide(new BigDecimal(coursePackageOrder.getClassHours()), new MathContext(2, RoundingMode.HALF_EVEN)).doubleValue(); |
| | | } |
| | | return totallike; |
| | | map.put("cashPayment", cashPayment * number); |
| | | |
| | | int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>().eq("studentId", studentId) |
| | | .eq("coursePackageId", coursePackageId).eq("status", 3)); |
| | | map.put("hasHours", count); |
| | | map.put("hasPayment", count * cashPayment); |
| | | |
| | | list.add(map); |
| | | } |
| | | return studentTotal; |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> bypac(PacQueryDto pacQueryDto) { |
| | | if (pacQueryDto.getCityCode() != null && pacQueryDto.getCityCode() != "") { |
| | | String value = pacQueryDto.getCityCode(); |
| | | boolean allZeros = value.substring(value.length() - 4).endsWith("0000"); |
| | | System.out.println(allZeros); // Output: true |
| | | List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto.getStart(), pacQueryDto.getEnd(), pacQueryDto.getStoreIds(), pacQueryDto.getName()); |
| | | for (Map<String, Object> map : maps) { |
| | | Integer id = Integer.valueOf(map.get("id").toString()); |
| | | Integer storeId = Integer.valueOf(map.get("storeId").toString()); |
| | | Integer number = Integer.valueOf(map.get("number").toString()); |
| | | Store store = storeClient.queryStoreById(storeId); |
| | | map.put("store", store.getName()); |
| | | map.put("totalClassHours", number); |
| | | |
| | | if (allZeros) { |
| | | pacQueryDto.setProvinceCode(pacQueryDto.getCityCode()); |
| | | pacQueryDto.setCityCode(null); |
| | | List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>() |
| | | .eq("coursePackageId", id).eq("payStatus", 2).eq("state", 1) |
| | | .gt("cashPayment", 0)); |
| | | |
| | | |
| | | Double cashPayment = 0D; |
| | | BigDecimal p = new BigDecimal(0); |
| | | for (CoursePackageOrder coursePackageOrder : list) { |
| | | p = p.add(coursePackageOrder.getCashPayment()); |
| | | } |
| | | |
| | | } |
| | | List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto); |
| | | |
| | | if (pacQueryDto.getName() != null && pacQueryDto.getName() != "") { |
| | | List<Map<String, Object>> totallike = new ArrayList<>(); |
| | | for (Map<String, Object> student : maps) { |
| | | String studentName = (String) student.get("name"); |
| | | if (studentName.contains(pacQueryDto.getName())) { |
| | | totallike.add(student); |
| | | } |
| | | |
| | | if(list.size() > 0){ |
| | | cashPayment = p.divide(new BigDecimal(list.size()), new MathContext(2, RoundingMode.HALF_EVEN)).doubleValue(); |
| | | } |
| | | return totallike; |
| | | map.put("cashPayment", cashPayment * number); |
| | | |
| | | int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", id).eq("status", 3)); |
| | | map.put("hasHours", count); |
| | | map.put("lavePay", count * cashPayment); |
| | | } |
| | | |
| | | |
| | | return maps; |
| | | } |
| | | |
| | |
| | | .eq("coursePackageId", detailsRequest.getCoursePackageId()) |
| | | .eq("courseId", detailsRequest.getVideoId()) |
| | | ); |
| | | //完成学习 |
| | | if (null != userVideoDetails && userVideoDetails.getState() == 1 && detailsRequest.getIsOver() == 1) { |
| | | userVideoDetails.setState(2); |
| | | userVideoDetails.setUpdateTime(new Date()); |
| | |
| | | AppUser appUser = appuClient.queryAppUser(coursePackageScheduling.getAppUserId()); |
| | | appUser.setIntegral((null == appUser.getIntegral() ? 0 : appUser.getIntegral()) + (null == coursePackageScheduling.getIntegral() ? 0 : coursePackageScheduling.getIntegral())); |
| | | appuClient.updateAppUser(appUser); |
| | | //保存用户积分变动记录 |
| | | SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); |
| | | vo.setAppUserId(coursePackageScheduling.getAppUserId()); |
| | | vo.setIntegral(coursePackageScheduling.getIntegral()); |
| | | vo.setType(4); |
| | | userIntegralChangesClient.saveUserIntegralChanges(vo); |
| | | //添加勋章数据 |
| | | Integer number = uvdmapper.selectCount(new QueryWrapper<UserVideoDetails>().eq("appUserId", appUserId).eq("state", 2)); |
| | | StudentHonor studentHonor = new StudentHonor(); |
| | | studentHonor.setAppUserId(appUserId); |
| | | studentHonor.setHonorType(4); |
| | | studentHonor.setNumber(number); |
| | | studentHonorClient.saveStudentHonor(studentHonor); |
| | | return "SUCCESS"; |
| | | } |
| | | return "ERROR"; |
| | |
| | | @Autowired |
| | | private TCoursePackageService coursePackageService; |
| | | |
| | | @Autowired |
| | | private ALiSendSms aLiSendSms; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>().eq("appUserId", student.getAppUserId()).like("studentIds", student.getStudentId()).eq("coursePackageId", student.getCoursePackageId()).orderByDesc("insertTime").last("limit 1")); |
| | | |
| | | } |
| | | |
| | | response.setOrinPrice(coursePackageOrder.getOriginalPrice()); |
| | | |
| | | |
| | | response.setChooseHours(coursePackageOrder.getClassHours()); |
| | | response.setStuIds(coursePackageOrder.getStudentIds().split(";")); |
| | | response.setPayType(coursePackageOrder.getPayType()); |
| | | response.setPayPrice(coursePackageOrder.getCashPayment()); |
| | | response.setCoinPrice(coursePackageOrder.getPlayPaiCoin()); |
| | | |
| | | if (null != coursePackageOrder) { |
| | | TCoursePackage coursePackage = tcpmapper.selectById(coursePackageOrder.getCoursePackageId()); |
| | |
| | | } |
| | | Store store = storeClient.queryStoreById(coursePackage.getStoreId()); |
| | | response.setStoreName(store.getName()); |
| | | response.setStoreAddress(store.getAddress()); |
| | | |
| | | if (ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)) { |
| | | Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); |
| | |
| | | response.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); |
| | | |
| | | Integer payType = coursePackageOrder.getPayType(); |
| | | if(null == payType){ |
| | | CoursePackagePaymentConfig config = coursePackagePaymentConfigService.list(new QueryWrapper<CoursePackagePaymentConfig>().eq("coursePackageId", coursePackage.getId()).orderByAsc("classHours")).get(0); |
| | | if (ToolUtil.isNotEmpty(config.getCashPayment()) && config.getCashPayment() > 0 && ToolUtil.isNotEmpty(config.getPlayPaiCoin()) && config.getPlayPaiCoin() > 0) { |
| | | payType = 3; |
| | | } else if (ToolUtil.isNotEmpty(config.getCashPayment()) && config.getCashPayment() > 0) { |
| | | payType = 1; |
| | | } else if (ToolUtil.isNotEmpty(config.getPlayPaiCoin()) && config.getPlayPaiCoin() > 0) { |
| | | payType = 2; |
| | | } |
| | | } |
| | | BigDecimal cashPayment = coursePackageOrder.getCashPayment(); |
| | | double cashPaymentValue = 0.0; |
| | | if (cashPayment != null) { |
| | |
| | | |
| | | switch (payType) { |
| | | case 1: |
| | | case 2: |
| | | case 3: |
| | | response.setAmount(cashPaymentValue); |
| | | response.setVipAmount(discountMember); |
| | | break; |
| | | case 3: |
| | | case 2: |
| | | if (playPaiCoin!=null) { |
| | | response.setWpGold(playPaiCoin); |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public ResultUtil ContinuationOrpaymentCourse(Integer ids, ClasspaymentRequest request) { |
| | | AppUser userIdFormRedis = appuClient.queryAppUser(ids); |
| | | TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId()); |
| | | public ResultUtil ContinuationOrpaymentCourse(Integer userId, ClasspaymentRequest request) { |
| | | AppUser appUser = appuClient.queryAppUser(userId); |
| | | CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(request.getCoursePayId()); |
| | | String code = ""; |
| | | BigDecimal money = tCoursePackagePayment.getCashPayment(); |
| | | Integer wpGold = tCoursePackagePayment.getPlayPaiCoin(); |
| | | if (tCoursePackagePayment.getPayStatus() == 1) { |
| | | // 待支付的订单 |
| | | code = tCoursePackagePayment.getCode(); |
| | | tCoursePackagePayment.setPayType(request.getPayType()); |
| | | BigDecimal money = coursePackageOrder.getCashPayment(); |
| | | Integer wpGold = coursePackageOrder.getPlayPaiCoin(); |
| | | if (coursePackageOrder.getPayStatus() == 1) { |
| | | code = coursePackageOrder.getCode(); |
| | | coursePackageOrder.setPayType(request.getPayType()); |
| | | if (request.getUseConpon() == 1) { |
| | | tCoursePackagePayment.setUserCouponId(Long.valueOf(request.getUseConpon())); |
| | | coursePackageOrder.setUserCouponId(Long.valueOf(request.getUseConpon())); |
| | | } |
| | | this.baseMapper.updateById(tCoursePackagePayment); |
| | | coursePackageOrder.setAppUserId(null); |
| | | coursePackageOrderService.updateById(coursePackageOrder); |
| | | } else { |
| | | // 续课的订单 |
| | | // 查询是否续课优惠 |
| | | |
| | | CoursePackagePaymentConfig paymentConfig = cpConfigMapper.selectOne(new QueryWrapper<CoursePackagePaymentConfig>() |
| | | .eq("coursePackageId", request.getLessonId()) |
| | | .eq("classHours", request.getCourseHoursNum())); |
| | |
| | | if (ToolUtil.isNotEmpty(coursePackageDiscount)) { |
| | | String content = coursePackageDiscount.getContent(); |
| | | JSONObject jsonObject = JSON.parseObject(content); |
| | | if (userIdFormRedis.getIsVip() == 1) { |
| | | if (appUser.getIsVip() == 1) { |
| | | Double jsonObjectDouble = jsonObject.getDouble("num1"); |
| | | money = BigDecimal.valueOf(jsonObjectDouble); |
| | | } else { |
| | |
| | | money = BigDecimal.valueOf(jsonObjectDouble); |
| | | } |
| | | } |
| | | TCoursePackagePayment newPayment = new TCoursePackagePayment(); |
| | | CoursePackageOrder newPayment = new CoursePackageOrder(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); |
| | | newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5)); |
| | | newPayment.setAppUserId(userIdFormRedis.getId()); |
| | | newPayment.setStudentId(request.getStuId()); |
| | | newPayment.setAppUserId(appUser.getId()); |
| | | newPayment.setStudentIds(request.getStuId().toString()); |
| | | newPayment.setCoursePackageId(request.getLessonId()); |
| | | newPayment.setClassHours(tCoursePackagePayment.getClassHours()); |
| | | newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice()); |
| | | newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours()); |
| | | newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours()); |
| | | newPayment.setClassHours(coursePackageOrder.getClassHours()); |
| | | newPayment.setOriginalPrice(coursePackageOrder.getOriginalPrice()); |
| | | if (request.getUseConpon() == 1) { |
| | | newPayment.setUserCouponId(Long.valueOf(request.getUseConpon())); |
| | | } |
| | | newPayment.setAbsencesNumber(0); |
| | | newPayment.setPayUserType(1); |
| | | newPayment.setPayStatus(1); |
| | | newPayment.setStatus(1); |
| | | newPayment.setPayType(request.getPayType()); |
| | | newPayment.setState(1); |
| | | newPayment.setInsertTime(new Date()); |
| | | this.baseMapper.insert(newPayment); |
| | | coursePackageOrderService.save(newPayment); |
| | | code = newPayment.getCode(); |
| | | } |
| | | switch (request.getPayType()) { |
| | |
| | | } |
| | | return AlipayPayment(code, money); |
| | | case 3: |
| | | PlaypaiGoldPayment(userIdFormRedis, code, wpGold); |
| | | PlaypaiGoldPayment(appUser, code, wpGold); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | |
| | | |
| | | public ResultUtil WeChatPayment(String code, BigDecimal request) throws Exception { |
| | | TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; |
| | | ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, request.toString(), |
| | | "/base/coursePackage/wechatRegisteredCoursesCallback", "APP", ""); |
| | | if (weixinpay.getCode() == 200) { |
| | | String finalCode = code; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | |
| | | int min = 5000; |
| | | wait += (min * num); |
| | | Thread.sleep(wait); |
| | | TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); |
| | | if (coursePackagePayment.getPayStatus() == 2) { |
| | | CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() |
| | | .eq("code", finalCode).eq("state", 1)); |
| | | if (coursePackageOrder1.getPayStatus() == 2) { |
| | | break; |
| | | } |
| | | ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); |
| | | if (resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1) { |
| | | ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(finalCode, ""); |
| | | if (resultUtil.getCode() == 200 && coursePackageOrder1.getPayStatus() == 1) { |
| | | /** |
| | | * SUCCESS—支付成功, |
| | | * REFUND—转入退款, |
| | |
| | | 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); |
| | | baseMapper1.deleteById(coursePackagePayment.getId()); |
| | | //有待支付的订单,这里不处理 |
| | | // coursePackageOrder1.setState(3); |
| | | // coursePackageOrderService.updateById(coursePackageOrder1); |
| | | break; |
| | | } |
| | | if ("SUCCESS".equals(s)) { |
| | | coursePackagePayment.setPayStatus(2); |
| | | coursePackagePayment.setOrderNumber(transaction_id); |
| | | baseMapper1.updateById(coursePackagePayment); |
| | | coursePackageOrder1.setPayStatus(2); |
| | | coursePackageOrder1.setOrderNumber(transaction_id); |
| | | coursePackageOrder1.setAppUserId(null); |
| | | coursePackageOrderService.updateById(coursePackageOrder1); |
| | | //修改课时有效期 |
| | | |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() |
| | | .eq("coursePackageId", coursePackageOrder1.getId()) |
| | | .eq("classHours", coursePackageOrder1.getClassHours()) |
| | | ); |
| | | coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); |
| | | break; |
| | | } |
| | | if ("USERPAYING".equals(s)) { |
| | |
| | | } |
| | | return weixinpay; |
| | | } |
| | | |
| | | private String smid = "2088330203191220";//平台支付宝商户号 |
| | | |
| | | public ResultUtil AlipayPayment(String code, BigDecimal request) { |
| | | TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; |
| | | ResultUtil alipay = payMoneyUtil.alipay("课包购买", "课包购买", "", code, request.toString(), |
| | | TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | TCoursePackage byId = coursePackageService.getById(coursePackageId); |
| | | Store store = storeClient.queryStoreById(byId.getStoreId()); |
| | | String smid1=""; |
| | | if (store.getOperatorId() == null ){ |
| | | smid1 = smid; |
| | | }else if (store.getOperatorId() == 0){ |
| | | smid1 = smid; |
| | | }else{ |
| | | smid1 = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | } |
| | | ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包购买", "课包购买", "", code, request.toString(), |
| | | "/base/coursePackage/alipayRegisteredCoursesCallback"); |
| | | if (alipay.getCode() == 200) { |
| | | String finalCode = code; |
| | | new Thread(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | Thread.sleep(1000); |
| | | int num = 1; |
| | | int wait = 0; |
| | | while (num <= 10) { |
| | | int min = 5000; |
| | | wait += (min * num); |
| | | Thread.sleep(wait); |
| | | TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); |
| | | if (coursePackagePayment.getPayStatus() == 2) { |
| | | CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() |
| | | .eq("code", finalCode).eq("state", 1)); |
| | | if (coursePackageOrder1.getPayStatus() == 2) { |
| | | break; |
| | | } |
| | | AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); |
| | | |
| | | if (coursePackagePayment.getPayStatus() == 1) { |
| | | AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(finalCode); |
| | | if (null != alipayTradeQueryResponse) { |
| | | /** |
| | | * WAIT_BUYER_PAY(交易创建,等待买家付款)、 |
| | | * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 |
| | | * TRADE_SUCCESS(交易支付成功)、 |
| | | * TRADE_FINISHED(交易结束,不可退款) |
| | | */ |
| | | // Map<String, String> data1 = resultUtil.getData(); |
| | | String s = alipayTradeQueryResponse.getTradeStatus(); |
| | | |
| | | String tradeNo = alipayTradeQueryResponse.getTradeNo(); |
| | | if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { |
| | | coursePackagePayment.setState(3); |
| | | baseMapper1.deleteById(coursePackagePayment.getId()); |
| | | //有待支付的订单,这里不处理 |
| | | // coursePackageOrder1.setState(3); |
| | | // coursePackageOrderService.updateById(coursePackageOrder1); |
| | | break; |
| | | } |
| | | if ("TRADE_SUCCESS".equals(s)) { |
| | | coursePackagePayment.setPayStatus(2); |
| | | coursePackagePayment.setOrderNumber(tradeNo); |
| | | baseMapper1.updateById(coursePackagePayment); |
| | | // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 |
| | | Integer coursePackageId = coursePackagePayment.getCoursePackageId(); |
| | | TCoursePackage byId = coursePackageService.getById(coursePackageId); |
| | | Store store = storeClient.queryStoreById(byId.getStoreId()); |
| | | if (store.getOperatorId() == null ){ |
| | | // 说明是平台的门店 |
| | | payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); |
| | | }else if (store.getOperatorId() == 0){ |
| | | payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); |
| | | }else{ |
| | | String smid = storeClient.getSMIDByOperatorId(store.getOperatorId()); |
| | | payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); |
| | | } |
| | | break; |
| | | } |
| | | if ("WAIT_BUYER_PAY".equals(s)) { |
| | |
| | | TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>() |
| | | .eq("code", code)); |
| | | if (appUser.getPlayPaiCoins() < wpGold) { |
| | | return ResultUtil.error("玩牌币不足!"); |
| | | return ResultUtil.error("玩湃币不足!"); |
| | | } |
| | | packagePayment.setPayStatus(2); |
| | | packagePayment.setPayUserId(appUser.getId()); |
| | |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); |
| | | if (tCoursePackagePayments.size() > 0) { |
| | | |
| | | // int pageNum = 1; // 页码 |
| | | int pageSize = 10; // 每页记录数 |
| | | Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize); |
| | | |
| | | // for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { |
| | | // List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() |
| | | // .in("coursePackageId",ids) |
| | | // .eq("studentId",stuId) |
| | | // .eq("appUserId",appUserId) |
| | | // .eq("reservationStatus",1)); |
| | | IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>() |
| | | .in("coursePackageId", ids) |
| | | .eq("studentId", stuId) |
| | |
| | | } |
| | | } |
| | | |
| | | // recordVo.setCourseHours(tCoursePackagePayment.getClassHours()); |
| | | Date date = DateUtil.getDate(); |
| | | |
| | | |
| | | CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId()); |
| | | // String classStartTime = coursePackage.getClassStartTime(); |
| | | // String classEndTime = coursePackage.getClassEndTime(); |
| | | //这里是过滤今天之后的数据 |
| | | |
| | | // if (byId == null||byId.getClassDate().after(new Date())){ |
| | | // continue; |
| | | // } |
| | | |
| | | if (byId == null) { |
| | | continue; |
| | | } |
| | |
| | | |
| | | |
| | | recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11)); |
| | | |
| | | // recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime); |
| | | Store store = stoClient.queryStoreById(coursePackage.getStoreId()); |
| | | recordVo.setStoreNameAddr(store.getName() + store.getAddress()); |
| | | recordVo.setCourseStuRecordId(coursePackageStudent.getId()); |
| | |
| | | //待上课 |
| | | recordVo.setStatus(1); |
| | | } |
| | | // else if(coursePackageStudent.getSignInOrNot()==2){ |
| | | // recordVo.setStatus(5); |
| | | // } |
| | | else { |
| | | // CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() |
| | | // .eq("coursePackageId",coursePackageStudent.getCoursePackageId())); |
| | | CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() |
| | | .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); |
| | | if (ToolUtil.isNotEmpty(cancelledClasses)) { |
| | |
| | | } |
| | | |
| | | } |
| | | // } |
| | | |
| | | return recordVoList; |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public ResultUtil insertVipPaymentCallback(String code, String orderNumber) { |
| | | TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code); |
| | | if (coursePackagePayment.getPayStatus() != 1) { |
| | | CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() |
| | | .eq("code", code).eq("state", 1)); |
| | | if (coursePackageOrder1.getPayStatus() == 2) { |
| | | return ResultUtil.success(); |
| | | } |
| | | coursePackagePayment.setPayStatus(2); |
| | | coursePackagePayment.setOrderNumber(orderNumber); |
| | | this.baseMapper.updateById(coursePackagePayment); |
| | | coursePackageOrder1.setPayStatus(2); |
| | | coursePackageOrder1.setOrderNumber(orderNumber); |
| | | coursePackageOrder1.setAppUserId(null); |
| | | coursePackageOrderService.updateById(coursePackageOrder1); |
| | | |
| | | CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() |
| | | .eq("coursePackageId", coursePackageOrder1.getId()) |
| | | .eq("classHours", coursePackageOrder1.getClassHours()) |
| | | ); |
| | | coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); |
| | | try { |
| | | coursePackageService.moneyOut(orderNumber,orderNumber,code); |
| | | } catch (AlipayApiException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | |
| | | List<Map<String, Object>> list = new ArrayList<>(); |
| | | |
| | | if (coursePackage.getType()==1){ |
| | | list = this.baseMapper.queryRegistrationRecord(page, coursePackageId, userIds, studentIds);}else { |
| | | list = this.baseMapper.queryRegistrationRecord(page, coursePackageId, userIds, studentIds); |
| | | }else { |
| | | list = this.baseMapper.queryRegistrationRecord1(page, coursePackageId, userIds, studentIds); |
| | | } |
| | | |
| | | list.addAll(this.baseMapper.queryRegistrationRecord3(coursePackageId,userIds,studentIds)); |
| | | for (Map<String, Object> map : list) { |
| | | |
| | | |
| | | Long id = Long.valueOf(map.get("id").toString()); |
| | | Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); |
| | |
| | | if (coursePackage.getType()==1) { |
| | | studentId = Integer.valueOf(map.get("studentId").toString()); |
| | | }else { |
| | | studentId = Integer.valueOf(map.get("studentIds").toString()); |
| | | studentId = Integer.valueOf(map.get("studentIds").toString().split(",")[0]); |
| | | } |
| | | |
| | | TAppUser appUser = appuClient.queryAppUser1(appUserId); |
| | |
| | | map.put("studentName", null != student ? student.getName() : ""); |
| | | Integer integer = cpsMapper.selectCount(new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId) |
| | | .eq("studentId", studentId).eq("coursePackagePaymentId", id).eq("signInOrNot", 2)); |
| | | |
| | | int count = coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackageId).eq("studentId", studentId).eq("signInOrNot",2)); |
| | | |
| | | map.put("absencesNumber", count); |
| | | |
| | | map.put("already", integer); |
| | | } |
| | | return list; |
| | |
| | | |
| | | coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum()); |
| | | coursePackageOrderStudentService.updateById(coursePackageOrderStudent); |
| | | Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); |
| | | if(3 >= laveClassHours){ |
| | | AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId()); |
| | | //发送短信提醒 |
| | | aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", ""); |
| | | } |
| | | |
| | | |
| | | CourseCounsum courseCounsum = new CourseCounsum(); |