From ae9bfd2d66f68a553786ac78b12f4390e65e4e09 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期五, 24 十一月 2023 18:30:18 +0800 Subject: [PATCH] 后台bug修改 --- cloud-server-management/src/main/webapp/static/modular/system/finance/rechargeRecords.js | 2 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_edit.html | 13 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IUserService.java | 3 cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml | 7 cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/storeIncome.html | 4 cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_add.html | 10 + cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js | 9 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/UserServiceImpl.java | 29 +++ cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js | 2 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java | 15 + cloud-server-management/pom.xml | 7 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java | 2 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java | 1 cloud-server-management/src/main/webapp/static/modular/system/tGoods/tPay_info.js | 1 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 66 +++++++- cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java | 6 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java | 18 + cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js | 1 cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js | 5 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml | 6 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/ALiSendSms.java | 123 +++++++++++++++ cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java | 4 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java | 9 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java | 2 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 7 cloud-server-management/src/main/webapp/WEB-INF/view/login.html | 15 + cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js | 37 +++ cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html | 52 ++++++ 29 files changed, 397 insertions(+), 61 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 c137268..a0d433c 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 @@ -172,6 +172,7 @@ return appUser; } + // todo 短信验证码 @ResponseBody @PostMapping("/base/appUser/getSMSCode") @ApiOperation(value = "获取短信验证码", tags = {"APP-登录注册"}) diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml index e58d540..c8a40a9 100644 --- a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml +++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml @@ -111,11 +111,11 @@ order by sort desc </select> <select id="changeState" > - update t_benefits_videos set - state = #{state} + update t_points_merchandise set + shelves = #{state} <where> <if test="ids != null and ids.size()>0"> - AND t_benefits_videos.id IN + AND t_points_merchandise.id IN <foreach collection="ids" separator="," item="id" open="(" close=")"> #{id} </foreach> diff --git a/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml b/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml index 1c578f1..43bcc47 100644 --- a/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml +++ b/cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml @@ -2,10 +2,9 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.competition.mapper.ParticipantMapper"> <select id="getPeopleFromId" resultType="com.dsh.competition.feignclient.model.CompetitionUser"> - select t2.id, t2.name,t2.gender sex,t2.phone ,t2.idcard idCard ,t3.payStatus state - from t_user_competition t1 - left join t_participant t2 on t1.participantId = t2.id - left join t_payment_competition t3 on t1.paymentCompetitionId = t3.id + select t2.name,t2.gender sex,t2.phone ,t2.idcard idCard ,t3.payStatus state + from t_user_competition t1 left join t_participant t2 on t1.participantId = t2.id + left join t_payment_competition t3 on t1.paymentCompetitionId = t3.id where t1.competitionId =#{id} and t2.id is not null and t3.id is not null <if test="state !=null and state !='' and state ==1"> and t3.payStatus in (1,2) diff --git a/cloud-server-management/pom.xml b/cloud-server-management/pom.xml index b050212..1da1675 100644 --- a/cloud-server-management/pom.xml +++ b/cloud-server-management/pom.xml @@ -88,7 +88,12 @@ <artifactId>jdom</artifactId> <version>1.1.3</version> </dependency> - + <!--阿里云短信--> + <dependency> + <groupId>com.aliyun</groupId> + <artifactId>aliyun-java-sdk-core</artifactId> + <version>4.4.3</version> + </dependency> <!--读取excel文件--> <dependency> <groupId>org.apache.poi</groupId> diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java index 1865f39..8977bf9 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/AppUserClient.java @@ -11,6 +11,10 @@ import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.model.dto.GiftSearchDto; import com.dsh.guns.modular.system.model.dto.SelectDto; +import com.dsh.guns.modular.system.util.ResultUtil; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestBody; @@ -20,6 +24,8 @@ @FeignClient("mb-cloud-account") public interface AppUserClient { + + /** * 根据介绍有礼id查询当前活动参与次数 */ diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java index 222ec11..dab5f0c 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/GateDataController.java @@ -22,9 +22,11 @@ import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IRegionService; +import com.dsh.guns.modular.system.service.TOperatorService; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import com.google.maps.internal.ApiResponse; +import groovyjarjarpicocli.CommandLine; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -52,12 +54,15 @@ @Autowired private SiteClient siteClient; private String PREFIX = "/system/gateData/"; - + @Autowired + private TOperatorService operatorService; /** * 跳转到充值记录页面 */ @RequestMapping("") public String index(Model model) { + List<TOperator> list = operatorService.list(new QueryWrapper<TOperator>().ne("state", 3)); + model.addAttribute("list",list); return PREFIX + "GateData.html"; } /** @@ -65,9 +70,10 @@ */ @RequestMapping("/list") @ResponseBody - public Object list() { + public Object list(Integer storeId) { try { - String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001"; + if (storeId!=null){ + String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id="+storeId; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); @@ -102,6 +108,8 @@ } else { System.out.println("请求失败: " + responseCode); } + } + } catch (IOException e) { e.printStackTrace(); } @@ -112,9 +120,9 @@ */ @RequestMapping("/totalNum") @ResponseBody - public Object totalNum() { + public Object totalNum(Integer storeId) { try { - String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id=1001"; + String apiUrl = "https://try.daowepark.com/v7/user_api/general/spaceDoorData?space_id="+storeId; URL url = new URL(apiUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java index 667a190..1e2cd40 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java @@ -26,6 +26,7 @@ import com.dsh.guns.modular.system.util.ResultUtil; +import com.mysql.cj.x.protobuf.MysqlxExpr; import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -57,9 +58,21 @@ private ICityService cityService; @Autowired private IOperatorAuthService operatorAuthService; + @Autowired + private IStoreService storeService; - + /** + * 根据运营商id查询所有门店 + */ + @RequestMapping("/getStores") + @ResponseBody + public List<TStore> getStores(Integer id) + { + return storeService.list(new QueryWrapper<TStore>() + .eq("operatorId",id) + .ne("state",3)); + } /** * 跳转运营商管理首页 diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java index fe5bfdf..27b3622 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java @@ -158,7 +158,7 @@ } if (data.getViplevelId()!=null){ - // todo 创建会员等级表 + model.addAttribute("level","黄金"); } model.addAttribute("level","黄金"); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java index 0bfbbc2..69c1311 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java @@ -1058,16 +1058,17 @@ @ResponseBody @PostMapping("/updateCoursePackage") public ResultUtil updateCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig){ - // System.out.println("=======getClassStartTime============"+classStartTime); String startTime = coursePackage.getClassStartTime(); - JSONArray jsonArray = JSON.parseArray(startTime); + String s = startTime.replaceAll(" ", ""); + + JSONArray jsonArray = JSON.parseArray(s); System.out.println("=======jsonArray==========="+jsonArray); List<String> first = new ArrayList<>(); List<String> second = new ArrayList<>(); for (int i = 0; i < jsonArray.size(); i++) { -// JSONObject jsonObject = JSON.parseObject(jsonArray.getString(i)); +// JSONObject jsonObject = JSON.parseObject(jsonArray.getString(i)); String jsonString = jsonArray.getString(i); String[] split = jsonString.split("-"); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java index 620978e..2b8a8d2 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java @@ -1,10 +1,14 @@ package com.dsh.guns.modular.system.controller.system; +import com.dsh.course.feignClient.account.AppUserClient; +import com.dsh.course.feignClient.account.model.TAppUser; import com.dsh.course.feignClient.auth.UserClient; import com.dsh.course.feignClient.auth.model.GetTokenRequest; import com.dsh.course.feignClient.auth.model.TokenResponse; import com.dsh.course.model.node.MenuNode; +import com.dsh.course.util.RedisUtil; import com.dsh.guns.config.UserExt; +import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.controller.util.CaptchaGenerator; import com.dsh.guns.modular.system.controller.util.CaptchaImageGenerator; import com.dsh.guns.modular.system.controller.util.MD5; @@ -12,6 +16,7 @@ import com.dsh.guns.modular.system.service.IRelationService; import com.dsh.guns.modular.system.service.IRoleService; import com.dsh.guns.modular.system.util.CacheUtil; +import com.dsh.guns.modular.system.util.ResultUtil; import com.google.code.kaptcha.Constants; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.common.exception.InvalidKaptchaException; @@ -24,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -54,6 +60,8 @@ @Autowired private IRoleService roleService; + @Autowired + private AppUserClient appUserClient; @Resource private UserClient userClient; @@ -65,8 +73,33 @@ + /** + * 跳转到修改密码页面 + */ + @PostMapping("/update") + public String updatePassword(Model model) { + return "/password.html" ; + } + @Autowired + private RedisUtil redisUtil; + /** + * 点击登录执行的动作 + */ + @RequestMapping(value = "/updatePassword", method = RequestMethod.POST) + public Object loginVali(String username, String password,String code) { - + User user = userService.getByAccount(username); + if (user==null)return "用户不存在"; + password = AESUtils.decrypt(password); + String s = MD5.md5(password); + if(user.getPassword().equals(s))return "新密码和旧密码一致"; + //验证短信验证码 + if(ToolUtil.isEmpty(code))return "无效的验证码"; + String value = redisUtil.getValue(user.getPhone()); + if(ToolUtil.isEmpty(value) || !code.equals(value))return "手机验证码不正确"; + user.setPassword(s); + return "修改成功!"; + } /** * 跳转到主页 */ @@ -118,6 +151,21 @@ // || user.getPassWordUpdate().getTime() + 7776000000L <= System.currentTimeMillis() // ? a: ""); return "/index.html"; + } + @RequestMapping("/getSMSCode") + public ResultUtil getSMSCode(String phone){ + if(ToolUtil.isEmpty(phone)){ + return ResultUtil.paranErr("phone"); + } + try { + TAppUser appUserByPhone = appUserClient.getAppUserByPhone(phone); + if (appUserByPhone==null)return ResultUtil.error("当前手机号未注册!"); + ResultUtil smsCode = userService.getSMSCode(phone); + return smsCode; + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } } @@ -179,20 +227,20 @@ f++; loginFailures.put(username, f); } - + if (KaptchaUtil.getKaptchaOnOff()) { + String kaptcha = super.getPara("kaptcha").trim(); + String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); + if (Objects.isNull(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { + model.addAttribute("tips", "验证码错误"); + return "/login.html"; + } + } // if (f > 5 && (System.currentTimeMillis() - t) <= (30 * 60 * 1000)) { // model.addAttribute("tips", "登录次数过多,请等30分钟再试!"); // return "/login.html"; // } //验证验证码是否正确 //Verify if the verification code is correct. - if (KaptchaUtil.getKaptchaOnOff()) { - String kaptcha = super.getPara("kaptcha").trim(); - String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); - if (Objects.isNull(kaptcha) || !kaptcha.equalsIgnoreCase(code)) { - throw new InvalidKaptchaException(); - } - } User user = userService.getByAccount(username); password = AESUtils.decrypt(password); String s = MD5.md5(password); diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/ALiSendSms.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/ALiSendSms.java new file mode 100644 index 0000000..7ce0067 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/util/ALiSendSms.java @@ -0,0 +1,123 @@ +package com.dsh.guns.modular.system.controller.util; + + +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.exceptions.ClientException; +import com.aliyuncs.profile.DefaultProfile; +import com.google.gson.Gson; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 阿里云短信工具类 + */ +@Component +public class ALiSendSms { + + // 设置鉴权参数,初始化客户端 + private DefaultProfile profile = DefaultProfile.getProfile( + "cn-hangzhou",// 地域ID + "LTAI5tSWQMMn9HNU9Zatoe1T",// 您的AccessKey ID + "kSOsRakIMPbvTlgXU19pYfbwmBXBA4");// 您的AccessKey Secret + private IAcsClient client = new DefaultAcsClient(profile); + + private static void log_print(String functionName, Object result) { + Gson gson = new Gson(); + System.out.println("-------------------------------" + functionName + "-------------------------------"); + System.out.println(gson.toJson(result)); + } + + /** + * 添加短信模板 + */ + public String addSmsTemplate() throws ClientException { + CommonRequest addSmsTemplateRequest = new CommonRequest(); + addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com"); + addSmsTemplateRequest.setSysAction("AddSmsTemplate"); + addSmsTemplateRequest.setSysVersion("2017-05-25"); + // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息 + addSmsTemplateRequest.putQueryParameter("TemplateType", "0"); + // 模板名称,长度为1~30个字符 + addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板"); + // 模板内容,长度为1~500个字符 + addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!"); + // 短信模板申请说明 + addSmsTemplateRequest.putQueryParameter("Remark", "测试"); + CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest); + String data = addSmsTemplateResponse.getData(); + // 消除返回文本中的反转义字符 + String sData = data.replaceAll("'\'", ""); + log_print("addSmsTemplate", sData); + Gson gson = new Gson(); + // 将字符串转换为Map类型,取TemplateCode字段值 + Map map = gson.fromJson(sData, Map.class); + Object templateCode = map.get("TemplateCode"); + return templateCode.toString(); + } + + /** + * 发送短信 + */ + public String sendSms(String phone, String templateCode, String json) throws ClientException { + CommonRequest request = new CommonRequest(); + request.setSysDomain("dysmsapi.aliyuncs.com"); + request.setSysVersion("2017-05-25"); + request.setSysAction("SendSms"); + // 接收短信的手机号码 + request.putQueryParameter("PhoneNumbers", phone); + // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。 + request.putQueryParameter("SignName", "玩湃"); + // 短信模板ID + request.putQueryParameter("TemplateCode", templateCode); + // 短信模板变量对应的实际值,JSON格式。 + request.putQueryParameter("TemplateParam", json); + CommonResponse commonResponse = client.getCommonResponse(request); + String data = commonResponse.getData(); + String sData = data.replaceAll("'\'", ""); + log_print("sendSms", sData); + return sData; + } + + /** + * 查询发送详情 + */ + private void querySendDetails(String bizId) throws ClientException { + CommonRequest request = new CommonRequest(); + request.setSysDomain("dysmsapi.aliyuncs.com"); + request.setSysVersion("2017-05-25"); + request.setSysAction("QuerySendDetails"); + // 接收短信的手机号码 + request.putQueryParameter("PhoneNumber", "156xxxxxxxx"); + // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。 + request.putQueryParameter("SendDate", "20191010"); + // 分页记录数量 + request.putQueryParameter("PageSize", "10"); + // 分页当前页码 + request.putQueryParameter("CurrentPage", "1"); + // 发送回执ID,即发送流水号。 + request.putQueryParameter("BizId", bizId); + CommonResponse response = client.getCommonResponse(request); + log_print("querySendDetails", response.getData()); + } + +// public static void main(String[] args) { +// ALiSendSms sendSmsDemo = new ALiSendSms(); +// try { +// // 创建短信模板 +// String templateCode = sendSmsDemo.addSmsTemplate(); +// // 使用刚创建的短信模板发送短信 +// String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}"); +// Gson gson = new Gson(); +// Map map = gson.fromJson(sData, Map.class); +// String bizId = map.get("BizId").toString(); +// // 根据短信发送流水号查询短信发送情况 +// sendSmsDemo.querySendDetails(bizId); +// } catch (ClientException e) { +// e.printStackTrace(); +// } +// } +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java index 6c9dca1..554e0eb 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/MgtShopAuthDto.java @@ -9,7 +9,7 @@ /** * @ClassName Mgt - * @Description TODO + * @Description * @Author jqs * @Date 2023/6/19 10:57 * @Version 1.0 diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IUserService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IUserService.java index ded8fc6..8013666 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IUserService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/IUserService.java @@ -6,6 +6,7 @@ import com.dsh.guns.modular.system.model.User; import com.dsh.guns.modular.system.model.UserListVO; import com.dsh.guns.modular.system.model.UserQuery; +import com.dsh.guns.modular.system.util.ResultUtil; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -62,4 +63,6 @@ List<UserListVO> searchUsers(UserQuery userQuery); + + ResultUtil getSMSCode(String phone); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java index 10dfd09..c7a44d0 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java @@ -189,11 +189,10 @@ coursePackagePaymentConfig1.setPlayPaiCoin(playPaiCoin); coursePackagePaymentConfig1.setCouponIds(couponIds); int i1 = coursePackagePaymentConfigClient.addCoursePackagePaymentConfig(coursePackagePaymentConfig1); - - for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { - tCoursePackageDiscount.setCoursePackagePaymentConfigId(i1); - coursePackageDiscountClient.update(tCoursePackageDiscount); - } +// for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { +// tCoursePackageDiscount.setCoursePackagePaymentConfigId(coursePackagePaymentConfig1.getId()); +// coursePackageDiscountClient.update(tCoursePackageDiscount); +// } } } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/UserServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/UserServiceImpl.java index 2871004..dfe7fe4 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/UserServiceImpl.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/UserServiceImpl.java @@ -4,13 +4,21 @@ import java.util.Map; +import com.aliyuncs.exceptions.ClientException; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.course.feignClient.account.model.TAppUser; import com.dsh.course.mapper.UserMapper; +import com.dsh.course.util.RedisUtil; +import com.dsh.course.util.UUIDUtil; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.dataScope.DataScope; +import com.dsh.guns.modular.system.controller.util.ALiSendSms; import com.dsh.guns.modular.system.model.UserListVO; import com.dsh.guns.modular.system.model.UserQuery; +import com.dsh.guns.modular.system.util.ResultUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.dsh.guns.modular.system.model.User; @@ -26,6 +34,11 @@ */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { + @Autowired + private ALiSendSms aLiSendSms; + + @Autowired + private RedisUtil redisUtil; @Override public int setStatus(Integer userId, int status) { @@ -67,4 +80,20 @@ public List<UserListVO> searchUsers(UserQuery userQuery) { return this.baseMapper.searchUsers(userQuery); } + + @Override + public ResultUtil getSMSCode(String phone) { + + String numberRandom = UUIDUtil.getNumberRandom(6); + String templateCode = ""; + templateCode = "SMS_160960014"; + + try { + aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}"); + } catch (ClientException e) { + e.printStackTrace(); + } + redisUtil.setStrValue(phone, numberRandom, 300); + return ResultUtil.success(); + } } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java index a5e9f7b..fd44c75 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/ExcelUtil.java @@ -3,6 +3,8 @@ import org.apache.poi.hssf.usermodel.*; import javax.servlet.http.HttpServletResponse; +import java.net.URLEncoder; + public class ExcelUtil { public static HSSFWorkbook getHSSFWorkbook(String sheetName, String[] title, String[][] values, HSSFWorkbook wb) { // 第一步,创建一个webbook,对应一个Excel文件 @@ -40,7 +42,7 @@ public static void setResponseHeader(HttpServletResponse response, String fileName) { try { - response.setHeader("Content-Disposition", "attachment;filename=" + fileName); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName)); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.addHeader("Pragma", "no-cache"); response.addHeader("Cache-Control", "no-cache"); diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html index 4e0e2fb..349f46b 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html @@ -76,9 +76,11 @@ <input class="form-control" type="text" name="kaptcha" placeholder="验证码" required=""> </div> <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;"> - <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/> + <img src="${ctxPath}/kaptcha" id="kaptcha" width="90px" height="34px"/> </div> + </div> + <h4 style="color: #0e9aef;text-align: right" onclick="updatePassword1()">修改密码</h4> <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button> <button type="submit" id="submit" style="display: none;"></button> </p> @@ -91,6 +93,17 @@ <script src="${ctxPath}/js/common/Feng.js"></script> <script src="${ctxPath}/crypto-js/crypto-js.js"></script> <script> + function updatePassword1(e) { + console.log("调用") + + $.ajax({ + url: Feng.ctxPath + '/update', + type: 'POST', + success: function (res) { + } + }); + } + $(function () { $("#kaptcha").on('click', function () { $("#kaptcha").attr('src', '${ctxPath}/kaptcha?' + Math.floor(Math.random() * 100)).fadeIn(); diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_add.html index a5f9045..c834588 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_add.html @@ -183,6 +183,14 @@ function updateOne(e) { + console.log("看看选择页面") + + // 查看跳转页面 有没有跳转类型 + var page = $('#page option:selected').text(); + if (page=="门店列表" || page=="主页" || page=="充值中心" ){ + $("#t2").hide(); + $("#t3").hide(); + } var oneId=$(e).val(); var ajax = new $ax(Feng.ctxPath + "/tShop/typeChangeOne", function(data){ if(data!=null&&data.length>0){ @@ -205,6 +213,7 @@ $("#t3").hide() } + ajax.set("id",oneId); @@ -238,6 +247,7 @@ $("#t3").show() } } + } </script> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_edit.html index d65b6b5..999a7be 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_edit.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/advertisement/advertisement_edit.html @@ -197,6 +197,12 @@ function updateOne(e) { + console.log("看看选择页面") + console.log($('#page option:selected').text()) + if ($('#page option:selected').text()=="门店列表"){ + $("#t3").hide(); + $("#t2").hide(); + } var oneId=$(e).val(); var ajax = new $ax(Feng.ctxPath + "/tShop/typeChangeOne", function(data){ if(data!=null&&data.length>0){ @@ -255,10 +261,15 @@ var temp = $("#turnId").val(); var res= document.getElementById("imgPX"); res.innerHTML ="推荐像素:780x472px"; - console.log("看看temp",temp); if (temp==""){ $("#t3").hide(); } + // 查看跳转页面 有没有跳转类型 + var page = $('#page option:selected').text(); + if (page=="门店列表" || page=="主页" || page=="充值中心" ){ + $("#t2").hide(); + $("#t3").hide(); + } } </script> @} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/storeIncome.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/storeIncome.html index 4ec90bb..b62681b 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/storeIncome.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/dataStatistics/storeIncome.html @@ -106,8 +106,6 @@ <div class="col-sm-10" style="width: 1500px" > </br> </br> - <span>会员费收入:<label id="fee1">0.0</label></span> - <span>玩湃币充值收入:<label id="fee2">0.0</label></span> <span>课程收入:<label id="fee3">0.0</label></span> <span>活动/赛事收入:<label id="fee4">0.0</label></span> <span>订场收入:<label id="fee5">0.0</label></span> @@ -432,8 +430,6 @@ } var ajax = new $ax(Feng.ctxPath + "/data/selectStore", function (data) { - $("#fee1").text(data.fee1) - $("#fee2").text(data.fee2) $("#fee3").text(data.fee3) $("#fee4").text(data.fee4) $("#fee5").text(data.fee5) diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html index 3e80306..faf0a66 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/gateData/GateData.html @@ -5,6 +5,44 @@ <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="operator" onchange="TSite.getStores(this)"> + <option value="0">平台</option> + @for(obj in list){ + <option value="${obj.id}">${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="store"> + </select> + </div> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TSite.search()"/> + </div> + </div> + </div> + </div> + </div> <div class="ibox-content"> <div class="row row-lg"> <div class="col-sm-12"> @@ -28,11 +66,19 @@ ,lang:"en" }); $(function(){ - var ajax = new $ax(Feng.ctxPath + "/gateData/totalNum", function(data){ - var totalNumber= document.getElementById("totalNumber"); - totalNumber.innerText = "场地总人次: " + data +"次"; + var oneId=$("#operator").val(); + var ajax = new $ax(Feng.ctxPath + "/operator/getStores", function(data){ + if(data!=null){ + var content='<option value="">选择门店</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#store").empty().append(content); + } }); + ajax.set("id",oneId); ajax.start(); }); + </script> @} diff --git a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js index 89aaa36..441e0cb 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/appUser/tAppUser.js @@ -63,6 +63,7 @@ * 点击添加 */ TQuestion.openAdd = function () { + var index = layer.open({ type: 2, title: '添加分类', diff --git a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js index ef27d1b..7bb4003 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js @@ -172,7 +172,7 @@ // 去除最后一个逗号 values = values.slice(0, -1); - + console.log("看看预约时间段") console.log(values); var times = values; diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js index ff2b91c..d994f41 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackage_info.js @@ -393,10 +393,11 @@ var inputElements = document.querySelectorAll('input[name="classStartTime"]'); - let classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) { + var classStartTime = JSON.stringify(Array.from(inputElements).map(function(element) { return element.value; })) - + console.log("看下修改后的时间"); + console.log(classStartTime) // let classStartTime = $('#classStartTime').val(); let classWeeks = ''; $('input[name="classWeeks"]:checked').each(function (index, e) { diff --git a/cloud-server-management/src/main/webapp/static/modular/system/finance/rechargeRecords.js b/cloud-server-management/src/main/webapp/static/modular/system/finance/rechargeRecords.js index c7bf753..caf604e 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/finance/rechargeRecords.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/finance/rechargeRecords.js @@ -24,7 +24,7 @@ {title: '玩湃币数量', field: 'playPaiCoins', visible: true, align: 'center', valign: 'middle'}, {title: '充值类型', field: 'type', visible: true, align: 'center', valign: 'middle', formatter:function (data) { - return {1:"会员充值",0:"非会员充值"}[data] + return {1:"会员充值",2:"非会员充值"}[data] } }, ]; diff --git a/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js b/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js index 6d5faf7..f56eaa5 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/gateData/gateData.js @@ -19,17 +19,40 @@ ]; }; - +TSite.getStores = function (e) { + var oneId=$(e).val(); + var ajax = new $ax(Feng.ctxPath + "/operator/getStores", function(data){ + if(data!=null){ + var content='<option value="">选择门店</option>'; + $.each(data, function(k,v) { + content += "<option value='"+v.id+"'>"+v.name+"</option>"; + }); + $("#store").empty().append(content); + } + }); + ajax.set("id",oneId); + ajax.start(); +}; /** * 查询跨城站点管理列表 */ TSite.search = function () { + if ($("#operator").val()==""){ + Feng.error("请选择运营商和门店"); + return; + } + if ($("#store").val()==""){ + Feng.error("请选择门店"); + return; + } + var ajax = new $ax(Feng.ctxPath + "/gateData/totalNum", function(data){ + var totalNumber= document.getElementById("totalNumber"); + totalNumber.innerText = "场地总人次: " + data +"次"; + }); + ajax.set("storeId",) + ajax.start(); var queryData = {}; - queryData['insertTime'] = $("#insertTime").val(); - queryData['name'] = $("#name").val(); - queryData['insertUser'] = $("#insertUser").val(); - queryData['city'] = $("#city").val(); - queryData['state'] = $("#state").val(); + queryData['storeId'] = $("#store").val(); TSite.table.refresh({query: queryData}); }; @@ -47,4 +70,6 @@ var table = new BSTable(TSite.id, "/gateData/list", defaultColunms); table.setPaginationType("client"); TSite.table = table.init(); + TSite.search(); + Feng.info("请选择门店") }); diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js index e1b3048..ff7d1a6 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetitionUser.js @@ -333,10 +333,7 @@ TCompetition.ouTCompetition = function () { var state=$("#state").val() var id=$("#id").val() - var ajax = new $ax(Feng.ctxPath + "/tCompetition/export", function(data){ - Feng.success("导出成功"); - }); - ajax.set("state",state); - ajax.set("id",id); - ajax.start(); + window.location.href=Feng.ctxPath + "/tCompetition/export?id="+id + +"&state="+state + ; }; 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 eaa4f7a..4341dc6 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 @@ -60,6 +60,7 @@ console.log(TPayInfo.seItem.id) var ajax = new $ax(Feng.ctxPath + "/ticket/writeOff", function (data) { TPayInfo.search(); + Feng.error("核销成功!") }, function (data) { }); ajax.set("id", TPayInfo.seItem.id); diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java index f3154c3..e18d118 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java +++ b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java @@ -45,8 +45,6 @@ } } - - //预约场地后,时间超过endTime,状态变为已过期 @Scheduled(fixedRate = 60000) public void taskMinute1(){ -- Gitblit v1.7.1