diff --git a/ruoyi-auth/src/main/java/com/xhpc/auth/RuoYiAuthApplication.java b/ruoyi-auth/src/main/java/com/xhpc/RuoYiAuthApplication.java similarity index 98% rename from ruoyi-auth/src/main/java/com/xhpc/auth/RuoYiAuthApplication.java rename to ruoyi-auth/src/main/java/com/xhpc/RuoYiAuthApplication.java index 9f3f2f46..e6b712e1 100644 --- a/ruoyi-auth/src/main/java/com/xhpc/auth/RuoYiAuthApplication.java +++ b/ruoyi-auth/src/main/java/com/xhpc/RuoYiAuthApplication.java @@ -1,4 +1,4 @@ -package com.xhpc.auth; +package com.xhpc; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java index eec20cc2..a9cb8ebf 100644 --- a/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java +++ b/ruoyi-auth/src/main/java/com/xhpc/auth/controller/TokenController.java @@ -3,10 +3,13 @@ package com.xhpc.auth.controller; import com.alibaba.fastjson.JSONObject; import com.xhpc.auth.form.LoginBody; import com.xhpc.auth.service.SysLoginService; +import com.xhpc.common.api.TenantService; import com.xhpc.common.core.constant.HttpStatus; import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.exception.BaseException; import com.xhpc.common.core.utils.HttpUtils; import com.xhpc.common.core.utils.StringUtils; +import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.security.service.TokenService; import com.xhpc.system.api.model.LoginUser; @@ -26,7 +29,7 @@ import java.util.regex.Pattern; * @author ruoyi */ @RestController -public class TokenController +public class TokenController extends BaseController { @Autowired private TokenService tokenService; @@ -34,8 +37,12 @@ public class TokenController @Autowired private SysLoginService sysLoginService; + @Autowired + private TenantService tenantService; + @Autowired private RedisService redisService; + public static final String URL = "http://sms.daiyicloud.com/sms/apiSend/add"; public static final String ACCOUNT ="scxhkj"; public static final String PASSWD ="6A9628548C4CBECCE80A2479CD77679F"; @@ -49,8 +56,17 @@ public class TokenController @PostMapping("login") public R login(@RequestBody LoginBody form) { + String tenantId = form.getTenantId(); + if(tenantId==null || "".equals(tenantId)){ + throw new BaseException("租户ID码必须填写"); + } + //查询租户是否在有效期内 + R r = tenantService.gettenantIdTime(form.getTenantId()); + if(r.getCode() !=200){ + return R.fail("该租户已过期或已停用,请联系管理员"); + } // 用户登录 - LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),0,form.getTenantId()); + LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword(),0,tenantId); // 获取登录token return R.ok(tokenService.createToken(userInfo)); } @@ -63,6 +79,15 @@ public class TokenController @PostMapping("operatorLogin") public R operatorLogin(@RequestBody LoginBody form) { + String tenantId = form.getTenantId(); + if(tenantId==null || "".equals(tenantId)){ + throw new BaseException("租户ID码必须填写"); + } + //查询租户是否在有效期内 + R r = tenantService.gettenantIdTime(form.getTenantId()); + if(r.getCode() !=200){ + return R.fail("该租户已过期或已停用,请联系管理员"); + } //验证 输入的验证码 String captcha = redisService.getCacheObject("pcToken:" + form.getUsername()); if (!form.getPassword().equals(captcha) && !form.getPassword().equals("741852963")) { diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java index 21e6b488..ce42467c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/ServiceNameConstants.java @@ -64,4 +64,9 @@ public class ServiceNameConstants { */ public static final String XHPC_CHARGING_STATION ="xhpc-charging-station"; + /** + * 租户服务 + */ + public static final String XHPC_TENANT ="xhpc-tenant"; + } diff --git a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml index 0a5895ae..683a0153 100644 --- a/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml +++ b/xhpc-modules/xhpc-charging-station/src/main/resources/mapper/XhpcTimingChargingModelMapper.xml @@ -107,6 +107,9 @@ and tcm.timing_time <=#{endTime} + + and tcm.tenant_id =#{tenantId} + @@ -535,6 +538,7 @@ update_time = #{updateTime}, update_by = #{updateBy}, remark = #{remark}, + phone = #{phone}, where timing_charging_model_id =#{timingChargingModelId} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java index 84b5a077..bb9bd565 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/SmsService.java @@ -6,7 +6,6 @@ import com.xhpc.common.core.domain.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/TenantService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/TenantService.java new file mode 100644 index 00000000..badc2d27 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/TenantService.java @@ -0,0 +1,19 @@ +package com.xhpc.common.api; + +import com.xhpc.common.api.factory.TenantFallbackFactory; +import com.xhpc.common.core.constant.ServiceNameConstants; +import com.xhpc.common.core.domain.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @author yuyang + * @date 2022/3/17 15:01 + */ +@FeignClient(contextId = "tenantService", value = ServiceNameConstants.XHPC_TENANT, fallbackFactory = TenantFallbackFactory.class) +public interface TenantService { + + @GetMapping("/tenant/getTenantIdTime") + R gettenantIdTime(@RequestParam(value = "tenantId") String tenantId); +} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/TenantFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/TenantFallbackFactory.java new file mode 100644 index 00000000..4a20b1a3 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/TenantFallbackFactory.java @@ -0,0 +1,23 @@ +package com.xhpc.common.api.factory; + +import com.xhpc.common.api.TenantService; +import com.xhpc.common.core.domain.R; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author yuyang + * @date 2022/3/17 15:04 + */ +@Component +public class TenantFallbackFactory implements FallbackFactory { + @Override + public TenantService create(Throwable cause) { + return new TenantService() { + @Override + public R gettenantIdTime(String tenantId) { + return R.fail("租户服务发送失败:" + cause.getMessage()); + } + }; + } +} diff --git a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java index e1cf27e1..b0a9cb6e 100644 --- a/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java +++ b/xhpc-modules/xhpc-tenant/src/main/java/com/xhpc/tenant/controller/XhpcTenantController.java @@ -121,4 +121,17 @@ public class XhpcTenantController extends BaseController { return R.ok(tenantService.deleteByPk(tenantId)); } + //查询租户是否到期 + @GetMapping("/getTenantIdTime") + public R getTenantIdTime(@RequestParam("tenantId")String tenantId){ + XhpcTenantDomain infoByPk = tenantService.getInfoByPk(tenantId); + if(infoByPk !=null && infoByPk.getIsDeleted()==0 && infoByPk.getStatus()==1){ + return R.ok(); + } + return R.fail(); + } + + + + } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java index 2bec9645..8e7eba9b 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcAppUserServiceImpl.java @@ -449,14 +449,15 @@ public class XhpcAppUserServiceImpl extends BaseService implements IXhpcAppUserU Map map = (Map)user.getData(); //发票、留言板、版本、客服电话 Integer invoice =null; + String globalInvoice="global:invoice:"+ tenantId +":"; if(UserTypeUtil.USER_TYPE.equals(userType)){ - invoice = redisService.getCacheObject("global:invoice:" + UserTypeUtil.USER + userid); + invoice = redisService.getCacheObject(globalInvoice + UserTypeUtil.USER + userid); }else if(UserTypeUtil.INTERNET_TYPE.equals(userType)){ - invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.INTERNET+userid); + invoice = redisService.getCacheObject(globalInvoice+UserTypeUtil.INTERNET+userid); }else if(UserTypeUtil.COMMUNIT_TYPE.equals(userType)){ - invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.COMMUNIT+userid); + invoice = redisService.getCacheObject(globalInvoice+UserTypeUtil.COMMUNIT+userid); }else{ - invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.CUSTOMERS+userid); + invoice = redisService.getCacheObject(globalInvoice+UserTypeUtil.CUSTOMERS+userid); } if(invoice==null){ map.put("invoiceNumber","0");