From fd658508f4470f0c479b2a36738b0f50481cbbe9 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期六, 16 九月 2023 10:59:09 +0800
Subject: [PATCH] 后台代码

---
 cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java                                |    4 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java |   91 +
 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java                                    |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_addStudent.html                           |  142 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/storeValueConfig/StoreValueConfig.html                     |  263 +++
 cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java                               |    4 
 cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml                                                 |    6 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js                                      |    9 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js                                    |  582 +-----
 cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js              |   50 
 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java                                      |    6 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java                           |   10 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html         |   96 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html                                |    9 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java                 |   38 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html          |    9 
 cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java                             |   19 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java    |   64 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                           |  248 --
 cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js                              |    6 
 cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java                                     |    4 
 cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js                                    |   16 
 cloud-server-competition/src/main/resources/logback-spring.xml                                                         |   10 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java                   |    4 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUser.java                       |   17 
 cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java                            |    7 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java              |  251 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_add.html                                  |  124 +
 cloud-server-auth/src/main/resources/logback-spring.xml                                                                |   10 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoredValueConfig.java                         |   93 +
 cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java                                      |  101 -
 cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js                          |    7 
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java                    |    5 
 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js                                      |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html                                    |   28 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java                               |    1 
 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js                                           |    5 
 cloud-server-account/src/main/java/com/dsh/account/model/vo/QueryAppUserVO.java                                        |  128 +
 cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js                         |    9 
 cloud-server-activity/src/main/resources/logback-spring.xml                                                            |    0 
 cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java                             |    1 
 cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml                                         |   38 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js                                         |    4 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java                              |   38 
 cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js         |  176 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/role/role_add.html                                         |   73 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser.html                                      |  111 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html                                     |  250 --
 cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js                                         |    4 
 cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js                                    |    2 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUserVO.java                     |  133 +
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java                     |   38 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java               |    3 
 cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java                          |   17 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java               |   13 
 cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js                                     |    3 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java                            |   16 
 cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java                              |    8 
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java                       |    6 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html                               |    6 
 cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js                                      |  423 +++++
 cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml                                         |   18 
 cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java                                          |    6 
 cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java                                    |    4 
 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml                                            |    3 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html              |    6 
 cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml                                                      |   21 
 /dev/null                                                                                                              |  320 ---
 cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreValueConfigClient.java                     |   31 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java                    |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_vipInfo.html                              |  139 +
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html                                    |    3 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                               |   10 
 cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js                                   |    2 
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java                   |   68 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java                |  240 --
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java          |    5 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_info.html                                 |  139 +
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                                        |    4 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_edit.html                                 |  139 +
 80 files changed, 2,881 insertions(+), 2,125 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
index f8e5036..165be48 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
@@ -2,7 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dsh.account.entity.TAppUser;
+import com.dsh.account.model.query.appUserQuery.QueryAppUser;
+import com.dsh.account.model.vo.QueryAppUserVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
@@ -22,4 +27,5 @@
      */
     void membershipEnd();
 
+    List<QueryAppUserVO> listAll(@Param("query") QueryAppUser query);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java b/cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java
new file mode 100644
index 0000000..7fb2b31
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java
@@ -0,0 +1,17 @@
+package com.dsh.account.model.query.appUserQuery;
+
+import lombok.Data;
+
+/**
+ * 用户信息查询Query
+ */
+@Data
+public class QueryAppUser {
+   private String province;
+   private String city;
+   private String name;
+   private String phone;
+   private Integer isVip;
+   private Integer state;
+   private String salesmanUserName;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/QueryAppUserVO.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/QueryAppUserVO.java
new file mode 100644
index 0000000..9108d13
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/QueryAppUserVO.java
@@ -0,0 +1,128 @@
+package com.dsh.account.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 用户信息列表VO
+ */
+@Data
+public class QueryAppUserVO {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 编号
+     */
+    private String code;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 密码
+     */
+    private String password;
+    /**
+     * 生日
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    private Integer gender;
+    /**
+     * 身高
+     */
+    private Double height;
+    /**
+     * 体重
+     */
+    private Double weight;
+    /**
+     * bmi健康值
+     */
+    private Double bmi;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 微信openid
+     */
+    private String openid;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 省编号
+     */
+    private String provinceCode;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 市编号
+     */
+    private String cityCode;
+    /**
+     * 是否是年度会员(0=否,1=是)
+     */
+    private Integer isVip;
+    /**
+     * 会员有效期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date vipEndTime;
+    /**
+     * 会员等级id
+     */
+    private Integer viplevelId;
+    /**
+     * 推荐用户id
+     */
+    private Integer referralUserId;
+    /**
+     * 销售员id
+     */
+    private Integer salesmanUserId;
+
+    private String salesmanUserName;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 剩余积分
+     */
+    private Integer integral;
+    /**
+     * 玩湃币
+     */
+    private Integer playPaiCoins;
+    /**
+     * 用户头像
+     */
+    private String headImg;
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+
+
+}
+
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index 215daa3..ce1e1c8 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -6,6 +6,8 @@
 import com.dsh.account.model.JoinPlayPaiVo;
 import com.dsh.account.model.LoginSMSCodeVo;
 import com.dsh.account.model.LoginWeChatVo;
+import com.dsh.account.model.query.appUserQuery.QueryAppUser;
+import com.dsh.account.model.vo.QueryAppUserVO;
 import com.dsh.account.model.vo.classDetails.CourseVenue;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
 import com.dsh.account.model.vo.userBenefitDetail.*;
@@ -135,4 +137,6 @@
     List<StoreResponse> queryStoresOfExchange(Integer goodsType,Integer pointsMerId);
 
     List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time, String longitude, String latitude);
+
+    List<QueryAppUserVO> listAll(QueryAppUser query);
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index a76a64c..0165162 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -28,6 +28,8 @@
 import com.dsh.account.mapper.*;
 import com.dsh.account.model.*;
 import com.dsh.account.model.dto.Coupon;
+import com.dsh.account.model.query.appUserQuery.QueryAppUser;
+import com.dsh.account.model.vo.QueryAppUserVO;
 import com.dsh.account.model.vo.classDetails.CourseVenue;
 import com.dsh.account.model.vo.classDetails.ExerciseVideo;
 import com.dsh.account.model.vo.classDetails.RegisteredCourse;
@@ -133,7 +135,13 @@
 
     @Resource
     private SiteClient stClient;
+    @Autowired
+    private TAppUserMapper appUserMapper;
 
+    @Override
+    public List<QueryAppUserVO> listAll(QueryAppUser query) {
+       return appUserMapper.listAll(query);
+    }
     @Override
     public ClassInfoVo queryUserOfStus(Integer id) {
         TAppUser tAppUser = this.baseMapper.selectById(id);
@@ -1268,4 +1276,6 @@
     }
 
 
+
+
 }
diff --git a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
index e253b64..4b5cfd9 100644
--- a/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
+++ b/cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
@@ -36,4 +36,25 @@
     <update id="membershipEnd">
         update t_app_user set isVip = 0 where isVip = 1 and now() >= vipEndTime
     </update>
+    <select id="listAll" resultType="com.dsh.account.model.vo.QueryAppUserVO">
+        select t1.* from t_app_user t1
+        <where>
+            <if test="query.city!=null and query.city!= ''">
+                and t1.city = #{query.city}
+            </if>
+            <if test="query.province!=null and query.province!= ''">
+                and t1.province = #{query.province}
+            </if>
+            <if test="query.name!=null and query.name!= ''">
+                AND t1.name LIKE concat('%',#{query.name},'%')
+            </if>
+            <if test="query.phone!=null and query.phone!= ''">
+                and t1.phone LIKE concat('%',#{query.phone},'%')
+            </if>
+            <if test="query.isVip!=null and query.isVip!= ''">
+                and t1.isVip = #{query.isVip}
+            </if>
+            and t1.state != 3
+        </where>
+    </select>
 </mapper>
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
index 8b45b7b..4aff863 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
@@ -49,8 +49,6 @@
         for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
             list.add(queryBodySideAppointmentVO.getStoreId());
         }
-        list.add(1);
-        list.add(2);
         List<Store> stores = storeClient.queryStoreByIds(list);
         for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
             for (Store store : stores) {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index b9699bb..b176c57 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -10,12 +10,9 @@
 import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig;
 import com.dsh.activity.feignclient.model.*;
 import com.dsh.activity.feignclient.other.StoreClient;
-import com.dsh.activity.feignclient.other.model.Store;
 import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
 import com.dsh.activity.model.PointMerchandiseVo;
 import com.dsh.activity.model.request.*;
-import com.dsh.activity.model.response.GoodsInfoOneVo;
-import com.dsh.activity.model.response.StoreVos;
 import com.dsh.activity.service.*;
 import com.dsh.activity.util.GDMapGeocodingUtil;
 import com.dsh.activity.util.StrUtils;
@@ -73,9 +70,6 @@
 
     @Resource
     private CouponCityService ccityService;
-
-    @Resource
-    private PointsMerchandiseCityService pmdsCityService;
 
 
     @ResponseBody
@@ -480,10 +474,7 @@
 
     @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
     public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){
-        upmseService.update(merchandise,new LambdaQueryWrapper<UserPointsMerchandise>()
-                .eq(UserPointsMerchandise::getUserId,merchandise.getUserId())
-                .eq(UserPointsMerchandise::getId,merchandise.getId()));
-
+        upmseService.updateById(merchandise);
     }
 
     @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode")
@@ -533,9 +524,7 @@
         if (list.size() > 0 ){
             for (UserPointsMerchandise pointsMerchandise : list) {
                 pointsMerchandise.setState(2);
-                upmseService.update(pointsMerchandise,new LambdaQueryWrapper<UserPointsMerchandise>()
-                        .eq(UserPointsMerchandise::getUserId,pointsMerchandise.getUserId())
-                        .eq(UserPointsMerchandise::getId,pointsMerchandise.getId()));
+                upmseService.updateById(pointsMerchandise);
             }
         }
 
@@ -635,13 +624,10 @@
     public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId){
         PointMercharsVo vo = new PointMercharsVo();
         PointsMerchandise byId = pmdsService.getById(pointMercharsId);
-        List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
-                .eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsId));
         if (ToolUtil.isNotEmpty(byId)){
             vo.setName(byId.getName());
             vo.setCover(byId.getCover());
             vo.setPics(byId.getProductImages());
-            vo.setQuantityHas(list.size());
             vo.setQuantityIssued(byId.getQuantityIssued());
             vo.setPickUpQuantity(byId.getPickUpQuantity());
             vo.setSort(byId.getSort());
@@ -683,7 +669,7 @@
         if (list.size() > 0 ){
             for (UserPointsMerchandise pointsMerchandise : list) {
                 Map<String, Object> map = new HashMap<>();
-                map.put("id",pointsMerchandise.getId().toString());
+                map.put("id",pointsMerchandise.getId());
                 map.put("userId",pointsMerchandise.getUserId());
                 map.put("status", pointsMerchandise.getStatus());
                 mapList.add(map);
@@ -691,234 +677,6 @@
         }
         System.out.println(mapList);
         return mapList;
-    }
-
-    @ResponseBody
-    @PostMapping("/base/pointMerchars/writeOffGoodsStatus")
-    public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){
-        try {
-            String o = (String) map.get("goodsId");
-            Integer managerId = (Integer) map.get("managerId");
-            UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>()
-                    .eq(UserPointsMerchandise::getId,Long.parseLong(o) ));
-            if (byId.getStatus() == 2){
-                return false;
-            }
-            byId.setStatus(2);
-            byId.setVerificationUserId(managerId);
-            byId.setVerificationTime(new Date());
-            upmseService.update(byId,new LambdaQueryWrapper<UserPointsMerchandise>()
-                    .eq(UserPointsMerchandise::getUserId,byId.getUserId())
-                    .eq(UserPointsMerchandise::getId,byId.getId()));
-            System.out.println(byId);
-            return true;
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-
-
-    @ResponseBody
-    @PostMapping("/base/pointMerchars/updateGoodsDetail")
-    public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){
-        try {
-            Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
-            PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
-
-            Integer quantityIssued = (Integer) map.get("quantityIssued");
-            Integer pickUpQuantity = (Integer) map.get("pickUpQuantity");
-            String redemptionInstructions = (String) map.get("redemptionInstructions");
-            String cover = (String) map.get("cover");
-            String productImages = (String) map.get("productImages");
-            Integer sort = (Integer) map.get("sort");
-
-            byId1.setQuantityIssued(quantityIssued);
-            byId1.setPickUpQuantity(pickUpQuantity);
-            byId1.setRedemptionInstructions(redemptionInstructions);
-            if (ToolUtil.isNotEmpty(cover)){
-                byId1.setCover(cover);
-            }
-            if (ToolUtil.isNotEmpty(productImages)){
-                byId1.setProductImages(productImages);
-            }
-            byId1.setSort(sort);
-            pmdsService.updateById(byId1);
-            return true;
-        }catch (Exception e){
-            return false;
-        }
-    }
-
-
-    @PostMapping("/base/pointMerchars/queryDetailsOfGoods")
-    public GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id){
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        GoodsInfoOneVo infoOneVo = new GoodsInfoOneVo();
-        PointsMerchandise byId = pmdsService.getById(id);
-
-        if (ToolUtil.isNotEmpty(byId)){
-            infoOneVo.setName(byId.getName());
-            infoOneVo.setCover(byId.getCover());
-            infoOneVo.setPics(byId.getProductImages());
-            infoOneVo.setPrice(byId.getPrice());
-            infoOneVo.setExchangeMethod(byId.getRedemptionMethod());
-            switch (byId.getRedemptionMethod()){
-                case 1:
-                    infoOneVo.setIntegral(byId.getIntegral());
-                    break;
-                case 2:
-                    infoOneVo.setIntegral(byId.getIntegral());
-                    infoOneVo.setCash(byId.getCash());
-                    break;
-                case 3:
-                    infoOneVo.setCash(byId.getCash());
-                    break;
-                default:
-                    break;
-            }
-            switch (byId.getUserPopulation()){
-                case 1:
-                    infoOneVo.setUserPopulation("全部用户");
-                    break;
-                case 2:
-                    infoOneVo.setUserPopulation("年度会员");
-                    break;
-                case 3:
-                    infoOneVo.setUserPopulation("已有学员用户");
-                    break;
-                default:
-                    break;
-            }
-            infoOneVo.setQuantityIssued(byId.getQuantityIssued());
-            List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
-                    .eq(UserPointsMerchandise::getPointsMerchandiseId,byId.getId()));
-            infoOneVo.setUseScope(byId.getUseScope());
-            switch (byId.getUseScope()){
-                case 1:
-                    infoOneVo.setExchangeArea("全国通用");
-                    break;
-                case 2:
-                    infoOneVo.setExchangeArea("指定城市");
-                    break;
-                case 3:
-                    infoOneVo.setExchangeArea("指定门店");
-                    break;
-                default:
-                    break;
-            }
-            infoOneVo.setHasPicked(list.size());
-            infoOneVo.setPickUpQuantity(byId.getPickUpQuantity());
-            infoOneVo.setValidTime(simpleDateFormat.format(byId.getStartTime())+"至"+ simpleDateFormat.format(byId.getEndTime()));
-            infoOneVo.setRedemptionInstructions(byId.getRedemptionInstructions());
-            infoOneVo.setSort(byId.getSort());
-        }
-        return infoOneVo;
-    }
-
-
-
-    @ResponseBody
-    @PostMapping("/base/pointMerchars/getStoreList")
-    public List<StoreVos> getStoreList(@RequestBody Integer id){
-        List<StoreVos> storeVos = new ArrayList<>();
-        List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
-                .eq("pointsMerchandiseId",id));
-        if (list.size() > 0 ){
-            List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
-            List<Store> stores = stoClient.queryStoreByIds(collect);
-            if (stores.size() > 0 ){
-                for (Store store : stores) {
-                    StoreVos storeVos1 = new StoreVos();
-                    storeVos1.setNum1(store.getProvince() +"省"+ store.getCity() +"市");
-                    storeVos1.setNum2(store.getName());
-                    storeVos.add(storeVos1);
-                }
-            }
-        }
-        return storeVos;
-    }
-
-
-    @ResponseBody
-    @PostMapping("/base/pointMerchars/getProvinces")
-    public List<StoreVos> getProvinces(@RequestBody Integer id){
-        List<StoreVos> storeVos = new ArrayList<>();
-        List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>()
-                .eq(PointsMerchandiseCity::getPointsMerchandiseId,id));
-        if (list.size() > 0 ){
-            for (PointsMerchandiseCity pointsMerchandiseCity : list) {
-                StoreVos storeVos1 = new StoreVos();
-                storeVos1.setNum1(pointsMerchandiseCity.getProvince());
-                storeVos1.setNum2(pointsMerchandiseCity.getCity());
-                storeVos.add(storeVos1);
-            }
-        }
-        return storeVos;
-    }
-
-    @PostMapping("/base/pointMerchars/add")
-   public Integer add(@RequestBody PointsMerchandise pointsMerchandise){
-        Integer storeId = pointsMerchandise.getShelves();
-        pointsMerchandise.setShelves(2);
-        boolean save = pmdsService.save(pointsMerchandise);
-        if(save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType()==2){
-            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
-            pointsMerchandiseStore.setPointsMerchandiseId(pointsMerchandise.getId());
-            pointsMerchandiseStore.setStoreId(storeId);
-            save =  pmdstoService.save(pointsMerchandiseStore);
-        }
-        if(save  && pointsMerchandise.getType()==2 && ToolUtil.isNotEmpty(pointsMerchandise.getProvinceCode())){
-            pmdsService.saveCity(pointsMerchandise.getId(),pointsMerchandise.getProvince(),pointsMerchandise.getProvinceCode(),pointsMerchandise.getCity(),pointsMerchandise.getCityCode());
-        }
-        if(save){
-            return pointsMerchandise.getId();
-        }
-        return null;
-    }
-
-
-    @PostMapping("/base/pointMerchars/addOther")
-    public Boolean addOther(@RequestBody String pam){
-        Boolean save =false;
-        String[] split = pam.split("_");
-        for (String s : split[1].split(",")) {
-            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
-            pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
-            pointsMerchandiseStore.setStoreId(Integer.valueOf(s));
-            save =  pmdstoService.save(pointsMerchandiseStore);
-        }
-        return save;
-    }
-
-    @PostMapping("/base/pointMerchars/addCitys")
-    public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects){
-        try {
-            for (Map<String, String> object : objects) {
-                pmdsService.saveCity(Integer.valueOf(object.get("id")),object.get("pName"),object.get("pCode"),object.get("cName"),object.get("cCode"));
-            }
-            return true;
-        }catch (Exception e){
-            e.printStackTrace();
-            return false;
-        }
-
-    }
-
-
-    @PostMapping("/base/pointMerchars/queryPointMerchaseById")
-    public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id){
-        return pmdsService.getById(id);
-    }
-
-
-
-    @PostMapping("/base/pointMerchars/getshopName")
-    public Integer getshopName(@RequestBody Integer id){
-        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, id));
-            PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
-        Integer storeId = pointsMerchandiseStore.getStoreId();
-        return storeId;
     }
 
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
index 017a237..2afd765 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -5,7 +5,6 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -99,13 +98,11 @@
      * 开始时间
      */
     @TableField("startTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date startTime;
     /**
      * 结束时间
      */
     @TableField("endTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date endTime;
     /**
      * 使用范围(1=全国,2=指定城市,3=指定门店)
@@ -151,7 +148,6 @@
      * 添加时间
      */
     @TableField("insertTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
     /**
      * 课包支付配置id
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java
deleted file mode 100644
index 357ef8f..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseCity.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.dsh.activity.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-
-/**
- * <p>
- * 积分商品使用门店关系数据
- * </p>
- *
- * @author jqs
- * @since 2023-07-12
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@TableName("t_points_merchandise_city")
-public class PointsMerchandiseCity extends Model<PointsMerchandiseCity> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主键
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-    /**
-     * 积分商品id
-     */
-    @TableField("pointsMerchandiseId")
-    private Integer pointsMerchandiseId;
-    /**
-     *
-     */
-    @TableField("city")
-    private String city;
-    /**
-     *
-     */
-    @TableField("cityCode")
-    private String cityCode;
-    /**
-     *
-     */
-    @TableField("province")
-    private String province;
-    /**
-     *
-     */
-    @TableField("provinceCode")
-    private String provinceCode;
-
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java
deleted file mode 100644
index 91eb2c9..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseCityMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dsh.activity.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dsh.activity.entity.PointsMerchandiseCity;
-
-/**
- * <p>
- * 积分商品使用门店关系数据 Mapper 接口
- * </p>
- *
- * @author jqs
- * @since 2023-07-12
- */
-public interface PointsMerchandiseCityMapper extends BaseMapper<PointsMerchandiseCity> {
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
index fba1382..1293821 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
@@ -26,5 +26,4 @@
                                                      @Param("state") Integer state,
                                                      @Param("page") Page<Map<String, Object>> page);
 
-    void saveCity(@Param("id") Integer id, @Param("province") String province, @Param("provinceCode") String provinceCode, @Param("city") String city, @Param("cityCode") String cityCode);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java
index 0e4dd46..1ebcf0b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointment.java
@@ -2,6 +2,8 @@
 
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * 接收查询参数VO
  */
@@ -13,4 +15,6 @@
     private Integer state;
     // 1=今日内预约 2=明日预约 7=七日内
     private Integer day;
+    // 门店id集合
+    private List<Integer> ids;
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
index 323169b..e781c0e 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/request/PointMercharsVo.java
@@ -24,10 +24,6 @@
      */
     Integer quantityIssued;
     /**
-     * 已领数量
-     */
-    Integer quantityHas;
-    /**
      * 限领数量
      */
     Integer pickUpQuantity;
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java
deleted file mode 100644
index 3bfcf80..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/GoodsInfoOneVo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.dsh.activity.model.response;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class GoodsInfoOneVo {
-
-
-    String name;
-    /**
-     * 封面图
-     */
-    String cover;
-    /**
-     * 原价
-     */
-    BigDecimal price;
-    /**
-     * 兑换方式(1=积分,2=现金+积分, 3=现金)
-     */
-    Integer exchangeMethod;
-    /**
-     * 现金
-     */
-    BigDecimal cash;
-    /**
-     * 积分
-     */
-    Integer integral;
-    /**
-     * 图片
-     */
-    String pics;
-    /**
-     * 用户人群
-     */
-    String userPopulation;
-    /**
-     * 发放数量
-     */
-    Integer quantityIssued;
-    /**
-     * 已领数量
-     */
-    Integer hasPicked;
-    /**
-     * 限领数量
-     */
-    Integer pickUpQuantity;
-    /**
-     * 有效期
-     */
-    String validTime;
-    /**
-     * 兑换地点
-     */
-    String exchangeArea;
-    /**
-     * 兑换地点 (1=全国,2=指定城市,3=指定门店)
-     */
-    Integer useScope;
-    /**
-     * 商品说明
-     */
-    String redemptionInstructions;
-    /**
-     * 排序
-     */
-    Integer sort;
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java
deleted file mode 100644
index aa7ffbb..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/model/response/StoreVos.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dsh.activity.model.response;
-
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class StoreVos {
-
-    String num1;
-
-    String num2;
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java
deleted file mode 100644
index 9b42bbe..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseCityService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dsh.activity.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.dsh.activity.entity.PointsMerchandiseCity;
-
-/**
- * <p>
- * 积分商品使用门店关系数据 服务类
- * </p>
- *
- * @author jqs
- * @since 2023-07-12
- */
-public interface PointsMerchandiseCityService extends IService<PointsMerchandiseCity> {
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
index c41c807..a27221b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseService.java
@@ -19,5 +19,4 @@
 
     List<Map<String, Object>> queryGoodsListOfSearch(IntegralGoodsOfSearch ofSearch);
 
-    void saveCity(Integer id, String province, String provinceCode, String city, String cityCode);
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java
deleted file mode 100644
index 457096c..0000000
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseCityServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.dsh.activity.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.dsh.activity.entity.PointsMerchandiseCity;
-import com.dsh.activity.mapper.PointsMerchandiseCityMapper;
-import com.dsh.activity.service.PointsMerchandiseCityService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 积分商品使用门店关系数据 服务实现类
- * </p>
- *
- * @author jqs
- * @since 2023-07-12
- */
-@Service
-public class PointsMerchandiseCityServiceImpl extends ServiceImpl<PointsMerchandiseCityMapper, PointsMerchandiseCity> implements PointsMerchandiseCityService {
-
-}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
index eb072a7..3709d22 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
@@ -26,9 +26,4 @@
         return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
                 ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
     }
-
-    @Override
-    public void saveCity(Integer id, String province, String provinceCode, String city, String cityCode) {
-        this.baseMapper.saveCity(id,province,provinceCode,city,cityCode);
-    }
 }
diff --git a/cloud-server-management/src/main/resources/logback-spring.xml b/cloud-server-activity/src/main/resources/logback-spring.xml
similarity index 100%
rename from cloud-server-management/src/main/resources/logback-spring.xml
rename to cloud-server-activity/src/main/resources/logback-spring.xml
diff --git a/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml b/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
index 0fbf1fc..c222803 100644
--- a/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
@@ -25,7 +25,23 @@
                     t1.parentName like concat('%',#{query.parentName},'%')
                 </if>
                 <if test="query.state!=null and query.state!= ''">
-                    and t1.state = #{query.state}
+                    and t1.status = #{query.state}
+                </if>
+
+                <if test="query.day!=null and query.day!= '' and query.day==1" >
+                    and DATE(t1.appointmentTime) = CURDATE()
+                </if>
+                <if test="query.day!=null and query.day!= '' and query.day==2" >
+                    and DATE(t1.appointmentTime) = DATE_ADD(CURDATE(), INTERVAL 1 DAY)
+                </if>
+                <if test="query.day!=null and query.day!= '' and query.day==7" >
+                    AND DATE(t1.appointmentTime) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
+                </if>
+                <if test="query.ids != null and query.ids.size()>0">
+                    AND t1.storeId IN
+                    <foreach collection="query.ids" separator="," item="id" open="(" close=")">
+                        #{id}
+                    </foreach>
                 </if>
             </where>
     </select>
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml
deleted file mode 100644
index 9ff98bd..0000000
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseCityMapper.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.dsh.activity.mapper.PointsMerchandiseCityMapper">
-
-
-</mapper>
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index 0d4abde..38bcc37 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -1,9 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.dsh.activity.mapper.PointsMerchandiseMapper">
-    <insert id="saveCity">
-        insert into t_points_merchandise_city (id,pointsMerchandiseId,city,cityCode,province,provinceCode) value (null ,#{id},#{city},#{cityCode},#{province},#{provinceCode})
-    </insert>
 
 
     <select id="queryGoodsListOfSearch" resultType="java.util.Map">
diff --git a/cloud-server-activity/logback-spring.xml b/cloud-server-auth/src/main/resources/logback-spring.xml
similarity index 96%
rename from cloud-server-activity/logback-spring.xml
rename to cloud-server-auth/src/main/resources/logback-spring.xml
index e98de73..b13e9b3 100644
--- a/cloud-server-activity/logback-spring.xml
+++ b/cloud-server-auth/src/main/resources/logback-spring.xml
@@ -35,7 +35,7 @@
     <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
+        <!--日志文档输出格式 Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 设置字符集 -->
@@ -62,7 +62,7 @@
     <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
+        <!--日志文档输出格式 Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset>
@@ -89,7 +89,7 @@
     <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
+        <!--日志文档输出格式 Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
@@ -115,7 +115,7 @@
     <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
+        <!--日志文档输出格式 Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
@@ -141,7 +141,7 @@
     <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式  Output format of the log document.-->
+        <!--日志文档输出格式 Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
diff --git a/cloud-server-competition/src/main/resources/logback-spring.xml b/cloud-server-competition/src/main/resources/logback-spring.xml
index b13e9b3..e98de73 100644
--- a/cloud-server-competition/src/main/resources/logback-spring.xml
+++ b/cloud-server-competition/src/main/resources/logback-spring.xml
@@ -35,7 +35,7 @@
     <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/debug.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
+        <!--日志文档输出格式  Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 设置字符集 -->
@@ -62,7 +62,7 @@
     <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/info.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
+        <!--日志文档输出格式  Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset>
@@ -89,7 +89,7 @@
     <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/warn.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
+        <!--日志文档输出格式  Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
@@ -115,7 +115,7 @@
     <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/error.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
+        <!--日志文档输出格式  Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
@@ -141,7 +141,7 @@
     <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <!-- 正在记录的日志文档的路径及文档名 -->
         <file>${log.path}/${artifactId}/all.log</file>
-        <!--日志文档输出格式 Output format of the log document.-->
+        <!--日志文档输出格式  Output format of the log document.-->
         <encoder>
             <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
             <charset>UTF-8</charset> <!-- 此处设置字符集 -->
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
index f885da2..bb2a1fe 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -2,10 +2,11 @@
 
 
 import cn.mb.cloud.common.data.controller.BaseController;
-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.entity.*;
+import com.dsh.course.entity.TCourse;
+import com.dsh.course.entity.TCoursePackagePayment;
+import com.dsh.course.entity.TCoursePackageType;
 import com.dsh.course.feignclient.model.ExerciseVideo;
 import com.dsh.course.model.*;
 import com.dsh.course.model.dto.CourseChangeStateDTO;
@@ -15,7 +16,6 @@
 import com.dsh.course.service.TCoursePackageService;
 import com.dsh.course.service.TCoursePackageTypeService;
 import com.dsh.course.service.TCourseService;
-import com.dsh.course.service.*;
 import com.dsh.course.util.PageFactory;
 import com.dsh.course.util.PayMoneyUtil;
 import com.dsh.course.util.ResultUtil;
@@ -34,7 +34,6 @@
 import javax.servlet.http.HttpServletResponse;
 import java.io.PrintWriter;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -64,8 +63,6 @@
     @Autowired
     private TCoursePackagePaymentService coursePackagePaymentService;
 
-    @Autowired
-    private TCoursePackageDiscountService discountService;
     /**
      * 上/下架 1为上架 2为下架 3为删除
      *
@@ -74,9 +71,6 @@
     @RequestMapping("/base/course/changeState")
     @ResponseBody
     public Object changeState(@RequestBody CourseChangeStateDTO dto){
-
-
-
 
         return courseService.changeState(dto);
     }
@@ -382,94 +376,5 @@
     @PostMapping("/course/queryCourseByType")
     public List<TCourse> queryCourseByType(@RequestBody Integer type){
         return courseService.list(new QueryWrapper<TCourse>().eq("type", type).eq("state", 1));
-    }
-
-
-    @PostMapping("/course/queryDiscountList")
-    public List<DiscountList> queryDiscountList(@RequestBody  QueryDiscountList queryDiscountList){
-       return discountService.queryDiscountList(queryDiscountList);
-    }
-    @PostMapping("/course/queryDiscountListAudit")
-    public List<DiscountList> queryDiscountListAudit(@RequestBody  QueryDiscountList queryDiscountList){
-       return discountService.queryDiscountListAudit(queryDiscountList);
-    }
-
-    @PostMapping("/course/updateState")
-    public Boolean updateState( @RequestBody DiscountUpdateState discountUpdateState){
-        TCoursePackageDiscount byId = discountService.getById(discountUpdateState.getId());
-        List<TCoursePackageDiscount> list = discountService.list(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, byId.getCoursePackageId()));
-        list.forEach(e->e.setStatus(discountUpdateState.getStatus()));
-        return discountService.updateBatchById(list);
-    }
-
-
-    @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()));
-        for (TCoursePackageDiscount tCoursePackageDiscount : list) {
-            tCoursePackageDiscount.setAuditStatus(auditDiscount.getType());
-            tCoursePackageDiscount.setAuditRemark(auditDiscount.getText());
-        }
-
-        return discountService.updateBatchById(list);
-    }
-
-    @PostMapping("/course/queryByDiscountId")
-    public TCoursePackage queryByDiscountId(@RequestBody Integer id){
-        TCoursePackageDiscount byId = discountService.getById(id);
-        TCoursePackage byId1 = coursePackageService.getById(byId.getCoursePackageId());
-        return byId1;
-    }
-
-    @PostMapping("/course/queryDiscountById")
-    public Integer queryDiscountById(@RequestBody Integer id){
-        TCoursePackageDiscount byId = discountService.getById(id);
-        return byId.getAuditStatus();
-    }
-
-
-
-    @PostMapping("/course/getPageageType")
-    public List<Map<String, Object>> getPageageType(){
-        List<TCoursePackageType> list = coursePackageTypeService.list(new LambdaQueryWrapper<TCoursePackageType>().eq(TCoursePackageType::getState, 1));
-        ArrayList<Map<String, Object>> objects = new ArrayList<>();
-        for (TCoursePackageType tCoursePackageType : list) {
-            HashMap<String, Object> map = new HashMap<>();
-            map.put("id",tCoursePackageType.getId());
-            map.put("name",tCoursePackageType.getName());
-            objects.add(map);
-        }
-        return objects;
-    }
-
-
-    @PostMapping("/course/queryByTypeId")
-    public List<TCoursePackage> queryByTypeId(@RequestBody Integer oneId){
-        return coursePackageService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getCoursePackageTypeId,oneId).eq(TCoursePackage::getAuditStatus,2).eq(TCoursePackage::getState,1));
-    }
-
-
-    @PostMapping("/course/queryByConfigId")
-    public List<Map<String, Object>> queryByConfigId(@RequestBody Integer oneId){
-        return coursePackageService.queryByConfigId(oneId);
-    }
-
-
-    @PostMapping("/course/queryPackageById")
-    public List<String> queryPackageById(@RequestBody Integer coursePackageId){
-        ArrayList<String> strings = new ArrayList<>();
-        TCoursePackage byId = coursePackageService.getById(coursePackageId);
-        Integer coursePackageTypeId = byId.getCoursePackageTypeId();
-        strings.add(coursePackageTypeService.getById(coursePackageTypeId).getName());
-        strings.add(byId.getName());
-
-        return strings;
-
-    }
-
-    @PostMapping("/course/getHours")
-    public String getHours(@RequestBody Integer coursePackageId1){
-        return coursePackageService.getHours(coursePackageId1);
     }
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java
index 45be4c1..d5649f6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java
@@ -31,11 +31,7 @@
         return coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfigId)
                 .eq("auditStatus", 2));
     }
-    @PostMapping("/coursePackageDiscount/queryCoursePackageDiscountOne")
-    public List<TCoursePackageDiscount> queryCoursePackageDiscountOne(@RequestBody Integer id){
-        return coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", id)
-                .ne("auditStatus", 2));
-    }
+
 
     /**
      * 编辑课包折扣
diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java
index bebf2e2..48ac5e9 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java
@@ -74,6 +74,6 @@
     @TableField("insertTime")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date insertTime;
-    @TableField("status")
-    private Integer status;
+
+
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java
index 90b2fe2..38b7057 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageDiscountMapper.java
@@ -1,12 +1,7 @@
 package com.dsh.course.mapper;
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.entity.TCoursePackageDiscount;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.dsh.course.model.DiscountList;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 /**
  * <p>
@@ -18,7 +13,4 @@
  */
 public interface TCoursePackageDiscountMapper extends BaseMapper<TCoursePackageDiscount> {
 
-    List<DiscountList> queryDiscountList(@Param("discountListPage") Page<DiscountList> discountListPage, @Param("pCode") String pCode, @Param("cCode") String cCode, @Param("name") String name, @Param("type") Integer type, @Param("ids") List<Integer> ids);
-
-    List<DiscountList> queryDiscountListAudit(@Param("discountListPage") Page<DiscountList> discountListPage, @Param("pCode") String pCode, @Param("cCode") String cCode, @Param("name") String name, @Param("type") Integer type, @Param("ids") List<Integer> ids);
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java
index 3017da9..f85010f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java
@@ -42,10 +42,4 @@
      */
     List<Map<String, Object>> queryExamineCoursePackageLists(Page<Map<String, Object>> page, @Param("item") QueryExamineCoursePackageLists queryExamineCoursePackageLists);
 
-    List<Map<String, Object>> queryByConfigId(@Param("oneId") Integer oneId);
-
-    String getHours(@Param("coursePackageId") Integer coursePackageId);
-
-
-
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java b/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java
deleted file mode 100644
index 970b818..0000000
--- a/cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dsh.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class AuditDiscount {
-    private Integer id;
-    
-    private Integer type;
-    
-    private String text;
-}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java
deleted file mode 100644
index f054562..0000000
--- a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountList.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.dsh.course.model;
-
-import lombok.Data;
-
-@Data
-public class DiscountList {
-    private Integer id;
-
-    private String pName;
-
-    private String cName;
-
-    private String shopName;
-
-    private String name;
-
-    private String type;
-
-    private Integer status;
-
-    private Integer storeId;
-    private Integer courseId;
-}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java b/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java
deleted file mode 100644
index 1b4747e..0000000
--- a/cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.dsh.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DiscountUpdateState {
-    private Integer id;
-    
-    private Integer status;
-}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java b/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java
deleted file mode 100644
index 72c4cd0..0000000
--- a/cloud-server-course/src/main/java/com/dsh/course/model/QueryDiscountList.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.dsh.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class QueryDiscountList {
-    private long offset;
-    private long limit;
-
-    private String pCode;
-
-    private String cCode;
-
-    private String name;
-
-    private Integer type;
-
-    private List<Integer> ids;
-}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
index 118f746..cd02a1a 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
@@ -2,8 +2,6 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.dsh.course.entity.TCoursePackageDiscount;
-import com.dsh.course.model.DiscountList;
-import com.dsh.course.model.QueryDiscountList;
 import com.dsh.course.model.vo.response.Details;
 import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse;
 
@@ -24,10 +22,5 @@
 
     ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon);
 
-
-    List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList);
-
-
-    List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList);
 
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java
index 4708c1c..d7d6a12 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java
@@ -84,9 +84,4 @@
      * @return
      */
     List<Map<String, Object>> queryExamineCoursePackageLists(Page<Map<String, Object>> page, QueryExamineCoursePackageLists queryExamineCoursePackageLists);
-
-    List<Map<String, Object>> queryByConfigId(Integer oneId);
-
-    String getHours(Integer coursePackageId);
-
 }
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
index ec83f76..1017f20 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
@@ -3,9 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.course.entity.CoursePackagePaymentConfig;
 import com.dsh.course.entity.TCoursePackage;
@@ -18,8 +16,6 @@
 import com.dsh.course.mapper.TCoursePackageDiscountMapper;
 import com.dsh.course.mapper.TCoursePackageMapper;
 import com.dsh.course.mapper.TCoursePackagePaymentMapper;
-import com.dsh.course.model.DiscountList;
-import com.dsh.course.model.QueryDiscountList;
 import com.dsh.course.model.vo.response.Details;
 import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse;
 import com.dsh.course.service.TCoursePackageDiscountService;
@@ -356,70 +352,6 @@
         return packageResponse;
     }
 
-    @Override
-    public List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList) {
-        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
-        List<DiscountList> discountLists = this.baseMapper.queryDiscountList(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds());
-        for (DiscountList discountList : discountLists) {
-            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).eq(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType));
-            long count = tCoursePackageDiscounts.stream().filter(e -> e.getStatus().equals(2)).count();
-            if(count>0){
-                discountList.setStatus(2);
-            }else {
-                discountList.setStatus(1);
-            }
-            String type="";
-            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
-                if(tCoursePackageDiscounts.get(i).getType()==1){
-                    type += "会员折扣、";
-                }else if(tCoursePackageDiscounts.get(i).getType()==3){
-                    type += "限时折扣、";
-                }else if(tCoursePackageDiscounts.get(i).getType()==4){
-                    type += "赠送课时、";
-                }
-            }
-            if(type.length()>0){
-                type = type.substring(0,type.length()-1);
-            }
-            discountList.setType(type);
-        }
-        return discountLists;
-    }
-
-    public static void main(String[] args) {
-        String a ="1312dsad132";
-        a = a.substring(0,a.length()-1);
-        System.out.println(a);
-    }
-    @Override
-    public List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList) {
-        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
-        List<DiscountList> discountLists = this.baseMapper.queryDiscountListAudit(discountListPage, queryDiscountList.getPCode(), queryDiscountList.getCCode(), queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds());
-        for (DiscountList discountList : discountLists) {
-            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackageDiscount>().eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId()).ne(TCoursePackageDiscount::getAuditStatus,2).orderByAsc(TCoursePackageDiscount::getType));
-            long count = tCoursePackageDiscounts.stream().filter(e -> e.getAuditStatus().equals(2)).count();
-            if(count>0){
-                discountList.setStatus(2);
-            }else {
-                discountList.setStatus(1);
-            }
-            String type="";
-            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
-                if(tCoursePackageDiscounts.get(i).getType()==1){
-                    type += "会员折扣、";
-                }else if(tCoursePackageDiscounts.get(i).getType()==3){
-                    type += "限时折扣、";
-                }else if(tCoursePackageDiscounts.get(i).getType()==4){
-                    type += "赠送课时、";
-                }
-            }
-            if(type.length()>0){
-                type = type.substring(0,type.length()-1);
-            }
-            discountList.setType(type);
-        }
-        return discountLists;
-    }
 
 
     private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) {
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
index 8111282..7358a5e 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -951,14 +951,4 @@
         }
         return list;
     }
