Merge remote-tracking branch 'origin/master'
| | |
| | | pmdsService.changeState(dto); |
| | | } |
| | | /** |
| | | * 门票核销 |
| | | * 根据id查询 |
| | | */ |
| | | |
| | | @RequestMapping("/base/pointMerchars/getById") |
| | | @ResponseBody |
| | | public PointsMerchandise getById(@RequestBody Integer id){ |
| | | return pmdsService.getById(id); |
| | | } |
| | | /** |
| | | * 门票核销 |
| | | */ |
| | | @RequestMapping("/base/course/changeState") |
| | | @ResponseBody |
| | | public Object changeState(@RequestBody CourseChangeStateDTO dto){ |
| | |
| | | <if test="query.state != null"> |
| | | and `state` = #{query.state} |
| | | </if> |
| | | AND endTime >= NOW() |
| | | and `type` = 3 |
| | | order by sort desc |
| | | </select> |
| | |
| | | } |
| | | |
| | | @PostMapping("/course/getHours") |
| | | public Integer getHours(@RequestBody Integer coursePackageId1){ |
| | | public List<Integer> getHours(@RequestBody Integer coursePackageId1){ |
| | | return coursePackageService.getHours(coursePackageId1); |
| | | } |
| | | |
| | |
| | | |
| | | @PostMapping("/course/auditDiscount") |
| | | public Boolean auditDiscount( @RequestBody AuditDiscount auditDiscount){ |
| | | TCoursePackageDiscount byId = discountService.getById(auditDiscount.getId()); |
| | | List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, byId.getCoursePackageId())); |
| | | |
| | | List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>() |
| | | .eq(TCoursePackageDiscount::getCoursePackageId, auditDiscount.getId())); |
| | | for (TCoursePackageDiscount tCoursePackageDiscount : list) { |
| | | tCoursePackageDiscount.setAuditStatus(auditDiscount.getType()); |
| | | tCoursePackageDiscount.setAuditRemark(auditDiscount.getText()); |
| | |
| | | .eq("auditStatus", 2)); |
| | | } |
| | | /** |
| | | * 获取根据课包id获取课包折扣 |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/coursePackageDiscount/queryByCoursePackageId1") |
| | | public List<TCoursePackageDiscount> queryByCoursePackageId1(@RequestBody Integer coursePackageId){ |
| | | return coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId)); |
| | | } |
| | | /** |
| | | * 获取课包折扣 |
| | | * @param coursePackagePaymentConfigId |
| | | * @return |
| | |
| | | re.setBuyTypeName("手动支付"+"-"+re.getBuyTypeName()); |
| | | } |
| | | } |
| | | BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment()); |
| | | re.setDiscountAmount(subtract); |
| | | |
| | | // 如果支付用户类型为管理员 则购买方式则为1线下购买 |
| | | if (re.getPayUserType()!=null){ |
| | | if (re.getPayUserType()== 2){ |
| | |
| | | } |
| | | } |
| | | } |
| | | if(re.getCashPayment()==null){ |
| | | BigDecimal bigDecimal = new BigDecimal("0.00"); |
| | | re.setDiscountAmount(bigDecimal); |
| | | continue; |
| | | } |
| | | BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment()); |
| | | re.setDiscountAmount(subtract); |
| | | } |
| | | if (query.getPayStudent()== null || query.getPayStudent().equals("")){ |
| | | if (query.getPayUser()== null || query.getPayUser().equals("")){ |
| | |
| | | |
| | | List<Map<String, Object>> queryByConfigId(@Param("oneId") Integer oneId); |
| | | |
| | | Integer getHours(@Param("coursePackageId") Integer coursePackageId); |
| | | List<Integer> getHours(@Param("coursePackageId") Integer coursePackageId); |
| | | |
| | | |
| | | |
| | |
| | | |
| | | List<Map<String, Object>> queryByConfigId(Integer oneId); |
| | | |
| | | Integer getHours(Integer coursePackageId); |
| | | List<Integer> getHours(Integer coursePackageId); |
| | | |
| | | ResultUtil paymentCourseCouponList(Integer uid, Integer coursePackagePaymentConfigId); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Integer getHours(Integer coursePackageId) { |
| | | public List<Integer> getHours(Integer coursePackageId) { |
| | | return this.baseMapper.getHours(coursePackageId); |
| | | } |
| | | |
| | |
| | | <select id="queryByConfigId" resultType="java.util.Map"> |
| | | select id,classHours from t_course_package_payment_config where coursePackageId =#{oneId} |
| | | </select> |
| | | <select id="getHours" resultType="java.lang.Integer"> |
| | | <select id="getHours" resultType="java.lang.Integer"> |
| | | select classHours from t_course_package_payment_config where coursePackageId =#{coursePackageId} |
| | | </select> |
| | | |
| | |
| | | <name>管理后台</name> |
| | | <description>管理后台</description> |
| | | <dependencies> |
| | | <!--处理json--> |
| | | <dependency> |
| | | <groupId>org.json</groupId> |
| | | <artifactId>json</artifactId> |
| | | <version>20210307</version> |
| | | </dependency> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-aop</artifactId> |
| | |
| | | @PostMapping("/base/pointMerchars/queryFee") |
| | | HashMap<String, Object> queryFee(QueryDataFee queryDataFee); |
| | | |
| | | |
| | | /** |
| | | * 根据id查询 |
| | | */ |
| | | @RequestMapping("/base/pointMerchars/getById") |
| | | PointsMerchandise getById(@RequestBody Integer id); |
| | | } |
| | |
| | | List<String> queryPackageById(Integer coursePackageId); |
| | | |
| | | @PostMapping("/course/getHours") |
| | | String getHours(Integer coursePackageId1); |
| | | List<Integer> getHours(Integer coursePackageId1); |
| | | |
| | | |
| | | @PostMapping("/course/queryFee") |
| | |
| | | @PostMapping("/coursePackageDiscount/queryByCoursePackageId") |
| | | List<TCoursePackageDiscount> queryByCoursePackageId(@RequestBody Integer coursePackageId); |
| | | /** |
| | | * 获取根据课包id获取课包折扣(获取所有) |
| | | */ |
| | | @PostMapping("/coursePackageDiscount/queryByCoursePackageId1") |
| | | List<TCoursePackageDiscount> queryByCoursePackageId1(@RequestBody Integer coursePackageId); |
| | | /** |
| | | * 获取课包折扣 |
| | | * @param coursePackagePaymentConfigId |
| | | * @return |
| | |
| | | return regiService.list(new LambdaQueryWrapper<Region>() |
| | | .eq(Region::getParentId,province)); |
| | | } |
| | | @RequestMapping(value = "/getCity1") |
| | | @ResponseBody |
| | | public Object getCity1(String province){ |
| | | // 获取省的id |
| | | Integer code = regiService.getOne(new QueryWrapper<Region>().eq("code", province)).getId(); |
| | | return regiService.list(new LambdaQueryWrapper<Region>() |
| | | .eq(Region::getParentId,code)); |
| | | } |
| | | // 通过市 获取运营商 |
| | | @RequestMapping(value = "/getOperator") |
| | | @ResponseBody |
| | |
| | | package com.dsh.guns.modular.system.controller.code; |
| | | |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.dsh.course.feignClient.activity.CouponClient; |
| | | import com.dsh.course.feignClient.activity.model.Coupon; |
| | | import com.dsh.course.feignClient.activity.model.CouponCity; |
| | | import com.dsh.course.feignClient.activity.model.CouponExamineListSearch; |
| | | import com.dsh.course.feignClient.activity.model.CouponListOfSearch; |
| | | import com.dsh.guns.config.UserExt; |
| | | import com.dsh.guns.core.base.controller.BaseController; |
| | | import com.dsh.guns.core.common.constant.factory.PageFactory; |
| | | import com.dsh.guns.core.exception.GunsException; |
| | |
| | | import org.springframework.web.bind.annotation.ResponseBody; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | */ |
| | | @RequestMapping(value = "/couponOfDetail/{id}") |
| | | public String detailOfCoupon(@PathVariable Integer id, Model model){ |
| | | Map<String, Object> stringObjectMap = client.queryCouponExamineDetail(id); |
| | | model.addAttribute(stringObjectMap); |
| | | model.addAttribute("id",id); |
| | | Coupon coupon = client.queryCouponById(id); |
| | | String content = coupon.getContent(); |
| | | JSONObject jsonObject = JSONObject.parseObject(content); |
| | | String one =""; |
| | | String two =""; |
| | | String three =""; |
| | | if(coupon.getType()==1){ |
| | | one = jsonObject.get("conditionalAmount").toString(); |
| | | two = jsonObject.get("deductionAmount").toString(); |
| | | } |
| | | if(coupon.getType()==2){ |
| | | one = jsonObject.get("conditionalAmount").toString(); |
| | | } |
| | | if(coupon.getType()==3){ |
| | | three = jsonObject.get("experienceName").toString(); |
| | | } |
| | | List<CouponCity> list = new ArrayList<>(); |
| | | List<Integer> list1=null; |
| | | List<TStore> list2=new ArrayList<>(); |
| | | if(coupon.getUseScope()==2){ |
| | | list = client.queryCity(coupon.getId()); |
| | | } |
| | | if(coupon.getUseScope()==3){ |
| | | // 门店ids |
| | | list1 = client.queryStore(coupon.getId()); |
| | | // 门店集合 |
| | | list2 = storeService.list(new LambdaQueryWrapper<TStore>().in(TStore::getId, list1)); |
| | | for (TStore tStore : list2) { |
| | | if (coupon.getPublisherType() == 1){ |
| | | // 获取运营商id |
| | | Integer operatorId = tStore.getOperatorId(); |
| | | TOperator operator = operatorService.getById(operatorId); |
| | | User user = userService.getById(operator.getUserId()); |
| | | if (ToolUtil.isNotEmpty(user)){ |
| | | tStore.setProvince(tStore.getProvince()+tStore.getCity()); |
| | | tStore.setPhone(user.getName()+"-"+user.getPhone()); |
| | | } |
| | | } |
| | | if (coupon.getPublisherType() == 2) { |
| | | User byId = userService.getById(tStore.getStoreStaffId()); |
| | | |
| | | tStore.setProvince(tStore.getProvince() + tStore.getCity()); |
| | | tStore.setPhone(byId.getName() + "-" + byId.getPhone()); |
| | | |
| | | } |
| | | } |
| | | } |
| | | model.addAttribute("city",list); |
| | | model.addAttribute("store",list2); |
| | | model.addAttribute("s",new SimpleDateFormat("yyyy-MM-dd").format(coupon.getStartTime())); |
| | | model.addAttribute("e",new SimpleDateFormat("yyyy-MM-dd").format(coupon.getEndTime())); |
| | | model.addAttribute("one",one); |
| | | model.addAttribute("two",two); |
| | | model.addAttribute("three",three); |
| | | ArrayList<String> strings = new ArrayList<>(); |
| | | String productImages = coupon.getProductImages(); |
| | | for (String s : productImages.split(",")) { |
| | | strings.add(s); |
| | | } |
| | | |
| | | model.addAttribute("img",strings); |
| | | Integer objectType = UserExt.getUser().getObjectType(); |
| | | System.out.println(objectType); |
| | | model.addAttribute("item",coupon); |
| | | model.addAttribute("objectType",objectType); |
| | | return PREFIX + "TCouponExamineInfo.html"; |
| | | } |
| | | |
| | |
| | | System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig); |
| | | // model.addAttribute("couponIds", "3,2"); |
| | | } |
| | | |
| | | return PREFIX + "coursePackage_info.html"; |
| | | } |
| | | |
| | |
| | | } |
| | | model.addAttribute("role",UserExt.getUser().getObjectType()); |
| | | model.addAttribute("type",tCoursePackage.getType()); |
| | | List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryByCoursePackageId1(tCoursePackage.getId()); |
| | | if (tCoursePackageDiscounts.size()>0){ |
| | | TCoursePackageDiscount tCoursePackageDiscount = tCoursePackageDiscounts.get(0); |
| | | model.addAttribute("audit",tCoursePackageDiscount.getAuditStatus()); |
| | | StringBuilder stringBuilder = new StringBuilder(""); |
| | | // 如果折扣未通过 |
| | | if (tCoursePackageDiscount.getAuditStatus() == 3){ |
| | | model.addAttribute("state","未通过"); |
| | | for (TCoursePackageDiscount coursePackageDiscount : tCoursePackageDiscounts) { |
| | | stringBuilder.append(coursePackageDiscount.getAuditRemark()+","); |
| | | } |
| | | if (!stringBuilder.equals("")){ |
| | | String string = stringBuilder.toString(); |
| | | String substring = string.substring(0, string.length() - 1); |
| | | model.addAttribute("reasons",substring); |
| | | }else{ |
| | | model.addAttribute("reasons",stringBuilder); |
| | | } |
| | | }else{ |
| | | model.addAttribute("reasons",stringBuilder); |
| | | } |
| | | if(tCoursePackageDiscount.getAuditStatus() == 2){ |
| | | model.addAttribute("state","已通过"); |
| | | } |
| | | if (tCoursePackageDiscount.getAuditStatus() == 1){ |
| | | model.addAttribute("state","待审核"); |
| | | } |
| | | }else{ |
| | | model.addAttribute("audit",2); |
| | | model.addAttribute("state",0); |
| | | model.addAttribute("reasons",""); |
| | | } |
| | | |
| | | model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list)); |
| | | return PREFIX + "coursePackageDiscount.html"; |
| | | } |
| | |
| | | Integer coursePackageId = pointMercharsVo.getCoursePackageId(); |
| | | List<String> name = courseClient.queryPackageById(coursePackageId); |
| | | Integer coursePackageId1 = pointMercharsVo.getCoursePackageId(); |
| | | String classHours = courseClient.getHours(coursePackageId1); |
| | | List<Integer> classHours = courseClient.getHours(coursePackageId1); |
| | | model.addAttribute("typeName",name.get(0)); |
| | | model.addAttribute("pageName",name.get(1)); |
| | | model.addAttribute("classHours",classHours); |
| | |
| | | public String payOfDetails(@PathVariable(value = "id") Integer id,Model model) { |
| | | System.out.println(id); |
| | | model.addAttribute("id",id); |
| | | Coupon coupon = client.queryCouponById(id); |
| | | model.addAttribute("type",coupon.getType()); |
| | | PointsMerchandise byId = pointMercharsClient.getById(id); |
| | | model.addAttribute("type",byId.getType()); |
| | | return PREFIX + "TGoods_pay.html"; |
| | | } |
| | | /** |
| | |
| | | public Object addDevice(Integer id,Integer siteId,String device) { |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map.put("space_id",siteId+""); |
| | | map.put("space_id",id.toString()); |
| | | map.put("device_id",device); |
| | | map.put("region_id",id.toString()); |
| | | map.put("region_id",siteId+""); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map); |
| | | return SUCCESS_TIP; |
| | |
| | | |
| | | |
| | | |
| | | // 添加场地 |
| | | TSite tSite = new TSite(); |
| | | tSite.setName(tStore.getName()); |
| | | tSite.setStoreId(tStore.getId()); |
| | | tSite.setSign(1); |
| | | siteService.save(tSite); |
| | | |
| | | HashMap<String, String> mapSite = new HashMap<>(); |
| | | mapSite.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | mapSite.put("name",tStore.getName()); |
| | | mapSite.put("space_id",tStore.getId().toString()); |
| | | mapSite.put("area_id",tSite.getId().toString()); |
| | | HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpaceArea", mapSite); |
| | | |
| | | ArrayList<StoreConfig> storeConfigs = new ArrayList<>(); |
| | | for (int i = 1; i < 9; i++) { |
| | |
| | | tStore.setOperatorId(null); |
| | | } |
| | | storeService.updateById(tStore); |
| | | String ids1 = byIdc.getIds(); |
| | | |
| | | HashMap<String, String> mapx = new HashMap<>(); |
| | | mapx.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | for (String s : ids1.split(",")) { |
| | | String post = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/deleteDevice/ids/" + s,mapx); |
| | | System.out.println(post); |
| | | } |
| | | |
| | | for (String s : ids.split(",")) { |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | map1.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("space_id",tStore.getId()+""); |
| | | map1.put("device_id",s); |
| | | map1.put("region_id",""); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); |
| | | System.out.println(s1); |
| | | } |
| | | |
| | | |
| | | |
| | | return new SuccessTip<>(); |
| | | }catch (Exception e){ |
| | |
| | | HashMap<String, String> map = new HashMap<>(); |
| | | map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map.put("name",site.getName()); |
| | | map.put("space_id",site.getId().toString()); |
| | | map.put("area_id",store.getId().toString()); |
| | | map.put("space_id",store.getId().toString()); |
| | | map.put("area_id",integer1.toString()); |
| | | String s = HttpRequestUtil.postRequest |
| | | ("https://try.daowepark.com/v7/user_api/general/addSpaceArea", map); |
| | | // 添加门禁 |
| | |
| | | for (String s1 : site.getIds().split(",")) { |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("space_id", site.getId() + ""); |
| | | map1.put("space_id", store.getId().toString() + ""); |
| | | map1.put("device_id", s1); |
| | | map1.put("region_id", store.getId().toString() + ""); |
| | | map1.put("region_id", integer1 + ""); |
| | | String s2 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); |
| | | System.out.println("添加闸机:" + s2); |
| | | } |
| | |
| | | for (String s : site.getIds().split(",")) { |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("space_id", store.getId() + ""); |
| | | map1.put("space_id", site.getId() + ""); |
| | | map1.put("device_id", s); |
| | | map1.put("region_id", site.getId() + ""); |
| | | map1.put("region_id", store.getId() + ""); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); |
| | | System.out.println(s1); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | return ResultUtil.success(); |
| | | } |
| | |
| | | public String infoBenefitsVideos(Model model, @PathVariable("id") Integer id,@PathVariable("type") Integer type,@PathVariable("benefitsVideosId") Integer benefitsVideosId) { |
| | | TQueryBenefitsVideosVO tQueryBenefitsVideosVO = new TQueryBenefitsVideosVO(); |
| | | BenefitsVideos benefitVideosById = benefitsVideoClient.getBenefitVideosById(benefitsVideosId); |
| | | TCourse tCourse = courseClient.queryCourseById(id); |
| | | TCourse tCourse = courseClient.queryCourseById(benefitVideosById.getCourseId()); |
| | | BeanUtils.copyProperties(tCourse,tQueryBenefitsVideosVO); |
| | | tQueryBenefitsVideosVO.setIntegral(benefitVideosById.getIntegral()); |
| | | tQueryBenefitsVideosVO.setBenefitsVideosId(benefitVideosById.getId()); |
| | |
| | | package com.dsh.guns.modular.system.controller.system; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.alibaba.nacos.common.utils.Md5Utils; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | import com.dsh.course.feignClient.account.AppUserClient; |
| | | import com.dsh.course.feignClient.account.CityManagerClient; |
| | | import com.dsh.course.feignClient.account.CoachClient; |
| | | import com.dsh.course.feignClient.account.model.CityManager; |
| | | import com.dsh.course.feignClient.account.model.Coach; |
| | | import com.dsh.course.feignClient.account.model.TAppUser; |
| | | import com.dsh.course.feignClient.course.CoursePackageClient; |
| | |
| | | import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient; |
| | | import com.dsh.course.feignClient.course.CoursePackageTypeClient; |
| | | import com.dsh.course.feignClient.course.model.TCoursePackage; |
| | | import com.dsh.course.feignClient.course.model.TCoursePackageType; |
| | | import com.dsh.course.feignClient.other.BallClient; |
| | | import com.dsh.course.feignClient.other.SiteClient; |
| | | import com.dsh.course.feignClient.other.model.Site; |
| | |
| | | import com.dsh.guns.modular.system.service.*; |
| | | import com.dsh.guns.modular.system.util.HttpRequestUtil; |
| | | import com.dsh.guns.modular.system.util.ResultUtil; |
| | | import com.google.common.base.Ascii; |
| | | import com.google.gson.JsonObject; |
| | | import com.netflix.ribbon.proxy.annotation.Http; |
| | | import com.sun.org.apache.xerces.internal.impl.io.ASCIIReader; |
| | | import io.netty.util.AsciiString; |
| | | import io.rong.util.HttpUtil; |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang.StringEscapeUtils; |
| | | import org.apache.logging.log4j.util.Base64Util; |
| | | |
| | | import org.json.JSONObject; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.HttpRequest; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.springframework.ui.Model; |
| | | import org.springframework.util.Base64Utils; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.io.BufferedReader; |
| | | import java.io.InputStreamReader; |
| | | import java.io.OutputStream; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.time.LocalTime; |
| | | import java.time.format.DateTimeFormatter; |
| | |
| | | private CoursePackageClient coursePackageClient; |
| | | @Autowired |
| | | private AppUserClient appUserClient; |
| | | |
| | | |
| | | @RequestMapping("/tolist") |
| | | public String tolist(Model model) { |
| | |
| | | , String zs, BigDecimal zsCoin, BigDecimal zsCash, String zsImage, BigDecimal zsInt, Integer zsId,Integer zsIId |
| | | , String zs2, BigDecimal zs2Coin, BigDecimal zs2Cash, String zs2Image, BigDecimal zs2Int, Integer zs2Id,Integer zs2IId |
| | | , String ly, BigDecimal lyCoin, BigDecimal lyCash, String lyImage, BigDecimal lyInt, Integer lyId,Integer lyIId |
| | | ,String sutuName |
| | | |
| | | ) { |
| | | |
| | |
| | | game.setOperationId(0); |
| | | } |
| | | System.out.println("============"+game); |
| | | Integer gameId = ballClient.save(game); |
| | | |
| | | // 添加sutu编号 |
| | | HashMap<String, String> map3 = new HashMap<>(); |
| | | // 添加sutu编号 |
| | | // 添加门禁 红蓝方 |
| | | TSite si = siteService.getById(site); |
| | | TStore st = storeService.getById(store); |
| | | map3.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map3.put("space_id", si.getId() + ""); |
| | | map3.put("name", sutuName); |
| | | map3.put("city_code", ""); |
| | | String s3 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map3); |
| | | System.out.println("---------------------------"+s3); |
| | | JSONObject jsonObject = new JSONObject(s3); |
| | | // 获取 data 字段的值 |
| | | JSONObject dataObject = jsonObject.getJSONObject("data"); |
| | | // 获取 sutu_id 字段的值 |
| | | String sutuIdValue = dataObject.getString("sutu_id"); |
| | | Integer sutuId = Integer.valueOf(sutuIdValue); |
| | | game.setSutuId(sutuId); |
| | | Integer gameId = ballClient.save(game); |
| | | List<TGameConfig> gameConfigList = new ArrayList<>(); |
| | | |
| | | |
| | |
| | | gameConfigly.setIntegral(lyInt); |
| | | gameConfigly.setOtherId(gameId); |
| | | gameConfigList.add(gameConfigly); |
| | | HashMap<String, String> map1 = new HashMap<>(); |
| | | HashMap<String, String> map2 = new HashMap<>(); |
| | | |
| | | |
| | | map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map1.put("space_id", si.getId() + ""); |
| | | map1.put("device_id", red); |
| | | map1.put("region_id", st.getId() + ""); |
| | | // 添加门禁 |
| | | String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); |
| | | map2.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); |
| | | map2.put("space_id", si.getId() + ""); |
| | | map2.put("device_id", blue); |
| | | map2.put("region_id", st.getId() + ""); |
| | | // 添加门禁 |
| | | String s2 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map2); |
| | | |
| | | |
| | | |
| | | System.out.println("---------------------------"+gameConfigList); |
| | | ballClient.saveConfig( gameConfigList); |
| | | return null; |
| | | } |
| | |
| | | private TGameConfigService gameConfigService; |
| | | @RequestMapping("/pre_edit/{id}") |
| | | public String pre_edit(@PathVariable("id") Integer id,Model model) { |
| | | |
| | | Game game = ballClient.queryGame(id); |
| | | System.out.println("---------game------"+game); |
| | | System.out.println("---------game------"+game); |
| | | model.addAttribute("game",game); |
| | | |
| | | if (game.getOperationId() ==0){ |
| | | model.addAttribute("opId","平台"); |
| | | model.addAttribute("is","平台"); |
| | |
| | | */ |
| | | @RequestMapping(value = "/", method = RequestMethod.GET) |
| | | public String index(Model model) { |
| | | // 判断是否第一次登录 如果是跳转至修改密码页面 |
| | | |
| | | model.addAttribute("tips", ""); |
| | | //获取菜单列表 |
| | | User user = UserExt.getUser(); |
| | |
| | | |
| | | private Integer state; |
| | | // 获取和设置方法 |
| | | private Integer sutuId; |
| | | private String sutuName; |
| | | } |
| | |
| | | <img src="${ctxPath}/img/password.png" /> |
| | | <input class="itemInput" type="password" name="password" id="password" placeholder="请输入密码" required="" value=""> |
| | | </div> |
| | | <!--<div class="item">--> |
| | | <!--<img src="${ctxPath}/img/password.png" />--> |
| | | <!--<div class="col-sm-8" style="padding-left: 0px; width: 40%">--> |
| | | <!--<input class="form-control" type="text" name="kaptcha" placeholder="请输入验证码" required="">--> |
| | | <!--</div>--> |
| | | <!--<div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;margin-left: 25%">--> |
| | | <!--<img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/>--> |
| | | <!--</div>--> |
| | | <!--</div>--> |
| | | |
| | | <!-- <div class="form-group" style="float: left;">--> |
| | | <!-- <div class="col-sm-8" style="padding-left: 0px; padding-right: 0px;">--> |
| | | <!-- <input class="form-control" type="text" name="kaptcha" placeholder="验证码" required="">--> |
| | | <!-- </div>--> |
| | | <!-- <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;">--> |
| | | <!-- <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button> |
| | | <button type="submit" id="submit" style="display: none;"></button> |
| | | </p> |
| | |
| | | "value":"" |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "SUTU名称", |
| | | "name": "sutuName", |
| | | "id": "u:a4dbdeb9165e", |
| | | "mode": "inline", |
| | | "size": "sm", |
| | | "horizontal": { |
| | | "leftFixed": "sm" |
| | | }, |
| | | "value": "", |
| | | "required": true |
| | | , |
| | | "value":"" |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "按钮", |
| | | "onEvent": { |
| | |
| | | "value":`${game.red}` |
| | | }, |
| | | { |
| | | "type": "input-text", |
| | | "label": "SUTU名称", |
| | | "name": "sutuName", |
| | | "id": "u:a4dbdeb9165e", |
| | | "mode": "inline", |
| | | "size": "sm", |
| | | "horizontal": { |
| | | "leftFixed": "sm" |
| | | }, |
| | | "value": "", |
| | | "required": true |
| | | , |
| | | "value":`${game.sutuId}` |
| | | }, |
| | | { |
| | | "type": "button", |
| | | "label": "按钮", |
| | | "onEvent": { |
| | |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*视频内容:</label> |
| | | <div class="col-sm-9" style="display: flex;"> |
| | | <img id="courseVideo" src="" width="150px" height="150px"> |
| | | <!-- <#avatar id="img" name="" avatarImg=""/>--> |
| | | <label class="col-sm-3 control-label head-scu-label">*课程内容</label> |
| | | <div class="col-sm-2" style="padding-top: 30px;"> |
| | | <video height="420" controls> |
| | | <source src="${data.courseVideo}" type="video/mp4"> |
| | | </video> |
| | | </div> |
| | | </div> |
| | | @} |
| | |
| | | <input type="hidden" id="type" value="${type}"> |
| | | <input type="hidden" id="coursePackagePaymentConfig" value='${coursePackagePaymentConfig}'> |
| | | @if(role==2){ |
| | | @if(state!=0){ |
| | | <div class="form-group"> |
| | | <div class="col-sm-2"></div> |
| | | <div class="col-sm-10"> |
| | | <label class="col-sm-2 control-label">审核状态:</label> |
| | | <div class="col-sm-4" style="margin-top: 6px;"> |
| | | <span>审核状态:${type}</span> |
| | | <span>${state} </span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | @if(type==3){ |
| | | @} |
| | | @if(audit==3){ |
| | | <div class="form-group"> |
| | | <div class="col-sm-2"></div> |
| | | <div class="col-sm-10"> |
| | | <label class="col-sm-2 control-label">拒绝理由:</label> |
| | | <div class="col-sm-4" style="margin-top: 6px;"> |
| | | <span>拒绝理由:</span> |
| | | <span>${reasons}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="hr-line-dashed"></div> |
| | | @if(type == 3){ |
| | | <h3>支付设置</h3> |
| | | @}else{ |
| | | <h3>课时设置</h3> |
| | | @} |
| | | |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*支付方式:</label> |
| | | <div class="col-sm-4" style="margin-top: 6px;"> |
| | |
| | | <input type="checkbox" disabled name="payType" value="2" ${playPaiCoin ? 'checked' : ''}> 玩湃币 |
| | | </div> |
| | | </div> |
| | | @if(type != 3){ |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*课时有效期:</label> |
| | | <div class="col-sm-4"> |
| | | 购买后 <input id="validDays" disabled name="validDays" type="number" value="${item.validDays}" min="0" placeholder="天数" style="width: 80px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> 天内有效 |
| | | </div> |
| | | </div> |
| | | @} |
| | | <div id="price"> |
| | | <div class="form-group"> |
| | | @if(type != 3){ |
| | | <label class="col-sm-3 control-label" >${type == 2||type == 3 ? '' : '*课时数:'}</label> |
| | | @} |
| | | <div class="col-sm-8"> |
| | | @if(type != 3){ |
| | | <span class="classNumber_span" disabled ${type == 2||type == 3 ? 'hidden=hidden' : ''}><input class="classNumber" type="number" value="${coursePackagePaymentConfig.classHours}" 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" disabled> |
| | | @if(cashPayment){ |
| | | 现金支付:<input class="cash" type="number" value="${coursePackagePaymentConfig.cashPayment}" min="0" placeholder="请输入金额" style="width: 110px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"> ¥ |
| | |
| | | @layout("/common/_container.html"){ |
| | | <style> |
| | | .avatar-uploader .el-upload { |
| | | border: 1px dashed #d9d9d9; |
| | | border-radius: 6px; |
| | | cursor: pointer; |
| | | position: relative; |
| | | height: 100px; |
| | | width: 100px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .avatar-uploader .el-upload:hover { |
| | | border-color: #409eff; |
| | | } |
| | | .avatar-uploader-icon { |
| | | font-size: 28px; |
| | | color: #8c939d; |
| | | width: 100px; |
| | | height: 100px; |
| | | line-height: 100px; |
| | | margin-top: 34px; |
| | | text-align: center; |
| | | } |
| | | .avatar { |
| | | width: 100px; |
| | | height: 100px; |
| | | display: block; |
| | | } |
| | | |
| | | .col-sm-12 { |
| | | margin-top: 20px; |
| | | } |
| | | |
| | | .col-sm-12 select { |
| | | height: 33px; |
| | | } |
| | | </style> |
| | | <div class="ibox float-e-margins"> |
| | | <div class="ibox-content"> |
| | | <input hidden id="t1" value="${item.type}"> |
| | | <input hidden id="id" value="${id}"> |
| | | <input hidden id="t2" value="${item.distributionMethod}"> |
| | | <input hidden id="t3" value="${item.redemptionMethod}"> |
| | | <input hidden id="t4" value="${item.userPopulation}"> |
| | | <input hidden id="t5" value="${item.useScope}"> |
| | | <input hidden id="one" value="${one}"> |
| | | <input hidden id="two" value="${two}"> |
| | | <input hidden id="three" value="${three}"> |
| | | <input hidden id="city" value="${city}"> |
| | | <input hidden id="objectType" value="${objectType}"> |
| | | <div class="form-horizontal"> |
| | | |
| | | <input value="${id}"> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*当前状态: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*发布省: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*发布城市: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*优惠券名称: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | <input class="form-control" id="name" name="name" autocomplete="off" placeholder="请输入优惠券名称" value="${item.name}" readonly> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | |
| | | <label class="col-sm-3 control-label">*优惠券类型: </label> |
| | | <input class="col-sm-1" style="margin-left: 2.7%;width: 13px;height: 13px;" |
| | | name="prescription" onclick="radio1()" checked disabled |
| | | value="1" type="radio"> |
| | | <label class="col-sm-1" style="margin-left: 10px;width: 17%">满减券: 满</label> |
| | | <input type="text" class="col-sm-1" id="conditionalAmount" readonly |
| | | onkeyup="value=value.replace(/\D/g,'')"/> |
| | | <label class="col-sm-1" style="margin-left: -1.5%;width: 14%"> 元 , 减 </label> |
| | | <input type="text" class="col-sm-1" id="deductionAmount" readonly |
| | | onkeyup="value=value.replace(/\D/g,'')"/> |
| | | <label class="col-sm-1" style="margin-left: -1.5%"> 元</label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <input class="col-sm-1" name="prescription" type="radio" value="2" disabled |
| | | onclick="radio2()" |
| | | style="margin-left: 24.7%;"> |
| | | <label class="col-sm-1" style="margin-left: -17px;width: 20%;">代金券: 可抵</label> |
| | | <input class="col-sm-1" id="voucherAmount" readonly /> |
| | | <label class="col-sm-1">元</label> |
| | | </div> |
| | | <div class="form-group"> |
| | | <input class="col-sm-1" name="prescription" type="radio" value="3" disabled |
| | | onclick="radio3()" |
| | | style="margin-left: 24.7%;"> |
| | | <label class="col-sm-1 control-label" style="margin-left: -1%;width: 14%;margin-top: -5px">体验券: </label> |
| | | <input class="col-sm-1" style="width: 35%" id="experienceName" name="name" |
| | | autocomplete="off" placeholder="请输入体验券名称" readonly> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*优惠券说明: </label> |
| | | <div class="col-sm-9"> |
| | | <textarea type="checkbox" id="illustrate" style="margin-left: 1%;width: 75%;height: 120px" |
| | | placeholder="请输入优惠券名称"></textarea> |
| | | placeholder="请输入优惠券说明" disabled>${item.illustrate}</textarea> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*发放方式: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*所需积分: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*用户人群: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*发放数量: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*限领数量: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*有效期: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*指定门店: </label> |
| | | <div class="col-sm-9"> |
| | | <label style="color: #c0a16b">待审核</label> |
| | | <label style="color: red">未通过</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-5"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <label class="col-sm-3 control-label">*审核状态: </label> |
| | | <input class="col-sm-1 control-label" name="exchangeMethod" type="radio" |
| | | value="1" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 20%;margin-top: 7px">通过</label> |
| | | <input class="col-sm-1 control-label" name="exchangeMethod" type="radio" |
| | | <label class="col-sm-3 control-label">*发放方式: </label> |
| | | <input class="col-sm-1 control-label" name="distributionMethod" type="radio" disabled |
| | | value="1" checked style="margin-top: 10px"/> |
| | | <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">积分购买</label> |
| | | <input class="col-sm-1 control-label" name="distributionMethod" type="radio" disabled |
| | | value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 20%;margin-top: 7px">拒绝</label> |
| | | <label class="col-sm-1" style="width: 16%;margin-top: 7px">注册赠送</label> |
| | | <input class="col-sm-1 control-label" name="distributionMethod" type="radio" disabled |
| | | value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 16%;margin-top: 7px">自动发券</label> |
| | | <input class="col-sm-1 control-label" name="distributionMethod" type="radio" disabled |
| | | value="4" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 16%;margin-top: 7px">课包赠送</label> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | @if(objectType == 1){ |
| | | |
| | | |
| | | <div class="row" id="exchangeType" > |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <label class="col-sm-3 control-label">*兑换方式: </label> |
| | | <input class="col-sm-1 control-label" onclick="exchangeMethod1()" name="exchangeMethod" type="radio" disabled |
| | | value="1" style="margin-top: 10px"/> |
| | | <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">积分</label> |
| | | <input class="col-sm-1 control-label" name="exchangeMethod" onclick="exchangeMethod2()" type="radio" disabled |
| | | value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 20%;margin-top: 7px">现金+积分</label> |
| | | <input class="col-sm-1 control-label" name="exchangeMethod" onclick="exchangeMethod3()" type="radio" disabled |
| | | value="3" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 9%;margin-top: 7px">现金</label> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row" id="needAmount" > |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*所需现金</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="requiredCash" placeholder="请输入所需现金" name="requiredCash" autocomplete="off" type="text" value="${item.cash}" readonly |
| | | onkeyup="this.value=this.value.replace(/\D/g,'')"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | @} |
| | | <div class="row" id="needIntegral" > |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*所需积分</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="requiredPoints" placeholder="请输入所需积分" name="requiredPoints" autocomplete="off" type="text" value="${item.integral}" readonly |
| | | onkeyup="this.value=this.value.replace(/\D/g,'')"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <label class="col-sm-3 control-label">*用户人群: </label> |
| | | <input class="col-sm-1 control-label" name="userGroup" type="radio" disabled |
| | | value="1" checked style="margin-top: 10px"/> |
| | | <label class="col-sm-1" style="margin-left: -15px;width: 16%;margin-top: 7px">全部用户</label> |
| | | <input class="col-sm-1 control-label" name="userGroup" type="radio" disabled |
| | | value="2" style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label> |
| | | <input class="col-sm-1 control-label" name="userGroup" type="radio" disabled |
| | | value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*发放数量</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="quantityIssued" placeholder="请输入发放数量" name="quantityIssued" autocomplete="off" type="text" value="${item.quantityIssued}" readonly |
| | | onkeyup="this.value=this.value.replace(/\D/g,'')"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*限领数量</label> |
| | | <div class="col-sm-9"> |
| | | <input class="form-control" id="pickUpQuantity" placeholder="请输入限领数量" name="pickUpQuantity" autocomplete="off" type="text" value="${item.pickUpQuantity}" readonly |
| | | onkeyup="this.value=this.value.replace(/\D/g,'')"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row"> |
| | | <div class="col-sm-6"> |
| | | <label class="col-sm-3 control-label">*有效期: </label> |
| | | <input type="text" style="width: 30%;margin-left: 1%" class="col-sm-3" id="periodOfValidity" value="${s} - ${e}" disabled |
| | | placeholder="请选择"/> |
| | | </div> |
| | | </div> |
| | | @if(objectType == 1){ |
| | | <div class="row" id="app" > |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*商品封面: </label> |
| | | <div class="col-sm-2" style="margin-top: 2%"> |
| | | <img src=${item.cover}> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row" id="app1" > |
| | | <div class="col-sm-6" style="width: 100%"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*商品图片(请上传不超过五张图片): </label> |
| | | <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%"> |
| | | @for(i in img){ |
| | | <img src=${i} style="width: 150px"> |
| | | @} |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | @} |
| | | <div class="row" id="belongsCon" > |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <div class="initialLevel col-sm-12 control-label form-group"> |
| | | <label class="col-sm-3">*适用范围: </label> |
| | | <div class="col-sm-3" id="belongsNationwide" > |
| | | <input class="col-sm-1" onclick="scopeOfApplication1()" name="company" type="radio" disabled |
| | | value="1" style="margin-top: 10px"/> |
| | | <label class="col-sm-2" style="width: 68%;margin-top: 7px">全国通用</label> |
| | | </div> |
| | | <div class="col-sm-3" id="belongsCity" > |
| | | <input class="col-sm-1" name="company" onclick="scopeOfApplication2()" type="radio" disabled |
| | | value="2" style="margin-top: 10px"/> |
| | | <label class="col-sm-2" style="width: 64%;margin-top: 7px">指定城市</label> |
| | | </div> |
| | | <div class="col-sm-3" id="belongsStore" > |
| | | <input class="col-sm-1" name="company" onclick="scopeOfApplication3()" type="radio" disabled |
| | | value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/> |
| | | <label class="col-sm-2" style="width: 64%;margin-top: 6px;">指定门店</label> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row" id="citySelect" hidden="hidden"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">*指定城市: </label> |
| | | <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id=""> |
| | | <thead> |
| | | <tr> |
| | | <td>省</td> |
| | | <td>市</td> |
| | | </tr> |
| | | @for(c in city){ |
| | | <td>${c.province}</td> |
| | | <td>${c.city}</td> |
| | | @} |
| | | </thead> |
| | | </table> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row" id="storeSelect" hidden="hidden"> |
| | | <div class="col-sm-6"> |
| | | <div class="form-group"> |
| | | <div class="col-sm-12"> |
| | | <label class="col-sm-3 control-label">*指定门店: </label> |
| | | </div> |
| | | <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px"> |
| | | <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="storeTable"> |
| | | <thead> |
| | | <tr> |
| | | <td>所在省市</td> |
| | | <td>所属账号</td> |
| | | <td>门店名称</td> |
| | | </tr> |
| | | @for(s in store){ |
| | | <td>${s.province}</td> |
| | | <td>${s.phone}</td> |
| | | <td>${s.name}</td> |
| | | @} |
| | | </thead> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | <div class="form-horizontal"> |
| | | <div class="col-sm-11"> |
| | | <div class="col-sm-11"> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">审核状态:</label> |
| | | <div class="col-sm-9"> |
| | | <input type="radio" name="r1" value="2" checked> 通过 |
| | | <input type="radio" name="r1" value="3"> 拒绝 |
| | | </div> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label class="col-sm-3 control-label">拒绝理由:</label> |
| | | <div class="col-sm-9"> |
| | | <textarea id="text" style="width: 460px; height: 138px;"></textarea> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="col-sm-12" style="display: none" id="detailBox"> |
| | | <div style="display: flex;justify-content: center;margin-top: 20px"> |
| | | <label>拒绝描述:</label> |
| | | <textarea style="width: 90%;height: 200px" type="text" id="detail"></textarea> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="display: flex;justify-content: center"> |
| | | <#button btnCss="danger" name="关闭" style="float:right;margin-left: 20%" id="cancel" |
| | | icon="fa-eraser" clickFun="CouponExamineInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" style="float:left" id="ensure" icon="fa-check" |
| | | clickFun="CouponExamineInfoDlg.addSubmitCoupon()"/> |
| | | <div class="row"> |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10" style="margin-left: 20%;"> |
| | | <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="couponInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="cancel" icon="fa-eraser" clickFun="couponInfoDlg.audit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="${ctxPath}/modular/system/tCouponExamine/TCouponExamine.js"></script> |
| | | <script src="${ctxPath}/js/vue/vue.js"></script> |
| | | <script src="${ctxPath}/js/elementui/index.js"></script> |
| | | <link rel="stylesheet" href="${ctxPath}/js/elementui/index.css"> |
| | | <script src="${ctxPath}/modular/system/tCoupon/TCouponInfo.js"></script> |
| | | <script src="${ctxPath}/modular/system/tCoupon/TStoreInfo.js"></script> |
| | | <script type="text/javascript"> |
| | | window.onload = function() { |
| | | console.log(12312) |
| | | } |
| | | laydate.render({ |
| | | elem: '#periodOfValidity', |
| | | type: 'date', |
| | | range: true |
| | | }); |
| | | var vue1 = new Vue({ |
| | | el: '#app', |
| | | data: { |
| | | autoUpload: true,//自动上传 |
| | | imageUrl: '',//模型数据,用于上传图片完成后图片预览 |
| | | dialogVisible: false |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | this.imageUrl = URL.createObjectURL(file.raw); |
| | | couponInfoDlg.goodsCover = file.response; |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | const isLt2M = file.size / 1024 / 1024 < 10; |
| | | if (!isLt2M) { |
| | | this.$message.error('上传图片大小不能超过 10MB!'); |
| | | } |
| | | return isLt2M; |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | couponInfoDlg.goodsCover = ''; |
| | | console.log(couponInfoDlg.goodsCover) |
| | | }, |
| | | }, |
| | | created() { |
| | | }, |
| | | }); |
| | | |
| | | var vue2 = new Vue({ |
| | | el: '#app1', |
| | | data: { |
| | | autoUpload: true,//自动上传 |
| | | imageUrl1: '',//模型数据,用于上传图片完成后图片预览 |
| | | dialogVisible: false |
| | | }, |
| | | methods: { |
| | | handleAvatarSuccess(res, file) { |
| | | couponInfoDlg.goodsPicArray.push(file); |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | const isLt2M = file.size / 1024 / 1024 < 10; |
| | | if (!isLt2M) { |
| | | this.$message.error('上传图片大小不能超过 10MB!'); |
| | | } |
| | | return isLt2M; |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => { |
| | | return item.uid != file.uid; |
| | | }); |
| | | }, |
| | | }, |
| | | created() { |
| | | }, |
| | | }); |
| | | |
| | | |
| | | |
| | | </script> |
| | | @} |
| | |
| | | <div class="row btn-group-m-t"> |
| | | <div class="col-sm-10"> |
| | | <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> |
| | | <#button btnCss="info" name="保存" id="cancel" icon="fa-eraser" clickFun="CoursePackageDiscount.audit()"/> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <label class="col-sm-3 control-label">课时数:</label> |
| | | <div class="col-sm-9"> |
| | | <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId"> |
| | | <option value="">${classHours}</option> |
| | | @for(obj in classHours){ |
| | | <option value="">${obj}</option> |
| | | @} |
| | | </select> |
| | | </div> |
| | | </div> |
| | |
| | | <#button name="添加" icon="fa-plus" clickFun="TStudent.openAddTStudent()"/> |
| | | @} |
| | | |
| | | <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/> |
| | | <#button name="修改" icon="fa-edit" clickFun="TStudent.openTStudentDetail()" space="true"/> |
| | | <#button name="查看详情" icon="fa-edit" clickFun="TStudent.openTStudentDetail1()" space="true"/> |
| | | <#button name="学员评语" icon="fa-edit" clickFun="TStudent.openTStudentDetail2()" space="true"/> |
| | | <#button name="冻结" icon="fa-edit" clickFun="TStudent.editCoursePackageState(2)" space="true"/> |
| | |
| | | "name": "idCard", |
| | | "size": "md", |
| | | "mode": "horizontal", |
| | | "required": true, |
| | | "validationErrors": { |
| | | "isId": "请输入正确的身份证号" |
| | | }, |
| | | "required": false, |
| | | "validateOnChange": true, |
| | | "validations": { |
| | | "isId": true |
| | | }, |
| | | "value":`${item.idCard!}` |
| | | }, |
| | | { |
| | |
| | | }}}, |
| | | {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, |
| | | {title: '优惠券名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '适用范围', field: 'useScope', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全国", 2: "指定城市", 3: "指定门店"}[value] |
| | | } |
| | | }, |
| | | |
| | | {title: '优惠券类型', field: 'type', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "满减券", 2: "代金券", 3: "体验券"}[value] |
| | | }}, |
| | | {title: '发放方式', field: 'distributionMethod', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "积分购买", 2: "注册赠送", 3: "自动发券",4:"课包赠送"}[value] |
| | | }}, |
| | | {title: '有效期', field: 'timeValue', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '用户人群', field: 'userPopulation', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "全部用户", 2: "年度会员", 3: "已有学员用户"}[value] |
| | | }}, |
| | | {title: '发放数量', field: 'quantityIssued', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '限领数量', field: 'pickUpQuantity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '已领数量', field: 'hasPickQty', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '活动状态', field: 'status', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "未开始", 2: "已开始", 3: "已结束"}[value] |
| | | }}, |
| | | {title: '可售状态', field: 'state', visible: true, align: 'center', valign: 'middle', |
| | | formatter: function (value, row, index) { |
| | | return {1: "上架", 2: "下架"}[value] |
| | | }}, |
| | | {title: '优惠券详情', field: 'illustrate', visible: true, align: 'center', valign: 'middle'}, |
| | | ]; |
| | | }; |
| | | |
| | |
| | | layer.closeAll(); |
| | | }, |
| | | btn2:function () { |
| | | if (TCompetition.seItem.auditStatus==3){ |
| | | Feng.info("该赛事不可再次审核") |
| | | return false; |
| | | } |
| | | let audit = document.querySelector('input[name="r1"]:checked').value; |
| | | let text = $("#text").val() |
| | | if(audit==3){ |
| | |
| | | couponInfoDlg.close = function () { |
| | | parent.layer.close(window.parent.TCoupon.layerIndex); |
| | | } |
| | | couponInfoDlg.close1 = function () { |
| | | parent.layer.close(window.parent.TCouponExamine.layerIndex); |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | couponInfoDlg.delete = function (o) { |
| | | $(o).parent("div").remove() |
| | | } |
| | | couponInfoDlg.audit = function () { |
| | | var id = $("#id").val(); |
| | | let audit = document.querySelector('input[name="r1"]:checked').value; |
| | | let text = $("#text").val() |
| | | if(audit==3){ |
| | | if(text==''){ |
| | | Feng.info("请输入拒绝理由") |
| | | return false; |
| | | } |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponExamine/examine", function (data) { |
| | | if (data.code == 200) { |
| | | Feng.success("操作成功!"); |
| | | |
| | | window.parent.TCouponExamine.table.refresh(); |
| | | couponInfoDlg.close1(); |
| | | } else if(data=="repeat"){ |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | Feng.error("请勿重复操作"); |
| | | }else { |
| | | return Feng.error(data.msg); |
| | | } |
| | | }, function (data) { |
| | | Feng.error("操作失败!") |
| | | window.location.reload(); |
| | | window.parent.layer.closeAll(); |
| | | return Feng.error("操作失败!"); |
| | | }); |
| | | |
| | | ajax.set("id", id); |
| | | ajax.set("state", audit); |
| | | ajax.set("remark", text); |
| | | ajax.start(); |
| | | layer.closeAll(); |
| | | } |
| | | /** |
| | | * 提交 |
| | | */ |
| | |
| | | .set('registerDate') |
| | | .set('commercialType'); |
| | | } |
| | | TCarInfoDlg.audit = function() { |
| | | |
| | | } |
| | | /** |
| | | * 提交添加 |
| | | */ |
| | |
| | | CoursePackageDiscount.close = function () { |
| | | parent.layer.close(window.parent.CoursePackage.layerIndex); |
| | | }; |
| | | CoursePackageDiscount.close1 = function () { |
| | | parent.layer.close(window.parent.TCompetition.layerIndex); |
| | | }; |
| | | |
| | | |
| | | CoursePackageDiscount.audit = function () { |
| | | var id = $("#id").val(); |
| | | let audit = document.querySelector('input[name="r1"]:checked').value; |
| | | let text = $("#text").val() |
| | | if(audit==3){ |
| | | if(text==''){ |
| | | Feng.info("请输入拒绝理由") |
| | | return false; |
| | | } |
| | | } |
| | | var ajax = new $ax(Feng.ctxPath + "/tDiscount/auditDiscount", function (data) { |
| | | if (data.code == 200) { |
| | | Feng.success("操作成功!"); |
| | | window.parent.TCompetition.table.refresh(); |
| | | CoursePackageDiscount.close1(); |
| | | } else if(data=="repeat"){ |
| | | Feng.error("请勿重复操作"); |
| | | }else { |
| | | return Feng.error(data.msg); |
| | | } |
| | | }, function (data) { |
| | | return Feng.error("操作失败!"); |
| | | }); |
| | | ajax.set("id", id); |
| | | ajax.set("audit", audit); |
| | | ajax.set("text", text); |
| | | ajax.start(); |
| | | layer.closeAll(); |
| | | } |
| | | /** |
| | | * 提交修改 |
| | | */ |
| | |
| | | layer.closeAll(); |
| | | }, |
| | | btn2:function () { |
| | | |
| | | let audit = document.querySelector('input[name="r1"]:checked').value; |
| | | let text = $("#text").val() |
| | | if(audit==3){ |
| | | if(text==''){ |
| | | console.log("让我看看!") |
| | | console.log(TCompetition.seItem.courseId) |
| | | Feng.info("请输入拒绝理由") |
| | | return false; |
| | | } |
| | |
| | | window.parent.layer.closeAll(); |
| | | return Feng.error("操作失败!"); |
| | | }); |
| | | ajax.set("id", TCompetition.seItem.id); |
| | | |
| | | ajax.set("id", TCompetition.seItem.courseId); |
| | | ajax.set("audit", audit); |
| | | ajax.set("text", text); |
| | | ajax.start(); |
| | |
| | | {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, |
| | | {title: '闸机id', field: 'ids', visible: true, align: 'center', valign: 'middle'}, |
| | | ]; |
| | | }; |
| | | |
| | |
| | | |
| | | var citySelect = document.getElementById("city"); |
| | | citySelect.innerHTML = ""; |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){ |
| | | var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity1", function(data){ |
| | | data.forEach(province => { |
| | | var option = document.createElement("option"); |
| | | option.value = province.code; // 根据你的数据结构确定省份的id字段 |
| | |
| | | var marker; |
| | | //搜索地图 |
| | | TCarInfoDlg.searchByStationName = function(e,type){ |
| | | var keyword="成都"; |
| | | console.log("调用") |
| | | var keyword=""; |
| | | if(type==2){ |
| | | keyword = $(e).parent().prev().find("input").val(); |
| | | }else { |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date insertTime; |
| | | private Integer state; |
| | | |
| | | @TableField("sutuId") |
| | | private Integer sutuId; |
| | | @TableField("sutuName") |
| | | private String sutuName; |
| | | // 获取和设置方法 |
| | | } |