From 12ec47a5fed86e04433ca725caf6068c5000d0af Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期日, 08 十月 2023 17:02:09 +0800
Subject: [PATCH] 后台代码

---
 cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java                                        |    2 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/ticket/ticket_add.html                             |   86 ++
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js                             |   34 
 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js                                   |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/AdvertisementController.java |   86 +++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java                   |   11 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TicketController.java        |   33 +
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java           |   17 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html                   |    2 
 cloud-server-management/src/main/webapp/static/modular/system/advertisement/advertisement.js                   |   67 ++
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreListOne.html                          |  123 ++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java       |   26 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/PointMercharsClient.java             |    7 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_payOne.html                          |   48 +
 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java                           |    2 
 cloud-server-course/src/main/resources/sharding-jdbc.properties                                                |    4 
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js                              |   48 +
 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tGoods_info.js                            |  386 +++++++++++++++
 cloud-server-management/src/main/resources/mapper/TStoreMapper.xml                                             |   21 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_config.html            |  121 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/model/WriteOffDTO.java                                    |   20 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_benefits.html          |  109 ++++
 cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java                       |    6 
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java                   |   14 
 cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js                            |   84 ---
 cloud-server-management/src/main/webapp/static/modular/system/ticket/ticket.js                                 |    4 
 cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js                             |    4 
 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml                                    |    1 
 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/WriteOffDTO.java               |   18 
 cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java                             |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java  |    8 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TImgConfig.java                        |   43 +
 cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java                                   |    6 
 cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreList.html                             |    2 
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TGoodsController.java        |   35 +
 35 files changed, 1,299 insertions(+), 183 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index 37447d1..260bd03 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -426,7 +426,6 @@
         }
     }
 
-
     @PostMapping("/base/appUser/queryByNamePhone")
     public List<TAppUser> queryByNamePhone(@RequestBody QueryByNamePhone queryByNamePhone){
         try {
@@ -454,7 +453,6 @@
             return new TAppUser();
         }
     }
-
 
     /**
      * 根据名称模糊搜索用户
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
index 28f0007..769246e 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.dsh.account.entity.CityManager;
+import com.dsh.account.entity.TStoreStaff;
 import com.dsh.account.feignclient.other.model.Store;
 import com.dsh.account.service.ICityManagerService;
+import com.dsh.account.service.TStoreStaffService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,7 +26,8 @@
 
     @Resource
     private ICityManagerService cityManagerService;
-
+    @Autowired
+    private TStoreStaffService storeStaffService;
 
     /**
      * 根据管理员id获取详情信息
@@ -79,4 +82,5 @@
     public CityManager queryCityManagerById(@RequestBody Integer id){
         return cityManagerService.getById(id);
     }
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
index 62b571b..4e1b938 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java
@@ -169,6 +169,6 @@
     /**
      * 添加人id平台管理员id 运营商id
      */
-    @TableField("type")
+    @TableField("addUserId")
     private Integer addUserId;
 }
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 2935877..b46d67c 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
@@ -15,6 +15,7 @@
 import com.dsh.activity.model.CoachChangeStateVO;
 import com.dsh.activity.model.PointMerchandiseIncomeVo;
 import com.dsh.activity.model.PointMerchandiseVo;
+import com.dsh.activity.model.WriteOffDTO;
 import com.dsh.activity.model.request.*;
 import com.dsh.activity.model.response.GoodsInfoOneVo;
 import com.dsh.activity.model.response.StoreVos;
@@ -85,6 +86,19 @@
     public Object changeState(@RequestBody CoachChangeStateVO dto){
         return pmdsService.changeState(dto);
     }
