Commit 88e44011 authored by 吴琼's avatar 吴琼

电商客服信息查询

parent 069840a7
...@@ -2,6 +2,8 @@ package cn.quantgroup.customer.model.xyqbuser; ...@@ -2,6 +2,8 @@ package cn.quantgroup.customer.model.xyqbuser;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* 信用钱包用户基本展示信息 * 信用钱包用户基本展示信息
* *
...@@ -41,6 +43,24 @@ public class UserBasicInfo { ...@@ -41,6 +43,24 @@ public class UserBasicInfo {
* 手机号(明文) * 手机号(明文)
*/ */
private String phoneNumber; private String phoneNumber;
/**
*客户权益
*/
private String levelBenefit;
/**
* 等级
*/
private Integer level;
/**
* 等级名称
*/
private String levelName;
/**
* 积分
*/
private BigDecimal point;
/**
* 有效期
*/
private String levelValidityTerm;
} }
...@@ -23,11 +23,11 @@ import org.apache.commons.lang3.StringUtils; ...@@ -23,11 +23,11 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.security.Principal; import java.security.Principal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -246,8 +246,50 @@ public class UserRest { ...@@ -246,8 +246,50 @@ public class UserRest {
} }
return JsonResult.buildSuccessResult("success", result); return JsonResult.buildSuccessResult("success", result);
} }
//add by wuq 2022-01-14 begin
/**
* 积分类型初始化
* @return
*/
@PostMapping(value = "/search/getRewardPointsType")
public JsonResult getRewardPointsTypeInit() {
MoResult<String> result = userService.getRewardPointsType();
if(!result.isSuccess()){
return JsonResult.buildErrorStateResult(result.getMsg(),result.getData());
}
return JsonResult.buildSuccessResult("success", result.getData());
}
/**
*根据userId和phoneNo查询基本信息
*/
@PostMapping(value = "/search/userInfo")
public JsonResult getBasicUserInfo(UserQueryParam userQueryParam) {
JsonResult<UserBasicInfo> result = userService.findUserInfoByUserParam(userQueryParam);
return JsonResult.buildSuccessResult("success",result);
}
/**
*根据userId查询优惠券信息(详情)
*/
@PostMapping(value = "/search/getUserCouponInfo")
public JsonResult getUserCouponInfo(UserQueryParam userQueryParam) {
MoResult<String> result = userService.queryUserCouponInfoByUserParam(userQueryParam);
if(!result.isSuccess()){
return JsonResult.buildErrorStateResult(result.getMsg(),result.getData());
}
return JsonResult.buildSuccessResult("success",result);
}
/**
*根据积分类型和操作时间查询积分明细
*/
@PostMapping(value = "/search/queryPointDetailByPage")
public JsonResult queryPointDetailByPage(UserQueryParam userQueryParam) {
MoResult<String> result = userService.queryPointDetailByPage(userQueryParam);
if(result == null || !result.isSuccess()){
return JsonResult.buildErrorStateResult(result.getMsg(),result.getData());
}
return JsonResult.buildSuccessResult("success", result.getData());
}
} }
...@@ -22,4 +22,22 @@ public class UserQueryParam { ...@@ -22,4 +22,22 @@ public class UserQueryParam {
private Long userId; private Long userId;
private String uuid; private String uuid;
/**
* 积分类型
*/
private Integer eventType;
/**
* 操作时间
*/
private String operationTime;
/**
* 当前页数
*/
private Integer pageNo;
/**
* 每页多少条数据
*/
private Integer pageSize;
private String status;
} }
...@@ -68,4 +68,11 @@ public interface IUserService extends UserDetailsService { ...@@ -68,4 +68,11 @@ public interface IUserService extends UserDetailsService {
*/ */
MoResult<String> modifyUserDetail(Long userId, String realName, String idNO); MoResult<String> modifyUserDetail(Long userId, String realName, String idNO);
MoResult<String> getRewardPointsType();
JsonResult<UserBasicInfo> findUserInfoByUserParam(UserQueryParam userQueryParam);
MoResult<String> queryPointDetailByPage(UserQueryParam userQueryParam);
MoResult<String> queryUserCouponInfoByUserParam(UserQueryParam userQueryParam);
} }
...@@ -48,8 +48,11 @@ import org.springframework.data.domain.PageImpl; ...@@ -48,8 +48,11 @@ import org.springframework.data.domain.PageImpl;
import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestContextHolder;
import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
...@@ -352,6 +355,7 @@ public class UserServiceImpl implements IUserService { ...@@ -352,6 +355,7 @@ public class UserServiceImpl implements IUserService {
log.error(" 用户不存在 userSysResult={}", xUserData); log.error(" 用户不存在 userSysResult={}", xUserData);
return JsonResult.buildErrorStateResult("用户不存在", xUserData); return JsonResult.buildErrorStateResult("用户不存在", xUserData);
} }
if (xUserData instanceof XUser) { if (xUserData instanceof XUser) {
XUser xUser = (XUser) xUserData; XUser xUser = (XUser) xUserData;
userBasicInfo.setUserId(xUser.getId()); userBasicInfo.setUserId(xUser.getId());
...@@ -763,5 +767,183 @@ public class UserServiceImpl implements IUserService { ...@@ -763,5 +767,183 @@ public class UserServiceImpl implements IUserService {
throw new BusinessException(ErrorCodeEnum.NET_ERROR); throw new BusinessException(ErrorCodeEnum.NET_ERROR);
} }
} }
//add by wuq 2022-01-15 begin
@Override
public MoResult<String> getRewardPointsType(){
//String url = kdspUrl + "/api/kdsp/op/userBenefits/center/getEventType";
String url = "http://192.168.28.55:8033/api/kdsp/op/userBenefits/center/getEventType";
try {
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/x-www-form-urlencoded");
String result = httpService.post(url, header);
MoResult moResult = GSON.fromJson(result, MoResult.class);
log.info("[user][getRewardPointsType] 请求业务系统返回值:{}", result);
return moResult;
} catch (Exception e) {
log.error("[user][modifyUserDetail] 网络通讯异常,userId:{},ex:{}",ExceptionUtils.getStackTrace(e));
throw new BusinessException(ErrorCodeEnum.NET_ERROR);
}
}
@Override
public JsonResult<UserBasicInfo> findUserInfoByUserParam(UserQueryParam userQueryParam) {
final String LOG_PRE = "UserServiceImpl.findUserInfoByUserParam";
log.info("{} 查询用户信息 UserQueryParam={}", LOG_PRE, userQueryParam);
//调用kdsp接口获取会员权益相关信息
//String url= kdspUrl +"/api/kdsp/op/userBenefits/user-benefits-point/getUserBenefit";
String url= "http://192.168.28.55:8033/api/kdsp/op/userBenefits/user-benefits-point/getUserBenefit";
String result = "";
try {
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/x-www-form-urlencoded");
Map param = Maps.newHashMap();
if (Objects.nonNull(userQueryParam.getUserId())) {
param.put("userId", String.valueOf(userQueryParam.getUserId()));
}
if (Objects.nonNull(userQueryParam.getPhoneNo())) {
param.put("phoneNo", String.valueOf(userQueryParam.getUserId()));
}
result = httpService.post(url, header,param);
} catch (Exception e) {
log.error("[userServiceImpl][findUserInfoByUserParam] 网络通讯异常,userId:{},ex:{}",ExceptionUtils.getStackTrace(e));
throw new BusinessException(ErrorCodeEnum.NET_ERROR);
}
//通过userId查询
if (Objects.nonNull(userQueryParam.getUserId())) {
log.info("{} 通过userId查询 userId={}", LOG_PRE, userQueryParam.getUserId());
UserSysResult<XUser> userByUserId = userSdk.getService().findUserByUserId(userQueryParam.getUserId());
UserSysResult<XUserDetail> userDetailByUserId = userSdk.getService().findUserDetailByUserId(userQueryParam.getUserId());
return getUserBasicInfoResultAndUserBenefits(userByUserId, userDetailByUserId,result);
}
if (StringUtils.isNotBlank(userQueryParam.getPhoneNo())) {
log.info("{} 通过phoneNo查询 phoneNo={}", LOG_PRE, userQueryParam.getPhoneNo());
UserSysResult<XUser> userByPhoneNo = userSdk.getService().findUserByPhoneNo(userQueryParam.getPhoneNo());
UserSysResult<XUserDetail> userDetailByPhone = userSdk.getService().findUserDetailByPhone(userQueryParam.getPhoneNo());
//根据传入的身份证和查询出的用户信息中身份证进行比较,如果不一致返回查询失败
if (StringUtils.isNotEmpty(userQueryParam.getIdNo()) && userDetailByPhone.getData() != null) {
XUserDetail xUserDetail = userDetailByPhone.getData();
String idNo = xUserDetail.getIdNo();
if (StringUtils.isNotEmpty(idNo)) {
idNo = idNo.trim().toUpperCase();
}
String paramIdNo = userQueryParam.getIdNo().trim().toUpperCase();
if (!paramIdNo.equals(idNo)) {
return JsonResult.buildErrorStateResult("无有效查询参数", null);
}
}
return getUserBasicInfoResultAndUserBenefits(userByPhoneNo, userDetailByPhone,result);
}
return null;
}
@Override
public MoResult<String> queryUserCouponInfoByUserParam(UserQueryParam userQueryParam) {
final String LOG_PRE = "UserServiceImpl.getUserCouponInfoByUserParam";
log.info("{} 查询用户信息 UserQueryParam={}", LOG_PRE, userQueryParam);
//调用kdsp接口获取会员优惠券相关信息
//String url= kdspUrl +"/api/kdsp/op/coupon/receiver/pickup-list";
String url= "http://192.168.28.55:8033/api/kdsp/op/coupon/receiver/pickup-list";
try {
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/x-www-form-urlencoded");
Map param = Maps.newHashMap();
if (Objects.nonNull(userQueryParam.getUserId())) {
param.put("userId", String.valueOf(userQueryParam.getUserId()));
}
if (Objects.nonNull(userQueryParam.getStatus())) {
param.put("status", userQueryParam.getStatus());
}
if (Objects.nonNull(userQueryParam.getPageNo())) {
param.put("pageNo", userQueryParam.getPageNo());
}
if (Objects.nonNull(userQueryParam.getPageSize())) {
param.put("pageSize", userQueryParam.getPageSize());
}
String result = httpService.post(url, header, param);
MoResult moResult = GSON.fromJson(result, MoResult.class);
log.info("[user][queryUserCouponInfoByUserParam] 请求业务系统返回值:{}", result);
return moResult;
} catch (Exception e) {
log.error("[userServiceImpl][queryUserCouponInfoByUserParam] 网络通讯异常,userId:{},ex:{}",ExceptionUtils.getStackTrace(e));
throw new BusinessException(ErrorCodeEnum.NET_ERROR);
}
}
/**
*根据userid和phoneNo获取基本信息
* @param xUserUserSysResult
* @param detailUserSysResult
* @return
*/
private JsonResult getUserBasicInfoResultAndUserBenefits
(UserSysResult<XUser> xUserUserSysResult, UserSysResult<XUserDetail> detailUserSysResult,String result) {
UserBasicInfo userBasicInfo = new UserBasicInfo();
//处理json字符串
JSONObject json =JSONObject.parseObject(result);
String jsonResult = json.getString("data");
if(jsonResult != null){
JSONObject jsonObject = JSONObject.parseObject(jsonResult);
userBasicInfo.setLevelBenefit(jsonObject.getString("levelBenefit"));
userBasicInfo.setLevel(Integer.valueOf(jsonObject.getString("level")));
userBasicInfo.setLevelName(jsonObject.getString("levelName"));
userBasicInfo.setPoint(new BigDecimal(jsonObject.getString("point")));
userBasicInfo.setLevelValidityTerm(jsonObject.getString("levelValidityTerm"));
}
Object detailUser = getJsonResultData(detailUserSysResult);
Object xUserData = getJsonResultData(xUserUserSysResult);
if (Objects.isNull(xUserData)) {
log.error(" 用户不存在 userSysResult={}", xUserData);
return JsonResult.buildErrorStateResult("用户不存在", xUserData);
}
if (xUserData instanceof XUser) {
XUser xUser = (XUser) xUserData;
userBasicInfo.setUserId(xUser.getId());
userBasicInfo.setPhoneNo(DesensitizeUtil.phoneMark(xUser.getPhoneNo()));
userBasicInfo.setPhoneNumber(xUser.getPhoneNo());
String createAt = DateUtil.format(xUser.getCreatedAt(), DateUtil.DATE_FORMAT_1);
userBasicInfo.setCreatedAt(createAt);
Boolean enable = xUser.getEnable();
userBasicInfo.setStatus(enable == null ? "未知" : (enable ? "正常" : "封禁"));
}else{
log.error("查询用户失败 user={}",xUserData);
return (JsonResult) xUserData;
}
if (detailUser instanceof XUserDetail) {
XUserDetail userDetail = (XUserDetail) detailUser;
userBasicInfo.setGender(userDetail.getGender().getName());
userBasicInfo.setIdNo(DesensitizeUtil.idNoMark(userDetail.getIdNo()));
userBasicInfo.setName(userDetail.getName());
}
return JsonResult.buildSuccessResult(null, userBasicInfo);
}
/**
* 根据积分类型和操作时间查询积分明细
* @return
*/
public MoResult<String> queryPointDetailByPage(UserQueryParam userQueryParam) {
//String url = kdspUrl + "/api/kdsp/op/userBenefits/user-benefits-detail/queryPointDetailByPage";
String url = "http://192.168.28.55:8033/api/kdsp/op/userBenefits/user-benefits-detail/queryPointDetailByPage";
try {
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/json");
Map param = Maps.newHashMap();
param.put("userId",userQueryParam.getUserId());
param.put("operationTime",userQueryParam.getOperationTime());
param.put("eventType",userQueryParam.getEventType());
param.put("pageNo",userQueryParam.getPageNo());
param.put("pageSize",userQueryParam.getPageSize());
String result = httpService.post(url, header, param);
MoResult<String> moResult = GSON.fromJson(result, MoResult.class);
return moResult;
} catch (Exception e) {
log.error("[userServiceImpl][queryPointDetailByPage] 网络通讯异常,userId:{},ex:{}", ExceptionUtils.getStackTrace(e));
throw new BusinessException(ErrorCodeEnum.NET_ERROR);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment