cloud-server-account/src/main/java/com/dsh/account/model/query/coachQuery/CoachQuery.java
@@ -13,4 +13,5 @@ // 编辑页面回显使用 private Integer id; private List<Integer> storeIds; private Integer operatorId; } cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
@@ -26,6 +26,7 @@ private CoachMapper coachMapper; @Override public List<CoachSerchVO> listAll(CoachQuery query) { return coachMapper.listAll(query); } cloud-server-account/src/main/resources/mapper/CoachMapper.xml
@@ -33,9 +33,11 @@ and t1.phone LIKE concat('%',#{query.phone},'%') </if> <if test="query.id!=null and query.id!= ''"> and t1.id LIKE concat('%',#{query.id},'%') and t1.id = #{query.id} </if> <if test="query.operatorId!=null and query.operatorId!= ''"> and t1.cityManagerId = #{query.operatorId} </if> and t1.state != 3 </where> </select> cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -114,9 +114,10 @@ * 根据课包类型获取课包 */ @ResponseBody @PostMapping("/base/coursePackage/getCoursePackageByType") public List<TCoursePackage> getCoursePackageByType(@RequestBody Integer typeId){ return coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("coursePackageTypeId", typeId)); @PostMapping("/base/coursePackage/getCoursePackageByType/{typeId}/{storeId}") public List<TCoursePackage> getCoursePackageByType(@PathVariable("typeId") Integer typeId,@PathVariable("storeId")Integer storeId){ return coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("coursePackageTypeId", typeId).eq("storeId",storeId)); } /** * 本周福利列表 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -234,7 +234,7 @@ .eq("coursePackageId", coursePackage.getId()) .eq("classDate", classDate.getTime()) .eq("endDate", endDate.getTime())); if (list.size()+1>coursePackage.getMaxSubscribeNumber()){ if (list1.size()+1>coursePackage.getMaxSubscribeNumber()){ // 当前课包预约人数已满 return 5001; } @@ -270,6 +270,13 @@ return packagePaymentService.changeState(dto); } @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}") public List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId,@PathVariable("coursePackageId") Integer coursePackageId){ List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId", appUserId) .eq("coursePackageId", coursePackageId)); return list; } /** * 获取购课记录 */ cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
@@ -10,6 +10,7 @@ import com.dsh.guns.modular.system.model.dto.BallQueryDto; import com.dsh.guns.modular.system.model.dto.PacQueryDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; @@ -28,8 +29,8 @@ /** * 根据课包类型获取课包 */ @PostMapping("/base/coursePackage/getCoursePackageByType") List<TCoursePackage> getCoursePackageByType(@RequestBody Integer typeId); @PostMapping("/base/coursePackage/getCoursePackageByType/{typeId}/{storeId}") List<TCoursePackage> getCoursePackageByType(@PathVariable("typeId") Integer typeId, @PathVariable("storeId")Integer storeId); /** * 根据门店id获取课包 */ cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java
@@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.course.model.QueryRegistrationRecord; import com.dsh.course.feignClient.course.model.QueryWalkInStudentList; import com.dsh.course.feignClient.course.model.TCoursePackage; import com.dsh.course.feignClient.course.model.TCoursePackagePayment; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.model.dto.CoursePackage; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -99,4 +101,7 @@ HashMap<String, Object> courseYys(@RequestBody List<Integer> userPt); @PostMapping("/coursePackagePayment/courseStore") HashMap<String, Object> courseStore(@RequestBody List<Integer> userPt); @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}") List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId,@PathVariable("coursePackageId") Integer coursePackageId); } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoachController.java
@@ -50,8 +50,8 @@ Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List<Coach> list1=coachClient.getProvince(); CoachQuery coachQuery = new CoachQuery(); coachQuery.setStoreIds(new ArrayList<>()); List<CoachSerchVO> data = coachClient.listAll(coachQuery); List<String> province = new ArrayList<>(); for (CoachSerchVO coach : data) { @@ -252,18 +252,15 @@ coachQuery.setName(name); coachQuery.setPhone(phone); Integer objectType = UserExt.getUser().getObjectType(); if (objectType == 1){ Integer objectId = UserExt.getUser().getObjectId(); coachQuery.setOperatorId(objectId); } if (objectType == 2){ Integer objectId = UserExt.getUser().getObjectId(); List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>().eq("operatorId", objectId)) .stream().map(TStore::getId).collect(Collectors.toList()); coachQuery.setStoreIds(operatorId); coachQuery.setOperatorId(objectId); } if (objectType == 3){ Integer objectId = UserExt.getUser().getObjectId(); List<Integer> list = new ArrayList<>(); list.add(objectId); coachQuery.setStoreIds(list); } return coachClient.listAll(coachQuery); } } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
@@ -17,16 +17,20 @@ import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.model.TCoursePackagePayment; import com.dsh.guns.modular.system.model.dto.CoursePackage; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.ICoursePackageService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.util.ResultUtil; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -93,8 +97,6 @@ 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"; @@ -112,23 +114,83 @@ // 获取课包id Integer coursePackageId = tCoursePackagePayment.getCoursePackageId(); List<TCoursePackageDiscount> list = coursePackageDiscountClient.queryByCoursePackageId(coursePackageId); // 获取当前课包价格配置 CoursePackagePaymentConfig coursePackagePaymentConfigs = coursePackagePaymentConfigClient.getById(id); Integer coursePackageId1 = tCoursePackagePayment.getCoursePackageId(); TCoursePackage tCoursePackage = coursePackageClient.queryById(coursePackageId1); Double cashPayment = coursePackagePaymentConfigs.getCashPayment(); String c1 = Double.toString(cashPayment); BigDecimal bigDecimal = new BigDecimal(c1); tCoursePackagePayment.setCashPayment(bigDecimal); Date currentDate = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(currentDate); calendar.add(Calendar.DAY_OF_MONTH, 20); Date updatedDate = calendar.getTime(); tCoursePackagePayment.setOriginalPrice(cashPayment); tCoursePackagePayment.setOriginalPrice(tCoursePackagePayment.getCashPayment().doubleValue()); tCoursePackagePayment.setUseTime(updatedDate); tCoursePackagePayment.setPlayPaiCoin(coursePackagePaymentConfigs.getPlayPaiCoin()); // 查询当前课包有没有课包折扣 List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryByCoursePackageId(coursePackageId); // 判断当前用户是不是会员 Integer appUserId = tCoursePackagePayment.getAppUserId(); Date vipEndTime = appUserClient.queryAppUser1(appUserId).getVipEndTime(); for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { JSONObject jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent()); switch (tCoursePackageDiscount.getType()){ case 1: // 是会员 if (!vipEndTime.before(new Date())){ // 会员折扣金额 double discountMember = jsonObject.getDouble("discountMember"); Double aDouble = new Double(discountMember); if (aDouble!=null){ String value = String.valueOf(discountMember); BigDecimal bigDecimal = new BigDecimal(value); tCoursePackagePayment.setCashPayment(bigDecimal); } } break; case 2: // 判断当前用户是否已经购买过当前课包 List<com.dsh.course.feignClient.course.model.TCoursePackagePayment> result= coursePackagePaymentClient.getByUserIdAndCoursePackageId(tCoursePackagePayment.getAppUserId(),tCoursePackagePayment.getCoursePackageId()); // 已经购买了 if (result.size()!=0){ // 会员续课折扣 double continuingMember = jsonObject.getDouble("continuingMember"); // 用户续课折扣 double continuingUser = jsonObject.getDouble("continuingUser"); // 是会员享受会员续课折扣 if (!vipEndTime.before(new Date())){ String value = String.valueOf(continuingMember); BigDecimal bigDecimal = new BigDecimal(value); tCoursePackagePayment.setCashPayment(bigDecimal); }else{ // 否则享受用户续课折扣 String value = String.valueOf(continuingUser); BigDecimal bigDecimal = new BigDecimal(value); tCoursePackagePayment.setCashPayment(bigDecimal); } } break; case 3: // 限时折扣判断是否在有效期 String timeFrameStart = jsonObject.getString("timeFrameStart"); String timeFrameEnd = jsonObject.getString("timeFrameEnd"); SimpleDateFormat format = new SimpleDateFormat(timeFrameStart); SimpleDateFormat format1 = new SimpleDateFormat(timeFrameEnd); try { Date parse = format.parse(timeFrameStart); Date parse1 = format1.parse(timeFrameEnd); if (new Date().after(parse) && new Date().before(parse1)){ double continuingMember = jsonObject.getDouble("discountMember"); String value = String.valueOf(continuingMember); BigDecimal bigDecimal = new BigDecimal(value); tCoursePackagePayment.setCashPayment(bigDecimal); } } catch (ParseException e) { e.printStackTrace(); } break; case 4: // 赠送课时 break; } } coursePackagePaymentClient.addCoursePackagePayment(tCoursePackagePayment); return ResultUtil.success("添加成功"); } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
@@ -94,8 +94,8 @@ */ @ResponseBody @RequestMapping("/getCoursePackageByType") public List<TCoursePackage> getCoursePackageByType(Integer storeId){ return coursePackageClient.getCoursePackageByType(storeId); public List<TCoursePackage> getCoursePackageByType(Integer storeId,Integer typeId){ return coursePackageClient.getCoursePackageByType(typeId,storeId); } /** * 跳转到列表页 @@ -859,6 +859,7 @@ Date startDate = null; Date endDate =null ; String holitime = coursePackage.getHolitime(); if (holitime!=null&&holitime!="") { String[] dateParts = holitime.split(" - "); @@ -906,6 +907,19 @@ coursePackage.setStatus(1); coursePackage.setState(1); coursePackage.setInsertTime(new Date()); Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); if (objectType==2){ Integer storeId = coursePackage.getStoreId(); TStore store = storeService.getOne(new QueryWrapper<TStore>().eq("id", storeId)); coursePackage.setProvince(store.getProvince()); coursePackage.setProvinceCode(store.getProvinceCode()); coursePackage.setCity(store.getCity()); coursePackage.setCityCode(store.getCityCode()); } // 详情多图片 // String substring = coursePackage.getDetailDrawing().substring(0, coursePackage.getDetailDrawing().length() - 1); // coursePackage.setDetailDrawing(substring); cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -57,6 +57,7 @@ import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @Controller @RequestMapping("/ball") @@ -881,6 +882,13 @@ @ResponseBody public List<Map<String,Object>> yuyuelist(BookingQuery bookingQuery) { Integer objectType = UserExt.getUser().getObjectType(); if(objectType==2){ List<Integer> operatorId = storeService.list(new QueryWrapper<TStore>() .eq("operatorId", UserExt.getUser().getObjectId())) .stream().map(TStore::getId).collect(Collectors.toList()); bookingQuery.setStoreIds(operatorId); } if(objectType==3){ bookingQuery.setStoreId(UserExt.getUser().getObjectId()); } @@ -1044,20 +1052,36 @@ String cityCode = null; if(objectType == 2){//城市管理员 CityManager cityManager = cityManagerClient.queryCityManagerById(objectId); cityCode = cityManager.getCityCode(); // 获取到这个运营商下面的所有门店 List<TStore> operatorId = storeService.list(new QueryWrapper<TStore>().eq("operatorId",objectId)); model.addAttribute("store", operatorId); List<Coach> coach = coachClient.queryCoachByOperatorId(objectId); model.addAttribute("coach", coach); // 如果该运营商下面没有门店 if (operatorId.size()==0){ List<TStore> o = new ArrayList<>(); List<TSite> tSites = new ArrayList<>(); model.addAttribute("store", o); model.addAttribute("site", tSites); }else{ List<TSite> storeId = siteService.list(new QueryWrapper<TSite>() .eq("storeId", operatorId.get(0).getId())); model.addAttribute("site", storeId); } }else { List<Map<String, Object>> list = storeService.queryProvince(cityCode); model.addAttribute("province", list); Object code = list.get(0).get("code"); List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode); model.addAttribute("city", list1); String code1 = list1.get(0).get("code").toString(); List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1)); model.addAttribute("store", list2); TStore store = list2.get(0); List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1)); model.addAttribute("site", list3); } List<Map<String, Object>> list = storeService.queryProvince(cityCode); model.addAttribute("province", list); Object code = list.get(0).get("code"); List<Map<String, Object>> list1 = storeService.queryCity(code.toString(), cityCode); model.addAttribute("city", list1); String code1 = list1.get(0).get("code").toString(); List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", code1).eq("state", 1)); model.addAttribute("store", list2); TStore store = list2.get(0); List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", store.getId()).eq("state", 1)); model.addAttribute("site", list3); model.addAttribute("objectType",objectType); return PREFIX+"yuyue_add.html"; } @@ -1069,10 +1093,16 @@ siteBooking.setInsertTime(new Date()); siteBooking.setState(1); siteBooking.setStatus(0); siteClient.addSiteBooking(siteBooking); // 如果是运营商添加的话 根据门店的省市来存储 if (UserExt.getUser().getObjectType() == 2){ TStore byId = storeService.getById(siteBooking.getStoreId()); siteBooking.setProvince(byId.getProvince()); siteBooking.setProvinceCode(byId.getProvinceCode()); siteBooking.setCity(byId.getCity()); siteBooking.setCityCode(byId.getCityCode()); } siteClient.addSiteBooking(siteBooking); System.out.println("================="+siteBooking); return new ResultUtil<>(null,200,null,null,null); } cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoachQuery.java
@@ -13,4 +13,5 @@ // 编辑页面回显使用 private Integer id; private List<Integer> storeIds; private Integer operatorId; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/dto/BookingQuery.java
@@ -2,6 +2,8 @@ import lombok.Data; import java.util.List; @Data public class BookingQuery { String provinceCode; @@ -16,4 +18,5 @@ Integer payMethod; Integer storeId; List<Integer> storeIds; } cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html
@@ -8,6 +8,7 @@ <div class="ibox-content"> <div class="form-horizontal"> <div class="row"> @if(objectType == 1){ <div class="form-group"> <label class="col-sm-3 control-label">*所在省:</label> <div class="col-sm-4"> @@ -28,6 +29,7 @@ </select> </div> </div> @} <div class="form-group"> <label class="col-sm-3 control-label">*所属门店:</label> <div class="col-sm-4"> cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_edit.html
@@ -47,7 +47,7 @@ <div class="row"> <input type="hidden" id="id" value="${item.id}"> <input type="hidden" id="type" name="type" value="${type}"> @if(type==1){ @if(objectType==1){ <div class="form-group"> <label class="col-sm-3 control-label">*所在省:</label> <div class="col-sm-4"> cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js
@@ -48,7 +48,9 @@ * 提交添加用户 */ CoursePackageInfo.addSubmit = function () { let objectType= $('#objectType').val(); console.log("看看角色类型") console.log(objectType) let province = $('#provinceCode option:checked').text(); let provinceCode = $('#provinceCode').val(); let city = $('#cityCode option:checked').text(); @@ -119,7 +121,7 @@ couponIds: typeof counpons == "undefined" ? 0 : counpons }); }); let objectType= $('#objectType').val(); if (objectType==1){ if(null == provinceCode || '' == provinceCode){ Feng.error("所在省不能为空"); cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js
@@ -309,8 +309,15 @@ Feng.info("请输入玩湃币支付") return; } var courseTimeId= $("#courseTime").val() console.log("看看课时") console.log(courseTimeId) if(typeof courseTimeId === 'undefined'){ console.log("进入") courseTimeId=0; } $.ajax({ url: Feng.ctxPath + "/cpPayment/addCoursePackagePayment/"+ $("#courseTime").val(), url: Feng.ctxPath + "/cpPayment/addCoursePackagePayment/"+ courseTimeId, type: "POST", contentType: "application/json", // 设置请求头的 Content-Type data: JSON.stringify(data), // 将数据转换为 JSON 字符串 @@ -339,8 +346,11 @@ } TCompetition.getCoursePackage = function (e) { var oneId=$(e).val(); console.log("门店id") console.log(oneId) var type = $("#coursePackageType").val(); var storeId = $("#store").val(); console.log("课包类型") console.log(storeId) var content = "<option value=''>请选择</option>"; var ajax = new $ax(Feng.ctxPath + "/coursePackage/getCoursePackageByType", function(data){ if(data!=null){ @@ -351,8 +361,8 @@ $("#coursePackageName").empty().append(content); } }); ajax.set("storeId",oneId); ajax.set("courseType",type); ajax.set("storeId",storeId); ajax.set("typeId",oneId); ajax.start(); }; TCompetition.getCoursePackageConfig = function (e) { cloud-server-other/src/main/java/com/dsh/other/entity/BookingQuery.java
@@ -2,6 +2,8 @@ import lombok.Data; import java.util.List; @Data public class BookingQuery { String provinceCode; @@ -16,4 +18,5 @@ Integer payMethod; Integer storeId; List<Integer> storeIds; } cloud-server-other/src/main/resources/mapper/GameMapper.xml
@@ -74,7 +74,12 @@ <if test="storeId!=null "> and st.id=#{storeId} </if> <if test="storeIds != null and storeIds.size()>0"> AND bk.storeId IN <foreach collection="storeIds" separator="," item="id" open="(" close=")"> #{id} </foreach> </if> </where>