+    /**
+     * 门票核销
+     */
+    @RequestMapping("/base/pointMerchars/writeOff")
+    public Object writeOff(@RequestBody WriteOffDTO dto){
+        UserPointsMerchandise byId = userPointsMerchandiseService.getById(dto.getId());
+        byId.setStoreId(dto.getVerifiStoreId());
+        byId.setStatus(2);
+        byId.setVerificationTime(new Date());
+        byId.setUserId(null);
+        byId.setVerificationUserId(dto.getVerificationUserId());
+        return userPointsMerchandiseService.updateById(byId);
+    }
     @ResponseBody
     @PostMapping("/base/pointMerchars/ticketList")
     public List<Map<String,Object>> ticketList(@RequestBody IntegralGoodsOfSearch ofSearch){
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/WriteOffDTO.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/WriteOffDTO.java
new file mode 100644
index 0000000..b553855
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/WriteOffDTO.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 核销门票DTO
+ */
+@Data
+public class WriteOffDTO {
+    // 积分商品领取id
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+    private Integer verificationUserId;
+
+    // 核销门店id 如果状态为已核销 verifiStoreId为null 则是平台核销
+    private Integer verifiStoreId;
+}
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
index 52bffed..6ca8f3c 100644
--- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -33,6 +33,7 @@
         <if test="state != null">
             and `state` = #{state}
         </if>
+        and `type` !=3
         order by insertTime desc
     </select>
     <select id="ticketList" resultType="java.util.Map">
diff --git a/cloud-server-course/src/main/resources/sharding-jdbc.properties b/cloud-server-course/src/main/resources/sharding-jdbc.properties
index ca0dde7..09e20a5 100644
--- a/cloud-server-course/src/main/resources/sharding-jdbc.properties
+++ b/cloud-server-course/src/main/resources/sharding-jdbc.properties
@@ -3,9 +3,9 @@
 #��������
 datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
 datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
-datasource.master0.url=jdbc:mysql://8.137.22.229:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
+datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
 datasource.master0.username=root
-datasource.master0.password=playpai2023!
+datasource.master0.password=123456
 datasource.master0.maxActive=20
 datasource.master0.maxWait=60000
 datasource.master0.minIdle=5
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 a682775..5e172f0 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
@@ -2,12 +2,9 @@
 
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-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.*;
 import com.dsh.guns.modular.system.model.CoachChangeStateVO;
 import com.dsh.guns.modular.system.model.PointMerchandiseIncomeVo;
-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;
@@ -21,6 +18,8 @@
 
 @FeignClient(value = "mb-cloud-activity")
 public interface PointMercharsClient {
+    @RequestMapping("/base/pointMerchars/writeOff")
+    Object writeOff(@RequestBody WriteOffDTO dto);
     /**
      * 门票上下架 state=1 上架 state=2 下架
      */
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/WriteOffDTO.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/WriteOffDTO.java
new file mode 100644
index 0000000..b3ea0e8
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/WriteOffDTO.java
@@ -0,0 +1,18 @@
+package com.dsh.course.feignClient.activity.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+/**
+ * 核销门票DTO
+ */
+@Data
+public class WriteOffDTO {
+    // 积分商品领取id
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    private Long id;
+    private Integer verificationUserId;
+
+    // 核销门店id 如果状态为已核销 verifiStoreId为null 则是平台核销
+    private Integer verifiStoreId;
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
index b98b214..17905d0 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.guns.modular.system.model.TImgConfig;
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.model.TStoreListVo;
 import com.dsh.guns.modular.system.model.TTurn;
@@ -58,4 +59,9 @@
     List<TTurn> pageList();
 
     List<TTurn> getPage(@Param("ids") List<Integer> ids);
+
+    List<TImgConfig> getConfig1();
+
+    void updateBasicConfig(@Param("position") Integer position,@Param("p1")  String p1);
+    void updateBasicBenefits(@Param("position") Integer position,@Param("p1")  String p1);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/AdvertisementController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/AdvertisementController.java
index aa72a63..e9c5f0b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/AdvertisementController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/AdvertisementController.java
@@ -1,5 +1,6 @@
 package com.dsh.guns.modular.system.controller.code;
 
+import com.dsh.course.entity.Img;
 import com.dsh.course.feignClient.account.CityManagerClient;
 import com.dsh.course.feignClient.account.model.CityManager;
 import com.dsh.course.feignClient.account.model.Coach;
@@ -38,6 +39,7 @@
     private BannerClient bannerClient;
     @Autowired
     private IStoreService storeService;
+
     /**
      * 跳转到广告页面
      */
@@ -63,6 +65,90 @@
         model.addAttribute("roleType",roleType);
         return PREFIX + "advertisement_add.html";
     }
+    /**
+     * 配置基础页面
+     */
+    @ResponseBody
+    @RequestMapping(value = "/updateConfig")
+    public Object updateConfig(String p1,String p2 ,String p7) {
+        if (!p1.equals("")){
+            storeService.updateBasicConfig(1,p1);
+        }
+        if (!p2.equals("")){
+            storeService.updateBasicConfig(2,p2);
+        }
+        if (!p7.equals("")){
+            storeService.updateBasicConfig(7,p7);
+        }
+        return SUCCESS_TIP;
+    }
+    /**
+     * 配置福利页面
+     */
+    @ResponseBody
+    @RequestMapping(value = "/updateBenefits")
+    public Object updateBenefits(String p3,String p4 ,String p5,String p6) {
+        if (!p3.equals("")){
+            storeService.updateBenefits(3,p3);
+        }
+        if (!p4.equals("")){
+            storeService.updateBenefits(4,p4);
+        }
+        if (!p5.equals("")){
+            storeService.updateBenefits(5,p5);
+        }
+        if (!p6.equals("")){
+            storeService.updateBenefits(6,p6);
+        }
+        return SUCCESS_TIP;
+    }
+    /**
+     * 跳转基础页面配置
+     */
+    @RequestMapping("/config")
+    public String config(Model model) {
+        List<TImgConfig> result =storeService.getConfig();
+        for (TImgConfig tImgConfig : result) {
+            switch (tImgConfig.getPosition()){
+                case 1:
+                    model.addAttribute("c1",tImgConfig.getContent());
+                    break;
+                case 2:
+                    model.addAttribute("c2",tImgConfig.getContent());
+                    break;
+                case 7:
+                    model.addAttribute("c7",tImgConfig.getContent());
+                    break;
+            }
+        }
+        return PREFIX + "advertisement_config.html";
+    }
+    /**
+     * 跳转福利页面配置
+     */
+    @RequestMapping("/benefits")
+    public String benefits(Model model) {
+        List<TImgConfig> result =storeService.getConfig();
+        for (TImgConfig tImgConfig : result) {
+            switch (tImgConfig.getPosition()){
+                case 3:
+                    model.addAttribute("c3",tImgConfig.getContent());
+                    break;
+                case 4:
+                    model.addAttribute("c4",tImgConfig.getContent());
+                    break;
+                case 5:
+                    model.addAttribute("c5",tImgConfig.getContent());
+                    break;
+                case 6:
+                    model.addAttribute("c6",tImgConfig.getContent());
+                    break;
+            }
+        }
+        Integer roleType = UserExt.getUser().getObjectType();
+        model.addAttribute("roleType",roleType);
+        return PREFIX + "advertisement_benefits.html";
+    }
 
     /**
      * 跳转到广告编辑页面
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
index 8190a57..982a40b 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorUserController.java
@@ -70,11 +70,11 @@
         List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
         model.addAttribute("provinceList",provinceList);
         List<Bank> bankList = operatorService.getBankList();
-        TStore store = storeService.getOne(new QueryWrapper<TStore>().eq("operatorId", id));
+        TStore store = storeService.getOne(new QueryWrapper<TStore>().eq("cityManagerId", id));
         model.addAttribute("storeName",store.getName());
-//        TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(store.getStoreStaffId());
-//        model.addAttribute("storeStaff",storeByStoreStaffId.getName());
-//        model.addAttribute("storePhone",storeByStoreStaffId.getPhone());
+        TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(store.getStoreStaffId());
+        model.addAttribute("storeStaff",storeByStoreStaffId.getName());
+        model.addAttribute("storePhone",storeByStoreStaffId.getPhone());
         model.addAttribute("bankList",bankList);
         return PREFIX + "OperatorUser_auth.html";
     }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
index 8f53790..16e7442 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
@@ -173,31 +173,26 @@
 
     @RequestMapping("/storeDetailsOfSearch")
     @ResponseBody
-    public Object listOfStore(Integer provinceId,Integer cityId,Integer operatorId,String storeName){
-        String provinceCode = null;
-        String cityCode = null;
-        if (ToolUtil.isNotEmpty(provinceId)){
-            Region provinceRegion = regiService.getById(provinceId);
-            provinceCode = provinceRegion.getCode();
-        }
-        if (ToolUtil.isNotEmpty(cityId)){
-            Region cityRegion = regiService.getById(cityId);
-            cityCode = cityRegion.getCode();
-        }
+    public Object listOfStore(String provinceId,String cityId,Integer operatorId,String storeName){
+
+
         Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
-        List<Map<String,Object>> storeList = storeService.queryListOfpage(provinceCode,cityCode,operatorId,storeName,page);
+        List<Map<String,Object>> storeList = storeService.queryListOfpage(provinceId,cityId,operatorId,storeName,page);
         if (storeList.size() > 0 ){
             for (Map<String, Object> stringObjectMap : storeList) {
                 String provinceName = (String) stringObjectMap.get("province");
                 String cityName = (String) stringObjectMap.get("city");
                 stringObjectMap.put("provinceCity",provinceName+cityName);
                 Integer managerId = (Integer) stringObjectMap.get("operatorId");
-                if (managerId==null){
+                if (managerId==0){
                     stringObjectMap.put("accountName","平台");
                 }else{
                     TOperator operator = operatorService.getOne(new QueryWrapper<TOperator>().eq("id", managerId));
                     if (ToolUtil.isNotEmpty(operator)){
                         stringObjectMap.put("accountName",operator.getName());
+                    }else{
+                        stringObjectMap.put("accountName","平台");
+
                     }
                 }
 
@@ -296,10 +291,13 @@
     // 通过市 获取运营商
     @RequestMapping(value = "/getOperator")
     @ResponseBody
-    public Object getOperator(Integer city){
+    public Object getOperator(String city){
         List<TOperatorCity> name = operatorCityService.list(new QueryWrapper<TOperatorCity>().eq("name", city));
         List<Integer> collect = name.stream().map(TOperatorCity::getOperatorId)
                 .collect(Collectors.toList());
+        if (collect.size()==0){
+            return new ArrayList<>();
+        }
         return operatorService.list(new QueryWrapper<TOperator>().in("id",collect));
     }
 
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 7c36464..20f337d 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
@@ -240,7 +240,18 @@
      */
     @RequestMapping("/storeList")
     public String storePage(Model model) {
+        List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+        model.addAttribute("list",provinceList);
         return PREFIX + "TStoreList.html";
+    }
+    /**
+     * 跳转到门店管理列表页
+     */
+    @RequestMapping("/storeList1")
+    public String storePage1(Model model) {
+        List<TCity> provinceList = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
+        model.addAttribute("list",provinceList);
+        return PREFIX + "TStoreListOne.html";
     }
     @RequestMapping("/updateType")
     @ResponseBody
@@ -568,8 +579,17 @@
         model.addAttribute("id",id);
         return PREFIX + "TGoods_pay.html";
     }
-
-
+    /**
+     *  购买详情
+     * @param id 商品id
+     * @return
+     */
+    @RequestMapping("/tPay_detail1/{id}")
+    public String payOfDetailsOne(@PathVariable(value = "id") Integer id,Model model) {
+        System.out.println(id);
+        model.addAttribute("id",id);
+        return PREFIX + "TGoods_payOne.html";
+    }
     /**
      * 获取 购买记录列表
      */
@@ -582,9 +602,18 @@
         payedVo.setPhone(phone);
         payedVo.setStatus(status);
         List<Map<String,Object>> points = pointMercharsClient.queryUserPayedGoodsList(payedVo);
-        System.out.println(points);
+            System.out.println(points);
         if (points.size() > 0 ){
+
             for (Map<String, Object> point : points) {
+                Object id1 = point.get("id");
+                String idAsString = String.valueOf(id1);
+
+                // 移除原始的 "id" 键
+                point.remove("id");
+
+                // 将字符串类型的 "id" 放回 Map 对象中
+                point.put("id", idAsString);
                 Integer userId = (Integer) point.get("userId");
                 TAppUser tAppUser = appUserClient.queryById(userId);
                 if (ToolUtil.isNotEmpty(tAppUser)){
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TicketController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TicketController.java
index 1b3ab19..3013b98 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TicketController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TicketController.java
@@ -3,12 +3,15 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dsh.course.feignClient.account.AppUserClient;
 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.QueryByNamePhone;
 import com.dsh.course.feignClient.account.model.TAppUser;
+import com.dsh.course.feignClient.account.model.TStoreStaff;
 import com.dsh.course.feignClient.activity.CouponClient;
 import com.dsh.course.feignClient.activity.PointMercharsClient;
 import com.dsh.course.feignClient.activity.model.*;
@@ -22,6 +25,8 @@
 import com.dsh.guns.modular.system.service.IStoreService;
 import com.dsh.guns.modular.system.util.OBSUploadUtil;
 import com.dsh.guns.modular.system.util.ResultUtil;
+import net.bytebuddy.asm.Advice;
+import org.omg.CORBA.PRIVATE_MEMBER;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -64,6 +69,8 @@
 
     @Resource
     private PointMercharsClient pointMercharsClient;
+    @Autowired
+    private StoreStaffClient storeStaffClient;
 
     /**
      * 跳转到优惠券管理首页
@@ -340,8 +347,30 @@
         System.out.println(b);
         return new SuccessTip<>();
     }
-
-
+    /**
+     *  上下架处理操作
+     * @return
+     */
+    @RequestMapping("/writeOff")
+    @ResponseBody
+    public Object writeOff(String id) {
+        Long aLong = Long.valueOf(id);
+        WriteOffDTO dto = new WriteOffDTO();
+        // 核销人员id
+        Integer objectId = UserExt.getUser().getId();
+        if (UserExt.getUser().getObjectType() == 1){
+            dto.setVerifiStoreId(null);
+        }else if (UserExt.getUser().getObjectType() == 2){
+            storeService.getOne(new QueryWrapper<TStore>().eq("cityManagerId",objectId));
+        }else{
+            TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(objectId);
+            dto.setVerifiStoreId(storeByStoreStaffId.getStoreId());
+        }
+        dto.setId(aLong);
+        dto.setVerificationUserId(objectId);
+        pointMercharsClient.writeOff(dto);
+        return new SuccessTip<>();
+    }
 
     /**
      *  购买详情
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TImgConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TImgConfig.java
new file mode 100644
index 0000000..d618044
--- /dev/null
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TImgConfig.java
@@ -0,0 +1,43 @@
+package com.dsh.guns.modular.system.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 lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 图片配置
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-06-14
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_img_config")
+public class TImgConfig {
+
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 位置(1=无学员,2=成为会员,3=我的券包,4=线上商城,5=本周福利,6=今日免费)
+     */
+    @TableField("position")
+    private Integer position;
+    /**
+     * 图片配置JSON
+     */
+    @TableField("content")
+    private String content;
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
index 4cc9227..2f7aca9 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IStoreService.java
@@ -2,10 +2,8 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.dsh.guns.modular.system.model.Dict;
-import com.dsh.guns.modular.system.model.TStore;
-import com.dsh.guns.modular.system.model.TStoreListVo;
-import com.dsh.guns.modular.system.model.TTurn;
+import com.dsh.guns.modular.system.model.*;
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -59,4 +57,9 @@
     List<TTurn> pageList();
 
     List<TTurn> getPage(List<Integer> ids);
+
+    List<TImgConfig> getConfig();
+
+    void updateBasicConfig(Integer id , String p1);
+    void updateBenefits(Integer id , String p1);
 }
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
index 41b066f..5698233 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dsh.course.mapper.StoreMapper;
+import com.dsh.guns.modular.system.model.TImgConfig;
 import com.dsh.guns.modular.system.model.TStore;
 import com.dsh.guns.modular.system.model.TStoreListVo;
 import com.dsh.guns.modular.system.model.TTurn;
@@ -90,4 +91,20 @@
     public List<TTurn> getPage(List<Integer> ids) {
         return this.baseMapper.getPage(ids);
     }
+
+    @Override
+    public List<TImgConfig> getConfig() {
+
+        return this.baseMapper.getConfig1();
+    }
+
+    @Override
+    public void updateBasicConfig(Integer id, String p1) {
+        this.baseMapper.updateBasicConfig(id,p1);
+    }
+
+    @Override
+    public void updateBenefits(Integer id, String p1) {
+        this.baseMapper.updateBasicBenefits(id,p1);
+    }
 }
diff --git a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
index 2120241..e8a7951 100644
--- a/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
+++ b/cloud-server-management/src/main/resources/mapper/TStoreMapper.xml
@@ -12,6 +12,18 @@
                                         state,pageId,typeId
                                         ) value (null ,#{url},#{name},#{s},#{s1},#{turnId},#{sort},1,#{page},#{type})
     </insert>
+    <update id="updateBasicConfig">
+        update t_img_config
+        set content = #{p1}
+        where `position` =#{position}
+    </update>
+
+    <update id="updateBasicBenefits">
+        update t_img_config
+        set content = #{p1}
+        where `position` =#{position}
+    </update>
+
     <delete id="delete1">
         delete from t_store_other_config where id =#{id}
     </delete>
@@ -59,13 +71,13 @@
         SELECT `id`, `operatorId`, `province`, `city`, `name`,ids
         from t_store
         where 1=1
-        <if test="provinceCode != null">
+        <if test="provinceCode != null and provinceCode!=''">
             and provinceCode = #{provinceCode}
         </if>
-        <if test="cityCode != null">
+        <if test="cityCode != null and cityCode!=''">
             and cityCode = #{cityCode}
         </if>
-        <if test="operatorId != null">
+        <if test="operatorId != null and operatorId!=''">
             and operatorId = #{operatorId}
         </if>
         <if test="storeName != null and storeName != ''">
@@ -102,4 +114,7 @@
     <select id="pageList" resultType="com.dsh.guns.modular.system.model.TTurn">
         select * from t_turn where pid = 0
     </select>
+    <select id="getConfig1" resultType="com.dsh.guns.modular.system.model.TImgConfig">
+        select * from t_img_config
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html
index 5702f2c..25e358d 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement.html
@@ -38,6 +38,8 @@
                     <#button name="查看详情" icon="fa-search" clickFun="TSite.openInfo()" space="true"/>
                     <#button name="上架" icon="fa-check" clickFun="TSite.onShelf()" space="true"/>
                     <#button name="下架" icon="fa-remove" clickFun="TSite.offShelf()" space="true"/>
+                    <#button name="基础页面配置" icon="fa-remove" clickFun="TSite.basic()" space="true"/>
+                    <#button name="福利页面配置" icon="fa-remove" clickFun="TSite.benefits()" space="true"/>
                 </div>
                 <#table id="TSiteTable"/>
 </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_benefits.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_benefits.html
new file mode 100644
index 0000000..9577e64
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_benefits.html
@@ -0,0 +1,109 @@
+@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;
+    }
+    #app1{
+        margin-left: 255px;
+    }
+
+
+</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="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;">
+                    <#avatar id="cover3" name="" avatarImg="${c3}"/><span>推荐像素:780x560px</span>
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">*线上商城:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <#avatar id="cover4" name="" avatarImg="${c4}"/><span >推荐像素:780x560px</span>
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">*本周福利:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <#avatar id="cover5" name="" avatarImg="${c5}"/><span>推荐像素:616x402px</span>
+                </div>
+            </div>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">*今日免费:</label>
+                <div class="col-sm-9" style="display: flex;">
+                    <#avatar id="cover6" name="" avatarImg="${c6}"/><span>推荐像素:616x402px</span>
+                </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="TSite.addBenefits()"/>
+        <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TSite.close()"/>
+    </div>
+</div>
+
+        </div>
+        </div>
+
+    </div>
+
+</div>
+
+<script src="${ctxPath}/modular/system/advertisement/advertisement.js"></script>
+<script src="${ctxPath}/js/vue/vue.js"></script>
+<script src="${ctxPath}/js/elementui/index.js"></script>
+<link rel="stylesheet" href="${ctxPath}/js/elementui/index.css">
+
+<script>
+    $(function(){
+        var carPhoto1 = new $WebUpload("cover3");
+        carPhoto1.setUploadBarId("progressBar");
+        carPhoto1.init();
+        var carPhoto2 = new $WebUpload("cover4");
+        carPhoto2.setUploadBarId("progressBar");
+        carPhoto2.init();
+        var carPhoto7 = new $WebUpload("cover5");
+        carPhoto7.setUploadBarId("progressBar");
+        carPhoto7.init();
+        var carPhoto8 = new $WebUpload("cover6");
+        carPhoto8.setUploadBarId("progressBar");
+        carPhoto8.init();
+    });
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_config.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_config.html
new file mode 100644
index 0000000..760a40e
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_config.html
@@ -0,0 +1,121 @@
+@layout("/common/_container.html"){
+<link href="${ctxPath}/static/css/plugins/switchery/switchery.css" rel="stylesheet">
+<style>
+    .table1{
+        display: inline;
+        width: 33.333333333333333333333333333333333333%;
+        float:left;
+        text-align:center;
+        border-collapse:collapse;
+        font-size: 18px;
+    }
+    .table2{
+        display: inline;
+        width: 50%;
+        float:left;
+        text-align:center;
+        border-collapse:collapse;
+        font-size: 18px;
+    }
+    .table3{
+        display: inline;
+        width: 50%;
+        float:left;
+        text-align:center;
+        border-collapse:collapse;
+        font-size: 18px;
+    }
+    .table1:hover{
+        background-color: rgba(255,0,0,.3);
+    }
+    .newWidth, .single-line{
+        max-width:150px !important;display: initial !important;
+    }
+    .companyValueClass td:first-child {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+    }
+</style>
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+            <div class="row">
+<!--                    <div style="height: 50px;box-sizing: border-box;background:#f3f3f4;line-height: 50px;border:1px solid;margin-bottom: 20px;width: auto">-->
+<!--                        <div id="div1" class='table1' onclick="getContent(1)" style="border-right: 1px solid #333;background-color: rgb(26, 179, 148);color: white;">无学员配置</div>-->
+<!--                        <div id="div2" class='table1' onclick="getContent(2)" style="border-right: 1px solid #333;">成为会员</div>-->
+<!--                        <div id="div3" class='table1' onclick="getContent(3)" style="border-right: 1px solid #333;">启动页配置</div>-->
+<!--                    </div>-->
+                    <div class="row" id="content1" style="margin-left: 100px;">
+                        <div class="col-sm-11">
+                            <label class="col-sm-3 control-label">*无学员配置:</label>
+                            <div class="form-group" style="display: flex;">
+                                <#avatar id="cover1" name=""  avatarImg="${c1}"/>
+                                <span>推荐像素:宽度780px</span>
+                                </div>
+                            </div>
+
+                        </div>
+                    </div>
+            <div class="row" id="content2" style="margin-left: 100px;">
+                <div class="col-sm-11">
+                    <label class="col-sm-3 control-label">*成为会员:</label>
+                    <div class="form-group" style="display: flex;">
+                        <#avatar id="cover2" name=""  avatarImg="${c2}" />
+                        <span>推荐像素:宽度780px</span>
+                    </div>
+
+                </div>
+            </div>
+            <div class="row" id="content3" style="margin-left: 100px;">
+                <div class="col-sm-11">
+                    <label class="col-sm-3 control-label">*启动页配置:</label>
+                    <div class="form-group" style="display: flex;">
+                        <#avatar id="cover7" name=""  avatarImg="${c7}"/>
+                        <span>推荐像素:宽度780px</span>
+                    </div>
+                </div>
+            </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="TSite.addConfig()"/>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<script src="${ctxPath}/modular/system/dataStatistics/echarts.min.js"></script>
+<script src="${ctxPath}/modular/system/advertisement/advertisement.js"></script>
+<script src="${ctxPath}/static/js/plugins/switchery/switchery.js"></script>
+<script>
+    $(function(){
+
+
+        getContent(1);
+    });
+    function getContent(type){
+
+        //设置点击字体颜色效果
+        for(var i=1;i<4;i++){
+            document.getElementById("div"+i).style.color="#888888";//
+            document.getElementById("div"+i).style.backgroundColor ="";
+            $("#content"+i).hide();
+        }
+        //设置点击背景颜色效果
+        document.getElementById("div"+type).style.color="white";//
+        document.getElementById("div"+type).style.backgroundColor ="rgb(26, 179, 148)";
+        $("#type").val(type);
+        $("#content"+type).show();
+        if(type!=3){
+            $("#ensure").hide();
+            $("#nextB").show();
+        }else{
+            $("#ensure").show();
+            $("#nextB").hide();
+        }
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_payOne.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_payOne.html
new file mode 100644
index 0000000..1fc916d
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TGoods_payOne.html
@@ -0,0 +1,48 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <input id="id" value="${id}" hidden="hidden">
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+
+                            <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="status" name="状态:">
+                                <option value="">全部</option>
+                                <option value="1">未使用</option>
+                                <option value="2">已使用</option>
+                                </#SelectCon>
+                        </div>
+                        <div class="col-sm-3">
+                            <#button name="搜索" icon="fa-search" clickFun="TPayInfo.search()"/>
+                            <#button name="重置" icon="fa-trash" clickFun="TPayInfo.resetSearch()" space="true"/>
+                        </div>
+                    </div>
+                    <div class="hidden-xs" id="TPayInfoTableToolbar" role="group">
+                        <#button name="入园方式" icon="fa-plus" clickFun="TPayInfo.openAddTSite()"/>
+                    </div>
+                    <#table id="TPayInfoTable"/>
+
+                    <div style="margin-left: 40%">
+                        <button type="button" class="btn btn-info button-margin" onclick="TPayInfo.close()"
+                                id="submit" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                            <i class="fa fa-check"></i>&nbsp;关闭
+                        </button>
+                    </div>
+
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/tPay_info.js"></script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreList.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreList.html
index 0b08976..7c6e1a5 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreList.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreList.html
@@ -20,7 +20,7 @@
                                 </select>
                             </div>
                     <div class="col-sm-3">
-                        <#SelectCon id="userPopulation" name="所属运营商" >
+                        <#SelectCon id="userPopulation" name="所属账号" >
                         <option value="">全部</option>
                     </#SelectCon>
                 </div>
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreListOne.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreListOne.html
new file mode 100644
index 0000000..0ec7ca6
--- /dev/null
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tGoods/TStoreListOne.html
@@ -0,0 +1,123 @@
+@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="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" onchange="getAccount()">
+                                    </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="account">
+                                    </select>
+                                </div>
+                            </div>
+
+                <div class="col-sm-3">
+                    <#NameCon id="storeName" name="门店名称" placeholder="请输入门店名称"/>
+                </div>
+                <div class="col-sm-3">
+                    <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/>
+                    <#button name="重置" icon="fa-trash" clickFun="TStoreProvince.resetSearch()"/>
+                </div>
+            </div>
+            <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group">
+            </div>
+            <#table id="TStoreProvinceTable"/>
+            <div style="margin-left: 30%">
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()"
+                        id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;关闭
+                </button>
+
+                <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores()"
+                        id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;">
+                    <i class="fa fa-check"></i>&nbsp;保存
+                </button>
+            </div>
+        </div>
+    </div>
+</div>
+
+</div>
+</div>
+</div>
+<script src="${ctxPath}/modular/system/tGoods/TStoreInfo.js"></script>
+<script src="${ctxPath}/modular/system/tGoods/TCouponInfo.js"></script>
+<script>
+    function oneChange(e) {
+        var citySelect= document.getElementById("cCode");
+        var accountSelect= document.getElementById("account");
+        var oneId=$(e).val();
+        var content = "<option value=''>请选择</option>";
+        var ajax = new $ax(Feng.ctxPath + "/tCompetition/onChange", function(data){
+            if(data!=null){
+
+                $.each(data, function(k,v) {
+                    content += "<option value='"+v.name+"'>"+v.name+"</option>";
+                });
+                $("#cCode").empty().append(content);
+            }
+        });
+        accountSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+        if(oneId==""){
+            citySelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+            accountSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+        }
+        ajax.set("oneId",oneId);
+        ajax.start();
+    }
+    function getAccount() {
+        var oneId= $("#cCode option:selected").text();
+        var accountSelect= document.getElementById("account");
+        var content = "<option value=''>请选择</option>";
+        var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getOperator", function(data){
+            if(data!=null){
+                $.each(data, function(k,v) {
+                    content += "<option value='"+v.id+"'>"+v.name+"</option>";
+                });
+                $("#account").empty().append(content);
+            }
+        });
+        if(oneId==""){
+            accountSelect.innerHTML = '<option style="width: 300px" value="">请先选择省/市</option>';
+        }
+        ajax.set("city",oneId);
+        ajax.start();
+    }
+</script>
+@}
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ticket/ticket_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ticket/ticket_add.html
index 3de0427..88683dd 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/ticket/ticket_add.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/ticket/ticket_add.html
@@ -38,6 +38,7 @@
 </style>
 <div class="ibox float-e-margins">
     <div class="ibox-content">
