From b30fddd5f0983820364d1e9611a1d2e97264845e Mon Sep 17 00:00:00 2001 From: yuyang Date: Wed, 29 Dec 2021 17:03:09 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A4=BE=E5=8C=BA=E3=80=81B=E7=AB=AF?= =?UTF-8?q?=E5=A4=A7=E5=AE=A2=E6=88=B7=E8=B4=A6=E5=8F=B7=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/v2.1.sql | 18 ++++ .../com/xhpc/common/api/UserTypeService.java | 24 +++++ .../api/factory/UserTypeFallbackFactory.java | 28 ++++++ .../com/xhpc/common/util/UserTypeUtil.java | 26 ++++++ .../{general => }/XhpcGeneralApplication.java | 4 +- .../general/controller/XhpcSmsController.java | 26 +++++- .../user/controller/XhpcCommonController.java | 56 ++++++++++++ .../user/domain/XhpcCommunityPersonnel.java | 34 +++++++ .../user/domain/XhpcCustomersPersonnel.java | 33 +++++++ .../xhpc/user/mapper/XhpcCommonMapper.java | 28 ++++++ .../xhpc/user/service/IXhpcCommonService.java | 15 ++++ .../service/impl/XhpcCommonServiceImpl.java | 33 +++++++ .../resources/mapper/XhpcCommonMapper.xml | 90 +++++++++++++++++++ 13 files changed, 412 insertions(+), 3 deletions(-) create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java create mode 100644 xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java rename xhpc-modules/xhpc-general/src/main/java/com/xhpc/{general => }/XhpcGeneralApplication.java (92%) create mode 100644 xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java create mode 100644 xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java create mode 100644 xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java create mode 100644 xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java create mode 100644 xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml diff --git a/sql/v2.1.sql b/sql/v2.1.sql index 17bf48dd..66b1609a 100644 --- a/sql/v2.1.sql +++ b/sql/v2.1.sql @@ -45,3 +45,21 @@ CREATE TABLE `xhpc_tradebill_internet_check_record` ROW_FORMAT = DYNAMIC AUTO_INCREMENT = 34670 ; + +ALTER TABLE `xhpc_app_user` ADD COLUMN `is_refund` int(4) NULL DEFAULT 0 COMMENT '是否退款 0 不退款 1 退款' AFTER `soc`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `is_refund_application` int(10) NULL DEFAULT 0 COMMENT '是否有退款订单审核(0无 1有)' AFTER `is_refund`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `soc` int(10) NULL DEFAULT NULL COMMENT '用户设置的SOC' AFTER `is_refund_application`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像地址' AFTER `soc`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `weixin_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `avatar`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `alipay_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `weixin_open_id`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `weixin_login` int(10) NULL DEFAULT 0 COMMENT '微信是否登录(0未登录 1已登录)' AFTER `alipay_open_id`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `alipay_login` int(10) NULL DEFAULT 0 COMMENT '支付宝是否登录(0未登录 1已登录)' AFTER `weixin_login`; +ALTER TABLE `xhpc_community_personnel` ADD COLUMN `is_refund` int(4) NULL DEFAULT 0 COMMENT '是否退款 0 不退款 1 退款' AFTER `soc`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `is_refund_application` int(10) NULL DEFAULT 0 COMMENT '是否有退款订单审核(0无 1有)' AFTER `remark`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `soc` int(10) NULL DEFAULT NULL COMMENT '用户设置的SOC' AFTER `is_refund_application`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像地址' AFTER `soc`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `weixin_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `avatar`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `alipay_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `weixin_open_id`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `weixin_login` int(10) NULL DEFAULT 0 COMMENT '微信是否登录(0未登录 1已登录)' AFTER `alipay_open_id`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `alipay_login` int(10) NULL DEFAULT 0 COMMENT '支付宝是否登录(0未登录 1已登录)' AFTER `weixin_login`; +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `is_refund` int(4) NULL DEFAULT 0 COMMENT '是否退款 0 不退款 1 退款' AFTER `soc`; \ No newline at end of file diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java new file mode 100644 index 00000000..3afd835f --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java @@ -0,0 +1,24 @@ +package com.xhpc.common.api; + +import com.xhpc.common.api.factory.UserTypeFallbackFactory; +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 2021/12/29 10:23 + */ +@FeignClient(contextId ="userTypeService",value = ServiceNameConstants.XHPC_USER, fallbackFactory = UserTypeFallbackFactory.class) +public interface UserTypeService { + + /** + * 根据手机号(账号),用户id和类型 获取用户信息 + * @param + * @return + */ + @GetMapping("/common/getUser") + R getUser(@RequestParam(value = "phone")String phone,@RequestParam(value = "userId")Long userId,@RequestParam(value = "userType")Integer userType); +} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java new file mode 100644 index 00000000..a3331ea9 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java @@ -0,0 +1,28 @@ +package com.xhpc.common.api.factory; + +import com.xhpc.common.api.UserTypeService; +import com.xhpc.common.core.domain.R; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author yuyang + * @date 2021/12/29 10:27 + */ +@Component +public class UserTypeFallbackFactory implements FallbackFactory { + + private static final Logger logger = LoggerFactory.getLogger(UserTypeFallbackFactory.class); + @Override + public UserTypeService create(Throwable cause) { + logger.error("用户服务调用失败:{} //fallback", cause.getMessage()); + return new UserTypeService() { + @Override + public R getUser(String phone, Long userId, Integer userType) { + return R.fail("用户信息获取失败:" + cause.getMessage()); + } + }; + } +} diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java new file mode 100644 index 00000000..721a8785 --- /dev/null +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java @@ -0,0 +1,26 @@ +package com.xhpc.common.util; + +/** + * @author yuyang + * @date 2021/12/29 16:48 + */ +public class UserTypeUtil { + //c端用户 + public static final String USER = "C"; + //流量端用户 + public static final String INTERNET = "L"; + //社区端用户 + public static final String COMMUNIT = "ST"; + //B端大客户 + public static final String CUSTOMERS = "BE"; + + //c端用户 + public static final Integer USER_TYPE = 0; + //流量端用户 + public static final Integer INTERNET_TYPE = 1; + //社区端用户 + public static final Integer COMMUNIT_TYPE = 2; + //B端大客户 + public static final Integer CUSTOMERS_TYPE = 3; + +} diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/XhpcGeneralApplication.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/XhpcGeneralApplication.java similarity index 92% rename from xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/XhpcGeneralApplication.java rename to xhpc-modules/xhpc-general/src/main/java/com/xhpc/XhpcGeneralApplication.java index e2644ee5..e15486b7 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/XhpcGeneralApplication.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/XhpcGeneralApplication.java @@ -1,4 +1,4 @@ -package com.xhpc.general; +package com.xhpc; import com.xhpc.common.security.annotation.EnableCustomConfig; import com.xhpc.common.security.annotation.EnableRyFeignClients; @@ -6,12 +6,14 @@ import com.xhpc.common.swagger.annotation.EnableCustomSwagger2; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; @EnableCustomConfig @EnableCustomSwagger2 @EnableRyFeignClients @SpringBootApplication @MapperScan("com.xhpc.general.mapper") +@EnableScheduling public class XhpcGeneralApplication { public static void main(String[] args) { diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java index 44400c04..5ff6e502 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java @@ -1,8 +1,11 @@ package com.xhpc.general.controller; +import com.xhpc.common.api.UserTypeService; +import com.xhpc.common.core.domain.R; import com.xhpc.common.core.web.controller.BaseController; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.core.web.page.TableDataInfo; +import com.xhpc.common.util.UserTypeUtil; import com.xhpc.general.service.IXhpcSmsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -20,7 +23,8 @@ public class XhpcSmsController extends BaseController { @Autowired private IXhpcSmsService xhpcSmsService; - + @Autowired + private UserTypeService userTypeService; /** * 注册获取手机号验证码 */ @@ -33,7 +37,20 @@ public class XhpcSmsController extends BaseController { signatureName = "小华充电"; templateId = "SMS_226786362"; - return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId); + if(phone !=null || "".equals(phone)){ + if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ + //C端用户 + return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId); + }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) || UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ + R user = userTypeService.getUser(phone, null, null); + if(user !=null && user.getData() !=null){ + Map map = (Map)user.getData(); + return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId); + } + } + } + return AjaxResult.error("1003", "请输入正确的手机号或账号"); + } @GetMapping(value = "/getList") @@ -83,4 +100,9 @@ public class XhpcSmsController extends BaseController { Object messageInfo = xhpcSmsService.getAliyunShortMessageInfo(); return AjaxResult.success(messageInfo); } + + public static void main(String[] args) { + String phone="ST18123374"; + System.out.println(phone.substring(0,2)); + } } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java new file mode 100644 index 00000000..016cabb9 --- /dev/null +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java @@ -0,0 +1,56 @@ +package com.xhpc.user.controller; + +import com.xhpc.common.core.web.controller.BaseController; +import com.xhpc.common.core.web.domain.AjaxResult; +import com.xhpc.common.util.UserTypeUtil; +import com.xhpc.user.dto.MechanismDto; +import com.xhpc.user.service.IXhpcCommonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 公共的内 + * @author yuyang + * @date 2021/12/29 10:34 + */ +@RestController +@RequestMapping("/common") +public class XhpcCommonController extends BaseController { + + @Autowired + private IXhpcCommonService xhpcCommonService; + + /** + * 根据手机号(账号),用户id和类型 获取用户信息 + * @param + * @return + */ + @GetMapping(value = "/getUser") + public AjaxResult getMechanism(String phone,Long userId,Integer userType) { + + if(phone !=null || "".equals(phone)){ + if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ + //C端用户 + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,0)); + }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2))){ + //社区用户 + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,2)); + }else if (UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ + //大客户用户 + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,3)); + } + }else{ + return AjaxResult.success(xhpcCommonService.getLandUser(null,userId,userType)); + } + return AjaxResult.error(); + } + + + + +} diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCommunityPersonnel.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCommunityPersonnel.java index 33f4c9ea..5d8699f8 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCommunityPersonnel.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCommunityPersonnel.java @@ -2,6 +2,7 @@ package com.xhpc.user.domain; import com.xhpc.common.core.web.domain.BaseEntity; import lombok.Data; +import org.hibernate.validator.constraints.Length; import java.math.BigDecimal; @@ -35,4 +36,37 @@ public class XhpcCommunityPersonnel extends BaseEntity { private Integer status; private Integer delFlag; + + /** + * 是否有退款订单审核(0无 1有) + */ + private Integer isRefundApplication; + + private Integer soc; + + /** + * 头像地址 + */ + private String avatar; + /** + * weixin_open_id + */ + @Length(max = 50, message = "openId不能超过50位") + private String weixinOpenId; + + /** + * alipay_open_id + */ + @Length(max = 50, message = "openId不能超过50位") + private String alipayOpenId; + + /** + * 微信是否登录(0未登录 1已登录) + */ + private Integer weixinLogin; + + /** + * 支付宝是否登录(0未登录 1已登录) + */ + private Integer alipayLogin; } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCustomersPersonnel.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCustomersPersonnel.java index 2e08ad8e..2bf4cc10 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCustomersPersonnel.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/domain/XhpcCustomersPersonnel.java @@ -2,6 +2,7 @@ package com.xhpc.user.domain; import com.xhpc.common.core.web.domain.BaseEntity; import lombok.Data; +import org.hibernate.validator.constraints.Length; import java.math.BigDecimal; @@ -36,4 +37,36 @@ public class XhpcCustomersPersonnel extends BaseEntity { private Integer delFlag; + /** + * 是否有退款订单审核(0无 1有) + */ + private Integer isRefundApplication; + + private Integer soc; + + /** + * 头像地址 + */ + private String avatar; + /** + * weixin_open_id + */ + @Length(max = 50, message = "openId不能超过50位") + private String weixinOpenId; + + /** + * alipay_open_id + */ + @Length(max = 50, message = "openId不能超过50位") + private String alipayOpenId; + + /** + * 微信是否登录(0未登录 1已登录) + */ + private Integer weixinLogin; + + /** + * 支付宝是否登录(0未登录 1已登录) + */ + private Integer alipayLogin; } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java new file mode 100644 index 00000000..fcb9f490 --- /dev/null +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java @@ -0,0 +1,28 @@ +package com.xhpc.user.mapper; + +import org.apache.ibatis.annotations.Param; + +import java.util.Map; + +/** + * @author yuyang + * @date 2021/12/29 11:12 + */ +public interface XhpcCommonMapper { + + + /** + * C端用户信息 + */ + Map getAppUser(@Param("phone") String phone,@Param("userId")Long userId); + + /** + * 社区端用户信息 + */ + Map getCommunityUser(@Param("phone") String phone,@Param("userId")Long userId); + + /** + * B端用户信息 + */ + Map getCustomersUser(@Param("phone") String phone,@Param("userId")Long userId); +} diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java new file mode 100644 index 00000000..a4560349 --- /dev/null +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java @@ -0,0 +1,15 @@ +package com.xhpc.user.service; + +import java.util.Map; + +/** + * @author yuyang + * @date 2021/12/29 11:10 + */ +public interface IXhpcCommonService { + + /** + * 根据用户手机号获取用户信息 + */ + Map getLandUser(String phone,Long userId,Integer type); +} diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java new file mode 100644 index 00000000..9d6afb23 --- /dev/null +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java @@ -0,0 +1,33 @@ +package com.xhpc.user.service.impl; + +import com.xhpc.user.mapper.XhpcCommonMapper; +import com.xhpc.user.service.IXhpcCommonService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author yuyang + * @date 2021/12/29 11:11 + */ +@Service +public class XhpcCommonServiceImpl implements IXhpcCommonService { + + @Autowired + private XhpcCommonMapper xhpcCommonMapper; + + @Override + public Map getLandUser(String phone,Long userId, Integer type) { + if(type==0){ + return xhpcCommonMapper.getAppUser(phone,userId); + }else if(type==2){ + return xhpcCommonMapper.getCommunityUser(phone,userId); + }else if(type==3){ + return xhpcCommonMapper.getCustomersUser(phone,userId); + } + return new HashMap<>(); + } +} diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml new file mode 100644 index 00000000..31d71804 --- /dev/null +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + From f6e9fb371a723dbc6a812230a107be4205ccbb52 Mon Sep 17 00:00:00 2001 From: yuyang Date: Thu, 30 Dec 2021 14:16:07 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=9C=BA=E6=9E=84=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81=E7=94=A8=E6=88=B7=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E3=80=81=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95=E3=80=81=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xhpc/system/api/model/LoginUser.java | 13 ++ sql/v2.1.sql | 20 ++- .../general/controller/XhpcSmsController.java | 4 +- .../xhpc/general/service/IXhpcSmsService.java | 4 +- .../general/service/XhpcSmsServiceImpl.java | 34 ++-- .../user/controller/XhpcCommonController.java | 4 +- .../xhpc/user/mapper/XhpcAppUserMapper.java | 22 +++ .../user/service/IXhpcAppUserUserService.java | 3 +- .../service/impl/XhpcAppUserServiceImpl.java | 154 ++++++++++++++---- .../resources/mapper/XhpcAppUserMapper.xml | 75 +++++++++ 10 files changed, 287 insertions(+), 46 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java index 8a8a99a5..1ad4643f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java @@ -34,6 +34,11 @@ public class LoginUser implements Serializable */ private Integer userType; + /** + * 登录用户的openID + */ + private String openId; + /** * 登录时间 */ @@ -161,4 +166,12 @@ public class LoginUser implements Serializable public void setUserType(Integer userType) { this.userType = userType; } + + public String getOpenId() { + return openId; + } + + public void setOpenId(String openId) { + this.openId = openId; + } } diff --git a/sql/v2.1.sql b/sql/v2.1.sql index 66b1609a..043c2471 100644 --- a/sql/v2.1.sql +++ b/sql/v2.1.sql @@ -62,4 +62,22 @@ ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `weixin_open_id` varchar(50) ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `alipay_open_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL AFTER `weixin_open_id`; ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `weixin_login` int(10) NULL DEFAULT 0 COMMENT '微信是否登录(0未登录 1已登录)' AFTER `alipay_open_id`; ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `alipay_login` int(10) NULL DEFAULT 0 COMMENT '支付宝是否登录(0未登录 1已登录)' AFTER `weixin_login`; -ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `is_refund` int(4) NULL DEFAULT 0 COMMENT '是否退款 0 不退款 1 退款' AFTER `soc`; \ No newline at end of file +ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `is_refund` int(4) NULL DEFAULT 0 COMMENT '是否退款 0 不退款 1 退款' AFTER `soc`; + +CREATE TABLE `xhpc_user_login` ( + `user_login_id` bigint(20) NOT NULL AUTO_INCREMENT, + `app_user_id` bigint(20) DEFAULT NULL COMMENT '用户id', + `account` varchar(50) DEFAULT NULL COMMENT '账号', + `user_type` int(4) NOT NULL COMMENT '用户类型 0 C端用户 1 流量方用户 2社区用户 3B端用户)', + `open_id` varchar(50) DEFAULT NULL COMMENT 'openid', + `type` int(4) DEFAULT '0' COMMENT '1 微信 2支付宝', + `status` int(4) DEFAULT '1' COMMENT '0退出 1登录', + `del_flag` int(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`user_login_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='小程序用户最后一次登录记录'; + diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java index 5ff6e502..f212c41e 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java @@ -40,12 +40,12 @@ public class XhpcSmsController extends BaseController { if(phone !=null || "".equals(phone)){ if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ //C端用户 - return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId); + return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId,null); }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) || UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ R user = userTypeService.getUser(phone, null, null); if(user !=null && user.getData() !=null){ Map map = (Map)user.getData(); - return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId); + return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId,map.get("account").toString()); } } } diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java index 9b6c2abd..bbec71de 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/IXhpcSmsService.java @@ -20,7 +20,7 @@ public interface IXhpcSmsService { * @param phone * @return */ - AjaxResult getLogonPhoneCode(String phone, String signatureName, String templateId); + AjaxResult getLogonPhoneCode(String phone, String signatureName, String templateId,String account); List> getList(Integer status,String phone); @@ -35,7 +35,7 @@ public interface IXhpcSmsService { * @param paramMap 模板中的参数 * @return */ - AjaxResult send(String phone, String content, String random, String signatureName, String templateId, Map paramMap); + AjaxResult send(String phone, String content, String random, String signatureName, String templateId, Map paramMap,String account); /** * 发送通知短信方法 diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java index 4aebb25d..79799940 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/service/XhpcSmsServiceImpl.java @@ -48,13 +48,13 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService { @Override - public AjaxResult getLogonPhoneCode(String phone, String signatureName, String templateId) { + public AjaxResult getLogonPhoneCode(String phone, String signatureName, String templateId,String account) { String random = getRandom(); HashMap paramMap = new HashMap<>(); paramMap.put("code", random); String content = null; - return send(phone, content, random, signatureName, templateId, paramMap); + return send(phone, content, random, signatureName, templateId, paramMap,account); } @Override @@ -64,7 +64,7 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService { } @Override - public AjaxResult send(String phone, String content, String random, String signatureName, String templateId, Map paramMap) { + public AjaxResult send(String phone, String content, String random, String signatureName, String templateId, Map paramMap,String account) { //调用接口 String pattern = "^([1][0-9]{10})"; Pattern compile = Pattern.compile(pattern); @@ -76,14 +76,26 @@ public class XhpcSmsServiceImpl implements IXhpcSmsService { //添加短信记录 XhpcSms xhpcSms =new XhpcSms(); try { - //用户使用的Key - String pvToken = "pvToken:" + phone; - //用户频繁调用的判断的Key - String token = "token:" + phone; - String cacheObject = REDIS.getCacheObject(token); - System.out.println("过了redis"); - if (cacheObject != null) { - return AjaxResult.error("1012", "操作过于频繁,请于1分钟后重试"); + String pvToken =""; + String token =""; + if(account !=null){ + //用户使用的Key + pvToken = "pvToken:" + account; + //用户频繁调用的判断的Key + token = "token:" + account; + String cacheObject = REDIS.getCacheObject(token); + if (cacheObject != null) { + return AjaxResult.error("1012", "操作过于频繁,请于1分钟后重试"); + } + }else{ + //用户使用的Key + pvToken = "pvToken:" + phone; + //用户频繁调用的判断的Key + token = "token:" + phone; + String cacheObject = REDIS.getCacheObject(token); + if (cacheObject != null) { + return AjaxResult.error("1012", "操作过于频繁,请于1分钟后重试"); + } } //使用阿里云发送通知短信 Map neededParam = null; diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java index 016cabb9..d2bdff87 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java @@ -50,7 +50,9 @@ public class XhpcCommonController extends BaseController { return AjaxResult.error(); } - + /** + * 修改用户信息 + */ } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java index 27ad3c31..9e84dad4 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcAppUserMapper.java @@ -76,4 +76,26 @@ public interface XhpcAppUserMapper { int updateUserIsRefund(@Param("userId")Long userId, @Param("isRefund")Integer isRefund); int updateCommunityIsRefund(@Param("userId")Long userId, @Param("isRefund")Integer isRefund); + + /** + * 记录登录用户的最后一次数据 + */ + int addUserLoginTime(@Param("appUserId")Long appUserId, @Param("account")String account, @Param("userType")Integer userType, @Param("openId")String openId,@Param("type")Integer type,@Param("status")Integer status); + + /** + * 修改社区用户信息 + */ + int updateCommunityPersonnel(@Param("appUserId")Long appUserId,@Param("weixinOpenId")String weixinOpenId, @Param("alipayOpenId")String alipayOpenId,@Param("weixinLogin")Integer weixinLogin, @Param("alipayLogin")Integer alipayLogin); + /** + * 修改B端大客户信息 + */ + int updateCustomersPersonnel(@Param("appUserId")Long appUserId,@Param("weixinOpenId")String weixinOpenId, @Param("alipayOpenId")String alipayOpenId,@Param("weixinLogin")Integer weixinLogin, @Param("alipayLogin")Integer alipayLogin); + + /** + * 查询用户最后一次登录信息 + * @param type + * @param openid + * @return + */ + Map getUserLoginTime(@Param("type")Integer type,@Param("openid")String openid); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java index 7cbda087..87be4a99 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcAppUserUserService.java @@ -1,6 +1,7 @@ package com.xhpc.user.service; import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.user.domain.XhpcAppUser; import javax.servlet.http.HttpServletRequest; @@ -88,7 +89,7 @@ public interface IXhpcAppUserUserService { * @param * @return 结果 */ - public Map appInfo(HttpServletRequest request); + public AjaxResult appInfo(HttpServletRequest request); /** * 注销账号 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 a8254581..93320755 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 @@ -2,6 +2,7 @@ package com.xhpc.user.service.impl; import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateUtil; +import com.xhpc.common.api.UserTypeService; import com.xhpc.common.core.constant.HttpStatus; import com.xhpc.common.core.constant.StatusConstants; import com.xhpc.common.core.constant.UserConstants; @@ -9,8 +10,10 @@ import com.xhpc.common.core.domain.R; import com.xhpc.common.core.enums.UserStatus; import com.xhpc.common.core.utils.SecurityUtils; import com.xhpc.common.core.utils.StringUtils; +import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.redis.service.RedisService; import com.xhpc.common.security.service.TokenService; +import com.xhpc.common.util.UserTypeUtil; import com.xhpc.system.api.domain.SysUser; import com.xhpc.system.api.model.LoginUser; import com.xhpc.user.aspect.LogUserUtils; @@ -48,6 +51,9 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { @Autowired private LogUserUtils logUserUtils; + @Autowired + private UserTypeService userTypeService; + private static final Logger logger = LoggerFactory.getLogger(XhpcAppUserServiceImpl.class); /** @@ -209,6 +215,49 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { || username.length() > UserConstants.USERNAME_MAX_LENGTH) { return R.fail(HttpStatus.ERROR_STATUS, "用户名不在指定范围"); } + + //判断账号 + String sub = username.substring(0, 2); + if (UserTypeUtil.COMMUNIT.equals(sub) || UserTypeUtil.CUSTOMERS.equals(sub)){ + R user = userTypeService.getUser(username, null, null); + if(user !=null && user.getData() !=null){ + Map map = (Map)user.getData(); + LoginUser userInfo = new LoginUser(); + SysUser sysUser = new SysUser(); + sysUser.setUserName(username); + long appUserId = Long.parseLong(map.get("appUserId").toString()); + sysUser.setUserId(appUserId); + userInfo.setSysUser(sysUser); + userInfo.setUsername(username); + userInfo.setOpenId(openid); + if(UserTypeUtil.COMMUNIT.equals(username.substring(0,2))){ + userInfo.setUserType(UserTypeUtil.COMMUNIT_TYPE); + }else{ + userInfo.setUserType(UserTypeUtil.CUSTOMERS_TYPE); + } + if(UserTypeUtil.COMMUNIT.equals(sub)){ + if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { + xhpcAppUserMapper.updateCommunityPersonnel(appUserId,openid,null,UserConstants.LOGIN,null); + } else { + xhpcAppUserMapper.updateCommunityPersonnel(appUserId,null,openid,null,UserConstants.LOGIN); + } + }else{ + if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { + xhpcAppUserMapper.updateCustomersPersonnel(appUserId,openid,null,UserConstants.LOGIN,null); + } else { + xhpcAppUserMapper.updateCustomersPersonnel(appUserId,null,openid,null,UserConstants.LOGIN); + } + } + //添加最后一次登录数据 + xhpcAppUserMapper.addUserLoginTime(appUserId,username,userInfo.getUserType(),openid,Integer.valueOf(type),null); + + redisService.deleteObject("pvToken:" + username); + // 获取登录token + return R.ok(tokenService.createToken(userInfo)); + }else{ + return R.fail(HttpStatus.DATA_ERROR, "账号不正确,请重新输入"); + } + } // 查询用户信息 XhpcAppUser user = xhpcAppUserMapper.getAppUserByPhone(username); if (StringUtils.isNull(user)) { @@ -236,6 +285,10 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { sysUser.setUserName(user.getPhone()); sysUser.setUserId(user.getAppUserId()); userInfo.setSysUser(sysUser); + userInfo.setUserType(UserTypeUtil.USER_TYPE); + userInfo.setUsername(username); + userInfo.setOpenId(openid); + userInfo.setUserid(user.getAppUserId()); if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) { return R.fail(HttpStatus.DATA_ERROR, "对不起,您的账号:" + username + " 已被删除"); } @@ -255,6 +308,9 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { } xhpcAppUserMapper.update(user); redisService.deleteObject("pvToken:" + user.getPhone()); + + //添加最后一次登录数据 + xhpcAppUserMapper.addUserLoginTime(user.getAppUserId(),username,userInfo.getUserType(),openid,Integer.valueOf(type),UserConstants.LOGIN); // 获取登录token return R.ok(tokenService.createToken(userInfo)); } @@ -271,17 +327,43 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { LoginUser loginUser = tokenService.getLoginUser(request); if (StringUtils.isNotNull(loginUser)) { String username = loginUser.getUsername(); + Integer userType = loginUser.getUserType(); + Long userid = loginUser.getUserid(); + String openId = loginUser.getOpenId(); + R user = userTypeService.getUser(null, userid, userType); + if(user !=null && user.getData() !=null){ + if(UserTypeUtil.USER_TYPE==userType){ + XhpcAppUser appUser = xhpcAppUserMapper.getAppUserByPhone(username); + if (!StringUtils.isNull(appUser)) { + if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { + appUser.setWeixinLogin(UserConstants.NO_LOGIN); + } else { + appUser.setAlipayLogin(UserConstants.NO_LOGIN); + } + xhpcAppUserMapper.update(appUser); + //添加最后一次登录数据 + xhpcAppUserMapper.addUserLoginTime(appUser.getAppUserId(),username,userType,openId,Integer.valueOf(type),UserConstants.NO_LOGIN); + } + }else if(UserTypeUtil.COMMUNIT_TYPE==userType){ + if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { + xhpcAppUserMapper.updateCommunityPersonnel(userid,null,null,UserConstants.NO_LOGIN,null); + } else { + xhpcAppUserMapper.updateCommunityPersonnel(userid,null,null,null,UserConstants.NO_LOGIN); + } + //添加最后一次登录数据 + xhpcAppUserMapper.addUserLoginTime(userid,username,userType,openId,Integer.valueOf(type),UserConstants.NO_LOGIN); + }else if(UserTypeUtil.CUSTOMERS_TYPE==userType){ + if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { + xhpcAppUserMapper.updateCustomersPersonnel(userid,null,null,UserConstants.NO_LOGIN,null); + } else { + xhpcAppUserMapper.updateCustomersPersonnel(userid,null,null,null,UserConstants.NO_LOGIN); + } + //添加最后一次登录数据 + xhpcAppUserMapper.addUserLoginTime(userid,username,userType,openId,Integer.valueOf(type),UserConstants.NO_LOGIN); + } + } // 删除用户缓存记录 tokenService.delLoginUser(loginUser.getToken()); - XhpcAppUser user = xhpcAppUserMapper.getAppUserByPhone(username); - if (!StringUtils.isNull(user)) { - if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { - user.setWeixinLogin(UserConstants.NO_LOGIN); - } else { - user.setAlipayLogin(UserConstants.NO_LOGIN); - } - xhpcAppUserMapper.update(user); - } } return R.ok(); } @@ -296,39 +378,55 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { public R voluntaryLogin(Map map) { String type = StringUtils.valueOf(map.get("type")); String openid = StringUtils.valueOf(map.get("openid")); - XhpcAppUser user = xhpcAppUserMapper.getAppUserByOpenid(openid); - if (StringUtils.isNull(user)) { - return R.fail(HttpStatus.DATA_ERROR, "用户不存在"); + Map userLoginTime = xhpcAppUserMapper.getUserLoginTime(Integer.valueOf(type), openid); + if(userLoginTime ==null){ + return R.fail(HttpStatus.USER_LOGIN, "请重新登录"); } - if (StatusConstants.OPERATION_ALI_PAY_TYPE.equals(type)) { - if (UserConstants.NO_LOGIN == user.getAlipayLogin()) { - return R.fail(HttpStatus.USER_LOGIN, "用户未登录"); - } - } else if (StatusConstants.OPERATION_WX_TYPE.equals(type)) { - if (UserConstants.NO_LOGIN == user.getWeixinLogin()) { - return R.fail(HttpStatus.USER_LOGIN, "用户未登录"); - } + if(UserConstants.NO_LOGIN.equals(userLoginTime.get("status").toString())){ + return R.fail(HttpStatus.USER_LOGIN, "请重新登录"); } - return appLogin(user.getPhone(), type, openid); + return appLogin(userLoginTime.get("account").toString(), type, openid); } /** * 小程序用户详情 - * * @param * @return 结果 */ @Override - public Map appInfo(HttpServletRequest request) { + public AjaxResult appInfo(HttpServletRequest request) { LoginUser loginUser = logUserUtils.getLogUser(request); - String userId = StringUtils.valueOf(loginUser.getUserid()); Object version = redisService.getCacheObject("global:version"); Object servicePhone = redisService.getCacheObject("global:phone"); //根据不同的用户类型查询不同的信息 - Map result = xhpcAppUserMapper.info(Long.parseLong(userId)); - result.put("version",version); - result.put("servicePhone",servicePhone); - return result; + Long userid = loginUser.getUserid(); + Integer userType = loginUser.getUserType(); + R user = userTypeService.getUser(null, loginUser.getUserid(), loginUser.getUserType()); + if(user !=null && user.getData() !=null){ + Map map = (Map)user.getData(); + //发票、留言板、版本、客服电话 + Object invoice =null; + if(UserTypeUtil.USER_TYPE.equals(userType)){ + invoice = redisService.getCacheObject("global:invoice:" + UserTypeUtil.USER + userid); + }else if(UserTypeUtil.INTERNET_TYPE.equals(userType)){ + invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.INTERNET+userid); + }else if(UserTypeUtil.COMMUNIT_TYPE.equals(userType)){ + invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.COMMUNIT+userid); + }else{ + invoice = redisService.getCacheObject("global:invoice:"+UserTypeUtil.CUSTOMERS+userid); + } + if(invoice==null){ + map.put("invoiceNumber","0"); + }else{ + map.put("invoiceNumber",invoice); + } + map.put("guestbook","0"); + map.put("version",version); + map.put("servicePhone",servicePhone); + return AjaxResult.success(map); + }else{ + return AjaxResult.error("请重新登录"); + } } /** diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml index 69445eb4..cbebfca9 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcAppUserMapper.xml @@ -228,4 +228,79 @@ update xhpc_community_personnel set is_refund=#{isRefund} where community_personnel_id=#{userId} + + + INSERT INTO xhpc_user_login + + + app_user_id, + + + account, + + + user_type, + + + open_id, + + + type, + + + status, + + + + + #{appUserId}, + + + #{account}, + + + #{userType}, + + + #{openId}, + + + #{type}, + + + #{status}, + + + + + + UPDATE xhpc_community_personnel + + weixin_open_id = #{weixinOpenId}, + alipay_open_id = #{alipayOpenId}, + weixin_login = #{weixinLogin}, + alipay_login = #{alipayLogin}, + + WHERE community_personnel_id = #{appUserId} + + + UPDATE xhpc_customers_personnel + + weixin_open_id = #{weixinOpenId}, + alipay_open_id = #{alipayOpenId}, + weixin_login = #{weixinLogin}, + alipay_login = #{alipayLogin}, + + WHERE customers_personnel_id = #{appUserId} + + + \ No newline at end of file From 666ff5ad5a97bc20d603111d39e2d12fd6f9158d Mon Sep 17 00:00:00 2001 From: yuyang Date: Fri, 31 Dec 2021 09:23:41 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=9C=BA?= =?UTF-8?q?=E6=9E=84=E5=90=AF=E5=8A=A8=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xhpc/common/core/constant/HttpStatus.java | 5 +- .../com/xhpc/common/api/UserTypeService.java | 2 +- .../api/factory/UserTypeFallbackFactory.java | 2 +- .../com/xhpc/common/util/UserTypeUtil.java | 3 + .../general/controller/XhpcSmsController.java | 2 +- .../order/api/XhpcChargeOrderController.java | 5 +- .../service/IXhpcChargeOrderService.java | 3 +- .../impl/XhpcChargeOrderServiceImpl.java | 294 ++++++++++-------- .../user/controller/XhpcCommonController.java | 15 +- .../xhpc/user/mapper/XhpcCommonMapper.java | 4 +- .../xhpc/user/service/IXhpcCommonService.java | 2 +- .../service/impl/XhpcAppUserServiceImpl.java | 6 +- .../service/impl/XhpcCommonServiceImpl.java | 6 +- .../resources/mapper/XhpcCommonMapper.xml | 7 + 14 files changed, 203 insertions(+), 153 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/HttpStatus.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/HttpStatus.java index 54edd41e..768a5a0c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/HttpStatus.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/constant/HttpStatus.java @@ -112,5 +112,8 @@ public class HttpStatus */ public static final Integer ERROR_STATUS = 1010; - + /** + * 该账号已被绑定 + */ + public static final Integer ACCOUNT_BINDING = 1999; } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java index 3afd835f..c83715d0 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/UserTypeService.java @@ -20,5 +20,5 @@ public interface UserTypeService { * @return */ @GetMapping("/common/getUser") - R getUser(@RequestParam(value = "phone")String phone,@RequestParam(value = "userId")Long userId,@RequestParam(value = "userType")Integer userType); + R getUser(@RequestParam(value = "phone")String phone,@RequestParam(value = "userId")Long userId,@RequestParam(value = "userType")Integer userType,@RequestParam(value = "serialNumber")String serialNumber); } diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java index a3331ea9..2d845883 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/api/factory/UserTypeFallbackFactory.java @@ -20,7 +20,7 @@ public class UserTypeFallbackFactory implements FallbackFactory logger.error("用户服务调用失败:{} //fallback", cause.getMessage()); return new UserTypeService() { @Override - public R getUser(String phone, Long userId, Integer userType) { + public R getUser(String phone, Long userId, Integer userType,String serialNumber) { return R.fail("用户信息获取失败:" + cause.getMessage()); } }; diff --git a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java index 721a8785..3394ceb7 100644 --- a/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java +++ b/xhpc-modules/xhpc-common/src/main/java/com/xhpc/common/util/UserTypeUtil.java @@ -23,4 +23,7 @@ public class UserTypeUtil { //B端大客户 public static final Integer CUSTOMERS_TYPE = 3; + //重新登录 + public static final Integer LOGIN_TYPE = 1999; + } diff --git a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java index f212c41e..94f968b1 100644 --- a/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java +++ b/xhpc-modules/xhpc-general/src/main/java/com/xhpc/general/controller/XhpcSmsController.java @@ -42,7 +42,7 @@ public class XhpcSmsController extends BaseController { //C端用户 return xhpcSmsService.getLogonPhoneCode(phone, signatureName, templateId,null); }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) || UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ - R user = userTypeService.getUser(phone, null, null); + R user = userTypeService.getUser(phone, null, null, null); if(user !=null && user.getData() !=null){ Map map = (Map)user.getData(); return xhpcSmsService.getLogonPhoneCode(map.get("phone").toString(), signatureName, templateId,map.get("account").toString()); diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java index 86ae23de..01f923eb 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/api/XhpcChargeOrderController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.Calendar; import java.util.HashMap; @@ -71,10 +72,10 @@ public class XhpcChargeOrderController extends BaseController { * @return */ @GetMapping("/startUp") - public AjaxResult startUp(@RequestParam Long userId,@RequestParam String serialNumber,@RequestParam Integer type){ + public AjaxResult startUp(HttpServletRequest request, @RequestParam Long userId, @RequestParam String serialNumber, @RequestParam Integer type){ logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"); logger.info("<<<<<<<<<<<<<<<<<<<<<<<<启动充电>>>>>>>>>>>>>>>>>"); - return iXhpcChargeOrderService.startUp(userId, serialNumber, type); + return iXhpcChargeOrderService.startUp(request,userId, serialNumber, type); } diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcChargeOrderService.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcChargeOrderService.java index 63b345b5..4a94e5ee 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcChargeOrderService.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/IXhpcChargeOrderService.java @@ -7,6 +7,7 @@ import com.xhpc.order.domain.XhpcChargeOrder; import com.xhpc.order.domain.XhpcOrderRedisRecord; import org.apache.ibatis.annotations.Param; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -47,7 +48,7 @@ public interface IXhpcChargeOrderService { * @param serialNumber 终端编码 * @return */ - AjaxResult startUp(Long userId,String serialNumber,Integer type); + AjaxResult startUp(HttpServletRequest request, Long userId, String serialNumber, Integer type); /** * 停止充电 diff --git a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java index b679c100..a2b41aaa 100644 --- a/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java +++ b/xhpc-modules/xhpc-order/src/main/java/com/xhpc/order/service/impl/XhpcChargeOrderServiceImpl.java @@ -2,7 +2,9 @@ package com.xhpc.order.service.impl; import cn.hutool.core.date.DateUtil; import com.xhpc.common.api.PowerPileService; +import com.xhpc.common.api.UserTypeService; import com.xhpc.common.core.domain.R; +import com.xhpc.common.core.utils.StringUtils; import com.xhpc.common.core.web.domain.AjaxResult; import com.xhpc.common.data.down.StartChargingData; import com.xhpc.common.data.redis.CacheRealtimeData; @@ -10,11 +12,14 @@ import com.xhpc.common.data.redis.StaticBeanUtil; import com.xhpc.common.domain.XhpcRate; import com.xhpc.common.domain.XhpcTerminal; import com.xhpc.common.redis.service.RedisService; +import com.xhpc.common.security.service.TokenService; +import com.xhpc.common.util.UserTypeUtil; import com.xhpc.order.domain.XhpcChargeOrder; import com.xhpc.order.domain.XhpcOrderRedisRecord; import com.xhpc.order.mapper.XhpcChargeOrderMapper; import com.xhpc.order.mapper.XhpcInternetUserMapper; import com.xhpc.order.service.IXhpcChargeOrderService; +import com.xhpc.system.api.model.LoginUser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.*; import java.util.regex.Matcher; @@ -46,6 +52,10 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService { private RedisService redisService; @Autowired private XhpcInternetUserMapper xhpcInternetUserMapper; + @Autowired + private TokenService tokenService; + @Autowired + private UserTypeService userTypeService; private static final Logger logger = LoggerFactory.getLogger(XhpcChargeOrderServiceImpl.class); //队列名称 @@ -80,159 +90,181 @@ public class XhpcChargeOrderServiceImpl implements IXhpcChargeOrderService { @Override @Transactional - public AjaxResult startUp(Long userId, String terminalSerialNumber, Integer type) { + public AjaxResult startUp(HttpServletRequest request, Long userId, String terminalSerialNumber, Integer type) { - String pattern = "^([0-9]{16})"; - Pattern compile = Pattern.compile(pattern); - Matcher m = compile.matcher(terminalSerialNumber); - if (terminalSerialNumber.length() != 16 || !m.matches()) { - return AjaxResult.error(1104, "无效的终端编号"); - } - //查看充电用户金额是否大于5元 - Map userMessage = xhpcChargeOrderMapper.getUserMessage(userId); - BigDecimal a = new BigDecimal(5); - if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) { - return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电"); - } - //充电用户是否存在异常的订单 - int j = xhpcChargeOrderMapper.countXhpcChargeOrder(userId); - if (j > 0) { - return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决"); - } - //查看充电用户是否有申请退款的订单,还未处理 - if (Integer.parseInt(userMessage.get("isRefundApplication").toString()) != 0) { - return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款"); - } - //充电用户是否在充电中 - String i = xhpcChargeOrderMapper.countXhpcRealTimeOrder(userId); - if (!"".equals(i) && i!=null) { - return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息"); - } - //终端状态是否空闲 - //是否插枪 - Map cacheMap = REDIS.getCacheMap("gun:" + terminalSerialNumber); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>" + terminalSerialNumber); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>" + cacheMap.toString()); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>"); - - if(cacheMap==null){ - return AjaxResult.error(1105, "未注册的终端,请选择其他终端充电"); - }else{ - if(cacheMap.get("status") ==null){ - return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电"); - }else{ - String status = cacheMap.get("status").toString(); - //不同的状态 - if("离线".equals(status)||"故障".equals(status) ||"充电".equals(status)){ - return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电"); + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) { + String username = loginUser.getUsername(); + Integer userType = loginUser.getUserType(); + Long userid = loginUser.getUserid(); + String openId = loginUser.getOpenId(); + R user = userTypeService.getUser(null, userid, userType, terminalSerialNumber); + if(userId !=userid || user ==null || user.getData() ==null){ + return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录"); + } + Map userMessage = (Map)user.getData(); + if(UserTypeUtil.USER_TYPE !=userType){ + if(Integer.valueOf(userMessage.get("number").toString())==0){ + return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "此账号不能在该场站充电,请使用手机号登录"); } } - if(cacheMap.get("vehicleGunStatus") ==null){ - return AjaxResult.error(1108, "未知的枪状态,请选择其他终端充电"); + + + String pattern = "^([0-9]{16})"; + Pattern compile = Pattern.compile(pattern); + Matcher m = compile.matcher(terminalSerialNumber); + if (terminalSerialNumber.length() != 16 || !m.matches()) { + return AjaxResult.error(1104, "无效的终端编号"); + } + //查看充电用户金额是否大于5元 + //Map userMessage = xhpcChargeOrderMapper.getUserMessage(userId); + BigDecimal a = new BigDecimal(5); + if (userMessage == null || userMessage.get("balance") == null || a.compareTo(new BigDecimal(userMessage.get("balance").toString())) == 1) { + return AjaxResult.error(1100, "金额小于5元,不能充电,请充值后再进行充电"); + } + //充电用户是否存在异常的订单 + int j = xhpcChargeOrderMapper.countXhpcChargeOrder(userId); + if (j > 0) { + return AjaxResult.error(1103, "你有异常订单未解决,请拨打客服电话进行解决"); + } + //查看充电用户是否有申请退款的订单,还未处理 + if (Integer.parseInt(userMessage.get("isRefundApplication").toString()) != 0) { + return AjaxResult.error(1101, "你有申请退款订单在审核中,需要充电请取消申请退款"); + } + //充电用户是否在充电中 + String i = xhpcChargeOrderMapper.countXhpcRealTimeOrder(userId); + if (!"".equals(i) && i!=null) { + return AjaxResult.error(1102, "车辆正在充电,请查询车辆充电信息"); + } + //终端状态是否空闲 + //是否插枪 + Map cacheMap = REDIS.getCacheMap("gun:" + terminalSerialNumber); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>" + terminalSerialNumber); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>" + cacheMap.toString()); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>"); + + if(cacheMap==null){ + return AjaxResult.error(1105, "未注册的终端,请选择其他终端充电"); }else{ - String vehicleGunStatus = cacheMap.get("vehicleGunStatus").toString(); - if(!"是".equals(vehicleGunStatus)){ - return AjaxResult.error(1109, "请插好充电枪"); + if(cacheMap.get("status") ==null){ + return AjaxResult.error(1106, "未知的终端状态,请选择其他终端充电"); + }else{ + String status = cacheMap.get("status").toString(); + //不同的状态 + if("离线".equals(status)||"故障".equals(status) ||"充电".equals(status)){ + return AjaxResult.error(1107, "此终端"+status+"中,请选择其他终端充电"); + } + } + if(cacheMap.get("vehicleGunStatus") ==null){ + return AjaxResult.error(1108, "未知的枪状态,请选择其他终端充电"); + }else{ + String vehicleGunStatus = cacheMap.get("vehicleGunStatus").toString(); + if(!"是".equals(vehicleGunStatus)){ + return AjaxResult.error(1109, "请插好充电枪"); + } } } - } - //终端信息 - XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(terminalSerialNumber); - if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) { - return AjaxResult.error(1104, "无效的终端编号"); - } - //余额 - String balance = new BigDecimal(userMessage.get("balance").toString()).multiply(new BigDecimal(100)).toString(); + //终端信息 + XhpcTerminal xhpcTerminal = xhpcChargeOrderMapper.getXhpcTerminalSerialNumber(terminalSerialNumber); + if (xhpcTerminal == null || xhpcTerminal.getTerminalId() == null || xhpcTerminal.getChargingPileId() == null || xhpcTerminal.getPileSerialNumber() == null) { + return AjaxResult.error(1104, "无效的终端编号"); + } + //余额 + String balance = new BigDecimal(userMessage.get("balance").toString()).multiply(new BigDecimal(100)).toString(); - //获取桩信息 - Map xhpcChargingPileById =xhpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId()); + //获取桩信息 + Map xhpcChargingPileById =xhpcChargeOrderMapper.getXhpcChargingPileById(xhpcTerminal.getChargingPileId()); - //启动充电 - StartChargingData startChargingData = new StartChargingData(); - //订单流水号 终端号+年月日时分秒+自增4位 共32位 - String orderNo = genOrder(terminalSerialNumber); + //启动充电 + StartChargingData startChargingData = new StartChargingData(); + //订单流水号 终端号+年月日时分秒+自增4位 共32位 + String orderNo = genOrder(terminalSerialNumber); - startChargingData.setOrderNo(orderNo); - if(userMessage.get("phone") !=null){ - startChargingData.setTel(userMessage.get("phone").toString()); - } - startChargingData.setPileNo(xhpcTerminal.getPileSerialNumber()); - startChargingData.setGunId(xhpcTerminal.getSerialNumber().substring(14)); - startChargingData.setBalance(Double.valueOf(balance).intValue()); - if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){ - startChargingData.setVersion(xhpcChargingPileById.get("communicationProtocolVersion").toString()); - }else{ - startChargingData.setVersion("0A"); - } + startChargingData.setOrderNo(orderNo); + if(userMessage.get("phone") !=null){ + startChargingData.setTel(userMessage.get("phone").toString()); + } + startChargingData.setPileNo(xhpcTerminal.getPileSerialNumber()); + startChargingData.setGunId(xhpcTerminal.getSerialNumber().substring(14)); + startChargingData.setBalance(Double.valueOf(balance).intValue()); + if(xhpcChargingPileById.get("communicationProtocolVersion")!=null && !"".equals(xhpcChargingPileById.get("communicationProtocolVersion").toString())){ + startChargingData.setVersion(xhpcChargingPileById.get("communicationProtocolVersion").toString()); + }else{ + startChargingData.setVersion("0A"); + } - //用户、桩、平台(最小的) - int number =0; - if(!"".equals(userMessage.get("soc")) && userMessage.get("soc") !=null && !"".equals(userMessage.get("soc"))){ - number =Integer.parseInt(userMessage.get("soc").toString()); - } - //平台 - String soc = redisService.getCacheObject("global:SOC"); - if(!"".equals(soc) && soc!=null){ - if(number!=0){ - if(Integer.parseInt(soc)-number<0){ + //用户、桩、平台(最小的) + int number =0; + if(!"".equals(userMessage.get("soc")) && userMessage.get("soc") !=null && !"".equals(userMessage.get("soc"))){ + number =Integer.parseInt(userMessage.get("soc").toString()); + } + //平台 + String soc = redisService.getCacheObject("global:SOC"); + if(!"".equals(soc) && soc!=null){ + if(number!=0){ + if(Integer.parseInt(soc)-number<0){ + number=Integer.parseInt(soc); + } + }else{ number=Integer.parseInt(soc); } - }else{ - number=Integer.parseInt(soc); } - } - Map operatorMessage = xhpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId()); - if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){ - if(number!=0){ - if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){ + Map operatorMessage = xhpcChargeOrderMapper.getOperatorMessage(xhpcTerminal.getChargingStationId()); + if(operatorMessage !=null && operatorMessage.get("soc") !=null && !"".equals(operatorMessage.get("soc"))){ + if(number!=0){ + if(Integer.parseInt(operatorMessage.get("soc").toString())-number<0){ + number=Integer.parseInt(operatorMessage.get("soc").toString()); + } + }else{ number=Integer.parseInt(operatorMessage.get("soc").toString()); } - }else{ - number=Integer.parseInt(operatorMessage.get("soc").toString()); + + } + if(number !=0){ + startChargingData.setSoc(number); + } + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>:"+number); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>:"+startChargingData.getSoc()); + + R r1 = powerPileService.startCharging(startChargingData); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>"); + logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>"); + if (r1.getCode() != 200) { + return AjaxResult.error(r1.getMsg()); } - } - if(number !=0){ - startChargingData.setSoc(number); - } - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>:"+number); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>:"+startChargingData.getSoc()); - R r1 = powerPileService.startCharging(startChargingData); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<<充电返回>>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getCode() + ">>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getMsg() + ">>>>>>>>>>>>>>>>>"); - logger.info("<<<<<<<<<<<<<<<<<<<<<<<<" + r1.getData() + ">>>>>>>>>>>>>>>>>"); - if (r1.getCode() != 200) { - return AjaxResult.error(r1.getMsg()); - } + //创建充电订单(充电启动soc初始值,结束是获取,并修改状态) + XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder(); + xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId()); + xhpcChargeOrder.setUserId(userId); + xhpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId()); + xhpcChargeOrder.setGunId(xhpcTerminal.getSerialNumber()); + xhpcChargeOrder.setSerialNumber(orderNo); + xhpcChargeOrder.setSource(0); + xhpcChargeOrder.setStatus(-1); + if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) { + xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString()); + } + xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString())); + if (type == 1) { + xhpcChargeOrder.setChargingMode("微信"); + } else { + xhpcChargeOrder.setChargingMode("支付宝"); + } + xhpcChargeOrder.setCreateTime(Calendar.getInstance().getTime()); + xhpcChargeOrder.setType(40); + xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder); + return AjaxResult.success(); - //创建充电订单(充电启动soc初始值,结束是获取,并修改状态) - XhpcChargeOrder xhpcChargeOrder = new XhpcChargeOrder(); - xhpcChargeOrder.setChargingStationId(xhpcTerminal.getChargingStationId()); - xhpcChargeOrder.setUserId(userId); - xhpcChargeOrder.setTerminalId(xhpcTerminal.getTerminalId()); - xhpcChargeOrder.setGunId(xhpcTerminal.getSerialNumber()); - xhpcChargeOrder.setSerialNumber(orderNo); - xhpcChargeOrder.setSource(0); - xhpcChargeOrder.setStatus(-1); - if (xhpcChargingPileById != null && xhpcChargingPileById.get("power") != null) { - xhpcChargeOrder.setPower(xhpcChargingPileById.get("power").toString()); + }else{ + return AjaxResult.error(UserTypeUtil.LOGIN_TYPE, "请重新登录"); } - xhpcChargeOrder.setRateModelId(Long.valueOf(r1.getData().toString())); - if (type == 1) { - xhpcChargeOrder.setChargingMode("微信"); - } else { - xhpcChargeOrder.setChargingMode("支付宝"); - } - xhpcChargeOrder.setCreateTime(Calendar.getInstance().getTime()); - xhpcChargeOrder.setType(40); - xhpcChargeOrderMapper.addXhpcChargeOrder(xhpcChargeOrder); - - return AjaxResult.success(); } @Override diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java index d2bdff87..4ce0bc3d 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/controller/XhpcCommonController.java @@ -27,25 +27,28 @@ public class XhpcCommonController extends BaseController { /** * 根据手机号(账号),用户id和类型 获取用户信息 - * @param + * @param phone + * @param userId + * @param userType + * @param SerialNumber 桩号 * @return */ @GetMapping(value = "/getUser") - public AjaxResult getMechanism(String phone,Long userId,Integer userType) { + public AjaxResult getMechanism(String phone,Long userId,Integer userType,String serialNumber) { if(phone !=null || "".equals(phone)){ if(!UserTypeUtil.COMMUNIT.equals(phone.substring(0,2)) && !UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ //C端用户 - return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,0)); + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,0,serialNumber)); }else if (UserTypeUtil.COMMUNIT.equals(phone.substring(0,2))){ //社区用户 - return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,2)); + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,2,serialNumber)); }else if (UserTypeUtil.CUSTOMERS.equals(phone.substring(0,2))){ //大客户用户 - return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,3)); + return AjaxResult.success(xhpcCommonService.getLandUser(phone,null,3,serialNumber)); } }else{ - return AjaxResult.success(xhpcCommonService.getLandUser(null,userId,userType)); + return AjaxResult.success(xhpcCommonService.getLandUser(null,userId,userType,serialNumber)); } return AjaxResult.error(); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java index fcb9f490..e229d9cc 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/mapper/XhpcCommonMapper.java @@ -19,10 +19,10 @@ public interface XhpcCommonMapper { /** * 社区端用户信息 */ - Map getCommunityUser(@Param("phone") String phone,@Param("userId")Long userId); + Map getCommunityUser(@Param("phone") String phone,@Param("userId")Long userId,@Param("serialNumber")String serialNumber); /** * B端用户信息 */ - Map getCustomersUser(@Param("phone") String phone,@Param("userId")Long userId); + Map getCustomersUser(@Param("phone") String phone,@Param("userId")Long userId,@Param("serialNumber")String serialNumber); } diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java index a4560349..9718d4d9 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/IXhpcCommonService.java @@ -11,5 +11,5 @@ public interface IXhpcCommonService { /** * 根据用户手机号获取用户信息 */ - Map getLandUser(String phone,Long userId,Integer type); + Map getLandUser(String phone,Long userId,Integer type,String serialNumber); } 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 93320755..3ac96701 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 @@ -219,7 +219,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { //判断账号 String sub = username.substring(0, 2); if (UserTypeUtil.COMMUNIT.equals(sub) || UserTypeUtil.CUSTOMERS.equals(sub)){ - R user = userTypeService.getUser(username, null, null); + R user = userTypeService.getUser(username, null, null, null); if(user !=null && user.getData() !=null){ Map map = (Map)user.getData(); LoginUser userInfo = new LoginUser(); @@ -330,7 +330,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { Integer userType = loginUser.getUserType(); Long userid = loginUser.getUserid(); String openId = loginUser.getOpenId(); - R user = userTypeService.getUser(null, userid, userType); + R user = userTypeService.getUser(null, userid, userType, null); if(user !=null && user.getData() !=null){ if(UserTypeUtil.USER_TYPE==userType){ XhpcAppUser appUser = xhpcAppUserMapper.getAppUserByPhone(username); @@ -401,7 +401,7 @@ public class XhpcAppUserServiceImpl implements IXhpcAppUserUserService { //根据不同的用户类型查询不同的信息 Long userid = loginUser.getUserid(); Integer userType = loginUser.getUserType(); - R user = userTypeService.getUser(null, loginUser.getUserid(), loginUser.getUserType()); + R user = userTypeService.getUser(null, loginUser.getUserid(), loginUser.getUserType(), null); if(user !=null && user.getData() !=null){ Map map = (Map)user.getData(); //发票、留言板、版本、客服电话 diff --git a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java index 9d6afb23..f4851edb 100644 --- a/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java +++ b/xhpc-modules/xhpc-user/src/main/java/com/xhpc/user/service/impl/XhpcCommonServiceImpl.java @@ -20,13 +20,13 @@ public class XhpcCommonServiceImpl implements IXhpcCommonService { private XhpcCommonMapper xhpcCommonMapper; @Override - public Map getLandUser(String phone,Long userId, Integer type) { + public Map getLandUser(String phone,Long userId, Integer type,String serialNumber) { if(type==0){ return xhpcCommonMapper.getAppUser(phone,userId); }else if(type==2){ - return xhpcCommonMapper.getCommunityUser(phone,userId); + return xhpcCommonMapper.getCommunityUser(phone,userId,serialNumber); }else if(type==3){ - return xhpcCommonMapper.getCustomersUser(phone,userId); + return xhpcCommonMapper.getCustomersUser(phone,userId,serialNumber); } return new HashMap<>(); } diff --git a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml index 31d71804..3ce93bd9 100644 --- a/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml +++ b/xhpc-modules/xhpc-user/src/main/resources/mapper/XhpcCommonMapper.xml @@ -2,6 +2,7 @@ + @@ -49,6 +50,9 @@ alipay_login as alipayLogin, del_flag delFlag, concat(2) as userType, + + (select count(charging_station_id) from xhpc_mechanism where community_id=mechanism_id and source=0 and charging_station_id in (select charging_station_id from xhpc_terminal where 1=1 and del_flag=0 and serial_number=#{serialNumber})) as number, + create_time as createTime from xhpc_community_personnel where del_flag=0 @@ -77,6 +81,9 @@ alipay_login as alipayLogin, del_flag delFlag, concat(3) as userType, + + (select count(charging_station_id) from xhpc_mechanism where customers_id=mechanism_id and source=1 and charging_station_id in (select charging_station_id from xhpc_terminal where 1=1 and del_flag=0 and serial_number=#{serialNumber})) as number, + create_time as createTime from xhpc_customers_personnel where del_flag=0 From a05ca944bb2ef56c87d044e7f82083eceeadf31e Mon Sep 17 00:00:00 2001 From: ZZ Date: Fri, 31 Dec 2021 09:59:15 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=A7=9F=E6=88=B7=E8=A1=A8sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/v2.1.sql | 53 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/sql/v2.1.sql b/sql/v2.1.sql index 043c2471..156b0087 100644 --- a/sql/v2.1.sql +++ b/sql/v2.1.sql @@ -66,18 +66,45 @@ ALTER TABLE `xhpc_customers_personnel` ADD COLUMN `is_refund` int(4) NULL DEFAU CREATE TABLE `xhpc_user_login` ( `user_login_id` bigint(20) NOT NULL AUTO_INCREMENT, - `app_user_id` bigint(20) DEFAULT NULL COMMENT '用户id', - `account` varchar(50) DEFAULT NULL COMMENT '账号', - `user_type` int(4) NOT NULL COMMENT '用户类型 0 C端用户 1 流量方用户 2社区用户 3B端用户)', - `open_id` varchar(50) DEFAULT NULL COMMENT 'openid', - `type` int(4) DEFAULT '0' COMMENT '1 微信 2支付宝', - `status` int(4) DEFAULT '1' COMMENT '0退出 1登录', - `del_flag` int(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', - `create_by` varchar(64) DEFAULT '' COMMENT '创建者', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_by` varchar(64) DEFAULT '' COMMENT '更新者', - `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `remark` varchar(500) DEFAULT NULL COMMENT '备注', + `app_user_id` bigint(20) DEFAULT NULL COMMENT '用户id', + `account` varchar(50) DEFAULT NULL COMMENT '账号', + `user_type` int(4) NOT NULL COMMENT '用户类型 0 C端用户 1 流量方用户 2社区用户 3B端用户)', + `open_id` varchar(50) DEFAULT NULL COMMENT 'openid', + `type` int(4) DEFAULT '0' COMMENT '1 微信 2支付宝', + `status` int(4) DEFAULT '1' COMMENT '0退出 1登录', + `del_flag` int(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)', + `create_by` varchar(64) DEFAULT '' COMMENT '创建者', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_by` varchar(64) DEFAULT '' COMMENT '更新者', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`user_login_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='小程序用户最后一次登录记录'; +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 COMMENT ='小程序用户最后一次登录记录'; +CREATE TABLE `xhpc_tenant` +( + `id` BIGINT(20) NOT NULL COMMENT '主键', + `tenant_id` VARCHAR(12) NULL DEFAULT '000000' COMMENT '租户ID', + `tenant_name` VARCHAR(50) NOT NULL COMMENT '租户名称', + `domain` VARCHAR(255) NULL DEFAULT NULL COMMENT '域名地址', + `background_url` VARCHAR(1000) NULL DEFAULT NULL COMMENT '系统背景', + `linkman` VARCHAR(20) NULL DEFAULT NULL COMMENT '联系人', + `contact_number` VARCHAR(20) NULL DEFAULT NULL COMMENT '联系电话', + `address` VARCHAR(255) NULL DEFAULT NULL COMMENT '联系地址', + `station_quote` INT(11) NULL DEFAULT '-1' COMMENT '场站限额', + `station_pile_quote` INT(11) NULL DEFAULT '-1' COMMENT '每站桩限额', + `expire_time` DATETIME NULL DEFAULT NULL COMMENT '过期时间', + `create_user` BIGINT(64) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` BIGINT(64) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` DATETIME NULL DEFAULT NULL COMMENT '创建时间', + `update_user` BIGINT(64) NULL DEFAULT NULL COMMENT '修改人', + `update_time` DATETIME NULL DEFAULT NULL COMMENT '修改时间', + `status` INT(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` INT(2) NULL DEFAULT '0' COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) + COMMENT ='租户表' + COLLATE = 'utf8mb4_general_ci' + ENGINE = InnoDB +; From 744c1c57211a9b80c58dbea82e3d8349341f8fe6 Mon Sep 17 00:00:00 2001 From: ZZ Date: Fri, 31 Dec 2021 11:10:20 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=89=80=E6=9C=89=E8=A1=A8=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E7=A7=9F=E6=88=B7=E5=AD=97=E6=AE=B5tenant=5Fid;=20Dao?= =?UTF-8?q?=E5=88=87=E9=9D=A2/BaseEntity=E5=8A=A0=E5=85=A5tenantId?= =?UTF-8?q?=E5=B1=9E=E6=80=A7;=20C=E7=AB=AF=E7=94=A8=E6=88=B7=E6=B3=A8?= =?UTF-8?q?=E5=86=8C/=E7=99=BB=E5=BD=95=E5=8A=A0=E5=85=A5tenantId;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xhpc/system/api/domain/SysUser.java | 57 ++++-- .../com/xhpc/system/api/model/LoginUser.java | 26 ++- .../common/core/web/domain/BaseEntity.java | 50 +++-- .../common/security/service/TokenService.java | 1 + .../system/controller/SysUserController.java | 3 +- .../resources/mapper/system/SysUserMapper.xml | 44 ++++- sql/v2.1.sql | 174 +++++++++++++++++- .../com/xhpc/user/aspect/UserDaoAspect.java | 5 + .../service/impl/XhpcAppUserServiceImpl.java | 17 +- 9 files changed, 329 insertions(+), 48 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/domain/SysUser.java index f7d73f4f..e82b745c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/domain/SysUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/domain/SysUser.java @@ -34,7 +34,9 @@ public class SysUser extends BaseEntity @Excel(name = "部门编号", type = Type.IMPORT) private Long deptId; - /** 用户账号 */ + /** + * 用户账号 + */ @Excel(name = "登录名称") private String userName; @@ -43,15 +45,26 @@ public class SysUser extends BaseEntity */ private String userType; - /** 用户昵称 */ + /** + * 租户id(000000平台) + */ + private String tenantId; + + /** + * 用户昵称 + */ @Excel(name = "用户名称") private String nickName; - /** 用户邮箱 */ + /** + * 用户邮箱 + */ @Excel(name = "用户邮箱") private String email; - /** 手机号码 */ + /** + * 手机号码 + */ @Excel(name = "手机号码") private String phonenumber; @@ -353,22 +366,37 @@ public class SysUser extends BaseEntity } public void setDataPowerType(Integer dataPowerType) { + this.dataPowerType = dataPowerType; } public String getUserType() { + return userType; } public void setUserType(String userType) { + this.userType = userType; } + public String getTenantId() { + + return tenantId; + } + + public void setTenantId(String tenantId) { + + this.tenantId = tenantId; + } + public Long getInternetUserId() { + return internetUserId; } public void setInternetUserId(Long internetUserId) { + this.internetUserId = internetUserId; } @@ -398,16 +426,17 @@ public class SysUser extends BaseEntity .append("salt", getSalt()) .append("operatorId", getOperatorId()) .append("dataPowerType", getDataPowerType()) - .append("status", getStatus()) - .append("delFlag", getDelFlag()) - .append("loginIp", getLoginIp()) - .append("loginDate", getLoginDate()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .append("dept", getDept()) + .append("status", getStatus()) + .append("delFlag", getDelFlag()) + .append("loginIp", getLoginIp()) + .append("loginDate", getLoginDate()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .append("dept", getDept()) + .append("tenantId", getTenantId()) .toString(); } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java index 1ad4643f..58af56be 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/xhpc/system/api/model/LoginUser.java @@ -1,10 +1,10 @@ package com.xhpc.system.api.model; +import com.xhpc.system.api.domain.SysUser; + import java.io.Serializable; import java.util.Set; -import com.xhpc.system.api.domain.SysUser; - /** * 用户信息 * @@ -34,6 +34,11 @@ public class LoginUser implements Serializable */ private Integer userType; + /** + * 租户id + */ + private String tenantId; + /** * 登录用户的openID */ @@ -156,22 +161,39 @@ public class LoginUser implements Serializable public void setSysUser(SysUser sysUser) { + this.sysUser = sysUser; } public Integer getUserType() { + return userType; } public void setUserType(Integer userType) { + this.userType = userType; } + public String getTenantId() { + + return tenantId; + } + + public void setTenantId(String tenantId) { + + this.tenantId = tenantId; + } + public String getOpenId() { + return openId; } public void setOpenId(String openId) { + this.openId = openId; } + + } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/web/domain/BaseEntity.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/web/domain/BaseEntity.java index 5af7eeda..f1b26904 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/web/domain/BaseEntity.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/xhpc/common/core/web/domain/BaseEntity.java @@ -34,20 +34,31 @@ public class BaseEntity implements Serializable /** 更新者 */ private String updateBy; - /** 更新时间 */ + /** + * 更新时间 + */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; - /** 备注 */ + /** + * 备注 + */ private String remark; - /** 请求参数 */ + /** + * 租户id + */ + private String tenantId; + + /** + * 请求参数 + */ @Transient private Map params; - public String getSearchValue() - { + public String getSearchValue() { + return searchValue; } @@ -91,25 +102,34 @@ public class BaseEntity implements Serializable return updateTime; } - public void setUpdateTime(Date updateTime) - { + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; } - public String getRemark() - { + public String getRemark() { + return remark; } - public void setRemark(String remark) - { + public void setRemark(String remark) { + this.remark = remark; } - public Map getParams() - { - if (params == null) - { + public String getTenantId() { + + return tenantId; + } + + public void setTenantId(String tenantId) { + + this.tenantId = tenantId; + } + + public Map getParams() { + + if (params == null) { params = new HashMap<>(); } return params; diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/xhpc/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/xhpc/common/security/service/TokenService.java index f13c4ebb..e1bee54e 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/xhpc/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/xhpc/common/security/service/TokenService.java @@ -43,6 +43,7 @@ public class TokenService { loginUser.setUserid(loginUser.getSysUser().getUserId()); loginUser.setUsername(loginUser.getSysUser().getUserName()); loginUser.setIpaddr(IpUtils.getIpAddr(ServletUtils.getRequest())); + loginUser.setTenantId(loginUser.getTenantId()); refreshToken(loginUser); // 保存或更新用户token diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java index a7eeae16..b001f44c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/xhpc/system/controller/SysUserController.java @@ -15,7 +15,6 @@ import com.xhpc.system.api.domain.SysRole; import com.xhpc.system.api.domain.SysUser; import com.xhpc.system.api.model.LoginUser; import com.xhpc.system.service.*; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -24,7 +23,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -106,6 +104,7 @@ public class SysUserController extends BaseController { Set permissions = permissionService.getMenuPermission(sysUser.getUserId()); LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); + sysUserVo.setTenantId(sysUser.getTenantId()); sysUserVo.setRoles(roles); sysUserVo.setPermissions(permissions); return R.ok(sysUserVo); diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index 6fabe974..8e553c57 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -51,18 +51,48 @@ - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, - d.dept_id, d.parent_id, d.dept_name, d.order_num, d.leader, d.status as dept_status,u.data_power_type , - r.role_id, r.role_name, r.role_key , r.role_sort, r.data_scope, r.status as role_status,u.user_type,u.operator_id + select u.user_id, + u.dept_id, + u.user_name, + u.nick_name, + u.email, + u.avatar, + u.phonenumber, + u.password, + u.sex, + u.status, + u.del_flag, + u.login_ip, + u.login_date, + u.create_by, + u.create_time, + u.remark, + d.dept_id, + d.parent_id, + d.dept_name, + d.order_num, + d.leader, + d.status as dept_status, + u.data_power_type, + r.role_id, + r.role_name, + r.role_key, + r.role_sort, + r.data_scope, + r.status as role_status, + u.user_type, + u.tenant_id, + u.operator_id from sys_user u - 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_role r on r.role_id = ur.role_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_role r on r.role_id = ur.role_id