nickchange
2023-11-15 331ae50b1cdcb31a4a0c182abb82aec5c1b12f83
Merge remote-tracking branch 'origin/master'
43个文件已修改
1047 ■■■■ 已修改文件
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponExamineController.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/login.html 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackageDiscount.html 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_info.html 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCouponExamine/TCouponExamineInfo.html 537 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/Game.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -98,9 +98,17 @@
         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){
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -107,7 +107,6 @@
        <if test="query.state != null">
            and `state` = #{query.state}
        </if>
        AND endTime >= NOW()
        and `type` = 3
        order by sort desc
    </select>
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -452,7 +452,7 @@
    }
    @PostMapping("/course/getHours")
    public Integer getHours(@RequestBody Integer coursePackageId1){
    public List<Integer> getHours(@RequestBody Integer coursePackageId1){
        return coursePackageService.getHours(coursePackageId1);
    }
@@ -498,8 +498,9 @@
    @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());
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java
@@ -29,6 +29,14 @@
                .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
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -330,8 +330,7 @@
                    re.setBuyTypeName("手动支付"+"-"+re.getBuyTypeName());
                }
            }
            BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment());
            re.setDiscountAmount(subtract);
            // 如果支付用户类型为管理员 则购买方式则为1线下购买
            if (re.getPayUserType()!=null){
                if (re.getPayUserType()== 2){
@@ -347,6 +346,13 @@
                    }
                }
            }
            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("")){
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java
@@ -44,7 +44,7 @@
    List<Map<String, Object>> queryByConfigId(@Param("oneId") Integer oneId);
    Integer getHours(@Param("coursePackageId") Integer coursePackageId);
    List<Integer> getHours(@Param("coursePackageId") Integer coursePackageId);
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java
@@ -87,7 +87,7 @@
    List<Map<String, Object>> queryByConfigId(Integer oneId);
    Integer getHours(Integer coursePackageId);
    List<Integer> getHours(Integer coursePackageId);
    ResultUtil paymentCourseCouponList(Integer uid, Integer coursePackagePaymentConfigId);
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1862,7 +1862,7 @@
    }
    @Override
    public Integer getHours(Integer coursePackageId) {
    public List<Integer> getHours(Integer coursePackageId) {
        return this.baseMapper.getHours(coursePackageId);
    }
cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml
cloud-server-management/pom.xml
@@ -14,6 +14,12 @@
    <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>
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -103,5 +103,9 @@
    @PostMapping("/base/pointMerchars/queryFee")
    HashMap<String, Object> queryFee(QueryDataFee queryDataFee);
    /**
     * 根据id查询
     */
    @RequestMapping("/base/pointMerchars/getById")
    PointsMerchandise getById(@RequestBody Integer id);
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -106,7 +106,7 @@
    List<String> queryPackageById(Integer coursePackageId);
    @PostMapping("/course/getHours")
    String getHours(Integer coursePackageId1);
    List<Integer> getHours(Integer coursePackageId1);
    @PostMapping("/course/queryFee")
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java
@@ -21,6 +21,11 @@
    @PostMapping("/coursePackageDiscount/queryByCoursePackageId")
    List<TCoursePackageDiscount> queryByCoursePackageId(@RequestBody Integer coursePackageId);
    /**
     * 获取根据课包id获取课包折扣(获取所有)
     */
    @PostMapping("/coursePackageDiscount/queryByCoursePackageId1")
    List<TCoursePackageDiscount> queryByCoursePackageId1(@RequestBody Integer coursePackageId);
    /**
     * 获取课包折扣
     * @param coursePackagePaymentConfigId
     * @return
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
@@ -321,6 +321,14 @@
        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
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponExamineController.java
@@ -1,12 +1,16 @@
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;
@@ -26,6 +30,8 @@
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;
@@ -127,8 +133,72 @@
     */
    @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";
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java
@@ -387,6 +387,7 @@
            System.out.println("=========coursePackagePaymentConfig=============>" + coursePackagePaymentConfig);
//        model.addAttribute("couponIds", "3,2");
        }
        return PREFIX + "coursePackage_info.html";
    }
@@ -425,6 +426,39 @@
        }
        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";
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -137,7 +137,7 @@
            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);
