yonge 3 lat temu
rodzic
commit
75a636590d

+ 32 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -1,6 +1,10 @@
 package com.ym.mec.auth.core.filter;
 
 import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 import javax.servlet.FilterChain;
 import javax.servlet.ServletException;
@@ -20,6 +24,7 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.util.Assert;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.entity.SysUserDevice;
 import com.ym.mec.auth.service.SysUserDeviceService;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.security.SecurityConstants;
@@ -94,12 +99,34 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 		Authentication authentication = this.getAuthenticationManager().authenticate(authRequest);
 		
 		String deviceNum = request.getParameter(deviceNumParameter);
-		if (StringUtils.isNotBlank(deviceNum) && !StringUtils.equals("STUDENT", clientId)) {
+		if (StringUtils.isNotBlank(deviceNum)) {
 			// 检查设备
-			try {
-				sysUserDeviceService.bindDevice(userInfo.getSysUser().getId(), deviceNum);
-			} catch (Exception e) {
-				throw new BadCredentialsException("当前设备已绑定账号,请更换设备");
+			if (StringUtils.equals("STUDENT", clientId)) {
+				// 检查学生是否绑定了多个设备号
+				List<SysUserDevice> sysUserDeviceList = sysUserDeviceService.queryByUserId(userInfo.getSysUser().getId());
+
+				if (sysUserDeviceList == null) {
+					sysUserDeviceList = new ArrayList<SysUserDevice>();
+				}
+
+				List<String> deviceList = sysUserDeviceList.stream().map(t -> t.getDeviceNum()).collect(Collectors.toList());
+
+				if (!deviceList.contains(deviceNum)) {
+					if (deviceList.size() >= 5) {
+						throw new BadCredentialsException("当前账号绑定设备过多,请联系主教老师");
+					}
+					SysUserDevice sysUserDevice = new SysUserDevice();
+					sysUserDevice.setUserId(userInfo.getSysUser().getId());
+					sysUserDevice.setDeviceNum(deviceNum);
+					sysUserDevice.setBindTime(new Date());
+					sysUserDeviceService.insert(sysUserDevice);
+				}
+			} else {
+				try {
+					sysUserDeviceService.bindDevice(userInfo.getSysUser().getId(), deviceNum);
+				} catch (Exception e) {
+					throw new BadCredentialsException("当前设备已绑定账号,请更换设备");
+				}
 			}
 		}
 

+ 9 - 9
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/PhoneAuthenticationProvider.java

@@ -102,18 +102,18 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 			}
 			
 			if (StringUtils.isNotBlank(deviceNum)) {
-				if(StringUtils.equals("STUDENT", clientId)){
+				if (StringUtils.equals("STUDENT", clientId)) {
 					// 检查学生是否绑定了多个设备号
 					List<SysUserDevice> sysUserDeviceList = sysUserDeviceService.queryByUserId(user.getId());
-					
-					if(sysUserDeviceList == null){
+
+					if (sysUserDeviceList == null) {
 						sysUserDeviceList = new ArrayList<SysUserDevice>();
 					}
-					
+
 					List<String> deviceList = sysUserDeviceList.stream().map(t -> t.getDeviceNum()).collect(Collectors.toList());
-					
-					if(!deviceList.contains(deviceNum)){
-						if(deviceList.size() >= 5){
+
+					if (!deviceList.contains(deviceNum)) {
+						if (deviceList.size() >= 5) {
 							throw new BadCredentialsException("当前账号绑定设备过多,请联系主教老师");
 						}
 						SysUserDevice sysUserDevice = new SysUserDevice();
@@ -122,8 +122,8 @@ public class PhoneAuthenticationProvider extends AbstractAuthenticationProvider
 						sysUserDevice.setBindTime(new Date());
 						sysUserDeviceService.insert(sysUserDevice);
 					}
-					
-				}else{
+
+				} else {
 					// 检查老师端、教务端设备号
 					try {
 						sysUserDeviceService.bindDevice(user.getId(), deviceNum);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -314,7 +314,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 						originalMemberPaymentAmount = memberFee.getOriginalMonthFee().setScale(0, BigDecimal.ROUND_HALF_UP);
 						break;
 					case 6 :
-						memberPaymentAmount = memberFee.getGroupPurchaseYearFee().setScale(0, BigDecimal.ROUND_HALF_UP);
+						memberPaymentAmount = memberFee.getGroupPurchaseHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP);
 						originalMemberPaymentAmount = memberFee.getOriginalHalfYearFee().setScale(0, BigDecimal.ROUND_HALF_UP);
 						break;
 					case 12 :