From cf6b7d7ebd13d2b6fe131112b92f5c607bebd868 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 25 十月 2023 17:14:30 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java | 6
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java | 7
cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml | 6
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java | 3
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 15
cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml | 4
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java | 5
cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java | 52 +++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java | 11
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java | 3
cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit1.html | 1
cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js | 7
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java | 8
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html | 4
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html | 7
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 5
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java | 1
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 2
cloud-server-management/src/main/resources/mapper/TStoreMapper.xml | 2
cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html | 6
cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml | 2
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java | 1
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 2
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 12
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 8
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add1.html | 1
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html | 3
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 2
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 67 ++-
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java | 3
cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info1.js | 744 +++++++++++++++++++++++++++++++++++++++++++
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java | 4
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html | 2
35 files changed, 932 insertions(+), 78 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index 3ba94f2..2583912 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -592,16 +592,16 @@
@ApiImplicitParam(value = "时间类型 0=全部 1=近一周 2=近一个月 3=近一年", name = "timeType", required = false, dataType = "int"),
@ApiImplicitParam(value = "课程名称", name = "appointStatus", required = false, dataType = "string"),
})
- public ResultUtil<List<RecordAppoint>> cgeClassAppointmentRecordList(Integer stuId, Integer appointStatus, Integer timeType, String search){
- try {
+ public ResultUtil<List<RecordAppoint>> cgeClassAppointmentRecordList(Integer stuId, Integer appointStatus, Integer timeType, String search,Integer pageNum){
+// try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if(null == appUserId){
return ResultUtil.tokenErr();
}
- return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search));
- }catch (Exception e){
- return ResultUtil.runErr();
- }
+ return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search,pageNum));
+// }catch (Exception e){
+// return ResultUtil.runErr();
+// }
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java
index cf7eca5..3588f99 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java
@@ -13,5 +13,8 @@
@PostMapping("/base/courseVideo/getAllList")
List<ExerciseVideo> getStuCourseOfVideoList(@RequestBody List<Integer> coursePackIds);
+
+ @PostMapping("/base/courseVideo/query")
+ List<ExerciseVideo> query(@RequestBody Integer id);
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java
index 7793418..51e94d8 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java
@@ -15,4 +15,5 @@
@ApiModelProperty(value = "时间 ")
private String time;
+ private Integer pageNum;
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index 9fce2ad..385959a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -87,7 +87,7 @@
* @param appUserId
* @return
*/
- List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId, Integer appointStatus, Integer timeType, String search);
+ List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId, Integer appointStatus, Integer timeType, String search,Integer pageNum);
ResultUtil cancelReservationOfCourse( Integer courseStuRecordId);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index 4933f96..7663d26 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -318,7 +318,7 @@
case 2:
return fieldValue != null && !fieldValue.isEmpty() && fieldValue.charAt(0) == '+';
default:
- break;
+ return fieldValue != null && !fieldValue.isEmpty();
}
}
return false;
@@ -651,10 +651,11 @@
* @return
*/
@Override
- public List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search) {
+ public List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search,Integer pageNum) {
WeeksOfCourseRest courseRest = new WeeksOfCourseRest();
courseRest.setAppUserId(appUserId);
courseRest.setStuId(stuId);
+ courseRest.setPageNum(pageNum);
List<RecordAppoint> recordAppoints = couPayClient.obtainStudentClassDetailsData(courseRest);
if (recordAppoints.size() > 0) {
if (ToolUtil.isNotEmpty(appointStatus) && appointStatus != 0) {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index fced99b..d122000 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -242,6 +242,8 @@
mapList.add(map);
}
}
+ }else {
+ mapList = mapList1;
}
if (mapList.size() > 0){
for (Map<String, Object> stringObjectMap : mapList) {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 16ba99f..5f1d859 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -126,6 +126,8 @@
result.add(map);
}
}
+ }else {
+ result=result1;
}
if (result.size() > 0){
for (Map<String, Object> stringObjectMap : result) {
@@ -1148,7 +1150,9 @@
try {
Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
-
+ if(Integer.valueOf(map.get("type").toString())!=1){
+ byId1.setStatus(2);
+ }
Integer quantityIssued = (Integer) map.get("quantityIssued");
Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
String redemptionInstructions = (String) map.get("redemptionInstructions");
@@ -1174,7 +1178,6 @@
}
-
@PostMapping("/base/pointMerchars/add")
public Integer add(@RequestBody PointsMerchandise pointsMerchandise){
Integer storeId = pointsMerchandise.getShelves();
@@ -1197,6 +1200,7 @@
+
@PostMapping("/base/pointMerchars/addOther")
public Boolean addOther(@RequestBody String pam){
Boolean save =false;
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index bf3970b..586013f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -405,7 +405,8 @@
re.setPhone(appUser.getPhone());
re.setStoreName(store.getName());
// 在这里添加条件来删除不满足要求的元素
- if (appUser.getInsertType() != query.getInsertType()) {
+
+ if (query.getInsertType() !=null && appUser.getInsertType() != query.getInsertType()) {
iterator.remove(); // 使用迭代器的 remove 方法删除元素
}
}
@@ -1294,12 +1295,12 @@
@ResponseBody
@PostMapping("/base/coursePack/obtainStudentClassDetails")
public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId){
- try {
- return packagePaymentService.obtainStuClassDetails(stuId.getStuId(),stuId.getAppUserId());
- }catch (Exception e){
- e.printStackTrace();
- throw new RuntimeException();
- }
+// try {
+ return packagePaymentService.obtainStuClassDetails(stuId.getStuId(),stuId.getAppUserId(),stuId.getPageNum());
+// }catch (Exception e){
+// e.printStackTrace();
+// throw new RuntimeException();
+// }
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java
index 789182b..af842d6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java
@@ -1,8 +1,18 @@
package com.dsh.course.controller;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.entity.CoursePackageScheduling;
+import com.dsh.course.entity.CoursePackageStudent;
import com.dsh.course.feignclient.model.ExerciseVideo;
+import com.dsh.course.mapper.CoursePackageSchedulingMapper;
+import com.dsh.course.model.vo.response.AppUserVideoResponse;
+import com.dsh.course.service.CoursePackageStudentService;
+import com.dsh.course.service.ICoursePackageSchedulingService;
import com.dsh.course.service.PostCourseVideoService;
+import com.dsh.course.service.TCoursePackageDiscountService;
+import com.dsh.course.util.ToolUtil;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -23,5 +33,47 @@
public List<ExerciseVideo> getStuCourseOfVideoList(@RequestBody List<Integer> coursePackIds){
return pcvService.queryCourseOfVideos(coursePackIds);
}
+ @Autowired
+ private TCoursePackageDiscountService discountService;
+
+ @Resource
+ private CoursePackageSchedulingMapper coursePackageSchedulingMapper;
+ @Autowired
+ private ICoursePackageSchedulingService coursePackageSchedulingService;
+ @Autowired
+ private CoursePackageStudentService coursePackageStudentService;
+ @ResponseBody
+ @PostMapping("/base/courseVideo/query")
+ public List<ExerciseVideo> query(@RequestBody Integer coursePackIds){
+
+ List<ExerciseVideo> exerciseVideoList = new ArrayList<>();
+
+
+
+ QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("appUserId", 19);
+ List<CoursePackageStudent> list = coursePackageStudentService.list(queryWrapper1);
+ List<Long> longs = new ArrayList<>();
+ for (CoursePackageStudent coursePackageStudent : list) {
+ longs.add(coursePackageStudent.getCoursePackageSchedulingId());
+ }
+ System.out.println("======longs========"+longs);
+ List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
+ List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
+
+ for (AppUserVideoResponse appUserVideoResponse : coursePackageSchedulings1) {
+ ExerciseVideo exerciseVideo = new ExerciseVideo();
+ exerciseVideo.setVideoId(appUserVideoResponse.getVideoId());
+ exerciseVideo.setVideoName(appUserVideoResponse.getVideoName());
+ exerciseVideo.setCoursePackageId(appUserVideoResponse.getCoursePackageId());
+ exerciseVideo.setVideoUrl(appUserVideoResponse.getCourseVideo());
+ exerciseVideo.setVideoCoverImgUrl(appUserVideoResponse.getCourseVideo());exerciseVideoList.add(exerciseVideo);
+ }
+
+
+
+
+// return pcvService.queryCourseOfVideos(coursePackIds);
+ return exerciseVideoList;
+ }
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java
index fc38ce7..dc41be2 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java
@@ -14,5 +14,6 @@
@ApiModelProperty(value = "时间 yyyy-MM-dd")
private String time;
+ private Integer pageNum;
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java
index 49065dc..f11002e 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java
@@ -31,4 +31,7 @@
@ApiModelProperty(value = "学习状态 1未学习 2已学习")
private Integer studyStatus;
+ @ApiModelProperty(value = "课程视频")
+ private String courseVideo;
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index 61d9912..81e5796 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -87,7 +87,7 @@
* @param appUserId
* @return
*/
- List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId);
+ List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId,Integer pageNum);
ResultUtil insertVipPaymentCallback(String code, String orderNumber);
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 336cc52..a3fda90 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -9,6 +9,7 @@
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
@@ -39,7 +40,6 @@
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
@@ -50,6 +50,7 @@
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
+import javax.persistence.criteria.CriteriaBuilder;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException;
@@ -731,7 +732,9 @@
@Override
- public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId) {
+ public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId,Integer pageNum) {
+
+
List<RecordAppoint> recordVoList = new ArrayList<>();
List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>()
.eq("studentId",stuId )
@@ -739,31 +742,58 @@
.eq("payStatus",2 )
.eq("status",1 )
.orderByDesc("insertTime"));
+
+ List<Integer> ids = new ArrayList<>();
+ for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
+ ids.add(tCoursePackagePayment.getCoursePackageId());
+ }
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
if (tCoursePackagePayments.size() > 0 ){
- for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
- List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
- .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )
- .eq("studentId",stuId)
- .eq("appUserId",appUserId)
- .eq("reservationStatus",1));
- if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){
+// int pageNum = 1; // 页码
+ int pageSize = 10; // 每页记录数
+ Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize);
+
+// for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
+// List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>()
+// .in("coursePackageId",ids)
+// .eq("studentId",stuId)
+// .eq("appUserId",appUserId)
+// .eq("reservationStatus",1));
+ IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>()
+ .in("coursePackageId", ids)
+ .eq("studentId", stuId)
+ .eq("appUserId", appUserId)
+ .eq("reservationStatus", 1));
+ List<CoursePackageStudent> coursePackageStudent1 = coursePackageStudentPage.getRecords();
+
+
+ if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0){
+ TCoursePackage coursePackage = new TCoursePackage();
+ Integer coursePackageId = -1;
for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) {
RecordAppoint recordVo = new RecordAppoint();
- recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
+ recordVo.setCoursePackageId(coursePackageStudent.getCoursePackageId());
- TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
-
-
+ if (!coursePackageStudent.getCoursePackageId().equals(coursePackageId)) {
+ coursePackage = tcpmapper.selectById(coursePackageStudent.getCoursePackageId());
+ coursePackageId = coursePackageStudent.getCoursePackageId();
+ }
recordVo.setUserId(appUserId);
recordVo.setSiteId(coursePackage.getSiteId());
- List<Integer> ids = getIds(coursePackage.getSiteId());
- recordVo.setIds(ids);
+ List<Integer> ids1 = getIds(coursePackage.getSiteId());
+ recordVo.setIds(ids1);
recordVo.setCoursePackageName(coursePackage.getName());
- recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
+ for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
+ if (Objects.equals(coursePackageStudent.getCoursePackageId(), tCoursePackagePayment.getCoursePackageId())){
+ recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
+
+ }
+ }
+
+// recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
Date date = DateUtil.getDate();
String classStartTime = coursePackage.getClassStartTime();
@@ -791,7 +821,7 @@
recordVo.setStatus(5);
}else {
CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
- .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
+ .eq("coursePackageId",coursePackageStudent.getCoursePackageId() ));
if (ToolUtil.isNotEmpty(cancelledClasses)){
recordVo.setStatus(3);
// 消课 到课状态0 旷课
@@ -814,7 +844,8 @@
}
}
- }
+// }
+
return recordVoList;
}
public List<Integer> getIds(Integer siteId) {
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
index 66adb5f..a556ed4 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
@@ -45,9 +45,9 @@
<if test="query.coursePackageTypeName!=null and query.coursePackageTypeName!= ''">
and t2.name like concat('%',#{query.coursePackageTypeName},'%')
</if>
- <if test="query.storesIds != null and query.storesIds.size()>0">
+ <if test="query.storeIds != null and query.storeIds.size>0">
AND t2.storeId IN
- <foreach collection="query.storesIds" separator="," item="id" open="(" close=")">
+ <foreach collection="query.storeIds" separator="," item="id" open="(" close=")">
#{id}
</foreach>
</if>
@@ -55,7 +55,7 @@
and t1.payStatus = #{query.payStatus}
</if>
<if test="query.ids !=null and query.ids.size >0">
- and t2.storeId in <foreach collection="query.ids" close=")" item="id" open="(" separator=",">
+ and t2.id in <foreach collection="query.ids" close=")" item="id" open="(" separator=",">
#{id}
</foreach>
</if>
diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
index e938055..19b5e85 100644
--- a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml
@@ -31,7 +31,7 @@
</select>
<select id="queryAll" resultType="com.dsh.course.model.vo.response.AppUserVideoResponse">
- SELECT cs.courseId as videoId,cs.coursePackageId as coursePackageId,tc.coverDrawing,tc.name as videoName,tc.introduce as synopsis,cs.integral
+ SELECT cs.courseId as videoId,cs.coursePackageId as coursePackageId,tc.coverDrawing,tc.name as videoName,tc.introduce as synopsis,cs.integral,cs.courseVideo as courseVideo
FROM t_course_package_scheduling cs
LEFT JOIN t_course tc ON cs.courseId = tc.id
WHERE cs.courseId IS NOT NULL and cs.id in
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
index 62f0c90..273ed49 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
@@ -18,8 +18,8 @@
<select id="queryDiscountList" resultType="com.dsh.course.model.DiscountList">
select t1.id,t1.type,t1.status,t2.province pName,t2.city cName,t2.name,t2.storeId,t2.id courseId from t_course_package_discount t1 left join t_course_package t2 on t1.coursePackageId = t2.id
where t2.storeId in <foreach collection="ids" close=")" item="id" open="(" separator=",">
- #{id} and t1.auditStatus =2
- </foreach>
+ #{id}
+ </foreach> and t1.auditStatus =2
<if test="pCode !=null and pCode !=''">
and t2.provinceCode =#{pCode}
</if>
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
index 4e8d7ca6..1e68f6a 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
@@ -166,6 +166,9 @@
@TableField("cardType")
private Integer cardType;
+ @TableField("status")
+ private Integer status;
+
@Override
protected Serializable pkVal() {
return this.id;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
index 8193b91..f5e6940 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
@@ -90,6 +90,12 @@
// 获取所有课包类型
List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType();
model.addAttribute("roleType",roleType);
+ if(UserExt.getUser().getObjectType()==3){
+ List<TStore> list1 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getId, UserExt.getUser().getObjectId()));
+ model.addAttribute("stores",list1);
+ }else {
+ model.addAttribute("stores",new ArrayList<>());
+ }
model.addAttribute("coursePackageType",tCoursePackageTypes);
return PREFIX + "cpPayment_add.html";
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
index 291bd82..6c9cd1f 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
@@ -167,12 +167,13 @@
vo.setCity(cityManager.getCity());
vo.setCityCode(cityManager.getCityCode());
}else if (roleType == 3){
- TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(cityManagerId);
- Store storeById = storeClient.getStoreById(storeByStoreStaffId.getStoreId());
+// TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(cityManagerId);
+ Store storeById = storeClient.getStoreById(cityManagerId);
vo.setProvince(storeById.getProvince());
vo.setProvinceCode(storeById.getProvinceCode());
vo.setCity(storeById.getCity());
vo.setCityCode(storeById.getCityCode());
+ vo.setStoreId(cityManagerId);
}
bodySideAppointmentClient.addBodySideAppointments(vo);
return ResultUtil.success("添加成功");
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
index e62a599..97b1408 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
@@ -148,6 +148,9 @@
query.setProvince(province);
query.setCity(city);
query.setStoreId(storeId);
+ if(UserExt.getUser().getObjectType()==3){
+ query.setStoreId(UserExt.getUser().getObjectId());
+ }
query.setRegisterTime(registerTime);
query.setUserName(userName);
query.setUserIds(Lists.newArrayList());
@@ -225,7 +228,7 @@
public String income(Model model) {
Integer objectType = UserExt.getUser().getObjectType();
model.addAttribute("roleType",objectType);
- return PREFIX + "income.html";
+ return PREFIX + "Income.html";
}
/**
* 获取收入管理列表
@@ -620,6 +623,9 @@
query.setProvince(province);
query.setCity(city);
query.setStoreId(storeId);
+ if(UserExt.getUser().getObjectType()==3){
+ query.setStoreId(UserExt.getUser().getObjectId());
+ }
query.setRegisterTime(registerTime);
query.setUserName(userName);
query.setUserIds(Lists.newArrayList());
@@ -641,8 +647,9 @@
if (userIds.size()==0){
return new ArrayList<>();
}
+ List<RegisterOrderVO> registerOrderVOS = coursePackagePaymentClient.listAllRegister(query);
- return coursePackagePaymentClient.listAllRegister(query);
+ return registerOrderVOS;
}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
index 1e517a9..606f8e5 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -410,6 +410,7 @@
stringObjectHashMap.put("cover",cover);
stringObjectHashMap.put("productImages",productImages);
stringObjectHashMap.put("sort",sort);
+ stringObjectHashMap.put("type",UserExt.getUser().getObjectType());
System.out.println(stringObjectHashMap);
pointMercharsClient.updateGoodsDetail(stringObjectHashMap);
return new SuccessTip<>();
@@ -481,6 +482,9 @@
pointsMerchandise.setState(1);
pointsMerchandise.setInsertTime(new Date());
pointsMerchandise.setCoursePackageConfigId(coursePackageConfigId);
+ if(UserExt.getUser().getObjectType()!=1){
+ pointsMerchandise.setStatus(2);
+ }
// 代替storeId
pointsMerchandise.setShelves(1);
if(typeAll!=2){
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index d0c6694..47237ed 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -402,18 +402,14 @@
user.setPassword(SecureUtil.md5("a123456"));
user.setObjectType(3);
user.setStatus(1);
- user.setObjectId(tStore.getId());
- userMapper.insert(user);
tStore.setStoreStaffId(user.getId());
tStore.setLon(lon);
tStore.setLat(lat);
tStore.setOperatorId(UserExt.getUser().getObjectId());
storeService.save(tStore);
-
-
-
-
+ user.setObjectId(tStore.getId());
+ userMapper.insert(user);
ArrayList<StoreConfig> storeConfigs = new ArrayList<>();
for (int i = 1; i < 9; i++) {
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
index 629df64..65d3de6 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -35,6 +35,7 @@
import groovyjarjarpicocli.CommandLine;
import net.bytebuddy.asm.Advice;
import org.apache.http.HttpResponse;
+import org.apache.poi.ss.formula.functions.T;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
@@ -633,8 +634,10 @@
List<TStore> operatorId = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId));
model.addAttribute("stores",operatorId);
}else if(objectType == 3){
- stores= storeClient.getStoreByStoreStaffId(objectId);
- model.addAttribute("stores",stores);
+ List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getId, objectId));
+ model.addAttribute("stores",list);
+ }else {
+ model.addAttribute("stores",storeService.list(new QueryWrapper<TStore>().eq("operatorId", 0)));
}
List<TOperator> list = tOperatorService.list();
model.addAttribute("yysList",list);
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index 15fa840..8fa163b 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -153,7 +153,7 @@
</select>
<select id="listAllStore" resultType="com.dsh.guns.modular.system.model.TStoreListVo">
select t1.*,t2.name userName,t2.phone userPhone,t3.name yysName from t_store t1 left join sys_user t2 on t1.storeStaffId = t2.id left join t_operator t3 on t1.operatorId = t3.id
- where t1.id =#{operatorId}
+ where t1.id =#{id}
<if test="provinceCode !=null and provinceCode !=''">
and t1.provinceCode = #{provinceCode}
</if>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html
index b9e9b5f..418d4f7 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball.html
@@ -59,8 +59,9 @@
<#button name="开启" icon="fa-refresh" clickFun="TStudent.editCoursePackageState(0)" space="true"/>
<#button name="关闭" icon="fa-warning" clickFun="TStudent.editCoursePackageState(1)" space="true"/>
<#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail3()" space="true"/>
-
+ @if(role =='1'){
<#button name="介绍管理" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/>
+ @}
<#button name="数据统计" icon="fa-edit" clickFun="TStudent.openTStudentDetail5()" space="true"/>
@if(shiro.hasPermission("/tStudent/delete")){
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add1.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add1.html
index 3a2a664..35d4293 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add1.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add1.html
@@ -113,6 +113,7 @@
"label": "所属门店:",
"name": "store",
"value":`${storeId!}`,
+ "hidden": `${is3}`,
"id": "u:576899b1b531",
"multiple": false,
"disabled": true,
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit1.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit1.html
index 68d6d17..a30b2fa 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit1.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit1.html
@@ -199,6 +199,7 @@
"id": "u:576899b1b531",
"multiple": false,
"mode": "horizontal",
+ "disabled": true,
"size": "md",
"horizontal": {
"leftFixed": "lg"
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
index 8da88b9..a8516c3 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_info.html
@@ -189,7 +189,7 @@
</div>
</div>
</div>
-<script src="${ctxPath}/modular/system/ball/yuyue_info.js"></script>
+<script src="${ctxPath}/modular/system/ball/yuyue_info1.js"></script>
<script type="text/javascript">
function updateType(o) {
if(o==1){
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html
index 0b547b3..7b36f3b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/cpPayment/cpPayment_add.html
@@ -73,6 +73,7 @@
<div class="form-horizontal" id="carInfoForm">
<h2>选择课包信息</h2>
<input hidden id="roleType" value="${roleType}">
+ @if(roleType==1){
<div class="form-group" id="provinceCode">
<label class="col-sm-3 control-label">所在省:</label>
<div class="col-sm-9">
@@ -92,16 +93,18 @@
</select>
</div>
</div>
- @if(roleType !=3){
+ @}
<div class="form-group">
<label class="col-sm-3 control-label">*所属门店:</label>
<div class="col-sm-9">
<select style="width: 300px" class="form-control" id="store" name="store" >
<option value="">选择门店</option>
+ @for(obj in stores){
+ <option value="${obj.id}">${obj.name}</option>
+ @}
</select>
</div>
</div>
- @}
<div class="form-group">
<label class="col-sm-3 control-label">*课包类型:</label>
<div class="col-sm-9">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html
index 332c51f..4d2ad36 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/finance/Income.html
@@ -4,7 +4,7 @@
<div class="ibox float-e-margins">
<input hidden id="roleType" value="${roleType}">
<div class="ibox-title">
- <h5>报名订单</h5>
+ <h5>收入管理</h5>
</div>
<div class="ibox-content">
<div class="row row-lg">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
index 32b099b..4c1619a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_add.html
@@ -172,7 +172,6 @@
<button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传文件</button>
</div>
</div>
- @if(objectType==1){
<div class="row" id="app1">
<div class="form-group">
<label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
@@ -193,18 +192,13 @@
</div>
</div>
</div>
- @}
- @if(objectType==1){
<#input style="width: 300px" id="ids" name="*添加闸机:" placeholder="请输入闸机ID" type="text"/>
- @}
- @if(objectType==1){
<div class="form-group" style=" margin-left: 17%;" >
<label class="col-sm-1 control-label">场地说明:</label>
<div class="col-sm-5">
<textarea type="text/plain" id="editor" style="height: 300px;width: 800px;"></textarea>
</div>
</div>
- @}
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5" >
<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TSite.addSubmit()"/>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
index a3718c9..bbee6db 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tSite/TSite_edit.html
@@ -202,7 +202,6 @@
<button class="btn btn-outline btn-success" type="file" onclick="UploadFileFn()"><i class="fa fa-upload"></i>上传文件</button>
</div>
</div>
- @if(objectType ==1){
<div class="row" id="app1">
<div class="form-group">
<label class="col-sm-3 control-label head-scu-label">*实景图片(请上传不超过五张图片): </label>
@@ -224,16 +223,13 @@
</div>
</div>
</div>
- @}
</div>
- @if(objectType==1){
<div class="form-group" style="margin-left: 205px;">
<label class="col-sm-1 control-label">*添加闸机:</label>
<div class="col-sm-9">
<input class="form-control" id="ids" name="ids" value="${list.ids}" type="text" style="width: 300px" placeholder="请输入闸机ID">
</div>
</div>
- @}
<div class="form-group" style="margin-left: 13%;display: inline-flex;margin-top: 16px;" >
<label class="col-sm-2 control-label">场地说明:</label>
<div class="col-sm-5" style="margin-left: -35px;">
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
index dcdecf0..d175826 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js
@@ -674,13 +674,6 @@
$(function () {
- console.log("=======iiiii======"+ window.parent.TStudent.seItem.status)
-
- if (window.parent.TStudent.seItem.status != 5 ){
- // Hide the elements with the specified IDs
- document.getElementById("hi1").style.display = "none";
- document.getElementById("hi2").style.display = "none";
- document.getElementById("hi3").style.display = "none";}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info1.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info1.js
new file mode 100644
index 0000000..dcdecf0
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info1.js
@@ -0,0 +1,744 @@
+/**
+ * 用户详情对话框(可用于添加和修改对话框)
+ */
+var CoursePackageInfo = {
+ userInfoData: {},
+};
+
+
+
+/**
+ * 关闭此对话框
+ */
+CoursePackageInfo.close = function () {
+ parent.layer.close(window.parent.TStudent.layerIndex);
+};
+
+
+CoursePackageInfo.openDia = function (i) {
+
+ let index = layer.open({
+ type: 2,
+ title: '编辑',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/coursePackage/conpun/'+i
+ });
+ this.layerIndex = index;
+};
+
+CoursePackageInfo.openDia1 = function (i) {
+ var ids = $("#counpons"+i).val()
+
+ console.log($("#counpons"+i).val())
+ let index = layer.open({
+ type: 2,
+ title: '编辑',
+ area: ['80%', '80%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/coursePackage/conpun1'+'/'+i+'?conpunids='+ids
+ });
+ this.layerIndex = index;
+};
+
+
+CoursePackageInfo.addTime = function (a) {
+ console.log("==========="+a)
+ var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ var content='';
+ $.each(data, function(k, v) {
+ var buttonClass = "layui-btn layui-btn-primary";
+ var style = "";
+ if (v.state === 0) {
+ style = "background-color: red;";
+ }
+ var disabledAttribute = v.state === 0 ? "disabled" : "";
+ content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+ });
+ $("#ttt2").empty().append(content);
+ }
+ })
+ ajax.set("date",$('#time').val());
+ ajax.start()
+
+ var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+ }
+ $("#half").empty().append(htmlStr);
+ }
+ })
+ ajax1.start()
+
+
+
+
+
+};
+
+
+
+CoursePackageInfo.addTime1 = function (a) {
+
+
+ if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()){
+ $("#ttt3").hide()
+ $("#ttt2").show()
+
+ }else {
+ $("#ttt3").show()
+ $("#ttt2").hide()
+
+ }
+
+ console.log("==========="+a)
+ var ajax = new $ax(Feng.ctxPath + "/ball/yuyuetimes/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ var content='';
+ $.each(data, function(k, v) {
+ var buttonClass = "layui-btn layui-btn-primary";
+ var style = "";
+ if (v.state === 0) {
+ style = "background-color: red;";
+ }
+ var disabledAttribute = v.state === 0 ? "disabled" : "";
+ content += '<button type="button" class="' + buttonClass + '" ' + disabledAttribute + ' style="' + style + '" onclick="toggleColor(this)">' + v.time + '</button>';
+ });
+ $("#ttt2").empty().append(content);
+ }
+ })
+ ajax.start()
+
+ var ajax1 = new $ax(Feng.ctxPath + "/ball/halfName/"+ $('#siteId').val(), function(data){
+ console.log("================"+data)
+ if(data!=null){
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i] + '">' + data[i] + '</option>'
+ }
+ $("#half").empty().append(htmlStr);
+ }
+ })
+ ajax1.start()
+
+
+
+
+
+};
+
+/**
+ * 提交添加用户
+ */
+CoursePackageInfo.addSubmit = function () {
+ let province = $('#provinceCode option:checked').text();
+ let provinceCode = $('#provinceCode').val();
+ let city = $('#cityCode option:checked').text();
+ let cityCode = $('#cityCode').val();
+ let storeId = $('#storeId').val();
+ let siteId = $('#siteId').val();
+ let site = $('#siteId option:checked').text();
+
+
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ let type = selectedValue;
+ let half = $('#half').val();
+ let date = $('#time').val();
+
+
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var values = "";
+
+ for (var i = 0; i < elements.length; i++) {
+ values += date +" "+ elements[i].innerText + ";";
+ }
+
+// 去除最后一个逗号
+ values = values.slice(0, -1);
+
+ console.log(values);
+
+ var times = values;
+
+ let cash = $('#cash').val();
+ let play = $('#play').val();
+ let booker = $('#booker').val();
+ let phone = $('#phone').val();
+
+ // if(null == provinceCode || '' == provinceCode){
+ // Feng.error("所在省不能为空");
+ // return
+ // }
+ // if(null == cityCode || '' == cityCode){
+ // Feng.error("所在市不能为空");
+ // return
+ // }
+ // if(null == storeId || '' == storeId){
+ // Feng.error("所属门店不能为空");
+ // return
+ // }
+ // if(null == coursePackageTypeId || '' == coursePackageTypeId){
+ // Feng.error("课程类型不能为空");
+ // return
+ // }
+ // if(null == name || '' == name){
+ // Feng.error("课包名称不能为空");
+ // return
+ // }
+ // if(null == siteId || '' == siteId){
+ // Feng.error("上课场地不能为空");
+ // return
+ // }
+ // if(null == coachId || '' == coachId){
+ // Feng.error("授课教师不能为空");
+ // return
+ // }
+ //
+ // classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+ //
+ // if(null == coverDrawing || '' == coverDrawing){
+ // Feng.error("课包封面不能为空");
+ // return
+ // }
+ // if(null == detailDrawing || '' == detailDrawing){
+ // Feng.error("详情页不能为空");
+ // return
+ // }
+ // if(null == introduceDrawing || '' == introduceDrawing){
+ // Feng.error("课包介绍不能为空");
+ // return
+ // }
+
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/ball/ordersave", function (data) {
+ if(data.code == 200){
+ Feng.success("添加成功!");
+ CoursePackageInfo.close();
+ window.parent.TStudent.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("province",province)
+ ajax.set("provinceCode",provinceCode);
+ ajax.set("city",city);
+ ajax.set("cityCode",cityCode);
+ ajax.set("storeId",storeId);
+ ajax.set("isHalf",type);
+ ajax.set("siteId",siteId);
+ ajax.set("nextName",site);
+ ajax.set("halfName",half);
+ ajax.set("date",date);
+ ajax.set("times",times);
+ ajax.set("money",cash+","+play);
+ ajax.set("booker",booker);
+ ajax.set("phone",phone);
+
+ ajax.start();
+};
+
+
+/**
+ * 新修改
+ */
+CoursePackageInfo.addSubmit1 = function () {
+ let province = $('#provinceCode option:checked').text();
+ let provinceCode = $('#provinceCode').val();
+ let city = $('#cityCode option:checked').text();
+ let cityCode = $('#cityCode').val();
+ let storeId = $('#storeId').val();
+ let siteId = $('#siteId').val();
+ let site = $('#siteId option:checked').text();
+
+
+ var radios = document.getElementsByName("type");
+ var selectedValue;
+
+
+
+ for (var i = 0; i < radios.length; i++) {
+ if (radios[i].checked) {
+ selectedValue = radios[i].value;
+ break;
+ }
+ }
+
+ let type = selectedValue;
+ let half = $('#half').val();
+ let date = $('#time').val();
+
+
+ var elements = document.getElementsByClassName("layui-btn layui-btn-primary green-button");
+ var values = "";
+ console.log("==============="+elements[0])
+ if ($('#siteId').val() != $('#selSiteId').val()||$('#time').val()!=$('#selDate').val()) {
+ for (var i = 0; i < elements.length; i++) {
+ if (elements[i].name != 'has') {
+ values += date + " " + elements[i].innerText + ";";
+ }
+
+ }
+ }else {
+ for (var i = 0; i < elements.length; i++) {
+ if (elements[i].name = 'has') {
+ values += date + " " + elements[i].innerText + ";";
+ }
+ }
+ }
+// 去除最后一个逗号
+ values = values.slice(0, -1);
+
+ console.log(values);
+
+ var times = values;
+
+ let cash = $('#cash').val();
+ let play = $('#play').val();
+ let booker = $('#booker').val();
+ let phone = $('#phone').val();
+ let id = $('#id').val();
+
+
+ // if(null == provinceCode || '' == provinceCode){
+ // Feng.error("所在省不能为空");
+ // return
+ // }
+ // if(null == cityCode || '' == cityCode){
+ // Feng.error("所在市不能为空");
+ // return
+ // }
+ // if(null == storeId || '' == storeId){
+ // Feng.error("所属门店不能为空");
+ // return
+ // }
+ // if(null == coursePackageTypeId || '' == coursePackageTypeId){
+ // Feng.error("课程类型不能为空");
+ // return
+ // }
+ // if(null == name || '' == name){
+ // Feng.error("课包名称不能为空");
+ // return
+ // }
+ // if(null == siteId || '' == siteId){
+ // Feng.error("上课场地不能为空");
+ // return
+ // }
+ // if(null == coachId || '' == coachId){
+ // Feng.error("授课教师不能为空");
+ // return
+ // }
+ //
+ // classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+ //
+ // if(null == coverDrawing || '' == coverDrawing){
+ // Feng.error("课包封面不能为空");
+ // return
+ // }
+ // if(null == detailDrawing || '' == detailDrawing){
+ // Feng.error("详情页不能为空");
+ // return
+ // }
+ // if(null == introduceDrawing || '' == introduceDrawing){
+ // Feng.error("课包介绍不能为空");
+ // return
+ // }
+
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/ball/orderedit", function (data) {
+ if(data.code == 200){
+ Feng.success("添加成功!");
+ CoursePackageInfo.close();
+ window.parent.TStudent.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("添加失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("province",province)
+ ajax.set("provinceCode",provinceCode);
+ ajax.set("city",city);
+ ajax.set("cityCode",cityCode);
+ ajax.set("storeId",storeId);
+ ajax.set("isHalf",type);
+ ajax.set("siteId",siteId);
+ ajax.set("nextName",site);
+ ajax.set("halfName",half);
+ ajax.set("date",date);
+ ajax.set("times",times);
+ ajax.set("money",cash+","+play);
+ ajax.set("booker",booker);
+ ajax.set("phone",phone);
+ ajax.set("id",id);
+
+
+ ajax.start();
+};
+/**
+ * 提交修改
+ */
+CoursePackageInfo.editSubmit = function () {
+ let id = $('#id').val();
+ let province = $('#provinceCode option:checked').text();
+ let provinceCode = $('#provinceCode').val();
+ let city = $('#cityCode option:checked').text();
+ let cityCode = $('#cityCode').val();
+ let storeId = $('#storeId').val();
+ let coursePackageTypeId = $('#coursePackageTypeId').val();
+ let name = $('#name').val();
+ let siteId = $('#siteId').val();
+ let coachId = $('#coachId').val();
+ let maxSubscribeNumber = $('#maxSubscribeNumber').val();
+ let codeTime = $('#codeTime').val();
+ let type = $('#type').val();
+
+ let holitime = $('#holitime').val();
+
+ var inputElements = document.querySelectorAll('input[name="classStartTime"]');
+ let classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) {
+ return element.value;
+ }))
+
+ // let classStartTime = $('#classStartTime').val();
+ let classWeeks = '';
+ $('input[name="classWeeks"]:checked').each(function (index, e) {
+ classWeeks += $(e).val() + ";";
+ })
+ let coverDrawing = $('#coverDrawing').val();
+ let detailDrawing = $('#detailDrawing').val();
+ let introduceDrawing = $('#introduceDrawing').val();
+ let sort = $('#sort').val();
+ let validDays = $('#validDays').val();
+ // let counpons = $($(e).find(".counpons")).val();
+
+ let price = [];
+ $('#price>.form-group').each(function (i, e) {
+ let classHours = $($(e).find(".classNumber_span input[class='classNumber']")[0]).val();
+ let cash = $($(e).find(".cash_span input[class='cash']")[0]).val();
+ let paiCoin = $($(e).find(".paiCoin_span input[class='paiCoin']")[0]).val();
+ let counpons = $($(e).find(".counpons")).val();
+
+ price.push({
+ classHours: classHours,
+ cashPayment: typeof cash == "undefined" ? 0 : cash,
+ playPaiCoin: typeof paiCoin == "undefined" ? 0 : paiCoin,
+ couponIds: typeof counpons == "undefined" ? 0 : counpons
+
+ })
+ });
+ if(null == provinceCode || '' == provinceCode){
+ Feng.error("所在省不能为空");
+ return
+ }
+ if(null == cityCode || '' == cityCode){
+ Feng.error("所在市不能为空");
+ return
+ }
+ if(null == storeId || '' == storeId){
+ Feng.error("所属门店不能为空");
+ return
+ }
+ if(null == coursePackageTypeId || '' == coursePackageTypeId){
+ Feng.error("课程类型不能为空");
+ return
+ }
+ if(null == name || '' == name){
+ Feng.error("课包名称不能为空");
+ return
+ }
+ if(null == siteId || '' == siteId){
+ Feng.error("上课场地不能为空");
+ return
+ }
+ if(null == coachId || '' == coachId){
+ Feng.error("授课教师不能为空");
+ return
+ }
+ // if(null == maxSubscribeNumber || '' == maxSubscribeNumber){
+ // Feng.error("最多预约人数不能为空");
+ // return
+ // }
+ // if(null == codeTime || '' == codeTime){
+ // Feng.error("扣除课时不能为空");
+ // return
+ // }
+ // if(null == classStartTime || '' == classStartTime){
+ // Feng.error("上课时间不能为空");
+ // return
+ // }
+ // if(null == classWeeks || '' == classWeeks){
+ // Feng.error("周不能为空");
+ // return
+ // }
+ classWeeks = classWeeks.substring(0, classWeeks.length - 1);
+
+ if(null == coverDrawing || '' == coverDrawing){
+ Feng.error("课包封面不能为空");
+ return
+ }
+ if(null == detailDrawing || '' == detailDrawing){
+ Feng.error("详情页不能为空");
+ return
+ }
+ if(null == introduceDrawing || '' == introduceDrawing){
+ Feng.error("课包介绍不能为空");
+ return
+ }
+ // if(null == validDays || '' == validDays){
+ // Feng.error("课时有效期不能为空");
+ // return
+ // }
+
+ let obj = {
+ id: id,
+ province: province,
+ provinceCode: provinceCode,
+ city: city,
+ cityCode: cityCode,
+ storeId: storeId,
+ coursePackageTypeId: coursePackageTypeId,
+ name: name,
+ siteId: siteId,
+ coachId: coachId,
+ maxSubscribeNumber: maxSubscribeNumber,
+ codeTime: codeTime,
+ type:type,
+ classStartTime: classStartTime,
+ // classEndTime: classStartTime.split(" - ")[1],
+ classWeeks: classWeeks,
+ coverDrawing: coverDrawing,
+ detailDrawing: detailDrawing,
+ introduceDrawing: introduceDrawing,
+ sort: sort,
+ validDays: validDays,
+ coursePackagePaymentConfig: JSON.stringify(price),
+ holitime:holitime
+ }
+
+ console.log("======="+obj)
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/coursePackage/updateCoursePackage", function (data) {
+ if(data.code == 200){
+ Feng.success("编辑成功!");
+ CoursePackageInfo.close();
+ window.parent.CoursePackage.table.refresh();
+ }else{
+ Feng.error(data.msg);
+ }
+ }, function (data) {
+ Feng.error("编辑失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set(obj);
+ ajax.start();
+};
+
+
+
+
+function queryStore() {
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryStore", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#storeId').html(htmlStr);
+
+ querySite();
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("cityCode", $('#cityCode').val());
+ ajax.start();
+}
+
+
+
+function querySite(){
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/querySite", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#siteId').html(htmlStr);
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("storeId", $('#storeId').val());
+ ajax.start();
+}
+
+
+function queryCoach(){
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryCoach", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].id + '">' + data[i].name + '</option>'
+ }
+ $('#coachId').html(htmlStr);
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("cityCode", $('#cityCode').val());
+ ajax.start();
+}
+
+
+function addPrice(y){
+ console.log("===="+y)
+ let cash = false;
+ let paiCoin = false;
+ $('input[name="payType"]:checked').each(function (index, e) {
+ let v = $(e).val();
+ if(v == 1){
+ cash = true;
+ }
+ if(v == 2){
+ paiCoin = true;
+ }
+ })
+ var i = $('#price > div').length+1
+ let htmlStr = ''
+
+
+ if (y===1){
+
+ htmlStr += '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">*课时数:</label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+
+ }
+ if (y===2){
+
+ htmlStr += '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label"></label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span" hidden="hidden"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+
+ }
+ '<div class="form-group">\n' +
+ ' <label class="col-sm-3 control-label">*课时数:</label>\n' +
+ ' <div class="col-sm-8">\n' +
+ ' <span class="classNumber_span"><input class="classNumber" type="number" min="0" placeholder="请输入" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> </span> <span class="cash_span">\n';
+ if(cash){
+ htmlStr += '现金支付:<input class="cash" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> ¥ \n';
+ }
+ htmlStr += '</span> <span class="paiCoin_span">';
+ if(paiCoin){
+ htmlStr += '玩湃币支付:<input class="paiCoin" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 币 \n';
+ }
+ htmlStr += '<button type="button" class="btn btn-info " onclick="CoursePackageInfo.openDia('+i+')" id="ensure">\n' +
+ ' <i class="fa fa-check"></i> 优惠券\n' +
+ '</button>';
+
+ htmlStr += '</span> <i class="fa fa-trash-o" style="font-size:24px" onclick="removePrice(this)"></i>\n' +
+ '</div>\n' +'<input type="text" hidden="hidden" class = "counpons" id = "counpons'+i+'" >'+i+
+ '</div>';
+ $('#price').append(htmlStr);
+}
+
+
+
+
+function removePrice(e){
+ $(e).parent('div').parent('div').remove();
+}
+
+function removePrice1(e){
+ $(e).parent('div').remove();
+}
+
+
+
+$(function () {
+
+ console.log("=======iiiii======"+ window.parent.TStudent.seItem.status)
+
+ if (window.parent.TStudent.seItem.status != 5 ){
+ // Hide the elements with the specified IDs
+ document.getElementById("hi1").style.display = "none";
+ document.getElementById("hi2").style.display = "none";
+ document.getElementById("hi3").style.display = "none";}
+
+
+
+ $('#provinceCode').change(function () {
+ let ajax = new $ax(Feng.ctxPath + "/coursePackage/queryCity", function (data) {
+ let htmlStr = '';
+ for (let i = 0; i < data.length; i++) {
+ htmlStr += '<option value="' + data[i].code + '">' + data[i].name + '</option>'
+ }
+ $('#cityCode').html(htmlStr);
+
+ queryStore();
+ queryCoach();
+ }, function (data) {
+ Feng.error("获取失败!" + data.responseJSON.message + "!");
+ });
+ ajax.set("code", $(this).val());
+ ajax.start();
+ })
+
+
+ $('#cityCode').change(function () {
+ queryStore();
+ })
+
+
+ $('#storeId').change(function () {
+ querySite();
+ })
+
+ $('input[name="payType"]').click(function () {
+ $('input[name="payType"]').each(function (index, e) {
+ let v = $(e).val();
+ if(v == 1) {
+ if (e.checked) {
+ $('span[class="cash_span"]').each(function (index, e) {
+ $(e).html('现金支付:<input class="cash" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> ¥ ');
+ })
+ } else {
+ $('span[class="cash_span"]').each(function (index, e) {
+ $(e).html('');
+ })
+ }
+ }
+
+ if(v == 2){
+ if (e.checked) {
+ $('span[class="paiCoin_span"]').each(function (index, e) {
+ $(e).html('玩湃币支付:<input class="paiCoin" type="number" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 币 ')
+ })
+ } else {
+ $('span[class="paiCoin_span"]').each(function (index, e) {
+ $(e).html('');
+ })
+ }
+ }
+ })
+ })
+
+
+});
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
index 1efa1f4..041bb6b 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -177,6 +177,8 @@
// List<SiteBooking> siteBookings = siteClient.listBooks(id);
List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("nextName",siteName).like("times",day));
+
+
if (siteName==null|| siteName.equals("")){
siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).like("times",day));
}
--
Gitblit v1.7.1