From a9ac2b784ed24a802d5e9b9cee8787b60a1151da Mon Sep 17 00:00:00 2001 From: wen <1455474577@qq.com> Date: Sat, 12 Feb 2022 15:09:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=9F=A5=E8=AF=A2=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../card/controller/XhpcCardController.java | 12 ++ .../com/xhpc/card/domain/CardUserInfo.java | 60 ++++++++ .../xhpc/card/mapper/TIccardInfoMapper.java | 11 ++ .../com/xhpc/card/mapper/XhpcCardMapper.java | 19 +++ .../xhpc/card/service/IXhpcCardService.java | 12 ++ .../service/impl/XhpcCardServiceImpl.java | 132 +++++++++++++----- .../resources/mapper/TIccardInfoMapper.xml | 19 +++ .../main/resources/mapper/XhpcCardMapper.xml | 24 +++- 8 files changed, 251 insertions(+), 38 deletions(-) create mode 100644 xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/domain/CardUserInfo.java diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/controller/XhpcCardController.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/controller/XhpcCardController.java index 6e0fc2ce..13b27ab2 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/controller/XhpcCardController.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/controller/XhpcCardController.java @@ -108,5 +108,17 @@ public class XhpcCardController extends BaseController { return xhpcCardService.onlineCardBind(bindCardInfo); } + /** + * 查看完整用户信息接口 + * + * @param userAccount 用户账号 + * @param userType 用户类型( 0 C端用户 1 流量方用户 2社区用户 3B端用户,10离线用户) + */ + @GetMapping("/user") + public R queryWholeUserInfo(@RequestParam String userAccount, @RequestParam Integer userType) { + + return xhpcCardService.queryWholeUserInfo(userAccount, userType); + } + } diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/domain/CardUserInfo.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/domain/CardUserInfo.java new file mode 100644 index 00000000..136bfcb3 --- /dev/null +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/domain/CardUserInfo.java @@ -0,0 +1,60 @@ +package com.xhpc.card.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 存储返回数据的实体类 + * + * @author WH + */ +@Data +@NoArgsConstructor +public class CardUserInfo { + + /** + * 用户类型( 0 C端用户 1 流量方用户 2社区用户 3B端用户,10离线用户) + */ + @JsonProperty("userType") + private Integer userType; + @JsonProperty("userAge") + private Integer userAge; + @JsonProperty("userName") + private String userName; + /** + * 性别(0男,1女) + */ + @JsonProperty("userSex") + private Integer userSex; + @JsonProperty("idCardNumber") + private String idCardNumber; + @JsonProperty("phoneNumber") + private String phoneNumber; + @JsonProperty("licencePlate") + private String licencePlate; + @JsonProperty("cardSerialNumber") + private String cardSerialNumber; + @JsonProperty("cardPhysicalNumber") + private String cardPhysicalNumber; + @JsonProperty("grantOperatorName") + private String grantOperatorName; + /** + * 卡类型(0 平台,1 运营商) + */ + @JsonProperty("cardType") + private Integer cardType; + /** + * 卡分类(0.离线卡; 1.联网卡) + */ + @JsonProperty("cardClassification") + private Integer cardClassification; + @JsonProperty("cashPledge") + private Integer cashPledge; + @JsonProperty("balance") + private Integer balance; + @JsonProperty("userAccount") + private String userAccount; + + +} diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/TIccardInfoMapper.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/TIccardInfoMapper.java index 06582eef..8dedddf0 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/TIccardInfoMapper.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/TIccardInfoMapper.java @@ -50,4 +50,15 @@ public interface TIccardInfoMapper { */ Long selectTotalCountBy(QueryConditions queryConditions); + /** + * 查询离线用户信息 + * + * @param userAccount 用户账户 + * @return 返回用户信息 + * @author WH + * @date 2022/2/11 17:15 + * @since version-1.0 + */ + Map selectByPhone(String userAccount); + } \ No newline at end of file diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/XhpcCardMapper.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/XhpcCardMapper.java index 3aa43ec0..dd142760 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/XhpcCardMapper.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/mapper/XhpcCardMapper.java @@ -4,6 +4,8 @@ import com.xhpc.card.pojo.XhpcIcCardInfo; import com.xhpc.common.domain.IccardInfo; import org.apache.ibatis.annotations.Param; +import java.util.Map; + public interface XhpcCardMapper { IccardInfo getIccardInfoCardno(@Param("cardno") String cardno); @@ -22,5 +24,22 @@ public interface XhpcCardMapper { int updateByPrimaryKey(XhpcIcCardInfo record); + /** + * query record of xhpc_ic_card_info by id of t_iccard_info + * + * @author WH + * @date 2022/2/10 13:28 + * @since version-1.0 + */ + XhpcIcCardInfo selectBytCardId(String id); + + /** + * 查询非联网卡用户信息 + * + * @author WH + * @date 2022/2/11 19:27 + * @since version-1.0 + */ + Map selectByAccount(@Param("userAccount") String userAccount, @Param("userType") Integer userType); } \ No newline at end of file diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/IXhpcCardService.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/IXhpcCardService.java index 4e3e064c..c2a9832f 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/IXhpcCardService.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/IXhpcCardService.java @@ -85,4 +85,16 @@ public interface IXhpcCardService { */ R onlineCardBind(BindCardInfo bindCardInfo); + /** + * 查询绑卡用户信息 + * + * @param userAccount 用户信息 + * @param userType 用户类型 + * @return 卡用户的完整信息 + * @author WH + * @date 2022/2/9 17:50 + * @since version-1.0 + */ + R queryWholeUserInfo(String userAccount, Integer userType); + } diff --git a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java index fc84e722..e20aba7f 100644 --- a/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java +++ b/xhpc-modules/xhpc-card/src/main/java/com/xhpc/card/service/impl/XhpcCardServiceImpl.java @@ -9,14 +9,15 @@ import com.xhpc.common.api.CardHistoryOrderService; import com.xhpc.common.core.constant.Constants; import com.xhpc.common.core.domain.R; import com.xhpc.common.domain.IccardInfo; +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 org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -44,16 +45,18 @@ public class XhpcCardServiceImpl implements IXhpcCardService { private XhpcCommunityPersonnelMapper xhpcCommunityPersonnelMapper; @Resource private XhpcCustomersPersonnelMapper xhpcCustomersPersonnelMapper; + @Resource + TokenService tokenService; @Override - public R cardStartup(String cardno, String serialNumber,String rateModelId) { + public R cardStartup(String cardno, String serialNumber, String rateModelId) { IccardInfo iccardInfo = xhpcCardMapper.getIccardInfoCardno(cardno); - if(iccardInfo !=null){ - if(iccardInfo.getCardtype()==0){ + if (iccardInfo != null) { + if (iccardInfo.getCardtype() == 0) { return R.fail(Constants.OFFLINE_CARD); } - if(iccardInfo.getStatus()==0){ + if (iccardInfo.getStatus() == 0) { return R.fail(Constants.ZERO_CARD); } if(iccardInfo.getStatus()==2){ @@ -130,49 +133,63 @@ public class XhpcCardServiceImpl implements IXhpcCardService { @Override public R queryCardListBy(QueryConditions queryConditions) { - //todo 最后再做 + //获取登录用户 + LoginUser loginUser = tokenService.getLoginUser(); + //获取登录用户类型 + SysUser sysUser = loginUser.getSysUser(); + String loginUserType = sysUser.getUserType(); + //判断登录用户类型 + //如果是运营商 01 03 都是运营商 + if (UserTypeUtil.SYS_USER_TYPE_ONE.equals(loginUserType) || UserTypeUtil.SYS_USER_TYPE_THREE.equals(loginUserType)) { + //设置运营商id + queryConditions.setLoginUserId(Long.valueOf(loginUserType)); + //平台 + } else if (UserTypeUtil.SYS_USER_TYPE_ZERO.equals(loginUserType)) { + //平台可能会选中多个授权运营商 + String grantOperatorIds = (String) queryConditions.getGrantOperatorIds(); + if (!"".equals(grantOperatorIds)) { + String[] splitGrantOperatorIds = grantOperatorIds.split(","); + List idsList = Arrays.asList(splitGrantOperatorIds); + queryConditions.setGrantOperatorIds(idsList); + } + } + //获取登录用户的租户id + String tenantId = sysUser.getTenantId(); + queryConditions.setTenantId(tenantId); //计算分页索引 long startIndex = MyPagingUtil.calculateStartIndex(queryConditions.getCurrentPage(), queryConditions.getItems()); queryConditions.setCurrentPage(startIndex); CardList cardList = new CardList(); - cardList.setTotalItems(0); + cardList.setTotalItems(0L); cardList.setData(new ArrayList<>()); - List tIccardInfoList2 = tIccardInfoMapper.selectAllBy(queryConditions); - List tIccardInfoList = tIccardInfoMapper.selectAll(); - if (tIccardInfoList.isEmpty()) { - return R.ok(cardList); + List> listData = tIccardInfoMapper.selectAllBy(queryConditions); + Long totalCount = tIccardInfoMapper.selectTotalCountBy(queryConditions); + cardList.setTotalItems(totalCount); + if (listData.isEmpty()) { + return R.ok(); } //1.遍历卡记录 - for (TIccardInfo tIccardInfo : tIccardInfoList) { + for (Map data : listData) { //2.封装通用数据 CardList.DataDTO dataDTO = new CardList.DataDTO(); - dataDTO.setCardSerialNumber(tIccardInfo.getCardid()); - dataDTO.setCardPhysicalNumber(tIccardInfo.getCardno()); - //获取授权商id - String corpno = tIccardInfo.getCorpno(); - XhpcOperator xhpcOperator = xhpcOperatorMapper.selectByPrimaryKey(Long.valueOf(corpno)); - dataDTO.setGrantOperator(xhpcOperator.getName()); - dataDTO.setClassification(tIccardInfo.getCardtype()); + dataDTO.setCardSerialNumber((String) data.get("cardID")); + dataDTO.setCardPhysicalNumber((String) data.get("cardNo")); + //授权商名称 + dataDTO.setGrantOperator((String) data.get("name")); + dataDTO.setClassification((Integer) data.get("cardType")); + dataDTO.setCardRecordId((Integer) data.get("id")); + dataDTO.setCardType((Integer) data.get("is_platform")); + dataDTO.setCardStatus((Integer) data.get("status")); + dataDTO.setUserAccount((String) data.get("user_account")); //3.判断是否是离线卡,离线卡处理逻辑 if (dataDTO.getClassification() == 0) { - dataDTO.setCardType(1); - //获取卡用户索引,为null表示没有该卡没有绑用户 - Integer userIndex = tIccardInfo.getUserindex(); - if (userIndex == null) { - dataDTO.setCardStatus(1); - } else { - dataDTO.setCardStatus(0); - dataDTO.setUserType(10); - TIccardUsers tIccardUsers = tIccardUsersMapper.selectByPrimaryKey(userIndex); - dataDTO.setUserAccount(tIccardUsers.getPhone()); - } + //离线用户类型为10 + dataDTO.setUserType(10L); } else { - //联网卡处理逻辑 - dataDTO.setCardStatus(0); - Integer isPlatform = tIccardInfo.getIsPlatform(); - dataDTO.setCardType(isPlatform); + dataDTO.setUserType((Long) data.get("user_type")); } cardList.getData().add(dataDTO); + } return R.ok(cardList); } @@ -314,4 +331,45 @@ public class XhpcCardServiceImpl implements IXhpcCardService { return R.ok(); } + @Override + public R queryWholeUserInfo(String userAccount, Integer userType) { + + CardUserInfo cardUserInfo = new CardUserInfo(); + //离线用户 + if (userType == 10) { + cardUserInfo.setUserType(userType); + Map userData = tIccardInfoMapper.selectByPhone(userAccount); + if (userData == null) { + return R.fail("没有此类型用户"); + } + cardUserInfo.setUserAge((Integer) userData.get("userAge")); + cardUserInfo.setUserName((String) userData.get("userName")); + cardUserInfo.setUserSex((Integer) userData.get("userSex")); + cardUserInfo.setIdCardNumber((String) userData.get("idNumber")); + cardUserInfo.setPhoneNumber((String) userData.get("phone")); + cardUserInfo.setLicencePlate((String) userData.get("licencePlate")); + fillUserInfo(cardUserInfo, userData); + cardUserInfo.setBalance((Integer) userData.get("balance")); + return R.ok(cardUserInfo); + } else { + //联网卡用户 + cardUserInfo.setUserType(userType); + Map userData = xhpcCardMapper.selectByAccount(userAccount, userType); + cardUserInfo.setUserAccount((String) userData.get("user_account")); + fillUserInfo(cardUserInfo, userData); + return R.ok(cardUserInfo); + } + + } + + private void fillUserInfo(CardUserInfo cardUserInfo, Map userData) { + + cardUserInfo.setCardSerialNumber((String) userData.get("cardID")); + cardUserInfo.setCardPhysicalNumber((String) userData.get("cardNo")); + cardUserInfo.setGrantOperatorName((String) userData.get("name")); + cardUserInfo.setCardType((Integer) userData.get("is_platform")); + cardUserInfo.setCardClassification((Integer) userData.get("cardType")); + cardUserInfo.setCashPledge((Integer) userData.get("cashPledge")); + } + } diff --git a/xhpc-modules/xhpc-card/src/main/resources/mapper/TIccardInfoMapper.xml b/xhpc-modules/xhpc-card/src/main/resources/mapper/TIccardInfoMapper.xml index 8ecd5181..2d6adae6 100644 --- a/xhpc-modules/xhpc-card/src/main/resources/mapper/TIccardInfoMapper.xml +++ b/xhpc-modules/xhpc-card/src/main/resources/mapper/TIccardInfoMapper.xml @@ -146,6 +146,25 @@ + delete from t_iccard_info diff --git a/xhpc-modules/xhpc-card/src/main/resources/mapper/XhpcCardMapper.xml b/xhpc-modules/xhpc-card/src/main/resources/mapper/XhpcCardMapper.xml index 6813b532..9932d4cd 100644 --- a/xhpc-modules/xhpc-card/src/main/resources/mapper/XhpcCardMapper.xml +++ b/xhpc-modules/xhpc-card/src/main/resources/mapper/XhpcCardMapper.xml @@ -17,12 +17,13 @@ + ic_card_info_id , t_iccard_info_id, use_status, create_time, user_id, user_account, user_type, user_name, user_id_card, user_age, user_sex, user_phone, user_vehicle, - del_flag + del_flag,tenant_id + + \ No newline at end of file