Просмотр исходного кода

[小程序登录][修改]:去除异常处理

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
a65debcc10
1 измененных файлов: 161 добавлений и 155 удалений
  1. +161
    -155
      mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java

+ 161
- 155
mallinkCApi/src/main/java/com/iformall/controller/WxUserGrantController.java Просмотреть файл

@@ -91,19 +91,20 @@ public class WxUserGrantController extends BaseController {

/**
* 用户登录
*
* @param map
* @return
*/
@AuthIgnore
@PostMapping("/login")
@ApiOperation(value="用户登录", notes="{\"appId\":\"string\",\"code\":\"string\",\"scene\":\"string\",\"sceneAddress\":\"string\",\"latitude\":\"string\",\"longitude\":\"string\",\"systemInfo\":\"string\"}")
@ApiOperation(value = "用户登录", notes = "{\"appId\":\"string\",\"code\":\"string\",\"scene\":\"string\",\"sceneAddress\":\"string\",\"latitude\":\"string\",\"longitude\":\"string\",\"systemInfo\":\"string\"}")
public ResultData userLogin(@RequestBody Map<String, String> map) {
logger.debug(map.toString());

Map resultMap = new HashMap();

String appId = map.get("appId");
String code = map.get("code");
String code = map.get("code");
String sceneAddress = map.get("sceneAddress");
String scene = map.get("scene");
String longitude = map.get("longitude");
@@ -123,20 +124,20 @@ public class WxUserGrantController extends BaseController {
WxMaService wxMaService = null;

wxAuthorizerInfo = wxAuthorizerInfoService.getByAppId(appId);
if(wxAuthorizerInfo == null) {
if (wxAuthorizerInfo == null) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
}

if(isFmOpen) {
if (isFmOpen) {
wxMaService = openService.getWxOpenComponentService().getWxMaServiceByAppid(appId);
} else {
wxAppinfo = getAppInfo(appId);
if(wxAppinfo == null) {
if (wxAppinfo == null) {
return new ResultData(ErrorCode.APP_ID_NOT_FOUND);
}
wxMaService = getWeappServiceByAppInfo(wxAppinfo);

if(StringUtils.isBlank(wxAppinfo.getAccessToken())) {
if (StringUtils.isBlank(wxAppinfo.getAccessToken())) {
// 如果没有accessToken,主动获取保存到数据库中,下次访问可以拿来使用
updateAppAccessToken(wxAppinfo, wxMaService);
wxMaService = getWeappServiceByAppInfo(wxAppinfo);
@@ -144,7 +145,7 @@ public class WxUserGrantController extends BaseController {
} else {
// 检查token是否已过期, 1小时就重新获取
Date curDate = new Date();
if(curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + Constant.H_EXPIRE) {
if (curDate.getTime() > wxAppinfo.getLastTokenTime().getTime() + Constant.H_EXPIRE) {
updateAppAccessToken(wxAppinfo, wxMaService);
wxMaService = getWeappServiceByAppInfo(wxAppinfo);
}
@@ -163,7 +164,7 @@ public class WxUserGrantController extends BaseController {
session_key = session.getSessionKey();
openId = session.getOpenid();
unionId = session.getUnionid();
if(StringUtils.isNotBlank(unionId)) {
if (StringUtils.isNotBlank(unionId)) {
bHaveUnionId = true;
}

@@ -174,145 +175,142 @@ public class WxUserGrantController extends BaseController {
return new ResultData(ErrorCode.SESSION_KEY_DECODE_ERR, resultMap);
}

HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
String ipaddress = IPUtil.getIpAddr(request);

WxCUser user = new WxCUser();
user.setTenantId(wxAuthorizerInfo.getTenantId());
user.setAppId(appId);
user.setOpenId(openId);
if(bHaveUnionId) {
if (bHaveUnionId) {
user.setUnionId(unionId);
}
int score = 0;
int credit = 0;
try {
WxCUser user1 = null;
if(bHaveUnionId) {
// 优先根据unionId查询
WxCUser userQ = new WxCUser();
userQ.setTenantId(wxAuthorizerInfo.getTenantId());
userQ.setUnionId(unionId);
user1 = wxCUserService.getByObject(userQ);

WxCUser user1 = null;
if (bHaveUnionId) {
// 优先根据unionId查询
WxCUser userQ = new WxCUser();
userQ.setTenantId(wxAuthorizerInfo.getTenantId());
userQ.setUnionId(unionId);
user1 = wxCUserService.getByObject(userQ);
}
if (user1 == null) {
user1 = wxCUserService.getByOpenId(user);
}
if (user1 != null) {
token = user1.createToken(new Date());

resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, user1.getId());
request.setAttribute(Constant.TENANT_ID, user1.getTenantId());

user1.setRegisterIp(ipaddress);
user1.setSessionKey(session_key);
user1.setOpenId(openId);
if (bHaveUnionId) {
user1.setUnionId(unionId);
}
if(user1 == null) {
user1 = wxCUserService.getByOpenId(user);
if (StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) {
user1.setOpenAppId(wxAuthorizerInfo.getOpenAppid());
}
if (user1.getSceneAddress() == null || user1.getSceneAddress().equals("undefined"))
user1.setSceneAddress(sceneAddress);
if (user1.getScene() == null || user1.getScene().equals("undefined"))
user1.setScene(scene);
if (!StringUtils.isBlank(longitude))
user1.setLongitude(BigDecimal.valueOf(Double.valueOf(longitude)));
if (!StringUtils.isBlank(latitude))
user1.setLatitude(BigDecimal.valueOf(Double.valueOf(latitude)));

JSONObject extraInfo = new JSONObject();
extraInfo.put("systemInfo", JSONObject.parseObject(systemInfo));
user1.setExtraInfo(extraInfo.toJSONString());

user1.setLoginCount(user1.getLoginCount() + 1);
userTokenService.saveOrUpdate(user1);

// 成长值
try {
score = wxScoreRulesService.addScore(EnumScoreType.LOGIN, user1);
} catch (MallinkException e) {
logger.error("c_user 成长值 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 成长值 " + e.getMessage());
}
// 积分
try {
logger.info("user:" + user.getId());
WxCreditHistory wxCreditHistory = addCredit(user1, EnumScoreType.LOGIN);
logger.info("wxCreditHistory_id" + wxCreditHistory.getId());
credit = wxCreditHistory.getCreditNum() == null ? 0 : wxCreditHistory.getCreditNum();
logger.info("user_id:" + user1.getId() + " 登录新增积分:" + credit);
} catch (MallinkException e) {
logger.error("c_user 积分 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 积分 " + e.getMessage());
}
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user1);
} else {
user.setTenantId(wxAppinfo.getTenantId());
token = user.createToken(new Date());

user.setRegisterIp(ipaddress);
if (user.getSceneAddress() == null || user.getSceneAddress().equals("undefined"))
user.setSceneAddress(sceneAddress);
if (user.getScene() == null || user.getScene().equals("undefined"))
user.setScene(scene);
user.setSessionKey(session_key);
if (!StringUtils.isBlank(longitude))
user.setLongitude(BigDecimal.valueOf(Double.valueOf(longitude)));
if (!StringUtils.isBlank(latitude))
user.setLatitude(BigDecimal.valueOf(Double.valueOf(latitude)));

JSONObject extraInfo = new JSONObject();
extraInfo.put("systemInfo", JSONObject.parseObject(systemInfo));
user.setExtraInfo(extraInfo.toJSONString());
user.setLoginCount(0);

userTokenService.saveOrUpdate(user);

resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, user.getId());
request.setAttribute(Constant.TENANT_ID, user.getTenantId());
// 成长值
try {
score = wxScoreRulesService.addScore(EnumScoreType.LOGIN, user);
} catch (MallinkException e) {
logger.error("c_user 成长值 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 成长值 " + e.getMessage());
}
if (user1 != null) {
token = user1.createToken(new Date());

resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, user1.getId());
request.setAttribute(Constant.TENANT_ID, user1.getTenantId());

user1.setRegisterIp(ipaddress);
user1.setSessionKey(session_key);
user1.setOpenId(openId);
if(bHaveUnionId) {
user1.setUnionId(unionId);
}
if(StringUtils.isNotBlank(wxAuthorizerInfo.getOpenAppid())) {
user1.setOpenAppId(wxAuthorizerInfo.getOpenAppid());
}
if (user1.getSceneAddress() == null || user1.getSceneAddress().equals("undefined"))
user1.setSceneAddress(sceneAddress);
if (user1.getScene() == null || user1.getScene().equals("undefined"))
user1.setScene(scene);
if (!StringUtils.isBlank(longitude))
user1.setLongitude(BigDecimal.valueOf(Double.valueOf(longitude)));
if (!StringUtils.isBlank(latitude))
user1.setLatitude(BigDecimal.valueOf(Double.valueOf(latitude)));

JSONObject extraInfo = new JSONObject();
extraInfo.put("systemInfo",JSONObject.parseObject(systemInfo));
user1.setExtraInfo(extraInfo.toJSONString());

user1.setLoginCount(user1.getLoginCount()+1);
userTokenService.saveOrUpdate(user1);

// 成长值
try {
score = wxScoreRulesService.addScore(EnumScoreType.LOGIN, user1);
} catch (MallinkException e) {
logger.error("c_user 成长值 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 成长值 " + e.getMessage());
}
// 积分
try {
logger.info("user:" + user.getId());
WxCreditHistory wxCreditHistory = addCredit(user1,EnumScoreType.LOGIN);
logger.info("wxCreditHistory_id" + wxCreditHistory.getId());
credit = wxCreditHistory.getCreditNum() == null ? 0 : wxCreditHistory.getCreditNum();
logger.info("user_id:" + user1.getId() + " 登录新增积分:" + credit);
} catch (MallinkException e) {
logger.error("c_user 积分 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 积分 " + e.getMessage());
}
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user1);
} else {
user.setTenantId(wxAppinfo.getTenantId());
token = user.createToken(new Date());

user.setRegisterIp(ipaddress);
if (user.getSceneAddress() == null || user.getSceneAddress().equals("undefined"))
user.setSceneAddress(sceneAddress);
if (user.getScene() == null || user.getScene().equals("undefined"))
user.setScene(scene);
user.setSessionKey(session_key);
if (!StringUtils.isBlank(longitude))
user.setLongitude(BigDecimal.valueOf(Double.valueOf(longitude)));
if (!StringUtils.isBlank(latitude))
user.setLatitude(BigDecimal.valueOf(Double.valueOf(latitude)));

JSONObject extraInfo = new JSONObject();
extraInfo.put("systemInfo",JSONObject.parseObject(systemInfo));
user.setExtraInfo(extraInfo.toJSONString());
user.setLoginCount(0);

userTokenService.saveOrUpdate(user);

resultMap.put("token", token);
request.setAttribute(Constant.LOGIN_USER_KEY, user.getId());
request.setAttribute(Constant.TENANT_ID, user.getTenantId());
// 成长值
try {
score = wxScoreRulesService.addScore(EnumScoreType.LOGIN, user);
} catch (MallinkException e) {
logger.error("c_user 成长值 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 成长值 " + e.getMessage());
}

// 积分
try {
logger.info("user:" + user.getId());
WxCreditHistory wxCreditHistory = addCredit(user,EnumScoreType.LOGIN);
logger.info("wxCreditHistory_id" + wxCreditHistory.getId());
credit = wxCreditHistory.getCreditNum() == null ? 0 : wxCreditHistory.getCreditNum();
logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit);
} catch (MallinkException e) {
logger.error("c_user 积分 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 积分 " + e.getMessage());
}

wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN,user);
// 积分
try {
logger.info("user:" + user.getId());
WxCreditHistory wxCreditHistory = addCredit(user, EnumScoreType.LOGIN);
logger.info("wxCreditHistory_id" + wxCreditHistory.getId());
credit = wxCreditHistory.getCreditNum() == null ? 0 : wxCreditHistory.getCreditNum();
logger.info("user_id:" + user.getId() + " 登录新增积分:" + credit);
} catch (MallinkException e) {
logger.error("c_user 积分 " + e.getMessage());
} catch (Exception e) {
logger.error("c_user 积分 " + e.getMessage());
}
} catch (Exception e) {
logger.error(e.getMessage());
return new ResultData(ErrorCode.DB_FAIL.getCode(), "wx_c_user数据库保存出错", resultMap);

wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_LOGIN, user);
}


resultMap.put("score",score);
resultMap.put("credit",credit);
resultMap.put("score", score);
resultMap.put("credit", credit);
return new ResultData(resultMap);
}

/**
* WxAppInfo更新accessToken
*
* @param wxAppinfo
* @param wxMaService
*/
@@ -332,11 +330,12 @@ public class WxUserGrantController extends BaseController {

/**
* 获取用户的昵称等信息
*
* @param map
* @return
*/
@PostMapping("/getUserInfo")
@ApiOperation(value="授权后获取用户的昵称,unionId等信息", notes="{\"encryptedData\":\"string\",\"iv\":\"string\"}")
@ApiOperation(value = "授权后获取用户的昵称,unionId等信息", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}")
public ResultData getUserInfo(@RequestBody Map<String, String> map) {
logger.debug(map.toString());
Map resultMap = new HashMap();
@@ -373,9 +372,9 @@ public class WxUserGrantController extends BaseController {
wxCUserService.saveOrUpdate(user);

// 成长值
wxScoreRulesService.addScore(EnumScoreType.WECHAT_PERSION,user);
wxScoreRulesService.addScore(EnumScoreType.WECHAT_PERSION, user);
//增加积分
addCredit(user,EnumScoreType.WECHAT_PERSION);
addCredit(user, EnumScoreType.WECHAT_PERSION);

resultMap.put("openId", user.getOpenId());
resultMap.put("unionId", user.getUnionId());
@@ -395,11 +394,12 @@ public class WxUserGrantController extends BaseController {

/**
* 授权后获取用户的手机号等信息
*
* @param map
* @return
*/
@PostMapping("/getUserPhone")
@ApiOperation(value = "授权后获取用户的手机号", notes="{\"encryptedData\":\"string\",\"iv\":\"string\"}")
@ApiOperation(value = "授权后获取用户的手机号", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}")
public ResultData getUserPhone(@RequestBody Map<String, String> map) {
logger.debug(map.toString());
Map resultMap = new HashMap();
@@ -421,7 +421,7 @@ public class WxUserGrantController extends BaseController {
String session_key = user.getSessionKey();
try {
// 解密
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(session_key, encryptedData, iv);
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(session_key, encryptedData, iv);
if (null != phoneNoInfo) {
logger.debug(phoneNoInfo.toString());
user.setPhone(phoneNoInfo.getPhoneNumber());
@@ -430,12 +430,12 @@ public class WxUserGrantController extends BaseController {
wxCUserService.saveOrUpdate(user);

// 成长值
wxScoreRulesService.addScore(EnumScoreType.WECHAT_PHONE,user);
wxScoreRulesService.addScore(EnumScoreType.WECHAT_PHONE, user);
//增加积分
addCredit(user,EnumScoreType.WECHAT_PHONE);
addCredit(user, EnumScoreType.WECHAT_PHONE);

resultMap.put("msg","授权手机成功!");
resultMap.put("phone",phoneNoInfo.getPhoneNumber());
resultMap.put("msg", "授权手机成功!");
resultMap.put("phone", phoneNoInfo.getPhoneNumber());
} else {
return new ResultData(ErrorCode.PHONE_DECODE_ERR, resultMap);
}
@@ -447,7 +447,7 @@ public class WxUserGrantController extends BaseController {
if (!user.getPhone().contains("*")) { // 用户手机非加密
// 更新到basicinfo
saveToBasicInfo(user);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE,user);
wxCUserTagsService.triggerAssignTags(EnumAssignTagsTrigger.ASSIGN_TAGS_TRIGGER_PHONE, user);
}

return new ResultData(resultMap);
@@ -455,10 +455,11 @@ public class WxUserGrantController extends BaseController {

/**
* 检查用户状态
*
* @return
*/
@RequestMapping("/checkUserStatus")
@ApiOperation(value = "判断是否是老用户", notes="")
@ApiOperation(value = "判断是否是老用户", notes = "")
public ResultData checkUserStatus() {
Map resultMap = new HashMap();
WxCUser user = getUser();
@@ -473,10 +474,11 @@ public class WxUserGrantController extends BaseController {

/**
* 检查用户状态
*
* @return
*/
@RequestMapping("/checkPhoneStatus")
@ApiOperation(value = "判断是否是老用户", notes="")
@ApiOperation(value = "判断是否是老用户", notes = "")
public ResultData checkPhoneStatus() {
Map resultMap = new HashMap();
WxCUser user = getUser();
@@ -506,7 +508,7 @@ public class WxUserGrantController extends BaseController {
} else {
userVo.setLevelName(WxLevelConfigService.DEFAULT_LEVEL);
List<WxLevelConfig> levelList = wxLevelConfigService.getByTenantId(user.getTenantId());
for(WxLevelConfig levelConfig: levelList) {
for (WxLevelConfig levelConfig : levelList) {
if (userVo.getScore() >= levelConfig.getPoints()) {
userVo.setLevelId(levelConfig.getId());
userVo.setLevelName(levelConfig.getLevel());
@@ -542,11 +544,11 @@ public class WxUserGrantController extends BaseController {
phone = user.getVerifyCodePhone();
returnMap.put("phone", phone);
returnMap.put("count", count);
return new ResultData(Result.SUCCESS,"count获取成功", returnMap);
return new ResultData(Result.SUCCESS, "count获取成功", returnMap);
} else {
Map returnMap = new HashMap();
returnMap.put("count", count);
return new ResultData(Result.SUCCESS,"count获取成功", returnMap);
return new ResultData(Result.SUCCESS, "count获取成功", returnMap);
}
}

@@ -557,11 +559,12 @@ public class WxUserGrantController extends BaseController {
userCar.setTenantId(getTenantId());
userCar.setCUserId(getUserId());
List<WxCUserCar> list = wxCUserCarService.getList(userCar);
return new ResultData(Result.SUCCESS,"获取查询成功", list);
return new ResultData(Result.SUCCESS, "获取查询成功", list);
}

/**
* 微信消息服务验证
*
* @param response
* @param request
* @throws IOException
@@ -577,25 +580,26 @@ public class WxUserGrantController extends BaseController {
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");

logger.warn("收到的微信服务验证信息:"+signature+"\n"+timestamp+"\n"+nonce+"\n"+echostr);
logger.warn("收到的微信服务验证信息:" + signature + "\n" + timestamp + "\n" + nonce + "\n" + echostr);
PrintWriter out = response.getWriter();
// 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败
// 当前无法确定此消息的appId及token, 所以直接返回echostr
//if (CheckUtil.checkSignature(wp.getToken(), signature, timestamp, nonce)) {
out.print(echostr);
logger.warn("微信服务验证成功===================="+echostr);
System.out.println("微信服务验证成功!");
out.print(echostr);
logger.warn("微信服务验证成功====================" + echostr);
System.out.println("微信服务验证成功!");
//}
out.close();
}

/**
* 授权后获取用户的手机号等信息
*
* @param map
* @return
*/
@PostMapping("/getWeRunData")
@ApiOperation(value = "获取用户过去三十天微信运动步数", notes="{\"encryptedData\":\"string\",\"iv\":\"string\"}")
@ApiOperation(value = "获取用户过去三十天微信运动步数", notes = "{\"encryptedData\":\"string\",\"iv\":\"string\"}")
public ResultData getWeRunData(@RequestBody Map<String, String> map) {
logger.debug(map.toString());
String encryptedData = map.get("encryptedData");
@@ -614,7 +618,7 @@ public class WxUserGrantController extends BaseController {
String session_key = user.getSessionKey();
try {
// 解密
String weRunDataStr = WxMaCryptUtils.decrypt(session_key, encryptedData, iv);
String weRunDataStr = WxMaCryptUtils.decrypt(session_key, encryptedData, iv);
if (null != weRunDataStr) {
Object obj = JSON.parse(weRunDataStr);
return new ResultData(obj);
@@ -629,10 +633,11 @@ public class WxUserGrantController extends BaseController {

/**
* 用户更新信息
*
* @return
*/
@PostMapping("/updateUserInfo")
@ApiOperation(value = "用户更新信息", notes="")
@ApiOperation(value = "用户更新信息", notes = "")
public ResultData updateUserInfo(@RequestBody WxCUserBasicInfo wxCUserBasicInfo) {
if (wxCUserBasicInfo == null)
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
@@ -646,7 +651,7 @@ public class WxUserGrantController extends BaseController {
WxCUserBasicInfo record = new WxCUserBasicInfo();
record.setName(wxCUserBasicInfo.getName());
record.setBirthdate(wxCUserBasicInfo.getBirthdate());
record.setSex(wxCUserBasicInfo.getSex() );
record.setSex(wxCUserBasicInfo.getSex());
record.setAddress(wxCUserBasicInfo.getAddress());
record.setId(getUserId());
record.setUpdateDate(new Date());
@@ -668,10 +673,11 @@ public class WxUserGrantController extends BaseController {

/**
* 获取用户折扣率
*
* @return
*/
@RequestMapping("/getDiscountInfo")
@ApiOperation(value = "获取用户折扣率", notes="")
@ApiOperation(value = "获取用户折扣率", notes = "")
public ResultData getDiscountInfo() {

WxCUser user = getUser();
@@ -680,9 +686,9 @@ public class WxUserGrantController extends BaseController {

String level = WxLevelConfigService.DEFAULT_LEVEL;
Long levelId = 0L;
for(WxLevelConfig levelConfig: levelList) {
for (WxLevelConfig levelConfig : levelList) {
if (user.getScore() >= levelConfig.getPoints()) {
if(levelConfig.getDiscountEnable().equals(EnumLevelConfigDiscountStatus.ENABLE.getCode()))
if (levelConfig.getDiscountEnable().equals(EnumLevelConfigDiscountStatus.ENABLE.getCode()))
levelId = levelConfig.getId();
level = levelConfig.getLevel();
}
@@ -691,9 +697,9 @@ public class WxUserGrantController extends BaseController {
levelMerchant.setLevelId(levelId);
List<WxLevelMerchantCVo> levelMerchantList = wxLevelConfigService.findListCVo(levelMerchant);

Map<String,Object> result = new HashMap();
result.put("level",level);
result.put("levelMerchantList",levelMerchantList);
Map<String, Object> result = new HashMap();
result.put("level", level);
result.put("levelMerchantList", levelMerchantList);
return new ResultData(result);
}



Загрузка…
Отмена
Сохранить