-
-    @Override
-    public List<Map<String, Object>> queryByConfigId(Integer oneId) {
-        return this.baseMapper.queryByConfigId(oneId);
-    }
-
-    @Override
-    public String getHours(Integer coursePackageId) {
-        return this.baseMapper.getHours(coursePackageId);
-    }
 }
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
index 4f085f6..95fc2a7 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml
@@ -14,43 +14,5 @@
         <result column="auditRemark" property="auditRemark" />
         <result column="insertTime" property="insertTime" />
     </resultMap>
-    <select id="queryDiscountList" resultType="com.dsh.course.model.DiscountList">
-        select t1.id,t1.type,t1.status,t2.province pName,t2.city cName,t2.name,t2.storeId,t2.id courseId from t_course_package_discount t1 left join  t_course_package t2 on t1.coursePackageId = t2.id
-        where t2.storeId in <foreach collection="ids" close=")" item="id" open="(" separator=",">
-        #{id} and t1.auditStatus =2
-    </foreach>
-     <if test="pCode !=null and pCode !=''">
-         and t2.provinceCode =#{pCode}
-     </if>
-     <if test="cCode !=null and cCode !=''">
-         and t2.cityCode =#{cCode}
-     </if>
-     <if test="name !=null and name !=''">
-         and t2.name like concat("%",#{name},"%")
-     </if>
-     <if test="type !=null ">
-         and t1.type =#{type}
-     </if>
-     group by t1.coursePackageId
-    </select>
-    <select id="queryDiscountListAudit" resultType="com.dsh.course.model.DiscountList">
-        select t1.id,t1.type,t1.auditStatus status,t2.province pName,t2.city cName,t2.name,t2.storeId,t2.id courseId from t_course_package_discount t1 left join  t_course_package t2 on t1.coursePackageId = t2.id
-        where t2.storeId in <foreach collection="ids" close=")" item="id" open="(" separator=",">
-        #{id} and t1.auditStatus !=2
-    </foreach>
-     <if test="pCode !=null and pCode !=''">
-         and t2.provinceCode =#{pCode}
-     </if>
-     <if test="cCode !=null and cCode !=''">
-         and t2.cityCode =#{cCode}
-     </if>
-     <if test="name !=null and name !=''">
-         and t2.name like concat("%",#{name},"%")
-     </if>
-     <if test="type !=null ">
-         and t1.type =#{type}
-     </if>
-        group by t1.coursePackageId
-    </select>
 
 </mapper>
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml
index 8fc1230..bf5df87 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml
@@ -125,10 +125,4 @@
         </if>
         order by a.insertTime desc
     </select>
-    <select id="queryByConfigId" resultType="java.util.Map">
-        select id,classHours from t_course_package_payment_config where coursePackageId =#{oneId}
-    </select>
-    <select id="getHours" resultType="java.lang.String">
-        select classHours from t_course_package_payment_config where id =#{coursePackageId}
-    </select>
 </mapper>
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
index b11e254..46c99a3 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java
@@ -1,9 +1,14 @@
 package com.dsh.course.feignClient.account;
 
+import com.dsh.course.feignClient.account.model.QueryAppUser;
+import com.dsh.course.feignClient.account.model.QueryAppUserVO;
 import com.dsh.course.feignClient.account.model.QueryByNamePhone;
 import com.dsh.course.feignClient.account.model.TAppUser;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import java.util.List;
 
@@ -17,5 +22,16 @@
     @PostMapping("/base/appUser/queryById")
     TAppUser queryById(Integer appUserId);
 
+    /**
+     * 获取用户信息列表数据
+     */
+    @RequestMapping("/base/appUser/listAll")
+    List<QueryAppUserVO> listAll(@RequestBody QueryAppUser query);
+    /**
+     * 新增用户信息
+     */
+    @RequestMapping("/base/appUser/addAppUser")
+    Object addAppUser(@RequestBody TAppUser query);
+
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUser.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUser.java
new file mode 100644
index 0000000..b2f2bd0
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUser.java
@@ -0,0 +1,17 @@
+package com.dsh.course.feignClient.account.model;
+
+import lombok.Data;
+
+/**
+ * 用户信息查询Query
+ */
+@Data
+public class QueryAppUser {
+   private String province;
+   private String city;
+   private String name;
+   private String phone;
+   private Integer isVip;
+   private Integer state;
+   private String salesmanUserName;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUserVO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUserVO.java
new file mode 100644
index 0000000..c036713
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/QueryAppUserVO.java
@@ -0,0 +1,133 @@
+package com.dsh.course.feignClient.account.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.util.Date;
+
+/**
+ * 用户信息列表VO
+ */
+@Data
+public class QueryAppUserVO {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer id;
+    /**
+     * 编号
+     */
+    private String code;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 密码
+     */
+    private String password;
+    /**
+     * 生日
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    private Integer gender;
+    /**
+     * 身高
+     */
+    private Double height;
+    /**
+     * 体重
+     */
+    private Double weight;
+    /**
+     * bmi健康值
+     */
+    private Double bmi;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 微信openid
+     */
+    private String openid;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 省编号
+     */
+    private String provinceCode;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 市编号
+     */
+    private String cityCode;
+    /**
+     * 是否是年度会员(0=否,1=是)
+     */
+    private Integer isVip;
+    /**
+     * 会员有效期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date vipEndTime;
+    /**
+     * 会员等级id
+     */
+    private Integer viplevelId;
+    /**
+     * 推荐用户id
+     */
+    private Integer referralUserId;
+    /**
+     * 销售员id
+     */
+    private Integer salesmanUserId;
+
+    private String salesmanUserName;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    private Integer state;
+    /**
+     * 剩余积分
+     */
+    private Integer integral;
+    /**
+     * 玩湃币
+     */
+    private Integer playPaiCoins;
+    /**
+     * 用户头像
+     */
+    private String headImg;
+    /**
+     * 添加时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date insertTime;
+
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
index fc8eeb3..7c252e3 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java
@@ -5,15 +5,10 @@
 import com.dsh.course.feignClient.activity.model.IntegralGoodsOfSearch;
 import com.dsh.course.feignClient.activity.model.PointMercharsPayedVo;
 import com.dsh.course.feignClient.activity.model.PointMercharsVo;
-import com.dsh.course.feignClient.activity.model.PointsMerchandise;
-import com.dsh.guns.modular.system.model.GoodsInfoOneVo;
-import com.dsh.guns.modular.system.model.StoreVos;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
-import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -31,38 +26,5 @@
 
     @PostMapping("/base/pointMerchars/queryUserPayedGoodsList")
     List<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo);
-
-    @PostMapping("/base/pointMerchars/add")
-    Integer add(PointsMerchandise pointsMerchandise);
-
-    @PostMapping("/base/pointMerchars/addOther")
-    Boolean addOther(@RequestBody String pam);
-
-    @PostMapping("/base/pointMerchars/addCitys")
-    Boolean addCitys(@RequestBody List<Map<String, String>> objects);
-
-    @PostMapping("/base/pointMerchars/queryPointMerchaseById")
-    PointsMerchandise queryPointMerchaseById(Integer id);
-
-
-    @PostMapping("/base/pointMerchars/getshopName")
-    Integer getshopName(Integer id);
-
-    @PostMapping("/base/pointMerchars/writeOffGoodsStatus")
-    boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map);
-
-    @PostMapping("/base/pointMerchars/updateGoodsDetail")
-    boolean updateGoodsDetail(@RequestBody Map<String, Object> stringObjectHashMap);
-
-
-    @PostMapping("/base/pointMerchars/queryDetailsOfGoods")
-    GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id);
-
-
-    @PostMapping("/base/pointMerchars/getStoreList")
-    List<StoreVos> getStoreList(@RequestBody Integer id);
-
-    @PostMapping("/base/pointMerchars/getProvinces")
-    List<StoreVos> getProvinces(@RequestBody Integer id);
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
index 8e3e984..ab8d03b 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointMercharsVo.java
@@ -24,10 +24,6 @@
      */
     Integer quantityIssued;
     /**
-     * 已领数量
-     */
-    Integer quantityHas;
-    /**
      * 限领数量
      */
     Integer pickUpQuantity;
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
deleted file mode 100644
index fe72114..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/PointsMerchandise.java
+++ /dev/null
@@ -1,172 +0,0 @@
-package com.dsh.course.feignClient.activity.model;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * <p>
- * 积分商品
- * </p>
- *
- * @author jqs
- * @since 2023-07-04
- */
-@Data
-@EqualsAndHashCode(callSuper = false)
-@Accessors(chain = true)
-@TableName("t_points_merchandise")
-public class PointsMerchandise extends Model<PointsMerchandise> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 主键
-     */
-    @TableId(value = "id", type = IdType.AUTO)
-    private Integer id;
-    /**
-     * 类型(1=实体商品,2=课包商品,3=门票商品 4=优惠券)
-     */
-    @TableField("type")
-    private Integer type;
-    /**
-     * 商品名称
-     */
-    @TableField("name")
-    private String name;
-    /**
-     * 课包id
-     */
-    @TableField("coursePackageId")
-    private Integer coursePackageId;
-    /**
-     * 原价
-     */
-    @TableField("price")
-    private BigDecimal price;
-    /**
-     * 兑换方式(1=积分,2=现金+积分)
-     */
-    @TableField("redemptionMethod")
-    private Integer redemptionMethod;
-    /**
-     * 所需现金
-     */
-    @TableField("cash")
-    private BigDecimal cash;
-    /**
-     * 所属积分
-     */
-    @TableField("integral")
-    private Integer integral;
-    /**
-     * 商品封面
-     */
-    @TableField("cover")
-    private String cover;
-    /**
-     * 商品图片
-     */
-    @TableField("productImages")
-    private String productImages;
-    /**
-     * 用户人群(1=全部用户,2=年度会员,3=已有学员用户)
-     */
-    @TableField("userPopulation")
-    private Integer userPopulation;
-    /**
-     * 发放数量
-     */
-    @TableField("quantityIssued")
-    private Integer quantityIssued;
-    /**
-     * 限领数量
-     */
-    @TableField("pickUpQuantity")
-    private Integer pickUpQuantity;
-    /**
-     * 开始时间
-     */
-    @TableField("startTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date startTime;
-    /**
-     * 结束时间
-     */
-    @TableField("endTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date endTime;
-    /**
-     * 使用范围(1=全国,2=指定城市,3=指定门店)
-     */
-    @TableField("useScope")
-    private Integer useScope;
-    /**
-     * 省
-     */
-    @TableField("province")
-    private String province;
-    /**
-     * 省编号
-     */
-    @TableField("provinceCode")
-    private String provinceCode;
-    /**
-     * 市
-     */
-    @TableField("city")
-    private String city;
-    /**
-     * 市编号
-     */
-    @TableField("cityCode")
-    private String cityCode;
-    /**
-     * 兑换说明
-     */
-    @TableField("redemptionInstructions")
-    private String redemptionInstructions;
-    /**
-     * 排序
-     */
-    @TableField("sort")
-    private Integer sort;
-    /**
-     * 状态(1=正常,2=冻结,3=删除)
-     */
-    @TableField("state")
-    private Integer state;
-    /**
-     * 添加时间
-     */
-    @TableField("insertTime")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date insertTime;
-    /**
-     * 课包支付配置id
-     */
-    @TableField("coursePackageConfigId")
-    private Integer coursePackageConfigId;
-    /**
-     * 1=上架 2=下架
-     */
-    @TableField("shelves")
-    private Integer shelves;
-
-    @Override
-    protected Serializable pkVal() {
-        return this.id;
-    }
-
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java
index 135cf2e..8febec8 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/QueryBodySideAppointment.java
@@ -1,6 +1,9 @@
 package com.dsh.course.feignClient.activity.model;
 
+import io.swagger.models.auth.In;
 import lombok.Data;
+
+import java.util.List;
 
 /**
  * 接收查询参数VO
@@ -13,4 +16,6 @@
     private Integer state;
     // 1=今日内预约 2=明日预约 7=七日内
     private Integer day;
+    // 门店id集合
+    private List<Integer> ids;
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
index 1129250..fe050a9 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CourseClient.java
@@ -1,19 +1,15 @@
 package com.dsh.course.feignClient.course;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dsh.course.feignClient.course.model.*;
 import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
 import com.dsh.course.feignClient.course.model.QueryCourseList;
-import com.dsh.course.feignClient.course.model.*;
 import com.dsh.guns.modular.system.model.EditCourseState;
 import com.dsh.guns.modular.system.model.TCourse;
 import com.dsh.guns.modular.system.model.TQueryBenefitsVideosDTO;
 import com.dsh.guns.modular.system.model.TQueryBenefitsVideosVO;
-import com.dsh.guns.modular.system.model.TQueryBenefitsVideosVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
@@ -99,38 +95,4 @@
      */
     @PostMapping("/course/queryCourseByType")
     List<TCourse> queryCourseByType(Integer type);
-
-
-    @PostMapping("/course/queryDiscountList")
-    List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList);
-
-    @PostMapping("/course/updateState")
-    Boolean updateState(DiscountUpdateState discountUpdateState);
-
-    @PostMapping("/course/queryDiscountListAudit")
-    List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList);
-
-    @PostMapping("/course/auditDiscount")
-    Boolean auditDiscount(AuditDiscount auditDiscount);
-
-    @PostMapping("/course/queryByDiscountId")
-    TCoursePackage queryByDiscountId(Integer id);
-    @PostMapping("/course/queryDiscountById")
-    Integer queryDiscountById(Integer id);
-
-    @PostMapping("/course/getPageageType")
-    List<Map<String, Object>> getPageageType();
-
-    @PostMapping("/course/queryByTypeId")
-    List<TCoursePackage> queryByTypeId(Integer oneId);
-
-    @PostMapping("/course/queryByConfigId")
-    List<Map<String, Object>> queryByConfigId(Integer oneId);
-
-    @PostMapping("/course/queryPackageById")
-    List<String> queryPackageById(Integer coursePackageId);
-
-    @PostMapping("/course/getHours")
-    String getHours(Integer coursePackageId1);
-
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java
index 9ba9a71..b3faf17 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageDiscountClient.java
@@ -26,10 +26,7 @@
      * 配置课包折扣数据
      * @param list
      */
-
     @PostMapping("/coursePackageDiscount/setCoursePackageDiscount")
     void setCoursePackageDiscount(List<TCoursePackageDiscount> list);
 
-    @PostMapping("/coursePackageDiscount/queryCoursePackageDiscountOne")
-    List<TCoursePackageDiscount> queryCoursePackageDiscountOne(Integer id);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java
deleted file mode 100644
index 66dae0b..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/AuditDiscount.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.dsh.course.feignClient.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class AuditDiscount {
-    private Integer id;
-
-    private Integer type;
-
-    private String text;
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java
deleted file mode 100644
index 59af385..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountList.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.dsh.course.feignClient.course.model;
-
-import lombok.Data;
-
-@Data
-public class DiscountList {
-    private Integer id;
-
-    private String pName;
-
-    private String cName;
-
-    private String shopName;
-
-    private String name;
-
-    private String type;
-
-    private Integer status;
-
-    private Integer storeId;
-    private Integer courseId;
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java
deleted file mode 100644
index d89f36e..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/DiscountUpdateState.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.dsh.course.feignClient.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class DiscountUpdateState {
-    private Integer id;
-
-    private Integer status;
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java
deleted file mode 100644
index 6c78a09..0000000
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/QueryDiscountList.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.dsh.course.feignClient.course.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class QueryDiscountList {
-    private long offset;
-    private long limit;
-
-    private String pCode;
-
-    private String cCode;
-
-    private String name;
-
-    private Integer type;
-
-    private List<Integer> ids;
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreValueConfigClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreValueConfigClient.java
new file mode 100644
index 0000000..61ba5e6
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/StoreValueConfigClient.java
@@ -0,0 +1,31 @@
+package com.dsh.course.feignClient.other;
+
+import com.dsh.course.feignClient.other.model.Site;
+import com.dsh.guns.modular.system.model.Store;
+import com.dsh.guns.modular.system.model.StoredValueConfig;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+
+/**
+ * 储值管理
+ */
+@FeignClient(value = "mb-cloud-other")
+public interface StoreValueConfigClient {
+
+    /**
+     * 添加储值规则
+     * @return
+     */
+    @RequestMapping("/base/storeValueConfig/addStoreValueConfig")
+    Object addStoreValueConfig(@RequestBody StoredValueConfig storedValueConfig);
+
+    /**
+     * 获取储值规则
+     * @return
+     */
+    @RequestMapping("/base/storeValueConfig/getStoreValueConfig")
+    StoredValueConfig getStoreValueConfig();
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
new file mode 100644
index 0000000..26a8c67
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
@@ -0,0 +1,251 @@
+package com.dsh.guns.modular.system.controller.code;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.course.feignClient.account.AppUserClient;
+import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.StoreStaffClient;
+import com.dsh.course.feignClient.account.model.*;
+import com.dsh.course.feignClient.activity.BodySideAppointmentClient;
+import com.dsh.course.feignClient.activity.model.BodySideAppointment;
+import com.dsh.course.feignClient.activity.model.QueryBodySideAppointment;
+import com.dsh.course.feignClient.activity.model.QueryBodySideAppointmentVO;
+import com.dsh.course.feignClient.other.StoreClient;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.Store;
+import com.dsh.guns.modular.system.model.TCity;
+import com.dsh.guns.modular.system.model.TSiteType;
+import com.dsh.guns.modular.system.service.ICityService;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 用户管理控制器
+ */
+@Controller
+@RequestMapping("/appUser")
+public class TAppUserController {
+    private String PREFIX = "/system/appUser/";
+    @Autowired
+    private StoreClient storeClient;
+    @Autowired
+    private BodySideAppointmentClient bodySideAppointmentClient;
+    @Autowired
+    private CityManagerClient cityManagerClient;
+    @Autowired
+    private StoreStaffClient storeStaffClient;
+    @Autowired
+    private AppUserClient appUserClient;
+    @Autowired
+    private ICityService cityService;
+    /**
+     * 跳转体测预约管理首页
+     */
+    @RequestMapping("")
+    public String index(Model model) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+        model.addAttribute("roleType",roleType);
+        model.addAttribute("objectId",objectId);
+        List<CityManager> province = cityManagerClient.listAll();
+        // 已有城市管理的省
+        ArrayList<String> list1 = new ArrayList<>();
+        // 已有城市管理的市
+        ArrayList<String> list2 = new ArrayList<>();
+        for (CityManager cityManager : province) {
+            list1.add(cityManager.getProvince());
+            list2.add(cityManager.getCity());
+        }
+        HashSet<String> set = new HashSet<String>(list1);
+        model.addAttribute("list",set);
+        return PREFIX + "TAppUser.html";
+    }
+    /**
+     * 跳转用户信息管理添加页面
+     */
+    @RequestMapping("/add")
+    public String add(Model model) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        List<CityManager> province = cityManagerClient.listAll();
+        Set<String> seenNames = new HashSet<>();
+        List<CityManager> result = new ArrayList<>();
+        for (CityManager cityManager : province) {
+            if(!seenNames.contains(cityManager.getProvince())){
+                result.add(cityManager);
+                seenNames.add(cityManager.getProvince());
+            }
+        }
+        if (roleType == 2){
+            Integer cityManagerId = UserExt.getUser().getObjectId();
+            CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId);
+            List<Store> stores = storeClient.getStoreByCityManagerId(cityManagerId);
+            model.addAttribute("stores",stores);
+        }
+        model.addAttribute("list",result);
+
+        model.addAttribute("roleType",roleType);
+        return PREFIX + "TAppUser_add.html";
+    }
+
+
+    /**
+     * 跳转体测预约管理添加页面
+     */
+    @RequestMapping("/addStudent")
+    public String addStudent(Model model) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        List<CityManager> province = cityManagerClient.listAll();
+        Set<String> seenNames = new HashSet<>();
+        List<CityManager> result = new ArrayList<>();
+        for (CityManager cityManager : province) {
+            if(!seenNames.contains(cityManager.getProvince())){
+                result.add(cityManager);
+                seenNames.add(cityManager.getProvince());
+            }
+        }
+        if (roleType == 2){
+            Integer cityManagerId = UserExt.getUser().getObjectId();
+            CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId);
+            List<Store> stores = storeClient.getStoreByCityManagerId(cityManagerId);
+            model.addAttribute("stores",stores);
+        }
+        model.addAttribute("list",result);
+
+        model.addAttribute("roleType",roleType);
+        return PREFIX + "TAppUser_addStudent.html";
+    }
+    /**
+     * 跳转体测预约管理编辑页面
+     * @param type 1 = 用户管理编辑 2 = 用户管理详情-非会员 3 = 用户管理详情-会员
+     */
+    @RequestMapping("/update/{id}/{type}")
+    public String update(Model model,@PathVariable("id") Integer id,@PathVariable("type") Integer type) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+        BodySideAppointment data = bodySideAppointmentClient.getInfoById(id);
+        if (roleType == 1){
+            List<CityManager> cityManagers = cityManagerClient.listAll();
+            List<CityManager> province = new ArrayList<>();
+            List<CityManager> city = new ArrayList<>();
+            Set<String> seenNames = new HashSet<>();
+            Set<String> c    = new HashSet<>();
+            // 省列表
+            List<CityManager> result = new ArrayList<>();
+            // 市列表
+            List<CityManager> cities = new ArrayList<>();
+            // 对省/市去重
+            for (CityManager cityManager : cityManagers) {
+                if(!seenNames.contains(cityManager.getProvince())){
+                    result.add(cityManager);
+                    seenNames.add(cityManager.getProvince());
+                }
+                if(!c.contains(cityManager.getProvince())){
+                    cities.add(cityManager);
+                    c.add(cityManager.getProvince());
+                }
+            }
+            List<Store> stores = storeClient.getStore(data.getCity());
+            model.addAttribute("stores",stores);
+            model.addAttribute("list",result);
+            model.addAttribute("cities",cities);
+        }else if (roleType == 2){
+            List<Store> stores = storeClient.getStoreByCityManagerId(objectId);
+            model.addAttribute("stores",stores);
+        }
+        String birthday = new SimpleDateFormat("yyyy-MM-dd").format(data.getBirthday());
+        String appointmentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(data.getAppointmentTime());
+        model.addAttribute("birthday",birthday);
+        model.addAttribute("appointmentTime",appointmentTime);
+        model.addAttribute("data",data);
+        model.addAttribute("roleType",roleType);
+        return PREFIX + "TAppUser_edit.html";
+    }
+
+    /**
+     * 获取所有用户信息
+     * @return
+     */
+    @RequestMapping("/listAll")
+    @ResponseBody
+    public List<QueryAppUserVO> listAll(String province, String city,String name,
+                                        String phone,Integer isVip, String salesmanUserName){
+        QueryAppUser queryAppUser = new QueryAppUser();
+        queryAppUser.setProvince(province);
+        queryAppUser.setCity(city);
+        queryAppUser.setName(name);
+        queryAppUser.setPhone(phone);
+        queryAppUser.setIsVip(isVip);
+        queryAppUser.setSalesmanUserName(salesmanUserName);
+        return appUserClient.listAll(queryAppUser);
+    }
+
+    /**
+     * 新增用户信息
+     * @return
+     */
+    @RequestMapping("/addAppUser")
+    @ResponseBody
+    public ResultUtil addAppUser(TAppUser appUser){
+        appUserClient.addAppUser(appUser);
+        return ResultUtil.success("添加成功");
+    }
+    /**
+     *  添加/修改体测预约记录
+     */
+    @ResponseBody
+    @RequestMapping(value = "/addBodySideAppointments")
+    public ResultUtil addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        // 获取当前登录人id
+        Integer cityManagerId = UserExt.getUser().getObjectId();
+        if (roleType == 2){
+            CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId);
+            vo.setProvince(cityManager.getProvince());
+            vo.setProvinceCode(cityManager.getProvinceCode());
+            vo.setCity(cityManager.getCity());
+            vo.setCityCode(cityManager.getCityCode());
+        }else if (roleType == 3){
+            TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(cityManagerId);
+            Store storeById = storeClient.getStoreById(storeByStoreStaffId.getStoreId());
+            vo.setProvince(storeById.getProvince());
+            vo.setProvinceCode(storeById.getProvinceCode());
+            vo.setCity(storeById.getCity());
+            vo.setCityCode(storeById.getCityCode());
+        }
+        bodySideAppointmentClient.addBodySideAppointments(vo);
+        return ResultUtil.success("添加成功");
+    }
+
+    /**
+     *  添加/修改体测预约记录
+     */
+    @ResponseBody
+    @RequestMapping(value = "/getInfoById")
+    public BodySideAppointment getInfoById(@RequestBody Integer id) {
+        return bodySideAppointmentClient.getInfoById(id);
+    }
+
+    /**
+     *  手动标记用户已经到店并完成体测
+     */
+    @ResponseBody
+    @RequestMapping(value = "/changeState")
+    public Object changeState(@RequestBody List<Integer> ids) {
+        return bodySideAppointmentClient.changeState(ids);
+    }
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
index 42238b3..15abeb8 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TBodySideAppointmentsController.java
@@ -2,8 +2,10 @@
 
 
 import com.dsh.course.feignClient.account.CityManagerClient;
+import com.dsh.course.feignClient.account.StoreStaffClient;
 import com.dsh.course.feignClient.account.model.CityManager;
 import com.dsh.course.feignClient.account.model.Coach;
+import com.dsh.course.feignClient.account.model.TStoreStaff;
 import com.dsh.course.feignClient.activity.BodySideAppointmentClient;
 import com.dsh.course.feignClient.activity.model.BodySideAppointment;
 import com.dsh.course.feignClient.activity.model.QueryBodySideAppointment;
@@ -11,6 +13,7 @@
 import com.dsh.course.feignClient.other.StoreClient;
 import com.dsh.guns.config.UserExt;
 import com.dsh.guns.modular.system.model.CoachQuery;
+import com.dsh.guns.modular.system.model.Store;
 import com.dsh.guns.modular.system.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -19,6 +22,7 @@
 
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 体测预约管理控制器
@@ -34,6 +38,8 @@
     private BodySideAppointmentClient bodySideAppointmentClient;
     @Autowired
     private CityManagerClient cityManagerClient;
+    @Autowired
+    private StoreStaffClient storeStaffClient;
     /**
      * 跳转体测预约管理首页
      */
@@ -46,6 +52,7 @@
      */
     @RequestMapping("/add")
     public String add(Model model) {
+        Integer roleType = UserExt.getUser().getObjectType();
         List<CityManager> province = cityManagerClient.listAll();
         Set<String> seenNames = new HashSet<>();
         List<CityManager> result = new ArrayList<>();
@@ -55,14 +62,60 @@
                 seenNames.add(cityManager.getProvince());
             }
         }
+        if (roleType == 2){
+            Integer cityManagerId = UserExt.getUser().getObjectId();
+            CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId);
+            List<Store> stores = storeClient.getStoreByCityManagerId(cityManagerId);
+            model.addAttribute("stores",stores);
+        }
         model.addAttribute("list",result);
+
+        model.addAttribute("roleType",roleType);
         return PREFIX + "TBodySideAppointment_add.html";
     }
     /**
      * 跳转体测预约管理编辑页面
      */
-    @RequestMapping("/update")
-    public String update(Model model) {
+    @RequestMapping("/update/{id}")
+    public String update(Model model,@PathVariable("id") Integer id) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+        BodySideAppointment data = bodySideAppointmentClient.getInfoById(id);
+        if (roleType == 1){
+            List<CityManager> cityManagers = cityManagerClient.listAll();
+            List<CityManager> province = new ArrayList<>();
+            List<CityManager> city = new ArrayList<>();
+            Set<String> seenNames = new HashSet<>();
+            Set<String> c    = new HashSet<>();
+            // 省列表
+            List<CityManager> result = new ArrayList<>();
+            // 市列表
+            List<CityManager> cities = new ArrayList<>();
+            // 对省/市去重
+            for (CityManager cityManager : cityManagers) {
+                if(!seenNames.contains(cityManager.getProvince())){
+                    result.add(cityManager);
+                    seenNames.add(cityManager.getProvince());
+                }
+                if(!c.contains(cityManager.getProvince())){
+                    cities.add(cityManager);
+                    c.add(cityManager.getProvince());
+                }
+            }
+            List<Store> stores = storeClient.getStore(data.getCity());
+            model.addAttribute("stores",stores);
+            model.addAttribute("list",result);
+            model.addAttribute("cities",cities);
+        }else if (roleType == 2){
+            List<Store> stores = storeClient.getStoreByCityManagerId(objectId);
+            model.addAttribute("stores",stores);
+        }
+        String birthday = new SimpleDateFormat("yyyy-MM-dd").format(data.getBirthday());
+        String appointmentTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(data.getAppointmentTime());
+        model.addAttribute("birthday",birthday);
+        model.addAttribute("appointmentTime",appointmentTime);
+        model.addAttribute("data",data);
+        model.addAttribute("roleType",roleType);
         return PREFIX + "TBodySideAppointment_edit.html";
     }
 
@@ -72,15 +125,30 @@
      */
     @RequestMapping("/listAll")
     @ResponseBody
-    public List<QueryBodySideAppointmentVO> listAll(String phone,String parentName,Integer state){
+    public List<QueryBodySideAppointmentVO> listAll(String phone,String parentName,Integer state,Integer day){
         QueryBodySideAppointment vo = new QueryBodySideAppointment();
         vo.setParentName(parentName);
         vo.setPhone(phone);
         vo.setState(state);
+        vo.setDay(day);
+        Integer roleType = UserExt.getUser().getObjectType();
+        Integer objectId = UserExt.getUser().getObjectId();
+        if (roleType == 2){
+            // 获取门店集合
+            List<Integer> collect = storeClient.getStoreByCityManagerId(objectId)
+                    .stream().map(Store::getId).collect(Collectors.toList());
+            vo.setIds(collect);
+        }else if(roleType == 3){
+            List<Integer> list = new ArrayList<>();
+            TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(objectId);
+            list.add(storeByStoreStaffId.getStoreId());
+            vo.setIds(list);
+        }
         List<QueryBodySideAppointmentVO> queryBodySideAppointmentVOS = bodySideAppointmentClient.listAll(vo);
         for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
             queryBodySideAppointmentVO.setProvinceAndCity(queryBodySideAppointmentVO.getProvince()+queryBodySideAppointmentVO.getCity());
         }
+
         return queryBodySideAppointmentVOS;
     }
 
@@ -90,6 +158,23 @@
     @ResponseBody
     @RequestMapping(value = "/addBodySideAppointments")
     public ResultUtil addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo) {
+        Integer roleType = UserExt.getUser().getObjectType();
+        // 获取当前登录人id
+        Integer cityManagerId = UserExt.getUser().getObjectId();
+        if (roleType == 2){
+            CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId);
+            vo.setProvince(cityManager.getProvince());
+            vo.setProvinceCode(cityManager.getProvinceCode());
+            vo.setCity(cityManager.getCity());
+            vo.setCityCode(cityManager.getCityCode());
+        }else if (roleType == 3){
+            TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(cityManagerId);
+            Store storeById = storeClient.getStoreById(storeByStoreStaffId.getStoreId());
+            vo.setProvince(storeById.getProvince());
+            vo.setProvinceCode(storeById.getProvinceCode());
+            vo.setCity(storeById.getCity());
+            vo.setCityCode(storeById.getCityCode());
+        }
         bodySideAppointmentClient.addBodySideAppointments(vo);
         return ResultUtil.success("添加成功");
     }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
index 9d33d8f..a7ea97d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java
@@ -11,8 +11,6 @@
 import com.dsh.course.feignClient.account.model.TCityManager;
 import com.dsh.course.feignClient.competition.CompetitionClient;
 import com.dsh.course.feignClient.competition.model.*;
-import com.dsh.course.feignClient.course.CourseClient;
-import com.dsh.course.feignClient.course.model.TCoursePackage;
 import com.dsh.course.mapper.UserMapper;
 import com.dsh.guns.core.base.controller.BaseController;
 import com.dsh.guns.core.base.tips.SuccessTip;
@@ -34,7 +32,6 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -62,9 +59,6 @@
 
     @Resource
     private UserMapper userMapper;
-
-    @Autowired
-    private CourseClient courseClient;
 
 
     /**
@@ -183,38 +177,6 @@
             TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getId, oneId));
             QueryWrapper<TCity> query = new QueryWrapper<TCity>().eq("parent_id", one.getId());
             return cityService.list(query);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-    @RequestMapping(value = "/storeChange")
-    @ResponseBody
-    public Object storeChange(Integer oneId) {
-        try {
-            return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-    @RequestMapping(value = "/packageChange")
-    @ResponseBody
-    public Object packageChange(Integer oneId) {
-        try {
-            List<TCoursePackage> list = courseClient.queryByTypeId(oneId);
-            return list;
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-    @RequestMapping(value = "/timeChange")
-    @ResponseBody
-    public Object timeChange(Integer oneId) {
-        try {
-            List<Map<String,Object>> list = courseClient.queryByConfigId(oneId);
-            return list;
         }catch (Exception e){
             e.printStackTrace();
             return ERROR;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java
deleted file mode 100644
index b8d1c5d..0000000
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TDiscountController.java
+++ /dev/null
@@ -1,382 +0,0 @@
-package com.dsh.guns.modular.system.controller.code;
-
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dsh.course.feignClient.competition.CompetitionClient;
-import com.dsh.course.feignClient.competition.model.Competition;
-import com.dsh.course.feignClient.competition.model.CompetitionUser;
-import com.dsh.course.feignClient.competition.model.GetPeopleQuery;
-import com.dsh.course.feignClient.competition.model.ListQuery;
-import com.dsh.course.feignClient.course.CourseClient;
-import com.dsh.course.feignClient.course.CoursePackageDiscountClient;
-import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient;
-import com.dsh.course.feignClient.course.CoursePackageTypeClient;
-import com.dsh.course.feignClient.course.model.*;
-import com.dsh.guns.core.base.controller.BaseController;
-import com.dsh.guns.core.base.tips.ErrorTip;
-import com.dsh.guns.core.base.tips.SuccessTip;
-import com.dsh.guns.core.common.constant.factory.PageFactory;
-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.ICoursePackageService;
-import com.dsh.guns.modular.system.service.IStoreService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
-
-/**
- * 车辆管理控制器
- *
- * @author fengshuonan
- * @Date 2020-06-05 17:25:12
- */
-@Controller
-@RequestMapping("/tDiscount")
-public class TDiscountController extends BaseController {
-
-    private String PREFIX = "/system/tDiscount/";
-    private String PREFIX1 = "/system/tDiscountAudit/";
-
-    @Autowired
-    private CompetitionClient competitionClient;
-
-    @Autowired
-    private IStoreService storeService;
-
-    @Autowired
-    private ICityService cityService;
-
-    @Autowired
-    private CourseClient courseClient;
-
-
-
-
-    /**
-     * 跳转到车辆管理首页
-     */
-    @RequestMapping("")
-    public String index(Model model) {
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("list",list);
-        return PREFIX + "TDiscount.html";
-    }
-    @RequestMapping("/audit")
-    public String indexAudit(Model model) {
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("list",list);
-        return PREFIX1 + "TDiscount.html";
-    }
-
-    /**
-     * 跳转到添加车辆管理
-     */
-    @RequestMapping("/tCompetition_add")
-    public String tCompetitionAdd(Model model) {
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("list",list);
-        return PREFIX + "TCompetition_add.html";
-    }
-
-
-    /**
-     * 跳转到修改车辆管理
-     */
-    @RequestMapping("/tCompetition_update/{id}")
-    public String tCarUpdate(@PathVariable Integer id, Model model) {
-        Competition competition = competitionClient.queryById(id);
-        model.addAttribute("item",competition);
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode()));
-        List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
-
-        List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode()));
-        model.addAttribute("list",list);
-        model.addAttribute("list1",list1);
-        model.addAttribute("list2",list2);
-        model.addAttribute("type",1);
-        return PREFIX + "TCompetition_edit.html";
-    }
-    @RequestMapping("/tCompetition_info/{id}")
-    public String tCarInfo(@PathVariable Integer id, Model model) {
-        Competition competition = competitionClient.queryById(id);
-        model.addAttribute("item",competition);
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode()));
-        List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
-
-        List<TStore> list2 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode,competition.getCityCode()));
-        model.addAttribute("list",list);
-        model.addAttribute("list1",list1);
-        model.addAttribute("list2",list2);
-        model.addAttribute("type",2);
-
-        return PREFIX + "TCompetition_edit.html";
-    }
-    @RequestMapping("/tCompetition_user/{id}")
-    public String tCarUser(@PathVariable Integer id, Model model) {
-        model.addAttribute("id",id);
-        return PREFIX + "TCompetitionUser.html";
-    }
-
-    @Autowired
-    private ICoursePackageService coursePackageService;
-
-    @Resource
-    private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient;
-
-    @Resource
-    private CoursePackageDiscountClient coursePackageDiscountClient;
-    @RequestMapping("/info")
-    public String info( Integer id, Model model) {
-        TCoursePackage tCoursePackage1 = courseClient.queryByDiscountId(id);
-        TCoursePackage tCoursePackage = coursePackageService.queryById(tCoursePackage1.getId());
-        model.addAttribute("item", tCoursePackage);
-        List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id);
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (CoursePackagePaymentConfig coursePackagePaymentConfig : list4) {
-            if(coursePackagePaymentConfig.getCashPayment() == 0){
-                continue;
-            }
-            Map<String, Object> map = new HashMap<>();
-            map.put("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId());
-            map.put("classHours", coursePackagePaymentConfig.getClassHours());
-            String payment = "";
-            if(coursePackagePaymentConfig.getCashPayment() > 0){
-                payment += "现金支付";
-            }
-            if(coursePackagePaymentConfig.getPlayPaiCoin() > 0){
-                payment += (ToolUtil.isNotEmpty(payment) ? "、" : "") + "玩湃币支付";
-            }
-            map.put("payment",  payment);
-            map.put("cashPayment", coursePackagePaymentConfig.getCashPayment());
-            List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryCoursePackageDiscount(coursePackagePaymentConfig.getId());
-            map.put("coursePackageDiscount", tCoursePackageDiscounts);
-            list.add(map);
-        }
-        model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list));
-        return PREFIX + "coursePackageDiscount.html";
-    }
-    @RequestMapping("/infoOne")
-    public String infoOne( Integer id, Model model) {
-        Integer state = courseClient.queryDiscountById(id);
-        if(state==1){
-            model.addAttribute("stateStr","待审核");
-            model.addAttribute("state",1);
-        }else {
-            model.addAttribute("stateStr","未通过");
-            model.addAttribute("state",3);
-        }
-
-        TCoursePackage tCoursePackage1 = courseClient.queryByDiscountId(id);
-        TCoursePackage tCoursePackage = coursePackageService.queryById(tCoursePackage1.getId());
-        model.addAttribute("item", tCoursePackage);
-        List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id);
-        List<Map<String, Object>> list = new ArrayList<>();
-        for (CoursePackagePaymentConfig coursePackagePaymentConfig : list4) {
-            if(coursePackagePaymentConfig.getCashPayment() == 0){
-                continue;
-            }
-            Map<String, Object> map = new HashMap<>();
-            map.put("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId());
-            map.put("classHours", coursePackagePaymentConfig.getClassHours());
-            String payment = "";
-            if(coursePackagePaymentConfig.getCashPayment() > 0){
-                payment += "现金支付";
-            }
-            if(coursePackagePaymentConfig.getPlayPaiCoin() > 0){
-                payment += (ToolUtil.isNotEmpty(payment) ? "、" : "") + "玩湃币支付";
-            }
-            map.put("payment",  payment);
-            map.put("cashPayment", coursePackagePaymentConfig.getCashPayment());
-            List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryCoursePackageDiscountOne(coursePackagePaymentConfig.getId());
-            map.put("coursePackageDiscount", tCoursePackageDiscounts);
-            list.add(map);
-        }
-        model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list));
-        return PREFIX1 + "coursePackageDiscount.html";
-    }
-
-
-    @RequestMapping(value = "/list")
-    @ResponseBody
-    public Object list(String provinceCode, String cityCode, String shopName, String name, Integer type) {
-        LambdaQueryWrapper<TStore> wrapper = new LambdaQueryWrapper<>();
-        if(ToolUtil.isNotEmpty(shopName)){
-            wrapper.like(TStore::getName, shopName);
-        }
-        List<TStore> list = storeService.list(wrapper);
-        Page<DiscountList> page = new PageFactory<DiscountList>().defaultPage();
-        List<DiscountList> discountLists = courseClient.queryDiscountList(new QueryDiscountList(page.getCurrent(),page.getSize(),provinceCode,cityCode,name,type,list.stream().map(TStore::getId).collect(Collectors.toList())));
-        for (DiscountList discountList : discountLists) {
-            for (TStore tStore : list) {
-                if(discountList.getStoreId().equals(tStore.getId())){
-                    discountList.setShopName(tStore.getName());
-                }
-            }
-        }
-        page.setRecords(discountLists);
-        return  super.packForBT(page);
-    }
-    @RequestMapping(value = "/listAudit")
-    @ResponseBody
-    public Object listAudit(String provinceCode, String cityCode, String shopName, String name, Integer type) {
-        LambdaQueryWrapper<TStore> wrapper = new LambdaQueryWrapper<>();
-        if(ToolUtil.isNotEmpty(shopName)){
-            wrapper.like(TStore::getName, shopName);
-        }
-        List<TStore> list = storeService.list(wrapper);
-        Page<DiscountList> page = new PageFactory<DiscountList>().defaultPage();
-        List<DiscountList> discountLists = courseClient.queryDiscountListAudit(new QueryDiscountList(page.getCurrent(),page.getSize(),provinceCode,cityCode,name,type,list.stream().map(TStore::getId).collect(Collectors.toList())));
-        for (DiscountList discountList : discountLists) {
-            for (TStore tStore : list) {
-                if(discountList.getStoreId().equals(tStore.getId())){
-                    discountList.setShopName(tStore.getName());
-                }
-            }
-        }
-        page.setRecords(discountLists);
-        return  super.packForBT(page);
-    }
-
-
-    @RequestMapping(value = "/updateState")
-    @ResponseBody
-    public Object updateState( Integer id,Integer status) {
-        try {
-            Boolean b = courseClient.updateState(new DiscountUpdateState(id,status));
-            if(b){
-                return new SuccessTip<>();
-            }
-            return  new ErrorTip(500,"");
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-    @RequestMapping(value = "/auditDiscount")
-    @ResponseBody
-    public Object auditDiscount(Integer id,Integer audit,String text) {
-        try {
-            Boolean b = courseClient.auditDiscount(new AuditDiscount(id,audit,text));
-            if(b){
-                return new SuccessTip<>();
-            }
-            return  new ErrorTip(500,"");
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-
-    @RequestMapping(value = "/add")
-    @ResponseBody
-    public Object list(Competition competition) {
-        try {
-            if(ToolUtil.isNotEmpty(competition.getProvinceCode())) {
-                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode()));
-                competition.setProvince(one.getName());
-                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getCityCode()));
-                competition.setCity(one1.getName());
-            }
-            competition.setAuditStatus(1);
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            competition.setStartTime(format.parse(competition.getSTime()));
-            competition.setEndTime(format.parse(competition.getETime()));
-            competition.setRegisterEndTime(format.parse(competition.getREndTime()));
-            competitionClient.add(competition);
-            return new SuccessTip<>();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-    @RequestMapping(value = "/update")
-    @ResponseBody
-    public Object update(Competition competition) {
-        try {
-            Competition competition1 = competitionClient.queryById(competition.getId());
-            if(ToolUtil.isNotEmpty(competition.getProvinceCode())) {
-                TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getProvinceCode()));
-                competition.setProvince(one.getName());
-                TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, competition.getCityCode()));
-                competition.setCity(one1.getName());
-            }
-            if(ToolUtil.isEmpty(competition.getCoverDrawing())){
-                competition.setCoverDrawing(competition1.getCoverDrawing());
-            }
-            if(ToolUtil.isEmpty(competition.getRegistrationNotes())){
-                competition.setRegistrationNotes(competition1.getRegistrationNotes());
-            }
-            competitionClient.update(competition);
-            return new SuccessTip<>();
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-
-    @RequestMapping(value = "/cancel")
-    public Object cancel(Integer id) {
-        try {
-            competitionClient.cancel(id);
-            return SUCCESS_TIP;
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-    @RequestMapping(value = "/getPeopleFromId")
-    public Object getPeopleFromId(Integer id,Integer state) {
-        try {
-            Page<Object> page = new PageFactory<>().defaultPage();
-            Page<CompetitionUser> data =   competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state));
-            return  super.packForBT(data);
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-    @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;
-        }
-    }
-    @RequestMapping(value = "/oneChangeNext")
-    @ResponseBody
-    public Object oneChangeNext(Integer oneId) {
-        try {
-            return storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getCityCode, oneId));
-        }catch (Exception e){
-            e.printStackTrace();
-            return ERROR;
-        }
-    }
-
-
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
index 4bde281..58c86e5 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java
@@ -13,14 +13,15 @@
 import com.dsh.course.feignClient.activity.CouponClient;
 import com.dsh.course.feignClient.activity.PointMercharsClient;
 import com.dsh.course.feignClient.activity.model.*;
-import com.dsh.course.feignClient.course.CourseClient;
 import com.dsh.guns.config.UserExt;
-import com.dsh.guns.core.base.controller.BaseController;
 import com.dsh.guns.core.base.tips.ErrorTip;
 import com.dsh.guns.core.base.tips.SuccessTip;
 import com.dsh.guns.core.common.constant.factory.PageFactory;
 import com.dsh.guns.core.util.ToolUtil;
-import com.dsh.guns.modular.system.model.*;
+import com.dsh.guns.modular.system.model.CouponDataVo;
+import com.dsh.guns.modular.system.model.Region;
+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.IRegionService;
 import com.dsh.guns.modular.system.service.IStoreService;
@@ -33,10 +34,11 @@
 
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.math.BigDecimal;
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -46,7 +48,7 @@
 
 @Controller
 @RequestMapping("/tGoods")
-public class TGoodsController extends BaseController {
+public class TGoodsController {
 
 
 
@@ -69,9 +71,6 @@
     private AppUserClient appUserClient;
     @Autowired
     private ICityService cityService;
-
-    @Autowired
-    private CourseClient courseClient;
 
     @Resource
     private PointMercharsClient pointMercharsClient;
@@ -97,74 +96,7 @@
         model.addAttribute("userType",objectType);
         List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
         model.addAttribute("list",list);
-        List<Map<String,Object>> listOne =  courseClient.getPageageType();
-        model.addAttribute("courseType",listOne);
-
-
         return PREFIX + "TGoods_add.html";
-    }
-
-    /**
-     * 跳转到添加
-     */
-    @RequestMapping("/tGoods_info")
-    public String tGoodsInfo(Model model) {
-        Integer objectType = UserExt.getUser().getObjectType();
-        System.out.println(objectType);
-        model.addAttribute("userType",objectType);
-        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
-        model.addAttribute("list",list);
-        return PREFIX + "TGoods_detail_one.html";
-    }
-
-    @RequestMapping("/goods_info/{id}")
-    public String memberCouponInfo(@PathVariable Integer id, Model model) {
-        PointsMerchandise pointMercharsVo = pointMercharsClient.queryPointMerchaseById(id);
-        model.addAttribute("item",pointMercharsVo);
-        if(pointMercharsVo.getType()==2){
-            Date startTime = pointMercharsVo.getStartTime();
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-            model.addAttribute("sTime",format.format(startTime));
-            model.addAttribute("eTime",format.format(pointMercharsVo.getEndTime()));
-            Integer shopId = pointMercharsClient.getshopName(id);
-            TStore byId = storeService.getById(shopId);
-            model.addAttribute("shopName",byId.getName());
-            Integer coursePackageId = pointMercharsVo.getCoursePackageId();
-            List<String> name = courseClient.queryPackageById(coursePackageId);
-            Integer coursePackageId1 = pointMercharsVo.getCoursePackageId();
-            String classHours = courseClient.getHours(coursePackageId1);
-            model.addAttribute("typeName",name.get(0));
-            model.addAttribute("pageName",name.get(1));
-            model.addAttribute("classHours",classHours);
-            String productImages = pointMercharsVo.getProductImages();
-            ArrayList<String> strings = new ArrayList<>();
-            for (String s : productImages.split(",")) {
-                strings.add(s);
-            }
-            model.addAttribute("pictures",strings);
-            return PREFIX + "TGoods_detail_two.html";
-        }else {
-            GoodsInfoOneVo infoOneVo = pointMercharsClient.queryDetailsOfGoods(id);
-            System.out.println("pointMercharsVo:"+infoOneVo);
-            model.addAttribute("item",infoOneVo);
-            String[] split = infoOneVo.getPics().split(",");
-            List<String> list = Arrays.asList(split);
-            if (infoOneVo.getUseScope() == 2){
-                List<StoreVos> provinces = pointMercharsClient.getProvinces(id);
-                model.addAttribute("city",provinces);
-            }
-            if (infoOneVo.getUseScope() == 2){
-                List<StoreVos> storeVos = pointMercharsClient.getStoreList(id);
-                model.addAttribute("store",storeVos);
-            }
-            model.addAttribute("pictures",list);
-            model.addAttribute("exchangeMethod",infoOneVo.getExchangeMethod());
-            return PREFIX + "TGoods_detail_one.html";
-        }
-
-
-
-
     }
 
 
@@ -371,130 +303,15 @@
         client.insertIntoData(dataVo);
         return new SuccessTip<>();
     }
-
-    /**
-     *  编辑 商品详情
-     * @param pointMerchandiseId 商品Id
-     * @param quantityIssued 发放数量
-     * @param pickUpQuantity 限领数量
-     * @param redemptionInstructions 说明
-     * @param cover 封面图
-     * @param productImages 商品图片
-     * @param sort 排序
-     * @return
-     */
     @PostMapping(value = "/update")
     @ResponseBody
-    public Object update( Integer pointMerchandiseId,Integer quantityIssued,Integer pickUpQuantity,String redemptionInstructions,String cover,String productImages,Integer sort){
-        Map<String, Object> stringObjectHashMap = new HashMap<>();
-        stringObjectHashMap.put("pointMerchandiseId",pointMerchandiseId);
-        stringObjectHashMap.put("quantityIssued",quantityIssued);
-        stringObjectHashMap.put("pickUpQuantity",pickUpQuantity);
-        stringObjectHashMap.put("redemptionInstructions",redemptionInstructions);
-        stringObjectHashMap.put("cover",cover);
-        stringObjectHashMap.put("productImages",productImages);
-        stringObjectHashMap.put("sort",sort);
-        System.out.println(stringObjectHashMap);
-        pointMercharsClient.updateGoodsDetail(stringObjectHashMap);
+    public Object update( Integer id,Integer num,Integer num1,String text){
+        Coupon coupon = client.queryCouponById(id);
+        coupon.setQuantityIssued(num);
+        coupon.setPickUpQuantity(num1);
+        coupon.setIllustrate(text);
+        client.updateCouponData(coupon);
         return new SuccessTip<>();
-    }
-    /*
-    ajax.set("typeAll",typeAll);
-        ajax.set("provinceCode",pCode);
-        ajax.set("cityCode",cCode);
-        ajax.set("storeId",storeId);
-        ajax.set("coursePackageTypeId",coursePackageTypeId);
-        ajax.set("coursePackageId",coursePackageId);
-        ajax.set("coursePackageConfigId",coursePackageConfigId);
-        ajax.set("price",price);
-        ajax.set("type",type);
-        ajax.set("integral",integral);
-        ajax.set("cash",cash);
-        ajax.set("cover",cover1);
-        ajax.set("imgOne",imgOne);
-        ajax.set("userPopulation",userPopulation);
-        ajax.set("quantityIssued",quantityIssued);
-        ajax.set("pickUpQuantity",pickUpQuantity);
-        ajax.set("startTime",startTime);
-        ajax.set("text",text);
-        ajax.set("sort",sort);
-        ajax.set("useScope",company);
-        ajax.set("cityIds",cts);
-        ajax.set("storeIds",stores);
-     */
-    @PostMapping(value = "/add")
-    @ResponseBody
-    public Object add( Integer typeAll,String provinceCode,String cityCode,Integer storeId,Integer coursePackageTypeId,Integer coursePackageId,Integer coursePackageConfigId,
-                       Double price,Integer type,Integer integral,Double cash,String cover,String imgOne,Integer userPopulation,Integer quantityIssued,Integer pickUpQuantity,
-                       String startTime,String text,Integer sort,String name,Integer useScope,String cityIds,String storeIds
-                       ) throws ParseException {
-        PointsMerchandise pointsMerchandise = new PointsMerchandise();
-        pointsMerchandise.setType(typeAll);
-        pointsMerchandise.setName(name);
-        pointsMerchandise.setCoursePackageId(coursePackageId);
-        pointsMerchandise.setPrice(new BigDecimal(price));
-        pointsMerchandise.setRedemptionMethod(type);
-        if(type==2 || type==3){
-            pointsMerchandise.setCash(new BigDecimal(cash));
-        }
-        if(type==1 || type==2){
-            pointsMerchandise.setIntegral(integral);
-        }
-        pointsMerchandise.setCover(cover);
-        pointsMerchandise.setProductImages(imgOne);
-        pointsMerchandise.setUserPopulation(userPopulation);
-        pointsMerchandise.setQuantityIssued(quantityIssued);
-        pointsMerchandise.setPickUpQuantity(pickUpQuantity);
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        pointsMerchandise.setStartTime(format.parse(startTime.split(" - ")[0]));
-        pointsMerchandise.setEndTime(format.parse(startTime.split(" - ")[1]));
-        pointsMerchandise.setUseScope(useScope);
-        if(ToolUtil.isNotEmpty(provinceCode)){
-            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, provinceCode));
-            pointsMerchandise.setProvinceCode(provinceCode);
-            pointsMerchandise.setProvince(one.getName());
-        }
-        if(ToolUtil.isNotEmpty(cityCode)){
-            TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, cityCode));
-            pointsMerchandise.setCityCode(cityCode);
-            pointsMerchandise.setCity(one.getName());
-        }
-        pointsMerchandise.setRedemptionInstructions(text);
-        pointsMerchandise.setSort(sort);
-        pointsMerchandise.setState(1);
-        pointsMerchandise.setInsertTime(new Date());
-        pointsMerchandise.setCoursePackageConfigId(coursePackageConfigId);
-        // 代替storeId
-        pointsMerchandise.setShelves(storeId);
-        Integer id = pointMercharsClient.add(pointsMerchandise);
-        if(typeAll!=2){
-            if(useScope==2){
-                ArrayList<Map<String,String>> objects = new ArrayList<>();
-                for (String s : cityIds.split(",")) {
-                    TCity tCity = cityService.getById(Integer.valueOf(s));
-                    HashMap<String, String> map = new HashMap<>();
-                    TCity pCity = cityService.getById(tCity.getParentId());
-                    map.put("pName",pCity.getName());
-                    map.put("pCode",pCity.getCode());
-                    map.put("cName",tCity.getName());
-                    map.put("cCode",tCity.getCode());
-                    map.put("id",id.toString());
-                    objects.add(map);
-                }
-                pointMercharsClient.addCitys(objects);
-            }else if(useScope==3){
-                String pam = id+"_"+storeIds;
-                // 添加多个城市 门店
-                try{
-                    pointMercharsClient.addOther(pam);
-
-                }catch (Exception e){
-                    e.printStackTrace();
-                }
-            }
-        }
-        return new SuccessTip<>();
-
     }
 
 
@@ -521,7 +338,7 @@
 
 
     /**
-     * 跳转到修改商品详情
+     * 跳转到修改车辆管理
      */
     @RequestMapping("/tGoods_update/{id}")
     public String tCityUpdate(@PathVariable Integer id, Model model) {
@@ -529,11 +346,8 @@
         PointMercharsVo pointMercharsVo = pointMercharsClient.queryPointMerchaseDetailOfId(id);
         System.out.println("pointMercharsVo:"+pointMercharsVo);
         String[] split = pointMercharsVo.getPics().split(",");
-        List<String> list = Arrays.asList(split);
-        model.addAttribute("id",id);
         model.addAttribute("item",pointMercharsVo);
-        model.addAttribute("pictures",list);
-        System.out.println(list);
+        model.addAttribute("pictures",split);
         return PREFIX + "TGoods_edit.html";
     }
 
@@ -620,23 +434,11 @@
      */
     @RequestMapping("/write_off")
     @ResponseBody
-    public Object GoodsWriteOff(String id){
-        Integer objectType = UserExt.getUser().getObjectType();
-        Map<String, Object> stringObjectHashMap = new HashMap<>();
-        stringObjectHashMap.put("goodsId",id);
-        stringObjectHashMap.put("managerId",objectType);
-        boolean b = pointMercharsClient.writeOffGoodsStatus(stringObjectHashMap);
-        System.out.println(b);
-        if (b){
-            return new SuccessTip<>();
-        }else {
-            return ERROR;
-        }
-
+    public Object GoodsWriteOff(Integer id){
+        System.out.println(id);
+        // TODO: 2023/8/15 核销操作
+        return new SuccessTip<>();
     }
-
-
-
 
 
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
new file mode 100644
index 0000000..3218661
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TStoredValueConfigController.java
@@ -0,0 +1,64 @@
+package com.dsh.guns.modular.system.controller.code;
+
+
+
+import com.dsh.course.feignClient.account.model.CityManager;
+import com.dsh.course.feignClient.account.model.TStoreStaff;
+import com.dsh.course.feignClient.activity.model.QueryBodySideAppointmentVO;
+import com.dsh.course.feignClient.other.StoreValueConfigClient;
+import com.dsh.guns.config.UserExt;
+import com.dsh.guns.modular.system.model.Store;
+import com.dsh.guns.modular.system.model.StoredValueConfig;
+import com.dsh.guns.modular.system.util.ResultUtil;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 储值规则配置控制器
+ */
+
+@Controller
+@RequestMapping("/storeValueConfig")
+public class TStoredValueConfigController {
+
+    private String PREFIX = "/system/storeValueConfig/";
+    @Autowired
+    private StoreValueConfigClient storeValueConfigClient;
+    /**
+     * 跳转储值管理页面
+     */
+    @RequestMapping("")
+    public String index(Model model) {
+        StoredValueConfig storeValueConfig = storeValueConfigClient.getStoreValueConfig();
+
+        model.addAttribute("description",storeValueConfig.getDescription());
+        // 解析json串 获取时间
+        JSONObject jsonObject = new JSONObject(storeValueConfig.getContent());
+        JSONArray timeRulesArray = jsonObject.getJSONArray("time_rules");
+        model.addAttribute("content",jsonObject);
+        if (timeRulesArray.length() > 0) {
+            JSONObject timeRule = timeRulesArray.getJSONObject(0);
+            String startTime = timeRule.getString("startTime");
+            String endTime = timeRule.getString("endTime");
+            model.addAttribute("time",startTime+" - " + endTime);
+            System.out.println("StartTime: " + startTime);
+            System.out.println("EndTime: " + endTime);
+        }
+        return PREFIX + "StoreValueConfig.html";
+    }
+    /**
+     *  添加储值规则
+     */
+    @ResponseBody
+    @RequestMapping(value = "/addStoreValueConfig")
+    public ResultUtil addStoreValueConfig(@RequestBody StoredValueConfig storedValueConfig) {
+        storeValueConfigClient.addStoreValueConfig(storedValueConfig);
+        return  ResultUtil.success();
+    }
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
index 4ff330d..2883638 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java
@@ -189,12 +189,13 @@
             }
         }
         User user = userService.getByAccount(username);
-        password = AESUtils.decrypt(password);
-        String s = MD5.md5(password);
-        if(!user.getPassword().equals(s)){
-            model.addAttribute("tips", "账号密码错误");
-            return "/login.html";
-        }
+        // todo 记得该回去!!!!!!!!!!
+//        password = AESUtils.decrypt(password);
+//        String s = MD5.md5(password);
+//        if(!user.getPassword().equals(s)){
+//            model.addAttribute("tips", "账号密码错误");
+//            return "/login.html";
+//        }
 
 
         GetTokenRequest tokenRequest = new GetTokenRequest();
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java
deleted file mode 100644
index dfc1294..0000000
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/GoodsInfoOneVo.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package com.dsh.guns.modular.system.model;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class GoodsInfoOneVo {
-
-
-    String name;
-    /**
-     * 封面图
-     */
-    String cover;
-    /**
-     * 原价
-     */
-    BigDecimal price;
-    /**
-     * 兑换方式(1=积分,2=现金+积分, 3=现金)
-     */
-    Integer exchangeMethod;
-    /**
-     * 现金
-     */
-    BigDecimal cash;
-    /**
-     * 积分
-     */
-    Integer integral;
-    /**
-     * 图片
-     */
-    String pics;
-    /**
-     * 用户人群
-     */
-    String userPopulation;
-    /**
-     * 发放数量
-     */
-    Integer quantityIssued;
-    /**
-     * 已领数量
-     */
-    Integer hasPicked;
-    /**
-     * 限领数量
-     */
-    Integer pickUpQuantity;
-    /**
-     * 有效期
-     */
-    String validTime;
-    /**
-     * 兑换点
-     */
-    String exchangeArea;
-    /**
-     * 兑换地点 (1=全国,2=指定城市,3=指定门店)
-     */
-    Integer useScope;
-    /**
-     * 商品说明
-     */
-    String redemptionInstructions;
-    /**
-     * 排序
-     */
-    Integer sort;
-
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java
deleted file mode 100644
index 1ce4dc4..0000000
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreVos.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.dsh.guns.modular.system.model;
-
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-
-@Data
-@AllArgsConstructor
-@NoArgsConstructor
-public class StoreVos {
-
-    String num1;
-
-    String num2;
-
-    String num3;
-}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoredValueConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoredValueConfig.java
new file mode 100644
index 0000000..9ea0ba7
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoredValueConfig.java
@@ -0,0 +1,93 @@
+package com.dsh.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 储值规则配置
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_stored_value_config")
+public class StoredValueConfig extends Model<StoredValueConfig> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 规则配置JSON
+{
+	"rules": [{
+		"money": "100.0",
+		"usersCoins": "100.0",
+		"MemberCoins": "100.0",
+		"startTime": "",
+		"endTime": ""
+	}, {
+		"money": "200.0",
+		"usersCoins": "200.0",
+		"MemberCoins": "200.0",
+		"startTime": "",
+		"endTime": ""
+	}],
+	"time_rules": [{
+		"sameTime": [{
+			"money": "100.0",
+			"usersCoins": "100.0",
+			"MemberCoins": "200.0",
+			"startTime": "2023-06-01",
+			"endTime": "2023-06-15"
+		}, {
+			"money": "200.0",
+			"usersCoins": "200.0",
+			"MemberCoins": "400.0",
+			"startTime": "2023-06-01",
+			"endTime": "2023-06-15"
+		}]
+	}, {
+		"sameTime": [{
+			"money": "100.0",
+			"usersCoins": "100.0",
+			"MemberCoins": "300.0",
+			"startTime": "2023-07-01",
+			"endTime": "2023-07-15"
+		}, {
+			"money": "200.0",
+			"usersCoins": "200.0",
+			"MemberCoins": "600.0",
+			"startTime": "2023-07-01",
+			"endTime": "2023-07-15"
+		}]
+	}]
+}
+     */
+    private String content;
+    /**
+     * 储值说明
+     */
+    private String description;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser.html
new file mode 100644
index 0000000..b8550a3
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser.html
@@ -0,0 +1,111 @@
+@layout("/common/_container.html"){
+<style>
+    .data-item {
+        position: relative;
+        border: 1px solid #ccc;
+        padding: 10px;
+        margin-bottom: 10px;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        max-width: 200px;
+        margin-right: 10px;
+    }
+
+    .delete-button {
+        position: absolute;
+        top: -10px;
+        right: -10px;
+        cursor: pointer;
+        color: black;
+        width: 20px;
+        height: 20px;
+        text-align: center;
+        line-height: 20px;
+        border-radius: 50%;
+    }
+</style>
+<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">
+                            @if(roleType==1){
+                            <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="pCode" onchange="TQuestion.oneChange(1)">
+                                        <option value="">全部</option>
+                                        @for(obj in list){
+                                        <option value="${obj}">${obj}</option>
+                                        @}
+                                    </select>
+                                </div>
+                            </div>
+                            @}
+                            @if(roleType==1){
+                            <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">
+                                        <option value="">请先选择省</option>
+                                    </select>
+                                </div>
+                            </div>
+                            @}
+
+                            <div class="col-sm-3">
+                                <#NameCon id="name" name="姓名" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="phone" name="联系电话" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#SelectCon id="isVip" name="年度会员" >
+                                <option value="">全部</option>
+                                <option value="1">是</option>
+                                <option value="2">否</option>
+                            </#SelectCon>
+                        </div>
+                        <div class="col-sm-3">
+                            <#NameCon id="salesmanUserName" name="销售人员" />
+                        </div>
+
+        <div class="col-sm-3">
+            <#button name="搜索" icon="fa-search" clickFun="TQuestion.search()"/>
+            <#button name="重置" icon="fa-trash" clickFun="TQuestion.resetSearch()"/>
+        </div>
+                        </div>
+
+                        <div style="margin-top: 10px" class="hidden-xs" id="TCouponTableToolbar" role="group">
+                            <#button name="添加" icon="fa-plus" clickFun="TQuestion.openAdd()"/>
+                            <#button name="编辑" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+                            <#button name="查看详情" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+                            <#button name="冻结" icon="fa-check" clickFun="TQuestion.onShelf()" space="true"/>
+                            <#button name="解冻" icon="fa-check" clickFun="TQuestion.onShelf()" space="true"/>
+                            <#button name="添加学员" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+                            <#button name="查看学员信息" icon="fa-edit" clickFun="TQuestion.openChange()" space="true"/>
+                        </div>
+                        <#table id="TQuestionTable"/>
+                    </div>
+                </div>
+            </div>
+        <input hidden id="roleType" value="${roleType}">
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/modular/system/appUser/tAppUser.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_add.html
new file mode 100644
index 0000000..64bac59
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_add.html
@@ -0,0 +1,124 @@
+@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: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        <option value="">请选择省</option>
+                        @for(obj in list){
+                        <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        <option value="">请选择市</option>
+                    </select>
+                </div>
+            </div>
+            @}
+
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="learnerName"  placeholder="请输入姓名" type="text">
+                </div>
+            </div>
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*性别:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px"  class="form-control" id="gender" name = "gender">
+                        <option value="" style="color: #b6b6b6" disabled selected>请选择性别</option>
+                        <option value="1">男</option>
+                        <option value="2">女</option>
+                    </select>
+                </div>
+            </div>
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*联系电话:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="phone"  placeholder="请输入联系电话" type="text">
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">*销售人员:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="salesmanUserName" name="salesmanUserName">
+                        <option value="">请选择</option>
+                        @for(obj in list){
+                        <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5" >
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/appUser/tAppUser.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">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_addStudent.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_addStudent.html
new file mode 100644
index 0000000..0c24cf2
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_addStudent.html
@@ -0,0 +1,142 @@
+@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: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        <option value="">请选择省</option>
+                        @for(obj in list){
+                        <option style="width: 300px" value="${obj.provinceCode}">${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        <option value="">请选择市</option>
+                    </select>
+                </div>
+            </div>
+            @}
+
+            @if(roleType != 3){
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*所属门店:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="store" name="account">
+                        <option value="" style="color: #676A6C" disabled selected>请选择门店</option>
+                        @if(roleType == 2){
+                            @for(obj in stores){
+                            <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+                            @}
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="parentName"  placeholder="请输入家长姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长联系方式:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="phone"  placeholder="请输入家长联系方式" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="learnerName"  placeholder="请输入学员姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员年龄:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="learnerAge"  placeholder="请输入学员年龄" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*预约时间:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" class="form-control" id="appointmentTime"  placeholder="请选择" type="datetime-local">
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5" >
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment.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">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_edit.html
new file mode 100644
index 0000000..ef5c817
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_edit.html
@@ -0,0 +1,139 @@
+@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: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <input hidden id="id" value="${data.id}">
+    <input hidden id="roleType" value="${roleType}">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        @for(obj in list){
+                        <option value="${obj.provinceCode}" ${obj.province == data.province ? 'selected=selected' : ''}>${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        @for(obj in cities){
+                        <option value="${obj.cityCode}" ${obj.city == data.city ? 'selected=selected' : ''}>${obj.city}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            @if(roleType != 3){
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*所属门店:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="store" name="account">
+                        @for(obj in stores){
+                        <option value="${obj.id}" ${obj.id == data.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.parentName}" class="form-control" id="parentName"  placeholder="请输入家长姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长联系方式:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.phone}" class="form-control" id="phone"  placeholder="请输入家长联系方式" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerName}" class="form-control" id="learnerName"  placeholder="请输入学员姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员年龄:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerAge}" class="form-control" id="learnerAge"  placeholder="请输入学员年龄" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${birthday}" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*预约时间:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${appointmentTime}" class="form-control" id="appointmentTime"  placeholder="请选择" type="datetime-local">
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5" >
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment_edit.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">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_info.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_info.html
new file mode 100644
index 0000000..ef5c817
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_info.html
@@ -0,0 +1,139 @@
+@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: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <input hidden id="id" value="${data.id}">
+    <input hidden id="roleType" value="${roleType}">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        @for(obj in list){
+                        <option value="${obj.provinceCode}" ${obj.province == data.province ? 'selected=selected' : ''}>${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        @for(obj in cities){
+                        <option value="${obj.cityCode}" ${obj.city == data.city ? 'selected=selected' : ''}>${obj.city}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            @if(roleType != 3){
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*所属门店:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="store" name="account">
+                        @for(obj in stores){
+                        <option value="${obj.id}" ${obj.id == data.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.parentName}" class="form-control" id="parentName"  placeholder="请输入家长姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长联系方式:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.phone}" class="form-control" id="phone"  placeholder="请输入家长联系方式" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerName}" class="form-control" id="learnerName"  placeholder="请输入学员姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员年龄:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerAge}" class="form-control" id="learnerAge"  placeholder="请输入学员年龄" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${birthday}" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*预约时间:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${appointmentTime}" class="form-control" id="appointmentTime"  placeholder="请选择" type="datetime-local">
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5" >
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment_edit.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">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_vipInfo.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_vipInfo.html
new file mode 100644
index 0000000..ef5c817
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/appUser/TAppUser_vipInfo.html
@@ -0,0 +1,139 @@
+@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: 32px;
+        text-align: center;
+    }
+    .avatar {
+        width: 100px;
+        height: 100px;
+        display: block;
+    }
+
+    .col-sm-12 {
+        margin-top: 20px;
+    }
+
+    .col-sm-12 select {
+        height: 33px;
+    }
+</style>
+<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
+<div class="ibox float-e-margins">
+    <input hidden id="id" value="${data.id}">
+    <input hidden id="roleType" value="${roleType}">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        @for(obj in list){
+                        <option value="${obj.provinceCode}" ${obj.province == data.province ? 'selected=selected' : ''}>${obj.province}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        @for(obj in cities){
+                        <option value="${obj.cityCode}" ${obj.city == data.city ? 'selected=selected' : ''}>${obj.city}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            @if(roleType != 3){
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*所属门店:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="store" name="account">
+                        @for(obj in stores){
+                        <option value="${obj.id}" ${obj.id == data.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.parentName}" class="form-control" id="parentName"  placeholder="请输入家长姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长联系方式:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.phone}" class="form-control" id="phone"  placeholder="请输入家长联系方式" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerName}" class="form-control" id="learnerName"  placeholder="请输入学员姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员年龄:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerAge}" class="form-control" id="learnerAge"  placeholder="请输入学员年龄" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${birthday}" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*预约时间:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${appointmentTime}" class="form-control" id="appointmentTime"  placeholder="请选择" type="datetime-local">
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10 col-sm-offset-5" >
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment_edit.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">
+
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html
index 383eb7b..50be075 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment.html
@@ -56,9 +56,9 @@
                         </div>
                     <div class="hidden-xs" style="margin-top: 10px"  role="group">
                         <label>预约时间:</label>
-                        <#button name="今日" icon="fa-search" clickFun="TQuestion.day(1)"/>
-                        <#button name="明日" icon="fa-search" clickFun="TQuestion.day(2)"/>
-                        <#button name="最近7天" icon="fa-search" clickFun="TQuestion.day(7)"/>
+                        <#button name="今日" icon="fa-search" clickFun="TQuestion.search(1)"/>
+                        <#button name="明日" icon="fa-search" clickFun="TQuestion.search(2)"/>
+                        <#button name="最近7天" icon="fa-search" clickFun="TQuestion.search(7)"/>
                     </div>
 
                         <div style="margin-top: 10px" class="hidden-xs" id="TCouponTableToolbar" role="group">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html
index a58bfe3..0c24cf2 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_add.html
@@ -41,6 +41,7 @@
 
     <div class="ibox-content">
         <div class="form-horizontal" id="carInfoForm">
+            @if(roleType == 1){
             <div class="form-group" id="provinceCode">
                 <label class="col-sm-3 control-label">*所在省:</label>
                 <div class="col-sm-9">
@@ -61,15 +62,23 @@
                     </select>
                 </div>
             </div>
+            @}
 
+            @if(roleType != 3){
             <div class="form-group" >
                 <label class="col-sm-3 control-label">*所属门店:</label>
                 <div class="col-sm-9">
                     <select style="width: 300px" class="form-control" id="store" name="account">
                         <option value="" style="color: #676A6C" disabled selected>请选择门店</option>
+                        @if(roleType == 2){
+                            @for(obj in stores){
+                            <option style="width: 300px" value="${obj.id}">${obj.name}</option>
+                            @}
+                        @}
                     </select>
                 </div>
             </div>
+            @}
 
             <div class="form-group" >
                 <label class="col-sm-3 control-label">*家长姓名:</label>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html
index 550be62..ef5c817 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/bodySideAppointment/TBodySideAppointment_edit.html
@@ -38,52 +38,100 @@
 </style>
 <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.15&key=77b37f0753049c4e712ea79a24e0719c"></script>
 <div class="ibox float-e-margins">
-    <input hidden id="dataId" value="${data.id}">
+    <input hidden id="id" value="${data.id}">
+    <input hidden id="roleType" value="${roleType}">
     <div class="ibox-content">
         <div class="form-horizontal" id="carInfoForm">
-            <div class="form-group" >
-                <label class="col-sm-3 control-label">*家长姓名:</label>
-                <div class="col-sm-9" style="display: flex;">
-                    <input style="width: 300px" class="form-control" value="${data.name}" id="name"  placeholder="请输入分类名称" type="text">
-                </div>
-            </div>
-
-            <div class="form-group" >
-                <label class="col-sm-3 control-label">*所在位置:</label>
+            @if(roleType == 1){
+            <div class="form-group" id="provinceCode">
+                <label class="col-sm-3 control-label">*所在省:</label>
                 <div class="col-sm-9">
-                    <select style="width: 300px"  class="form-control" id="position" name = "gender">
-                        <option value="" style="color: #b6b6b6" disabled selected>请选择所在位置</option>
-                        <option value="1" ${data.position == 1 ? 'selected' : ''}>线上课得积分</option>
-                        <option value="2" ${data.position == 2 ? 'selected' : ''}>看视频得奖励</option>
-
+                    <select style="width: 300px" class="form-control" id="pCode" name="pCode" onchange="TQuestion.oneChange()">
+                        @for(obj in list){
+                        <option value="${obj.provinceCode}" ${obj.province == data.province ? 'selected=selected' : ''}>${obj.province}</option>
+                        @}
                     </select>
                 </div>
             </div>
 
+            <div class="form-group" id="cityCode">
+                <label class="col-sm-3 control-label">*所在市:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="cCode" name="cCode" onchange="TQuestion.oneChangeNext(this)">
+                        @for(obj in cities){
+                        <option value="${obj.cityCode}" ${obj.city == data.city ? 'selected=selected' : ''}>${obj.city}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            @if(roleType != 3){
             <div class="form-group" >
-                <label class="col-sm-3 control-label">*排序:</label>
+                <label class="col-sm-3 control-label">*所属门店:</label>
+                <div class="col-sm-9">
+                    <select style="width: 300px" class="form-control" id="store" name="account">
+                        @for(obj in stores){
+                        <option value="${obj.id}" ${obj.id == data.storeId ? 'selected=selected' : ''}>${obj.name}</option>
+                        @}
+                    </select>
+                </div>
+            </div>
+            @}
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长姓名:</label>
                 <div class="col-sm-9" style="display: flex;">
-                    <input style="width: 300px" class="form-control" id="sort" value="${data.sort}"  placeholder="请输入排序" type="text">
+                    <input style="width: 300px" value="${data.parentName}" class="form-control" id="parentName"  placeholder="请输入家长姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*家长联系方式:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.phone}" class="form-control" id="phone"  placeholder="请输入家长联系方式" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员姓名:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerName}" class="form-control" id="learnerName"  placeholder="请输入学员姓名" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员年龄:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${data.learnerAge}" class="form-control" id="learnerAge"  placeholder="请输入学员年龄" type="text">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*学员生日:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${birthday}" class="form-control" id="birthday"  placeholder="请选择" type="date">
+                </div>
+            </div>
+
+            <div class="form-group" >
+                <label class="col-sm-3 control-label">*预约时间:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <input style="width: 300px" value="${appointmentTime}" class="form-control" id="appointmentTime"  placeholder="请选择" type="datetime-local">
                 </div>
             </div>
 
             <div class="row btn-group-m-t">
                 <div class="col-sm-10 col-sm-offset-5" >
-                    @if(type!=1){
-                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TQuestion.updateSubmit()"/>
-                    @}
-                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
+                    <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="TQuestion.addSubmit()"/>
+                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TQuestion.close()"/>
                 </div>
             </div>
-
         </div>
     </div>
-
 </div>
 
 </div>
 
-<script src="${ctxPath}/modular/system/benefits/TBenefits.js"></script>
+<script src="${ctxPath}/modular/system/bodySideAppointment/tBodySideAppointment_edit.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">
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/role/role_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/role/role_add.html
index d5ea84d..33dea33 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/role/role_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/role/role_add.html
@@ -4,7 +4,7 @@
 		<div class="form-horizontal" id="roleInfoForm">
 
 			<input type="hidden" id="id" value="">
-			@if(language==1){
+
 			<div class="row">
 				<div class="col-sm-6 b-r">
 					<#input id="name" name="角色名称" underline="true"/>
@@ -39,79 +39,8 @@
 					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="RolInfoDlg.close()"/>
 				</div>
 			</div>
-			@}
-			@if(language==2){
-			<div class="row">
-				<div class="col-sm-6 b-r">
-					<#input id="name" name="Role name" underline="true"/>
-					<#input id="pName" name="Parent Name" underline="true" hidden="pid" readonly="readonly"
-					clickFun="RolInfoDlg.showPNameSelectTree(); return false;"
-					style="background-color: #ffffff !important;"/>
-					<#input id="deptName" name="Name of a department" hidden="deptid" readonly="readonly"
-					clickFun="RolInfoDlg.showDeptSelectTree(); return false;"
-					style="background-color: #ffffff !important;"/>
-				</div>
-				<div class="col-sm-6">
-					<#input id="tips" name="Another name" underline="true"/>
-					<#input id="num" name="Sort"/>
-				</div>
-			</div>
 
-			<!-- 这是部门下拉框 -->
-			<div id="deptContent" class="menuContent"
-				 style="display: none; position: absolute; z-index: 200;">
-				<ul id="deptTree" class="ztree tree-box" style="width: 250px !important;"></ul>
-			</div>
 
-			<!-- 这是父级菜单下拉框 -->
-			<div id="pNameContent" class="menuContent"
-				 style="display: none; position: absolute; z-index: 200;">
-				<ul id="pNameTree" class="ztree tree-box" style="width: 250px !important;"></ul>
-			</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="RolInfoDlg.addSubmit()"/>
-					<#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="RolInfoDlg.close()"/>
-				</div>
-			</div>
-			@}
-			@if(language==3){
-			<div class="row">
-				<div class="col-sm-6 b-r">
-					<#input id="name" name="Peran" underline="true"/>
-					<#input id="pName" name="Nama Orangtua" underline="true" hidden="pid" readonly="readonly"
-					clickFun="RolInfoDlg.showPNameSelectTree(); return false;"
-					style="background-color: #ffffff !important;"/>
-					<#input id="deptName" name="Nama departemen" hidden="deptid" readonly="readonly"
-					clickFun="RolInfoDlg.showDeptSelectTree(); return false;"
-					style="background-color: #ffffff !important;"/>
-				</div>
-				<div class="col-sm-6">
-					<#input id="tips" name="Nama lain" underline="true"/>
-					<#input id="num" name="Urutkan"/>
-				</div>
-			</div>
-
-			<!-- 这是部门下拉框 -->
-			<div id="deptContent" class="menuContent"
-				 style="display: none; position: absolute; z-index: 200;">
-				<ul id="deptTree" class="ztree tree-box" style="width: 250px !important;"></ul>
-			</div>
-
-			<!-- 这是父级菜单下拉框 -->
-			<div id="pNameContent" class="menuContent"
-				 style="display: none; position: absolute; z-index: 200;">
-				<ul id="pNameTree" class="ztree tree-box" style="width: 250px !important;"></ul>
-			</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="RolInfoDlg.addSubmit()"/>
-					<#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="RolInfoDlg.close()"/>
-				</div>
-			</div>
-			@}
 
 		</div>
 
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/storeValueConfig/StoreValueConfig.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/storeValueConfig/StoreValueConfig.html
new file mode 100644
index 0000000..c51cda2
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/storeValueConfig/StoreValueConfig.html
@@ -0,0 +1,263 @@
+@layout("/common/_container.html"){
+<style>
+    .newWidth, .single-line{
+        max-width:350px !important;display: initial !important;
+    }
+</style>
+
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-content">
+
+                <div class="ibox-title">
+                    <h5>储值管理</h5>
+                </div>
+                <input type="hidden" id="content"       value="${content}">
+<!--                <input type="hidden" id="description"   value="${description}">-->
+<!--                <input type="hidden" id="time"          value="${time}">-->
+
+                <div class="ibox-title">
+                    <div style="display: flex">
+                        <label for="editor_1">*常规储值:</label>
+                        <div class="col-sm-2">
+                            <#button btnCss="info" name="添加" id="ensure" icon="fa-check" />
+                        </div>
+                    </div>
+                    <div class="ibox-content">
+                        <div class="row row-lg">
+                            <div class="col-sm-6">
+                                <div style="height: 200px;width: 1100px; border: 1px solid #e5e6e7;overflow-y: auto;">
+                                    <table class="table table-striped table-bordered table-hover table-condensed">
+                                        <thead>
+                                        <tr>
+                                        </tr>
+                                        </thead>
+                                        <tbody id="rules">
+<!--                                        <tr class="rulesClass" style="display: flex; justify-content: space-between;">-->
+<!--                                            <td style="text-align: center;">*充值金额:<input placeholder="请输入充值金额"  id="recharge" name="recharge" value=""></td>-->
+<!--                                            <td style="text-align: center;">*用户兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="user" name="user" value=""></td>-->
+<!--                                            <td style="text-align: center;">*会员兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="vip" name="vip" value=""></td>-->
+<!--                                            <td style="text-align: center;"><button onclick="deleteSub(this)">删除</button></td>-->
+<!--                                        </tr>-->
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="ibox-title">
+                    <div style="display: flex">
+                        <label for="editor_1">*特殊时间储值:</label>
+
+                        <div class="col-sm-2">
+                            <#button btnCss="info" name="添加" id="ensureTime" icon="fa-check" />
+                        </div>
+                    </div>
+                    <div class="ibox-content">
+                        <div class="row row-lg">
+                            <div class="col-sm-6">
+                                <div style="height: 200px;width: 1100px; border: 1px solid #e5e6e7;overflow-y: auto;">
+                                    <#TimeCon id="beginTime" name="有效期" isTime="false"/>
+
+                                    <table  class="table table-striped table-bordered table-hover table-condensed">
+                                        <thead>
+                                        <tr>
+                                        </tr>
+                                        </thead>
+                                        <tbody id="rulesTime">
+<!--                                        <tr class="rulesTimeClass" style="display: flex; justify-content: space-between;">-->
+<!--                                            <td style="text-align: center;">*充值金额:<input placeholder="请输入充值金额"  id="rechargeTime" name="rechargeTime" value=""></td>-->
+<!--                                            <td style="text-align: center;">*用户兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="userTime" name="userTime" value=""></td>-->
+<!--                                            <td style="text-align: center;">*会员兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="vipTime" name="vipTime" value=""></td>-->
+<!--                                            <td style="text-align: center;"><button onclick="deleteSub(this)">删除</button></td>-->
+<!--                                        </tr>-->
+                                        </tbody>
+                                    </table>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                            <div class="tab-content">
+                                <div id="tab-1" class="tab-pane active">
+                                    <div class="panel-body">
+                                        <div>
+                                        <label for="editor_1">*储值说明:</label>
+                                        <textarea id="editor_1" type="text/plain" style="width:1200px;height:400px;"></textarea>
+                                        </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="add();" />
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+        </div>
+    </div>
+</div>
+
+<script type="text/javascript">
+
+    laydate.render({
+        elem: '#beginTime'
+        , trigger: 'click'
+        , range: true
+    });
+
+    const data1 = {
+        content:"",
+        sort:null,
+        answer:""
+    };
+    var editor_1 = null;
+    $(function () {
+
+        var c = $("#content").val()
+        var d= $("#description").val()
+        var t = $("#time").val();
+        // 将json串解析为对象
+        // var jsonData = c;
+        // var data = JSON.parse(jsonData);
+        var rulesTable = document.getElementById("rules");
+        var rulesTimeTable = document.getElementById("rulesTime");
+
+        console.log(c)
+        $("#beginTime").val(t);
+        //初始化编辑器
+        editor_1 = UE.getEditor('editor_1');
+        var addButton = document.getElementById('ensure');
+        addButton.addEventListener('click', function () {
+            if ($("#recharge").val() == ""){
+                Feng.error("请输入充值金额")
+                return;
+            }
+            if ($("#user").val() == ""){
+                Feng.error("请输入兑换玩湃币-用户")
+                return;
+            }
+            if ($("#vip").val() == ""){
+                Feng.error("请输入兑换玩湃币-会员")
+                return;
+            }
+            //封装数据
+            var str = '<tr class="rulesClass" style="display: flex; justify-content: space-between;">' +
+                '<td style="text-align: center;">*充值金额:<input placeholder="请输入充值金额"  id="recharge" name="rulesClassValue" value=""></td>' +
+                '<td style="text-align: center;">*用户兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="user" name="rulesClassValue" value=""></td>' +
+                '<td style="text-align: center;">*会员兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="vip" name="rulesClassValue" value=""></td>' +
+                '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>';
+            $("#rules").append(str);
+        });
+
+        var addButtonTime = document.getElementById('ensureTime');
+        addButtonTime.addEventListener('click', function () {
+            //封装数据
+            var str = '<tr class="rulesTimeClass" style="display: flex; justify-content: space-between;">' +
+                '<td style="text-align: center;">*充值金额:<input placeholder="请输入充值金额"  id="rechargeTime" name="rulesTimeClassValue" value=""></td>' +
+                '<td style="text-align: center;">*用户兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="userTime" name="rulesTimeClassValue" value=""></td>' +
+                '<td style="text-align: center;">*会员兑换玩湃币:<input placeholder="请输入兑换玩湃币"  id="vipTime" name="rulesTimeClassValue" value=""></td>' +
+                '<td style="text-align: center;"><button onclick="deleteSub(this)">移除</button></td></tr>';
+            $("#rulesTime").append(str);
+        })
+    });
+
+
+    function deleteSub(e) {
+        console.log("删除")
+        $(e).parent().parent().remove();
+    }
+    function add(){
+        var id = $("#id").val();
+
+        var data = {
+            rules: [],
+            time_rules: []
+        };
+        var res = {
+            id:null,
+            content:"",
+            description : ""
+        };
+        var time = $("#beginTime").val();
+        var startTime = time.split(" - ")[0];
+        var endTime = time.split(" - ")[1];
+        var rulesClassElements = document.querySelectorAll('#rules .rulesClass');
+        rulesClassElements.forEach(function(rulesTimeClassElement) {
+            var recharge = rulesTimeClassElement.querySelector("#recharge").value;
+            var user = rulesTimeClassElement.querySelector("#user").value;
+            var vip = rulesTimeClassElement.querySelector("#vip").value;
+            if (recharge ===""){
+                Feng.error("请输入充值金额");
+            }
+            if (recharge ===""){
+                Feng.error("请输入用户兑换玩湃币");
+            }
+            if (recharge ===""){
+                Feng.error("请输入会员兑换玩湃币");
+            }
+            var rulesArr={
+                    money:recharge,
+                    usersCoins:user,
+                    MemberCoins:vip,
+                    startTime:"",
+                    endTime:"",
+                };
+            data.rules.push(rulesArr);
+        });
+
+        var rulesTimeClassElements = document.querySelectorAll('#rulesTime .rulesTimeClass');
+        rulesTimeClassElements.forEach(function(rulesTimeClassElement) {
+            var recharge = rulesTimeClassElement.querySelector("#rechargeTime").value;
+            var user = rulesTimeClassElement.querySelector("#userTime").value;
+            var vip = rulesTimeClassElement.querySelector("#vipTime").value;
+            if (recharge ===""){
+                Feng.error("请输入充值金额");
+            }
+            if (user ===""){
+                Feng.error("请输入用户兑换玩湃币");
+            }
+            if (vip ===""){
+                Feng.error("请输入会员兑换玩湃币");
+            }
+            if (time ===""){
+                Feng.error("请选择有效期");
+            }
+            var rulesTimeArr={
+                money:recharge,
+                usersCoins:user,
+                MemberCoins:vip,
+                startTime:startTime,
+                endTime:endTime,
+            };
+            data.time_rules.push(rulesTimeArr);
+        });
+        if (editor_1.getContent() === ""){
+            Feng.error("储值说明不能为空!");
+            return;
+        }
+        var result = JSON.stringify(data);
+        res.content = result;
+        var description = editor_1.getContent();
+        res.description = description;
+
+        $.ajax({
+            url: Feng.ctxPath + "/storeValueConfig/addStoreValueConfig",
+            type: "POST",
+            contentType: "application/json", // 设置请求头的 Content-Type
+            data: JSON.stringify(res), // 将数据转换为 JSON 字符串
+            success: function(response) {
+                Feng.success("添加成功!");
+            },
+            error: function(xhr, status, error) {
+                var errorMessage = xhr.responseText ? xhr.responseText : "添加失败!";
+                Feng.error(errorMessage);
+            }
+        });
+    }
+
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
index 9ea5bab..75f870d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCoupon/TCouponAdd.html
@@ -256,8 +256,7 @@
                                 <i class="el-icon-plus"></i>
                             </el-upload>
                             <el-dialog :visible.sync="dialogVisible">
-                                <img width="100%" :src="imageUrl1" alt=""></el-dialog>
-                            </el-dialog>
+                                <img width="100%" :src="imageUrl1" alt="">
                         </div>
                     </div>
                 </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html
deleted file mode 100644
index 0e0a53c..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_add.html
+++ /dev/null
@@ -1,83 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-
-
-        <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">
-                    <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
-                        <option value="">选择省</option>
-                        @for(obj in list){
-                        <option value="${obj.code}">${obj.name}</option>
-                        @}
-                    </select>
-                </div>
-            </div>
-            <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>
-                    </select>
-                </div>
-            </div>
-        <#input id="name" name="管理员姓名" type="text"/>
-        <#input id="phone" name="管理员手机号" type="text"/>
-
-
-        </div>
-</div>
-
-<div class="row btn-group-m-t">
-    <div class="col-sm-10 col-sm-offset-5">
-        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
-        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-    </div>
-</div>
-
-        </div>
-
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
-<script>
-    laydate.render({
-        elem: '#annualInspectionTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#commercialInsuranceTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateA'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStart'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStop'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateB'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#nextFixDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#GPSInstallDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#registerDate'
-        ,lang:"en"
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html
deleted file mode 100644
index 8bb70f5..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TCity_edit.html
+++ /dev/null
@@ -1,98 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-
-        <div class="form-horizontal" id="carInfoForm">
-            <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">
-                    <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>
-            <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>
-                </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>
-
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
-<script>
-    laydate.render({
-        elem: '#annualInspectionTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#commercialInsuranceTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateA'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStart'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStop'
-        ,lang:"en"
-    });
-    laydate.render({
-
-        elem: '#certifyDateB'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#nextFixDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#GPSInstallDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#registerDate'
-        ,lang:"en"
-    });
-</script>
-<script type="application/javascript">
-    $(function() {
-        var companyType = $("input[name='companyType']:checked").val();
-        if (1 == companyType){
-            $(".companyDiv").hide();
-        } else if (2 == companyType){
-            $(".companyDiv").show();
-        }
-
-        TCarInfoDlg.zcServerClick();
-        TCarInfoDlg.kcServerClick();
-
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html
deleted file mode 100644
index 009a6c1..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/TDiscount.html
+++ /dev/null
@@ -1,80 +0,0 @@
-    @layout("/common/_container.html"){
-<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-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="pCode" onchange="TCompetition.oneChange(this)">
-                                        <option value="">全部</option>
-                                        @for(obj in list){
-                                        <option value="${obj.code}">${obj.name}</option>
-                                        @}
-                                    </select>
-                                </div>
-                            </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="shopName" name="所属门店" />
-                            </div>
-                            <div class="col-sm-3">
-                                <#NameCon id="name" name="课包名称" />
-                            </div>
-                            <div class="col-sm-3">
-                                <#SelectCon id="type" name="折扣类型" >
-                                <option value="">全部</option>
-                                <option value="1">会员折扣</option>
-                                <option value="3">限时折扣</option>
-                                <option value="4">赠送课时</option>
-                            </#SelectCon>
-                            </div>
-                    <div class="col-sm-3">
-                        <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
-                        <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
-                    </div>
-                </div>
-                <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
-                    <#button name="上架" icon="fa-plus" clickFun="TCompetition.updateState(1)"/>
-                    <#button name="下架" icon="fa-edit" clickFun="TCompetition.updateState(2)" space="true"/>
-                    <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/>
-
-                </div>
-                <#table id="TCompetitionTable"/>
-            </div>
-        </div>
-    </div>
-</div>
-</div>
-</div>
-<script src="${ctxPath}/modular/system/tDiscount/tDiscount.js"></script>
-<script>
-    laydate.render({
-        elem: '#createTime'
-        ,range: true
-        ,lang:"en"
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html
deleted file mode 100644
index 8b7c500..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscount/coursePackageDiscount.html
+++ /dev/null
@@ -1,88 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-        <div class="form-horizontal">
-            <div class="row">
-                <input type="hidden" id="id" value="${item.id}">
-                <input type="hidden" id="coursePackagePaymentConfig" value='${coursePackagePaymentConfig}'>
-                <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>${item.name}</span>
-                        </div>
-                    </div>
-                </div>
-                <div class="form-group">
-                    <div class="col-sm-2"></div>
-                    <div class="col-sm-10">
-                        <div class="col-sm-2">
-                        </div>
-                        <div class="col-sm-6" id="classHours" style="margin-top: 6px;">
-                        </div>
-                    </div>
-                </div>
-                <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 id="payment"></span>
-                        </div>
-                    </div>
-                </div>
-                <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 id="cashPayment"></span>
-                        </div>
-                    </div>
-                </div>
-                <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-6" id="types" style="margin-top: 6px;">
-                            <input type="checkbox" name="type" value="1"> 会员折扣&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="2"> 续课优惠&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="3"> 限时折扣&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="4"> 赠送课时&nbsp;&nbsp;&nbsp;&nbsp;
-                        </div>
-                    </div>
-                </div>
-                <div id="memberDiscount">
-
-                </div>
-                <div id="renewalOffer">
-
-                </div>
-                <div id="limitedTimeDiscount">
-
-                </div>
-                <div id="complimentaryClass">
-
-                </div>
-            </div>
-            <div class="row btn-group-m-t">
-                <div class="col-sm-10">
-                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/coursePackage/coursePackageDiscount.js"></script>
-<script src="${ctxPath}/modular/system/tDiscount/tDiscount_info.js"></script>
-
-
-<script type="text/javascript">
-    laydate.render({
-        elem: '#classStartTime'
-        ,type: 'time'
-        ,range: true
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html
deleted file mode 100644
index 0e0a53c..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_add.html
+++ /dev/null
@@ -1,83 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-
-
-        <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">
-                    <select class="form-control" id="pCode" name="pCode" onchange="TCarInfoDlg.oneChange(this)">
-                        <option value="">选择省</option>
-                        @for(obj in list){
-                        <option value="${obj.code}">${obj.name}</option>
-                        @}
-                    </select>
-                </div>
-            </div>
-            <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>
-                    </select>
-                </div>
-            </div>
-        <#input id="name" name="管理员姓名" type="text"/>
-        <#input id="phone" name="管理员手机号" type="text"/>
-
-
-        </div>
-</div>
-
-<div class="row btn-group-m-t">
-    <div class="col-sm-10 col-sm-offset-5">
-        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/>
-        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-    </div>
-</div>
-
-        </div>
-
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
-<script>
-    laydate.render({
-        elem: '#annualInspectionTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#commercialInsuranceTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateA'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStart'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStop'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateB'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#nextFixDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#GPSInstallDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#registerDate'
-        ,lang:"en"
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html
deleted file mode 100644
index 8bb70f5..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TCity_edit.html
+++ /dev/null
@@ -1,98 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-
-        <div class="form-horizontal" id="carInfoForm">
-            <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">
-                    <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>
-            <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>
-                </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>
-
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script>
-<script>
-    laydate.render({
-        elem: '#annualInspectionTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#commercialInsuranceTime'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#certifyDateA'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStart'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#transDateStop'
-        ,lang:"en"
-    });
-    laydate.render({
-
-        elem: '#certifyDateB'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#nextFixDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#GPSInstallDate'
-        ,lang:"en"
-    });
-    laydate.render({
-        elem: '#registerDate'
-        ,lang:"en"
-    });
-</script>
-<script type="application/javascript">
-    $(function() {
-        var companyType = $("input[name='companyType']:checked").val();
-        if (1 == companyType){
-            $(".companyDiv").hide();
-        } else if (2 == companyType){
-            $(".companyDiv").show();
-        }
-
-        TCarInfoDlg.zcServerClick();
-        TCarInfoDlg.kcServerClick();
-
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html
deleted file mode 100644
index 0865808..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/TDiscount.html
+++ /dev/null
@@ -1,79 +0,0 @@
-    @layout("/common/_container.html"){
-<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-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="pCode" onchange="TCompetition.oneChange(this)">
-                                        <option value="">全部</option>
-                                        @for(obj in list){
-                                        <option value="${obj.code}">${obj.name}</option>
-                                        @}
-                                    </select>
-                                </div>
-                            </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="shopName" name="所属门店" />
-                            </div>
-                            <div class="col-sm-3">
-                                <#NameCon id="name" name="课包名称" />
-                            </div>
-                            <div class="col-sm-3">
-                                <#SelectCon id="type" name="折扣类型" >
-                                <option value="">全部</option>
-                                <option value="1">会员折扣</option>
-                                <option value="3">限时折扣</option>
-                                <option value="4">赠送课时</option>
-                            </#SelectCon>
-                            </div>
-                    <div class="col-sm-3">
-                        <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/>
-                        <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/>
-                    </div>
-                </div>
-                <div class="hidden-xs" id="TCompetitionTableToolbar" role="group">
-                    <#button name="审核" icon="fa-plus" clickFun="TCompetition.audit()"/>
-                    <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/>
-
-                </div>
-                <#table id="TCompetitionTable"/>
-            </div>
-        </div>
-    </div>
-</div>
-</div>
-</div>
-<script src="${ctxPath}/modular/system/tDiscountAudit/tDiscount.js"></script>
-<script>
-    laydate.render({
-        elem: '#createTime'
-        ,range: true
-        ,lang:"en"
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html
deleted file mode 100644
index eafdd81..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tDiscountAudit/coursePackageDiscount.html
+++ /dev/null
@@ -1,105 +0,0 @@
-@layout("/common/_container.html"){
-<div class="ibox float-e-margins">
-    <div class="ibox-content">
-        <div class="form-horizontal">
-            <div class="row">
-                <input type="hidden" id="id" value="${item.id}">
-                <input type="hidden" id="coursePackagePaymentConfig" value='${coursePackagePaymentConfig}'>
-                <div class="form-group">
-                    <div class="col-sm-2"></div>
-                    <div class="col-sm-10">
-                        <label class="col-sm-2 control-label">当前状态:</label>
-                        @if(state==1){
-                        <div class="col-sm-4" style="margin-top: 6px;color: goldenrod">
-                            <span>${stateStr}</span>
-                        </div>
-                        @}
-                        @if(state==3){
-                        <div class="col-sm-4" style="margin-top: 6px;color: red">
-                            <span>${stateStr}</span>
-                        </div>
-                        @}
-
-                    </div>
-                </div>
-                <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>${item.name}</span>
-                        </div>
-                    </div>
-                </div>
-                <div class="form-group">
-                    <div class="col-sm-2"></div>
-                    <div class="col-sm-10">
-                        <div class="col-sm-2">
-                        </div>
-                        <div class="col-sm-6" id="classHours" style="margin-top: 6px;">
-                        </div>
-                    </div>
-                </div>
-                <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 id="payment"></span>
-                        </div>
-                    </div>
-                </div>
-                <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 id="cashPayment"></span>
-                        </div>
-                    </div>
-                </div>
-                <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-6" id="types" style="margin-top: 6px;">
-                            <input type="checkbox" name="type" value="1"> 会员折扣&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="2"> 续课优惠&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="3"> 限时折扣&nbsp;&nbsp;&nbsp;&nbsp;
-                            <input type="checkbox" name="type" value="4"> 赠送课时&nbsp;&nbsp;&nbsp;&nbsp;
-                        </div>
-                    </div>
-                </div>
-                <div id="memberDiscount">
-
-                </div>
-                <div id="renewalOffer">
-
-                </div>
-                <div id="limitedTimeDiscount">
-
-                </div>
-                <div id="complimentaryClass">
-
-                </div>
-            </div>
-            <div class="row btn-group-m-t">
-                <div class="col-sm-10">
-                    <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script src="${ctxPath}/modular/system/tDiscountAudit/coursePackageDiscount.js"></script>
-<script src="${ctxPath}/modular/system/tDiscount/tDiscount_info.js"></script>
-
-
-<script type="text/javascript">
-    laydate.render({
-        elem: '#classStartTime'
-        ,type: 'time'
-        ,range: true
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html
index 6c080fa..2a03a9d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_add.html
@@ -53,9 +53,9 @@
             <div class="form-group">
                 <label class="col-sm-3 control-label">兑换方式:</label>
                 <div class="col-sm-9">
-                    <input type="radio" name="redemptionMethod" value="1"  onclick="updateMethod(3)" checked> 积分
-                    <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(4)"> 现金+积分
-                    <input type="radio" name="redemptionMethod" value="3" onclick="updateMethod(5)"> 现金
+                    <input type="radio" name="redemptionMethod" value="1" checked> 积分
+                    <input type="radio" name="redemptionMethod" value="2" > 现金+积分
+                    <input type="radio" name="redemptionMethod" value="3" > 现金
                 </div>
             </div>
 
@@ -76,29 +76,26 @@
             </div>
 
             <#avatar id="cover" name="商品封面" />
-
-                <div class="row" id="app" >
-                    <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%">
-                                <el-upload
-                                        :limit="5"
-                                        class="avatar-uploader"
-                                        action="/tCouponManage/uploadPic"
-                                        list-type="picture-card"
-                                        accept=".jpg,.jpeg,.png,.JPG,.JPEG"
-                                        :on-success="handleAvatarSuccess"
-                                        :on-remove="handleRemove">
-                                    <i class="el-icon-plus"></i>
-                                </el-upload>
-                                <el-dialog :visible.sync="dialogVisible">
-                                    <img width="100%" :src="imageUrl1" alt=""></el-dialog>
-                            </div>
+            <div class="row" id="app" style="margin-left: 225px;" >
+                <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%">
+                            <el-upload
+                                    class="avatar-uploader"
+                                    action="/tCouponManage/uploadPic"
+                                    :on-success="handleAvatarSuccess"
+                                    accept=".jpg,.jpeg,.png,.JPG,.JPEG"
+                                    :on-remove="handleRemove"
+                                    :before-upload="beforeAvatarUpload">
+                                <img v-if="imageUrl" :src="imageUrl" class="avatar">
+                                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+                            </el-upload>
                         </div>
-
                     </div>
+
                 </div>
+            </div>
 
 
             <div class="form-group">
@@ -132,17 +129,17 @@
                             <label class="col-sm-3">*适用范围: </label>
                             <div class="col-sm-2" id="belongsNationwide" >
                                 <input class="col-sm-1" onclick="scopeOfApplication1()" name="company" type="radio"
-                                       value="1" checked style="margin-top: 10px"/>
+                                       value="0" checked style="margin-top: 10px"/>
                                 <label class="col-sm-1" style="width: 38%;margin-top: 7px">全国通用</label>
                             </div>
                             <div class="col-sm-2" id="belongsCity"  >
                                 <input class="col-sm-1" name="company" onclick="scopeOfApplication2()" type="radio"
-                                       value="2"  style="margin-top: 10px"/>
+                                       value="1"  style="margin-top: 10px"/>
                                 <label class="col-sm-1" style="width: 38%;margin-top: 7px">指定城市</label>
                             </div>
                             <div class="col-sm-2" id="belongsStore"  >
                                 <input class="col-sm-1" name="company" onclick="scopeOfApplication3()" type="radio"
-                                       value="3" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
+                                       value="1" style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px"/>
                                 <label class="col-sm-1" style="width: 38%;margin-top: 6px;">指定门店</label>
                             </div>
                         </div>
@@ -231,141 +228,9 @@
                 <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"  onchange="TCarInfoDlg.storeChange(this)">
+                        <select class="form-control" id="cCode" name="cCode">
                             <option value="">选择市</option>
                         </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">所属门店:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="storeId" name="storeId">
-                            <option value="">选择门店</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">课包类型:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TCarInfoDlg.packageChange(this)">
-                            <option value="">选择课包类型</option>
-                            @for(obj in courseType){
-                            <option value="${obj.id}">${obj.name}</option>
-                            @}
-                        </select>
-                    </div>
-                </div>
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">课包名称:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TCarInfoDlg.timeChange(this)">
-                            <option value="">选择课包</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">课时数:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="coursePackageConfigId" name="coursePackageConfigId">
-                            <option value="">选择课时数</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">原价:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="price1" name="price" type="text">
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">兑换方式:</label>
-                    <div class="col-sm-9">
-                        <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分
-                        <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分
-                    </div>
-                </div>
-
-                <div class="form-group" id="y3" hidden>
-                    <label class="col-sm-3 control-label">所需现金:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="cash1" name="cash" type="text">
-
-                    </div>
-                </div>
-                <div class="form-group" id="y4">
-                    <label class="col-sm-3 control-label">所需积分:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="integral1" name="integral" type="text">
-
-                    </div>
-                </div>
-
-
-                <#avatar id="cover1" name="*商品封面" />
-                <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%">
-                                <el-upload
-                                        :limit="5"
-                                        class="avatar-uploader"
-                                        action="/tCouponManage/uploadPic"
-                                        list-type="picture-card"
-                                        accept=".jpg,.jpeg,.png,.JPG,.JPEG"
-                                        :on-success="handleAvatarSuccess"
-                                        :on-remove="handleRemove">
-                                    <i class="el-icon-plus"></i>
-                                </el-upload>
-                                <el-dialog :visible.sync="dialogVisible">
-                                    <img width="100%" :src="imageUrl1" alt=""></el-dialog>
-                            </div>
-                        </div>
-
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">用户人群:</label>
-                    <div class="col-sm-9">
-                        <input type="radio" name="userPopulation" value="1" checked> 全部用户
-                        <input type="radio" name="userPopulation" value="2" > 年度会员
-                        <input type="radio" name="userPopulation" value="3" > 已有学员用户
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">发放数量:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text">
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">限领数量:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text">
-                    </div>
-                </div>
-                <#input id="startTime1" name="有效期" type="text"/>
-
-                <div class="form-group" style="margin-left:262px">
-                    <label class="col-sm-1 control-label">兑换说明:</label>
-                    <div class="col-sm-5">
-                        <textarea type="text/plain" id="editor1"  style="height: 300px;width: 800px;"></textarea>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">排序:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="sort1" name="sort" type="text">
-
                     </div>
                 </div>
 
@@ -384,55 +249,21 @@
 
         </div>
 
+    </div>
+</div>
 <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/tGoods/tGoods_info.js"></script>
 <script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
 <script>
-    laydate.render({
-        elem: '#startTime',
-        range: true
-    });
-    laydate.render({
-        elem: '#startTime1',
-        range: true
-    });
-    function updateMethod(e) {
-        console.log(e)
-        if(e==1){
-            $("#y3").hide()
-            $("#y4").show()
-        }else if(e==2){
-            $("#y4").show()
-            $("#y3").show()
-        }else if(e==3){
-            $("#y1").hide()
-            $("#y2").show()
-        }else if(e==4){
-            $("#y1").show()
-            $("#y2").show()
-        }else if(e==5) {
-            $("#y2").hide()
-            $("#y1").show()
-        }
 
-    }
-    let i =1;
     function updateType(e) {
-
         if(e==2){
             $("#b1").hide()
             $("#b2").show()
-            if(i==1){
-                var drivingLicensePhoto = new $WebUpload("cover1");
-                drivingLicensePhoto.setUploadBarId("progressBar");
-                drivingLicensePhoto.init();
-                i++;
-            }
-
         }else {
-            $("#b2").hide()
+            $("#b2  ").hide()
             $("#b1").show()
         }
     }
@@ -511,33 +342,6 @@
         methods: {
             handleAvatarSuccess(res, file) {
                 TCarInfoDlg.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() {
-        },
-    });
-    var vue2 = new Vue({
-        el: '#app1',
-        data: {
-            autoUpload: true,//自动上传
-            imageUrl1: '',//模型数据,用于上传图片完成后图片预览
-            dialogVisible: false
-        },
-        methods: {
-            handleAvatarSuccess(res, file) {
-                TCarInfoDlg.goodsPicArray1.push(file);
             },
             beforeAvatarUpload(file) {
                 const isLt2M = file.size / 1024 / 1024 < 10;
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
deleted file mode 100644
index e0e7f55..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_one.html
+++ /dev/null
@@ -1,207 +0,0 @@
-@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;
-        display: inline-block;
-    }
-
-    .avatar-uploader .el-upload:hover {
-        border-color: #409eff;
-    }
-
-    .avatar-uploader-icon {
-        font-size: 28px;
-        color: #8c939d;
-        width: 100px;
-        height: 100px;
-        line-height: 110px;
-        margin-top: 40px;
-        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">
-        <div class="form-horizontal" id="carInfoForm">
-            <div id="b1">
-                <#input id="name" name="*商品名称:" type="text" value="${item.name}" readonly="true" />
-
-                <#input id="cover" name="*原价:" avatarImg="${item.price}" readonly="true" />
-                <div class="form-group">
-                    <label class="col-sm-3 control-label head-scu-label">*兑换方式:</label>
-                    <div class="col-sm-4">
-                        @if(exchangeMethod == 1){
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="1" checked style="margin-top: 10px" disabled/>
-                        <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"
-                               value="2"  style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="3"  style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
-                        @}
-
-                        @if(exchangeMethod == 2){
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="1"  style="margin-top: 10px" disabled/>
-                        <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"
-                               value="2"  checked style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="3"  style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
-                        @}
-
-                        @if(exchangeMethod == 3){
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="1"  style="margin-top: 10px" disabled/>
-                        <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"
-                               value="2"  style="margin-left: 5%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 16%;margin-top: 7px">年度会员</label>
-                        <input class="col-sm-1 control-label" name="userGroup" type="radio"
-                               value="3" checked  style="margin-left: 4%;margin-top: 10px;width: 13px;height: 13px" disabled/>
-                        <label class="col-sm-1" style="width: 18%;margin-top: 5px">已有学员用户</label>
-                        @}
-
-                    </div>
-                </div>
-
-                <#input id="cover" name="*所需现金:" avatarImg="${item.cash}" readonly="true" />
-                <#input id="cover" name="*所需积分:" avatarImg="${item.integral}" readonly="true" />
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label head-scu-label">*商品封面:</label>
-                    <div class="col-sm-4">
-                        <img height="100px" width="100px" src="${item.cover}">
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
-                    <div class="col-sm-4">
-                        @if(pictures != null){
-                        @for(im in pictures){
-                            <img  height="100px" width="100px" src="${im}">
-                        @}
-                        @}
-                    </div>
-                </div>
-
-                <#input id="quantityIssued" name="*用户人群:" type="text" value="${item.userPopulation}" readonly="true" />
-                <#input id="quantityIssued" name="*发放数量:" type="text" value="${item.quantityIssued}" readonly="true" />
-                <#input id="quantityIssued" name="*限领数量:" type="text" value="${item.pickUpQuantity}" readonly="true" />
-                <#input id="quantityIssued" name="*已兑换数量:" type="text" value="${item.hasPicked}" readonly="true" />
-                <#input id="quantityIssued" name="*有效期:" type="text" value="${item.validTime}" readonly="true" />
-
-                <#input id="quantityIssued" name="*兑换地点:" type="text" value="${item.exchangeArea}" readonly="true" />
-
-                @if(item.useScope == 2){
-                <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
-                    <thead>
-                    <tr>
-                        <td>所在省市</td>
-                        <td>所属账号</td>
-                        <td>门店名称</td>
-                    </tr>
-                    </thead>
-                    @for(s in store){
-                    <td>${s.num1}</td>
-                    <td>${s.num2}</td>
-                    <td>${s.num3}</td>
-                    @}
-                </table>
-                @}
-
-                @if(item.useScope == 3){
-                <table class="table table-bordered" style="width: 70%;margin-left: 228px;" >
-                    <thead>
-                    <tr>
-                        <td>所在省市</td>
-                        <td>所属账号</td>
-                        <td>门店名称</td>
-                    </tr>
-                    </thead>
-                    @for(c in city){
-                    <td>${c.num1}</td>
-                    <td>${c.num2}</td>
-                    @}
-                </table>
-                @}
-                <div class="form-group" style="margin-left:262px">
-                    <label class="col-sm-3 control-label">兑换说明:</label>
-                    <div class="col-sm-4">
-                        <textarea type="text/plain" id="editor"  style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
-                    </div>
-                </div>
-                <#input id="quantityIssued" name="*排序:" type="text" value="${item.sort}" readonly="true" />
-
-            </div>
-        </div>
-    </div>
-
-    <div class="row btn-group-m-t">
-        <div class="col-sm-10 col-sm-offset-5">
-            <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
-        </div>
-    </div>
-
-</div>
-
-</div>
-</div>
-<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/tGoods/tGoods_info.js"></script>
-<script>
-    var vue2 = new Vue({
-        el: '#app',
-        data: {
-            autoUpload: true,//自动上传
-            imageUrl1: '',//模型数据,用于上传图片完成后图片预览
-            dialogVisible: false
-        },
-        methods: {
-            handleAvatarSuccess(res, file) {
-                TGoodsInfoDlg.goodsPicArray.push(file.response);
-            },
-            beforeAvatarUpload(file) {
-                const isLt2M = file.size / 1024 / 1024 < 10;
-                if (!isLt2M) {
-                    this.$message.error('上传图片大小不能超过 10MB!');
-                }
-                return isLt2M;
-            },
-            handleRemove(file, fileList) {
-                TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
-                    return item.uid != file.uid;
-                });
-            },
-        },
-        created() {
-        },
-    });
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html
deleted file mode 100644
index 56fd499..0000000
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_detail_two.html
+++ /dev/null
@@ -1,396 +0,0 @@
-@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 id="s1" value="${item.redemptionMethod}" hidden>
-        <input id="s2" value="${item.userPopulation}" hidden>
-        <div class="form-horizontal" id="carInfoForm">
-            <#label  id="types" name="商品类型" type="text" value="课包商品" />
-
-            <div id="b2" >
-                <div class="form-group" id="provinceCode">
-                    <label class="col-sm-3 control-label">所在省:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="pCode" name="pCode">
-                            <option value="">${item.province}</option>
-                        </select>
-                    </div>
-                </div>
-                <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="">${item.city}</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">所属门店:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="storeId" name="storeId">
-                            <option value="">${item.name}</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">课包类型:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="coursePackageTypeId" name="pCode" onchange="TGoodsInfoDlg.packageChange(this)">
-                            <option value="">${shopName}</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <label class="col-sm-3 control-label">课包名称:</label>
-                    <div class="col-sm-9">
-                        <select class="form-control" id="coursePackageId" name="coursePackageId" onchange="TGoodsInfoDlg.timeChange(this)">
-                            <option value="">${pageName}</option>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group" >
-                    <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>
-                        </select>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">原价:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="price1" name="price" type="text" value="${item.price}"  readonly>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">兑换方式:</label>
-                    <div class="col-sm-9">
-                        <input type="radio" name="redemptionMethod" value="1" checked onclick="updateMethod(1)"> 积分
-                        <input type="radio" name="redemptionMethod" value="2" onclick="updateMethod(2)"> 现金+积分
-                    </div>
-                </div>
-
-                <div class="form-group" id="y3" hidden>
-                    <label class="col-sm-3 control-label">所需现金:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="cash1" name="cash" type="text" value="${item.cash}">
-
-                    </div>
-                </div>
-                <div class="form-group" id="y4">
-                    <label class="col-sm-3 control-label">所需积分:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="integral1" name="integral" type="text" value="${item.integral}">
-
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
-                    <div class="col-sm-4">
-                        <img  height="100px" width="100px" src="${item.cover}">
-                    </div>
-                </div>
-
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label head-scu-label">*商品图片:</label>
-                    <div class="col-sm-4">
-                        @for(im in pictures){
-                        <img  height="100px" width="100px" src="${im}">
-                        @}
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">用户人群:</label>
-                    <div class="col-sm-9">
-                        <input type="radio" name="userPopulation" value="1" checked> 全部用户
-                        <input type="radio" name="userPopulation" value="2" > 年度会员
-                        <input type="radio" name="userPopulation" value="3" > 已有学员用户
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">发放数量:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="quantityIssued1" name="quantityIssued" type="text" value="${item.quantityIssued}" readonly>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">限领数量:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="pickUpQuantity1" name="pickUpQuantity" type="text" value="${item.pickUpQuantity}" readonly>
-                    </div>
-                </div>
-                <#input id="startTime1" name="有效期" type="text" value="${sTime} - ${eTime}" readonly="true"/>
-
-                <div class="form-group" style="margin-left:262px">
-                    <label class="col-sm-1 control-label">兑换说明:</label>
-                    <div class="col-sm-5">
-                        <textarea type="text/plain" id="editor1"  style="height: 300px;width: 800px;" readonly>${item.redemptionInstructions}</textarea>
-                    </div>
-                </div>
-
-                <div class="form-group">
-                    <label class="col-sm-3 control-label">排序:</label>
-                    <div class="col-sm-9">
-                        <input class="form-control" id="sort1" name="sort" type="text" value="${item.sort}" readonly>
-
-                    </div>
-                </div>
-
-            </div>
-
-
-        </div>
-</div>
-
-<div class="row btn-group-m-t">
-    <div class="col-sm-10 col-sm-offset-5">
-        <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
-    </div>
-</div>
-
-        </div>
-
-<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/tGoods/tGoods_info.js"></script>
-<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
-<script>
-    laydate.render({
-        elem: '#startTime',
-        range: true
-    });
-    laydate.render({
-        elem: '#startTime1',
-        range: true
-    });
-    function updateMethod(e) {
-        console.log(e)
-        if(e==1){
-            $("#y3").hide()
-            $("#y4").show()
-        }else if(e==2){
-            $("#y4").show()
-            $("#y3").show()
-        }else if(e==3){
-            $("#y1").hide()
-            $("#y2").show()
-        }else if(e==4){
-            $("#y1").show()
-            $("#y2").show()
-        }else if(e==5) {
-            $("#y2").hide()
-            $("#y1").show()
-        }
-
-    }
-    let i =1;
-    function updateType(e) {
-
-        if(e==2){
-            $("#b1").hide()
-            $("#b2").show()
-            if(i==1){
-                var drivingLicensePhoto = new $WebUpload("cover1");
-                drivingLicensePhoto.setUploadBarId("progressBar");
-                drivingLicensePhoto.init();
-                i++;
-            }
-
-        }else {
-            $("#b2").hide()
-            $("#b1").show()
-        }
-    }
-
-
-
-    function changeCity(n){
-
-        var provinceSelect = null;
-        if (n === undefined || n === null || n === ''){
-            provinceSelect = document.getElementById("provinceData");
-        }else {
-            provinceSelect = document.getElementById("provinceData"+n);
-        }
-
-        var citySelect = null;
-        if (n === undefined || n === null || n === ''){
-            citySelect = document.getElementById("cityData");
-        }else {
-            citySelect = document.getElementById("cityData"+n);
-        }
-
-        var selectedProvince = provinceSelect.value;
-        // 清空城市下拉框
-        citySelect.innerHTML = '<option value="">请选择</option>';
-        if (selectedProvince === "") {
-            return;
-        }
-        var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity", function(data){
-            data.forEach(province => {
-                var option = document.createElement("option");
-                option.value = province.id;  // 根据你的数据结构确定省份的id字段
-                option.text = province.name;  // 根据你的数据结构确定省份的name字段
-                citySelect.appendChild(option);
-            });
-        },function(data){
-            console.log('data:',data)
-            Feng.error("获取失败!" + data.responseJSON.message + "!");
-        });
-        ajax.set('province',selectedProvince);
-        ajax.start();
-    }
-
-    /**
-     * 全国通用
-     */
-    function scopeOfApplication1() {
-        $("#storeSelect").hide();
-        $("#citySelect").hide();
-    }
-    /**
-     * 指定城市
-     */
-    function scopeOfApplication2() {
-        $("#storeSelect").hide();
-        $("#citySelect").show();
-    }
-    /**
-     * 指定门店
-     */
-    function scopeOfApplication3() {
-        $("#storeSelect").show();
-        $("#citySelect").hide();
-    }
-
-
-
-
-    var vue2 = new Vue({
-        el: '#app',
-        data: {
-            autoUpload: true,//自动上传
-            imageUrl1: '',//模型数据,用于上传图片完成后图片预览
-            dialogVisible: false
-        },
-        methods: {
-            handleAvatarSuccess(res, file) {
-                TGoodsInfoDlg.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() {
-        },
-    });
-    var vue2 = new Vue({
-        el: '#app1',
-        data: {
-            autoUpload: true,//自动上传
-            imageUrl1: '',//模型数据,用于上传图片完成后图片预览
-            dialogVisible: false
-        },
-        methods: {
-            handleAvatarSuccess(res, file) {
-                TGoodsInfoDlg.goodsPicArray1.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() {
-        },
-    });
-
-
-    window.onload = function(){
-        var OBJradio=document.getElementsByName("redemptionMethod")
-        if(OBJradio==1){
-            $("#y4").show()
-            $("#y3").hide()
-        }
-        if(OBJradio==2){
-            $("#y4").show()
-            $("#y3").show()
-        }
-        for(i=0;i<OBJradio.length;i++){//循环查找这个radio
-            if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同
-                OBJradio[i].checked=true//修改选中状态
-            }
-        }
-        var OBJradio=document.getElementsByName("userPopulation")
-        for(i=0;i<OBJradio.length;i++){//循环查找这个radio
-            if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同
-                OBJradio[i].checked=true//修改选中状态
-            }
-        }
-    }
-</script>
-@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
index 1390455..59b18fe 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_edit.html
@@ -8,7 +8,6 @@
         height: 100px;
         width: 100px;
         overflow: hidden;
-        display: inline-block;
     }
 
     .avatar-uploader .el-upload:hover {
@@ -43,7 +42,7 @@
     <div class="ibox-content">
         <div class="form-horizontal" id="carInfoForm">
             <div id="b1">
-                <input id="goodsId" value="${id}" hidden="hidden">
+
                 <#input id="name" name="商品名称" type="text" value="${item.name}" readonly="true" />
 
                 <#avatar id="cover" name="商品封面:" avatarImg="${item.cover}" />
@@ -53,14 +52,7 @@
                     <div class="col-sm-6">
                         <div class="form-group">
                             <label class="col-sm-3 control-label">商品图片(请上传不超过五张图片): </label>
-                            <div class="col-sm-2" style="width: 100%;margin-left: 24%;margin-top: 1%">
-                                <div class="avatar-uploader" style="display: flex;">
-                                @for(im in pictures){
-                                    <div style="margin-right: 16px;position: relative">
-                                        <img  height="100px" width="100px" src="${im}">
-                                        <i class="el-icon-delete" onclick="delImg(this)" style="color: red;font-size: 18px;position: absolute;left: 0;right: 0;top: 0;bottom: 0"></i>
-                                    </div>
-                                @}
+                            <div class="col-sm-2" style="width: 100%;margin-left: 12%;margin-top: 1%">
                                 <el-upload
                                         :limit="5"
                                         class="avatar-uploader"
@@ -71,13 +63,17 @@
                                         :on-remove="handleRemove">
                                     <i class="el-icon-plus"></i>
                                 </el-upload>
-                                </div>
+                                <el-dialog :visible.sync="dialogVisible">
+<!--                                    <img width="100%" :src="imageUrl1" alt="">-->
+                                    @for(im in pictures){
+                                    <img width="100%" src="${im}">
+                                    @}
                             </div>
                         </div>
 
                     </div>
                 </div>
-                <input id="quantityHas" value="${item.quantityHas}" hidden="hidden">
+
                 <div class="form-group">
                     <label class="col-sm-3 control-label">发放数量:</label>
                     <div class="col-sm-9">
@@ -113,8 +109,8 @@
 
     <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="TGoodsInfoDlg.editSubmit()"/>
-            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
+            <#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>
 
@@ -136,7 +132,7 @@
         },
         methods: {
             handleAvatarSuccess(res, file) {
-                TGoodsInfoDlg.goodsPicArray.push(file.response);
+                TCarInfoDlg.goodsPicArray.push(file);
             },
             beforeAvatarUpload(file) {
                 const isLt2M = file.size / 1024 / 1024 < 10;
@@ -146,7 +142,7 @@
                 return isLt2M;
             },
             handleRemove(file, fileList) {
-                TGoodsInfoDlg.goodsPicArray = TGoodsInfoDlg.goodsPicArray.filter(item => {
+                TCarInfoDlg.goodsPicArray = TCarInfoDlg.goodsPicArray.filter(item => {
                     return item.uid != file.uid;
                 });
             },
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
index 247e10d..08f1a6a 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionAdd.html
@@ -23,14 +23,15 @@
                                         <label for="editor_1">*答复内容:</label>
                                         <textarea id="editor_1" type="text/plain" style="width:1200px;height:400px;"></textarea>
                                         </div>
+
+                                        <label for="sort">*排   序:</label>
+                                        <input  type="text" id="sort" placeholder="请输入排序"><span>&nbsp;&nbsp;&nbsp;数字越大,权重越大</span>
                                         <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="add();" />
                                                 <#button btnCss="info" name="关闭" id="close" icon="fa-check"  clickFun="closeD();" />
                                             </div>
                                         </div>
-                                        <label for="sort">*排   序:</label>
-                                        <input  type="text" id="sort" placeholder="请输入排序"><span>&nbsp;&nbsp;&nbsp;数字越大,权重越大</span>
                                     </div>
                                 </div>
 
@@ -90,7 +91,9 @@
             data: JSON.stringify(data), // 将数据转换为 JSON 字符串
             success: function(response) {
                 Feng.success("添加成功!");
-                window.parent.TQuestion.table.refresh();            },
+                window.parent.TQuestion.table.refresh();
+                closeD();
+                },
             error: function(xhr, status, error) {
                 var errorMessage = xhr.responseText ? xhr.responseText : "添加失败!";
                 Feng.error(errorMessage);
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
index 2686537..fa64c86 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tQuestion/TQuestionEdit.html
@@ -25,14 +25,15 @@
                                             <label for="editor_1">*答复内容:</label>
                                             <textarea id="editor_1"  type="text/plain" style="width:1200px;height:400px;">${info.answer}</textarea>
                                         </div>
+
+                                        <label for="sort">*排   序:</label>
+                                        <input type="text" id="sort" value="${info.sort}" placeholder="请输入排序"><span>&nbsp;&nbsp;&nbsp;数字越大,权重越大</span>
                                         <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="edit();" />
                                                 <#button btnCss="info" name="关闭" id="close" icon="fa-check" clickFun="closeD();" />
                                             </div>
                                         </div>
-                                        <label for="sort">*排   序:</label>
-                                        <input type="text" id="sort" value="${info.sort}" placeholder="请输入排序"><span>&nbsp;&nbsp;&nbsp;数字越大,权重越大</span>
                                     </div>
                                 </div>
 
@@ -100,6 +101,7 @@
             data: JSON.stringify(data), // 将数据转换为 JSON 字符串
             success: function(response) {
                 window.parent.TQuestion.table.refresh();
+                closeD();
                 Feng.success("修改成功!");
             },
             error: function(xhr, status, error) {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js
new file mode 100644
index 0000000..50515ed
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js
@@ -0,0 +1,423 @@
+/**
+ * 管理初始化
+ */
+var TQuestion = {
+    id: "TQuestionTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+var roleType = $("#roleType").val()
+/**
+ * 初始化表格的列
+ */
+TQuestion.initColumn = function () {
+    return [
+        {field: 'selectItem', checkbox: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '省', field: 'province', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title: '市', field: 'city', visible: roleType==1?true:false, align: 'center', valign: 'middle'},
+        {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'},
+        {title: '生日', field: 'birthday', visible: true, align: 'center', valign: 'middle'},
+        {title: '性别', field: 'gender', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return {1:"男",2:"女"}[data]
+            }
+        },
+        {title: '销售人员', field: 'salesmanUserName', visible: true, align: 'center', valign: 'middle'},
+        {title: '是否为年度会员', field: 'isVip', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return {1:"是",0:"否"}[data]
+            }
+        },
+        {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle',
+            formatter:function (data) {
+                return {1:"正常",2:"冻结",3:"已删除"}[data]
+            }}
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+TQuestion.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        TQuestion.seItem = selected[0];
+        return true;
+    }
+};
+TQuestion.dataCount = 0;
+TQuestion.phone = "";
+TQuestion.phoneId = "";
+
+/**
+ * 点击添加
+ */
+TQuestion.openAdd = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加分类',
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/appUser/add'
+    });
+    this.layerIndex = index;
+};
+
+
+/**
+ * 点击编辑
+ */
+TQuestion.openChange = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length >1 ){
+        Feng.info("只能选择一个问题进行编辑!");
+    }else {
+        if (this.check()){
+            var selected = $('#' + this.id).bootstrapTable('getSelections');
+            var index = layer.open({
+                type: 2,
+                title: '编辑分类',
+                area: ['100%', '100%'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/bodySideAppointment/update/' + TQuestion.seItem.id
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+
+/**
+ * 上架
+ */
+
+TQuestion.onShelf = function () {
+if (this.check()){
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+    var ids=[];
+    selected.forEach(function(obj) {
+        var id = obj.id;
+        ids.push(id);
+    });
+    $.ajax({
+        url: Feng.ctxPath + "/bodySideAppointment/changeState",
+        type: "POST",
+        contentType: "application/json", // 设置请求头的 Content-Type
+        data: JSON.stringify(ids), // 将数据转换为 JSON 字符串
+        success: function(response) {
+            Feng.success("修改成功!");
+            TQuestion.search();
+
+        },
+        error: function(xhr, status, error) {
+            var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
+            Feng.error("您的网络异常!");
+        }
+    });
+
+}
+};
+
+
+/**
+ * 下架
+ */
+TQuestion.offShelf = function () {
+
+    if (this.check()){
+        var selected = $('#' + this.id).bootstrapTable('getSelections');
+        const data1 = {
+            ids:[],
+            state:null
+        };
+        selected.forEach(function(obj) {
+            var id = obj.id;
+            data1.ids.push(id);
+        });
+        data1.state = 2;
+        $.ajax({
+            url: Feng.ctxPath + "/bodySideAppointment/changeState",
+            type: "POST",
+            contentType: "application/json", // 设置请求头的 Content-Type
+            data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+            success: function(response) {
+                Feng.success("修改成功!");
+                TQuestion.search();
+            },
+            error: function(xhr, status, error) {
+                var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
+                Feng.error("您的网络异常!");
+            }
+        });
+    }
+};
+
+/**
+ * 查看视频详情
+ */
+TQuestion.getInfo = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length >1 ){
+        Feng.info("只能选择一条进行查看!");
+    }else {
+        if (this.check()){
+            var selected = $('#' + this.id).bootstrapTable('getSelections');
+
+            var index = layer.open({
+                type: 2,
+                title: '详情',
+                area: ['100%', '100%'], //宽高
+                fix: false, //不固定
+                maxmin: true,
+                content: Feng.ctxPath + '/benefits/getBenefitsVideos/' + TQuestion.seItem.id
+            });
+            this.layerIndex = index;
+        }
+    }
+};
+
+/**
+ * 删除
+ */
+TQuestion.delete = function () {
+    if (this.check()){
+        var selected = $('#' + this.id).bootstrapTable('getSelections');
+        const data1 = {
+            ids:[],
+            state:null
+        };
+        selected.forEach(function(obj) {
+            var id = obj.id;
+            data1.ids.push(id);
+        });
+        data1.state = 3;
+        $.ajax({
+            url: Feng.ctxPath + "/benefits/changeState",
+            type: "POST",
+            contentType: "application/json", // 设置请求头的 Content-Type
+            data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
+            success: function(response) {
+                Feng.success("删除成功!");
+                TQuestion.search();
+            },
+            error: function(xhr, status, error) {
+                var errorMessage = xhr.responseText ? xhr.responseText : "删除失败!";
+                Feng.error(errorMessage);
+            }
+        });
+    }
+};
+TQuestion.oneChange = function () {
+    var province = $('#pCode option:selected').text();
+    var citySelect = document.getElementById("cCode");
+    var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+        if(data!=null){
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.cityCode+"'>"+v.city+"</option>";
+            });
+            $("#cCode").empty().append(content);
+        }
+    });
+    if (province === ""){
+        citySelect.innerHTML = '<option value="">请先选择省</option>';
+    }
+    ajax.set("province",province);
+    ajax.start();
+};
+
+TQuestion.oneChangeNext = function (e) {
+    var oneId=$(e).val();
+    var city = $('#cCode option:selected').text();
+
+    var citySelect = document.getElementById("account");
+    var storeSelect = document.getElementById("store");
+    if (oneId === ""){
+        citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+        storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+    }
+    var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+        if(data!=null && data.length !== 0){
+            var content='<option value="">选择门店</option>';
+            $.each(data, function(k,v) {
+                content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+            });
+            $("#store").empty().append(content);
+        }else {
+            storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+        }
+    });
+    ajax1.set("oneId",city);
+    ajax1.start();
+};
+TQuestion.addSubmit = function(){
+    var data = {
+        id:null,
+        province:"",
+        provinceCode:"",
+        city:"",
+        cityCode:"",
+        storeId:null,
+        storeName:"",
+        parentName:"",
+        phone:"",
+        learnerName:"",
+        learnerAge:null,
+        birthday:"",
+        appointmentTime:"",
+        status:null,
+        state:null
+    };
+    data.id                      = $("#name").val()
+    data.province                = $('#pCode option:selected').text();
+    data.provinceCode            = $("#pCode").val()
+    data.city                    = $('#cCode option:selected').text();
+    data.cityCode                = $("#cCode").val()
+    data.storeId                 = $("#store").val()
+    data.storeName               = $('#store option:selected').text();
+    data.parentName              = $("#parentName").val()
+    data.phone                   = $("#phone").val()
+    data.learnerName             = $("#learnerName").val()
+    data.learnerAge              = $("#learnerAge").val()
+    data.birthday                = $("#birthday").val()
+    data.appointmentTime         = $("#appointmentTime").val().replace("T"," ")
+    console.log("看看")
+    console.log(data.appointmentTime);
+    if($("#pCode").val()==''){
+        Feng.info("请选择省")
+        return;
+    }
+    if($("#cCode").val()==''){
+        Feng.info("请选择市")
+        return;
+    }
+    if($("#store").val()=='' ){
+        Feng.info("请选择门店")
+        return;
+    }
+    if($("#parentName").val()=='' ){
+        Feng.info("请输入家长姓名")
+        return;
+    }
+
+    if($("#phone").val()=='' ){
+        Feng.info("请输入家长联系方式")
+        return;
+    }
+    if($("#learnerName").val()=='' ){
+        Feng.info("请输入学员姓名")
+        return;
+    }
+    if($("#learnerAge").val()=='' ){
+        Feng.info("请输入学员年龄")
+        return;
+    }
+    if($("#birthday").val()=='' ){
+        Feng.info("请选择学员生日")
+        return;
+    }
+    if($("#appointmentTime").val()=='' ){
+        Feng.info("请选择预约时间")
+        return;
+    }
+    $.ajax({
+        url: Feng.ctxPath + "/appUser/addAppUser" ,
+        type: "POST",
+        data: JSON.stringify(data),
+        contentType: "application/json",
+        success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
+            Feng.success("添加成功");
+        },
+        error: function (xhr, status, error) {
+            Feng.error("添加失败!" + error);
+        }
+    });
+
+};
+TQuestion.updateSubmit = function(){
+    var data = {
+        id:null,
+        name:"",
+        position:"",
+        sort:"",
+    };
+    data.name     = $("#name").val()
+    data.position = $("#position").val()
+    data.sort     = $("#sort").val()
+    data.id       = $("#dataId").val()
+    if($("#name").val()==''){
+        Feng.info("请输入分类名称")
+        return;
+    }
+    if($("#cCode").val()==''){
+        Feng.info("请选择所在位置")
+        return;
+    }
+    if($("#account").val()=='' ){
+        Feng.info("请输入排序")
+        return;
+    }
+    $.ajax({
+        url: Feng.ctxPath + "/benefits/addBenefits" ,
+        type: "POST",
+        data: JSON.stringify(data),
+        contentType: "application/json",
+        success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
+            Feng.success("添加成功");
+        },
+        error: function (xhr, status, error) {
+            Feng.error("添加失败!" + error);
+        }
+    });
+};
+/**
+ * 查询列表
+ */
+TQuestion.search = function (e) {
+    var queryData = {};
+    queryData['province']           = $("#pCode").val();
+    queryData['city']               = $("#cCode").val();
+    queryData['name']               = $("#name").val();
+    queryData['phone']              = $("#phone").val();
+    queryData['isVip']              = $("#isVip").val();
+    queryData['salesmanUserName']   = $("#salesmanUserName").val();
+    TQuestion.table.refresh({query: queryData});
+};
+
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
+/**
+ * 重置搜索
+ */
+TQuestion.resetSearch = function () {
+    $("#pCode").val('');
+    $("#cCode").val('');
+    $("#name").val('');
+    $("#phone").val('');
+    $("#isVip").val('');
+    $("#salesmanUserName").val('');
+    TQuestion.search(null);
+};
+
+
+$(function () {
+    var defaultColunms = TQuestion.initColumn();
+    var table = new BSTable(TQuestion.id, "/appUser/listAll", defaultColunms);
+    table.setPaginationType("client");
+    TQuestion.table = table.init();
+});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js
index ec2ea1b..3151938 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/TBenefits.js
@@ -29,7 +29,12 @@
             }}
     ];
 };
-
+/**
+ * 关闭此对话框
+ */
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
 /**
  * 检查是否选中
  */
@@ -266,6 +271,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
 
         },
@@ -273,7 +280,7 @@
             Feng.error("添加失败!" + error);
         }
     });
-    TSite.search();
+
 };
 TQuestion.updateSubmit = function(){
     var data = {
@@ -304,14 +311,17 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
         },
         error: function (xhr, status, error) {
             Feng.error("添加失败!" + error);
         }
     });
-    TSite.search();
+
 };
+
 /**
  * 查询列表
  */
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
index 77df638..4a6731b 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos.js
@@ -7,7 +7,9 @@
     table: null,
     layerIndex: -1
 };
-
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
 /**
  * 初始化表格的列
  */
@@ -280,6 +282,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
 
         },
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js
index 42406f6..b14c0d4 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_add.js
@@ -7,7 +7,9 @@
     table: null,
     layerIndex: -1
 };
-
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
 /**
  * 初始化表格的列
  */
@@ -281,6 +283,9 @@
         success: function (response) {
             if (response === 500){
                 Feng.error("所选视频已经存在于当前福利视频分类下!");
+                window.parent.TQuestion.table.refresh();
+                TQuestion.close();
+
             }else{
                 Feng.success("添加成功");
             }
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js
index 612e13b..d996035 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/benefits/tBenefitsVideos_edit.js
@@ -7,7 +7,9 @@
     table: null,
     layerIndex: -1
 };
-
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
 /**
  * 初始化表格的列
  */
@@ -273,6 +275,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
 
         },
@@ -282,6 +286,9 @@
     });
     TSite.search();
 };
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+};
 TQuestion.updateSubmit = function(){
     var data = {
         id:null,
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js
index 8f7d79b..aff4b9e 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment.js
@@ -80,7 +80,7 @@
                 area: ['100%', '100%'], //宽高
                 fix: false, //不固定
                 maxmin: true,
-                content: Feng.ctxPath + '/benefits/update/' + TQuestion.seItem.id
+                content: Feng.ctxPath + '/bodySideAppointment/update/' + TQuestion.seItem.id
             });
             this.layerIndex = index;
         }
@@ -106,12 +106,12 @@
         contentType: "application/json", // 设置请求头的 Content-Type
         data: JSON.stringify(ids), // 将数据转换为 JSON 字符串
         success: function(response) {
-            Feng.success("上架成功!");
+            Feng.success("修改成功!");
             TQuestion.search();
 
         },
         error: function(xhr, status, error) {
-            var errorMessage = xhr.responseText ? xhr.responseText : "上架失败!";
+            var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
             Feng.error("您的网络异常!");
         }
     });
@@ -142,37 +142,14 @@
             contentType: "application/json", // 设置请求头的 Content-Type
             data: JSON.stringify(data1), // 将数据转换为 JSON 字符串
             success: function(response) {
-                Feng.success("下架成功!");
+                Feng.success("修改成功!");
                 TQuestion.search();
             },
             error: function(xhr, status, error) {
-                var errorMessage = xhr.responseText ? xhr.responseText : "下架失败!";
+                var errorMessage = xhr.responseText ? xhr.responseText : "修改失败!";
                 Feng.error("您的网络异常!");
             }
         });
-    }
-};
-/**
- * 查看详情
- */
-TQuestion.getInfo = function () {
-    var selected = $('#' + this.id).bootstrapTable('getSelections');
-    if(selected.length >1 ){
-        Feng.info("只能选择一条进行查看!");
-    }else {
-        if (this.check()){
-            var selected = $('#' + this.id).bootstrapTable('getSelections');
-
-            var index = layer.open({
-                type: 2,
-                title: '详情',
-                area: ['100%', '100%'], //宽高
-                fix: false, //不固定
-                maxmin: true,
-                content: Feng.ctxPath + '/benefits/info/' + TQuestion.seItem.id
-            });
-            this.layerIndex = index;
-        }
     }
 };
 
@@ -275,7 +252,6 @@
     ajax1.start();
 };
 TQuestion.addSubmit = function(){
-
     var data = {
         id:null,
         province:"",
@@ -351,6 +327,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
         },
         error: function (xhr, status, error) {
@@ -388,6 +366,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
             Feng.success("添加成功");
         },
         error: function (xhr, status, error) {
@@ -398,15 +378,20 @@
 /**
  * 查询列表
  */
-TQuestion.search = function () {
+TQuestion.search = function (e) {
+
     var queryData = {};
+
     queryData['phone'] =     $("#phone").val();
     queryData['parentName'] = $("#parentName").val();
     queryData['state'] = $("#state").val();
+    queryData['day'] = e;
     TQuestion.table.refresh({query: queryData});
 };
 
-
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+}
 /**
  * 重置搜索
  */
@@ -415,9 +400,10 @@
     $("#phone").val('');
     $("#parentName").val('');
     $("#state").val('');
-    TQuestion.search();
+    TQuestion.search(null);
 };
 
+
 $(function () {
     var defaultColunms = TQuestion.initColumn();
     var table = new BSTable(TQuestion.id, "/bodySideAppointment/listAll", defaultColunms);
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js
index 612e13b..0c2afa8 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/bodySideAppointment/tBodySideAppointment_edit.js
@@ -54,7 +54,56 @@
 TQuestion.dataCount = 0;
 TQuestion.phone = "";
 TQuestion.phoneId = "";
+// 选择省 获取对应市区
+TQuestion.oneChange = function () {
+    var province = $('#pCode option:selected').text();
+    var citySelect = document.getElementById("cCode");
+    var storeSelect = document.getElementById("store");
+    var ajax = new $ax(Feng.ctxPath + "/tSite/getCity", function(data){
+        if(data!=null){
+            var content='<option value="">选择市</option>';
+            $.each(data, function(k,v) {
+                content += "<option value='"+v.cityCode+"'>"+v.city+"</option>";
+            });
+            $("#cCode").empty().append(content);
+        }
+    });
+    if (province === ""){
+        citySelect.innerHTML = '<option value="">请先选择省</option>';
+        storeSelect.innerHTML = '<option value="">请先选择省</option>';
+    }else{
+        citySelect.innerHTML = '<option value="">请选择市</option>';
+        storeSelect.innerHTML = '<option value="">请先选择市区</option>';
+    }
+    ajax.set("province",province);
+    ajax.start();
+};
 
+// 选择市 获取对应门店
+TQuestion.oneChangeNext = function (e) {
+    var oneId=$(e).val();
+    var city = $('#cCode option:selected').text();
+
+    var citySelect = document.getElementById("account");
+    var storeSelect = document.getElementById("store");
+    if (oneId === ""){
+        citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+        storeSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+    }
+    var ajax1 = new $ax(Feng.ctxPath + "/tSite/storeChangeNext", function(data){
+        if(data!=null && data.length !== 0){
+            var content='<option value="">选择门店</option>';
+            $.each(data, function(k,v) {
+                content += "<option style='width: 300px' value='"+v.id+"'>"+v.name+"</option>";
+            });
+            $("#store").empty().append(content);
+        }else {
+            storeSelect.innerHTML = '<option value="">当前所选市没有门店</option>';
+        }
+    });
+    ajax1.set("oneId",city);
+    ajax1.start();
+};
 /**
  * 点击添加
  */
@@ -241,83 +290,98 @@
         });
     }
 };
-
+TQuestion.close = function() {
+    parent.layer.close(window.parent.TQuestion.layerIndex);
+};
 TQuestion.addSubmit = function(){
     var data = {
         id:null,
-        name:"",
-        position:"",
-        sort:"",
+        province:"",
+        provinceCode:"",
+        city:"",
+        cityCode:"",
+        storeId:null,
+        storeName:"",
+        parentName:"",
+        phone:"",
+        learnerName:"",
+        learnerAge:null,
+        birthday:"",
+        appointmentTime:"",
+        status:null,
+        state:null
     };
-    data.name       = $("#name").val()
-    data.position           = $("#position").val()
-    data.sort           = $("#sort").val()
+    data.id                         = $("#id").val()
+    data.province                   = $('#pCode option:selected').text();
+    data.provinceCode               = $("#pCode").val()
+    data.city                       = $('#cCode option:selected').text();
+    data.cityCode                   = $("#cCode").val()
+    data.storeId                    = $("#store").val()
+    data.storeName                  = $('#store option:selected').text();
+    data.parentName                 = $("#parentName").val()
+    data.phone                      = $("#phone").val()
+    data.learnerName                = $("#learnerName").val()
+    data.learnerAge                 = $("#learnerAge").val()
+    data.birthday                   = $("#birthday").val()
+    data.appointmentTime            = $("#appointmentTime").val().replace("T"," ")
+    var roleType = $("#roleType").val()
 
-
-    if($("#name").val()==''){
-        Feng.info("请输入分类名称")
+    if(roleType == 1){
+        if($("#pCode").val()==''){
+            Feng.info("请选择省")
+            return;
+        }
+        if($("#cCode").val()==''){
+            Feng.info("请选择市")
+            return;
+        }
+    }
+    if(roleType == 1 || roleType == 2) {
+        if ($("#store").val() == '') {
+            Feng.info("请选择门店")
+            return;
+        }
+    }
+    if($("#parentName").val()=='' ){
+        Feng.info("请输入家长姓名")
         return;
     }
-    if($("#cCode").val()==''){
-        Feng.info("请选择所在位置")
+
+    if($("#phone").val()=='' ){
+        Feng.info("请输入家长联系方式")
         return;
     }
-    if($("#account").val()=='' ){
-        Feng.info("请输入排序")
+    if($("#learnerName").val()=='' ){
+        Feng.info("请输入学员姓名")
+        return;
+    }
+    if($("#learnerAge").val()=='' ){
+        Feng.info("请输入学员年龄")
+        return;
+    }
+    if($("#birthday").val()=='' ){
+        Feng.info("请选择学员生日")
+        return;
+    }
+    if($("#appointmentTime").val()=='' ){
+        Feng.info("请选择预约时间")
         return;
     }
 
     $.ajax({
-        url: Feng.ctxPath + "/benefits/addBenefits" ,
+        url: Feng.ctxPath + "/bodySideAppointment/addBodySideAppointments" ,
         type: "POST",
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
-            Feng.success("添加成功");
-
+            window.parent.TQuestion.table.refresh();
+            TQuestion.close();
+            Feng.success("修改成功");
         },
         error: function (xhr, status, error) {
-            Feng.error("添加失败!" + error);
+            Feng.error("修改失败!" + error);
         }
     });
-    TSite.search();
-};
-TQuestion.updateSubmit = function(){
-    var data = {
-        id:null,
-        name:"",
-        position:"",
-        sort:"",
-    };
-    data.name     = $("#name").val()
-    data.position = $("#position").val()
-    data.sort     = $("#sort").val()
-    data.id       = $("#dataId").val()
-    if($("#name").val()==''){
-        Feng.info("请输入分类名称")
-        return;
-    }
-    if($("#cCode").val()==''){
-        Feng.info("请选择所在位置")
-        return;
-    }
-    if($("#account").val()=='' ){
-        Feng.info("请输入排序")
-        return;
-    }
-    $.ajax({
-        url: Feng.ctxPath + "/benefits/addBenefits" ,
-        type: "POST",
-        data: JSON.stringify(data),
-        contentType: "application/json",
-        success: function (response) {
-            Feng.success("添加成功");
-        },
-        error: function (xhr, status, error) {
-            Feng.error("添加失败!" + error);
-        }
-    });
-    TSite.search();
 };
 /**
  * 查询列表
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js
index a4ba943..ca3ee42 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach.js
@@ -320,7 +320,6 @@
 var em = "";// 门店经营结束时间:分钟
 
 TSite.addSubmit = function(){
-
     var data = {
         province:"",
         city:"",
@@ -474,8 +473,9 @@
                 data: JSON.stringify(data),
                 contentType: "application/json",
                 success: function (response) {
+                    window.parent.TSite.table.refresh();
                     Feng.success("添加成功");
-                    TSite.search();
+                    TSite.close();
                 },
                 error: function (xhr, status, error) {
                     Feng.error("添加失败!" + error);
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js
index 8c1338e..ca9fb56 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_add.js
@@ -428,6 +428,8 @@
         data: JSON.stringify(data),
         contentType: "application/json",
         success: function (response) {
+            window.parent.TSite.table.refresh();
+            TSite.close();
             Feng.success("添加成功");
 
         },
@@ -435,7 +437,6 @@
             Feng.error("添加失败!" + error);
         }
     });
-    TSite.search();
 };
 
 TSite.search = function () {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js
index b0b9dbc..152f2e9 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoach/tCoach_info.js
@@ -334,6 +334,8 @@
                 data: JSON.stringify(data),
                 contentType: "application/json",
                 success: function (response) {
+                    window.parent.TSite.table.refresh();
+                    TSiteInfo.close();
                     Feng.success("修改成功");
                 },
                 error: function (xhr, status, error) {
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
index f42e2e2..467b12e 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TCouponInfo.js
@@ -432,8 +432,6 @@
                 }
             }
             cts = cityIds.join(',');
-        }else {
-            cts = cityIds;
         }
     }
 
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js
deleted file mode 100644
index 95da68a..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount.js
+++ /dev/null
@@ -1,358 +0,0 @@
-/**
- * 车辆管理管理初始化
- */
-var TCompetition = {
-    id: "TCompetitionTable",	//表格id
-    seItem: null,		//选中的条目
-    table: null,
-    layerIndex: -1
-};
-var language =1
-/**
- * 初始化表格的列
- */
-TCompetition.initColumn = function () {
-    return [
-        {field: 'selectItem', radio: true},
-        {title: '所在省', field: 'pname', visible: true, align: 'center', valign: 'middle'
-        },
-        {title: '所在市', field: 'cname', visible: true, align: 'center', valign: 'middle'},
-        {title: '所属门店', field: 'shopName', visible: true, align: 'center', valign: 'middle'
-        },
-        {title:  '课包名称', field: 'name', visible: true, align: 'center', valign: 'middle'
-        },
-        {title:  '折扣类型', field: 'type', visible: true, align: 'center', valign: 'middle'
-        },
-        {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle'
-            ,formatter:function (data) {
-                return{1:"上架中",2:"下架中"}[data]
-            }
-        },
-    ];
-};
-function currentTime(timestamp){
-    var time = timestamp + '';
-    if(time.length != 13){
-        timestamp = timestamp * 1000;
-    }
-    var date = new Date(timestamp);;
-    var Y = date.getFullYear() + '-';
-    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
-
-    var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
-    var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
-    var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
-    var strDate = Y + M + D + h + m + s;
-    return strDate
-}
-
-function currentTime1(timestamp){
-    var time = timestamp + '';
-    if(time.length != 13){
-        timestamp = timestamp * 1000;
-    }
-    var date = new Date(timestamp);;
-    var Y = date.getFullYear() + '-';
-    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
-
-    var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
-    var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
-    var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
-    var strDate = Y + M + D ;
-    return strDate
-}
-/**
- * 检查是否选中
- */
-TCompetition.check = function () {
-    var selected = $('#' + this.id).bootstrapTable('getSelections');
-    if(selected.length == 0){
-            Feng.info("请先选中表格中的某一记录!");
-        return false;
-    }else{
-        TCompetition.seItem = selected[0];
-        return true;
-    }
-};
-
-/**
- * 点击添加车辆管理
- */
-TCompetition.openAddTCompetition = function () {
-    var index = layer.open({
-        type: 2,
-        title: '添加',
-        area: ['100%', '100%'], //宽高
-        fix: false, //不固定
-        maxmin: true,
-        content: Feng.ctxPath + '/tCity/tCity_add'
-    });
-    this.layerIndex = index;
-};
-
-/**
- * 打开查看车辆管理详情
- */
-TCompetition.openTCompetitionDetail = function () {
-    if (this.check()) {
-        var index = layer.open({
-            type: 2,
-            title:'编辑',
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/tCity/tCity_update/' + TCompetition.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-
-/**
- * 删除车辆管理
- */
-TCompetition.updateState = function (e) {
-    if (this.check()) {
-        var id = TCompetition.seItem.id;
-            var ajax = new $ax(Feng.ctxPath + "/tDiscount/updateState", function (data) {
-                if(data.code==200){
-                    Feng.success("操作成功")
-                }else {
-                    Feng.error("操作失败")
-                }
-                TCompetition.table.refresh();
-            }, function (data) {
-                Feng.error("操作失败")
-                TCompetition.table.refresh();
-            });
-            ajax.set("id",id);
-            ajax.set("status",e);
-            ajax.start();
-        ;
-    }
-};
-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()) {
-        var index = layer.open({
-            type: 2,
-            title: language==1?'车辆保险':(language==2?'Vehicle insurance':'Asuransi kendaraan'),
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-TCompetition.info = function () {
-    if (this.check()) {
-        let index = layer.open({
-            type: 2,
-            title: '折扣详情',
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/tDiscount/info?id=' + this.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-
-
-
-/**
- * 查询车辆管理列表
- */
-TCompetition.search = function () {
-    var queryData = {};
-    queryData['provinceCode'] = $("#pCode").val();
-    queryData['cityCode'] = $("#cCode").val();
-    queryData['name'] = $("#name").val();
-    queryData['shopName'] = $("#shopName").val();
-    queryData['type'] = $("type").val();
-    TCompetition.table.refresh({query: queryData});
-};
-
-TCompetition.resetSearch = function () {
-    $("#pCode").val("");
-    $("#cCode").val("");
-    $("#name").val("");
-    $("#type").val("");
-    $("#shopName").val("");
-    TCompetition.search();
-};
-
-$(function () {
-    var defaultColunms = TCompetition.initColumn();
-    var table = new BSTable(TCompetition.id, "/tDiscount/list", defaultColunms);
-    table.setPaginationType("server");
-    TCompetition.table = table.init();
-});
-
-/**
- * 下载模板
- */
-TCompetition.uploadCarModel = function () {
-    window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel";
-}
-
-var agreement = function(){
-    this.init = function(){
-        //模拟上传excel  
-        $("#uploadEventBtn").unbind("click").bind("click",function(){
-            $("#uploadEventFile").click();
-        });
-    };
-}
-/**
- * 导入合同
- */
-TCompetition.exporTCompetition = function () {
-    var uploadEventFile = $("#uploadEventFile").val();
-    if(uploadEventFile == ''){
-        if(language==1){
-            Feng.info("请选择Excel,再上传");
-        }else if(language==2){
-            Feng.info("Please select Excel and upload");
-        }else {
-            Feng.info("Silakan pilih Excel dan upload");
-        }
-    }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel  
-        if(language==1){
-            Feng.info("只能上传Excel文件");
-        }else if(language==2){
-            Feng.info("Only Excel files can be uploaded");
-        }else {
-            Feng.info("Hanya berkas Excel yang dapat diunggah");
-        }
-    }else{
-        var url = Feng.ctxPath + '/TCompetition/exporTCompetition';
-        var file = document.querySelector('input[name=file]').files[0];
-        var reader = new FileReader();
-        if (file) {
-            var formData = new FormData();
-            formData.append("myfile", file);
-            this.sendAjaxRequest(url, 'POST', formData);
-        }
-    }
-}
-TCompetition.sendAjaxRequest = function(url,type,data){
-    $.ajax({
-        url : url,
-        type : type,
-        data : data,
-        success : function(result) {
-            if(result.code==500) {
-                Feng.info(result.message);
-            }else {
-                if(language==1){
-                    Feng.success("导入成功!");
-                }else if(language==2){
-                    Feng.success("SUCCESSFUL IMPORT!");
-                }else {
-                    Feng.success("Import berhasil!");
-                }
-            }
-            TCompetition.table.refresh();
-        },
-        error : function() {
-            if(language==1){
-                Feng.error("excel上传失败!");
-            }else if(language==2){
-                Feng.error("Uploading excel Fails. Procedure!");
-            }else {
-                Feng.error("Gagal mengunggah excel!");
-            }
-        },
-        cache : false,
-        contentType : false,
-        processData : false
-    });
-};
-
-var agreement;
-$(function(){
-    agreement = new agreement();
-    agreement.init();
-});
-
-/**
- * 导出车辆操作
- */
-TCompetition.ouTCompetition = function () {
-    var operation = function() {
-        window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition";
-    };
-    if(language==1){
-        Feng.confirm("是否确认导出车辆信息?", operation);
-    }else if(language==2){
-        Feng.confirm("Are you sure to export vehicle information?", operation);
-    }else {
-        Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation);
-    }
-}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js
deleted file mode 100644
index 8360403..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscount/tDiscount_info.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/**
- * 初始化车辆管理详情对话框
- */
-var language=1;
-var TCarInfoDlg = {
-    tCarInfoData : {},
-    validateFields: {
-    }
-};
-
-/**
- * 验证数据是否为空
- */
-TCarInfoDlg.validate = function () {
-    $('#carInfoForm').data("bootstrapValidator").resetForm();
-    $('#carInfoForm').bootstrapValidator('validate');
-    return $("#carInfoForm").data('bootstrapValidator').isValid();
-};
-
-/**
- * 清除数据
- */
-TCarInfoDlg.clearData = function() {
-    this.tCarInfoData = {};
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.set = function(key, val) {
-    this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
-    return this;
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.get = function(key) {
-    return $("#" + key).val();
-}
-
-/**
- * 关闭此对话框
- */
-TCarInfoDlg.close = function() {
-    parent.layer.close(window.parent.TCompetition.layerIndex);
-}
-
-/**
- * 收集数据
- */
-TCarInfoDlg.collectData = function() {
-    this
-    .set('id')
-    .set('isPlatCar')
-    .set('companyId')
-    .set('franchiseeId')
-    .set('carColor')
-    .set('carModelId')
-    .set('carBrandId')
-    .set('carLicensePlate')
-    .set('carPhoto')
-    .set('drivingLicenseNumber')
-    .set('drivingLicensePhoto')
-    .set('annualInspectionTime')
-    .set('commercialInsuranceTime')
-    .set('createTime')
-    .set('state')
-    .set('addType')
-    .set('addObjectId')
-    .set('plateColor')
-    .set('vehicleType')
-    .set('ownerName')
-    .set('engineId')
-    .set('VIN')
-    .set('certifyDateA')
-    .set('fuelType')
-    .set('engineDisplace')
-    .set('certificate')
-    .set('transAgency')
-    .set('transArea')
-    .set('transDateStart')
-    .set('transDateStop')
-    .set('certifyDateB')
-    .set('fixState')
-    .set('nextFixDate')
-    .set('checkState')
-    .set('feePrintId')
-    .set('GPSBrand')
-    .set('GPSModel')
-    .set('GPSIMEI')
-    .set('GPSInstallDate')
-    .set('registerDate')
-    .set('commercialType');
-}
-
-/**
- * 提交添加
- */
-TCarInfoDlg.addSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("添加成功!");
-            }else if(language==2){
-                Feng.success("Successfully added!");
-            }else {
-                Feng.success("Sangat berhasil ditambah!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-
-    },function(data){
-        Feng.error("添加失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set(this.tCarInfoData);
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.start();
-}
-
-/**
- * 提交修改
- */
-TCarInfoDlg.editSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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/update", function(data){
-        if(data=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("修改成功!");
-            }else if(language==2){
-                Feng.success("Modify successfully!");
-            }else {
-                Feng.success("Mengubah dengan sukses!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-    },function(data){
-        Feng.error("修改失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.set("id",$("#id").val());
-    ajax.start();
-}
-
-$(function() {
-    Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
-    // 初始化图片上传
-    var carPhoto = new $WebUpload("carPhoto");
-    carPhoto.setUploadBarId("progressBar");
-    carPhoto.init();
-    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
-    drivingLicensePhoto.setUploadBarId("progressBar");
-    drivingLicensePhoto.init();
-});
-
-/**
- * 选择分公司后执行
- */
-TCarInfoDlg.oneChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/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();
-}
-
-/**
- * 类型改变执行
- * @param e
- */
-TCarInfoDlg.companyTypeClick = function (e) {
-    if (1 == e){
-        $(".companyDiv").hide();
-    } else if (2 == e){
-        $(".companyDiv").show();
-    }
-}
-
-/**
- * 车辆品牌改变时执行
- */
-TCarInfoDlg.brandChange = function (e) {
-    var carBrandId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
-        if(data!=null){
-            if(language==1){
-                var content='<option value="">选择车辆类型</option>';
-            }else if(language==2){
-                var content='<option value="">Please select the vehicle type</option>';
-            }else {
-                var content='<option value="">Pilih Jenis Kendaraan</option>';
-            }
-
-            $.each(data, function(k,v) {
-                content += "<option value='"+v.id+"'>"+v.name+"</option>";
-            });
-            $("#carModelId").empty().append(content);
-        }
-    });
-    ajax.set("carBrandId",carBrandId);
-    ajax.start();
-}
-
-/**
- * 专车服务被点击
- */
-TCarInfoDlg.zcServerClick = function () {
-    var serverBox1 = $('#serverBox1').prop('checked');
-    if (serverBox1){
-        $("#zcModelDiv").show();
-    } else {
-        $("#zcModelDiv").hide();
-    }
-}
-
-/**
- * 跨城服务被点击
- */
-TCarInfoDlg.kcServerClick = function () {
-    var serverBox3 = $('#serverBox3').prop('checked');
-    if (serverBox3){
-        $("#kcModelDiv").show();
-    } else {
-        $("#kcModelDiv").hide();
-    }
-}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js
deleted file mode 100644
index 9b77955..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/coursePackageDiscount.js
+++ /dev/null
@@ -1,819 +0,0 @@
-/**
- * 用户详情对话框(可用于添加和修改对话框)
- */
-var CoursePackageDiscount = {
-    userInfoData: {},
-    coursePackagePaymentConfig: {}
-};
-
-
-
-/**
- * 关闭此对话框
- */
-CoursePackageDiscount.close = function () {
-    parent.layer.close(window.parent.CoursePackage.layerIndex);
-};
-
-
-/**
- * 提交修改
- */
-CoursePackageDiscount.editSubmit = function () {
-    //提交信息
-    var ajax = new $ax(Feng.ctxPath + "/coursePackage/setCoursePackageDiscount", function (data) {
-        if(data.code == 200){
-            Feng.success("编辑成功!");
-            CoursePackageDiscount.close();
-            window.parent.CoursePackage.table.refresh();
-        }else{
-            Feng.error(data.msg);
-        }
-    }, function (data) {
-        Feng.error("编辑失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set('json', JSON.stringify(CoursePackageDiscount.coursePackagePaymentConfig));
-    ajax.set('id', $('#id').val());
-    ajax.start();
-};
-
-
-
-
-
-
-function addPrice(type){
-    let index = $('#classHours').find('button[checked]').attr('index');
-    if(type == 3){
-        let ll = $('#limitedTimeDiscount .limitedTimeDiscount').length;
-        let htmlStr =
-            '   <div class="form-group limitedTimeDiscount" index="' + ll + '">' +
-            '           <div class="col-sm-2"></div>\n' +
-            '           <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">折扣有效期:</label>\n' +
-            '                    <div class="col-sm-9">\n' +
-            '                         <input class="startAndEndDay" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' +
-            '                    </div>\n' +
-            '                    <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(3, this)"></i></div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">*折扣时间:</label>\n' +
-            '                    <div class="col-sm-5">\n' +
-            '                        <input class="time" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' +
-            '                    </div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label"></label>\n' +
-            '                    <div class="col-sm-8" style="margin-top: 6px;">\n' +
-            '                        <input type="checkbox" name="week" value="1" onclick="addPriceValue(3, this, \'weeks\')"/> 周一&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="2" onclick="addPriceValue(3, this, \'weeks\')"/> 周二&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="3" onclick="addPriceValue(3, this, \'weeks\')"/> 周三&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="4" onclick="addPriceValue(3, this, \'weeks\')"/> 周四&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="5" onclick="addPriceValue(3, this, \'weeks\')"/> 周五&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="6" onclick="addPriceValue(3, this, \'weeks\')"/> 周六&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="7" onclick="addPriceValue(3, this, \'weeks\')"/> 周日&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                    </div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">*现金支付:</label>\n' +
-            '                    <div class="col-sm-4">\n' +
-            '                        <input type="number" class="price" onblur="addPriceValue(3, this, \'cashPayment\')" min="0" placeholder="请输入折扣后支付价格" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-            '                    </div>\n' +
-            '                </div>' +
-            '           </div>' +
-            '   </div>';
-
-        $('#limitedTimeDiscount').append(htmlStr);
-        let arr = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-        for(let k in arr){
-            if(arr[k].type == 3){
-                arr[k].content.push({})
-            }
-        }
-        lay('.startAndEndDay').each(function(i, e){
-            laydate.render({
-                elem: this
-                ,type: 'datetime'
-                ,range: true
-                ,done: function(value, date, endDate){
-                    let index = $('#classHours').find('button[checked]').attr('index');
-                    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-                    let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-                    for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                        if(type == obj.coursePackageDiscount[i].type){
-                            let jsonArray = obj.coursePackageDiscount[i].content;
-                            for (let j = 0; j < jsonArray.length; j++) {
-                                if(j == ii){
-                                    let arr = value.split(" - ");
-                                    obj.coursePackageDiscount[i].content[j]['startDate'] = arr[0];
-                                    obj.coursePackageDiscount[i].content[j]['endDate'] = arr[1];
-                                }
-                            }
-                        }
-                    }
-                }
-            });
-        });
-        lay('.time').each(function(i, e){
-            laydate.render({
-                elem: this
-                ,type: 'time'
-                ,range: true
-                ,done: function(value, date, endDate){
-                    let index = $('#classHours').find('button[checked]').attr('index');
-                    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-                    let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-                    for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                        if(type == obj.coursePackageDiscount[i].type){
-                            let jsonArray = obj.coursePackageDiscount[i].content;
-                            for (let j = 0; j < jsonArray.length; j++) {
-                                if(j == ii){
-                                    let arr = value.split(" - ");
-                                    obj.coursePackageDiscount[i].content[j]['startTime'] = arr[0];
-                                    obj.coursePackageDiscount[i].content[j]['endTime'] = arr[1];
-                                }
-                            }
-                        }
-                    }
-                }
-            });
-        });
-    }
-    if(type == 4){
-        let ll = $('#complimentaryClass .complimentaryClass').length;
-        let htmlStr =
-            '   <div class="form-group complimentaryClass" index="' + ll + '">' +
-            '           <div class="col-sm-2"></div>\n' +
-            '           <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">*赠送有效期:</label>\n' +
-            '                    <div class="col-sm-9">\n' +
-            '                         <input class="startAndEndDay" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' +
-            '                    </div>\n' +
-            '                    <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(4, this)"></i></div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">*赠送时间:</label>\n' +
-            '                    <div class="col-sm-5">\n' +
-            '                        <input class="time" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' +
-            '                    </div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label"></label>\n' +
-            '                    <div class="col-sm-8" style="margin-top: 6px;">\n' +
-            '                        <input type="checkbox" name="week" value="1" onclick="addPriceValue(4, this, \'weeks\')"/> 周一&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="2" onclick="addPriceValue(4, this, \'weeks\')"/> 周二&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="3" onclick="addPriceValue(4, this, \'weeks\')"/> 周三&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="4" onclick="addPriceValue(4, this, \'weeks\')"/> 周四&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="5" onclick="addPriceValue(4, this, \'weeks\')"/> 周五&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="6" onclick="addPriceValue(4, this, \'weeks\')"/> 周六&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                        <input type="checkbox" name="week" value="7" onclick="addPriceValue(4, this, \'weeks\')"/> 周日&nbsp;&nbsp;&nbsp;&nbsp;' +
-            '                    </div>\n' +
-            '                </div>' +
-            '                <div class="form-group">\n' +
-            '                    <label class="col-sm-2 control-label">*赠送课时数:</label>\n' +
-            '                    <div class="col-sm-4">\n' +
-            '                        <input type="number" class="price" onblur="addPriceValue(4, this, \'hour\')" min="0" placeholder="请输入赠送课时数" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-            '                    </div>\n' +
-            '                </div>' +
-            '           </div>' +
-            '   </div>';
-        $('#complimentaryClass').append(htmlStr);
-        let arr = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-        for(let k in arr){
-            if(arr[k].type == 4){
-                arr[k].content.push({})
-            }
-        }
-        lay('.startAndEndDay').each(function(i, e){
-            laydate.render({
-                elem: this
-                ,type: 'datetime'
-                ,range: true
-                ,done: function(value, date, endDate){
-                    let index = $('#classHours').find('button[checked]').attr('index');
-                    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-                    let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-                    for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                        if(type == obj.coursePackageDiscount[i].type){
-                            let jsonArray = obj.coursePackageDiscount[i].content;
-                            for (let j = 0; j < jsonArray.length; j++) {
-                                if(j == ii){
-                                    let arr = value.split(" - ");
-                                    obj.coursePackageDiscount[i].content[j]['startDate'] = arr[0];
-                                    obj.coursePackageDiscount[i].content[j]['endDate'] = arr[1];
-                                }
-                            }
-                        }
-                    }
-                }
-            });
-        });
-        lay('.time').each(function(i, e){
-            laydate.render({
-                elem: this
-                ,type: 'time'
-                ,range: true
-                ,done: function(value, date, endDate){
-                    let index = $('#classHours').find('button[checked]').attr('index');
-                    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-                    let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-                    for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                        if(type == obj.coursePackageDiscount[i].type){
-                            let jsonArray = obj.coursePackageDiscount[i].content;
-                            for (let j = 0; j < jsonArray.length; j++) {
-                                if(j == ii){
-                                    let arr = value.split(" - ");
-                                    obj.coursePackageDiscount[i].content[j]['startTime'] = arr[0];
-                                    obj.coursePackageDiscount[i].content[j]['endTime'] = arr[1];
-                                }
-                            }
-                        }
-                    }
-                }
-            });
-        });
-    }
-}
-
-
-function removePrice(type, e){
-    let index = $('#classHours').find('button[checked]').attr('index');
-    let object = $(e).parent('div').parent('div').parent('div').parent('div');
-    let ii = object.attr('index');
-    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-    for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-        if(type == obj.coursePackageDiscount[i].type){
-            let jsonArray = null;
-            if(typeof obj.coursePackageDiscount[i].content == "string"){
-                jsonArray = JSON.parse(obj.coursePackageDiscount[i].content);
-            }else{
-                jsonArray = obj.coursePackageDiscount[i].content;
-            }
-
-            let arr = [];
-            for (let j = 0; j < jsonArray.length; j++) {
-                if(j == ii){
-                    continue
-                }
-                arr.push(jsonArray[j]);
-            }
-            CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = arr;
-        }
-    }
-    object.remove();
-}
-
-
-function addPriceValue(type, e, name){
-    let index = $('#classHours').find('button[checked]').attr('index');
-    if(type == 1){
-        let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-        for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-            if(type == obj.coursePackageDiscount[i].type){
-                let content = null;
-                if(typeof obj.coursePackageDiscount[i].content == "string"){
-                    content = JSON.parse(obj.coursePackageDiscount[i].content);
-                }else{
-                    content = obj.coursePackageDiscount[i].content;
-                }
-                content[name] = parseFloat($(e).val());
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = content;
-            }
-        }
-    }
-    if(type == 2){
-        let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-        for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-            if(type == obj.coursePackageDiscount[i].type){
-                let content = null;
-                if(typeof obj.coursePackageDiscount[i].content == "string"){
-                    content = JSON.parse(obj.coursePackageDiscount[i].content);
-                }else{
-                    content = obj.coursePackageDiscount[i].content;
-                }
-                content[name] = parseFloat($(e).val());
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = content;
-            }
-        }
-    }
-    if(type == 3){
-        let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-        let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-        for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-            if(type == obj.coursePackageDiscount[i].type){
-                let jsonArray = null;
-                if(typeof obj.coursePackageDiscount[i].content == "string"){
-                    jsonArray = JSON.parse(obj.coursePackageDiscount[i].content);
-                }else{
-                    jsonArray = obj.coursePackageDiscount[i].content;
-                }
-
-                for (let j = 0; j < jsonArray.length; j++) {
-                    if(j == ii){
-                        if('weeks' == name){
-                            let weeks = jsonArray[j].weeks;
-                            let v = parseInt($(e).val());
-                            if(null != weeks && typeof weeks != "undefined"){
-                                if(e.checked){
-                                    weeks.push(v);
-                                }else{
-                                    let arr = [];
-                                    for (let k = 0; k < weeks.length; k++) {
-                                        if(weeks[k] == v){
-                                            continue
-                                        }
-                                        arr.push(weeks[k]);
-                                    }
-                                    weeks = arr;
-                                }
-                            }else{
-                                weeks = [v];
-                            }
-                            jsonArray[j].weeks = weeks;
-                        }else{
-                            jsonArray[j][name] = parseFloat($(e).val());
-                        }
-                    }
-                }
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = jsonArray;
-            }
-        }
-    }
-    if(type == 4){
-        let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-        let ii = $(e).parent('div').parent('div').parent('div').parent('div').attr('index');
-        for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-            if(type == obj.coursePackageDiscount[i].type){
-                let jsonArray = null;
-                if(typeof obj.coursePackageDiscount[i].content == "string"){
-                    jsonArray = JSON.parse(obj.coursePackageDiscount[i].content);
-                }else{
-                    jsonArray = obj.coursePackageDiscount[i].content;
-                }
-                for (let j = 0; j < jsonArray.length; j++) {
-                    if(j == ii){
-                        if('weeks' == name){
-                            let weeks = jsonArray[j].weeks;
-                            let v = parseInt($(e).val());
-                            if(null != weeks && typeof weeks != "undefined"){
-                                if(e.checked){
-                                    weeks.push(v);
-                                }else{
-                                    let arr = [];
-                                    for (let k = 0; k < weeks.length; k++) {
-                                        if(weeks[k] == v){
-                                            continue
-                                        }
-                                        arr.push(weeks[k]);
-                                    }
-                                    weeks = arr;
-                                }
-                            }else{
-                                weeks = [v];
-                            }
-                            jsonArray[j].weeks = weeks;
-                        }else{
-                            jsonArray[j][name] = parseFloat($(e).val());
-                        }
-                    }
-                }
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount[i].content = jsonArray;
-            }
-        }
-    }
-}
-
-
-function selectedPperiod(e){
-    $('#classHours').find('button[checked]').attr('style', 'width: 60px;height: 30px;border: none;border-radius: 5px;');
-    $('#classHours').find('button[checked]').removeAttr('checked');
-    if(typeof e != "undefined"){
-        $(e).attr('style', 'width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;');
-        $(e).attr('checked', true);
-    }else{
-        $($('#classHours').find('button')[0]).attr('style', 'width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;');
-        $($('#classHours').find('button')[0]).attr('checked', true);
-    }
-
-    let index = $('#classHours').find('button[checked]').attr('index');
-    let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-    $('#payment').text(obj.payment);
-    $('#cashPayment').text(obj.cashPayment);
-
-    $('#memberDiscount').html('');
-    $('#renewalOffer').html('');
-    $('#limitedTimeDiscount').html('');
-    $('#complimentaryClass').html('');
-    let objv = CoursePackageDiscount.coursePackagePaymentConfig[index];
-    $('input[name="type"]').each(function (i, e) {
-        e.checked = false;
-        let v = $(e).val();
-        for (let i = 0; i < objv.coursePackageDiscount.length; i++) {
-            if(v == objv.coursePackageDiscount[i].type){
-                $(e).click();
-            }
-        }
-    })
-}
-
-
-
-
-$(function () {
-    CoursePackageDiscount.coursePackagePaymentConfig = JSON.parse($('#coursePackagePaymentConfig').val());
-    let htmlStr = '';
-    for (let i = 0; i < CoursePackageDiscount.coursePackagePaymentConfig.length; i++) {
-        let obj = CoursePackageDiscount.coursePackagePaymentConfig[i];
-        if(i == 0){
-            htmlStr += '<button checked onclick="selectedPperiod(this)" index="' + i + '" style="width: 60px;height: 30px;background-color: #0086F6;border: none;border-radius: 5px;color: white;">' + obj.classHours + '课时</button>&nbsp;&nbsp;&nbsp;&nbsp;';
-        }else{
-            htmlStr += '<button onclick="selectedPperiod(this)" index="' + i + '" style="width: 60px;height: 30px;border: none;border-radius: 5px;">' + obj.classHours + '课时</button>&nbsp;&nbsp;&nbsp;&nbsp;';
-        }
-    }
-    $('#classHours').html(htmlStr);
-
-    $('input[name="type"]').click(function () {
-        let v = $(this).val();
-        let index = $('#classHours').find('button[checked]').attr('index');
-        if(this.checked && v == '1'){
-            let discountMember = true;
-            let hh = '<div class="hr-line-dashed"></div>' +
-                '<h3>会员折扣</h3>\n' +
-                '                <div class="form-group">\n' +
-                '                   <div class="col-sm-2"></div>'+
-                '                   <div class="col-sm-10">' +
-                '                       <label class="col-sm-2 control-label">*现金支付:</label>\n' +
-                '                       <div class="col-sm-3">\n' +
-                '                           <input type="number" min="0" value="';
-            let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-            for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                if(v == obj.coursePackageDiscount[i].type){
-                    let jsonObject = null;
-                    if(typeof obj.coursePackageDiscount[i].content == "string"){
-                        jsonObject = JSON.parse(obj.coursePackageDiscount[i].content);
-                    }else{
-                        jsonObject = obj.coursePackageDiscount[i].content;
-                    }
-                    hh += (null == jsonObject.discountMember ? '' : jsonObject.discountMember);
-                    discountMember = false;
-                }
-            }
-            hh += '" placeholder="请输入会员支付价格" onblur="addPriceValue(1, this, \'discountMember\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-                '                       </div>\n' +
-                '                   </div>'+
-                '                </div>';
-
-            $('#memberDiscount').html(hh);
-            if(discountMember){
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({
-                    type: 1,
-                    content:{
-                        discountMember: null
-                    }
-                });
-            }
-        }else if(!this.checked && v == '1'){
-            $('#memberDiscount').html('');
-            let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-            let arra = [];
-            for (let i = 0; i < datas.length; i++){
-                if(datas[i].type == v){
-                    continue;
-                }
-                arra.push(datas[i]);
-            }
-            CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra;
-        }
-        if(this.checked && v == '2'){
-            let continuingMember = true;
-            let hh = '<div class="hr-line-dashed"></div>' +
-                '<h3>续课优惠</h3>\n' +
-                '                <div class="form-group">\n' +
-                '                   <div class="col-sm-2"></div>'+
-                '                   <div class="col-sm-10">' +
-                '                       <label class="col-sm-2 control-label">会员续课:</label>\n' +
-                '                       <div class="col-sm-3">\n' +
-                '                       </div>\n' +
-                '                       <label class="col-sm-2 control-label">用户续课:</label>\n' +
-                '                       <div class="col-sm-3">\n' +
-                '                       </div>\n' +
-                '                   </div>'+
-                '                </div>' +
-                '                <div class="form-group">\n' +
-                '                   <div class="col-sm-2"></div>'+
-                '                   <div class="col-sm-10">' +
-                '                       <label class="col-sm-2 control-label">*现金支付:</label>\n' +
-                '                       <div class="col-sm-3">\n' +
-                '                           <input type="number" min="0" value="';
-            let obj = CoursePackageDiscount.coursePackagePaymentConfig[index];
-            for (let i = 0; i < obj.coursePackageDiscount.length; i++) {
-                if(v == obj.coursePackageDiscount[i].type){
-                    let jsonObject = null;
-                    if(typeof obj.coursePackageDiscount[i].content == "string"){
-                        jsonObject = JSON.parse(obj.coursePackageDiscount[i].content);
-                    }else{
-                        jsonObject = obj.coursePackageDiscount[i].content;
-                    }
-                    hh += (null == jsonObject.continuingMember ? '' : jsonObject.continuingMember);
-                    continuingMember = false;
-                }
-            }
-            hh += '" placeholder="请输入会员支付价格" onblur="addPriceValue(2, this, \'continuingMember\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-                '                       </div>\n' +
-                '                       <label class="col-sm-2 control-label">*现金支付:</label>\n' +
-                '                       <div class="col-sm-3">\n' +
-                '                           <input type="number" min="0" value="';
-            let obje = CoursePackageDiscount.coursePackagePaymentConfig[index];
-            for (let i = 0; i < obje.coursePackageDiscount.length; i++) {
-                if(v == obje.coursePackageDiscount[i].type){
-                    let jsonObject = null;
-                    if(typeof obje.coursePackageDiscount[i].content == "string"){
-                        jsonObject = JSON.parse(obje.coursePackageDiscount[i].content);
-                    }else{
-                        jsonObject = obje.coursePackageDiscount[i].content;
-                    }
-                    hh += (null == jsonObject.continuingUser ? '' : jsonObject.continuingUser);
-                }
-            }
-            hh += '" placeholder="请输入用户支付价格" onblur="addPriceValue(2, this, \'continuingUser\')" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-                '                       </div>\n' +
-                '                   </div>'+
-                '                </div>';
-            $('#renewalOffer').html(hh);
-            if(continuingMember){
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({
-                    type: 2,
-                    content: {
-                        continuingMember: null,
-                        continuingUser: null
-                    }
-                })
-            }
-        }else if(!this.checked && v == '2'){
-            $('#renewalOffer').html('');
-            let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-            let arra = [];
-            for (let i = 0; i < datas.length; i++){
-                if(datas[i].type == v){
-                    continue;
-                }
-                arra.push(datas[i]);
-            }
-            CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra;
-        }
-        if(this.checked && v == '3'){
-            let data_value = true;
-            let hh = '<div class="hr-line-dashed"></div>' +
-                '<span style="font-size: 16px;font-weight: 500;">限时折扣</span>&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(3)"></i>\n';
-            let obje = CoursePackageDiscount.coursePackagePaymentConfig[index];
-            for (let i = 0; i < obje.coursePackageDiscount.length; i++) {
-                if(v == obje.coursePackageDiscount[i].type){
-                    data_value = false
-                    let jsonArray = null;
-                    if(typeof obje.coursePackageDiscount[i].content == "string"){
-                        jsonArray = JSON.parse(obje.coursePackageDiscount[i].content);
-                    }else{
-                        jsonArray = obje.coursePackageDiscount[i].content;
-                    }
-
-                    for (let j = 0; j < jsonArray.length; j++) {
-                        hh += '' +
-                            '   <div class="form-group limitedTimeDiscount" index="' + j + '">' +
-                            '           <div class="col-sm-2"></div>\n' +
-                            '           <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">折扣有效期:</label>\n' +
-                            '                    <div class="col-sm-9">\n' +
-                            '                         <input class="startAndEndDay" value="' + (jsonArray[j].startDate + " - " + jsonArray[j].endDate) + '" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' +
-                            '                    </div>\n' +
-                            '                    <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(3, this)"></i></div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">*折扣时间:</label>\n' +
-                            '                    <div class="col-sm-5">\n' +
-                            '                        <input class="time" value="' + jsonArray[j].startTime + " - " + jsonArray[j].endTime + '" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label"></label>\n' +
-                            '                    <div class="col-sm-8" style="margin-top: 6px;">\n' +
-                            '                        <input type="checkbox" name="week" value="1"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 1){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周一&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="2"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 2){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周二&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="3"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 3){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周三&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="4"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 4){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周四&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="5"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 5){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周五&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="6"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 6){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周六&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="7"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 7){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周日&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">*现金支付:</label>\n' +
-                            '                    <div class="col-sm-4">\n' +
-                            '                        <input type="number" min="0" value="' + jsonArray[j].cashPayment + '" onblur="addPriceValue(3, this, \'cashPayment\')" placeholder="请输入折扣后支付价格" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '           </div>' +
-                            '   </div>';
-                    }
-
-                }
-            }
-            $('#limitedTimeDiscount').html(hh);
-            if(data_value){
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({
-                    type: 3,
-                    content: []
-                })
-            }
-        }else if(!this.checked && v == '3'){
-            $('#limitedTimeDiscount').html('');
-            let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-            let arra = [];
-            for (let i = 0; i < datas.length; i++){
-                if(datas[i].type == v){
-                    continue;
-                }
-                arra.push(datas[i]);
-            }
-            CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra;
-        }
-        if(this.checked && v == '4'){
-            let data_value = true;
-            let hh =
-                '<div class="hr-line-dashed"></div>' +
-                '<span style="font-size: 16px;font-weight: 500;">赠送课时</span>&nbsp;&nbsp;&nbsp;&nbsp;<i class="fa fa-plus-circle" style="font-size:24px" onclick="addPrice(4)"></i>\n';
-            let obje = CoursePackageDiscount.coursePackagePaymentConfig[index];
-            for (let i = 0; i < obje.coursePackageDiscount.length; i++) {
-                if (v == obje.coursePackageDiscount[i].type) {
-                    data_value = false;
-                    let jsonArray = null;
-                    if(typeof obje.coursePackageDiscount[i].content == "string"){
-                        jsonArray = JSON.parse(obje.coursePackageDiscount[i].content);
-                    }else{
-                        jsonArray = obje.coursePackageDiscount[i].content;
-                    }
-                    for (let j = 0; j < jsonArray.length; j++) {
-                        hh +=
-                            '   <div class="form-group complimentaryClass" index="' + j + '">' +
-                            '           <div class="col-sm-2"></div>\n' +
-                            '           <div class="col-sm-8" style="border: 1px solid; padding: 20px;">\n' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">*赠送有效期:</label>\n' +
-                            '                    <div class="col-sm-9">\n' +
-                            '                         <input class="startAndEndDay" value="' + (jsonArray[j].startDate + " - " + jsonArray[j].endDate) + '" style="width: 300px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>' +
-                            '                    </div>\n' +
-                            '                    <div class="col-sm-1"><i class="fa fa-trash-o" style="font-size:24px;color: red;" onclick="removePrice(4, this)"></i></div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">*赠送时间:</label>\n' +
-                            '                    <div class="col-sm-5">\n' +
-                            '                        <input class="time" value="' + jsonArray[j].startTime + " - " + jsonArray[j].endTime + '" style="width: 200px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/>\n' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label"></label>\n' +
-                            '                    <div class="col-sm-8" style="margin-top: 6px;">\n' +
-                            '                        <input type="checkbox" name="week" value="1"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 1){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周一&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="2"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 2){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周二&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="3"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 3){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周三&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="4"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 4){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周四&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="5"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 5){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周五&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="6"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 6){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周六&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                        <input type="checkbox" name="week" value="7"';
-                        for (let k = 0; k < jsonArray[j].weeks.length; k++) {
-                            let w = jsonArray[j].weeks[k];
-                            if(w == 7){
-                                hh += 'checked';
-                            }
-                        }
-                        hh += '/> 周日&nbsp;&nbsp;&nbsp;&nbsp;' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '                <div class="form-group">\n' +
-                            '                    <label class="col-sm-2 control-label">*赠送课时数:</label>\n' +
-                            '                    <div class="col-sm-4">\n' +
-                            '                        <input type="number" value="' + jsonArray[j].hour + '" onblur="addPriceValue(4, this, \'hour\')" min="0" placeholder="请输入赠送课时数" style="width: 180px;background-color: #FFFFFF;background-image: none;border: 1px solid #e5e6e7;border-radius: 1px;color: inherit;padding: 6px 12px;"/> ¥\n' +
-                            '                    </div>\n' +
-                            '                </div>' +
-                            '           </div>' +
-                            '   </div>';
-                    }
-                }
-            }
-            $('#complimentaryClass').html(hh);
-            if(data_value){
-                CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount.push({
-                    type: 4,
-                    content: []
-                })
-            }
-        }else if(!this.checked && v == '4'){
-            $('#complimentaryClass').html('');
-            let datas = CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount;
-            let arra = [];
-            for (let i = 0; i < datas.length; i++){
-                if(datas[i].type == v){
-                    continue;
-                }
-                arra.push(datas[i]);
-            }
-            CoursePackageDiscount.coursePackagePaymentConfig[index].coursePackageDiscount = arra;
-        }
-    })
-
-
-    selectedPperiod();
-});
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js
deleted file mode 100644
index 8360403..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tCity_info.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/**
- * 初始化车辆管理详情对话框
- */
-var language=1;
-var TCarInfoDlg = {
-    tCarInfoData : {},
-    validateFields: {
-    }
-};
-
-/**
- * 验证数据是否为空
- */
-TCarInfoDlg.validate = function () {
-    $('#carInfoForm').data("bootstrapValidator").resetForm();
-    $('#carInfoForm').bootstrapValidator('validate');
-    return $("#carInfoForm").data('bootstrapValidator').isValid();
-};
-
-/**
- * 清除数据
- */
-TCarInfoDlg.clearData = function() {
-    this.tCarInfoData = {};
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.set = function(key, val) {
-    this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
-    return this;
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.get = function(key) {
-    return $("#" + key).val();
-}
-
-/**
- * 关闭此对话框
- */
-TCarInfoDlg.close = function() {
-    parent.layer.close(window.parent.TCompetition.layerIndex);
-}
-
-/**
- * 收集数据
- */
-TCarInfoDlg.collectData = function() {
-    this
-    .set('id')
-    .set('isPlatCar')
-    .set('companyId')
-    .set('franchiseeId')
-    .set('carColor')
-    .set('carModelId')
-    .set('carBrandId')
-    .set('carLicensePlate')
-    .set('carPhoto')
-    .set('drivingLicenseNumber')
-    .set('drivingLicensePhoto')
-    .set('annualInspectionTime')
-    .set('commercialInsuranceTime')
-    .set('createTime')
-    .set('state')
-    .set('addType')
-    .set('addObjectId')
-    .set('plateColor')
-    .set('vehicleType')
-    .set('ownerName')
-    .set('engineId')
-    .set('VIN')
-    .set('certifyDateA')
-    .set('fuelType')
-    .set('engineDisplace')
-    .set('certificate')
-    .set('transAgency')
-    .set('transArea')
-    .set('transDateStart')
-    .set('transDateStop')
-    .set('certifyDateB')
-    .set('fixState')
-    .set('nextFixDate')
-    .set('checkState')
-    .set('feePrintId')
-    .set('GPSBrand')
-    .set('GPSModel')
-    .set('GPSIMEI')
-    .set('GPSInstallDate')
-    .set('registerDate')
-    .set('commercialType');
-}
-
-/**
- * 提交添加
- */
-TCarInfoDlg.addSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("添加成功!");
-            }else if(language==2){
-                Feng.success("Successfully added!");
-            }else {
-                Feng.success("Sangat berhasil ditambah!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-
-    },function(data){
-        Feng.error("添加失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set(this.tCarInfoData);
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.start();
-}
-
-/**
- * 提交修改
- */
-TCarInfoDlg.editSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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/update", function(data){
-        if(data=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("修改成功!");
-            }else if(language==2){
-                Feng.success("Modify successfully!");
-            }else {
-                Feng.success("Mengubah dengan sukses!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-    },function(data){
-        Feng.error("修改失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.set("id",$("#id").val());
-    ajax.start();
-}
-
-$(function() {
-    Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
-    // 初始化图片上传
-    var carPhoto = new $WebUpload("carPhoto");
-    carPhoto.setUploadBarId("progressBar");
-    carPhoto.init();
-    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
-    drivingLicensePhoto.setUploadBarId("progressBar");
-    drivingLicensePhoto.init();
-});
-
-/**
- * 选择分公司后执行
- */
-TCarInfoDlg.oneChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/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();
-}
-
-/**
- * 类型改变执行
- * @param e
- */
-TCarInfoDlg.companyTypeClick = function (e) {
-    if (1 == e){
-        $(".companyDiv").hide();
-    } else if (2 == e){
-        $(".companyDiv").show();
-    }
-}
-
-/**
- * 车辆品牌改变时执行
- */
-TCarInfoDlg.brandChange = function (e) {
-    var carBrandId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
-        if(data!=null){
-            if(language==1){
-                var content='<option value="">选择车辆类型</option>';
-            }else if(language==2){
-                var content='<option value="">Please select the vehicle type</option>';
-            }else {
-                var content='<option value="">Pilih Jenis Kendaraan</option>';
-            }
-
-            $.each(data, function(k,v) {
-                content += "<option value='"+v.id+"'>"+v.name+"</option>";
-            });
-            $("#carModelId").empty().append(content);
-        }
-    });
-    ajax.set("carBrandId",carBrandId);
-    ajax.start();
-}
-
-/**
- * 专车服务被点击
- */
-TCarInfoDlg.zcServerClick = function () {
-    var serverBox1 = $('#serverBox1').prop('checked');
-    if (serverBox1){
-        $("#zcModelDiv").show();
-    } else {
-        $("#zcModelDiv").hide();
-    }
-}
-
-/**
- * 跨城服务被点击
- */
-TCarInfoDlg.kcServerClick = function () {
-    var serverBox3 = $('#serverBox3').prop('checked');
-    if (serverBox3){
-        $("#kcModelDiv").show();
-    } else {
-        $("#kcModelDiv").hide();
-    }
-}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js
deleted file mode 100644
index d475168..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount.js
+++ /dev/null
@@ -1,433 +0,0 @@
-/**
- * 车辆管理管理初始化
- */
-var TCompetition = {
-    id: "TCompetitionTable",	//表格id
-    seItem: null,		//选中的条目
-    table: null,
-    layerIndex: -1
-};
-var language =1
-/**
- * 初始化表格的列
- */
-TCompetition.initColumn = function () {
-    return [
-        {field: 'selectItem', radio: true},
-        {title: '所在省', field: 'pname', visible: true, align: 'center', valign: 'middle'
-        },
-        {title: '所在市', field: 'cname', visible: true, align: 'center', valign: 'middle'},
-        {title: '所属门店', field: 'shopName', visible: true, align: 'center', valign: 'middle'
-        },
-        {title:  '课包名称', field: 'name', visible: true, align: 'center', valign: 'middle'
-        },
-        {title:  '折扣类型', field: 'type', visible: true, align: 'center', valign: 'middle'
-            ,formatter:function (data) {
-                return{1:"会员折扣",3:"限时折扣",4:"赠送课时"}[data]
-            }
-        },
-        {title: '状态', field: 'status', visible: true, align: 'center', valign: 'middle'
-            ,formatter:function (data) {
-                return{1:"待审核",3:"未通过"}[data]
-            }
-        },
-    ];
-};
-function currentTime(timestamp){
-    var time = timestamp + '';
-    if(time.length != 13){
-        timestamp = timestamp * 1000;
-    }
-    var date = new Date(timestamp);;
-    var Y = date.getFullYear() + '-';
-    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
-
-    var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
-    var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
-    var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
-    var strDate = Y + M + D + h + m + s;
-    return strDate
-}
-
-function currentTime1(timestamp){
-    var time = timestamp + '';
-    if(time.length != 13){
-        timestamp = timestamp * 1000;
-    }
-    var date = new Date(timestamp);;
-    var Y = date.getFullYear() + '-';
-    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
-    var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
-
-    var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + ':';
-    var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ':';
-    var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds());
-    var strDate = Y + M + D ;
-    return strDate
-}
-/**
- * 检查是否选中
- */
-TCompetition.check = function () {
-    var selected = $('#' + this.id).bootstrapTable('getSelections');
-    if(selected.length == 0){
-            Feng.info("请先选中表格中的某一记录!");
-        return false;
-    }else{
-        TCompetition.seItem = selected[0];
-        return true;
-    }
-};
-
-/**
- * 点击添加车辆管理
- */
-TCompetition.openAddTCompetition = function () {
-    var index = layer.open({
-        type: 2,
-        title: '添加',
-        area: ['100%', '100%'], //宽高
-        fix: false, //不固定
-        maxmin: true,
-        content: Feng.ctxPath + '/tCity/tCity_add'
-    });
-    this.layerIndex = index;
-};
-
-/**
- * 打开查看车辆管理详情
- */
-TCompetition.openTCompetitionDetail = function () {
-    if (this.check()) {
-        var index = layer.open({
-            type: 2,
-            title:'编辑',
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/tCity/tCity_update/' + TCompetition.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-
-/**
- * 删除车辆管理
- */
-TCompetition.updateState = function (e) {
-    if (this.check()) {
-        var id = TCompetition.seItem.id;
-            var ajax = new $ax(Feng.ctxPath + "/TDiscount/updateState", function (data) {
-                if(data.code==200){
-                    Feng.success("操作成功")
-                }else {
-                    Feng.error("操作失败")
-                }
-                TCompetition.table.refresh();
-            }, function (data) {
-                Feng.error("操作失败")
-                TCompetition.table.refresh();
-            });
-            ajax.set("id",id);
-            ajax.set("status",e);
-            ajax.start();
-        ;
-    }
-};
-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.audit = function () {
-    if (this.check()) {
-        var index = layer.load(1,{
-            type: 1
-            , title: '折扣审核'
-            , area: ['50%', '50%']
-            , offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset
-            , id: 'layerDemo' //防止重复弹出cge
-            , content: '<div class="form-horizontal">' +
-                '                    <div class="col-sm-11" >' +
-                '                    <div class="col-sm-11">' +
-                '                        <div class="form-group">\n' +
-                '                            <label class="col-sm-3 control-label">审核状态:</label>\n' +
-                '                            <div class="col-sm-9">\n' +
-                '                     <input type="radio" name="r1" value="2" checked> 通过   <input type="radio" name="r1" value="3" > 拒绝     '+
-                '                            </div>\n' +
-                '                        </div>\n' +
-                '                        <div class="form-group">\n' +
-                '                            <label class="col-sm-3 control-label">拒绝理由:</label>\n' +
-                '                            <div class="col-sm-9">\n' +
-                '                     <textarea id="text" style="width: 460px; height: 138px;"></textarea>  '+
-                '                            </div>\n' +
-                '                        </div>\n' +
-                '                       </div>' +
-                '                   </div>' +
-                '</div>'
-            , btn: ['关闭', '保存']
-            , btnAlign: 'c' //按钮居中
-            , shade:  0.5 //不显示遮罩
-            ,load:1
-            , yes: function () {
-                layer.closeAll();
-            },
-            btn2:function () {
-                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.location.reload();
-                        window.parent.layer.closeAll();
-                    } 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", TCompetition.seItem.id);
-                ajax.set("audit", audit);
-                ajax.set("text", text);
-                ajax.start();
-                layer.closeAll();
-            }
-        });
-
-        this.layerIndex = index;
-    }
-};
-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.info = function () {
-    console.log(111)
-    if (this.check()) {
-        let index = layer.open({
-            type: 2,
-            title: '折扣详情',
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/tDiscount/infoOne?id=' + this.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-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()) {
-        var index = layer.open({
-            type: 2,
-            title: language==1?'车辆保险':(language==2?'Vehicle insurance':'Asuransi kendaraan'),
-            area: ['100%', '100%'], //宽高
-            fix: false, //不固定
-            maxmin: true,
-            content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id
-        });
-        this.layerIndex = index;
-    }
-};
-
-
-
-/**
- * 查询车辆管理列表
- */
-TCompetition.search = function () {
-    var queryData = {};
-    queryData['provinceCode'] = $("#pCode").val();
-    queryData['cityCode'] = $("#cCode").val();
-    queryData['name'] = $("#name").val();
-    queryData['shopName'] = $("#shopName").val();
-    queryData['type'] = $("type").val();
-    TCompetition.table.refresh({query: queryData});
-};
-
-TCompetition.resetSearch = function () {
-    $("#pCode").val("");
-    $("#cCode").val("");
-    $("#name").val("");
-    $("#type").val("");
-    $("#shopName").val("");
-    TCompetition.search();
-};
-
-$(function () {
-    var defaultColunms = TCompetition.initColumn();
-    var table = new BSTable(TCompetition.id, "/tDiscount/listAudit", defaultColunms);
-    table.setPaginationType("server");
-    TCompetition.table = table.init();
-});
-
-/**
- * 下载模板
- */
-TCompetition.uploadCarModel = function () {
-    window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel";
-}
-
-var agreement = function(){
-    this.init = function(){
-        //模拟上传excel  
-        $("#uploadEventBtn").unbind("click").bind("click",function(){
-            $("#uploadEventFile").click();
-        });
-    };
-}
-/**
- * 导入合同
- */
-TCompetition.exporTCompetition = function () {
-    var uploadEventFile = $("#uploadEventFile").val();
-    if(uploadEventFile == ''){
-        if(language==1){
-            Feng.info("请选择Excel,再上传");
-        }else if(language==2){
-            Feng.info("Please select Excel and upload");
-        }else {
-            Feng.info("Silakan pilih Excel dan upload");
-        }
-    }else if(uploadEventFile.lastIndexOf(".xls")<0){//可判断以.xls和.xlsx结尾的excel  
-        if(language==1){
-            Feng.info("只能上传Excel文件");
-        }else if(language==2){
-            Feng.info("Only Excel files can be uploaded");
-        }else {
-            Feng.info("Hanya berkas Excel yang dapat diunggah");
-        }
-    }else{
-        var url = Feng.ctxPath + '/TCompetition/exporTCompetition';
-        var file = document.querySelector('input[name=file]').files[0];
-        var reader = new FileReader();
-        if (file) {
-            var formData = new FormData();
-            formData.append("myfile", file);
-            this.sendAjaxRequest(url, 'POST', formData);
-        }
-    }
-}
-TCompetition.sendAjaxRequest = function(url,type,data){
-    $.ajax({
-        url : url,
-        type : type,
-        data : data,
-        success : function(result) {
-            if(result.code==500) {
-                Feng.info(result.message);
-            }else {
-                if(language==1){
-                    Feng.success("导入成功!");
-                }else if(language==2){
-                    Feng.success("SUCCESSFUL IMPORT!");
-                }else {
-                    Feng.success("Import berhasil!");
-                }
-            }
-            TCompetition.table.refresh();
-        },
-        error : function() {
-            if(language==1){
-                Feng.error("excel上传失败!");
-            }else if(language==2){
-                Feng.error("Uploading excel Fails. Procedure!");
-            }else {
-                Feng.error("Gagal mengunggah excel!");
-            }
-        },
-        cache : false,
-        contentType : false,
-        processData : false
-    });
-};
-
-var agreement;
-$(function(){
-    agreement = new agreement();
-    agreement.init();
-});
-
-/**
- * 导出车辆操作
- */
-TCompetition.ouTCompetition = function () {
-    var operation = function() {
-        window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition";
-    };
-    if(language==1){
-        Feng.confirm("是否确认导出车辆信息?", operation);
-    }else if(language==2){
-        Feng.confirm("Are you sure to export vehicle information?", operation);
-    }else {
-        Feng.confirm("Apakah Anda pasti akan mengekspor informasi kendaraan?", operation);
-    }
-}
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js
deleted file mode 100644
index 8360403..0000000
--- a/cloud-server-management/src/main/webapp/static/modular/system/tDiscountAudit/tDiscount_info.js
+++ /dev/null
@@ -1,320 +0,0 @@
-/**
- * 初始化车辆管理详情对话框
- */
-var language=1;
-var TCarInfoDlg = {
-    tCarInfoData : {},
-    validateFields: {
-    }
-};
-
-/**
- * 验证数据是否为空
- */
-TCarInfoDlg.validate = function () {
-    $('#carInfoForm').data("bootstrapValidator").resetForm();
-    $('#carInfoForm').bootstrapValidator('validate');
-    return $("#carInfoForm").data('bootstrapValidator').isValid();
-};
-
-/**
- * 清除数据
- */
-TCarInfoDlg.clearData = function() {
-    this.tCarInfoData = {};
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.set = function(key, val) {
-    this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
-    return this;
-}
-
-/**
- * 设置对话框中的数据
- *
- * @param key 数据的名称
- * @param val 数据的具体值
- */
-TCarInfoDlg.get = function(key) {
-    return $("#" + key).val();
-}
-
-/**
- * 关闭此对话框
- */
-TCarInfoDlg.close = function() {
-    parent.layer.close(window.parent.TCompetition.layerIndex);
-}
-
-/**
- * 收集数据
- */
-TCarInfoDlg.collectData = function() {
-    this
-    .set('id')
-    .set('isPlatCar')
-    .set('companyId')
-    .set('franchiseeId')
-    .set('carColor')
-    .set('carModelId')
-    .set('carBrandId')
-    .set('carLicensePlate')
-    .set('carPhoto')
-    .set('drivingLicenseNumber')
-    .set('drivingLicensePhoto')
-    .set('annualInspectionTime')
-    .set('commercialInsuranceTime')
-    .set('createTime')
-    .set('state')
-    .set('addType')
-    .set('addObjectId')
-    .set('plateColor')
-    .set('vehicleType')
-    .set('ownerName')
-    .set('engineId')
-    .set('VIN')
-    .set('certifyDateA')
-    .set('fuelType')
-    .set('engineDisplace')
-    .set('certificate')
-    .set('transAgency')
-    .set('transArea')
-    .set('transDateStart')
-    .set('transDateStop')
-    .set('certifyDateB')
-    .set('fixState')
-    .set('nextFixDate')
-    .set('checkState')
-    .set('feePrintId')
-    .set('GPSBrand')
-    .set('GPSModel')
-    .set('GPSIMEI')
-    .set('GPSInstallDate')
-    .set('registerDate')
-    .set('commercialType');
-}
-
-/**
- * 提交添加
- */
-TCarInfoDlg.addSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("添加成功!");
-            }else if(language==2){
-                Feng.success("Successfully added!");
-            }else {
-                Feng.success("Sangat berhasil ditambah!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-
-    },function(data){
-        Feng.error("添加失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set(this.tCarInfoData);
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.start();
-}
-
-/**
- * 提交修改
- */
-TCarInfoDlg.editSubmit = function() {
-
-    this.clearData();
-    this.collectData();
-    if(!this.validate()){
-        return ;
-    }
-    let pCode = $("#pCode").val()
-    let cCode = $("#cCode").val()
-    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/update", function(data){
-        if(data=="5001"){
-            Feng.error("改账号已经存在");
-        }else
-        if(data.code == 200){
-            if(language==1){
-                Feng.success("修改成功!");
-            }else if(language==2){
-                Feng.success("Modify successfully!");
-            }else {
-                Feng.success("Mengubah dengan sukses!");
-            }
-            window.parent.TCompetition.table.refresh();
-            TCarInfoDlg.close();
-        }else{
-            Feng.error(data.msg);
-        }
-    },function(data){
-        Feng.error("修改失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set("provinceCode",pCode);
-    ajax.set("cityCode",cCode);
-    ajax.set("name",name);
-    ajax.set("phone",phone);
-    ajax.set("id",$("#id").val());
-    ajax.start();
-}
-
-$(function() {
-    Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
-    // 初始化图片上传
-    var carPhoto = new $WebUpload("carPhoto");
-    carPhoto.setUploadBarId("progressBar");
-    carPhoto.init();
-    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
-    drivingLicensePhoto.setUploadBarId("progressBar");
-    drivingLicensePhoto.init();
-});
-
-/**
- * 选择分公司后执行
- */
-TCarInfoDlg.oneChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/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();
-}
-
-/**
- * 类型改变执行
- * @param e
- */
-TCarInfoDlg.companyTypeClick = function (e) {
-    if (1 == e){
-        $(".companyDiv").hide();
-    } else if (2 == e){
-        $(".companyDiv").show();
-    }
-}
-
-/**
- * 车辆品牌改变时执行
- */
-TCarInfoDlg.brandChange = function (e) {
-    var carBrandId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
-        if(data!=null){
-            if(language==1){
-                var content='<option value="">选择车辆类型</option>';
-            }else if(language==2){
-                var content='<option value="">Please select the vehicle type</option>';
-            }else {
-                var content='<option value="">Pilih Jenis Kendaraan</option>';
-            }
-
-            $.each(data, function(k,v) {
-                content += "<option value='"+v.id+"'>"+v.name+"</option>";
-            });
-            $("#carModelId").empty().append(content);
-        }
-    });
-    ajax.set("carBrandId",carBrandId);
-    ajax.start();
-}
-
-/**
- * 专车服务被点击
- */
-TCarInfoDlg.zcServerClick = function () {
-    var serverBox1 = $('#serverBox1').prop('checked');
-    if (serverBox1){
-        $("#zcModelDiv").show();
-    } else {
-        $("#zcModelDiv").hide();
-    }
-}
-
-/**
- * 跨城服务被点击
- */
-TCarInfoDlg.kcServerClick = function () {
-    var serverBox3 = $('#serverBox3').prop('checked');
-    if (serverBox3){
-        $("#kcModelDiv").show();
-    } else {
-        $("#kcModelDiv").hide();
-    }
-}
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js
index f75a56d..f323923 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods.js
@@ -130,11 +130,11 @@
     if (this.check()) {
         var index = layer.open({
             type: 2,
-            title:'详情',
+            title:'编辑',
             area: ['100%', '100%'], //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/tGoods/goods_info/' + TPointProducts.seItem.id
+            content: Feng.ctxPath + '/tGoods/tCity_update/' + TPointProducts.seItem.id
         });
         this.layerIndex = index;
     }
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
index 8e79b8b..aff59ba 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js
@@ -2,12 +2,11 @@
  * 初始化车辆管理详情对话框
  */
 var language=1;
-var TGoodsInfoDlg = {
-    tGoodsInfoData : {},
+var TCarInfoDlg = {
+    tCarInfoData : {},
     validateFields: {
     },
     goodsPicArray:[],
-    goodsPicArray1:[],
     storeIds: [],
 
 };
@@ -15,7 +14,7 @@
 /**
  * 验证数据是否为空
  */
-TGoodsInfoDlg.validate = function () {
+TCarInfoDlg.validate = function () {
     $('#carInfoForm').data("bootstrapValidator").resetForm();
     $('#carInfoForm').bootstrapValidator('validate');
     return $("#carInfoForm").data('bootstrapValidator').isValid();
@@ -24,8 +23,8 @@
 /**
  * 清除数据
  */
-TGoodsInfoDlg.clearData = function() {
-    this.tGoodsInfoData = {};
+TCarInfoDlg.clearData = function() {
+    this.tCarInfoData = {};
 }
 
 /**
@@ -34,8 +33,8 @@
  * @param key 数据的名称
  * @param val 数据的具体值
  */
-TGoodsInfoDlg.set = function(key, val) {
-    this.tGoodsInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+TCarInfoDlg.set = function(key, val) {
+    this.tCarInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
     return this;
 }
 
@@ -45,14 +44,14 @@
  * @param key 数据的名称
  * @param val 数据的具体值
  */
-TGoodsInfoDlg.get = function(key) {
+TCarInfoDlg.get = function(key) {
     return $("#" + key).val();
 }
 
 /**
  * 关闭此对话框
  */
-TGoodsInfoDlg.close = function() {
+TCarInfoDlg.close = function() {
     parent.layer.close(window.parent.TPointProducts.layerIndex);
 }
 
@@ -60,7 +59,7 @@
 /**
  * 收集数据
  */
-TGoodsInfoDlg.collectData = function() {
+TCarInfoDlg.collectData = function() {
     this
     .set('id')
     .set('isPlatCar')
@@ -115,7 +114,7 @@
     });
     this.layerIndex = index;
 }
-TGoodsInfoDlg.selecUserOpt = function (arrays){
+TCarInfoDlg.selecUserOpt = function (arrays){
     console.log(arrays)
     //获取所有的值
     var subArr= this.storeIds;
@@ -146,15 +145,15 @@
     console.log(e);
     var row = $(e).closest('tr');
     var value = row.find('#id').val();
-    TGoodsInfoDlg.storeIds.splice(TGoodsInfoDlg.storeIds.indexOf(parseInt(value)), 1)
+    TCarInfoDlg.storeIds.splice(TCarInfoDlg.storeIds.indexOf(parseInt(value)), 1)
     $(e).parent().parent().remove();
-    console.log('storeIds',TGoodsInfoDlg.storeIds)
+    console.log('storeIds',TCarInfoDlg.storeIds)
 }
-TGoodsInfoDlg.delete = function (o) {
+TCarInfoDlg.delete = function (o) {
     $(o).parent("div").remove()
 }
 var num = 0;
-TGoodsInfoDlg.addBranch = function () {
+TCarInfoDlg.addBranch = function () {
     num=num+1;
     var a= "";
     a = "<div style=\'margin-left: 25%\' class=\"col-sm-9 control-label\">\n" +
@@ -166,7 +165,7 @@
         "                                <option value=\"\">请选择</option>\n" +
         "                            </select>\n" +
         "                            <label class=\"col-sm-1\" style=\"width: 7%;margin-top: 7px\">市</label>\n" +
-        "                            <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TGoodsInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
+        "                            <label name=\"addBranch\" class=\"col-sm-1\" onclick=\"TCarInfoDlg.delete(this)\" style=\"border: 0px;cursor: pointer;margin-top: 1%\"><i class=\"fa fa-trash\"></i></label>"+
         "                        </div>";
     $("#cityDemo").append($(a));
     getProvince(num);
@@ -230,418 +229,129 @@
 /**
  * 提交添加
  */
-TGoodsInfoDlg.addSubmit = function() {
+TCarInfoDlg.addSubmit = function() {
 
     this.clearData();
     this.collectData();
     if(!this.validate()){
         return ;
     }
-    let typeAll = document.querySelector('input[name="type"]:checked').value;
-    if(typeAll==2){
-        let pCode = $("#pCode").val()
-        let cCode = $("#cCode").val()
-        if(pCode==''){
-            Feng.info("请选择省")
-            return;
-        }
-        if(cCode==''){
-            Feng.info("请选择市")
-            return;
-        }
-        let storeId = $("#storeId").val()
-        if(storeId==''){
-            Feng.info("请选择门店")
-            return;
-        }
-        let coursePackageTypeId = $("#coursePackageTypeId").val()
-        if(coursePackageTypeId==''){
-            Feng.info("请选择课包类型")
-            return;
-        }
-        let coursePackageId = $("#coursePackageId").val()
-        if(coursePackageId==''){
-            Feng.info("请选择课包")
-            return;
-        }
-        let coursePackageConfigId = $("#coursePackageConfigId").val()
-        if(coursePackageConfigId==''){
-            Feng.info("请选择课时数")
-            return;
-        }
-        let price = $("#price1").val()
-        if(price==''){
-            Feng.info("请填写原价")
-            return;
-        }
-        let type = document.querySelector('input[name="redemptionMethod"]:checked').value;
-        if(type==''){
-            Feng.info("请选择兑换方式")
-            return;
-        }
-        let integral='';
-        let cash='';
-        if(type==1){
-             integral = $("#integral1").val()
-            if(integral==''){
-                Feng.info("请填写所需积分")
-                return;
-            }
-        }
-        if(type==2){
-             integral = $("#integral1").val()
-            if(integral==''){
-                Feng.info("请填写所需积分")
-                return;
-            }
-             cash = $("#cash1").val()
-            if(cash==''){
-                Feng.info("请填写所需现金")
-                return;
-            }
-        }
 
-        let cover1 = $("#cover1").val()
-        // if(cover1==''){
-        //     Feng.info("请上传封面")
-        //     return;
-        // }
-        var goodImgs = this.goodsPicArray1;
-        var imgOne ="";
-        if(goodImgs.length==0){
-        }else {
-            for (let i = 0; i <goodImgs.length; i++) {
-                if(i==goodImgs.length-1){
-                    imgOne += (goodImgs[i].response)
-                }else {
-                    imgOne+=(goodImgs[i].response+",")
-                }
-            }
-        }
+    let pCode = $("#pCode").val()
+    let cCode = $("#cCode").val()
+    let name = $("#name").val()
+    let phone = $("#phone").val()
 
-        let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value;
-        if(userPopulation==''){
-            Feng.info("请选择用户人群")
-            return;
-        }
-
-        let quantityIssued = $("#quantityIssued1").val()
-        if(quantityIssued==''){
-            Feng.info("请填写发放数量")
-            return;
-        }
-        let pickUpQuantity = $("#pickUpQuantity1").val()
-        if(pickUpQuantity==''){
-            Feng.info("请填写限领数量")
-            return;
-        }
-        let startTime = $("#startTime1").val()
-        if(startTime==''){
-            Feng.info("请选择有效期")
-            return;
-        }
-        let text  = TGoodsInfoDlg.editor1.getContent();
-        console.log(text)
-        if(text==""){
-            Feng.info("请输入兑换说明")
-            return;
-        }
-
-        let sort = $("#sort1").val()
-        if(sort==''){
-            Feng.info("请填写排序")
-            return;
-        }
-
-
-        //提交信息
-        var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){
-            if(data=="5001"){
-                Feng.error("改账号已经存在");
-            }else
-            if(data.code == 200){
-                if(language==1){
-                    Feng.success("添加成功!");
-                }else if(language==2){
-                    Feng.success("Successfully added!");
-                }else {
-                    Feng.success("Sangat berhasil ditambah!");
-                }
-                window.parent.TPointProducts.table.refresh();
-                TGoodsInfoDlg.close();
-            }else{
-                Feng.error(data.msg);
-            }
-        },function(data){
-            Feng.error("添加失败!" + data.responseJSON.message + "!");
-        });
-        ajax.set("typeAll",typeAll);
-        ajax.set("provinceCode",pCode);
-        ajax.set("cityCode",cCode);
-        ajax.set("storeId",storeId);
-        ajax.set("coursePackageTypeId",coursePackageTypeId);
-        ajax.set("coursePackageId",coursePackageId);
-        ajax.set("coursePackageConfigId",coursePackageConfigId);
-        ajax.set("price",price);
-        ajax.set("type",type);
-        ajax.set("integral",integral);
-        ajax.set("cash",cash);
-        ajax.set("cover",cover1);
-        ajax.set("imgOne",imgOne);
-        ajax.set("userPopulation",userPopulation);
-        ajax.set("quantityIssued",quantityIssued);
-        ajax.set("pickUpQuantity",pickUpQuantity);
-        ajax.set("startTime",startTime);
-        ajax.set("text",text);
-        ajax.set("sort",sort);
-        ajax.start();
-
-    }else {
-        let name = $("#name").val()
-        if(name==''){
-            Feng.info("请填写商品名称")
-            return;
-        }
-        let price = $("#price").val()
-        if(price==''){
-            Feng.info("请填写原价")
-            return;
-        }
-        let type = document.querySelector('input[name="redemptionMethod"]:checked').value;
-        if(type==''){
-            Feng.info("请选择兑换方式")
-            return;
-        }
-
-        let integral='';
-        let cash='';
-        if(type==1){
-            integral = $("#integral").val()
-            if(integral==''){
-                Feng.info("请填写所需积分")
-                return;
-            }
-        }
-        if(type==2){
-            integral = $("#integral").val()
-            if(integral==''){
-                Feng.info("请填写所需积分")
-                return;
-            }
-            cash = $("#cash").val()
-            if(cash==''){
-                Feng.info("请填写所需现金")
-                return;
-            }
-        }
-        if(type==3){
-            cash = $("#cash").val()
-            if(cash==''){
-                Feng.info("请填写所需现金")
-                return;
-            }
-        }
-
-        let cover1 = $("#cover").val()
-        var goodImgs = this.goodsPicArray;
-        var imgOne ="";
-        if(goodImgs.length==0){
-        }else {
-            for (let i = 0; i <goodImgs.length; i++) {
-                if(i==goodImgs.length-1){
-                    imgOne += (goodImgs[i].response)
-                }else {
-                    imgOne+=(goodImgs[i].response+",")
-                }
-            }
-        }
-
-        let userPopulation = document.querySelector('input[name="userPopulation"]:checked').value;
-        if(userPopulation==''){
-            Feng.info("请选择用户人群")
-            return;
-        }
-
-        let quantityIssued = $("#quantityIssued").val()
-        if(quantityIssued==''){
-            Feng.info("请填写发放数量")
-            return;
-        }
-        let pickUpQuantity = $("#pickUpQuantity").val()
-        if(pickUpQuantity==''){
-            Feng.info("请填写限领数量")
-            return;
-        }
-        let startTime = $("#startTime").val()
-        if(startTime==''){
-            Feng.info("请选择有效期")
-            return;
-        }
-
-        let company = document.querySelector('input[name="company"]:checked').value;
-
-        var cityIds = [];
-        var cts = "";
-        if (company === '2'){
-            var myselect=document.getElementById('cityData');
-            var seCity = myselect.options[myselect.selectedIndex].value;
-            if (seCity === null || seCity === undefined || seCity === ''){
-                return Feng.error('请选中一个省市');
-            }
-            cityIds.push(seCity);
-            if (num > 0){
-                for (let i = 1; i <= num; i++) {
-                    var insSelect=document.getElementById('cityData'+i);
-                    var inData = insSelect.options[insSelect.selectedIndex].value;
-                    if (inData !== undefined || inData !== null ||  inData !== ''){
-                        cityIds.push(inData);
-                    }
-                }
-                cts = cityIds.join(',');
-            }else {
-                cts = cityIds
-            }
-        }
-
-        const commaSeparatedString = this.goodsPicArray.join(',');
-
-        var stores = "";
-        if (company === '3'){
-            console.log('3---this.storeIds',this.storeIds);
-            if (TGoodsInfoDlg.storeIds.length === 0 ){
-                return Feng.error('请至少选择一个门店');
-            }
-            stores = this.storeIds.join(',');
-            console.log('stores--===--',stores)
-        }
-
-        let text  = TGoodsInfoDlg.editor.getContent();
-        console.log(text)
-        if(text==""){
-            Feng.info("请输入兑换说明")
-            return;
-        }
-
-        let sort = $("#sort").val()
-        if(sort==''){
-            Feng.info("请填写排序")
-            return;
-        }
-
-        //提交信息
-        var ajax = new $ax(Feng.ctxPath + "/tGoods/add", function(data){
-            if(data=="5001"){
-                Feng.error("改账号已经存在");
-            }else
-            if(data.code == 200){
-                if(language==1){
-                    Feng.success("添加成功!");
-                }else if(language==2){
-                    Feng.success("Successfully added!");
-                }else {
-                    Feng.success("Sangat berhasil ditambah!");
-                }
-                window.parent.TPointProducts.table.refresh();
-                TGoodsInfoDlg.close();
-            }else{
-                Feng.error(data.msg);
-            }
-
-        },function(data){
-            Feng.error("添加失败!" + data.responseJSON.message + "!");
-        });
-        ajax.set("typeAll",typeAll);
-        ajax.set("name",name);
-        ajax.set("price",price);
-        ajax.set("type",type);
-        ajax.set("integral",integral);
-        ajax.set("cash",cash);
-        ajax.set("cover",cover1);
-        ajax.set("imgOne",imgOne);
-        ajax.set("userPopulation",userPopulation);
-        ajax.set("quantityIssued",quantityIssued);
-        ajax.set("pickUpQuantity",pickUpQuantity);
-        ajax.set("startTime",startTime);
-        ajax.set("useScope",company);
-        ajax.set("cityIds",cts);
-        ajax.set("storeIds",stores);
-        ajax.set("text",text);
-        ajax.set("sort",sort);
-        ajax.start();
-
+    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=="5001"){
+            Feng.error("改账号已经存在");
+        }else
+        if(data.code == 200){
+            if(language==1){
+                Feng.success("添加成功!");
+            }else if(language==2){
+                Feng.success("Successfully added!");
+            }else {
+                Feng.success("Sangat berhasil ditambah!");
+            }
+            window.parent.TCompetition.table.refresh();
+            TCarInfoDlg.close();
+        }else{
+            Feng.error(data.msg);
+        }
 
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.tCarInfoData);
+    ajax.set("provinceCode",pCode);
+    ajax.set("cityCode",cCode);
+    ajax.set("name",name);
+    ajax.set("phone",phone);
+    ajax.start();
 }
-
-/**
- * 删除图片的函数
- * @param e
- */
-function delImg(e){
-
-    $(e).parent().remove();
-}
-
 
 /**
  * 提交修改
  */
-TGoodsInfoDlg.editSubmit = function() {
-    let cover = $("#cover").val();
-    let goodsId = $("#goodsId").val();
-    var productImages = "";
-    if (TGoodsInfoDlg.goodsPicArray.length > 0){
-        productImages = TGoodsInfoDlg.goodsPicArray.join(',');
-    }
-    let quantityIssued = $("#quantityIssued").val();
-    let pickUpQuantity = $("#pickUpQuantity").val();
-    let editor = jQuery.trim(TGoodsInfoDlg.editor.getContent());
-    console.log('editor:',editor)
+TCarInfoDlg.editSubmit = function() {
 
-    let sort = $("#sort").val();
+    this.clearData();
+    this.collectData();
+    if(!this.validate()){
+        return ;
+    }
+    let pCode = $("#pCode").val()
+    let cCode = $("#cCode").val()
+    let name = $("#name").val()
+    let phone = $("#phone").val()
 
-    if (quantityIssued === undefined || quantityIssued === null || quantityIssued === ''){
-        return Feng.error('发放数量不能为空!');
+    if(pCode==''){
+        Feng.info("请选择省")
+        return;
     }
-    if (pickUpQuantity === undefined || pickUpQuantity === null || pickUpQuantity === ''){
-        return Feng.error('限领数量不能为空!');
+    if(cCode==''){
+        Feng.info("请选择市")
+        return;
     }
-    let quantityHas = $("#quantityHas").val();
-    if (quantityIssued <= quantityHas){
-        return Feng.error('发放数量小于已领数量!');
+    if(name==''){
+        Feng.info("管理员姓名不能为空")
+        return;
     }
-
-
-    if (editor === undefined || editor === null || editor === ''){
-        return Feng.error('兑换说明不能为空!');
+    if(phone==''){
+        Feng.info("管理员手机号不能为空")
+        return;
     }
-    if (sort === undefined || sort === null || sort === ''){
-        return Feng.error('排序不能为空!');
-    }
-
     //提交信息
-    var ajax = new $ax(Feng.ctxPath + "/tGoods/update", function(data){
-        Feng.success("修改成功!");
-        window.parent.TPointProducts.table.refresh();
-        TGoodsInfoDlg.close();
+    var ajax = new $ax(Feng.ctxPath + "/tCity/update", function(data){
+        if(data=="5001"){
+            Feng.error("改账号已经存在");
+        }else
+        if(data.code == 200){
+            if(language==1){
+                Feng.success("修改成功!");
+            }else if(language==2){
+                Feng.success("Modify successfully!");
+            }else {
+                Feng.success("Mengubah dengan sukses!");
+            }
+            window.parent.TCompetition.table.refresh();
+            TCarInfoDlg.close();
+        }else{
+            Feng.error(data.msg);
+        }
     },function(data){
         Feng.error("修改失败!" + data.responseJSON.message + "!");
     });
-    ajax.set("pointMerchandiseId",goodsId);
-    ajax.set("quantityIssued",quantityIssued);
-    ajax.set("pickUpQuantity",pickUpQuantity);
-    ajax.set("redemptionInstructions",editor);
-    ajax.set("cover",cover);
-    ajax.set("productImages",productImages);
-    ajax.set("sort",sort);
+    ajax.set("provinceCode",pCode);
+    ajax.set("cityCode",cCode);
+    ajax.set("name",name);
+    ajax.set("phone",phone);
+    ajax.set("id",$("#id").val());
     ajax.start();
 }
 
 $(function() {
-
     getProvince(null);
-    Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
+    Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields);
     // 初始化图片上传
     var carPhoto = new $WebUpload("cover");
     carPhoto.setUploadBarId("progressBar");
@@ -649,17 +359,13 @@
     var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
     drivingLicensePhoto.setUploadBarId("progressBar");
     drivingLicensePhoto.init();
-    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
-    drivingLicensePhoto.setUploadBarId("progressBar");
-    drivingLicensePhoto.init();
-    TGoodsInfoDlg.editor = UE.getEditor('editor');
-    TGoodsInfoDlg.editor1 = UE.getEditor('editor1');
+    TCarInfoDlg.editor = UE.getEditor('editor');
 });
 
 /**
  * 选择分公司后执行
  */
-TGoodsInfoDlg.oneChange = function (e) {
+TCarInfoDlg.oneChange = function (e) {
     var oneId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
         if(data!=null){
@@ -679,72 +385,12 @@
     ajax.set("oneId",oneId);
     ajax.start();
 }
-TGoodsInfoDlg.storeChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/storeChange", 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.id+"'>"+v.name+"</option>";
-            });
-            $("#storeId").empty().append(content);
-        }
-    });
-    ajax.set("oneId",oneId);
-    ajax.start();
-}
-TGoodsInfoDlg.packageChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/packageChange", 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.id+"'>"+v.name+"</option>";
-            });
-            $("#coursePackageId").empty().append(content);
-        }
-    });
-    ajax.set("oneId",oneId);
-    ajax.start();
-}
-TGoodsInfoDlg.timeChange = function (e) {
-    var oneId=$(e).val();
-    var ajax = new $ax(Feng.ctxPath + "/tCity/timeChange", 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.id+"'>"+v.classHours+"</option>";
-            });
-            $("#coursePackageConfigId").empty().append(content);
-        }
-    });
-    ajax.set("oneId",oneId);
-    ajax.start();
-}
 
 /**
  * 类型改变执行
  * @param e
  */
-TGoodsInfoDlg.companyTypeClick = function (e) {
+TCarInfoDlg.companyTypeClick = function (e) {
     if (1 == e){
         $(".companyDiv").hide();
     } else if (2 == e){
@@ -755,7 +401,7 @@
 /**
  * 车辆品牌改变时执行
  */
-TGoodsInfoDlg.brandChange = function (e) {
+TCarInfoDlg.brandChange = function (e) {
     var carBrandId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCar/brandChange", function(data){
         if(data!=null){
@@ -780,7 +426,7 @@
 /**
  * 专车服务被点击
  */
-TGoodsInfoDlg.zcServerClick = function () {
+TCarInfoDlg.zcServerClick = function () {
     var serverBox1 = $('#serverBox1').prop('checked');
     if (serverBox1){
         $("#zcModelDiv").show();
@@ -792,7 +438,7 @@
 /**
  * 跨城服务被点击
  */
-TGoodsInfoDlg.kcServerClick = function () {
+TCarInfoDlg.kcServerClick = function () {
     var serverBox3 = $('#serverBox3').prop('checked');
     if (serverBox3){
         $("#kcModelDiv").show();
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
index 2c49494..8045689 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js
@@ -20,7 +20,7 @@
         {title: '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
         {title: '使用状态', field: 'status', visible: true, align: 'center', valign: 'middle',
             formatter: function (value, row, index) {
-                return {1: "未使用", 2: "已核销"}[value]
+                return {1: "未使用", 2: "待核销"}[value]
             }
         },
     ];
@@ -46,17 +46,14 @@
  * @constructor
  */
 TPayInfo.WriteOff = function (){
-    if (TPayInfo.check()) {
-        if (TPayInfo.seItem.status === 2){
-            return Feng.error("重复核销!");
-        }
+    if (this.check()) {
         var ajax = new $ax(Feng.ctxPath + "/tGoods/write_off", function (data) {
             Feng.success("核销成功!");
             TPayInfo.table.refresh();
         }, function (data) {
             Feng.error("核销失败!" + data.responseJSON.message + "!");
         });
-        ajax.set("id",TPayInfo.seItem.id);
+        ajax.set("id",this.seItem.id);
         ajax.start();
     }
 }
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
index 3c90189..0b2e109 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js
@@ -341,7 +341,6 @@
 var em = "";// 门店经营结束时间:分钟
 
 TSite.addSubmit = function(){
-
     var data = {
         province:"",
         city:"",
@@ -374,7 +373,6 @@
     var sm =data.appointmentStartTime.split(':')[1];
     var eh =data.appointmentEndTime.split(':')[0];
     var em =data.appointmentEndTime.split(':')[1];
-
     if($("#pCode").val()==''){
         Feng.info("请选择省")
         return;
@@ -495,8 +493,9 @@
                 data: JSON.stringify(data),
                 contentType: "application/json",
                 success: function (response) {
+                    window.parent.TSite.table.refresh();
+                    TSite.close();
                     Feng.success("添加成功");
-                    TSite.search();
                 },
                 error: function (xhr, status, error) {
                     Feng.error("添加失败!" + error);
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
index b0b9dbc..152f2e9 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite_info.js
@@ -334,6 +334,8 @@
                 data: JSON.stringify(data),
                 contentType: "application/json",
                 success: function (response) {
+                    window.parent.TSite.table.refresh();
+                    TSiteInfo.close();
                     Feng.success("修改成功");
                 },
                 error: function (xhr, status, error) {
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java
index b232622..96e644f 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java
@@ -1,6 +1,7 @@
 package com.dsh.other.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.other.entity.StoredValueConfig;
 import com.dsh.other.service.StoredValueConfigService;
 import com.dsh.other.util.ResultUtil;
@@ -10,10 +11,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -33,6 +31,19 @@
     @Autowired
     private StoredValueConfigService svconfigService;
 
+    @RequestMapping("/base/storeValueConfig/addStoreValueConfig")
+    public Object addStoreValueConfig(@RequestBody StoredValueConfig storedValueConfig){
+        StoredValueConfig one = svconfigService.getOne(new QueryWrapper<>());
+        one.setContent(storedValueConfig.getContent());
+        one.setDescription(storedValueConfig.getDescription());
+        return svconfigService.updateById(one);
+
+    }
+
+    @RequestMapping("/base/storeValueConfig/getStoreValueConfig")
+    public StoredValueConfig getStoreValueConfig(){
+        return svconfigService.getOne(new QueryWrapper<>());
+    }
     @ResponseBody
     @PostMapping("/base/stored/getRechargeArrange")
     public List<Map<String,Object>> getRechargeConfig(){

--
Gitblit v1.7.1