puzhibing
2023-07-31 c743f4413a00fc063bbbd9d851b6d0c3fff10581
Merge remote-tracking branch 'origin/master'
13个文件已修改
3个文件已添加
1451 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/login.html 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html 347 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/course/course.js 383 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js 204 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java
@@ -76,4 +76,45 @@
    }
    @PostMapping("/base/city/getById")
    public TCityManager getById(@RequestBody Integer id){
        try {
            return cityService.getById(id);
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
    @PostMapping("/base/city/update")
    public void update(@RequestBody TCityManager manager){
        try {
             cityService.updateById(manager);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    @PostMapping("/base/city/freeze")
    public void freeze(@RequestBody Integer id){
        try {
            TCityManager byId = cityService.getById(id);
            byId.setState(2);
            cityService.updateById(byId);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    @PostMapping("/base/city/unfreeze")
    public void unfreeze(@RequestBody Integer id){
        try {
            TCityManager byId = cityService.getById(id);
            byId.setState(1);
            cityService.updateById(byId);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java
@@ -14,4 +14,17 @@
    @PostMapping("/base/city/add")
    void add(TCityManager manager);
    @PostMapping("/base/city/getById")
    TCityManager getById(Integer id);
    @PostMapping("/base/city/update")
    void update(TCityManager manager);
    @PostMapping("/base/city/freeze")
    void freeze(Integer id);
    @PostMapping("/base/city/unfreeze")
    void unfreeze(Integer id);
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
@@ -80,11 +80,16 @@
    /**
     * 跳转到修改车辆管理
     */
    @RequestMapping("/tCompetition_update/{id}")
    public String tCarUpdate(@PathVariable Integer id, Model model) {
        Competition competition = competitionClient.queryById(id);
        model.addAttribute("item",competition);
        return PREFIX + "tCompetition_edit.html";
    @RequestMapping("/tCity_update/{id}")
    public String tCityUpdate(@PathVariable Integer id, Model model) {
        TCityManager byId = cityClient.getById(id);
        model.addAttribute("item",byId);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",list);
        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode()));
        List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId() ));
        model.addAttribute("list1",list1);
        return PREFIX + "tCity_edit.html";
    }
@@ -118,10 +123,15 @@
    }
    @RequestMapping(value = "/update")
    public Object update(Competition competition) {
    @ResponseBody
    public Object update(TCityManager manager) {
        try {
            competitionClient.update(competition);
            return SUCCESS_TIP;
            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, manager.getProvinceCode()));
            manager.setProvince(one.getName());
            TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, manager.getCityCode()));
            manager.setCity(one1.getName());
            cityClient.update(manager);
            return new SuccessTip<>();
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
@@ -151,6 +161,43 @@
        }
    }
    @RequestMapping(value = "/freeze")
    @ResponseBody
    public Object freeze(Integer id) {
        try {
            cityClient.freeze(id);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
    @RequestMapping(value = "/unfreeze")
    @ResponseBody
    public Object unfreeze(Integer id) {
        try {
            cityClient.unfreeze(id);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
    @RequestMapping(value = "/pwd")
    @ResponseBody
    public Object pwd(Integer id) {
        try {
            TCityManager byId = cityClient.getById(id);
            byId.setPassword(SecureUtil.md5("a123456"));
            cityClient.update(byId);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
    @RequestMapping(value = "/getPeopleFromId")
    public Object getPeopleFromId(Integer id,Integer state) {
        try {
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -12,7 +12,9 @@
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.support.HttpKit;
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.TCity;
import com.dsh.guns.modular.system.model.TStore;
import com.dsh.guns.modular.system.service.ICityService;
import com.dsh.guns.modular.system.service.IStoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -40,6 +42,9 @@
    @Autowired
    private IStoreService storeService;
    @Autowired
    private ICityService cityService;
    /**
@@ -146,6 +151,17 @@
        }
    }
    @RequestMapping(value = "/onChange")
    @ResponseBody
    public Object onChange(Integer oneId) {
        try {
            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, oneId));
            return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
}
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCourseController.java
New file
@@ -0,0 +1,39 @@
package com.dsh.guns.modular.system.controller.code;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 课程管理
 * @author zhibing.pu
 * @Date 2023/7/27 15:54
 */
@Controller
@RequestMapping("/course")
public class TCourseController {
    private String PREFIX = "/system/course/";
    /**
     * 跳转到列表页
     * @return
     */
    @GetMapping("/showCourseList")
    public String showCourseList(){
        return PREFIX + "course.html";
    }
    /**
     * 跳转到添加页
     * @return
     */
    @GetMapping("/showAddCourse")
    public String showAddCourse(){
        return PREFIX + "course_add.html";
    }
}
cloud-server-management/src/main/webapp/WEB-INF/view/login.html
@@ -70,15 +70,15 @@
                <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="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>-->
            <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>
cloud-server-management/src/main/webapp/WEB-INF/view/system/course/course.html
New file
@@ -0,0 +1,66 @@
@layout("/common/_container.html"){
<link rel="stylesheet" href="${ctxPath}/static/js/layui/css/layui.css"  media="all">
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <h5>用户管理</h5>
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-lg-10 col-sm-9">
                                <div class="row">
                                    <div class="col-lg-4 col-sm-12">
                                        <#NameCon id="name" name="搜索" placeholder="帐号/姓名/手机号"/>
                                    </div>
                                </div>
                            </div>
                            <div class="col-lg-2 col-sm-3">
                                <div class="row">
                                    <div class="col-lg-12 col-sm-12">
                                        <#button name="搜索" icon="fa-search" clickFun="Course.search()"/>
                                        <#button name="重置" icon="fa-trash" clickFun="Course.resetSearch()" space="true"/>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="hidden-xs" id="managerTableToolbar" role="group">
                            @if(shiro.hasPermission("/course/addCourse")){
                            <#button name="添加" icon="fa-plus" clickFun="Course.addCourse()"/>
                            @}
                            @if(shiro.hasPermission("/course/editCourse")){
                            <#button name="编辑" icon="fa-edit" clickFun="Course.editCourse()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/deleteCourse")){
                            <#button name="删除" icon="fa-remove" clickFun="Course.deleteCourse()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/upCourse")){
                            <#button name="上架" icon="fa-refresh" clickFun="Course.upCourse()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/downCourse")){
                            <#button name="下架" icon="fa-warning" clickFun="Course.downCourse()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/course/detailsCourse")){
                            <#button name="详情" icon="fa-check-circle" clickFun="Course.detailsCourse()" space="true"/>
                            @}
                        </div>
                        <#table id="managerTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/system/course/course.js"></script>
<script src="${ctxPath}/static/js/layui/layui.js" charset="utf-8"></script>
<script>
    laydate.render({
        elem: '#beginTime'
    });
    laydate.render({
        elem: '#endTime'
    });
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html
@@ -11,15 +11,31 @@
                    <div class="col-sm-12">
                        <div class="row">
                            <div class="col-sm-3">
                                <#SelectCon id="pCode" name="所在省" >
                                <div class="input-group">
                                    <div class="input-group-btn open">
                                        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
                                            所在省
                                        </button>
                                    </div>
                                    <select class="form-control" id="pCode" onchange="TCompetition.oneChange(this)">
                                <option value="">全部</option>
                                @for(obj in list){
                                <option value="${obj.code}">${obj.name}</option>
                                @}
                            </#SelectCon>
                                    </select>
                            </div>
                            <div class="col-sm-3">
                            </div>
                            <div class="col-sm-3">
                                <div class="input-group">
                                <div class="input-group-btn open">
                                    <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true">
                                        所在市
                                    </button>
                                </div>
                                <select class="form-control" id="cCode">
                                </select>
                            </div>
                            </div>
                            <div class="col-sm-3">
                                <#NameCon id="name" name="管理员姓名" />
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html
@@ -4,7 +4,6 @@
        <div class="form-horizontal" id="carInfoForm">
            <div class="form-group" id="provinceCode">
                <label class="col-sm-3 control-label">所在省:</label>
                <div class="col-sm-9">
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html
@@ -1,350 +1,47 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal" id="carInfoForm">
            <input type="hidden" id="id" name="id" value="${item.id}">
            <input type="hidden" id="roleType" name="roleType" value="${roleType}">
            @if(language==1){
            <div class="row">
                <div class="col-sm-11">
                    <div class="form-group">
                        <label class="col-sm-3 control-label">所属机构:</label>
                        <div class="col-sm-9"  style="display: flex;align-items: center;">
                            @if(roleType == 1){
                            <div class="radio radio-info radio-inline">
                                <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
                                <label for="companyType1"> 平台车辆 </label>
                            </div>
                            <div class="radio radio-success radio-inline">
                                <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
                                <label for="companyTyp2"> 加盟车辆 </label>
                            </div>
                            <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
                                <option value="">选择所属分公司</option>
                                @for(obj in companyList!){
                                <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
                                @}
                            </select>
                            <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
                                <option value="">选择所属加盟商</option>
                                @for(obj in franchiseeList!){
                                <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                                @}
                            </select>
                            @}else if(roleType == 2){
                            <span class="control-label">${objectName!}</span>
                            <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
                                <option value="">选择所属加盟商</option>
                                @for(obj in franchiseeList!){
                                <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                                @}
                            </select>
                            @}else if(roleType == 3){
                            <span class="control-label">${objectName!}</span>
                            @}
                        </div>
                    </div>
                    <div class="form-group">
                        <fieldset>
                            <label class="col-sm-3 control-label">服务模式:</label>
            <input hidden id="id" value="${item.id}">
            <div class="form-group" id="provinceCode">
                <label class="col-sm-3 control-label">所在省:</label>
                            <div class="col-sm-9">
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
                                    <label for="serverBox1"> 摩托车 </label>
                                </div>
                                <div class="checkbox checkbox-success  checkbox-inline">
                                    <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
                                    <label for="serverBox4"> 同城快送 </label>
                                </div>
                            </div>
                        </fieldset>
                    </div>
                    <div class="form-group" id="zcModelDiv">
                        <label class="col-sm-3 control-label">摩托车车型:</label>
                        <div class="col-sm-9">
                            <select class="form-control" id="zcModel" name="zcModel">
                                <option value="">选择车型</option>
                                @for(obj in zcModelList){
                                <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
                    <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
                        <option value="">选择省</option>
                        @for(obj in list){
                        <option value="${obj.code}" ${obj.code == item.provinceCode ? 'selected=selected' : ''}>${obj.name}</option>
                        <option value="${obj.code}">${obj.name}</option>
                                @}
                            </select>
                        </div>
                    </div>
                    <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)">
                    <option value="">选择车辆品牌</option>
                    @for(obj in brandList){
                    <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
            <div class="form-group" id="cityCode">
                <label class="col-sm-3 control-label">所在市:</label>
                <div class="col-sm-9">
                    <select class="form-control" id="cCode" name="cCode">
                        <option value="">选择市</option>
                        @for(obj in list1){
                        <option value="${obj.code}" ${obj.code == item.cityCode ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </#select>
                <#select id="carModelId" name="车辆类型:">
                <option value="">选择车辆类型</option>
                @for(obj in modelList){
                <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
                @}
            </#select>
            <#select id="carColor" name="车辆颜色:">
            <option value="">选择车辆颜色</option>
            <option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>黑色</option>
            <option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>银色</option>
            <option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>白色</option>
            <option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>红色</option>
            <option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>黄色</option>
            <option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>橙色</option>
            <option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>蓝色</option>
        </#select>
        <#input id="carLicensePlate" name="车牌号" value="${item.carLicensePlate}"/>
        <#avatar id="carPhoto" name="车辆照片:" avatarImg="${item.carPhoto}"/>
        <#input id="drivingLicenseNumber" name="行驶证编号" value="${item.drivingLicenseNumber}"/>
        <#avatar id="drivingLicensePhoto" name="行驶证照片:" avatarImg="${item.drivingLicensePhoto}"/>
        <#input id="annualInspectionTime" name="年检到期时间" type="text" value="${item.annualInspectionTime}"/>
        <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text" value="${item.commercialInsuranceTime}"/>
                    </select>
    </div>
</div>
            <#input id="name" name="管理员姓名" type="text" value="${item.name}"/>
            <#input id="phone" name="管理员手机号" type="text" value="${item.phone}"/>
        </div>
<div class="row btn-group-m-t">
    <div class="col-sm-10 col-sm-offset-5">
        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
    </div>
</div>
            @}
            @if(language==2){
<div class="row">
    <div class="col-sm-11">
        <div class="form-group">
            <label class="col-sm-3 control-label">Affiliated organization:</label>
            <div class="col-sm-9"  style="display: flex;align-items: center;">
                @if(roleType == 1){
                <div class="radio radio-info radio-inline">
                    <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
                    <label for="companyType1"> Platform vehicle </label>
                </div>
                <div class="radio radio-success radio-inline">
                    <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
                    <label for="companyTyp2"> Franchised vehicles </label>
                </div>
                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
                    <option value="">Select Branch</option>
                    @for(obj in companyList!){
                    <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
                    <option value="">Select the franchisee</option>
                    @for(obj in franchiseeList!){
                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                @}else if(roleType == 2){
                <span class="control-label">${objectName!}</span>
                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
                    <option value="">Select the franchisee</option>
                    @for(obj in franchiseeList!){
                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                @}else if(roleType == 3){
                <span class="control-label">${objectName!}</span>
                @}
            </div>
        </div>
        <div class="form-group">
            <fieldset>
                <label class="col-sm-3 control-label">Service mode:</label>
                <div class="col-sm-9">
                    <div class="checkbox checkbox-success  checkbox-inline">
                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
                        <label for="serverBox1"> motorcycle </label>
                    </div>
                    <div class="checkbox checkbox-success  checkbox-inline">
                        <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
                        <label for="serverBox4"> Intra-city express delivery </label>
                    </div>
                </div>
            </fieldset>
        </div>
        <div class="form-group" id="zcModelDiv">
            <label class="col-sm-3 control-label">Motorcycle model setting:</label>
            <div class="col-sm-9">
                <select class="form-control" id="zcModel" name="zcModel">
                    <option value="">Select vehicle type</option>
                    @for(obj in zcModelList){
                    <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
            </div>
        </div>
        <div class="form-group" id="kcModelDiv">
            <label class="col-sm-3 control-label">Cross city travel model:</label>
            <div class="col-sm-9">
                <select class="form-control" id="kcModel" name="kcModel">
                    <option value="">Select vehicle type</option>
                    @for(obj in kcModelList){
                    <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
            </div>
        </div>
        <#select id="carBrandId" name="Vehicle brand:" onchange="TCarInfoDlg.brandChange(this)">
        <option value="">Select vehicle brand</option>
        @for(obj in brandList){
        <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
        @}
    </#select>
    <#select id="carModelId" name="Vehicle type:">
    <option value="">Select vehicle type</option>
    @for(obj in modelList){
    <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
    @}
</#select>
<#select id="carColor" name="Vehicle color:">
<option value="">Select vehicle color</option>
<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>black</option>
<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>silvery</option>
<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>white</option>
<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>red</option>
<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>yellow</option>
<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>orange</option>
<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>blue</option>
</#select>
<#input id="carLicensePlate" name="License plate number" value="${item.carLicensePlate}"/>
<#avatar id="carPhoto" name="Vehicle photos:" avatarImg="${item.carPhoto}"/>
<#input id="drivingLicenseNumber" name="Driving license number" value="${item.drivingLicenseNumber}"/>
<#avatar id="drivingLicensePhoto" name="Photo of driving license:" avatarImg="${item.drivingLicensePhoto}"/>
<#input id="annualInspectionTime" name="Annual inspection expiration time" type="text" value="${item.annualInspectionTime}"/>
<#input id="commercialInsuranceTime" name="Expiration time of commercial insurance" type="text" value="${item.commercialInsuranceTime}"/>
</div>
</div>
<div class="row btn-group-m-t">
    <div class="col-sm-10 col-sm-offset-5">
        <#button btnCss="info" name="Submit" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
        <#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
    </div>
</div>
            @}
            @if(language==3){
<div class="row">
    <div class="col-sm-11">
        <div class="form-group">
            <label class="col-sm-3 control-label">Organisasi Afiliasi:</label>
            <div class="col-sm-9"  style="display: flex;align-items: center;">
                @if(roleType == 1){
                <div class="radio radio-info radio-inline">
                    <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)">
                    <label for="companyType1"> Kendaraan platform </label>
                </div>
                <div class="radio radio-success radio-inline">
                    <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)">
                    <label for="companyTyp2"> Kendaraan waralaba </label>
                </div>
                <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px">
                    <option value="">Pilih Branch</option>
                    @for(obj in companyList!){
                    <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                <select class="form-control companyDiv" id="twoId"  style="width: 200px;margin-left: 30px;">
                    <option value="">Pilih pemilik franchise</option>
                    @for(obj in franchiseeList!){
                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                @}else if(roleType == 2){
                <span class="control-label">${objectName!}</span>
                <select class="form-control" id="franchiseeId"  style="width: 200px;margin-left: 30px;">
                    <option value="">Pilih pemilik franchise</option>
                    @for(obj in franchiseeList!){
                    <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
                @}else if(roleType == 3){
                <span class="control-label">${objectName!}</span>
                @}
            </div>
        </div>
        <div class="form-group">
            <fieldset>
                <label class="col-sm-3 control-label">Mode Layanan:</label>
                <div class="col-sm-9">
                    <div class="checkbox checkbox-success  checkbox-inline">
                        <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()">
                        <label for="serverBox1"> sepeda motor </label>
                    </div>
                    <div class="checkbox checkbox-success  checkbox-inline">
                        <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}>
                        <label for="serverBox4"> Pengiriman Ekspres Dalam Kota </label>
                    </div>
                </div>
            </fieldset>
        </div>
        <div class="form-group" id="zcModelDiv">
            <label class="col-sm-3 control-label">Pengaturan model sepeda motor:</label>
            <div class="col-sm-9">
                <select class="form-control" id="zcModel" name="zcModel">
                    <option value="">Pilih Jenis Kendaraan</option>
                    @for(obj in zcModelList){
                    <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
            </div>
        </div>
        <div class="form-group" id="kcModelDiv">
            <label class="col-sm-3 control-label">Model perjalanan melintasi kota:</label>
            <div class="col-sm-9">
                <select class="form-control" id="kcModel" name="kcModel">
                    <option value="">Pilih Jenis Kendaraan</option>
                    @for(obj in kcModelList){
                    <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option>
                    @}
                </select>
            </div>
        </div>
        <#select id="carBrandId" name="Merek kendaraan:" onchange="TCarInfoDlg.brandChange(this)">
        <option value="">Pilih Merek Kendaraan</option>
        @for(obj in brandList){
        <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option>
        @}
    </#select>
    <#select id="carModelId" name="Jenis Kendaraan:">
    <option value="">Pilih Jenis Kendaraan</option>
    @for(obj in modelList){
    <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option>
    @}
</#select>
<#select id="carColor" name="车辆颜色:">
<option value="">选择车辆颜色</option>
<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>hitam</option>
<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>perak</option>
<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>putih</option>
<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>merah</option>
<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>kuning</option>
<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>oranye</option>
<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>biru</option>
</#select>
<#input id="carLicensePlate" name="Nomor plat nomor" value="${item.carLicensePlate}"/>
<#avatar id="carPhoto" name="Foto kendaraan:" avatarImg="${item.carPhoto}"/>
<#input id="drivingLicenseNumber" name="Nomor SIM Mengemudi" value="${item.drivingLicenseNumber}"/>
<#avatar id="drivingLicensePhoto" name="Foto SIM:" avatarImg="${item.drivingLicensePhoto}"/>
<#input id="annualInspectionTime" name="Waktu Kedaluwarsa Inspeksi Tahunan" type="text" value="${item.annualInspectionTime}"/>
<#input id="commercialInsuranceTime" name="Waktu kedaluwarsa asuransi komersial" type="text" value="${item.commercialInsuranceTime}"/>
</div>
</div>
<div class="row btn-group-m-t">
    <div class="col-sm-10 col-sm-offset-5">
        <#button btnCss="info" name="Kirim" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/>
        <#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
    </div>
</div>
            @}
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/tCar/tCar_info.js"></script>
<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
<script>
    laydate.render({
        elem: '#annualInspectionTime'
cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -35,7 +35,7 @@
                                   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="discountAmount" onkeyup="value=value.replace(/\D/g,'')"/>
                            <input class="col-sm-1" id="voucherAmount" onkeyup="value=value.replace(/\D/g,'')"/>
                            <label class="col-sm-1">元</label>
                        </div>
                    </div>
@@ -67,14 +67,14 @@
                    <div class="form-group">
                        <div class="initialLevel col-sm-12 control-label form-group">
                            <label class="col-sm-3 control-label"><font  style="color:red">*</font>发放方式: </label>
                            <input class="col-sm-1 control-label" onclick="checkCompany()" name="company" type="radio"
                                   value="0" style="margin-top: 10px"/>
                            <input class="col-sm-1 control-label" onclick="distributionMethod1()" name="distributionMethod" type="radio"
                                   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="company" onclick="checkCompany2()" type="radio"
                                   value="1" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/>
                            <input class="col-sm-1 control-label" name="distributionMethod" onclick="distributionMethod2()" type="radio"
                                   value="2" checked 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="company" onclick="checkCompany2()" type="radio"
                                   value="1" checked style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                            <input class="col-sm-1 control-label" name="distributionMethod" onclick="distributionMethod3()" type="radio"
                                   value="3" checked 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>
@@ -86,12 +86,15 @@
                    <div class="form-group">
                        <div class="initialLevel col-sm-12 control-label form-group">
                            <label class="col-sm-3 control-label"><font  style="color:red">*</font>兑换方式: </label>
                            <input class="col-sm-1 control-label" onclick="checkCompany()" name="company" type="radio"
                                   value="0" style="margin-top: 10px"/>
                            <input class="col-sm-1 control-label" onclick="exchangeMethod1()" name="exchangeMethod" type="radio"
                                   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="company" onclick="checkCompany2()" type="radio"
                                   value="1" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/>
                            <input class="col-sm-1 control-label" name="exchangeMethod" onclick="exchangeMethod2()" type="radio"
                                   value="2" 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" onclick="exchangeMethod3()" type="radio"
                                   value="2" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/>
                            <label class="col-sm-1" style="width: 20%;margin-top: 7px">现金</label>
                        </div>
                    </div>
                </div>
@@ -120,14 +123,14 @@
                    <div class="form-group">
                        <div class="initialLevel col-sm-12 control-label form-group">
                            <label class="col-sm-3 control-label"><font  style="color:red">*</font>用户人群: </label>
                            <input class="col-sm-1 control-label" onclick="userGroup1()" name="company" type="radio"
                                   value="0" style="margin-top: 10px"/>
                            <input class="col-sm-1 control-label" onclick="userGroup1()" name="userGroup" type="radio"
                                   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="company" onclick="userGroup2()" type="radio"
                                   value="1" checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px"/>
                            <input class="col-sm-1 control-label" name="userGroup" onclick="userGroup2()" type="radio"
                                   value="2" checked 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="company" onclick="userGroup3()" type="radio"
                                   value="1" checked style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                            <input class="col-sm-1 control-label" name="userGroup" onclick="userGroup3()" type="radio"
                                   value="3" checked style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                            <label class="col-sm-1" style="width: 25%;margin-top: -16px">已有学员用户</label>
                        </div>
                    </div>
@@ -193,7 +196,7 @@
                </div>
            </div>
            <div class="row">
            <div class="row" id="citySelect">
                <div class="col-sm-5">
                    <div class="form-group">
                        <label class="col-sm-3 control-label"><font  style="color:red">*</font>指定城市: </label>
@@ -202,11 +205,16 @@
                        <select id="city"></select>
                        <label class="col-sm-1" style="width: 16%;margin-top: 7px">市</label>
                        <select id="County"></select>
                        <div class="col-sm-1">
                            <label name="addBranch" class="form-control" onclick="couponInfoDlg.addBranch()" style="border: 0px;cursor: pointer"><i class="fa fa-plus-circle"></i></label>
                            <label name="addBranch" class="form-control" onclick="couponInfoDlg.delete()" style="border: 0px;cursor: pointer"><i class="fa fa-trash"></i></label>
                        </div>
                    </div>
                </div>
            </div>
                    </div>
                </div>
            </div>
            <div class="row">
            <div class="row" id="storeSelect">
                <div class="col-sm-5">
                    <div class="form-group">
                        <label class="col-sm-3 control-label"><font  style="color:red">*</font>指定门店: </label>
cloud-server-management/src/main/webapp/static/modular/system/course/course.js
New file
@@ -0,0 +1,383 @@
/**
 * 系统管理--用户管理的单例对象
 */
var Course = {
    id: "managerTable",//表格id
    seItem: null,        //选中的条目
    table: null,
    layerIndex: -1,
    deptid:0
};
var language =$("#language").val()
/**
 * 初始化表格的列
 */
Course.initColumn = function () {
    var columns = [
        {field: 'selectItem', radio: true,
            formatter: function (value, row) {
                if (row.id == 1)
                    return {
                        disabled : true,//设置是否可用
                    };
                return "";
            }
        },
        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
        {title:  language==1?'账号':(language==2?'Account number':'Nomor akun'), field: 'account', align: 'center', valign: 'middle', sortable: true},
        {title:  language==1?'姓名':(language==2?'name':'Nama Lengkap'), field: 'name', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'性别':(language==2?'Gender':'Jenis kelamin'), field: 'sexName', align: 'center', valign: 'middle', sortable: true,
            formatter:function (data) {
                if(language==1){
                    if(data==1){
                        return '男'
                    }else {
                        return '女'
                    }
                }else if(language==2){
                    if(data==1){
                        return 'man'
                    }else {
                        return 'woman'
                    }
                }else {
                    if(data==1){
                        return 'laki-laki'
                    }else {
                        return 'wanita'
                    }
                }
            }
        },
        {title: language==1?'角色':(language==2?'role':'peran'), field: 'roleName', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.roleName != '' && row.roleName != null) {
                    var labelStr = "";
                    var labelStrs = "";
                    var labelArray = row.roleName.split(",");
                    for(var i=0;i<labelArray.length;i++){
                        labelStr += labelArray[i] +"<br>";
                        labelStrs += labelArray[i] + "&#10;";
                    }
                    labelStr = labelStr.substring(0,labelStr.length-4);
                    labelStrs = labelStrs.substring(0,labelStrs.length-5);
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + labelStrs + '" onfocus="AppCar.tooltip()">' + labelStr + '</p>']
                }
                return btn;
            }
        },
        {title: language==1?'部门':(language==2?'department':'departemen'), field: 'deptName', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'邮箱':(language==2?'email':'email'), field: 'email', align: 'center', valign: 'middle', sortable: true},
        {title: language==1?'电话':(language==2?'phone':'Telepon'), field: 'phone', align: 'center', valign: 'middle', sortable: true},
        {title:language==1?'创建时间':(language==2?'Creation time':'Waktu penciptaan'), field: 'createtime', visible: true, align: 'center', valign: 'middle', sortable: true,
            formatter: function (value, row) {
                var btn = "";
                if(row.createtime1 != '' && row.createtime1 != null) {
                    var time = row.createtime1.replace(" ",'<br>');
                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.createtime1 + '" onfocus="AppCar.tooltip()">' + time + '</p>']
                }
                return btn;
            }
        },
        {title: language==1?'状态':(language==2?'State':'Status'), field: 'statusName', visible: true, align: 'center', valign: 'middle',
            formatter: function (value, row) {
                var btn = "";
                if(row.statusName != '' && row.statusName != null) {
                    if(language==1){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `冻结` + '" onfocus="AppUserInfo.tooltip()">' + 冻结 + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `启用` + '" onfocus="AppUserInfo.tooltip()">' + 启用 + '</p>']
                        }
                    }else if(language==2){
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `freeze` + '" onfocus="AppUserInfo.tooltip()">' + `freeze` + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `enable` + '" onfocus="AppUserInfo.tooltip()">' + `enable` + '</p>']
                        }
                    }else {
                        if (row.statusName == "2"){
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="' + `Membekukan` + '" onfocus="AppUserInfo.tooltip()">' + 'Membekukan' + '</p>']
                        }else{
                            btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + `aktifkan` + '" onfocus="AppUserInfo.tooltip()">' + 'aktifkan' + '</p>']
                        }
                    }
                }
                return btn;
            }
        }
    ];
    return columns;
};
/**
 * 检查是否选中
 */
Course.check = function () {
    var selected = $('#' + this.id).bootstrapTable('getSelections');
    if (selected.length == 0) {
        if(language==1){
            Feng.info("请先选中表格中的某一记录!");
        }else if(language==2){
            Feng.info("Please select a record in the table first!");
        }else {
            Feng.info("Pilih catatan di tabel terlebih dahulu!");
        }
        return false;
    } else {
        Course.seItem = selected[0];
        return true;
    }
};
/**
 * 点击添加管理员
 */
Course.addCourse = function () {
    var index = layer.open({
        type: 2,
        title: '添加',
        area: ['800px', '560px'], //宽高
        fix: false, //不固定
        maxmin: true,
        content: Feng.ctxPath + '/course/showAddCourse'
    });
    this.layerIndex = index;
};
/**
 * 点击修改按钮时
 * @param userId 管理员id
 */
Course.openChangeUser = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: language==1?'编辑':(language==2?'Edit':'Edit'),
            area: ['800px', '450px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/user_edit/' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 点击角色分配
 * @param
 */
Course.roleAssign = function () {
    if (this.check()) {
        var index = layer.open({
            type: 2,
            title: language==1?'角色分配':(language==2?'role assignment':'tugas peran'),
            area: ['300px', '400px'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/mgr/role_assign/' + this.seItem.id
        });
        this.layerIndex = index;
    }
};
/**
 * 删除用户
 */
Course.delCourse = function () {
    if (this.check()) {
        var operation = function(){
            var userId = Course.seItem.id;
            var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () {
                if(language==1){
                    Feng.success("删除成功!");
                }else if(language==2){
                    Feng.success("Delete succeeded!");
                }else {
                    Feng.success("Hapus berhasil!");
                }
                Course.table.refresh();
            }, function (data) {
                if(language==1){
                    Feng.error("删除失败!" + data.responseJSON.message + "!");
                }else if(language==2){
                    Feng.error("Delete failed!" + data.responseJSON.message + "!");
                }else {
                    Feng.error("Hapus gagal!" + data.responseJSON.message + "!");
                }
            });
            ajax.set("userId", userId);
            ajax.start();
        };
        if(language==1){
            Feng.confirm("是否删除用户" + Course.seItem.account + "?",operation);
        }else if(language==2){
            Feng.confirm("Whether to delete a user" + Course.seItem.account + "?",operation);
        }else {
            Feng.confirm("Apakah menghapus pengguna" + Course.seItem.account + "?",operation);
        }
    }
};
/**
 * 冻结用户账户
 * @param userId
 */
Course.freezeAccount = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
            if(language==1){
                Feng.success("冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("冻结失败!" + data.responseJSON.message + "!");
            }else if(language==2){
                Feng.error("Fail!" + data.responseJSON.message + "!");
            }else {
                Feng.error("Gagal!" + data.responseJSON.message + "!");
            }
        });
        ajax.set("userId", userId);
        ajax.start();
    }
};
/**
 * 解除冻结用户账户
 * @param userId
 */
Course.unfreeze = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
            if(language==1){
                Feng.success("解除冻结成功!");
            }else if(language==2){
                Feng.success("Success!");
            }else {
                Feng.success("Success!");
            }
            Course.table.refresh();
        }, function (data) {
            if(language==1){
                Feng.error("解除冻结失败!");
            }else if(language==2){
                Feng.error("Fail!");
            }else {
                Feng.error("Gagal!");
            }
        });
        ajax.set("userId", userId);
        ajax.start();
    }
}
/**
 * 重置密码
 */
Course.resetPwd = function () {
    if (this.check()) {
        var userId = this.seItem.id;
        if(language==1){
            parent.layer.confirm('是否重置密码为111111?', {
                btn: ['确定', '取消'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("重置密码成功!");
                }, function (data) {
                    Feng.error("重置密码失败!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else if(language==2){
            parent.layer.confirm('Whether to reset the password to 111111?', {
                btn: ['Yes', 'No'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Fail!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }else {
            parent.layer.confirm('Apakah untuk reset kata sandi ke 111111?', {
                btn: ['Ya', 'batalkan'],
                shade: false //不显示遮罩
            }, function () {
                var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
                    Feng.success("Success!");
                }, function (data) {
                    Feng.error("Gagal!");
                });
                ajax.set("userId", userId);
                ajax.start();
            });
        }
    }
};
Course.resetSearch = function () {
    $("#name").val("");
    $("#createTime").val("");
    Course.search();
}
Course.search = function () {
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    Course.table.refresh({query: queryData});
}
Course.onClickDept = function (e, treeId, treeNode) {
    Course.deptid = treeNode.id;
    Course.search();
};
$(function () {
    var defaultColunms = Course.initColumn();
    var table = new BSTable(Course.id, "/mgr/list", defaultColunms);
    // 设置物理分页server(逻辑分页client)
    table.setPaginationType("server");
    // 表单提交参数
    var queryData = {};
    queryData['deptid'] = Course.deptid;
    queryData['name'] = $("#name").val();
    queryData['createTime'] = $("#createTime").val();
    table.setQueryParams(queryData);
    Course.table = table.init();
    /*var defaultColunms = Course.initColumn();
    var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
    table.setPaginationType("client");
    Course.table = table.init();*/
    var ztree = new $ZTree("deptTree", "/dept/tree");
    ztree.bindOnClick(Course.onClickDept);
    ztree.init();
});
cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity.js
@@ -101,7 +101,7 @@
            area: ['100%', '100%'], //宽高
            fix: false, //不固定
            maxmin: true,
            content: Feng.ctxPath + '/TCompetition/TCompetition_update/' + TCompetition.seItem.id
            content: Feng.ctxPath + '/tCity/tCity_update/' + TCompetition.seItem.id
        });
        this.layerIndex = index;
    }
@@ -151,7 +151,69 @@
        });
    }
};
TCompetition.oneChange = function (e) {
    console.log(111)
    var oneId=$(e).val();
    var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){
        if(data!=null){
            if(language==1){
                var content='<option value="">选择市</option>';
            }else if(language==2){
                var content='<option value="">Choose your franchisee</option>';
            }else {
                var content='<option value="">Pilih franchisee Anda</option>';
            }
            $.each(data, function(k,v) {
                content += "<option value='"+v.code+"'>"+v.name+"</option>";
            });
            $("#cCode").empty().append(content);
        }
    });
    ajax.set("oneId",oneId);
    ajax.start();
}
TCompetition.freeze = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/tCity/freeze", function (data) {
            Feng.success("冻结成功!");
            TCompetition.table.refresh();
        }, function (data) {
            Feng.error("冻结失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id",this.seItem.id);
        ajax.start();
    }
};
TCompetition.unfreeze = function () {
    if (this.check()) {
        var ajax = new $ax(Feng.ctxPath + "/tCity/unfreeze", function (data) {
            Feng.success("解冻成功!");
            TCompetition.table.refresh();
        }, function (data) {
            Feng.error("解冻失败!" + data.responseJSON.message + "!");
        });
        ajax.set("id",this.seItem.id);
        ajax.start();
    }
};
TCompetition.reload = function () {
    if (this.check()) {
        let id = this.seItem.id
        var operation = function(){
            var ajax = new $ax(Feng.ctxPath + "/tCity/pwd", function (data) {
                Feng.success("重置成功!");
                TCompetition.table.refresh();
            }, function (data) {
                Feng.error("重置失败!" + data.responseJSON.message + "!");
            });
            ajax.set("id",id);
            ajax.start();
        }
        Feng.confirm("确认重置密码?重置后密码为:a123456", operation);
    }
};
TCompetition.carInsurance = function () {
    if (this.check()) {
@@ -174,10 +236,18 @@
 */
TCompetition.search = function () {
    var queryData = {};
    queryData['provinceCode'] = $("#pCode").val();
    queryData['cityCode'] = $("#cCode").val();
    queryData['name'] = $("#name").val();
    queryData['phone'] = $("#phone").val();
    TCompetition.table.refresh({query: queryData});
};
TCompetition.resetSearch = function () {
    $("#pCode").val("");
    $("#cCode").val("");
    $("#name").val("");
    $("#phone").val("");
    TCompetition.search();
};
cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js
@@ -116,6 +116,23 @@
    let name = $("#name").val()
    let phone = $("#phone").val()
    if(pCode==''){
        Feng.info("请选择省")
        return;
    }
    if(cCode==''){
        Feng.info("请选择市")
        return;
    }
    if(name==''){
        Feng.info("管理员姓名不能为空")
        return;
    }
    if(phone==''){
        Feng.info("管理员手机号不能为空")
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/tCity/add", function(data){
        if(data.code == 200){
@@ -153,63 +170,30 @@
    if(!this.validate()){
        return ;
    }
    let pCode = $("#pCode").val()
    let cCode = $("#cCode").val()
    let name = $("#name").val()
    let phone = $("#phone").val()
    var roleType = $("#roleType").val();  //1=平台  2=分公司 3=加盟商
    var companyType = $("input[name='companyType']:checked").val();
    if (1 == roleType){
        if (2 == companyType){
            var oneId = $("#oneId").val();
            if ("" == oneId){
                if(language==1){
                    Feng.info("所属分公司不能为空!");
                }else if(language==2){
                    Feng.info("The subordinate branch cannot be empty!");
                }else {
                    Feng.info("Cabang subordinat tidak dapat kosong!");
                }
    if(pCode==''){
        Feng.info("请选择省")
                return;
            }
        }
    }
    var serverBox =[];
    $('input[name="serverBox"]:checked').each(function(){
        serverBox.push($(this).val());
    });
    if (serverBox.length == 0){
        if(language==1){
            Feng.info("请选择经营业务");
        }else if(language==2){
            Feng.info("Please select business");
        }else {
            Feng.info("Pilih bisnis");
        }
    if(cCode==''){
        Feng.info("请选择市")
        return;
    }
    var carPhoto = $("#carPhoto").valueOf();
    if ("" == carPhoto){
        if(language==1){
            Feng.info("请上传车辆照片");
        }else if(language==2){
            Feng.info("Please upload a photo of the vehicle");
        }else {
            Feng.info("Silakan mengunggah foto kendaraan");
        }
    if(name==''){
        Feng.info("管理员姓名不能为空")
        return;
    }
    var drivingLicensePhoto = $("#drivingLicensePhoto").valueOf();
    if ("" == drivingLicensePhoto){
        if(language==1){
            Feng.info("请上传行驶证照片");
        }else if(language==2){
            Feng.info("Please upload a photo of your vehicle. Please upload a photo of your driving license");
        }else {
            Feng.info("Silakan mengunggah foto kendaraanmu. Silakan mengunggah foto dari lisensi mengemudi Anda");
        }
    if(phone==''){
        Feng.info("管理员手机号不能为空")
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/tCar/update", function(data){
        if(data.status == 200){
    var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){
        if(data.code == 200){
            if(language==1){
                Feng.success("修改成功!");
            }else if(language==2){
@@ -217,7 +201,7 @@
            }else {
                Feng.success("Mengubah dengan sukses!");
            }
            window.parent.TCar.table.refresh();
            window.parent.TCompetition.table.refresh();
            TCarInfoDlg.close();
        }else{
            Feng.error(data.msg);
@@ -225,27 +209,11 @@
    },function(data){
        Feng.error("修改失败!" + data.responseJSON.message + "!");
    });
    ajax.set(this.tCarInfoData);
    ajax.set("serverBox",serverBox.toString());
    ajax.set("zcModel",$("#zcModel").val());
    ajax.set("kcModel",$("#kcModel").val());
    ajax.set("roleType",roleType);
    if (1 == roleType){
        ajax.set("companyType",companyType);
        ajax.set("oneId",$("#oneId").val());
        ajax.set("twoId",$("#twoId").val());
        ajax.set("franchiseeId",0);
    } else if (2 == roleType) {
        ajax.set("franchiseeId",$("#franchiseeId").val());
        ajax.set("companyType",0);
        ajax.set("oneId",0);
        ajax.set("twoId",0);
    }else if (3 == roleType){
        ajax.set("franchiseeId",0);
        ajax.set("companyType",0);
        ajax.set("oneId",0);
        ajax.set("twoId",0);
    }
    ajax.set("provinceCode",pCode);
    ajax.set("cityCode",cCode);
    ajax.set("name",name);
    ajax.set("phone",phone);
    ajax.set("id",$("#id").val());
    ajax.start();
}
cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
@@ -37,13 +37,13 @@
 * 关闭此对话框
 */
couponInfoDlg.close = function () {
    parent.layer.close(window.parent.CouponServer.layerIndex);
    parent.layer.close(window.parent.TCoupon.layerIndex);
}
function ajax(serverCouponId, value, remark) {
    var ajax = new $ax(Feng.ctxPath + "/couponServer/examine", function (data) {
        Feng.success("审核成功!");
        window.parent.CouponServer.table.refresh();
        window.parent.TCoupon.table.refresh();
        couponInfoDlg.close();
    }, function (data) {
        Feng.error("审核失败!" + data.responseJSON.message + "!");
@@ -56,43 +56,195 @@
    ajax.start();
}
function refush() {
    $("#detailBox").show()
}
function agree() {
    $("#detailBox").hide()
}
function checkCompany() {
/**
 * 发放方式1
 */
function distributionMethod1() {
    $("#demo2").hide()
}
function checkCompany2() {
/**
 * 发放方式2
 */
function distributionMethod2() {
    $("#demo2").hide()
}
/**
 * 发放方式3
 */
function distributionMethod3() {
    $("#demo2").hide()
}
/**
 * 兑换方式1
 */
function exchangeMethod1() {
    $("#demo2").show()
}
/**
 * 兑换方式2
 */
function exchangeMethod2() {
    $("#demo2").show()
}
/**
 * 兑换方式3
 */
function exchangeMethod3() {
    $("#demo2").show()
}
/**
 * 全部用户
 */
function userGroup1() {
    $("#demo2").show()
}
/**
 * 年度会员
 */
function userGroup2() {
    $("#demo2").show()
}
/**
 * 已有学员用户
 */
function userGroup3() {
    $("#demo2").show()
}
/**
 * 全国通用
 */
function scopeOfApplication1() {
    $("#storeSelect").hide()
    $("#citySelect").hide()
}
/**
 * 指定城市
 */
function scopeOfApplication2() {
    $("#demo2").show()
}
/**
 * 指定门店
 */
function scopeOfApplication3() {
    $("#demo2").show()
}
/**
 * 满减券
 */
function radio1() {
    $("#time").val('')
    // document.getElementById("time").readOnly = true;
    $("#time").attr('disabled', 'disabled');
    $("#createTime").removeAttr("disabled");
    $("#conditionalAmount").removeAttr("disabled");
    $("#deductionAmount").removeAttr("disabled");
    $("#voucherAmount").val('')
    $("#voucherAmount").attr('disabled', 'disabled');
    $("#experienceName").val('')
    $("#experienceName").attr('disabled', 'disabled');
}
/**
 * 代金券
 */
function radio2() {
    $("#createTime").val('')
    // document.getElementById("time").readOnly = false;
    $("#time").removeAttr("disabled");
    $("#createTime").attr('disabled', 'disabled');
    $("#voucherAmount").removeAttr("disabled");
    $("#conditionalAmount").val('')
    $("#deductionAmount").val('')
    $("#deductionAmount").attr('disabled', 'disabled');
    $("#conditionalAmount").attr('disabled', 'disabled');
    $("#experienceName").val('')
    $("#experienceName").attr('disabled', 'disabled');
}
/**
 * 体验券
 */
function radio3() {
    $("#time").val('')
    $("#createTime").val('')
    //document.getElementById("createTime").readOnly = true;
    // document.getElementById("time").readOnly = true;
    $("#createTime").attr('disabled', 'disbled');
    $("#time").attr('disabled', 'disabled');
    $("#experienceName").removeAttr("disabled");
    $("#conditionalAmount").val('')
    $("#deductionAmount").val('')
    $("#deductionAmount").attr('disabled', 'disabled');
    $("#conditionalAmount").attr('disabled', 'disabled');
    $("#voucherAmount").val('')
    $("#voucherAmount").attr('disabled', 'disabled');
}
couponInfoDlg.addBranch = function () {
    let companies = [];
    let brands = [];
    $.ajax({
        url : Feng.ctxPath + "/tbMemberTag/getCompanyAndBranch",
        method:'POST',
        success:function (res) {
            companies = res.companies;
            brands = res.brands;
            var str = "                            <div class=\"col-sm-12\">\n" +
                "                                <label class=\"col-sm-1\">公司</label>\n" +
                "                                <select class=\"col-sm-2\" id=\"brandCompany\" name='brandCompany' style=\"width: 88px\">\n" +
                "                                    <option value=\"\">全部公司</option>\n";
            if (companies.length > 0) {
                for (let i = 0; i < companies.length; i++) {
                    str += '<option value="'+companies[i].id+'">'+companies[i].name+'</option>'
                }
            }
            str+= "                                </select>\n" +
                "                                <label class=\"col-sm-1\">品牌</label>\n" +
                "                                <select class=\"col-sm-2\" id=\"brandName\" name='brandName' style=\"width: 88px\">\n" +
                "                                    <option value=\"\">全部品牌</option>\n";
            if (brands.length > 0) {
                for (let i = 0; i < brands.length; i++) {
                    str += '<option value="' + brands[i].id + '">' + brands[i].name + '</option>';
                }
            }
            str += "                                </select>\n" +
                "                                <div class=\"col-sm-2\">\n" +
                "                                    <input class=\"form-control\" id=\"brandDays\" name='brandDays' placeholder=\"近30天\" type=\"number\" min=\"1\"\n" +
                "                                           max=\"31\">\n" +
                "                                </div>\n" +
                "                                <select class=\"col-sm-2\" id=\"brandSymbol\" name='brandSymbol' style=\"width: 88px\">\n" +
                "                                    <option value=\"1\"> =</option>\n" +
                "                                    <option value=\"2\"> ></option>\n" +
                "                                    <option value=\"3\"> <</option>\n" +
                "                                </select>\n" +
                "                                <div class=\"col-sm-2\">\n" +
                "                                    <input class=\"form-control\" id=\"brandCount\" name='brandCount' placeholder=\"次\">\n" +
                "                                </div>\n" +
                "                                <div class=\"col-sm-1\">\n" +
                "                                    <label id=\"addBranch\" onclick='TbMemberTagInfoDlg.addBranch()' class=\"form-control\" style=\"border: 0px;cursor: pointer\"><i class=\"fa fa-plus\"></i></label>\n" +
                "                                </div>\n" +
                "                                <div class=\"col-sm-1\">\n" +
                "                                    <label id=\"addBranch\" onclick='TbMemberTagInfoDlg.subtract(this)' class=\"form-control\" style=\"border: 0px;cursor: pointer\"><i class=\"fa fa-minus\"></i></label>\n" +
                "                                </div>\n" +
                "                            </div>";
            $("#branch").append($(str));
        }
    })
}
couponInfoDlg.delete = function () {
}
/**
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -192,7 +192,7 @@
        String s_time = split[0];
        String e_time = split[split.length - 1];
        s_time = s_time.substring(s_time.lastIndexOf("-"));
        s_time = s_time.substring(0,s_time.lastIndexOf("-"));
        String[] s1 = e_time.split(" ");
        e_time = s1[0] + " " + s1[1].split("-")[1];
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -276,7 +276,11 @@
        return ResultUtil.success();
    }
    public static void main(String[] args) {
        String a ="2023-07-28 10:30-15:30";
        String substring = a.substring(0,a.lastIndexOf("-"));
        System.out.println(substring);
    }
    /**
     * 课程微信支付
     * @param paymentPrice