From b64d67ef01e81a857046f19dd556b4e4f0695e1c Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期三, 02 八月 2023 16:41:51 +0800 Subject: [PATCH] 后台代码 门店管理 --- cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html | 163 ++++ cloud-server-management/src/main/resources/mapper/StoreConfigMapper.xml | 6 cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js | 70 - cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html | 83 ++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html | 253 ++++++ cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js | 594 ++++++++++++++ cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java | 2 cloud-server-management/src/main/java/com/dsh/course/mapper/StoreConfigMapper.java | 17 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 40 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/StoreConfigService.java | 17 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java | 67 + cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java | 4 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java | 415 ++++++++++ cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java | 47 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreConfigServiceImpl.java | 21 cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js | 6 cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/QueryUserCouponByIdAndUserId.java | 14 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/QueryUserCouponByIdAndUserId.java | 14 cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html | 73 + cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_img.html | 44 + cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js | 429 ++++++++++ 21 files changed, 2,309 insertions(+), 70 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java index adeae61..c34017c 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java @@ -67,11 +67,13 @@ @PostMapping("/base/city/add") - public void add(@RequestBody TCityManager manager){ + public Integer add(@RequestBody TCityManager manager){ try { cityService.save(manager); + return manager.getId(); }catch (Exception e){ e.printStackTrace(); + return null; } } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/QueryUserCouponByIdAndUserId.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/QueryUserCouponByIdAndUserId.java new file mode 100644 index 0000000..c16fd2b --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/QueryUserCouponByIdAndUserId.java @@ -0,0 +1,14 @@ +package com.dsh.activity.feignclient.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryUserCouponByIdAndUserId { + private Long id; + + private Integer userId; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java index 320518d..e6f3f19 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java @@ -13,7 +13,7 @@ Page<TCityManager> list(CityListQuery listQuery); @PostMapping("/base/city/add") - void add(TCityManager manager); + Integer add(TCityManager manager); @PostMapping("/base/city/getById") TCityManager getById(Integer id); diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreConfigMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreConfigMapper.java new file mode 100644 index 0000000..18de6b1 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/StoreConfigMapper.java @@ -0,0 +1,17 @@ +package com.dsh.course.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.guns.modular.system.model.StoreConfig; + +/** + * <p> + * 门店基础配置 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-06-14 + */ +public interface StoreConfigMapper extends BaseMapper<StoreConfig> { + +} 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 40c0273..aa1e0db 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 @@ -13,12 +13,14 @@ import com.dsh.course.feignClient.competition.model.GetPeopleQuery; import com.dsh.course.feignClient.competition.model.ListQuery; import com.dsh.course.feignClient.competition.model.Participant; +import com.dsh.course.mapper.UserMapper; import com.dsh.guns.core.base.controller.BaseController; 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.model.User; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IStoreService; import org.springframework.beans.factory.annotation.Autowired; @@ -28,7 +30,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -54,6 +58,9 @@ private IStoreService storeService; @Autowired private ICityService cityService; + + @Resource + private UserMapper userMapper; /** @@ -114,7 +121,23 @@ manager.setProvince(one.getName()); TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, manager.getCityCode())); manager.setCity(one1.getName()); - cityClient.add(manager); + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, manager.getPhone())); + if(users.size()>0){ + return "5001"; + } + Integer add = cityClient.add(manager); + User user = new User(); + user.setPhone(manager.getPhone()); + user.setAccount(manager.getPhone()); + user.setRoleid(manager.getPhone()); + user.setRoleid("3"); + user.setName(manager.getName()); + user.setPassword(SecureUtil.md5("a123456")); + user.setCreatetime(new Date()); + user.setObjectId(add); + user.setObjectType(2); + userMapper.insert(user); + return new SuccessTip<>(); }catch (Exception e){ e.printStackTrace(); @@ -130,6 +153,17 @@ manager.setProvince(one.getName()); TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, manager.getCityCode())); manager.setCity(one1.getName()); + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, manager.getPhone()).ne(User::getObjectId,manager.getId())); + if(users.size()>0){ + return "5001"; + } + + User user = userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getObjectType, 2).eq(User::getObjectId, manager.getId())); + user.setAccount(manager.getPhone()); + user.setName(manager.getName()); + user.setPhone(manager.getPhone()); + userMapper.updateById(user); + cityClient.update(manager); return new SuccessTip<>(); }catch (Exception e){ @@ -188,9 +222,7 @@ @ResponseBody public Object pwd(Integer id) { try { - TCityManager byId = cityClient.getById(id); - byId.setPassword(SecureUtil.md5("a123456")); - cityClient.update(byId); + userMapper.selectOne(new LambdaQueryWrapper<User>().eq(User::getObjectId,id).eq(User::getObjectType,2)); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java new file mode 100644 index 0000000..59b1de2 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java @@ -0,0 +1,415 @@ +package com.dsh.guns.modular.system.controller.code; + +import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.course.feignClient.account.CityClient; +import com.dsh.course.feignClient.account.model.CityListQuery; +import com.dsh.course.feignClient.account.model.TCityManager; +import com.dsh.course.feignClient.competition.CompetitionClient; +import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; +import com.dsh.course.feignClient.competition.model.Participant; +import com.dsh.course.mapper.StoreConfigMapper; +import com.dsh.course.mapper.UserMapper; +import com.dsh.guns.config.UserExt; +import com.dsh.guns.core.base.controller.BaseController; +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.service.ICityService; +import com.dsh.guns.modular.system.service.IStoreService; +import com.dsh.guns.modular.system.service.StoreConfigService; +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.util.ArrayList; +import java.util.List; + +/** + * 车辆管理控制器 + * + * @author fengshuonan + * @Date 2020-06-05 17:25:12 + */ +@Controller +@RequestMapping("/tShop") +public class TShopController extends BaseController { + + private String PREFIX = "/system/tShop/"; + + @Autowired + private CompetitionClient competitionClient; + + @Autowired + private CityClient cityClient; + + @Autowired + private IStoreService storeService; + @Autowired + private ICityService cityService; + + @Resource + private UserMapper userMapper; + + @Resource + private StoreConfigService storeConfigService; + + + /** + * 跳转到车辆管理首页 + */ + @RequestMapping("") + public String index(Model model) { + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + String roleid = UserExt.getUser().getRoleid(); + model.addAttribute("role",roleid); + return PREFIX + "TShop.html"; + } + + /** + * 跳转到添加车辆管理 + */ + @RequestMapping("/tShop_add") + public String tCompetitionAdd(Model model) { + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + String roleid = UserExt.getUser().getRoleid(); + model.addAttribute("role",roleid); + return PREFIX + "tShop_add.html"; + } + + + /** + * 跳转到修改车辆管理 + */ + @RequestMapping("/tShop_update/{id}") + public String tCityUpdate(@PathVariable Integer id, Model model) { + TStore byId = storeService.getById(id); + model.addAttribute("item",byId); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode())); + List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); + CityListQuery cityListQuery = new CityListQuery(); + cityListQuery.setOffset(1); + cityListQuery.setLimit(10000); + cityListQuery.setCityCode(byId.getCityCode()); + Page<TCityManager> list2 = cityClient.list(cityListQuery); + model.addAttribute("list1",list1); + model.addAttribute("list2",list2.getRecords()); + String roleid = UserExt.getUser().getRoleid(); + model.addAttribute("role",roleid); + model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime()); + User byId1 = userMapper.selectById(byId.getStoreStaffId()); + model.addAttribute("city",byId1); + model.addAttribute("type",1); + return PREFIX + "tShop_edit.html"; + } + @RequestMapping("/tShop_info/{id}") + public String tCityInfo(@PathVariable Integer id, Model model) { + TStore byId = storeService.getById(id); + model.addAttribute("item",byId); + List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0)); + model.addAttribute("list",list); + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, byId.getProvinceCode())); + List<TCity> list1 = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId())); + CityListQuery cityListQuery = new CityListQuery(); + cityListQuery.setOffset(1); + cityListQuery.setLimit(10000); + cityListQuery.setCityCode(byId.getCityCode()); + Page<TCityManager> list2 = cityClient.list(cityListQuery); + model.addAttribute("list1",list1); + model.addAttribute("list2",list2.getRecords()); + String roleid = UserExt.getUser().getRoleid(); + model.addAttribute("role",roleid); + model.addAttribute("time",byId.getStartTime()+" - "+byId.getEndTime()); + User byId1 = userMapper.selectById(byId.getStoreStaffId()); + model.addAttribute("city",byId1); + model.addAttribute("type",0); + return PREFIX + "tShop_edit.html"; + } + @RequestMapping("/tShop_gift/{id}") + public String tCityGift(@PathVariable Integer id, Model model) { + TStore byId = storeService.getById(id); + model.addAttribute("welfarePicture",byId.getWelfarePicture()); + model.addAttribute("id",id); + return PREFIX + "tShop_img.html"; + } + @RequestMapping("/tShop_indexSet/{id}") + public String tCityIndexSet(@PathVariable Integer id, Model model) { + StoreConfig c1 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,1)); + model.addAttribute("c1",c1); + StoreConfig c2 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,2)); + model.addAttribute("c2",c2); + StoreConfig c3 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,3)); + model.addAttribute("c3",c3); + StoreConfig c4 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,4)); + model.addAttribute("c4",c4); + StoreConfig c5 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,5)); + model.addAttribute("c5",c5); + StoreConfig c6 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,6)); + model.addAttribute("c6",c6); + StoreConfig c7 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,7)); + model.addAttribute("c7",c7); + StoreConfig c8 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,8)); + model.addAttribute("c8",c8); + model.addAttribute("id",id); + return PREFIX + "tShop_imgAll.html"; + } + + + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String provinceCode, String cityCode , String name, String phone,String shopName) { + Page<TStoreListVo> page = new PageFactory<TStoreListVo>().defaultPage(); + List<TStoreListVo> list = storeService.listAll(page,provinceCode,cityCode,name,phone,shopName); + for (TStoreListVo tStoreListVo : list) { + TCityManager byId = cityClient.getById(tStoreListVo.getCityManagerId()); + tStoreListVo.setAccount(byId.getName()+"-"+byId.getPhone()); + + } + page.setRecords(list); + return super.packForBT(page); + } + + + @RequestMapping(value = "/add") + @ResponseBody + public Object list(TStore tStore,String time,String userName,String userPhone) { + try { + if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) { + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode())); + tStore.setProvince(one.getName()); + TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode())); + tStore.setCity(one1.getName()); + } + tStore.setStartTime(time.split(" - ")[0]); + tStore.setEndTime(time.split(" - ")[1]); + tStore.setState(1); + User user = new User(); + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone)); + if(users.size()>0){ + return "5001"; + } + user.setAccount(userPhone); + user.setName(userName); + user.setRoleid("2"); + user.setPhone(userPhone); + user.setPassword(SecureUtil.md5("a123456")); + userMapper.insert(user); + tStore.setStoreStaffId(user.getId()); + storeService.save(tStore); + + ArrayList<StoreConfig> storeConfigs = new ArrayList<>(); + for (int i = 1; i < 9; i++) { + StoreConfig storeConfig = new StoreConfig(); + storeConfig.setIsOpen(1); + storeConfig.setSort(i); + storeConfig.setType(i); + storeConfig.setStoreId(tStore.getId()); + storeConfigs.add(storeConfig); + } + storeConfigService.saveBatch(storeConfigs); + return new SuccessTip<>(); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/update") + @ResponseBody + public Object update(TStore tStore,String time,String userName,String userPhone) { + try { + TStore byId = storeService.getById(tStore.getId()); + + if(ToolUtil.isNotEmpty(tStore.getProvinceCode())) { + TCity one = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getProvinceCode())); + tStore.setProvince(one.getName()); + TCity one1 = cityService.getOne(new LambdaQueryWrapper<TCity>().eq(TCity::getCode, tStore.getCityCode())); + tStore.setCity(one1.getName()); + } + tStore.setStartTime(time.split(" - ")[0]); + tStore.setEndTime(time.split(" - ")[1]); + if(ToolUtil.isEmpty(tStore.getCoverDrawing())){ + tStore.setCoverDrawing(byId.getCoverDrawing()); + } + User user = userMapper.selectById(byId.getStoreStaffId()); + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().eq(User::getAccount, userPhone).ne(User::getId,tStore.getStoreStaffId())); + if(users.size()>0){ + return "5001"; + } + user.setAccount(userPhone); + user.setName(userName); + user.setPhone(userPhone); + userMapper.updateById(user); + storeService.updateById(tStore); + return new SuccessTip<>(); + }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 = "/saveImgAll") + @ResponseBody + public Object saveImgAll(Integer id,Integer px1,Integer px2,Integer px3,Integer px4,Integer px5,Integer px6,Integer px7,Integer px8, + String c1,String c2,String c3,String c4,String c5,String c6,String c7,String c8, + Integer r1,Integer r2,Integer r3,Integer r4,Integer r5,Integer r6,Integer r7,Integer r8) { + try { + ArrayList<StoreConfig> storeConfigs = new ArrayList<>(); + StoreConfig collect1 = collect(id, px1, r1, c1, 1); + StoreConfig collect2 = collect(id, px2, r2, c2, 2); + StoreConfig collect3 = collect(id, px3, r3, c3, 3); + StoreConfig collect4 = collect(id, px4, r4, c4, 4); + StoreConfig collect5 = collect(id, px5, r5, c5, 5); + StoreConfig collect6 = collect(id, px6, r6, c6, 6); + StoreConfig collect7 = collect(id, px7, r7, c7, 7); + StoreConfig collect8 = collect(id, px8, r8, c8, 8); + storeConfigs.add(collect1); + storeConfigs.add(collect2); + storeConfigs.add(collect3); + storeConfigs.add(collect4); + storeConfigs.add(collect5); + storeConfigs.add(collect6); + storeConfigs.add(collect7); + storeConfigs.add(collect8); + storeConfigService.updateBatchById(storeConfigs); + return new SuccessTip<>(); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + private StoreConfig collect(Integer id,Integer sort,Integer isOpen,String img,int type){ + StoreConfig one = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType, type)); + one.setSort(sort); + one.setIsOpen(isOpen); + if(ToolUtil.isNotEmpty(img)){ + one.setBackgroundImage(img); + } + return one; + } + @RequestMapping(value = "/oneChangeNext") + @ResponseBody + public Object oneChangeNext(String oneId) { + + try { + CityListQuery cityListQuery = new CityListQuery(); + cityListQuery.setCityCode(oneId); + cityListQuery.setOffset(1); + cityListQuery.setLimit(100000); + Page<TCityManager> list = cityClient.list(cityListQuery); + List<TCityManager> records = list.getRecords(); + for (TCityManager record : records) { + record.setName(record.getName()+"-"+record.getPhone()); + } + return records; + }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 = "/saveImg") + @ResponseBody + public Object saveImg(Integer id,String img) { + try { + TStore byId = storeService.getById(id); + byId.setWelfarePicture(img); + storeService.updateById(byId); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/freeze") + @ResponseBody + public Object freeze(Integer id) { + try { + TStore byId = storeService.getById(id); + byId.setState(2); + storeService.updateById(byId); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + @RequestMapping(value = "/unfreeze") + @ResponseBody + public Object unfreeze(Integer id) { + try { + TStore byId = storeService.getById(id); + byId.setState(1); + storeService.updateById(byId); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/pwd") + @ResponseBody + public Object pwd(Integer id) { + try { + TStore byId = storeService.getById(id); + User user = userMapper.selectById(byId.getStoreStaffId()); + user.setPassword(SecureUtil.md5("a123456")); + userMapper.updateById(user); + 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<Participant> data = competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); + return super.packForBT(data); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java new file mode 100644 index 0000000..e69c697 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/StoreConfig.java @@ -0,0 +1,67 @@ +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 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-06-14 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_store_config") +public class StoreConfig extends Model<StoreConfig> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 门店id + */ + @TableField("storeId") + private Integer storeId; + /** + * 数据类型(1=报名玩湃课程,2=预约场地,3=报名赛事及活动,4=免费福利,5=线上课程积分,6=购买优惠门票,7=看视频得奖励,8=智慧球场) + */ + @TableField("type") + private Integer type; + /** + * 是否开启(0=否,1=是) + */ + @TableField("isOpen") + private Integer isOpen; + /** + * 排序 + */ + @TableField("sort") + private Integer sort; + /** + * 背景图 + */ + @TableField("backgroundImage") + private String backgroundImage; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java new file mode 100644 index 0000000..d116d3e --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStoreListVo.java @@ -0,0 +1,47 @@ +package com.dsh.guns.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +@TableName("t_store") +@Data +public class TStoreListVo { + private Integer id; + private String name; + @TableField("storeStaffId") + private Integer storeStaffId; + @TableField("cityManagerId") + private Integer cityManagerId; + private String province; + @TableField("provinceCode") + private String provinceCode; + private String city; + @TableField("cityCode") + private String cityCode; + private String phone; + private String address; + private String lat; + private String lon; + @TableField("startTime") + private String startTime; + @TableField("endTime") + private String endTime; + @TableField("coverDrawing") + private String coverDrawing; + @TableField("realPicture") + private String realPicture; + private String introduce; + @TableField("welfarePicture") + private String welfarePicture; + private BigDecimal score; + private Integer state; + + private String userName; + private String userPhone; + + private String account; + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/StoreConfigService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/StoreConfigService.java new file mode 100644 index 0000000..1bd1d96 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/StoreConfigService.java @@ -0,0 +1,17 @@ +package com.dsh.guns.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.guns.modular.system.model.StoreConfig; + + +/** + * <p> + * 门店基础配置 服务类 + * </p> + * + * @author jqs + * @since 2023-06-14 + */ +public interface StoreConfigService extends IService<StoreConfig> { + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreConfigServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreConfigServiceImpl.java new file mode 100644 index 0000000..892e3d9 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/StoreConfigServiceImpl.java @@ -0,0 +1,21 @@ +package com.dsh.guns.modular.system.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.course.mapper.StoreConfigMapper; +import com.dsh.guns.modular.system.model.StoreConfig; +import com.dsh.guns.modular.system.service.StoreConfigService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 门店基础配置 服务实现类 + * </p> + * + * @author jqs + * @since 2023-06-14 + */ +@Service +public class StoreConfigServiceImpl extends ServiceImpl<StoreConfigMapper, StoreConfig> implements StoreConfigService { + +} diff --git a/cloud-server-management/src/main/resources/mapper/StoreConfigMapper.xml b/cloud-server-management/src/main/resources/mapper/StoreConfigMapper.xml new file mode 100644 index 0000000..9a75a68 --- /dev/null +++ b/cloud-server-management/src/main/resources/mapper/StoreConfigMapper.xml @@ -0,0 +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.course.mapper.StoreConfigMapper"> + + +</mapper> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html new file mode 100644 index 0000000..bed4675 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop.html @@ -0,0 +1,83 @@ +@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"> + @if(role=='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="TCompetition.oneChange(this)"> + <option value="">全部</option> + @for(obj in list){ + <option value="${obj.code}">${obj.name}</option> + @} + </select> + </div> + </div> + @} + @if(role=='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"> + </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"> + <#NameCon id="shopName" name="门店名称" /> + </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.openAddTCompetition()"/> + <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/> + <#button name="冻结" icon="fa-remove" clickFun="TCompetition.freeze()" space="true"/> + <#button name="解冻" icon="fa-remove" clickFun="TCompetition.unfreeze()" space="true"/> + <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.info()" space="true"/> + <#button name="重置密码" icon="fa-remove" clickFun="TCompetition.reload()" space="true"/> + <#button name="免费福利" icon="fa-remove" clickFun="TCompetition.gift()" space="true"/> + <#button name="首页设置" icon="fa-remove" clickFun="TCompetition.indexSet()" space="true"/> + + </div> + <#table id="TCompetitionTable"/> + </div> + </div> + </div> +</div> +</div> +</div> +<script src="${ctxPath}/modular/system/tShop/tShop.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/tShop/TShop_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html new file mode 100644 index 0000000..7d19df7 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_add.html @@ -0,0 +1,163 @@ +@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> +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + + <div class="form-horizontal" id="carInfoForm"> + <input hidden id="role" value="${role}"> + <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" onchange="TCarInfoDlg.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"> + <select class="form-control" id="account" name="account"> + <option value="">选择账号</option> + </select> + </div> + </div> + <#input id="name" name="门店名称" type="text"/> + <#input id="phone" name="联系电话" type="text"/> + <#input id="address" name="门店地址" type="text"/> + <#input id="time" name="营业时间" type="text"/> + <#input id="intro" name="门店介绍" type="text"/> + <#input id="userName" name="店长姓名" type="text"/> + <#input id="userPhone" name="店长手机号" type="text"/> + <#avatar id="img" name="门店封面(推荐像素722*360px)" /> + <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: 5%">*实景图片(请上传不超过五张图片): </label> + <div class="col-sm-2" style="width: 100%;margin-left: 11%;margin-top: 1%"> + <el-upload + :limit="5" + class="avatar-uploader" + action="/tCouponManage/uploadPic" + list-type="picture-card" + accept="." + :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=""> + </div> + </div> + + </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="TCarInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tShop/tShop_info.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> + laydate.render({ + elem: '#time', + range:true + }); + + var vue2 = new Vue({ + el: '#app1', + props: { + // 数量限制 + limit: { + type: Number, + default: 2 + }, + }, + data: { + autoUpload: true,//自动上传 + imageUrl1: '',//模型数据,用于上传图片完成后图片预览 + dialogVisible: false + }, + methods: { + handleAvatarSuccess(res, file) { + couponInfoDlg.goodsPicArray.push(file); + }, + beforeAvatarUpload(file) { + const isLt2M = file.size / 1024 / 1024 < 10; + if (!isLt2M) { + this.$message.error('上传图片大小不能超过 10MB!'); + } + return isLt2M; + }, + handleRemove(file, fileList) { + couponInfoDlg.goodsPicArray = couponInfoDlg.goodsPicArray.filter(item => { + return item.uid != file.uid; + }); + }, + }, + created() { + }, + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html new file mode 100644 index 0000000..e92282e --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_edit.html @@ -0,0 +1,73 @@ +@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" onchange="TCarInfoDlg.oneChangeNext(this)"> + <option value="">选择市</option> + @for(obj in list1){ + <option value="${obj.code}" ${obj.code == item.cityCode ? '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"> + <select class="form-control" id="account" name="account"> + <option value="">选择账号</option> + @for(obj in list2){ + <option value="${obj.id}" ${obj.id == item.cityManagerId ? 'selected=selected' : ''}>${obj.name}-${obj.phone}</option> + @} + </select> + </div> + </div> + <#input id="name" name="门店名称" type="text" value="${item.name}"/> + <#input id="phone" name="联系电话" type="text" value="${item.phone}"/> + <#input id="address" name="门店地址" type="text" value="${item.address}"/> + <#input id="time" name="营业时间" type="text" value="${time}"/> + <#input id="intro" name="门店介绍" type="text" value="${item.introduce}"/> + <#input id="userName" name="管理员姓名" type="text" value="${city.name}"/> + <#input id="userPhone" name="管理员手机号" type="text" value="${city.account}"/> + <#avatar id="img" name="门店封面(推荐像素722*360px)" avatarImg="${item.coverDrawing}"/> + <#input id="imgOne" name="实景照片" type="text" value="${item.realPicture}"/> + + + </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="TCarInfoDlg.editSubmit()"/> + @} + <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script> +<script> + laydate.render({ + elem: '#time', + range:true + }); +</script> +<script type="application/javascript"> +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_img.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_img.html new file mode 100644 index 0000000..1cff518 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_img.html @@ -0,0 +1,44 @@ +@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="${id}"> + @if(welfarePicture==null){ + <#avatar id="welfarePicture" name="福利图片"/> + @} + @if(welfarePicture!=null){ + <#avatar id="welfarePicture" name="福利图片" avatarImg="${welfarePicture}"/> + @} + @if(welfarePicture==12321){ + <div class="form-group"> + <div class="col-sm-4"> + <div id="welfarePicturePreId"> + <div><img width="700px" height="800px" id="img" src="${welfarePicture}" ></div> + </div> + </div> + + <input type="hidden" id="welfarePicture"> + </div> + <div class="col-sm-2" style="margin-left: 280px"> + <div class="head-scu-btn upload-btn webuploader-container" id="welfarePictureBtnId"><div class="webuploader-pick"> + <i class="fa fa-upload"></i> Upload + </div><div id="rt_rt_1h6lka0hk9mucj87vf1t21qk31" style="position: absolute; inset: 0px auto auto 0px; width: 82px; height: 28px; overflow: hidden;"><input type="file" name="file" class="webuploader-element-invisible" accept="image/gif,image/jpg,image/jpeg,image/bmp,image/png"><label style="opacity: 0; width: 100%; height: 100%; display: block; cursor: pointer; background: rgb(255, 255, 255);"></label></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="TCarInfoDlg.saveImg()"/> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script> +<script> +</script> +<script type="application/javascript"> +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html new file mode 100644 index 0000000..9a40637 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html @@ -0,0 +1,253 @@ +@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="${id}"> + <input hidden id="s1" value="${c1.isOpen}"> + <input hidden id="s2" value="${c2.isOpen}"> + <input hidden id="s3" value="${c3.isOpen}"> + <input hidden id="s4" value="${c4.isOpen}"> + <input hidden id="s5" value="${c5.isOpen}"> + <input hidden id="s6" value="${c6.isOpen}"> + <input hidden id="s7" value="${c7.isOpen}"> + <input hidden id="s8" value="${c8.isOpen}"> + <div class="row"> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 报名玩湃课程:<input type="radio" name="r1" value="1">开启 <input type="radio" name="r1" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px1" value="${c1.sort}"> + </div> + </div> + @if(c1==null){ + <#avatar id="c1" name="背景图" /> + @} + @if(c1!=null){ + <#avatar id="c1" name="背景图" avatarImg="${c1.backgroundImage}"/> + @} + </div> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 预约场地:<input type="radio" name="r2" value="1">开启 <input type="radio" name="r2" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px2" value="${c2.sort}"> + </div> + </div> + @if(c2==null){ + <#avatar id="c2" name="背景图" /> + @} + @if(c2!=null){ + <#avatar id="c2" name="背景图" avatarImg="${c2.backgroundImage}"/> + @} + </div> + </div> + + + + <div class="row"> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 报名赛事及活动:<input type="radio" name="r3" value="1">开启 <input type="radio" name="r3" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px3" value="${c3.sort}"> + </div> + </div> + @if(c3==null){ + <#avatar id="c3" name="背景图" /> + @} + @if(c3!=null){ + <#avatar id="c3" name="背景图" avatarImg="${c3.backgroundImage}"/> + @} + </div> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 免费福利:<input type="radio" name="r4" value="1">开启 <input type="radio" name="r4" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px4" value="${c4.sort}"> + </div> + </div> + @if(c4==null){ + <#avatar id="c4" name="背景图" /> + @} + @if(c4!=null){ + <#avatar id="c4" name="背景图" avatarImg="${c4.backgroundImage}"/> + @} + </div> + </div> + + + + <div class="row"> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 线上课得积分:<input type="radio" name="r5" value="1">开启 <input type="radio" name="r5" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px5" value="${c5.sort}"> + </div> + </div> + @if(c5==null){ + <#avatar id="c5" name="背景图" /> + @} + @if(c5!=null){ + <#avatar id="c5" name="背景图" avatarImg="${c5.backgroundImage}"/> + @} + </div> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 购买优惠门票:<input type="radio" name="r6" value="1">开启 <input type="radio" name="r6" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px6" value="${c6.sort}"> + </div> + </div> + @if(c6==null){ + <#avatar id="c6" name="背景图" /> + @} + @if(c6!=null){ + <#avatar id="c6" name="背景图" avatarImg="${c6.backgroundImage}"/> + @} + </div> + </div> + + + <div class="row"> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 看视频得奖励:<input type="radio" name="r7" value="1">开启 <input type="radio" name="r7" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px7" value="${c7.sort}"> + </div> + </div> + @if(c7==null){ + <#avatar id="c7" name="背景图" /> + @} + @if(c7!=null){ + <#avatar id="c7" name="背景图" avatarImg="${c7.backgroundImage}"/> + @} + </div> + <div class="col-lg-6" style=""> + <div class="form-group" style="margin-left: 96px"> + <label class="col-sm-4 control-label" > + 智慧球场:<input type="radio" name="r8" value="1">开启 <input type="radio" name="r8" value="0">关闭 + </label> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">排序:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="px8" value="${c8.sort}"> + </div> + </div> + @if(c8==null){ + <#avatar id="c8" name="背景图" /> + @} + @if(c8!=null){ + <#avatar id="c8" name="背景图" avatarImg="${c8.backgroundImage}"/> + @} + </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="TCarInfoDlg.saveAllImg()"/> + </div> + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tShop/tShop_info.js"></script> + +<script> +</script> +<script type="application/javascript"> + window.onload = function(){ + var OBJradio=document.getElementsByName("r1") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s1").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r2") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s2").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r3") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s3").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r4") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s4").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r5") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s5").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r6") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s6").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r7") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s7").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + var OBJradio=document.getElementsByName("r8") + for(i=0;i<OBJradio.length;i++){//循环查找这个radio + if($("#s8").val()==OBJradio[i].value){//判断是否与radio的值相同 + OBJradio[i].checked=true//修改选中状态 + } + } + + + } +</script> +@} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js index fa3be08..8360403 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCity/tCity_info.js @@ -135,6 +135,9 @@ //提交信息 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("添加成功!"); @@ -193,6 +196,9 @@ } //提交信息 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("修改成功!"); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js new file mode 100644 index 0000000..92d6406 --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop.js @@ -0,0 +1,429 @@ +/** + * 车辆管理管理初始化 + */ +var TCompetition = { + id: "TCompetitionTable", //表格id + seItem: null, //选中的条目 + table: null, + layerIndex: -1 +}; +var language =1 +/** + * 初始化表格的列 + */ +TCompetition.initColumn = function () { + return [ + {field: 'selectItem', radio: true}, + {title: '省', field: 'province', visible: true, align: 'center', valign: 'middle' + }, + {title: '市', field: 'city', visible: true, align: 'center', valign: 'middle'}, + {title: '所属账号', field: 'account', visible: true, align: 'center', valign: 'middle' + }, + {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle' + }, + {title: '门店地址', field: 'address', visible: true, align: 'center', valign: 'middle' + }, + {title: '店长姓名', field: 'userName', visible: true, align: 'center', valign: 'middle' + }, + {title: '店长手机号', field: 'userPhone', visible: true, align: 'center', valign: 'middle' + }, + {title: '状态', field: 'state', 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 + '/tShop/tShop_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 + '/tShop/tShop_update/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; +TCompetition.info = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title:'详情', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tShop/tShop_info/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; +TCompetition.gift = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title:'免费福利', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tShop/tShop_gift/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; +TCompetition.indexSet = function () { + if (this.check()) { + var index = layer.open({ + type: 2, + title:'首页设置', + area: ['100%', '100%'], //宽高 + fix: false, //不固定 + maxmin: true, + content: Feng.ctxPath + '/tShop/tShop_indexSet/' + TCompetition.seItem.id + }); + this.layerIndex = index; + } +}; + +/** + * 删除车辆管理 + */ +TCompetition.delete = function () { + if (this.check()) { + var nickname = TCompetition.seItem.carLicensePlate; + if (nickname == "" || nickname == null || nickname == undefined){ + nickname = "该车辆"; + }else{ + nickname = "【"+nickname+"】"; + } + swal({ + title: language==1?"您是否确认删除" + nickname + "?":(language==2?"Are you sure to delete the" + nickname + "?":"Apakah Anda pasti akan menghapus" + nickname + "?"), + text: language==1?"请谨慎操作!":(language==2?' Please operate with caution!':'Harap beroperasi dengan hati -hati!'), + type: "warning", + showCancelButton: true, + confirmButtonColor: "#DD6B55", + confirmButtonText: language==1?"删除":(language==2?'Delete':'Hapus'), + closeOnConfirm: true + }, function () { + var ajax = new $ax(Feng.ctxPath + "/TCompetition/delete", function (data) { + if(language==1){ + swal("删除成功", "您已经成功删除了" + nickname + "。", "success"); + }else if(language==2){ + swal("Delete succeeded!", "You have successfully deleted it" + nickname + "。", "success"); + }else { + swal("Hapus berhasil!", "Anda berhasil menghapus" + nickname + "。", "success"); + } + TCompetition.table.refresh(); + }, function (data) { + if(language==1){ + swal("删除失败", data.responseJSON.message + "!", "warning"); + }else if(language==2){ + swal("Failed to delete", data.responseJSON.message + "!", "warning"); + }else { + swal("Hapus Gagal", data.responseJSON.message + "!", "warning"); + } + + }); + ajax.set("TCompetitionId",TCompetition.seItem.id); + 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.oneChangeNext = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tCompetition/oneChangeNext", 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>"; + }); + $("#account").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} + +TCompetition.freeze = function () { + if (this.check()) { + var ajax = new $ax(Feng.ctxPath + "/tShop/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 + "/tShop/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.search = function () { + var queryData = {}; + queryData['provinceCode'] = $("#pCode").val(); + queryData['cityCode'] = $("#cCode").val(); + queryData['name'] = $("#name").val(); + queryData['phone'] = $("#phone").val(); + queryData['shopName'] = $("#shopName").val(); + TCompetition.table.refresh({query: queryData}); +}; + +TCompetition.resetSearch = function () { + $("#pCode").val(""); + $("#cCode").val(""); + $("#name").val(""); + $("#phone").val(""); + $("#shopName").val(""); + TCompetition.search(); +}; + +$(function () { + var defaultColunms = TCompetition.initColumn(); + var table = new BSTable(TCompetition.id, "/tShop/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/tShop/tShop_info.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js new file mode 100644 index 0000000..2680aff --- /dev/null +++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShop_info.js @@ -0,0 +1,594 @@ +/** + * 初始化车辆管理详情对话框 + */ +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.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(); +} +TCarInfoDlg.oneChangeNext = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/tShop/oneChangeNext", 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>"; + }); + $("#account").empty().append(content); + } + }); + ajax.set("oneId",oneId); + ajax.start(); +} +TCarInfoDlg.saveImg = function () { + var id=$("#id").val(); + var img=$("#welfarePicture").val(); + var ajax = new $ax(Feng.ctxPath + "/tShop/saveImg", function(data){ + if(data.code == 200){ + Feng.success("保存成功") + } + }); + ajax.set("id",id); + ajax.set("img",img); + ajax.start(); +} + +/** + * 提交添加 + */ +TCarInfoDlg.addSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let account = $("#account").val() + if(account==''){ + Feng.info("请选择所属账号") + return; + } + + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode=='' && $("#role")=="1"){ + Feng.info("请选择省") + return; + } + if(cCode=='' && $("#role")=="1"){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("门店名称不能为空") + return; + } + if(phone==''){ + Feng.info("联系电话不能为空") + return; + } + + let address = $("#address").val() + + if(address==''){ + Feng.info("请输入地址") + return; + } + let time = $("#time").val() + + if(time==''){ + Feng.info("请填写营业时间") + return; + } + let intro = $("#intro").val() + + if(intro==''){ + Feng.info("请填写门店介绍") + return; + } + let userName = $("#userName").val() + + if(userName==''){ + Feng.info("请输入店长姓名") + return; + } + let userPhone = $("#userPhone").val() + + if(userPhone==''){ + Feng.info("请输入店长手机号") + return; + } + let img = $("#img").val() + + if(img==''){ + Feng.info("请上传门店封面") + return; + } + + let imgOne = $("#imgOne").val() + + if(imgOne==''){ + Feng.info("请上传实景图") + return; + } + + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tShop/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.set("cityManagerId",account); + ajax.set("address",address); + ajax.set("time",time); + ajax.set("introduce",intro); + ajax.set("userName",userName); + ajax.set("userPhone",userPhone); + ajax.set("coverDrawing",img); + ajax.set("realPicture",imgOne); + ajax.start(); +} + +/** + * 提交修改 + */ +TCarInfoDlg.editSubmit = function() { + + this.clearData(); + this.collectData(); + if(!this.validate()){ + return ; + } + + let pCode = $("#pCode").val() + let cCode = $("#cCode").val() + let account = $("#account").val() + if(account==''){ + Feng.info("请选择所属账号") + return; + } + + let name = $("#name").val() + let phone = $("#phone").val() + + if(pCode=='' && $("#role")=="1"){ + Feng.info("请选择省") + return; + } + if(cCode=='' && $("#role")=="1"){ + Feng.info("请选择市") + return; + } + if(name==''){ + Feng.info("门店名称不能为空") + return; + } + if(phone==''){ + Feng.info("联系电话不能为空") + return; + } + + let address = $("#address").val() + + if(address==''){ + Feng.info("请输入地址") + return; + } + let time = $("#time").val() + + if(time==''){ + Feng.info("请填写营业时间") + return; + } + let intro = $("#intro").val() + + if(intro==''){ + Feng.info("请填写门店介绍") + return; + } + let userName = $("#userName").val() + + if(userName==''){ + Feng.info("请输入店长姓名") + return; + } + let userPhone = $("#userPhone").val() + + if(userPhone==''){ + Feng.info("请输入店长手机号") + return; + } + let img = $("#img").val() + + + let imgOne = $("#imgOne").val() + + if(imgOne==''){ + Feng.info("请上传实景图") + return; + } + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tShop/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("cityManagerId",account); + ajax.set("address",address); + ajax.set("time",time); + ajax.set("introduce",intro); + ajax.set("userName",userName); + ajax.set("userPhone",userPhone); + ajax.set("coverDrawing",img); + ajax.set("realPicture",imgOne); + ajax.set("id",$("#id").val()); + ajax.start(); +} + +$(function() { + Feng.initValidator("carInfoForm", TCarInfoDlg.validateFields); + // 初始化图片上传 + var carPhoto = new $WebUpload("c1"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c2"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c3"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c4"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c5"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c6"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c7"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("c8"); + carPhoto.setUploadBarId("progressBar"); + carPhoto.init(); + var carPhoto = new $WebUpload("img"); + 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.saveAllImg = function (e) { + var id = $("#id").val() + var px1 = $("#px1").val() + var px2 = $("#px2").val() + var px3 = $("#px3").val() + var px4 = $("#px4").val() + var px5 = $("#px5").val() + var px6 = $("#px6").val() + var px7 = $("#px7").val() + var px8 = $("#px8").val() + var c1 = $("#c1").val() + var c2 = $("#c2").val() + var c3 = $("#c3").val() + var c4 = $("#c4").val() + var c5 = $("#c5").val() + var c6 = $("#c6").val() + var c7 = $("#7").val() + var c8 = $("#c8").val() + var r1 = document.querySelector('input[name="r1"]').checked; + var r2 = document.querySelector('input[name="r2"]').checked; + var r3 = document.querySelector('input[name="r3"]').checked; + var r4 = document.querySelector('input[name="r4"]').checked; + var r5 = document.querySelector('input[name="r5"]').checked; + var r6 = document.querySelector('input[name="r6"]').checked; + var r7 = document.querySelector('input[name="r7"]').checked; + var r8 = document.querySelector('input[name="r8"]').checked; + if(r1){ + r1 =1 + }else{ + r1=0 + } + if(r2){ + r2 =1 + }else{ + r2=0 + } + if(r3){ + r3 =1 + }else{ + r3=0 + } + if(r4){ + r4 =1 + }else{ + r4=0 + } + if(r5){ + r5 =1 + }else{ + r5=0 + } + if(r6){ + r6 =1 + }else{ + r6=0 + } + if(r7){ + r7 =1 + }else{ + r7=0 + } + if(r8){ + r8 =1 + }else{ + r8=0 + } + + var ajax = new $ax(Feng.ctxPath + "/tShop/saveImgAll", function(data){ + if(data.code == 200){ + Feng.success("保存成功!"); + }else{ + Feng.error(data.msg); + } + },function(data){ + Feng.error("保存失败!" + data.responseJSON.message + "!"); + + }); + ajax.set("id",id); + ajax.set("px1",px1); + ajax.set("px2",px2); + ajax.set("px3",px3); + ajax.set("px4",px4); + ajax.set("px5",px5); + ajax.set("px6",px6); + ajax.set("px7",px7); + ajax.set("px8",px8); + ajax.set("c1",c1); + ajax.set("c2",c2); + ajax.set("c3",c3); + ajax.set("c4",c4); + ajax.set("c5",c5); + ajax.set("c6",c6); + ajax.set("c7",c7); + ajax.set("c8",c8); + ajax.set("r1",r1); + ajax.set("r2",r2); + ajax.set("r3",r3); + ajax.set("r4",r4); + ajax.set("r5",r5); + ajax.set("r6",r6); + ajax.set("r7",r7); + ajax.set("r8",r8); + 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/tSite/tSite.js b/cloud-server-management/src/main/webapp/static/modular/system/tSite/tSite.js index f6ed3b6..c672429 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 @@ -15,76 +15,18 @@ return [ {field: 'selectItem', radio: true}, {title: '主键ID', field: 'id', visible: false, align: 'center', valign: 'middle'}, - {title: language==1?'添加时间':(language==2?'Add Time':'Tambahkan waktu'), field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'20%', - formatter: function (value, row) { - var btn = ""; - if(row.insertTime != '' && row.insertTime != null) { - var time = row.insertTime.replace(" ",'<br>'); - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insertTime + '" onfocus="TUser.tooltip()">' + row.insertTime + '</p>'] - } - return btn; - } + {title: '省', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'20%', }, - {title: '站点名称', field: 'name', visible: true, align: 'center', valign: 'middle', - formatter: function (value, row) { - var btn = ""; - if(row.name != '' && row.name != null) { - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.name + '" onfocus="TUser.tooltip()">' + row.name + '</p>'] - } - return btn; - } + {title: '市', field: 'name', visible: true, align: 'center', valign: 'middle', }, - {title: '添加人ID', field: 'insertUserId', visible: false, align: 'center', valign: 'middle'}, - {title: '创建者', field: 'insertUser', visible: true, align: 'center', valign: 'middle', - formatter: function (value, row) { - var btn = ""; - if(row.insertUser != '' && row.insertUser != null) { - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.insertUser + '" onfocus="TUser.tooltip()">' + row.insertUser + '</p>'] - } - return btn; - } + {title: '门店名称', field: 'insertUserId', visible: false, align: 'center', valign: 'middle'}, + {title: '场地类型', field: 'insertUser', visible: true, align: 'center', valign: 'middle', }, - {title: '所属城市', field: 'province', visible: true, align: 'center', valign: 'middle', - formatter: function (value, row) { - var btn = ""; - if(row.province != '' && row.province != null) { - var str = ""; - if ("" != row.province && undefined != row.province){ - str = str + row.province+"-"; - } - if ("" != row.city && undefined != row.city){ - str = str + row.city+"-"; - } - if ("" != row.district && undefined != row.district){ - str = str + row.district+"-"; - } - str = str.substring(0,str.length-1); - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="'+ str +'" onfocus="TUser.tooltip()">' + str + '</p>'] - } - return btn; - } + {title: '场地名称', field: 'province', visible: true, align: 'center', valign: 'middle', }, - {title: '关联线路', field: 'lineNum', visible: true, align: 'center', valign: 'middle', - formatter: function (value, row) { - var btn = ""; - if(row.lineNum != '' && row.lineNum != null) { - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.lineNum + '" onfocus="TUser.tooltip()">' + row.lineNum + '</p>'] - } - return btn; - } + {title: '场地责任险有效期', field: 'lineNum', visible: true, align: 'center', valign: 'middle', }, {title: language==1?'状态':(language==2?'State':'Status'), field: 'state', visible: true, align: 'center', valign: 'middle', - formatter: function (value, row) { - var btn = ""; - if(row.state != '' && row.state != null) { - if(row.state == 1){ - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="正常" onfocus="TUser.tooltip()">正常</p>'] - }else if(row.state == 2){ - btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color: red;" title="冻结" onfocus="TUser.tooltip()">冻结</p>'] - } - } - return btn; - } } ]; }; diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/QueryUserCouponByIdAndUserId.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/QueryUserCouponByIdAndUserId.java new file mode 100644 index 0000000..666db4f --- /dev/null +++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/QueryUserCouponByIdAndUserId.java @@ -0,0 +1,14 @@ +package com.dsh.other.feignclient.activity.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class QueryUserCouponByIdAndUserId { + private Long id; + + private Integer userId; +} -- Gitblit v1.7.1