+        <input hidden id="userType" value="${userType}">
         <div class="form-horizontal" id="carInfoForm">
             <#input id="name" name="门票名称" type="text"/>
             <div class="form-group">
@@ -53,9 +54,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" checked> 积分
-                    <input type="radio" name="redemptionMethod" value="2" > 现金+积分
-                    <input type="radio" name="redemptionMethod" value="3" > 现金
+                    <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)"> 现金
                 </div>
             </div>
             <div class="form-group" id="y1" hidden>
@@ -72,27 +73,31 @@
 
                 </div>
             </div>
-            <#avatar id="cover" name="门票封面" />
-            <div class="row" id="app" style="margin-left: 225px;" >
-                <div class="col-sm-6">
+            <#avatar id="cover" name="*门票封面(推荐像素350x350px)" />
+
+            <div class="row" id="app" >
+                <div class="col-sm-6" style="width: 100%">
                     <div class="form-group">
-                        <label class="col-sm-3 control-label">门票图片: </label>
-                        <div class="col-sm-2" style="margin-top: 2%">
+                        <label class="col-sm-3 control-label" style="width: 15%;margin-left: 7%">*门票图片(请上传不超过五张图片,推荐像素780x440px): </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"
-                                    :on-success="handleAvatarSuccess"
+                                    list-type="picture-card"
                                     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>
