From b30fddd5f0983820364d1e9611a1d2e97264845e Mon Sep 17 00:00:00 2001 From: yuyang Date: Wed, 29 Dec 2021 17:03:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=A4=BE=E5=8C=BA=E3=80=81B=E7=AB=AF=E5=A4=A7?= =?UTF-8?q?=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 @@ + + + + + + + + + + +