|  |  |  | 
|---|
|  |  |  | package com.dsh.account.service.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.alipay.api.AlipayApiException; | 
|---|
|  |  |  | import com.alipay.api.AlipayClient; | 
|---|
|  |  |  | import com.alipay.api.DefaultAlipayClient; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.dsh.account.dto.*; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | import com.dsh.account.feignclient.activity.*; | 
|---|
|  |  |  | import com.dsh.account.feignclient.activity.model.*; | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.RechargeConfigClient; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.SiteClient; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.StoreClient; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.model.SiteBooking; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.model.Store; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.model.StoreDetailOfCourse; | 
|---|
|  |  |  | import com.dsh.account.feignclient.other.model.TImgConfig; | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.dsh.account.model.AppUserByNameAndPhoneDTO; | 
|---|
|  |  |  | 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.IRefereeService; | 
|---|
|  |  |  | import com.dsh.account.service.TAppGiftService; | 
|---|
|  |  |  | import com.dsh.account.service.TAppUserService; | 
|---|
|  |  |  | import com.dsh.account.util.*; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private ImgConfigClient icfgClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private VideoOfCourseListClient voclClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private CoursePackageConfigClient cpconClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private PayMoneyUtil payMoneyUtil; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private SiteClient stClient; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TAppUserMapper appUserMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥 | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserConponClient userConponClient; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TAppUserService appUserService; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private MerChandiseClient merChandiseClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private PayMoneyUtil payMoneyUtil; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserCouponPaymentClient userCouponPaymentClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IRefereeService refereeService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 对数据进行分页处理的方法 | 
|---|
|  |  |  | private static Page<Goods> getPage(List<Goods> dataList, Pageable pageable) { | 
|---|
|  |  |  | int start = (int) pageable.getOffset(); | 
|---|
|  |  |  | int end = Math.min((start + pageable.getPageSize()), dataList.size()); | 
|---|
|  |  |  | return new PageImpl<>(dataList.subList(start, end), pageable, dataList.size()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<QueryAppUserVO> listAll(QueryAppUser query) { | 
|---|
|  |  |  | return appUserMapper.listAll(query); | 
|---|
|  |  |  | return appUserMapper.listAll(query); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public HashMap<String,Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId,String lon,String lat) { | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | HashMap<String, Object> map = paymentClient.weeksOfCourseDetailsList(new CourseDetailReq(appUserId, stuId, time, storeId, lon, lat)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return map; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<SelectDto> getSelects(List<Integer> studentIds) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Object changeState(AdvertisementChangeStateDTO dto) { | 
|---|
|  |  |  | return appUserMapper.changeState(dto.getIds(),dto.getState()); | 
|---|
|  |  |  | return appUserMapper.changeState(dto.getIds(), dto.getState()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<TAppUser> queryAPPUserByNameAndPhone(AppUserByNameAndPhoneDTO dto) { | 
|---|
|  |  |  | return appUserMapper.queryAPPUserByNameAndPhone(dto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<YearData> getYearUserCount(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.getYearUserCount(dto); | 
|---|
|  |  |  | 
|---|
|  |  |  | public WeekData getWeekUserCount4(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.getWeekUserCount4(dto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public WeekData getWeekUserCount3(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.getWeekUserCount3(dto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public WeekData getWeekUserCount2(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.getWeekUserCount2(dto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public WeekData getWeekUserCount1(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.getWeekUserCount1(dto); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<DayData> getDayUserCount(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | List<DayData> dayUserCount = appUserMapper.getDayUserCount(dto); | 
|---|
|  |  |  | if(dayUserCount.size()<7){ | 
|---|
|  |  |  | if (dayUserCount.size() < 7) { | 
|---|
|  |  |  | for (int i = 1; i <= 6; i++) { | 
|---|
|  |  |  | String time = LocalDate.now().minusDays(i).toString(); | 
|---|
|  |  |  | for (DayData dayData : dayUserCount) { | 
|---|
|  |  |  | if(!time.equals(dayData.getDay())){ | 
|---|
|  |  |  | dayUserCount.add(new DayData(time,0)); | 
|---|
|  |  |  | if (!time.equals(dayData.getDay())) { | 
|---|
|  |  |  | dayUserCount.add(new DayData(time, 0)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | dayUserCount.forEach(dayData->dayData.setDay(dayData.getDay().split("-")[2])); | 
|---|
|  |  |  | dayUserCount.forEach(dayData -> dayData.setDay(dayData.getDay().split("-")[2])); | 
|---|
|  |  |  | return dayUserCount.stream().sorted(Comparator.comparing(DayData::getDay)).collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | public List<GroupCityInfoVO> groupCityInfo(UserInfoQueryDTO dto) { | 
|---|
|  |  |  | return appUserMapper.groupCityInfo(dto); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ClassInfoVo queryUserOfStus(Integer id,Integer uid) { | 
|---|
|  |  |  | public ClassInfoVo queryUserOfStus(Integer id, Integer uid) { | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectById(uid); | 
|---|
|  |  |  | ClassInfoVo classInfoVo = new ClassInfoVo(); | 
|---|
|  |  |  | //        if (ToolUtil.isNotEmpty(tAppUser)){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<TStudent> tStudents = new ArrayList<>(); | 
|---|
|  |  |  | if (id!=null) { | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | if (id != null) { | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("id", id).eq("state", 1)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tStudents.size() == 0) { | 
|---|
|  |  |  | 
|---|
|  |  |  | .eq("appUserId", tAppUser.getId()) | 
|---|
|  |  |  | .eq("state", 1)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("appUserId",tAppUser.getId()) | 
|---|
|  |  |  | .eq("state",1) | 
|---|
|  |  |  | .eq("isDefault",1)); | 
|---|
|  |  |  | if (tStudents.isEmpty()){ | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("appUserId",tAppUser.getId()) | 
|---|
|  |  |  | .eq("state",1)) | 
|---|
|  |  |  | ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("appUserId", tAppUser.getId()) | 
|---|
|  |  |  | .eq("state", 1) | 
|---|
|  |  |  | .eq("isDefault", 1)); | 
|---|
|  |  |  | if (tStudents.isEmpty()) { | 
|---|
|  |  |  | tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("appUserId", tAppUser.getId()) | 
|---|
|  |  |  | .eq("state", 1)) | 
|---|
|  |  |  | ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tStudents.size() > 0 ){ | 
|---|
|  |  |  | TStudent tStudent = tStudents.get(0); | 
|---|
|  |  |  | classInfoVo.setStuId(tStudent.getId()); | 
|---|
|  |  |  | classInfoVo.setIsThere(1); | 
|---|
|  |  |  | classInfoVo.setStuImg(tStudent.getHeadImg()); | 
|---|
|  |  |  | classInfoVo.setStuSex(tStudent.getSex()); | 
|---|
|  |  |  | classInfoVo.setStuAge(DateUtil.age(tStudent.getBirthday())); | 
|---|
|  |  |  | classInfoVo.setStuName(tStudent.getName()); | 
|---|
|  |  |  | classInfoVo.setHeight(tStudent.getHeight()); | 
|---|
|  |  |  | classInfoVo.setWeight(tStudent.getWeight()); | 
|---|
|  |  |  | classInfoVo.setBmi(tStudent.getBmi()); | 
|---|
|  |  |  | if (tStudent.getBmi()!=null) { | 
|---|
|  |  |  | classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<RegisteredCourse> courseList = new ArrayList<>(); | 
|---|
|  |  |  | List<StuCourseResp> stuCoursePayment = paymentClient.getStuCoursePayment(tStudent.getId()); | 
|---|
|  |  |  | List<Integer> coursePackIds = new ArrayList<>(); | 
|---|
|  |  |  | if (stuCoursePayment.size() > 0){ | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | course.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums()); | 
|---|
|  |  |  | course.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums())? 0 : tCoursePackagePayment.getResidueNums()); | 
|---|
|  |  |  | course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity()); | 
|---|
|  |  |  | course.setIsAble(tCoursePackagePayment.getIsAble()); | 
|---|
|  |  |  | course.setCourseType(tCoursePackagePayment.getCourseType()); | 
|---|
|  |  |  | courseList.add(course); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | classInfoVo.setCourseList(courseList); | 
|---|
|  |  |  | //                List<ExerciseVideo> stuCourseOfVideoList = voclClient.getStuCourseOfVideoList(coursePackIds); | 
|---|
|  |  |  | List<ExerciseVideo> query = voclClient.query(tStudent.getId()); | 
|---|
|  |  |  | classInfoVo.setExerciseVideoList(query); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | classInfoVo.setIsThere(2); | 
|---|
|  |  |  | List<TImgConfig> tImgConfigs = configClient.getNoneStuImgs(); | 
|---|
|  |  |  | if (tImgConfigs.size() > 0){ | 
|---|
|  |  |  | classInfoVo.setImgs(tImgConfigs.get(0).getContent()); | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | if (tStudents.size() > 0) { | 
|---|
|  |  |  | TStudent tStudent = tStudents.get(0); | 
|---|
|  |  |  | classInfoVo.setStuId(tStudent.getId()); | 
|---|
|  |  |  | classInfoVo.setIsThere(1); | 
|---|
|  |  |  | classInfoVo.setStuImg(tStudent.getHeadImg()); | 
|---|
|  |  |  | classInfoVo.setStuSex(tStudent.getSex()); | 
|---|
|  |  |  | classInfoVo.setStuAge(DateUtil.age(tStudent.getBirthday())); | 
|---|
|  |  |  | classInfoVo.setStuName(tStudent.getName()); | 
|---|
|  |  |  | classInfoVo.setHeight(tStudent.getHeight()); | 
|---|
|  |  |  | classInfoVo.setWeight(tStudent.getWeight()); | 
|---|
|  |  |  | classInfoVo.setBmi(tStudent.getBmi()); | 
|---|
|  |  |  | if (tStudent.getBmi() != null) { | 
|---|
|  |  |  | classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<RegisteredCourse> courseList = new ArrayList<>(); | 
|---|
|  |  |  | List<StuCourseResp> stuCoursePayment = paymentClient.getStuCoursePayment(tStudent.getId()); | 
|---|
|  |  |  | if (stuCoursePayment.size() > 0) { | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | course.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums()); | 
|---|
|  |  |  | course.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums()) ? 0 : tCoursePackagePayment.getResidueNums()); | 
|---|
|  |  |  | course.setPeriodOfValidity(sdf.format(tStudent.getValidity())); | 
|---|
|  |  |  | course.setIsAble(tCoursePackagePayment.getIsAble()); | 
|---|
|  |  |  | course.setCourseType(tCoursePackagePayment.getCourseType()); | 
|---|
|  |  |  | courseList.add(course); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | classInfoVo.setCourseList(courseList); | 
|---|
|  |  |  | List<ExerciseVideo> query = voclClient.query(tStudent.getId()); | 
|---|
|  |  |  | classInfoVo.setExerciseVideoList(query); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | classInfoVo.setIsThere(2); | 
|---|
|  |  |  | List<TImgConfig> tImgConfigs = configClient.getNoneStuImgs(); | 
|---|
|  |  |  | if (tImgConfigs.size() > 0) { | 
|---|
|  |  |  | classInfoVo.setImgs(tImgConfigs.get(0).getContent()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return classInfoVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 处理数据 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param storeOfCourses | 
|---|
|  |  |  | * @param longitude | 
|---|
|  |  |  | * @param latitude | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public List<CourseVenue> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude , String latitude){ | 
|---|
|  |  |  | public List<CourseVenue> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude, String latitude) { | 
|---|
|  |  |  | List<CourseVenue> courseVenues = new ArrayList<>(); | 
|---|
|  |  |  | Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId)); | 
|---|
|  |  |  | for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | CourseVenue courseVenue = new CourseVenue(); | 
|---|
|  |  |  | courseVenue.setStoreId(storeId); | 
|---|
|  |  |  | courseVenue.setAreaName(value.get(0).getCourseName()); | 
|---|
|  |  |  | if (ToolUtil.isEmpty(longitude) && ToolUtil.isEmpty(latitude)){ | 
|---|
|  |  |  | courseVenue.setSiteDistance(0+""); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | if (ToolUtil.isEmpty(longitude) && ToolUtil.isEmpty(latitude)) { | 
|---|
|  |  |  | courseVenue.setSiteDistance(0 + ""); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | courseVenue.setSiteDistance(LonlatUtils.distance(Double.parseDouble(longitude), Double.parseDouble(latitude), | 
|---|
|  |  |  | Double.parseDouble(value.get(0).getLon()), Double.parseDouble(value.get(0).getLat())) + ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return courseVenues; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取短信验证码 | 
|---|
|  |  |  | * @param type 1:登录,2:注册,3:修改密码,4:忘记密码 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param type  1:登录,2:注册,3:修改密码,4:忘记密码 | 
|---|
|  |  |  | * @param phone | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil getSMSCode(Integer type, String phone) throws Exception { | 
|---|
|  |  |  | if(type == 2){ | 
|---|
|  |  |  | if (type == 2) { | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3)); | 
|---|
|  |  |  | if(null != tAppUser){ | 
|---|
|  |  |  | if (null != tAppUser) { | 
|---|
|  |  |  | return ResultUtil.error("账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String numberRandom = UUIDUtil.getNumberRandom(6); | 
|---|
|  |  |  | String templateCode = ""; | 
|---|
|  |  |  | if(type == 1 || type == 2){ | 
|---|
|  |  |  | if (type == 1 || type == 2) { | 
|---|
|  |  |  | templateCode = "SMS_161275250"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(type == 3 || type == 4){ | 
|---|
|  |  |  | if (type == 3 || type == 4) { | 
|---|
|  |  |  | templateCode = "SMS_160960014"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}"); | 
|---|
|  |  |  | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 注册用户 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>() | 
|---|
|  |  |  | .eq("phone", addAppUserVo.getPhone()) | 
|---|
|  |  |  | .ne("state", 3)); | 
|---|
|  |  |  | if(null != tAppUser){ | 
|---|
|  |  |  | if (null != tAppUser) { | 
|---|
|  |  |  | return ResultUtil.error("账号已存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String value = redisUtil.getValue(addAppUserVo.getPhone()); | 
|---|
|  |  |  | if(!"123456".equals(addAppUserVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(addAppUserVo.getCode()))){ | 
|---|
|  |  |  | if (!"123456".equals(addAppUserVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(addAppUserVo.getCode()))) { | 
|---|
|  |  |  | return ResultUtil.error("验证码无效"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | tAppUser.setIsVip(0); | 
|---|
|  |  |  | tAppUser.setState(1); | 
|---|
|  |  |  | tAppUser.setInsertTime(new Date()); | 
|---|
|  |  |  | tAppUser.setProvince(""); | 
|---|
|  |  |  | tAppUser.setProvinceCode(""); | 
|---|
|  |  |  | tAppUser.setCity(""); | 
|---|
|  |  |  | tAppUser.setCityCode(""); | 
|---|
|  |  |  | // 注册用户 | 
|---|
|  |  |  | int insert = this.baseMapper.insert(tAppUser); | 
|---|
|  |  |  | // 介绍有礼 | 
|---|
|  |  |  | if(addAppUserVo.getReferralUserId()!=null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ | 
|---|
|  |  |  | if(ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())){ | 
|---|
|  |  |  | return ResultUtil.error("请先开启定位", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat()); | 
|---|
|  |  |  | Integer num=0; | 
|---|
|  |  |  | Integer activityId=null; | 
|---|
|  |  |  | if(null != geocode){ | 
|---|
|  |  |  | String province = geocode.get("province"); | 
|---|
|  |  |  | String provinceCode = geocode.get("provinceCode"); | 
|---|
|  |  |  | String city = geocode.get("city"); | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | // 根据所在市code 查询是否有介绍有礼活动 | 
|---|
|  |  |  | IntroduceRewards res = introduceRewardsClient.getGiftList(cityCode); | 
|---|
|  |  |  | if (res!=null){ | 
|---|
|  |  |  | num = res.getGiveClass(); | 
|---|
|  |  |  | activityId = res.getId(); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){ | 
|---|
|  |  |  | // 介绍有礼 | 
|---|
|  |  |  | if (addAppUserVo.getReferralUserId() != null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) { | 
|---|
|  |  |  | if (ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())) { | 
|---|
|  |  |  | return ResultUtil.error("请先开启定位", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat()); | 
|---|
|  |  |  | if (null != geocode) { | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | // 根据所在市code 查询是否有介绍有礼活动 | 
|---|
|  |  |  | List<IntroduceRewards> res = introduceRewardsClient.getGiftList(cityCode); | 
|---|
|  |  |  | if (res != null) { | 
|---|
|  |  |  | for (IntroduceRewards re : res) { | 
|---|
|  |  |  | Integer num = re.getGiveClass(); | 
|---|
|  |  |  | Integer activityId = re.getId(); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) { | 
|---|
|  |  |  | List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>() | 
|---|
|  |  |  | .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone())); | 
|---|
|  |  |  | if(tAppUsers.size()>0){ | 
|---|
|  |  |  | if (tAppUsers.size() > 0) { | 
|---|
|  |  |  | addAppUserVo.setReferralUserId(tAppUsers.get(0).getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (num!=0){ | 
|---|
|  |  |  | if (num != 0) { | 
|---|
|  |  |  | TAppGift tAppGift = new TAppGift(); | 
|---|
|  |  |  | TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>() | 
|---|
|  |  |  | .eq("phone", addAppUserVo.getInvitePhone())); | 
|---|
|  |  |  | if (phone == null){ | 
|---|
|  |  |  | if (phone == null) { | 
|---|
|  |  |  | return ResultUtil.error("推荐人手机号未注册玩湃会员!"); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | tAppGift.setUserName(phone.getName()); | 
|---|
|  |  |  | tAppGift.setUserPhone(phone.getPhone()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 账号密码登录 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param phone | 
|---|
|  |  |  | * @param password | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil loginPassword(String phone, String password) throws Exception { | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3)); | 
|---|
|  |  |  | if(null == tAppUser){ | 
|---|
|  |  |  | if (null == tAppUser) { | 
|---|
|  |  |  | return ResultUtil.error("请先注册", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(tAppUser.getState() == 2){ | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.errorCode("您的账号已被冻结", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        password = Md5Util.MD5Encode(password, null); | 
|---|
|  |  |  | if(!tAppUser.getPassword().equals(password)){ | 
|---|
|  |  |  | if (!tAppUser.getPassword().equals(password)) { | 
|---|
|  |  |  | return ResultUtil.error("账号密码错误", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String token = getToken(tAppUser); | 
|---|
|  |  |  | return ResultUtil.success(token); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 验证码登录 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil loginSMSCode(LoginSMSCodeVo loginSMSCodeVo) throws Exception { | 
|---|
|  |  |  | String value = redisUtil.getValue(loginSMSCodeVo.getPhone()); | 
|---|
|  |  |  | if(!"123456".equals(loginSMSCodeVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(loginSMSCodeVo.getCode()))){ | 
|---|
|  |  |  | if (!"123456".equals(loginSMSCodeVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(loginSMSCodeVo.getCode()))) { | 
|---|
|  |  |  | return ResultUtil.error("验证码无效", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", loginSMSCodeVo.getPhone()).ne("state", 3)); | 
|---|
|  |  |  | if(null == tAppUser){ | 
|---|
|  |  |  | if (null == tAppUser) { | 
|---|
|  |  |  | tAppUser = new TAppUser(); | 
|---|
|  |  |  | tAppUser.setCode(UUIDUtil.getNumberRandom(16)); | 
|---|
|  |  |  | tAppUser.setPhone(loginSMSCodeVo.getPhone()); | 
|---|
|  |  |  | tAppUser.setPassword(Md5Util.MD5Encode("111111", null)); | 
|---|
|  |  |  | tAppUser.setIsVip(0); | 
|---|
|  |  |  | tAppUser.setState(1); | 
|---|
|  |  |  | tAppUser.setInsertTime(new Date()); | 
|---|
|  |  |  | this.baseMapper.insert(tAppUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(tAppUser.getState() == 2){ | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.error("您的账号已被冻结", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String token = getToken(tAppUser); | 
|---|
|  |  |  | return ResultUtil.success(token); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 微信登录 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 
|---|
|  |  |  | public ResultUtil loginWechat(LoginWeChatVo loginWechatVo) throws Exception { | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("openid", loginWechatVo.getOpenId()).ne("state", 3)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(null == tAppUser){ | 
|---|
|  |  |  | if (null == tAppUser) { | 
|---|
|  |  |  | tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", loginWechatVo.getPhone()).ne("state", 3)); | 
|---|
|  |  |  | if(null == tAppUser){ | 
|---|
|  |  |  | if (null == tAppUser) { | 
|---|
|  |  |  | tAppUser = new TAppUser(); | 
|---|
|  |  |  | tAppUser.setCode(UUIDUtil.getNumberRandom(16)); | 
|---|
|  |  |  | tAppUser.setOpenid(loginWechatVo.getOpenId()); | 
|---|
|  |  |  | 
|---|
|  |  |  | tAppUser.setGender(loginWechatVo.getSex()); | 
|---|
|  |  |  | tAppUser.setState(1); | 
|---|
|  |  |  | tAppUser.setInsertTime(new Date()); | 
|---|
|  |  |  | tAppUser.setProvince(""); | 
|---|
|  |  |  | tAppUser.setProvinceCode(""); | 
|---|
|  |  |  | tAppUser.setCity(""); | 
|---|
|  |  |  | tAppUser.setCityCode(""); | 
|---|
|  |  |  | this.baseMapper.insert(tAppUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(tAppUser.getState() == 2){ | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.error("您的账号已被冻结", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ToolUtil.isEmpty(tAppUser.getOpenid())){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(tAppUser.getOpenid())) { | 
|---|
|  |  |  | tAppUser.setOpenid(loginWechatVo.getOpenId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ToolUtil.isEmpty(tAppUser.getPhone())){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(tAppUser.getPhone())) { | 
|---|
|  |  |  | tAppUser.setPhone(loginWechatVo.getPhone()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.updateById(tAppUser); | 
|---|
|  |  |  | 
|---|
|  |  |  | String token = getToken(tAppUser); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | HashMap<String, String> map = new HashMap<>(); | 
|---|
|  |  |  | map.put("token",token); | 
|---|
|  |  |  | if(ToolUtil.isEmpty(tAppUser.getPhone())){ | 
|---|
|  |  |  | map.put("isBind","0"); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | map.put("isBind","1"); | 
|---|
|  |  |  | map.put("token", token); | 
|---|
|  |  |  | if (ToolUtil.isEmpty(tAppUser.getPhone())) { | 
|---|
|  |  |  | map.put("isBind", "0"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | map.put("isBind", "1"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ResultUtil.success(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取JWT token和存储个人信息 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param appUser | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String getToken(TAppUser appUser){ | 
|---|
|  |  |  | private String getToken(TAppUser appUser) { | 
|---|
|  |  |  | String randomKey = jwtTokenUtil.getRandomKey(); | 
|---|
|  |  |  | String token = jwtTokenUtil.generateToken(appUser.getId().toString(), randomKey); | 
|---|
|  |  |  | redisUtil.setStrValue(token.substring(token.length() - 32), String.valueOf(appUser.getId()), 7 * 24 * 60 * 60); | 
|---|
|  |  |  | 
|---|
|  |  |  | return token; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改密码 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param phone | 
|---|
|  |  |  | * @param code | 
|---|
|  |  |  | * @param password | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil updatePassword(String phone, String code, String password) throws Exception { | 
|---|
|  |  |  | String value = redisUtil.getValue(phone); | 
|---|
|  |  |  | if(!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))){ | 
|---|
|  |  |  | if (!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))) { | 
|---|
|  |  |  | return ResultUtil.error("验证码无效"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3)); | 
|---|
|  |  |  | if(tAppUser==null){ | 
|---|
|  |  |  | if (tAppUser == null) { | 
|---|
|  |  |  | return ResultUtil.error("该账号未注册", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(tAppUser.getState() == 2){ | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.error("您的账号已被冻结", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tAppUser.getCode()==null){ | 
|---|
|  |  |  | if (tAppUser.getCode() == null) { | 
|---|
|  |  |  | tAppUser.setCode(UUIDUtil.getNumberRandom(16)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tAppUser.setPassword(password); | 
|---|
|  |  |  | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil updatePassword1(String phone, String code, String password) throws Exception { | 
|---|
|  |  |  | String value = redisUtil.getValue(phone); | 
|---|
|  |  |  | if (!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))) { | 
|---|
|  |  |  | return ResultUtil.error("验证码无效"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3)); | 
|---|
|  |  |  | if (tAppUser == null) { | 
|---|
|  |  |  | return ResultUtil.error("该账号未注册", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.error("您的账号已被冻结", ""); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (tAppUser.getCode() == null) { | 
|---|
|  |  |  | tAppUser.setCode(UUIDUtil.getNumberRandom(16)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tAppUser.setPassword(password); | 
|---|
|  |  |  | this.updateById(tAppUser); | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 定时任务修改到期会员的状态 | 
|---|
|  |  |  | 
|---|
|  |  |  | this.baseMapper.membershipEnd(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 获取加入玩湃首页数据 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param lon | 
|---|
|  |  |  | * @param lat | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public JoinPlayPaiVo queryJoinPlayPai(Integer uid, String lon, String lat) throws Exception { | 
|---|
|  |  |  | TAppUser appUser = this.getById(uid); | 
|---|
|  |  |  | if(ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon)){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon)) { | 
|---|
|  |  |  | Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat); | 
|---|
|  |  |  | if(null != geocode){ | 
|---|
|  |  |  | if (null != geocode) { | 
|---|
|  |  |  | String province = geocode.get("province"); | 
|---|
|  |  |  | String provinceCode = geocode.get("provinceCode"); | 
|---|
|  |  |  | String city = geocode.get("city"); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | JoinPlayPaiVo joinPlayPaiVo = new JoinPlayPaiVo(); | 
|---|
|  |  |  | joinPlayPaiVo.setIsVip(appUser.getIsVip()); | 
|---|
|  |  |  | if(ToolUtil.isEmpty(lon) ||ToolUtil.isEmpty(lat)){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(lon) || ToolUtil.isEmpty(lat)) { | 
|---|
|  |  |  | return joinPlayPaiVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat); | 
|---|
|  |  |  | if(null != geocode){ | 
|---|
|  |  |  | if (null != geocode) { | 
|---|
|  |  |  | String provinceCode = geocode.get("provinceCode"); | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode)); | 
|---|
|  |  |  | 
|---|
|  |  |  | for (Store store : stores) { | 
|---|
|  |  |  | Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat()); | 
|---|
|  |  |  | Double wgs84 = distance.get("WGS84"); | 
|---|
|  |  |  | if(s == null || d>wgs84){ | 
|---|
|  |  |  | if (s == null || d > wgs84) { | 
|---|
|  |  |  | s = store; | 
|---|
|  |  |  | d = wgs84; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId,String lon,String lat) { | 
|---|
|  |  |  | public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId, String lon, String lat) { | 
|---|
|  |  |  | IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TAppUser appUser = this.getById(appUserId); | 
|---|
|  |  |  | benefirVo.setUserHeadImg(appUser.getHeadImg()); | 
|---|
|  |  |  | if (appUser.getHeadImg() != null) { | 
|---|
|  |  |  | benefirVo.setUserHeadImg(appUser.getHeadImg()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | benefirVo.setUserHeadImg("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/630864764d3c4e98822ff976a2389559.jpg"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | benefirVo.setUserName(appUser.getName()); | 
|---|
|  |  |  | benefirVo.setWpCoin(ToolUtil.isEmpty(appUser.getPlayPaiCoins()) ? 0 : appUser.getPlayPaiCoins()); | 
|---|
|  |  |  | benefirVo.setUserIntegral(ToolUtil.isEmpty(appUser.getIntegral()) ? 0 : appUser.getIntegral()); | 
|---|
|  |  |  | if (appUser.getIsVip() == 1){ | 
|---|
|  |  |  | if (appUser.getIsVip() == 1) { | 
|---|
|  |  |  | benefirVo.setIsMember("年度会员"); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | benefirVo.setIsMember("普通用户"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | List<IntegralCommodity> convertibleGoods = mcClient.getConvertibleGoods(location); | 
|---|
|  |  |  | benefirVo.setCommodities(convertibleGoods); | 
|---|
|  |  |  | benefirVo.setImage(icfgClient.getImageConfig()); | 
|---|
|  |  |  | Referee referee = refereeService.getOne(new QueryWrapper<Referee>().eq("phone", appUser.getPhone()).eq("state", 1)); | 
|---|
|  |  |  | benefirVo.setReferee(null == referee ? 0 : 1); | 
|---|
|  |  |  | return benefirVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<ConsumeDetail>  queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId) { | 
|---|
|  |  |  | public List<ConsumeDetail> queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId) { | 
|---|
|  |  |  | List<ConsumeDetail> details = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm"); | 
|---|
|  |  |  | 
|---|
|  |  |  | requestVo.setAppUserId(appUserId); | 
|---|
|  |  |  | //            1.赛事报名 | 
|---|
|  |  |  | BillingRequestVo allCompetitionPayRecord = deducClient.getAllCompetitionPayRecord(requestVo); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(allCompetitionPayRecord.getRequests())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(allCompetitionPayRecord.getRequests())) { | 
|---|
|  |  |  | for (BillingRequest paymentCompetition : allCompetitionPayRecord.getRequests()) { | 
|---|
|  |  |  | ConsumeDetail consumeDetail = new ConsumeDetail(); | 
|---|
|  |  |  | consumeDetail.setConsumeName(RechargeRecordEnum.EVENT_REGISTRATION.getMsg()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            2.取消赛事报名 | 
|---|
|  |  |  | BillingRequestVo cancelOrderOfUserPayRecord = deducClient.getCancelOrderOfUserPayRecord(requestVo); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(cancelOrderOfUserPayRecord.getRequests())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(cancelOrderOfUserPayRecord.getRequests())) { | 
|---|
|  |  |  | for (BillingRequest paymentCompetition : cancelOrderOfUserPayRecord.getRequests()) { | 
|---|
|  |  |  | ConsumeDetail consumeDetail = new ConsumeDetail(); | 
|---|
|  |  |  | consumeDetail.setConsumeName(RechargeRecordEnum.CANCEL_EVENT_REGISTRATION.getMsg()); | 
|---|
|  |  |  | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //2.0 | 
|---|
|  |  |  | List<CourseCounsum> courseCounsums  = paymentClient.getConsumes(requestVo); | 
|---|
|  |  |  | List<CourseCounsum> courseCounsums = paymentClient.getConsumes(requestVo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (CourseCounsum courseCounsum : courseCounsums) { | 
|---|
|  |  |  | ConsumeDetail consumeDetail = new ConsumeDetail(); | 
|---|
|  |  |  | 
|---|
|  |  |  | consumeDetail.setConsumeName(split[0]); | 
|---|
|  |  |  | consumeDetail.setConsumeTime(simpleDateFormat.format(courseCounsum.getInsertTime())); | 
|---|
|  |  |  | //            if (courseCounsum.getChangeType()==3){ | 
|---|
|  |  |  | consumeDetail.setConsumeAmount("-" + split[1]); | 
|---|
|  |  |  | consumeDetail.setType(2); | 
|---|
|  |  |  | consumeDetail.setConsumeAmount("-" + split[1]); | 
|---|
|  |  |  | consumeDetail.setType(2); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            consumeDetail.setConsumeAmount("-" + coursePackagePayment.getAmount()); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //            4.场地预约 | 
|---|
|  |  |  | RequestOfTypeVo allSiteBookingList = stClient.getAllSiteBookingList(requestVo); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(allSiteBookingList.getRequest())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(allSiteBookingList.getRequest())) { | 
|---|
|  |  |  | for (BillingRequestOfType booking : allSiteBookingList.getRequest()) { | 
|---|
|  |  |  | ConsumeDetail consumeDetail = new ConsumeDetail(); | 
|---|
|  |  |  | if (booking.getStatus() != 5){ | 
|---|
|  |  |  | if (booking.getStatus() != 5) { | 
|---|
|  |  |  | consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg()); | 
|---|
|  |  |  | consumeDetail.setConsumeAmount("-" + booking.getAmount()); | 
|---|
|  |  |  | consumeDetail.setConsumeTime(booking.getTime()); | 
|---|
|  |  |  | consumeDetail.setType(2); | 
|---|
|  |  |  | details.add(consumeDetail); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | ConsumeDetail consumeDetail1 = new ConsumeDetail(); | 
|---|
|  |  |  | consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg()); | 
|---|
|  |  |  | consumeDetail1.setConsumeAmount("+" + booking.getAmount()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (rechargeRecords.size() > 0) { | 
|---|
|  |  |  | for (RechargeRecords rechargeRecord : rechargeRecords) { | 
|---|
|  |  |  | ConsumeDetail consumeDetail = new ConsumeDetail(); | 
|---|
|  |  |  | consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins()+"币"); | 
|---|
|  |  |  | consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins() + "币"); | 
|---|
|  |  |  | consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime())); | 
|---|
|  |  |  | consumeDetail.setConsumeAmount("-" + rechargeRecord.getAmount()); | 
|---|
|  |  |  | consumeDetail.setType(2); | 
|---|
|  |  |  | 
|---|
|  |  |  | details.addAll(consumeDetails); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (details.size() > 0 ){ | 
|---|
|  |  |  | if (details.size() > 0) { | 
|---|
|  |  |  | Collections.sort(details, new Comparator<ConsumeDetail>() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int compare(ConsumeDetail record1, ConsumeDetail record2) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(recordId)){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(recordId)) { | 
|---|
|  |  |  | details = details.stream() | 
|---|
|  |  |  | .filter(response -> Objects.equals(response.getType(), recordId)) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void cancellation(Integer appUserId) { | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectById(appUserId); | 
|---|
|  |  |  | if (null != tAppUser){ | 
|---|
|  |  |  | if (null != tAppUser) { | 
|---|
|  |  |  | tAppUser.setState(3); | 
|---|
|  |  |  | this.baseMapper.updateById(tAppUser); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectById(appUserId); | 
|---|
|  |  |  | List<Map<String, Object>> rechargeConfig = reconMapper.getRechargeConfig(); | 
|---|
|  |  |  | System.out.println(rechargeConfig); | 
|---|
|  |  |  | if (rechargeConfig.size() > 0 ){ | 
|---|
|  |  |  | if (rechargeConfig.size() > 0) { | 
|---|
|  |  |  | for (Map<String, Object> stringObjectMap : rechargeConfig) { | 
|---|
|  |  |  | RechargeCentVo vo = new RechargeCentVo(); | 
|---|
|  |  |  | Double money = (Double) stringObjectMap.get("money"); | 
|---|
|  |  |  | vo.setAmount(BigDecimal.valueOf(money) ); | 
|---|
|  |  |  | if (tAppUser.getIsVip() == 1){ | 
|---|
|  |  |  | vo.setAmount(BigDecimal.valueOf(money)); | 
|---|
|  |  |  | if (tAppUser.getIsVip() == 1 && tAppUser.getVipEndTime().after(new Date())) { | 
|---|
|  |  |  | vo.setWpGold((Integer) stringObjectMap.get("MemberCoins")); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | vo.setWpGold((Integer) stringObjectMap.get("usersCoins")); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | centVos.add(vo); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<Goods> queryAppUserIntegral(MallRequest request ) { | 
|---|
|  |  |  | public List<Goods> queryAppUserIntegral(MallRequest request) { | 
|---|
|  |  |  | List<Goods> goods = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | CommodityRequest commodityRequest = new CommodityRequest(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (vicinityGood.getRedemptionMethod() == 1) { | 
|---|
|  |  |  | commodity.setIntegral(vicinityGood.getIntegral().intValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral())?0:vicinityGood.getIntegral()); | 
|---|
|  |  |  | commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral()) ? 0 : vicinityGood.getIntegral()); | 
|---|
|  |  |  | commodity.setAmount(vicinityGood.getCash()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | commodity.setBelongsType(vicinityGood.getUserPopulation()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (vicinityGood.getRedemptionMethod() == 1) { | 
|---|
|  |  |  | commodity.setIntegral(vicinityGood.getIntegral().intValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral())?0:vicinityGood.getIntegral()); | 
|---|
|  |  |  | commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral()) ? 0 : vicinityGood.getIntegral()); | 
|---|
|  |  |  | commodity.setAmount(vicinityGood.getCash()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | commodity.setBelongsType(vicinityGood.getUserPopulation()); | 
|---|
|  |  |  | 
|---|
|  |  |  | goods.add(commodity); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Coupon> allCoupons = ucponClient.getAllCoupons(commodityRequest); | 
|---|
|  |  |  | if (allCoupons.size() > 0) { | 
|---|
|  |  |  | for (Coupon allCoupon : allCoupons) { | 
|---|
|  |  |  | 
|---|
|  |  |  | if (allCoupon.getRedemptionMethod() == 1) { | 
|---|
|  |  |  | commodity.setIntegral(allCoupon.getIntegral().intValue()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (allCoupon.getIntegral()!=null) { | 
|---|
|  |  |  | if (allCoupon.getIntegral() != null) { | 
|---|
|  |  |  | commodity.setIntegral(allCoupon.getIntegral().intValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | commodity.setAmount(allCoupon.getCash()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (StringUtils.hasText(request.getSearch())){ | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (StringUtils.hasText(request.getSearch())) { | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .filter(merchandise -> merchandise.getGoodName().contains(request.getSearch())) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // 2.0 门店筛选 | 
|---|
|  |  |  | if (request.getShopId()!=null){ | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (request.getShopId() != null) { | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .filter( merchandise ->(merchandise.getGoodsType() == 1&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 1&&merchandise.getUseScope() == 1)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 1)||merchandise.getShopIds().contains(request.getShopId())) | 
|---|
|  |  |  | .filter(merchandise -> (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 1) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 1) || merchandise.getShopIds().contains(request.getShopId())) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (null != request.getRank()){ | 
|---|
|  |  |  | switch (request.getRank()){ | 
|---|
|  |  |  | if (null != request.getRank()) { | 
|---|
|  |  |  | switch (request.getRank()) { | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .sorted(Comparator.comparing(Goods::getIntegral).reversed()) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .sorted(Comparator.comparing(Goods::getIntegral)) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 3: | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .sorted(Comparator.comparing(Goods::getNums).reversed()) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null != request.getGoodsType()){ | 
|---|
|  |  |  | if (goods.size() > 0 ){ | 
|---|
|  |  |  | if (null != request.getGoodsType()) { | 
|---|
|  |  |  | if (goods.size() > 0) { | 
|---|
|  |  |  | goods = goods.stream() | 
|---|
|  |  |  | .filter(merchandise -> merchandise.getGoodsType().equals(request.getGoodsType())) | 
|---|
|  |  |  | .collect(Collectors.toList()); | 
|---|
|  |  |  | 
|---|
|  |  |  | return goods; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 对数据进行分页处理的方法 | 
|---|
|  |  |  | private static Page<Goods> getPage(List<Goods> dataList, Pageable pageable) { | 
|---|
|  |  |  | int start = (int) pageable.getOffset(); | 
|---|
|  |  |  | int end = Math.min((start + pageable.getPageSize()), dataList.size()); | 
|---|
|  |  |  | return new PageImpl<>(dataList.subList(start, end), pageable, dataList.size()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ProductDetailsVo productDetails(Integer goodId, Integer goodsType ) { | 
|---|
|  |  |  | public ProductDetailsVo productDetails(Integer goodId, Integer goodsType) { | 
|---|
|  |  |  | ProductDetailRequest detailsVo = new ProductDetailRequest(); | 
|---|
|  |  |  | detailsVo.setGoodsType(goodsType); | 
|---|
|  |  |  | detailsVo.setGoodId(goodId); | 
|---|
|  |  |  | return mcClient.getGoodDetailsWithId(detailsVo); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ProductDetailsVo goodsDetailsOne(Integer goodId ) { | 
|---|
|  |  |  | public ProductDetailsVo goodsDetailsOne(Integer goodId) { | 
|---|
|  |  |  | return mcClient.getGoodDetailsWithIdOne(goodId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | HashMap<String, String> map = new HashMap<>(); | 
|---|
|  |  |  | // 1 验证手机号 | 
|---|
|  |  |  | String value = redisUtil.getValue(dto.getPhone()); | 
|---|
|  |  |  | if(!"123456".equals(dto.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(dto.getCode()))){ | 
|---|
|  |  |  | if (!"123456".equals(dto.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(dto.getCode()))) { | 
|---|
|  |  |  | return ResultUtil.error("验证码无效"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String token=""; | 
|---|
|  |  |  | String token = ""; | 
|---|
|  |  |  | // 通过openId 找到 | 
|---|
|  |  |  | TAppUser tAppUser = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, dto.getOpenId()).eq(TAppUser::getState,1)); | 
|---|
|  |  |  | TAppUser tAppUser = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, dto.getOpenId()).eq(TAppUser::getState, 1)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(tAppUser==null){ | 
|---|
|  |  |  | if (tAppUser == null) { | 
|---|
|  |  |  | return ResultUtil.error("该账号未注册"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(tAppUser.getState() == 2){ | 
|---|
|  |  |  | if (tAppUser.getState() == 2) { | 
|---|
|  |  |  | return ResultUtil.error("您的账号已被冻结"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<TAppUser> tAppUsers1 = appUserMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getPhone()).eq(TAppUser::getState,1)); | 
|---|
|  |  |  | if(tAppUsers1.size()>0){ | 
|---|
|  |  |  | boolean newUser = false; | 
|---|
|  |  |  | List<TAppUser> tAppUsers1 = appUserMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getPhone()).eq(TAppUser::getState, 1)); | 
|---|
|  |  |  | if (tAppUsers1.size() > 0) { | 
|---|
|  |  |  | TAppUser tAppUser1 = tAppUsers1.get(0); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(tAppUser1.getOpenid())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(tAppUser1.getOpenid())) { | 
|---|
|  |  |  | return ResultUtil.error("该手机号已绑定其他微信"); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | tAppUser1.setOpenid(dto.getOpenId()); | 
|---|
|  |  |  | appUserMapper.updateById(tAppUser1); | 
|---|
|  |  |  | appUserMapper.deleteById(tAppUser.getId()); | 
|---|
|  |  |  | token = getToken(tAppUser1); | 
|---|
|  |  |  | map.put("token",token); | 
|---|
|  |  |  | map.put("token", token); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | tAppUser.setPhone(dto.getPhone()); | 
|---|
|  |  |  | appUserMapper.updateById(tAppUser); | 
|---|
|  |  |  | token = getToken(tAppUser); | 
|---|
|  |  |  | map.put("token",token); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | token = getToken(tAppUser); | 
|---|
|  |  |  | map.put("token", token); | 
|---|
|  |  |  | newUser = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        tAppUser.setPhone(dto.getPhone()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(dto.getInvitePhone())){ | 
|---|
|  |  |  | if(ToolUtil.isEmpty(dto.getLat()) || ToolUtil.isEmpty(dto.getLon())){ | 
|---|
|  |  |  | if (newUser && ToolUtil.isNotEmpty(dto.getInvitePhone())) { | 
|---|
|  |  |  | if (ToolUtil.isEmpty(dto.getLat()) || ToolUtil.isEmpty(dto.getLon())) { | 
|---|
|  |  |  | return ResultUtil.error("请先开启定位"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState,1)); | 
|---|
|  |  |  | if(tAppUser1!=null){ | 
|---|
|  |  |  | Map<String, String> geocode = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | geocode = gdMapGeocodingUtil.geocode(dto.getLon(), dto.getLat()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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"); | 
|---|
|  |  |  | IntroduceRewards giftList = introduceRewardsClient.getGiftList(cityCode); | 
|---|
|  |  |  | num = giftList.getGiveClass(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer userId=null; | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(dto.getInvitePhone())){ | 
|---|
|  |  |  | List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone())); | 
|---|
|  |  |  | if(tAppUsers.size()>0){ | 
|---|
|  |  |  | userId = tAppUsers.get(0).getId(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(userId!=null){ | 
|---|
|  |  |  | TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, userId)); | 
|---|
|  |  |  | if(one!=null){ | 
|---|
|  |  |  | one.setNum(one.getNum()+num); | 
|---|
|  |  |  | appGiftService.updateById(one); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | TAppGift tAppGift = new TAppGift(); | 
|---|
|  |  |  | tAppGift.setUserId(userId); | 
|---|
|  |  |  | tAppGift.setNum(num); | 
|---|
|  |  |  | appGiftService.save(tAppGift); | 
|---|
|  |  |  | TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>() | 
|---|
|  |  |  | .eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState, 1)); | 
|---|
|  |  |  | if(null == tAppUser1){ | 
|---|
|  |  |  | return ResultUtil.error("邀请人还未注册账号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Map<String, String> geocode = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | geocode = gdMapGeocodingUtil.geocode(dto.getLon(), dto.getLat()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (null != geocode) { | 
|---|
|  |  |  | String cityCode = geocode.get("cityCode"); | 
|---|
|  |  |  | // 根据所在市code 查询是否有介绍有礼活动 | 
|---|
|  |  |  | List<IntroduceRewards> res = introduceRewardsClient.getGiftList(cityCode); | 
|---|
|  |  |  | if (res != null) { | 
|---|
|  |  |  | for (IntroduceRewards re : res) { | 
|---|
|  |  |  | Integer num = re.getGiveClass(); | 
|---|
|  |  |  | Integer activityId = re.getId(); | 
|---|
|  |  |  | if (num != 0) { | 
|---|
|  |  |  | TAppGift tAppGift = new TAppGift(); | 
|---|
|  |  |  | tAppGift.setUserName(tAppUser1.getName()); | 
|---|
|  |  |  | tAppGift.setUserPhone(tAppUser1.getPhone()); | 
|---|
|  |  |  | tAppGift.setUserId(tAppUser1.getId()); | 
|---|
|  |  |  | tAppGift.setNum(num); | 
|---|
|  |  |  | tAppGift.setShareUserId(tAppUser.getId()); | 
|---|
|  |  |  | tAppGift.setShareUserName(tAppUser.getPhone()); | 
|---|
|  |  |  | tAppGift.setShareUserPhone(tAppUser.getPhone()); | 
|---|
|  |  |  | tAppGift.setActivityId(activityId); | 
|---|
|  |  |  | tAppGift.setInsertTime(new Date()); | 
|---|
|  |  |  | appGiftService.save(tAppGift); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        appUserMapper.updateById(tAppUser); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ResultUtil.success(map); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil<String> updateInfo(UpdateInfoDto dto,Integer uid) { | 
|---|
|  |  |  | public ResultUtil<String> updateInfo(UpdateInfoDto dto, Integer uid) { | 
|---|
|  |  |  | TAppUser tAppUser = appUserMapper.selectById(uid); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(dto.getName())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(dto.getName())) { | 
|---|
|  |  |  | tAppUser.setName(dto.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(dto.getBirthday())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(dto.getBirthday())) { | 
|---|
|  |  |  | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | Date parse = format.parse(dto.getBirthday()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(dto.getGender())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(dto.getGender())) { | 
|---|
|  |  |  | tAppUser.setGender(dto.getGender()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | appUserMapper.updateById(tAppUser); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis,Integer pointsMerId, String lat, String lon,Integer isCourse) { | 
|---|
|  |  |  | public StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis, Integer pointsMerId, String lat, String lon, Integer isCourse) { | 
|---|
|  |  |  | StuAndStoreResponse response = new StuAndStoreResponse(); | 
|---|
|  |  |  | if (isCourse == 1){ | 
|---|
|  |  |  | if (isCourse == 1) { | 
|---|
|  |  |  | List<TStudent> tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() | 
|---|
|  |  |  | .eq("appUserId",userIdFormRedis) | 
|---|
|  |  |  | .eq("state",1) | 
|---|
|  |  |  | .eq("isDefault",1)); | 
|---|
|  |  |  | if (tStudents.size() > 0 ){ | 
|---|
|  |  |  | .eq("appUserId", userIdFormRedis) | 
|---|
|  |  |  | .eq("state", 1) | 
|---|
|  |  |  | .eq("isDefault", 1)); | 
|---|
|  |  |  | if (tStudents.size() > 0) { | 
|---|
|  |  |  | response.setStuId(tStudents.get(0).getId()); | 
|---|
|  |  |  | response.setStuName(tStudents.get(0).getName()); | 
|---|
|  |  |  | response.setStuPhone(tStudents.get(0).getPhone()); | 
|---|
|  |  |  | response.setStuAge(DateUtil.age(tStudents.get(0).getBirthday())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return response; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerId); | 
|---|
|  |  |  | if (pointsMerchandise.getType() == 4){ | 
|---|
|  |  |  | if (pointsMerchandise.getType() == 4) { | 
|---|
|  |  |  | List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId); | 
|---|
|  |  |  | StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreIds.get(0)); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(courseOfStore)){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(courseOfStore)) { | 
|---|
|  |  |  | response.setStoreId(couponStoreIds.get(0)); | 
|---|
|  |  |  | response.setStoreName(courseOfStore.getStoreName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId); | 
|---|
|  |  |  | StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integers.get(0)); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(courseOfStore)){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(courseOfStore)) { | 
|---|
|  |  |  | response.setStoreId(integers.get(0)); | 
|---|
|  |  |  | response.setStoreName(courseOfStore.getStoreName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private UserConponClient userConponClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private TAppUserService appUserService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public synchronized ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { | 
|---|
|  |  |  | System.out.println("exchangeType:--->"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ReturnModel returnModel = new ReturnModel(); | 
|---|
|  |  |  | Long returnId = null; | 
|---|
|  |  |  | //如果是兑换优惠卷 | 
|---|
|  |  |  | if (exchangeType.getGoodsType()==4){ | 
|---|
|  |  |  | //如果是兑换优惠卷 | 
|---|
|  |  |  | if (exchangeType.getGoodsType() == 4) { | 
|---|
|  |  |  | //查询优惠卷 | 
|---|
|  |  |  | Coupon coupon = userConponClient.queryCouponById(exchangeType.getGoodId()); | 
|---|
|  |  |  | //查询该优惠卷的数量够不够 | 
|---|
|  |  |  | List<Integer> queryIds = new ArrayList<>(); | 
|---|
|  |  |  | queryIds.add(coupon.getId()); | 
|---|
|  |  |  | queryIds.add(userIdFormRedis); | 
|---|
|  |  |  | Integer counts =  userConponClient.queryCounts(queryIds); | 
|---|
|  |  |  | if (coupon.getQuantityIssued()-counts == 0){ | 
|---|
|  |  |  | return new ResultUtil(0,"当前数量不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer counts = userConponClient.queryCounts(queryIds); | 
|---|
|  |  |  | if (coupon.getQuantityIssued().compareTo(counts) == 0) { | 
|---|
|  |  |  | return new ResultUtil(0, "当前数量不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //查询该用户是否超出限领数量 | 
|---|
|  |  |  | Integer usercounts =  userConponClient.queryCounts1(queryIds); | 
|---|
|  |  |  | Integer usercounts = userConponClient.queryCounts1(queryIds); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (usercounts == coupon.getPickUpQuantity()){ | 
|---|
|  |  |  | return new ResultUtil<>(0,"限领数量已达最大"); | 
|---|
|  |  |  | if (usercounts == coupon.getPickUpQuantity()) { | 
|---|
|  |  |  | return new ResultUtil<>(0, "限领数量已达最大"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //            userConponClient.queryCouponById(exchangeType.getGoodId()); | 
|---|
|  |  |  | UserCoupon userCoupon = new UserCoupon(); | 
|---|
|  |  |  | userCoupon.setCouponId(exchangeType.getGoodId()); | 
|---|
|  |  |  | userCoupon.setUserId(userIdFormRedis); | 
|---|
|  |  |  | userCoupon.setStatus(1); | 
|---|
|  |  |  | userCoupon.setInsertTime(new Date()); | 
|---|
|  |  |  | userConponClient.insertToAppuserCoupon(userCoupon); | 
|---|
|  |  |  | //扣积分 | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userIdFormRedis); | 
|---|
|  |  |  | if (user.getIntegral()<coupon.getIntegral().intValue()){ | 
|---|
|  |  |  | return  new ResultUtil<>(0,"当前用户积分不足"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); | 
|---|
|  |  |  | String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); | 
|---|
|  |  |  | //生成支付订单 | 
|---|
|  |  |  | UserCouponPayment userCouponPayment = new UserCouponPayment(); | 
|---|
|  |  |  | userCouponPayment.setCouponId(exchangeType.getGoodId()); | 
|---|
|  |  |  | userCouponPayment.setUserId(userIdFormRedis); | 
|---|
|  |  |  | userCouponPayment.setStatus(1); | 
|---|
|  |  |  | userCouponPayment.setCode(code); | 
|---|
|  |  |  | userCouponPayment.setPayType(coupon.getRedemptionMethod()); | 
|---|
|  |  |  | userCouponPayment.setIntegral(coupon.getIntegral().intValue()); | 
|---|
|  |  |  | userCouponPayment.setCash(null == coupon.getCash() ? 0D : coupon.getCash().doubleValue()); | 
|---|
|  |  |  | userCouponPayment.setCashPayType(exchangeType.getPayType()); | 
|---|
|  |  |  | userCouponPayment.setInsertTime(new Date()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //积分兑换 | 
|---|
|  |  |  | if(coupon.getRedemptionMethod() == 1){ | 
|---|
|  |  |  | UserCoupon userCoupon = new UserCoupon(); | 
|---|
|  |  |  | userCoupon.setCouponId(exchangeType.getGoodId()); | 
|---|
|  |  |  | userCoupon.setUserId(userIdFormRedis); | 
|---|
|  |  |  | userCoupon.setStatus(1); | 
|---|
|  |  |  | userCoupon.setInsertTime(new Date()); | 
|---|
|  |  |  | userConponClient.insertToAppuserCoupon(userCoupon); | 
|---|
|  |  |  | //扣积分 | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userIdFormRedis); | 
|---|
|  |  |  | if (user.getIntegral() < coupon.getIntegral().intValue()) { | 
|---|
|  |  |  | return new ResultUtil<>(0, "当前用户积分不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | user.setIntegral(user.getIntegral() - coupon.getIntegral().intValue()); | 
|---|
|  |  |  | appUserService.updateById(user); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | userCouponPayment.setStatus(2); | 
|---|
|  |  |  | userCouponPayment.setPaymentTime(new Date()); | 
|---|
|  |  |  | userCouponPaymentClient.addUserCouponPayment(userCouponPayment); | 
|---|
|  |  |  | return ResultUtil.success(returnId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | user.setIntegral(user.getIntegral()-coupon.getIntegral().intValue()); | 
|---|
|  |  |  | appUserService.updateById(user); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //记录 | 
|---|
|  |  |  | //            UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); | 
|---|
|  |  |  | //            pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); | 
|---|
|  |  |  | //            pointsMerchandise.setUserId(userIdFormRedis); | 
|---|
|  |  |  | //            pointsMerchandise.setStatus(1); | 
|---|
|  |  |  | //            pointsMerchandise.setState(1); | 
|---|
|  |  |  | //            pointsMerchandise.setPayStatus(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); | 
|---|
|  |  |  | //            returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ResultUtil.success(returnId); | 
|---|
|  |  |  | //积分+现金 | 
|---|
|  |  |  | if(coupon.getRedemptionMethod() == 2){ | 
|---|
|  |  |  | userCouponPaymentClient.addUserCouponPayment(userCouponPayment); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if(exchangeType.getPayType() == 1){ | 
|---|
|  |  |  | return weChatPaymentCoupon("购买优惠券", userCouponPayment); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(exchangeType.getPayType() == 2){ | 
|---|
|  |  |  | return aliPaymentCoupon("购买优惠券", userCouponPayment); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | System.out.println(exchangeType); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); | 
|---|
|  |  |  | String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); | 
|---|
|  |  |  | PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId()); | 
|---|
|  |  |  | PointsMerchandise merchandise = new PointsMerchandise(); | 
|---|
|  |  |  | if(exchangeType.getGoodsType() != 4){ | 
|---|
|  |  |  | merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | Coupon coupon = ucponClient.queryCouponById(exchangeType.getGoodId()); | 
|---|
|  |  |  | merchandise.setId(coupon.getId()); | 
|---|
|  |  |  | merchandise.setUserPopulation(coupon.getUserPopulation()); | 
|---|
|  |  |  | merchandise.setIntegral(coupon.getIntegral().intValue()); | 
|---|
|  |  |  | merchandise.setQuantityIssued(coupon.getQuantityIssued()); | 
|---|
|  |  |  | merchandise.setPickUpQuantity(coupon.getPickUpQuantity()); | 
|---|
|  |  |  | merchandise.setUseScope(coupon.getUseScope()); | 
|---|
|  |  |  | merchandise.setCash(coupon.getCash()); | 
|---|
|  |  |  | merchandise.setType(4); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ToolUtil.isEmpty(merchandise)){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(merchandise)) { | 
|---|
|  |  |  | return ResultUtil.error("商品不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(merchandise.getUserPopulation()==2){ | 
|---|
|  |  |  | if(tAppUser.getIsVip()==0){ | 
|---|
|  |  |  | if (merchandise.getUserPopulation() == 2) { | 
|---|
|  |  |  | if (tAppUser.getIsVip() == 0) { | 
|---|
|  |  |  | return ResultUtil.error("该商品只能年度会员购买"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(merchandise.getUserPopulation()==3){ | 
|---|
|  |  |  | if (merchandise.getUserPopulation() == 3) { | 
|---|
|  |  |  | List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis)); | 
|---|
|  |  |  | if(students.size()==0){ | 
|---|
|  |  |  | if (students.size() == 0) { | 
|---|
|  |  |  | return ResultUtil.error("该商品只能已有学员用户购买"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (ToolUtil.isEmpty(tAppUser)){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(tAppUser)) { | 
|---|
|  |  |  | return ResultUtil.error("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int goodsNums = 0; | 
|---|
|  |  |  | if (ToolUtil.isEmpty(exchangeType.getNums())){ | 
|---|
|  |  |  | if (ToolUtil.isEmpty(exchangeType.getNums())) { | 
|---|
|  |  |  | goodsNums = 1; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | goodsNums = exchangeType.getNums(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userIdFormRedis); | 
|---|
|  |  |  | if (merchandise.getIntegral()!=null) { | 
|---|
|  |  |  | if (merchandise.getIntegral() != null) { | 
|---|
|  |  |  | if (user.getIntegral() < merchandise.getIntegral().intValue() * goodsNums) { | 
|---|
|  |  |  | return new ResultUtil<>(0, "当前用户积分不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | goodResp.setAppUserId(userIdFormRedis); | 
|---|
|  |  |  | goodResp.setGoodId(merchandise.getId()); | 
|---|
|  |  |  | int count = mcClient.queryUserHasGoodsNums(goodResp); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(count) && count+exchangeType.getNums() > merchandise.getPickUpQuantity()){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(count) && count + exchangeType.getNums() > merchandise.getPickUpQuantity()) { | 
|---|
|  |  |  | return ResultUtil.error("超过限领数量"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int count1 = mcClient.queryUserHasGoodsNums1(goodResp); | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()) { | 
|---|
|  |  |  | return ResultUtil.error("超过发放数量"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (int i = 0; i < goodsNums; i++) { | 
|---|
|  |  |  | 
|---|
|  |  |  | UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); | 
|---|
|  |  |  | pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); | 
|---|
|  |  |  | pointsMerchandise.setUserId(userIdFormRedis); | 
|---|
|  |  |  | if (exchangeType.getGoodsType()==2){ | 
|---|
|  |  |  | if (exchangeType.getGoodsType() == 2) { | 
|---|
|  |  |  | pointsMerchandise.setStatus(2); | 
|---|
|  |  |  | pointsMerchandise.setVerificationTime(new Date()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | pointsMerchandise.setStatus(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | pointsMerchandise.setState(1); | 
|---|
|  |  |  | if (exchangeType.getExchangeType()==1) { | 
|---|
|  |  |  | if (exchangeType.getExchangeType() == 1) { | 
|---|
|  |  |  | pointsMerchandise.setPayStatus(2); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | pointsMerchandise.setPayStatus(1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (merchandise.getUseScope() == 3){ | 
|---|
|  |  |  | if (exchangeType.getGoodsType() == 2){ | 
|---|
|  |  |  | if (merchandise.getUseScope() == 3) { | 
|---|
|  |  |  | if (exchangeType.getGoodsType() == 2) { | 
|---|
|  |  |  | CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); | 
|---|
|  |  |  | pointsMerchandise.setStoreId(coursePackage.getStoreId()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | pointsMerchandise.setStoreId(exchangeType.getStoreId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | pointsMerchandise.setCode(code); | 
|---|
|  |  |  | pointsMerchandise.setInsertTime(new Date()); | 
|---|
|  |  |  | returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | switch (exchangeType.getExchangeType()){ | 
|---|
|  |  |  | switch (exchangeType.getExchangeType()) { | 
|---|
|  |  |  | //            积分 | 
|---|
|  |  |  | case 1: | 
|---|
|  |  |  | boolean b =true; | 
|---|
|  |  |  | boolean b = true; | 
|---|
|  |  |  | for (int i = 0; i < goodsNums; i++) { | 
|---|
|  |  |  | b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); | 
|---|
|  |  |  | b = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (b){ | 
|---|
|  |  |  | switch (exchangeType.getGoodsType()){ | 
|---|
|  |  |  | if (b) { | 
|---|
|  |  |  | switch (exchangeType.getGoodsType()) { | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | Integer stuNums = 0; | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(exchangeType.getStuIds())) { | 
|---|
|  |  |  | stuNums = exchangeType.getStuIds().size(); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | stuNums = 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (int i = 0; i < stuNums; i++) { | 
|---|
|  |  |  | 
|---|
|  |  |  | packagePayment.setStatus(1); | 
|---|
|  |  |  | packagePayment.setState(1); | 
|---|
|  |  |  | packagePayment.setCode(code); | 
|---|
|  |  |  | packagePayment.setInsertTime(new Date()); | 
|---|
|  |  |  | //                                    paymentClient.savePaymentCoursePackage(packagePayment); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OrderDto orderDto = new OrderDto(); | 
|---|
|  |  |  | 
|---|
|  |  |  | coupon.setCouponId(exchangeType.getGoodId()); | 
|---|
|  |  |  | coupon.setUserId(userIdFormRedis); | 
|---|
|  |  |  | coupon.setStatus(1); | 
|---|
|  |  |  | coupon.setInsertTime(new Date()); | 
|---|
|  |  |  | ucponClient.insertToAppuserCoupon(coupon); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return ResultUtil.error("用户积分不足!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | //                积分+现金 | 
|---|
|  |  |  | boolean dealt =true; | 
|---|
|  |  |  | boolean dealt = true; | 
|---|
|  |  |  | for (int i = 0; i < goodsNums; i++) { | 
|---|
|  |  |  | dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral()); | 
|---|
|  |  |  | dealt = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | switch (exchangeType.getPayType()) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | if (merchandise.getType() == 2) { | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId); | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code, returnId); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId); | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code, returnId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | if (merchandise.getType() == 2) { | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId); | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code, returnId); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId); | 
|---|
|  |  |  | return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code, returnId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | returnModel.setReturnId(returnId); | 
|---|
|  |  |  | returnModel.setReturnId(returnId); | 
|---|
|  |  |  | return ResultUtil.success(returnModel); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 优惠券微信支付 | 
|---|
|  |  |  | * @param body | 
|---|
|  |  |  | * @param userCouponPayment | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public ResultUtil weChatPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception { | 
|---|
|  |  |  | String code = userCouponPayment.getCode(); | 
|---|
|  |  |  | Double cash = userCouponPayment.getCash(); | 
|---|
|  |  |  | ResultUtil weixinpay = payMoneyUtil.weixinpay(body, "", code, cash.toString(), "/base/coupon/weChatPaymentCouponCallback", "APP", ""); | 
|---|
|  |  |  | if (weixinpay.getCode() == 200) { | 
|---|
|  |  |  | new Thread(new Runnable() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void run() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | int num = 1; | 
|---|
|  |  |  | int wait = 0; | 
|---|
|  |  |  | while (num <= 10) { | 
|---|
|  |  |  | int min = 5000; | 
|---|
|  |  |  | wait += (min * num); | 
|---|
|  |  |  | Thread.sleep(wait); | 
|---|
|  |  |  | UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); | 
|---|
|  |  |  | if (userCouponPayment1.getStatus() == 2) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); | 
|---|
|  |  |  | if (resultUtil.getCode() == 200 && userCouponPayment1.getStatus() == 1) { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * SUCCESS—支付成功, | 
|---|
|  |  |  | * REFUND—转入退款, | 
|---|
|  |  |  | * NOTPAY—未支付, | 
|---|
|  |  |  | * CLOSED—已关闭, | 
|---|
|  |  |  | * REVOKED—已撤销(刷卡支付), | 
|---|
|  |  |  | * USERPAYING--用户支付中, | 
|---|
|  |  |  | * PAYERROR--支付失败(其他原因,如银行返回失败) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | //有待支付的订单,这里不处理 | 
|---|
|  |  |  | userCouponPayment1.setStatus(-1); | 
|---|
|  |  |  | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ("SUCCESS".equals(s)) { | 
|---|
|  |  |  | userCouponPayment1.setStatus(2); | 
|---|
|  |  |  | userCouponPayment1.setPaymentTime(new Date()); | 
|---|
|  |  |  | userCouponPayment1.setOrderNumber(transaction_id); | 
|---|
|  |  |  | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UserCoupon userCoupon = new UserCoupon(); | 
|---|
|  |  |  | userCoupon.setCouponId(userCouponPayment1.getCouponId()); | 
|---|
|  |  |  | userCoupon.setUserId(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | userCoupon.setStatus(1); | 
|---|
|  |  |  | userCoupon.setInsertTime(new Date()); | 
|---|
|  |  |  | userConponClient.insertToAppuserCoupon(userCoupon); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ | 
|---|
|  |  |  | //扣积分 | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); | 
|---|
|  |  |  | appUserService.updateById(user); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ("USERPAYING".equals(s)) { | 
|---|
|  |  |  | num++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).start(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return weixinpay; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 优惠券支付宝支付 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | * @throws Exception | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | private String smid = "2088330203191220";//平台支付宝商户号 | 
|---|
|  |  |  | public ResultUtil aliPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception { | 
|---|
|  |  |  | String code = userCouponPayment.getCode(); | 
|---|
|  |  |  | Double cash = userCouponPayment.getCash(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ResultUtil alipay = payMoneyUtil.alipay(smid, body, "",String.valueOf(userCouponPayment.getId()), code, cash.toString(), "/base/coupon/aliPaymentCouponCallback"); | 
|---|
|  |  |  | if (alipay.getCode() == 200) { | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); | 
|---|
|  |  |  | if (userCouponPayment1.getStatus() == 2) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); | 
|---|
|  |  |  | if (null != alipayTradeQueryResponse) { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * WAIT_BUYER_PAY(交易创建,等待买家付款)、 | 
|---|
|  |  |  | * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 | 
|---|
|  |  |  | * TRADE_SUCCESS(交易支付成功)、 | 
|---|
|  |  |  | * TRADE_FINISHED(交易结束,不可退款) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | String s = alipayTradeQueryResponse.getTradeStatus(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String tradeNo = alipayTradeQueryResponse.getTradeNo(); | 
|---|
|  |  |  | if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { | 
|---|
|  |  |  | //有待支付的订单,这里不处理 | 
|---|
|  |  |  | userCouponPayment1.setStatus(-1); | 
|---|
|  |  |  | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); | 
|---|
|  |  |  | if ("TRADE_FINISHED".equals(s)) { | 
|---|
|  |  |  | // todo 资金结算 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ("TRADE_SUCCESS".equals(s)) { | 
|---|
|  |  |  | userCouponPayment1.setStatus(2); | 
|---|
|  |  |  | userCouponPayment1.setPaymentTime(new Date()); | 
|---|
|  |  |  | userCouponPayment1.setOrderNumber(tradeNo); | 
|---|
|  |  |  | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); | 
|---|
|  |  |  | UserCoupon userCoupon = new UserCoupon(); | 
|---|
|  |  |  | userCoupon.setCouponId(userCouponPayment1.getCouponId()); | 
|---|
|  |  |  | userCoupon.setUserId(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | userCoupon.setStatus(1); | 
|---|
|  |  |  | userCoupon.setInsertTime(new Date()); | 
|---|
|  |  |  | userConponClient.insertToAppuserCoupon(userCoupon); | 
|---|
|  |  |  | if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ | 
|---|
|  |  |  | //扣积分 | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); | 
|---|
|  |  |  | appUserService.updateById(user); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | payMoneyUtil.confirm(smid,code,tradeNo,cash.toString()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if ("WAIT_BUYER_PAY".equals(s)) { | 
|---|
|  |  |  | num++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }).start(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return alipay; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 支付回调 | 
|---|
|  |  |  | * @param code | 
|---|
|  |  |  | * @param orderNumber | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil paymentCouponCallback(String code, String orderNumber) { | 
|---|
|  |  |  | UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); | 
|---|
|  |  |  | if (userCouponPayment1.getStatus() == 2) { | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | userCouponPayment1.setStatus(2); | 
|---|
|  |  |  | userCouponPayment1.setPaymentTime(new Date()); | 
|---|
|  |  |  | userCouponPayment1.setOrderNumber(orderNumber); | 
|---|
|  |  |  | userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | UserCoupon userCoupon = new UserCoupon(); | 
|---|
|  |  |  | userCoupon.setCouponId(userCouponPayment1.getCouponId()); | 
|---|
|  |  |  | userCoupon.setUserId(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | userCoupon.setStatus(1); | 
|---|
|  |  |  | userCoupon.setInsertTime(new Date()); | 
|---|
|  |  |  | userConponClient.insertToAppuserCoupon(userCoupon); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ | 
|---|
|  |  |  | //扣积分 | 
|---|
|  |  |  | TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); | 
|---|
|  |  |  | user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); | 
|---|
|  |  |  | appUserService.updateById(user); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | 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(5); | 
|---|
|  |  |  | userIntegralChanges.setType(2); | 
|---|
|  |  |  | appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); | 
|---|
|  |  |  | userIntegralChanges.setNewIntegral(appUser.getIntegral()); | 
|---|
|  |  |  | userIntegralChanges.setInsertTime(new Date()); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.baseMapper.updateById(appUser); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private ResultUtil AlipayPayment(BigDecimal cash, String code,Long  returnId) { | 
|---|
|  |  |  | System.out.println("金额:"+cash); | 
|---|
|  |  |  | ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(), | 
|---|
|  |  |  | private ResultUtil AlipayPayment(BigDecimal cash, String code, Long returnId) { | 
|---|
|  |  |  | ResultUtil alipay = payMoneyUtil.alipay(smid,"优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(), | 
|---|
|  |  |  | "/base/pointMer/exchangeGoodPaymentAliCallback"); | 
|---|
|  |  |  | if(alipay.getCode() == 200){ | 
|---|
|  |  |  | if (alipay.getCode() == 200) { | 
|---|
|  |  |  | new Thread(new Runnable() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void run() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | int num = 1; | 
|---|
|  |  |  | int wait = 0; | 
|---|
|  |  |  | while (num <= 10){ | 
|---|
|  |  |  | while (num <= 10) { | 
|---|
|  |  |  | int min = 5000; | 
|---|
|  |  |  | wait += (min * num); | 
|---|
|  |  |  | Thread.sleep(wait); | 
|---|
|  |  |  | System.out.println("code:"+code); | 
|---|
|  |  |  | System.out.println("code:" + code); | 
|---|
|  |  |  | List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code); | 
|---|
|  |  |  | System.out.println("list-----"+userPointsMerchandises); | 
|---|
|  |  |  | if(userPointsMerchandises.get(0).getPayStatus() == 2){ | 
|---|
|  |  |  | System.out.println("list-----" + userPointsMerchandises); | 
|---|
|  |  |  | if (userPointsMerchandises.get(0).getPayStatus() == 2) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code); | 
|---|
|  |  |  | AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code); | 
|---|
|  |  |  | if(resultUtil.getCode().equals("10000") && userPointsMerchandises.get(0).getPayStatus() == 1){ | 
|---|
|  |  |  | if (resultUtil.getCode().equals("10000") && userPointsMerchandises.get(0).getPayStatus() == 1) { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * WAIT_BUYER_PAY(交易创建,等待买家付款)、 | 
|---|
|  |  |  | * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String tradeNo = resultUtil.getTradeNo(); | 
|---|
|  |  |  | String tradeStatus = resultUtil.getTradeStatus(); | 
|---|
|  |  |  | System.out.println("ssssss"+tradeStatus); | 
|---|
|  |  |  | System.out.println("ssssss" + tradeStatus); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if("TRADE_SUCCESS".equals(tradeStatus)){ | 
|---|
|  |  |  | if ("TRADE_SUCCESS".equals(tradeStatus)) { | 
|---|
|  |  |  | for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) { | 
|---|
|  |  |  | userPointsMerchandise.setPayStatus(2); | 
|---|
|  |  |  | userPointsMerchandise.setOrderNumber(tradeNo); | 
|---|
|  |  |  | 
|---|
|  |  |  | userPointsMerchandise.setUserId(null); | 
|---|
|  |  |  | mcClient.updateDetailsUserPointMercase(userPointsMerchandise); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | moneyOut(tradeNo,tradeNo); | 
|---|
|  |  |  | moneyOut(tradeNo, tradeNo); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if ("TRADE_FINISHED".equals(tradeStatus)) { | 
|---|
|  |  |  | // todo 资金结算 | 
|---|
|  |  |  | payMoneyUtil.confirm(smid,code,tradeNo,cash.toString()); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //                                if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){ | 
|---|
|  |  |  | 
|---|
|  |  |  | //                                    break; | 
|---|
|  |  |  | //                                } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if("WAIT_BUYER_PAY".equals(tradeStatus)){ | 
|---|
|  |  |  | if ("WAIT_BUYER_PAY".equals(tradeStatus)) { | 
|---|
|  |  |  | num++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | mcClient.deletePaymentRecord(code); | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | return alipay; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private  MerChandiseClient merChandiseClient; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void moneyOut(String outNum,String tradeNo) throws AlipayApiException { | 
|---|
|  |  |  | public void moneyOut(String outNum, String tradeNo) throws AlipayApiException { | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); | 
|---|
|  |  |  | 
|---|
|  |  |  | "      \"memo\":\"分账给测试商户\"," + | 
|---|
|  |  |  | "    }" + | 
|---|
|  |  |  | "  ]," + | 
|---|
|  |  |  | "  \"out_request_no\":\""+tradeNo+"\"" + | 
|---|
|  |  |  | "  \"out_request_no\":\"" + tradeNo + "\"" + | 
|---|
|  |  |  | "}"); | 
|---|
|  |  |  | AlipayTradeRoyaltyRelationBindResponse response = alipayClient.execute(request1); | 
|---|
|  |  |  | if(response.isSuccess()){ | 
|---|
|  |  |  | if (response.isSuccess()) { | 
|---|
|  |  |  | System.out.println("绑定调用成功"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | System.out.println("调用失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        RoyaltyDetailInfos royaltyDetailInfos1 = new RoyaltyDetailInfos(); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<UserPointsMerchandise> userPointsMerchandises = merChandiseClient.queryUserPointMerchaseByCode(outNum); | 
|---|
|  |  |  | //        PaymentCompetition code = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", outNum)); | 
|---|
|  |  |  | Integer storeId = userPointsMerchandises.get(0).getStoreId(); | 
|---|
|  |  |  | if(userPointsMerchandises.size() > 0){ | 
|---|
|  |  |  | Integer storeId = userPointsMerchandises.get(0).getStoreId(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        Competition byId1 = competitionService.getById(code.getCompetitionId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //        TCoursePackage byId = coursePackageService.getById(one.getCoursePackageId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OperatorUser operatorUser =  storeClient.queryByStoreId(storeId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OperatorUser operatorUser = storeClient.queryByStoreId(storeId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo); | 
|---|
|  |  |  | 
|---|
|  |  |  | //        OperatorUser operatorUser = siteClient.queryOperator(stores); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OpenApiRoyaltyDetailInfoPojo op = new OpenApiRoyaltyDetailInfoPojo(); | 
|---|
|  |  |  | op.setTransOutType("loginName"); | 
|---|
|  |  |  | op.setTransOut("happysports@weparklife.com"); | 
|---|
|  |  |  | op.setTransInType("userId"); | 
|---|
|  |  |  | op.setTransIn(operatorUser.getAlipayNum()); | 
|---|
|  |  |  | op.setAmountPercentage(Long.valueOf(operatorUser.getAlipayProportion())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<OpenApiRoyaltyDetailInfoPojo> ops = new ArrayList<>(); | 
|---|
|  |  |  | ops.add(op); | 
|---|
|  |  |  | model.setRoyaltyParameters(ops); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | request.setBizModel(model); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OpenApiRoyaltyDetailInfoPojo op = new OpenApiRoyaltyDetailInfoPojo(); | 
|---|
|  |  |  | op.setTransOutType("loginName"); | 
|---|
|  |  |  | op.setTransOut("happysports@weparklife.com"); | 
|---|
|  |  |  | op.setTransInType("userId"); | 
|---|
|  |  |  | op.setTransIn(operatorUser.getAlipayNum()); | 
|---|
|  |  |  | op.setAmountPercentage(Long.valueOf(operatorUser.getAlipayProportion())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<OpenApiRoyaltyDetailInfoPojo> ops = new ArrayList<>(); | 
|---|
|  |  |  | ops.add(op); | 
|---|
|  |  |  | model.setRoyaltyParameters(ops); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | request.setBizModel(model); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | AlipayTradeOrderSettleResponse response1 = alipayClient.execute(request); | 
|---|
|  |  |  | if(response1.isSuccess()){ | 
|---|
|  |  |  | System.out.println("调用成功"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | System.out.println("调用失败"); | 
|---|
|  |  |  | AlipayTradeOrderSettleResponse response1 = alipayClient.execute(request); | 
|---|
|  |  |  | if (response1.isSuccess()) { | 
|---|
|  |  |  | System.out.println("调用成功"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | System.out.println("调用失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private ResultUtil WechatPayment(BigDecimal cash, String code) throws Exception { | 
|---|
|  |  |  | ResultUtil weixinpay = payMoneyUtil.weixinpay("课包", "", code, cash.toString(), | 
|---|
|  |  |  | "/base/pointMer/exchangeGoodPaymentWeChatCallback", "APP", ""); | 
|---|
|  |  |  | if(weixinpay.getCode() == 200){ | 
|---|
|  |  |  | if (weixinpay.getCode() == 200) { | 
|---|
|  |  |  | new Thread(new Runnable() { | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void run() { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | int num = 1; | 
|---|
|  |  |  | int wait = 0; | 
|---|
|  |  |  | while (num <= 10){ | 
|---|
|  |  |  | while (num <= 10) { | 
|---|
|  |  |  | int min = 5000; | 
|---|
|  |  |  | wait += (min * num); | 
|---|
|  |  |  | Thread.sleep(wait); | 
|---|
|  |  |  | List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code); | 
|---|
|  |  |  | if(userPointsMerchandises.get(0).getPayStatus() == 2){ | 
|---|
|  |  |  | if (userPointsMerchandises.get(0).getPayStatus() == 2) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); | 
|---|
|  |  |  | if(resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1){ | 
|---|
|  |  |  | if (resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1) { | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * SUCCESS—支付成功, | 
|---|
|  |  |  | * REFUND—转入退款, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 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)){ | 
|---|
|  |  |  | if ("SUCCESS".equals(s)) { | 
|---|
|  |  |  | for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) { | 
|---|
|  |  |  | userPointsMerchandise.setPayStatus(2); | 
|---|
|  |  |  | userPointsMerchandise.setOrderNumber(transaction_id); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if("USERPAYING".equals(s)){ | 
|---|
|  |  |  | if ("USERPAYING".equals(s)) { | 
|---|
|  |  |  | num++; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | e.printStackTrace(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType) { | 
|---|
|  |  |  | public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType) { | 
|---|
|  |  |  | List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code); | 
|---|
|  |  |  | if (userPointsMerchandises.size() > 1){ | 
|---|
|  |  |  | if (userPointsMerchandises.get(0).getPayStatus() == 2) { | 
|---|
|  |  |  | return ResultUtil.success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (userPointsMerchandises.size() > 1) { | 
|---|
|  |  |  | for (int i = 0; i < userPointsMerchandises.size(); i++) { | 
|---|
|  |  |  | userPointsMerchandises.get(i).setOrderNumber(orderNumber+ "-" + (i+1)); | 
|---|
|  |  |  | userPointsMerchandises.get(i).setOrderNumber(orderNumber + "-" + (i + 1)); | 
|---|
|  |  |  | userPointsMerchandises.get(i).setPayType(payType); | 
|---|
|  |  |  | userPointsMerchandises.get(i).setPayStatus(2); | 
|---|
|  |  |  | mcClient.updateDetailsUserPointMercase(userPointsMerchandises.get(i)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer pointsMerchandiseId = userPointsMerchandises.get(i).getPointsMerchandiseId(); | 
|---|
|  |  |  | PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId); | 
|---|
|  |  |  | switch (pointsMerchandise.getType()){ | 
|---|
|  |  |  | switch (pointsMerchandise.getType()) { | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code); | 
|---|
|  |  |  | for (TCoursePackagePayment coursePackagePayment : coursePackagePaymentOfCode) { | 
|---|
|  |  |  | 
|---|
|  |  |  | coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId()); | 
|---|
|  |  |  | coupon.setUserId(userPointsMerchandises.get(0).getUserId()); | 
|---|
|  |  |  | coupon.setStatus(1); | 
|---|
|  |  |  | coupon.setInsertTime(new Date()); | 
|---|
|  |  |  | ucponClient.insertToAppuserCoupon(coupon); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | userPointsMerchandises.get(0).setOrderNumber(orderNumber); | 
|---|
|  |  |  | userPointsMerchandises.get(0).setPayType(payType); | 
|---|
|  |  |  | userPointsMerchandises.get(0).setPayStatus(2); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer pointsMerchandiseId = userPointsMerchandises.get(0).getPointsMerchandiseId(); | 
|---|
|  |  |  | PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId); | 
|---|
|  |  |  | switch (pointsMerchandise.getType()){ | 
|---|
|  |  |  | switch (pointsMerchandise.getType()) { | 
|---|
|  |  |  | case 2: | 
|---|
|  |  |  | List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | TCoursePackagePayment packagePayment =coursePackagePaymentOfCode.get(0); | 
|---|
|  |  |  | TCoursePackagePayment packagePayment = coursePackagePaymentOfCode.get(0); | 
|---|
|  |  |  | packagePayment.setPayStatus(2); | 
|---|
|  |  |  | packagePayment.setPayType(payType); | 
|---|
|  |  |  | packagePayment.setOrderNumber(orderNumber); | 
|---|
|  |  |  | 
|---|
|  |  |  | coupon.setCouponId(userPointsMerchandises.get(0).getPointsMerchandiseId()); | 
|---|
|  |  |  | coupon.setUserId(userPointsMerchandises.get(0).getUserId()); | 
|---|
|  |  |  | coupon.setStatus(1); | 
|---|
|  |  |  | coupon.setInsertTime(new Date()); | 
|---|
|  |  |  | ucponClient.insertToAppuserCoupon(coupon); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<StoreResponse> queryStoresOfExchange(Integer goodsType,Integer pointsMerId) { | 
|---|
|  |  |  | public List<StoreResponse> queryStoresOfExchange(Integer goodsType, Integer pointsMerId) { | 
|---|
|  |  |  | List<StoreResponse> responses = new ArrayList<>(); | 
|---|
|  |  |  | if (goodsType == 4){ | 
|---|
|  |  |  | if (goodsType == 4) { | 
|---|
|  |  |  | List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId); | 
|---|
|  |  |  | if (couponStoreIds.size() > 0 ){ | 
|---|
|  |  |  | if (couponStoreIds.size() > 0) { | 
|---|
|  |  |  | for (Integer couponStoreId : couponStoreIds) { | 
|---|
|  |  |  | StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(courseOfStore)){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(courseOfStore)) { | 
|---|
|  |  |  | StoreResponse response = new StoreResponse(); | 
|---|
|  |  |  | response.setStoreId(couponStoreId); | 
|---|
|  |  |  | response.setStoreName(courseOfStore.getStoreName()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId); | 
|---|
|  |  |  | if (integers.size() > 0 ){ | 
|---|
|  |  |  | if (integers.size() > 0) { | 
|---|
|  |  |  | for (Integer integer : integers) { | 
|---|
|  |  |  | StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer); | 
|---|
|  |  |  | if(ToolUtil.isNotEmpty(courseOfStore)){ | 
|---|
|  |  |  | if (ToolUtil.isNotEmpty(courseOfStore)) { | 
|---|
|  |  |  | StoreResponse response = new StoreResponse(); | 
|---|
|  |  |  | response.setStoreId(integer); | 
|---|
|  |  |  | response.setStoreName(courseOfStore.getStoreName()); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time,String longitude,String latitude) { | 
|---|
|  |  |  | public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId, Integer stuId, String time, String longitude, String latitude) { | 
|---|
|  |  |  | List<CourseVenue> courseVenues = new ArrayList<>(); | 
|---|
|  |  |  | WeeksOfCourseRest weeksOfCourseRest = new WeeksOfCourseRest(); | 
|---|
|  |  |  | weeksOfCourseRest.setTime(time); | 
|---|
|  |  |  | 
|---|
|  |  |  | weeksOfCourseRest.setAppUserId(appUserId); | 
|---|
|  |  |  | List<CourseOfStoreVo> storeOfCourses = paymentClient.getStoreOfCourses(weeksOfCourseRest); | 
|---|
|  |  |  | System.out.println(storeOfCourses); | 
|---|
|  |  |  | if (storeOfCourses.size() > 0 ){ | 
|---|
|  |  |  | courseVenues = dealDatas(storeOfCourses,longitude,latitude); | 
|---|
|  |  |  | if (storeOfCourses.size() > 0) { | 
|---|
|  |  |  | courseVenues = dealDatas(storeOfCourses, longitude, latitude); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return courseVenues; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|