+                                    :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">
@@ -118,11 +123,12 @@
                 </div>
             </div>
             <#input id="startTime" name="有效期" type="text"/>
+            @if(roletype==3){
             <div class="row" id="belongsCon" >
                 <div class="form-group">
                     <div class="form-group">
                         <div class="initialLevel col-sm-12 control-label form-group">
-                            <label class="col-sm-3">*适用范围: </label>
+                            <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="0" checked style="margin-top: 10px"/>
@@ -143,6 +149,7 @@
 
                 </div>
             </div>
+            @}
 
             <div class="row" id="citySelect" hidden="hidden">
                 <div class="form-group">
@@ -170,7 +177,7 @@
                     <div class="form-group">
                         <div class="col-sm-12">
                             <label class="col-sm-3 control-label">*指定门店: </label>
-                            <button onclick="storeList()"
+                            <button onclick="storeList1()"
                                     style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%">
                                 选择门店
                             </button>
@@ -238,8 +245,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="TCarInfoDlg.addSubmit()"/>
-        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/>
+        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TGoodsInfoDlg.addSubmit1()"/>
+        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TGoodsInfoDlg.close()"/>
     </div>
 </div>
         </div>
@@ -251,7 +258,10 @@
 <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
+    });
     function updateType(e) {
         if(e==2){
             $("#b1").hide()
@@ -323,7 +333,45 @@
         $("#citySelect").hide();
     }
 
+    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++;
+            }
+            $("#ticket").hide()
+        }else {
+            $("#b2").hide()
+            $("#b1").show()
+            $("#ticket").show()
+        }
+    }
 
 
     var vue2 = new Vue({
@@ -335,7 +383,7 @@
         },
         methods: {
             handleAvatarSuccess(res, file) {
-                TCarInfoDlg.goodsPicArray.push(file);
+                TGoodsInfoDlg.goodsPicArray.push(file);
             },
             beforeAvatarUpload(file) {
                 const isLt2M = file.size / 1024 / 1024 < 10;
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/advertisement/advertisement.js b/cloud-server-management/src/main/webapp/static/modular/system/advertisement/advertisement.js
index 166152c..ff8c4e0 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/advertisement/advertisement.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/advertisement/advertisement.js
@@ -138,6 +138,34 @@
     });
     this.layerIndex = index;
 };
