Compare commits

..

3 Commits

Author SHA1 Message Date
sxu 54769b7feb sms 2025-02-03 11:14:32 +08:00
sxu 40f2183d6e Revert "智慧食堂添加用户信息"
This reverts commit 12e3e954eb.
2025-02-03 11:06:21 +08:00
sxu 12e3e954eb 智慧食堂添加用户信息 2025-01-15 14:09:47 +08:00
36 changed files with 248 additions and 381 deletions

View File

@ -41,7 +41,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- bonus Common Security--> <!-- bonus Common Security-->
<dependency> <dependency>

View File

@ -169,17 +169,15 @@ public class TokenController {
log.info("ticket=" + ticket); log.info("ticket=" + ticket);
if (StringUtils.isNotEmpty(ticket)) { if (StringUtils.isNotEmpty(ticket)) {
LoginUser loginUser = new LoginUser(); LoginUser loginUser = new LoginUser();
SysUser sysUser = new SysUser();
if (form.getSysType()!=null && "1".equals(form.getSysType())){ if (form.getSysType()!=null && "1".equals(form.getSysType())){
log.info("app端登录"); sysLoginService.iwsH5Login(ticket,iwsH5AppId,iwsH5Url,loginUser,sysUser);
//loginUser = sysLoginService.iwsH5Login(ticket,iwsH5AppId,iwsH5Url);
//h5和web端调用同一个接口
loginUser = sysLoginService.iwsWebLogin(ticket,iwsH5AppId,iwsWebUrl);
} else if (form.getSysType()!=null && "0".equals(form.getSysType())) { } else if (form.getSysType()!=null && "0".equals(form.getSysType())) {
loginUser = sysLoginService.iwsWebLogin(ticket,iwsWebAppId,iwsWebUrl); sysLoginService.iwsWebLogin(ticket,iwsWebAppId,iwsWebUrl,loginUser,sysUser);
}else { }else {
throw new ServiceException("登录失败,请稍后重试"); throw new ServiceException("登录失败,请稍后重试");
} }
logService.saveLogin(loginUser.getSysUser().getUserName(), "登录", "登录成功", null, "成功"); logService.saveLogin(sysUser.getUserName(), "登录", "登录成功", null, "成功");
//生成系统token //生成系统token
return R.ok(tokenService.createToken(loginUser)); return R.ok(tokenService.createToken(loginUser));

View File

@ -47,8 +47,4 @@ public class LoginBody {
* i皖送登录方式 0web端登录 1H5登录 * i皖送登录方式 0web端登录 1H5登录
*/ */
private String sysType; private String sysType;
/**
* i皖送登录数据库中没有用心信息的时候给个默认公司
*/
private Long deptId;
} }

View File

@ -93,7 +93,6 @@ public class SysLoginService {
* @param registerBody 注册信息 * @param registerBody 注册信息
*/ */
public void register(RegisterBody registerBody) { public void register(RegisterBody registerBody) {
log.info("开始进行注册===============");
long startTime = System.currentTimeMillis(); // 记录开始时间 long startTime = System.currentTimeMillis(); // 记录开始时间
String result = convertAndAppend(registerBody.getNickName(), registerBody.getMobile()); String result = convertAndAppend(registerBody.getNickName(), registerBody.getMobile());
int contactType = getContactType(registerBody.getMobile()); int contactType = getContactType(registerBody.getMobile());
@ -129,7 +128,7 @@ public class SysLoginService {
SysUser sysUser = new SysUser(); SysUser sysUser = new SysUser();
sysUser.setUserName(registerBody.getUsername()); sysUser.setUserName(registerBody.getUsername());
sysUser.setNickName(registerBody.getNickName()); sysUser.setNickName(registerBody.getNickName());
sysUser.setDeptId(registerBody.getDeptId());
if (systemConfig.getRegistersConfig().isApprovalStatus()){ if (systemConfig.getRegistersConfig().isApprovalStatus()){
sysUser.setApprovalStatus("0"); sysUser.setApprovalStatus("0");
sysUser.setStatus("1"); sysUser.setStatus("1");
@ -157,7 +156,6 @@ public class SysLoginService {
recordLogService.saveLogs(registerBody.getUsername(), startTime, "注册异常", e.getMessage(), null, "失败"); recordLogService.saveLogs(registerBody.getUsername(), startTime, "注册异常", e.getMessage(), null, "失败");
throw new ServiceException("注册失败,请稍后重试"); throw new ServiceException("注册失败,请稍后重试");
} }
log.info("结束进行注册===============");
} }
/** /**
@ -205,30 +203,26 @@ public class SysLoginService {
* @param iwsWebUrl * @param iwsWebUrl
* @return * @return
*/ */
public LoginUser iwsWebLogin(String ticket, String iwsWebAppId, String iwsWebUrl) { public void iwsWebLogin(String ticket, String iwsWebAppId, String iwsWebUrl,LoginUser loginUser,SysUser sysUser) {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
LoginUser loginUser = new LoginUser();
SysUser sysUser = new SysUser();
paramMap.put("ticket", ticket); paramMap.put("ticket", ticket);
paramMap.put("appId", iwsWebAppId); paramMap.put("appId", iwsWebAppId);
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> authResponse = restTemplate.getForEntity(iwsWebUrl, String.class, paramMap); ResponseEntity<String> authResponse = restTemplate.getForEntity(iwsWebUrl, String.class, paramMap);
log.info("authResponse:" + authResponse.toString()); log.info("authResponse:" + authResponse.toString());
// 根据ResponseEntity<String> responseEntity对象获取body部分body为json格式字符串 if ("200".equals(authResponse.getStatusCode())){
String content = authResponse.getBody(); // 根据ResponseEntity<String> responseEntity对象获取body部分body为json格式字符串
// 将json字符串转化为json对象 String content = authResponse.getBody();
JSONObject json = JSONObject.parseObject(content); // 将json字符串转化为json对象
// 取出data部分对象 JSONObject json = JSONObject.parseObject(content);
JSONObject data = json.getJSONObject("data"); // 取出data部分对象
JSONObject data = json.getJSONObject("data");
if ("200".equals(json.getInteger("code").toString())){
sysUser.setUserName(data.get("userName").toString()); sysUser.setUserName(data.get("userName").toString());
sysUser.setNickName(data.get("name").toString()); sysUser.setNickName(data.get("name").toString());
sysUser.setPhonenumber(data.get("mobile").toString()); sysUser.setPhonenumber(data.get("mobile").toString());
loginUser.setSysUser(sysUser); loginUser.setSysUser(sysUser);
loginUser = createUser(sysUser,loginUser); createUser(sysUser,loginUser);
} }
return loginUser;
} }
/** /**
@ -236,51 +230,40 @@ public class SysLoginService {
* @param sysUser * @param sysUser
* @param loginUser * @param loginUser
*/ */
private LoginUser createUser(SysUser sysUser, LoginUser loginUser) { private void createUser(SysUser sysUser, LoginUser loginUser) {
//通过用户名获取人员信息 //通过用户名获取人员信息
LoginUser loginUserNew = new LoginUser(); R<LoginUser> userResult = remoteUserService.getUserInfo(sysUser.getUserName(), SecurityConstants.INNER);
SysUser sysUserNew = new SysUser();
String resultName = convertAndAppend(sysUser.getNickName(), sysUser.getPhonenumber());
R<LoginUser> userResult = remoteUserService.getUserInfo(resultName, SecurityConstants.INNER);
if (userResult.getData() == null || R.FAIL == userResult.getCode()) { if (userResult.getData() == null || R.FAIL == userResult.getCode()) {
log.info("登录用户不存在,进行创建----"); log.info("登录用户不存在,进行创建----");
RegisterBody registerBody = new RegisterBody(); RegisterBody registerBody = new RegisterBody();
registerBody.setUsername(sysUser.getUserName()); registerBody.setUsername(sysUser.getUserName());
registerBody.setNickName(sysUser.getNickName()); registerBody.setNickName(sysUser.getNickName());
registerBody.setMobile(sysUser.getPhonenumber()); registerBody.setMobile(sysUser.getPhonenumber());
registerBody.setDeptId(1L);
registerBody.setPassword("Bonus@Max2024");
//获取配置中的初始密码 //获取配置中的初始密码
AjaxResult result = configService.getConfigKey("sys.user.initPassword"); AjaxResult result = configService.getConfigKey("sys.user.initPassword");
if ("200".equals(result.get("code").toString())) if (result.isSuccess())
{ {
registerBody.setPassword(result.get("msg").toString()); sysUser.setPassword(result.get("msg").toString());
} }
log.info("开始进行注册{}",registerBody);
//新用户注册 //新用户注册
try { try {
register(registerBody); register(registerBody);
log.info("注册成功!");
//查询用户信息 //查询用户信息
userResult = remoteUserService.getUserInfo(resultName, SecurityConstants.INNER); userResult = remoteUserService.getUserInfo(sysUser.getUserName(), SecurityConstants.INNER);
loginUserNew = userResult.getData(); loginUser = userResult.getData();
sysUserNew = loginUserNew.getSysUser(); sysUser = loginUser.getSysUser();
log.info("获取用户信息成功!{}",loginUserNew.getSysUser());
//初始化一个角色 //初始化一个角色
Long[] roleIds = new Long[5]; Long[] roleIds = new Long[5];
// 将数组的第一个元素赋值为 2 // 将数组的第一个元素赋值为 2
roleIds[0] = 2L; roleIds[0] = 2L;
log.info("开始绑定角色信息{}",roleIds); remoteUserService.insertAuthRole(sysUser.getUserId(),roleIds,SecurityConstants.INNER);
remoteUserService.insertAuthRole(sysUserNew.getUserId(),roleIds,SecurityConstants.INNER);
log.info("角色信息绑定成功!");
}catch (Exception e){ }catch (Exception e){
throw new ServiceException("登录失败,请稍后重试"); throw new ServiceException("登录失败,请稍后重试");
} }
}else { }else {
loginUserNew = userResult.getData(); loginUser = userResult.getData();
sysUser = loginUser.getSysUser();
} }
return loginUserNew;
} }
/** /**
@ -290,31 +273,26 @@ public class SysLoginService {
* @param iwsH5Url * @param iwsH5Url
* @return * @return
*/ */
public LoginUser iwsH5Login(String ticket, String iwsH5AppId, String iwsH5Url) { public void iwsH5Login(String ticket, String iwsH5AppId, String iwsH5Url,LoginUser loginUser,SysUser sysUser) {
Map<String, Object> paramMap = new HashMap<>(); Map<String, Object> paramMap = new HashMap<>();
LoginUser loginUser = new LoginUser();
SysUser sysUser = new SysUser();
paramMap.put("ticket", ticket); paramMap.put("ticket", ticket);
paramMap.put("appId", iwsH5AppId); paramMap.put("appId", iwsH5AppId);
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> authResponse = restTemplate.getForEntity(iwsH5Url, String.class, paramMap); ResponseEntity<String> authResponse = restTemplate.getForEntity(iwsH5Url, String.class, paramMap);
log.info("authResponse:" + authResponse.toString()); log.info("authResponse:" + authResponse.toString());
// 根据ResponseEntity<String> responseEntity对象获取body部分body为json格式字符串 if ("200".equals(authResponse.getStatusCode())){
String content = authResponse.getBody(); // 根据ResponseEntity<String> responseEntity对象获取body部分body为json格式字符串
// 将json字符串转化为json对象 String content = authResponse.getBody();
JSONObject json = JSONObject.parseObject(content); // 将json字符串转化为json对象
// 取出data部分对象 JSONObject json = JSONObject.parseObject(content);
JSONObject data = json.getJSONObject("data"); // 取出data部分对象
log.info("返回的数据:" + data); JSONObject data = json.getJSONObject("data");
if ("200".equals(json.getInteger("code").toString())){
JSONObject userInfo = data.getJSONObject("userInfo"); JSONObject userInfo = data.getJSONObject("userInfo");
sysUser.setUserName(userInfo.get("userName").toString()); sysUser.setUserName(userInfo.get("userName").toString());
sysUser.setNickName(userInfo.get("name").toString()); sysUser.setNickName(userInfo.get("name").toString());
sysUser.setPhonenumber(userInfo.get("mobile").toString()); sysUser.setPhonenumber(userInfo.get("mobile").toString());
loginUser.setSysUser(sysUser); loginUser.setSysUser(sysUser);
loginUser = createUser(sysUser,loginUser); createUser(sysUser,loginUser);
} }
return loginUser;
} }
} }

View File

@ -7,6 +7,7 @@ import com.bonus.common.core.exception.CaptchaException;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.utils.VerificationCodeUtils; import com.bonus.common.core.utils.VerificationCodeUtils;
import com.bonus.common.core.utils.sms.SmsConfig;
import com.bonus.common.core.utils.sms.SmsUtils; import com.bonus.common.core.utils.sms.SmsUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.redis.service.RedisService; import com.bonus.common.redis.service.RedisService;
@ -41,6 +42,9 @@ public class SysPasswordService {
@Resource @Resource
private RemoteConfigService configService; private RemoteConfigService configService;
@Resource
private SmsConfig smsConfig;
/** /**
* 登录账户密码错误次数缓存键名 * 登录账户密码错误次数缓存键名
* *
@ -107,7 +111,7 @@ public class SysPasswordService {
String code = VerificationCodeUtils.generateVerificationCode(VerificationCodeUtils.CodeType.NUMERIC); String code = VerificationCodeUtils.generateVerificationCode(VerificationCodeUtils.CodeType.NUMERIC);
String str = "您的验证码为" + code + "尊敬的客户以上验证码3分钟有效微服务平台提醒您转发可能导致账号被盗请勿将验证码泄露于他人"; String str = "您的验证码为" + code + "尊敬的客户以上验证码3分钟有效微服务平台提醒您转发可能导致账号被盗请勿将验证码泄露于他人";
String verifyKey = CacheConstants.VERIFICATION_CODE + phone; String verifyKey = CacheConstants.VERIFICATION_CODE + phone;
String s = SmsUtils.smsToken(phone, str, ""); String s = SmsUtils.smsToken(smsConfig, phone, str, "");
if (StringUtils.isNotEmpty(s)) { if (StringUtils.isNotEmpty(s)) {
if (s.contains("ok")) { if (s.contains("ok")) {
redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); redisService.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);

View File

@ -8,16 +8,12 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
username: nacos
password: nacos
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
username: nacos
password: nacos
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -1,27 +0,0 @@
# Tomcat
server:
port: 58081
# Spring
spring:
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#加密组件
jasypt:
encryptor:
password: Encrypt

View File

@ -1,16 +1,23 @@
package com.bonus.common.core.utils.sms; package com.bonus.common.core.utils.sms;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "sms-config")
@Data
public class SmsConfig { public class SmsConfig {
public static final String DOMAIN = "http://api.ktsms.cn/"; private String domain;
public static final String DDT_KEY = "bonusyn"; private String ddtKey;
public static final String SECRET_KEY = "IU0ypHbH"; private String securityKey;
public static final String SMS_SIGNATURE = "【博诺思】"; private String signature;
public static final String SMS_TOKEN = "sms_token"; private String smsToken;
} }

View File

@ -3,6 +3,7 @@ package com.bonus.common.core.utils.sms;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.bonus.common.core.utils.http.HttpRequestHelper; import com.bonus.common.core.utils.http.HttpRequestHelper;
import javax.annotation.Resource;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -16,18 +17,18 @@ public class SmsUtils {
* @param sendTime 为空表示立即发送定时发送格式20101024090810 * @param sendTime 为空表示立即发送定时发送格式20101024090810
* @return 是否发送成功 * @return 是否发送成功
*/ */
public static String smsToken(String mobile, String content, String sendTime) { public static String smsToken(SmsConfig smsConfig, String mobile, String content, String sendTime) {
Map<String, String> headers = new HashMap<>(); Map<String, String> headers = new HashMap<>();
Map<String, Object> mapJson = new HashMap<>(6); Map<String, Object> mapJson = new HashMap<>(6);
mapJson.put("ddtkey", SmsConfig.DDT_KEY); mapJson.put("ddtkey", smsConfig.getDdtKey());
mapJson.put("secretkey", SmsConfig.SECRET_KEY); mapJson.put("secretkey", smsConfig.getSecurityKey());
mapJson.put("mobile", mobile); mapJson.put("mobile", mobile);
mapJson.put("content", SmsConfig.SMS_SIGNATURE + content); mapJson.put("content", smsConfig.getSignature() + content);
mapJson.put("sendTime", sendTime); mapJson.put("sendTime", sendTime);
mapJson.put("extno", ""); mapJson.put("extno", "");
// 将mapJson转换为URL查询参数格式 // 将mapJson转换为URL查询参数格式
StringBuilder urlBuilder = new StringBuilder(SmsConfig.SMS_TOKEN + "?"); StringBuilder urlBuilder = new StringBuilder(smsConfig.getSmsToken() + "?");
for (Map.Entry<String, Object> entry : mapJson.entrySet()) { for (Map.Entry<String, Object> entry : mapJson.entrySet()) {
try { try {
String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8"); String encodedKey = URLEncoder.encode(entry.getKey(), "UTF-8");
@ -43,6 +44,6 @@ public class SmsUtils {
String urlWithParams = urlBuilder.toString(); String urlWithParams = urlBuilder.toString();
String json = JSON.toJSONString(mapJson); String json = JSON.toJSONString(mapJson);
return HttpRequestHelper.postJson(SmsConfig.DOMAIN, urlWithParams, json, headers); return HttpRequestHelper.postJson(smsConfig.getDomain(), urlWithParams, json, headers);
} }
} }

View File

@ -186,7 +186,7 @@ public class DateUtilsTest {
@Test @Test
public void testGetMonthOrDay() { public void testGetMonthOrDay() {
String monthOrDay = DateUtils.getMonthOrDay(28, "/"); String monthOrDay = DateUtils.getMonthOrDay(30, "/");
assertNotNull(monthOrDay); assertNotNull(monthOrDay);
assertTrue(monthOrDay.matches("\\d{2}/\\d{2}")); assertTrue(monthOrDay.matches("\\d{2}/\\d{2}"));
} }

View File

@ -4,6 +4,7 @@ import com.bonus.common.core.constant.CacheConstants;
import com.bonus.common.core.exception.CaptchaException; import com.bonus.common.core.exception.CaptchaException;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.utils.VerificationCodeUtils; import com.bonus.common.core.utils.VerificationCodeUtils;
import com.bonus.common.core.utils.sms.SmsConfig;
import com.bonus.common.core.utils.sms.SmsUtils; import com.bonus.common.core.utils.sms.SmsUtils;
import com.bonus.common.redis.service.RedisService; import com.bonus.common.redis.service.RedisService;
import com.bonus.common.security.config.VerificationCodeConfig; import com.bonus.common.security.config.VerificationCodeConfig;
@ -22,6 +23,8 @@ public class SmsService {
@Resource @Resource
private VerificationCodeConfig verificationCodeConfig; private VerificationCodeConfig verificationCodeConfig;
@Resource @Resource
private SmsConfig smsConfig;
@Resource
private RedisService redisService; private RedisService redisService;
/** /**
@ -37,7 +40,7 @@ public class SmsService {
String code = VerificationCodeUtils.generateVerificationCode(NUMERIC); String code = VerificationCodeUtils.generateVerificationCode(NUMERIC);
String str = verificationCodeConfig.getContent().replace("<code>", code); String str = verificationCodeConfig.getContent().replace("<code>", code);
str = str.replace("<time>", verificationCodeConfig.getTime().toString()); str = str.replace("<time>", verificationCodeConfig.getTime().toString());
String s = SmsUtils.smsToken(to, str, ""); String s = SmsUtils.smsToken(smsConfig, to, str, "");
if (StringUtils.isNotEmpty(s)) { if (StringUtils.isNotEmpty(s)) {
if (s.contains("ok")) { if (s.contains("ok")) {
String verifyKey = CacheConstants.VERIFICATION_CODE + StringUtils.nvl(to, ""); String verifyKey = CacheConstants.VERIFICATION_CODE + StringUtils.nvl(to, "");

View File

@ -1,6 +1,7 @@
com.bonus.common.security.config.MyFilter com.bonus.common.security.config.MyFilter
com.bonus.common.security.config.WebMvcConfig com.bonus.common.security.config.WebMvcConfig
com.bonus.common.security.config.VerificationCodeConfig com.bonus.common.security.config.VerificationCodeConfig
com.bonus.common.core.utils.sms.SmsConfig
com.bonus.common.security.service.TokenService com.bonus.common.security.service.TokenService
com.bonus.common.security.service.SmsService com.bonus.common.security.service.SmsService
com.bonus.common.security.service.EmailService com.bonus.common.security.service.EmailService

View File

@ -52,7 +52,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- SpringCloud Loadbalancer --> <!-- SpringCloud Loadbalancer -->
<dependency> <dependency>

View File

@ -7,16 +7,12 @@ spring:
nacos: nacos:
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
username: nacos
password: nacos
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
username: nacos
password: nacos
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置
@ -27,13 +23,13 @@ spring:
eager: true eager: true
transport: transport:
# 控制台地址 # 控制台地址
dashboard: 192.168.0.16:18858 dashboard: 192.168.0.14:18858
# nacos配置持久化 # nacos配置持久化
datasource: datasource:
ds1: ds1:
nacos: nacos:
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
dataId: sentinel-bonus-gateway dataId: sentinel-bonus-gateway
groupId: DEFAULT_GROUP groupId: DEFAULT_GROUP
data-type: json data-type: json

View File

@ -1,43 +0,0 @@
# Tomcat
server:
port: 58080
# Spring
spring:
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
sentinel:
# 取消控制台懒加载
eager: true
transport:
# 控制台地址
dashboard: 127.0.0.1:18858
# nacos配置持久化
datasource:
ds1:
nacos:
server-addr: 127.0.0.1:8848
namespace: sgzb_bns
dataId: sentinel-bonus-gateway
groupId: DEFAULT_GROUP
data-type: json
rule-type: gw-flow
#加密组件
jasypt:
encryptor:
password: Encrypt

View File

@ -36,10 +36,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<!--<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>--> </dependency>
<!-- FastDFS --> <!-- FastDFS -->
<dependency> <dependency>

View File

@ -36,7 +36,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- FastDFS --> <!-- FastDFS -->
<dependency> <dependency>

View File

@ -6,16 +6,14 @@ server:
spring: spring:
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.14:8848
namespace: bonus-ai namespace: f648524d-0a7b-449e-8f92-64e05236fd51
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -1,21 +0,0 @@
# Tomcat
server:
port: 59300
# Spring
spring:
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

View File

@ -36,7 +36,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI --> <!-- Swagger UI -->
<dependency> <dependency>

View File

@ -36,6 +36,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- Swagger UI --> <!-- Swagger UI -->
<dependency> <dependency>
@ -79,10 +83,6 @@
<artifactId>jasypt-spring-boot-starter</artifactId> <artifactId>jasypt-spring-boot-starter</artifactId>
<version>${jasypt-spring-boot-starter.version}</version> <version>${jasypt-spring-boot-starter.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.bonus</groupId>
<artifactId>bonus-api-system</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -42,10 +42,10 @@
</dependency> </dependency>
<!-- SpringBoot Actuator --> <!-- SpringBoot Actuator -->
<!-- <dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>--> </dependency>
<!-- Swagger UI --> <!-- Swagger UI -->
<dependency> <dependency>

View File

@ -8,6 +8,7 @@ import com.bonus.common.core.utils.SpringUtils;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.utils.bean.BeanValidators; import com.bonus.common.core.utils.bean.BeanValidators;
import com.bonus.common.core.utils.encryption.Sm4Utils; import com.bonus.common.core.utils.encryption.Sm4Utils;
import com.bonus.common.core.utils.sms.SmsConfig;
import com.bonus.common.core.utils.sms.SmsUtils; import com.bonus.common.core.utils.sms.SmsUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.domain.BaseEntity; import com.bonus.common.core.web.domain.BaseEntity;
@ -77,6 +78,9 @@ public class SysUserServiceImpl implements ISysUserService {
@Resource @Resource
private VerificationCodeConfig verificationCodeConfig; private VerificationCodeConfig verificationCodeConfig;
@Resource
private SmsConfig smsConfig;
@Autowired @Autowired
private JavaMailSender mailSender; // 自动注入JavaMailSender用于发送邮件 private JavaMailSender mailSender; // 自动注入JavaMailSender用于发送邮件
@ -603,7 +607,7 @@ public class SysUserServiceImpl implements ISysUserService {
Integer i = userMapper.approvalStatus(userId); Integer i = userMapper.approvalStatus(userId);
if (i > 0) { if (i > 0) {
if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) { if (StringUtils.isNotEmpty(sysUser.getPhonenumber())) {
SmsUtils.smsToken(sysUser.getPhonenumber(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统", ""); SmsUtils.smsToken(smsConfig, sysUser.getPhonenumber(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统", "");
} }
if (StringUtils.isNotEmpty(sysUser.getEmail())) { if (StringUtils.isNotEmpty(sysUser.getEmail())) {
sendSimpleEmail(sysUser.getEmail(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统"); sendSimpleEmail(sysUser.getEmail(), "您的账号:" + sysUser.getUserName() + "已通过审批,请登录系统");

View File

@ -1,26 +0,0 @@
# Tomcat
server:
port: 58082
# Spring
spring:
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
config:
# 配置中心地址
server-addr: 127.0.0.1:8848
namespace: jyy_canteen
# 配置文件格式
file-extension: yml
# 共享配置
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
#加密组件
jasypt:
encryptor:
password: Encrypt

View File

@ -96,7 +96,6 @@
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_role ur on u.user_id = ur.user_id left join sys_user_role ur on u.user_id = ur.user_id
left join sys_role r on r.role_id = ur.role_id left join sys_role r on r.role_id = ur.role_id
left join sys_dept sd on r.company_id = sd.dept_id
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
@ -214,11 +213,11 @@
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult"> <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where u.del_flag = '0' AND u.user_name = #{userName} where u.del_flag = '0'AND u.user_name = #{userName}
</select> </select>
<select id="selectUserByPhoneNumber" resultMap="SysUserResult"> <select id="selectUserByPhoneNumber" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>
where u.del_flag = '0'AND u.phonenumber = #{phoneNumber} AND sd.del_flag = '0' AND sd.status = '0' where u.del_flag = '0'AND u.phonenumber = #{phoneNumber}
</select> </select>
<select id="selectUserByEmail" resultMap="SysUserResult"> <select id="selectUserByEmail" resultMap="SysUserResult">
<include refid="selectUserVo"/> <include refid="selectUserVo"/>

View File

@ -21,12 +21,6 @@
<groupId>de.codecentric</groupId> <groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId> <artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin.version}</version> <version>${spring-boot-admin.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<!-- SpringCloud Alibaba Nacos --> <!-- SpringCloud Alibaba Nacos -->

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
export deploy_path=/data/ceshi/gqk/Bonus-Cloud export deploy_path=/opt/webapps/bonus-cloud
export app_workspace=/home/jenkins/workspace/Bonus-Cloud export app_workspace=/home/jenkins/workspace/Bonus-Cloud
@ -12,15 +12,15 @@ app_source_jars=(
"bonus-modules/bonus-gen/target/bonus-gen.jar" "bonus-modules/bonus-gen/target/bonus-gen.jar"
"bonus-modules/bonus-face/target/bonus-face.jar" "bonus-modules/bonus-face/target/bonus-face.jar"
"bonus-modules/bonus-job/target/bonus-job.jar" "bonus-modules/bonus-job/target/bonus-job.jar"
"bonus-modules/bonus-oss/target/bonus-oss.jar"
"bonus-modules/bonus-system/target/bonus-system.jar" "bonus-modules/bonus-system/target/bonus-system.jar"
"bonus-visual/bonus-monitor/target/bonus-visual-monitor.jar" "bonus-visual/bonus-monitor/target/bonus-visual-monitor.jar"
) )
for source_jar in "${app_source_jars[@]}"; do for source_jar in "${app_source_jars[@]}"; do
scp -P 22 -r root@192.168.0.56:${app_workspace}/${source_jar} $deploy_path cp -f ${app_workspace}/${source_jar} $deploy_path
echo "copied ${app_workspace}/${source_jar} to $deploy_path" echo "copied ${app_workspace}/${source_jar} to $deploy_path"
done done
# Define an array of JAR files to run # Define an array of JAR files to run
jars=("bonus-auth.jar --spring.config.location=file:auth_bootstrap.yml" jars=("bonus-auth.jar --spring.config.location=file:auth_bootstrap.yml"
"bonus-gateway.jar --spring.config.location=file:gateway_bootstrap.yml" "bonus-gateway.jar --spring.config.location=file:gateway_bootstrap.yml"
@ -60,7 +60,7 @@ cd $deploy_path || { echo "Failed to change directory to $deploy_path"; exit 1;
# Iterate over the JAR files array # Iterate over the JAR files array
for jar in "${jars[@]}"; do for jar in "${jars[@]}"; do
echo "Starting $jar" echo "Starting $jar"
nohup java -jar $jar >/dev/null 2>&1 & nohup /usr/lib/jvm/jdk1.8.0_381/bin/java -jar $jar >/dev/null 2>&1 &
done done
echo "All JARs have been run successfully." echo "All JARs have been run successfully."

10
scripts/face_bootstrap.yml Executable file → Normal file
View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -13,16 +13,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -1,36 +1,49 @@
#!/bin/bash P_ID=$(pgrep -f BonusAuthApplication)
if [ -z "$P_ID" ]; then
echo "BonusAuthApplication is not running"
else
kill -9 "$P_ID"
fi
# Define an array of JAR files to run P_ID=$(pgrep -f BonusFileApplication)
jars=("bonus-auth.jar --spring.config.location=file:auth_bootstrap.yml" if [ -z "$P_ID" ]; then
"bonus-gateway.jar --spring.config.location=file:gateway_bootstrap.yml" echo "BonusFileApplication is not running"
"bonus-system.jar --spring.config.location=file:system_bootstrap.yml" else
"bonus-gen.jar --spring.config.location=file:gen_bootstrap.yml" kill -9 "$P_ID"
"bonus-job.jar --spring.config.location=file:job_bootstrap.yml" fi
"bonus-file.jar --spring.config.location=file:file_bootstrap.yml"
"bonus-visual-monitor.jar --spring.config.location=file:visual_bootstrap.yml"
"bonus-face.jar --spring.config.location=file:face_bootstrap.yml")
# 遍历数组并检查每个JAR文件的进程 P_ID=$(pgrep -f BonusGatewayApplication)
for jar_with_args in "${jars[@]}"; do if [ -z "$P_ID" ]; then
# 提取JAR文件名不包括参数 echo "BonusGatewayApplication is not running"
jar=$(echo $jar_with_args | awk '{print $1}') else
kill -9 "$P_ID"
fi
P_ID=$(pgrep -f BonusGenApplication)
if [ -z "$P_ID" ]; then
echo "BonusGenApplication is not running"
else
kill -9 "$P_ID"
fi
P_ID=$(pgrep -f BonusJobApplication)
if [ -z "$P_ID" ]; then
echo "BonusJobApplication is not running"
else
kill -9 "$P_ID"
fi
P_ID=$(pgrep -f BonusMonitorApplication)
if [ -z "$P_ID" ]; then
echo "BonusMonitorApplication is not running"
else
kill -9 "$P_ID"
fi
P_ID=$(pgrep -f BonusSystemApplication)
if [ -z "$P_ID" ]; then
echo "BonusSystemApplication is not running"
else
kill -9 "$P_ID"
fi
# 检查进程是否启动
echo "原应用程序1 $jar "
pids=$(pgrep -f $jar || true)
echo "原应用程序2 $jar "
if [ -n "$pids" ]; then
echo "$jar is running with PID(s): $pids"
# 杀死进程
for pid in $pids; do
kill -9 $pid
if [ $? -eq 0 ]; then
echo "Process $pid for $jar killed successfully"
else
echo "Failed to kill process $pid for $jar"
fi
done
else
echo "$jar is not running"
fi
done

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置

View File

@ -12,16 +12,14 @@ spring:
active: dev active: dev
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
# 服务注册地址 # 服务注册地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
config: config:
# 配置中心地址 # 配置中心地址
server-addr: 192.168.0.16:18848 server-addr: 192.168.0.56:8848
namespace: 0498f4fe-8430-4d43-acfe-f0cdf9a91df4 namespace: 9cde1ce1-98bc-4b9c-9213-f1fbf8a5b3cc
# 配置文件格式 # 配置文件格式
file-extension: yml file-extension: yml
# 共享配置 # 共享配置