@@ -649,8 +649,8 @@
    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";
    }
    /**
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -99,9 +99,9 @@
    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;
@@ -524,19 +524,7 @@
            // 添加场地
            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++) {
@@ -653,27 +641,6 @@
                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){
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TSiteController.java
@@ -477,8 +477,8 @@
        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);
        // 添加门禁
@@ -489,9 +489,9 @@
            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);
            }
@@ -541,16 +541,14 @@
            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();
    }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
@@ -120,7 +120,7 @@
    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());
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -1,7 +1,6 @@
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;
@@ -10,7 +9,6 @@
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;
@@ -18,7 +16,6 @@
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;
@@ -31,32 +28,17 @@
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;
@@ -100,6 +82,7 @@
    private CoursePackageClient coursePackageClient;
    @Autowired
    private AppUserClient appUserClient;
    @RequestMapping("/tolist")
    public String tolist(Model model) {
@@ -242,6 +225,7 @@
            , 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
    ) {
@@ -278,8 +262,27 @@
            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<>();
@@ -411,10 +414,25 @@
        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;
    }
@@ -458,11 +476,9 @@
    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);
        model.addAttribute("game",game);
        if (game.getOperationId() ==0){
            model.addAttribute("opId","平台");
            model.addAttribute("is","平台");
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -68,6 +68,8 @@
     */
    @RequestMapping(value = "/", method = RequestMethod.GET)
    public String index(Model model) {
        // 判断是否第一次登录 如果是跳转至修改密码页面
        model.addAttribute("tips", "");
        //获取菜单列表
        User user = UserExt.getUser();
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/Game.java
@@ -27,4 +27,6 @@
    private Integer state;
    // 获取和设置方法
    private Integer sutuId;
    private String sutuName;
}
cloud-server-management/src/main/webapp/WEB-INF/view/login.html
@@ -70,12 +70,12 @@
                <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 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;margin-left: 25%">-->
<!--                <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;">-->
                    <!--<img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/>-->
                <!--</div>-->
            <!--</div>-->
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_add.html
@@ -288,6 +288,21 @@
              "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": {
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/ball_pre_edit.html
@@ -287,6 +287,21 @@
              "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": {
cloud-server-management/src/main/webapp/WEB-INF/view/system/benefits/TBenefitsVideos_edit.html
@@ -90,10 +90,11 @@
            </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>
            @}
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackageDiscount.html
@@ -8,22 +8,24 @@
                <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>
cloud-server-management/src/main/webapp/WEB-INF/view/system/coursePackage/coursePackage_info.html
@@ -193,7 +193,12 @@
    </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;">
@@ -201,17 +206,23 @@
        <input type="checkbox" disabled name="payType" value="2" ${playPaiCoin ? 'checked' : ''}> 玩湃币&nbsp;&nbsp;&nbsp;&nbsp;
    </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;">&nbsp;&nbsp;&nbsp;&nbsp;</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;"> ¥&nbsp;&nbsp;&nbsp;&nbsp;
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCouponExamine/TCouponExamineInfo.html
@@ -1,194 +1,441 @@
@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 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" 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="row">
            <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="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>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html
@@ -108,6 +108,7 @@
            <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>
cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html
@@ -92,7 +92,9 @@
                    <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>
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudent.html
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit_first.html
@@ -187,14 +187,8 @@
          "name": "idCard",
          "size": "md",
          "mode": "horizontal",
          "required": true,
          "validationErrors": {
            "isId": "请输入正确的身份证号"
          },
          "required": false,
          "validateOnChange": true,
          "validations": {
            "isId": true
          },
          "value":`${item.idCard!}`
        },
        {
cloud-server-management/src/main/webapp/static/modular/system/coursePackage/TCoupon.js
@@ -26,35 +26,12 @@
                }}},
        {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'},
    ];
};
cloud-server-management/src/main/webapp/static/modular/system/tCompetitionAudit/tCompetition.js
@@ -143,6 +143,10 @@
                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){
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
@@ -42,6 +42,9 @@
couponInfoDlg.close = function () {
    parent.layer.close(window.parent.TCoupon.layerIndex);
}
couponInfoDlg.close1 = function () {
    parent.layer.close(window.parent.TCouponExamine.layerIndex);
}
/**
@@ -316,7 +319,42 @@
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();
}
/**
 * 提交
 */
cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js
@@ -99,7 +99,9 @@
    .set('registerDate')
    .set('commercialType');
}
TCarInfoDlg.audit = function() {
}
/**
 * 提交添加
 */
cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js
@@ -14,8 +14,39 @@
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();
}
/**
 * 提交修改
 */
cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js
@@ -201,10 +201,13 @@
                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;
                    }
@@ -227,7 +230,8 @@
                    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();
cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js
@@ -18,7 +18,6 @@
        {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'},
    ];
};
@@ -123,7 +122,7 @@
    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字段
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js
@@ -361,7 +361,8 @@
var marker;
//搜索地图
TCarInfoDlg.searchByStationName = function(e,type){
    var keyword="成都";
    console.log("调用")
    var keyword="";
    if(type==2){
        keyword = $(e).parent().prev().find("input").val();
    }else {
cloud-server-other/src/main/java/com/dsh/other/entity/Game.java
@@ -48,6 +48,9 @@
    @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;
    // 获取和设置方法
}