+/**
+ * 跳转基础页面配置
+ */
+TSite.basic = function () {
+    var index = layer.open({
+        type: 2,
+        title: "基础页面配置",
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/advertisement/config'
+    });
+    this.layerIndex = index;
+};
+/**
+ * 跳转福利页面配置
+ */
+TSite.benefits = function () {
+    var index = layer.open({
+        type: 2,
+        title: "福利页面配置",
+        area: ['100%', '100%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/advertisement/benefits'
+    });
+    this.layerIndex = index;
+};
 
 /**
  * 打开查看详情页面
@@ -207,7 +235,32 @@
     ajax.set("province",province);
     ajax.start();
 };
-
+TSite.addConfig = function(){
+    $("#cover1").val();
+    $("#cover2").val();
+    $("#cover7").val();
+    var ajax = new $ax(Feng.ctxPath + "/advertisement/updateConfig", function (data) {
+        Feng.success("基础页面设置成功")
+    });
+    ajax.set("p1",$("#cover1").val())
+    ajax.set("p2",$("#cover2").val())
+    ajax.set("p7",$("#cover7").val())
+    ajax.start();
+}
+TSite.addBenefits = function(){
+    $("#cover3").val();
+    $("#cover4").val();
+    $("#cover5").val();
+    $("#cover6").val();
+    var ajax = new $ax(Feng.ctxPath + "/advertisement/updateBenefits", function (data) {
+        Feng.success("基础页面设置成功")
+    });
+    ajax.set("p3",$("#cover3").val())
+    ajax.set("p4",$("#cover4").val())
+    ajax.set("p5",$("#cover5").val())
+    ajax.set("p6",$("#cover6").val())
+    ajax.start();
+}
 
 TSite.addSubmit = function(){
     var data1 = {
@@ -422,6 +475,17 @@
 }
 
 $(function () {
+    var carPhoto1 = new $WebUpload("cover1");
+    carPhoto1.setUploadBarId("progressBar");
+    carPhoto1.init();
+
+    var carPhoto2 = new $WebUpload("cover2");
+    carPhoto2.setUploadBarId("progressBar");
+    carPhoto2.init();
+
+    var carPhoto7 = new $WebUpload("cover7");
+    carPhoto7.setUploadBarId("progressBar");
+    carPhoto7.init();
     var defaultColunms = TSite.initColumn();
     var table = new BSTable(TSite.id, "/advertisement/listAll", defaultColunms);
     table.setPaginationType("client");
@@ -429,4 +493,5 @@
     var carPhoto = new $WebUpload("img");
     carPhoto.setUploadBarId("progressBar");
     carPhoto.init();
+
 });
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
index 57eb903..4c69cd5 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/operator/operator.js
@@ -21,9 +21,7 @@
     return [
         {field: 'selectItem', checkbox: true},
         {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'},
-        {title: '运营商名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',
-
-        },
+        {title: '运营商名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',},
         {title: '管理员姓名', field: 'userName', visible: true, align: 'center', valign: 'middle',
         },
         {title: '管理员手机号', field: 'phone', visible: true, align: 'center', valign: 'middle'},
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js
index 8956c84..13668c8 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tCoupon/TStoreInfo.js
@@ -15,7 +15,6 @@
 TStoreProvince.initColumn = function () {
     return [
         {field: 'selectItem', checkbox: true},
-        {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
         {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
         {title: '所属账号', field: 'accountName', visible: true, align: 'center', valign: 'middle'},
         {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'},
@@ -64,28 +63,17 @@
     TStoreProvince.storeOfClosePage();
 
 }
-
-
-
 /**
  * 查询列表
  */
 TStoreProvince.search = function () {
     var queryData = {};
-
-    var provinceElement = document.getElementById("province");
-    var provinceId = provinceElement.value;
-
-    var cityElement = document.getElementById("city");
-    var cityElementId = cityElement.value;
-
-    queryData['provinceId'] = provinceId;
-    queryData['cityId'] = cityElementId;
-    queryData['cityManagerId'] = $("#userPopulation").val();
+    queryData['provinceId'] = $("#pCode").val();
+    queryData['cityId'] = $("#cCode").val();
+    queryData['operatorId'] = $("#account").val();
     queryData['storeName'] = $("#storeName").val();
     TStoreProvince.table.refresh({query: queryData});
 };
-
 
 /**
  * 重置搜索
@@ -104,69 +92,11 @@
     TStoreProvince.search();
 };
 
-function queryProvince(){
-    // 发送AJAX请求到后台获取省份数据
-    // 假设后台返回的数据格式为一个包含省份ID和名称的数组
-    var provinceSelect = document.getElementById("province");
-
-    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){
-        data.forEach(province => {
-            var option = document.createElement("option");
-            option.value = province.id;  // 根据你的数据结构确定省份的id字段
-            option.text = province.name;  // 根据你的数据结构确定省份的name字段
-            provinceSelect.appendChild(option);
-        });
-    },function(data){
-        Feng.error("下拉失败!" + data.responseJSON.message + "!");
-    });
-    ajax.start();
-    provinceSelect.addEventListener("change", queryCity);
-}
-
-
-// 获取城市数据
-function queryCity() {
-    var selectedProvinceId = this.value; // 获取选择的省份ID
-    // 发送AJAX请求到后台获取对应省份的城市数据
-    // 假设后台返回的数据格式为一个包含城市ID和名称的数组
-
-    var citySelect = document.getElementById("city");
-    citySelect.innerHTML = "";
-    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',selectedProvinceId);
-    ajax.start();
-    citySelect.addEventListener("change", queryOperator);
-}
-// 获取运营商数据
-function queryOperator() {
-    var city = $('#city option:selected').text();
-    var citySelect = document.getElementById("operator");
-    citySelect.innerHTML = "";
-    var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getOperator", function(data){
-        data.forEach(province => {
-            var option = document.createElement("option");
-            option.value = province.id;
-            option.text = province.name;
-            citySelect.appendChild(option);
-        });
-    },function(data){
-        console.log('data:',data)
-        Feng.error("获取失败!" + data.responseJSON.message + "!");
-    });
-    ajax.set('city',city);
-    ajax.start();
-}
 $(function () {
+    // 初始化图片上传
+    var carPhoto = new $WebUpload("cover");
+    carPhoto.setUploadBarId("progressBar");
+    carPhoto.init();
     var defaultColunms = TStoreProvince.initColumn();
     var table = new BSTable(TStoreProvince.id, "/tCouponManage/storeDetailsOfSearch", defaultColunms);
     table.setPaginationType("client");
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js
index 329797c..2f31750 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tGoods/TStoreInfo.js
@@ -15,11 +15,11 @@
 TStoreProvince.initColumn = function () {
     return [
         {field: 'selectItem', checkbox: true},
-        {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
         {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
-        {title: '所属账号', field: 'accountName', visible: true, align: 'center', valign: 'middle'},
         {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'},
+        {title: '所属运营商', field: 'accountName', visible: true, align: 'center', valign: 'middle'},
         {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '闸机id', field: 'ids', visible: true, align: 'center', valign: 'middle'},
     ];
 };
 
@@ -60,9 +60,8 @@
             })
         }
     }
-    window.parent.TCarInfoDlg.selecUserOpt(arr);
+    window.parent.TGoodsInfoDlg.selecUserOpt(arr);
     TStoreProvince.storeOfClosePage();
-
 }
 
 
@@ -72,16 +71,9 @@
  */
 TStoreProvince.search = function () {
     var queryData = {};
-
-    var provinceElement = document.getElementById("province");
-    var provinceId = provinceElement.value;
-
-    var cityElement = document.getElementById("city");
-    var cityElementId = cityElement.value;
-
-    queryData['provinceId'] = provinceId;
-    queryData['cityId'] = cityElementId;
-    queryData['cityManagerId'] = $("#userPopulation").val();
+    queryData['provinceId'] = $("#pCode").val();
+    queryData['cityId'] = $("#cCode").val();
+    queryData['operatorId'] = $("#account").val();
     queryData['storeName'] = $("#storeName").val();
     TStoreProvince.table.refresh({query: queryData});
 };
@@ -91,16 +83,10 @@
  * 重置搜索
  */
 TStoreProvince.resetSearch = function () {
-    var provinceSelect = document.getElementById("province");
-    provinceSelect.innerHTML = '<option value="">全部</option>';
-
-    var citySelect = document.getElementById("city");
-    citySelect.innerHTML = '<option value="">全部</option>';
-
-    queryProvince();
-
-    $("#userPopulation").val('');
-    $("#storeName").val('');
+    $("#pCode").val('')
+    $("#cCode").val('')
+    $("#account").val('')
+    $("#storeName").val('')
     TStoreProvince.search();
 };
 
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 73d4659..81f4e90 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
@@ -104,6 +104,17 @@
     .set('registerDate')
     .set('commercialType');
 }
+function storeList1(){
+    var index = layer.open({
+        type: 2,
+        title: '门店列表',
+        area: ['80%', '80%'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/tGoods/storeList1'
+    });
+    this.layerIndex = index;
+}
 function storeList(){
     var index = layer.open({
         type: 2,
@@ -115,7 +126,7 @@
     });
     this.layerIndex = index;
 }
-TCarInfoDlg.selecUserOpt = function (arrays){
+TGoodsInfoDlg.selecUserOpt = function (arrays){
     console.log(arrays)
     //获取所有的值
     var subArr= this.storeIds;
@@ -153,6 +164,7 @@
 TGoodsInfoDlg.delete = function (o) {
     $(o).parent("div").remove()
 }
+
 var num = 0;
 TGoodsInfoDlg.addBranch = function () {
     num=num+1;
@@ -575,7 +587,352 @@
 
 
 }
+TGoodsInfoDlg.addSubmit1 = 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 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.set("cardType",document.querySelector('input[name="type"]:checked').value);
+        ajax.start();
+
+    }
+
+
+}
 /**
  * 删除图片的函数
  * @param e
@@ -641,27 +998,31 @@
 }
 
 $(function() {
-
-    getProvince(null);
-    Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
+// 初始化图片上传
+    var carPhoto = new $WebUpload("cover1");
+    carPhoto.setUploadBarId("progressBar");
+    carPhoto.init();
     // 初始化图片上传
     var carPhoto = new $WebUpload("cover");
     carPhoto.setUploadBarId("progressBar");
     carPhoto.init();
-    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');
+    getProvince(null);
+    Feng.initValidator("carInfoForm", TGoodsInfoDlg.validateFields);
+    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+    drivingLicensePhoto.setUploadBarId("progressBar");
+    drivingLicensePhoto.init();
+    var drivingLicensePhoto = new $WebUpload("drivingLicensePhoto");
+    drivingLicensePhoto.setUploadBarId("progressBar");
+    drivingLicensePhoto.init();
+
 });
 
 /**
  * 选择分公司后执行
  */
-TGoodsInfoDlg.oneChange = function (e) {
+TGoodsInfoDlg.oneChange = function () {
     var oneId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCity/onChange", function(data){
         if(data!=null){
@@ -681,6 +1042,9 @@
     ajax.set("oneId",oneId);
     ajax.start();
 }
+function UploadFileFn(){
+    $('#upFile').click();
+}
 TGoodsInfoDlg.storeChange = function (e) {
     var oneId=$(e).val();
     var ajax = new $ax(Feng.ctxPath + "/tCity/storeChange", function(data){
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..5427919 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
@@ -7,7 +7,6 @@
     table: null,
     layerIndex: -1,
 };
-
 /**
  * 初始化表格的列
  */
@@ -15,7 +14,6 @@
     return [
         {field: 'selectItem', radio: true},
         {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
-        {title: '选择', field: '', visible: true, align: 'center', valign: 'middle'},
         {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'},
         {title: '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
         {title: '使用状态', field: 'status', visible: true, align: 'center', valign: 'middle',
@@ -25,7 +23,53 @@
         },
     ];
 };
+TPayInfo.openAddTSite = function () {
+    if (TPayInfo.check()) {
+        if (TPayInfo.seItem.status === 2) {
+            return Feng.error("该门票已核销!");
+        }
+        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" id="areaType1" value="1" name="areaType"> ' +
+                '                            <label for="areaType1"> 手环 </label>\n' +
+                '                            </div>\n' +
+                '                        </div>\n' +
+                '                       </div>' +
+                '                   </div>' +
+                '</div>'
 
+            , btn: ['关闭', '确认']
+            , btnAlign: 'c' //按钮居中
+            , shade: 0.5 //不显示遮罩
+            , load: 1
+            , yes: function () {
+                layer.closeAll();
+            },
+            btn2: function () {
+                console.log("看看id")
+                console.log(TPayInfo.seItem.id)
+                var ajax = new $ax(Feng.ctxPath + "/ticket/writeOff", function (data) {
+                    TPayInfo.search();
+                }, function (data) {
+                });
+                ajax.set("id", TPayInfo.seItem.id);
+                ajax.start();
+                layer.closeAll();
+            }
+        });
+        this.layerIndex = index;
+    }
+};
 /**
  * 检查是否选中
  */
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 e08209b..232c131 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
@@ -201,10 +201,8 @@
             }
         });
     }
-
     var province = $('#pCode option:selected').text();
     var val = $('#pCode option:selected').val();
-
     var citySelect = document.getElementById("cCode");
     var accountSelect = document.getElementById("account");
     var storeSelect = document.getElementById("store");
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ticket/ticket.js b/cloud-server-management/src/main/webapp/static/modular/system/ticket/ticket.js
index 4d66d36..eda887d 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/ticket/ticket.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/ticket/ticket.js
@@ -132,7 +132,7 @@
             area: ['100%', '100%'], //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/tGoods/tCity_update/' + TPointProducts.seItem.id
+            content: Feng.ctxPath + '/tGoods/goods_info/' + TPointProducts.seItem.id
         });
         this.layerIndex = index;
     }
@@ -149,7 +149,7 @@
             area: ['70%', '70%'], //宽高
             fix: false, //不固定
             maxmin: true,
-            content: Feng.ctxPath + '/tGoods/tPay_detail/' + TPointProducts.seItem.id
+            content: Feng.ctxPath + '/tGoods/tPay_detail1/' + TPointProducts.seItem.id
         });
         this.layerIndex = index;
     }
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
index 3d89e03..5d95576 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java
@@ -52,7 +52,7 @@
     @PostMapping("/base/systemImg/querySystemImg")
     @ApiOperation(value = "获取各种系统图片", tags = {"APP-公共接口"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "位置(1=无学员,2=成为会员,3=我的券包,4=线上商城,5=本周福利,6=今日免费)", name = "position", dataType = "int", required = true),
+            @ApiImplicitParam(value = "位置(1=无学员,2=成为会员,3=我的券包,4=线上商城,5=本周福利,6=今日免费,7启动页配置)", name = "position", dataType = "int", required = true),
     })
     public ResultUtil<String> querySystemImg(Integer position){
         TImgConfig imgConfig = imgConfigService.getBaseMapper().selectOne(new QueryWrapper<TImgConfig>().eq("position", position));

--
Gitblit v1.7.1