添加卡冻结状态功能

This commit is contained in:
wqz
2025-06-09 09:01:22 +08:00
parent 3639dbe634
commit d79c6b72ae
20 changed files with 4296 additions and 10739 deletions
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
@@ -0,0 +1,40 @@
2024-05-17 08:48:07 [main] DEBUG u.o.l.s.context.SysOutOverSLF4JInitialiser --> Your logging framework class ch.qos.logback.classic.Logger should not need access to the standard println methods on the console, so you should not need to register a logging system package.
2024-05-17 08:48:07 [main] INFO uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4J --> Replaced standard System.out and System.err PrintStreams with SLF4JPrintStreams
2024-05-17 08:48:07 [main] INFO uk.org.lidalia.sysoutslf4j.context.SysOutOverSLF4J --> Redirected System.out and System.err to SLF4J for this context
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner -->
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> . ____ _ __ _ _
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> \\/ ___)| |_)| | | | | || (_| | ) ) ) )
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> ' |____| .__|_| |_|_| |_\__, | / / / /
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner --> =========|_|==============|___/=/_/_/_/
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner -->  :: Spring Boot ::   (v2.2.13.RELEASE)
2024-05-17 08:48:08 [main] INFO org.springframework.boot.SpringBootBanner -->
2024-05-17 08:48:08 [background-preinit] INFO org.hibernate.validator.internal.util.Version --> HV000001: Hibernate Validator 6.0.22.Final
2024-05-17 08:48:08 [main] INFO com.yunze.iotapiApplication --> Starting iotapiApplication on LAPTOP-SKITT5PB with PID 3632 (C:\Users\\Desktop\云则\部署文档\iotlink\kaiyuan\yunze-iotapi\target\classes started by cph in C:\Users\\Desktop\云则\部署文档\iotlink\kaiyuan)
2024-05-17 08:48:08 [main] INFO com.yunze.iotapiApplication --> The following profiles are active: druid
2024-05-17 08:48:09 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate --> Multiple Spring Data modules found, entering strict repository configuration mode!
2024-05-17 08:48:09 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate --> Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2024-05-17 08:48:09 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate --> Finished Spring Data repository scanning in 63ms. Found 0 Redis repository interfaces.
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'agentAccountMapper' and 'com.yunze.iotapi.mapper.mysql.AgentAccountMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'sysLogsMapper' and 'com.yunze.iotapi.mapper.mysql.SysLogsMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> No MyBatis mapper was found in '[com.yunze.iotapi.mapper.mysql]' package. Please check your configuration.
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> No MyBatis mapper was found in '[com.yunze.common.mapper.yunze]' package. Please check your configuration.
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'yzCardPollingUtilCzcMapper' and 'com.yunze.apiCommon.mapper.mysql.YzCardPollingUtilCzcMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'yzCardRouteMapper' and 'com.yunze.apiCommon.mapper.mysql.YzCardRouteMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'yzCardUpdateMapper' and 'com.yunze.apiCommon.mapper.mysql.YzCardUpdateMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'yzCardxintongMapper' and 'com.yunze.apiCommon.mapper.mysql.YzCardxintongMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> Skipping MapperFactoryBean with name 'yzIpWhitelistMapper' and 'com.yunze.apiCommon.mapper.mysql.YzIpWhitelistMapper' mapperInterface. Bean already defined with the same name!
2024-05-17 08:48:09 [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner --> No MyBatis mapper was found in '[com.yunze.apiCommon.mapper]' package. Please check your configuration.
2024-05-17 08:48:09 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer --> Tomcat initialized with port(s): 9080 (http)
2024-05-17 08:48:09 [main] INFO org.apache.coyote.http11.Http11NioProtocol --> Initializing ProtocolHandler ["http-nio-9080"]
2024-05-17 08:48:09 [main] INFO org.apache.catalina.core.StandardService --> Starting service [Tomcat]
2024-05-17 08:48:09 [main] INFO org.apache.catalina.core.StandardEngine --> Starting Servlet engine: [Apache Tomcat/9.0.41]
2024-05-17 08:48:10 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/route] --> Initializing Spring embedded WebApplicationContext
2024-05-17 08:48:10 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext --> Root WebApplicationContext: initialization completed in 1543 ms
2024-05-17 08:48:11 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor --> Initializing ExecutorService 'applicationTaskExecutor'
2024-05-17 08:48:12 [main] WARN o.s.b.s.r.RedisStarterDeprecationWarningAutoConfiguration --> spring-boot-starter-redis is deprecated as of Spring Boot 1.4, please migrate to spring-boot-starter-data-redis
2024-05-17 08:48:12 [main] INFO org.apache.coyote.http11.Http11NioProtocol --> Starting ProtocolHandler ["http-nio-9080"]
2024-05-17 08:48:12 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer --> Tomcat started on port(s): 9080 (http) with context path '/route'
2024-05-17 08:48:12 [main] INFO com.yunze.iotapiApplication --> Started iotapiApplication in 4.533 seconds (JVM running for 6.886)
2024-05-17 08:48:24 [SpringContextShutdownHook] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor --> Shutting down ExecutorService 'applicationTaskExecutor'
-8552
View File
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="yunze-admin" />
</profile>
</annotationProcessing>
</component>
</project>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>
+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="public" />
<option name="name" value="aliyun nexus" />
<option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-snapshots" />
<option name="name" value="rdc-snapshots" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2318928-snapshot-7NCTHC/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="rdc-releases" />
<option name="name" value="rdc-releases" />
<option name="url" value="https://packages.aliyun.com/maven/repository/2318928-release-U2iell/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://maven.aliyun.com/nexus/content/groups/public" />
</remote-repository>
</component>
</project>
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>
@@ -328,6 +328,7 @@ public class YzCardController extends MyBaseController {
/**
* 同步用量
*
* @param Pstr
* @return
*/
@@ -355,7 +356,7 @@ public class YzCardController extends MyBaseController {
Double Use = Double.parseDouble(Rmap.get("Use").toString());
if (Use >= 0) {
try {
Map<String, Object> RMap = cardFlowSyn.CalculationFlow(Parammap.get("iccid").toString(), Use,Rmap.get("cd_code").toString());
Map<String, Object> RMap = cardFlowSyn.CalculationFlow(Parammap.get("iccid").toString(), Use, Rmap.get("cd_code").toString());
// //todo 同步成功之后判断是否为第一次同步用量 第一次则添加 第一次用量产生时间
// Boolean aBoolean = yzCardServiceImpl.firstUseTimeMethod(Parammap.get("iccid").toString());
// if (aBoolean){
@@ -389,15 +390,6 @@ public class YzCardController extends MyBaseController {
}
/**
* 同步卡状态
*
@@ -537,6 +529,63 @@ public class YzCardController extends MyBaseController {
return Myerr("同步激活时间 操作失败!");
}
//同步卡冻结状态
@PostMapping(value = "/synManageStatus", produces = {"application/json;charset=utf-8"})
public String synManageStatus(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
Map<String, Object> Route = yzCardServiceImpl.findRoute(Parammap);
if (Route != null) {
String cd_status = Route.get("cd_status").toString();
if (cd_status != null && cd_status != "" && cd_status.equals("1")) {
Map<String, Object> Rmap = internalApiRequest.queryManageStatus(Parammap, Route);
String code = Rmap.get("code") != null ? Rmap.get("code").toString() : "500";
if (code.equals("200")) {
//获取 卡状态 开卡日期 更新 card info
if (Rmap.get("manageStatusCode") != null && Rmap.get("manageStatusCode") != "" && Rmap.get("manageStatusCode").toString().trim().length() > 0) {
String statusCode = Rmap.get("manageStatusCode").toString().trim();
if (!"7".equals(statusCode)) {
Map<String, Object> Upd_Map = new HashMap<>();
Upd_Map.put("manage_status", statusCode);
Upd_Map.put("iccid", Parammap.get("iccid").toString());
try {
boolean bool = yzCardServiceImpl.updManageStatusId(Upd_Map);//变更卡冻结状态
if (bool) {
return MyRetunSuccess("", "已成功同步卡冻结状态!");
} else {
return Myerr("保存状态操作失败:False");
}
} catch (Exception e) {
return Myerr("DB保存状态操作失败!" + e.getMessage().toString());
}
} else {
return Myerr("同步失败,请稍后重试!");
}
}
} else {
return Myerr("网络繁忙稍后重试!" + Rmap.get("Message").toString());
}
} else {
String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知";
return Myerr("同步卡冻结 操作失败!" + " 通道 [" + statusVal + "]");
}
} else {
return Myerr(" iccid [" + Parammap.get("iccid") + "] 未划分 API通道 !请划分通道后重试!");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:card:synManageStatus " + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("同步卡冻结 操作失败!");
}
/**
* 查询在线信息
@@ -1566,10 +1615,10 @@ public class YzCardController extends MyBaseController {
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
Map<String, Object> rMap = yzCardServiceImpl.singleState(Parammap);
boolean bool = (boolean)rMap.get("bool");
if(bool){
boolean bool = (boolean) rMap.get("bool");
if (bool) {
return MyRetunSuccess(rMap.get("message"), null);
}else {
} else {
return Myerr(rMap.get("message").toString());
}
} catch (Exception e) {
@@ -1595,9 +1644,9 @@ public class YzCardController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = userService.userPhone(Parammap);
if(bool){
return MyRetunSuccess("操作成功!",null);
}else{
if (bool) {
return MyRetunSuccess("操作成功!", null);
} else {
return Myerr("您的手机号不匹对");
}
} catch (Exception e) {
@@ -1608,7 +1657,6 @@ public class YzCardController extends MyBaseController {
}
/**
* 验证所属卡号 是否在名下
*/
@@ -1643,24 +1691,23 @@ public class YzCardController extends MyBaseController {
}
/**
* 批量短信下发
*
* @param file
* @return
*/
@Log(title = "批量短信下发", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:card:smsCC')")
@PostMapping(value = "/SmsCC", produces = {"application/json;charset=utf-8"})
public AjaxResult SmsCC(MultipartFile file,@RequestParam Map<String,String> map) {
public AjaxResult SmsCC(MultipartFile file, @RequestParam Map<String, String> map) {
String Pstr = map.get("Pstr").toString();
if(Pstr!=null){
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr.toString()));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
@@ -1675,15 +1722,9 @@ public class YzCardController extends MyBaseController {
}
/**
* 同步用量 - [异步同步用量]
*
* @param Pstr
* @return
*/
@@ -1699,10 +1740,10 @@ public class YzCardController extends MyBaseController {
Parammap.putAll(JSON.parseObject((String) Pstr));
Map<String, Object> rMap = yzCardServiceImpl.AsynchronousFlow(Parammap);
boolean bool = (boolean) rMap.get("bool");
String Message = rMap.get("Message").toString();
if(bool){
String Message = rMap.get("Message").toString();
if (bool) {
return MyRetunSuccess(null, Message);
}else{
} else {
return Myerr(Message);
}
} catch (Exception e) {
@@ -1713,10 +1754,8 @@ public class YzCardController extends MyBaseController {
}
/**
* 同步生命周期 - [异步 同步生命周期]
* 同步生命周期 - [异步 同步生命周期]
*
* @param Pstr
* @return
@@ -1733,10 +1772,10 @@ public class YzCardController extends MyBaseController {
Parammap.putAll(JSON.parseObject((String) Pstr));
Map<String, Object> rMap = yzCardServiceImpl.AsynchronousStatus(Parammap);
boolean bool = (boolean) rMap.get("bool");
String Message = rMap.get("Message").toString();
if(bool){
String Message = rMap.get("Message").toString();
if (bool) {
return MyRetunSuccess(null, Message);
}else{
} else {
return Myerr(Message);
}
} catch (Exception e) {
@@ -1747,9 +1786,9 @@ public class YzCardController extends MyBaseController {
}
/**
* 批量短信下发文本域操作
*
* @param
* @return
*/
@@ -1772,9 +1811,9 @@ public class YzCardController extends MyBaseController {
Map<String, Object> rMap = yzCardServiceImpl.SmsCCTextField(Parammap);
boolean bool = (boolean) rMap.get("bool");
String message = rMap.get("Message").toString();
if(bool){
return MyRetunSuccess(null,message);
}else {
if (bool) {
return MyRetunSuccess(null, message);
} else {
return Myerr(message);
}
} catch (Exception e) {
@@ -1786,6 +1825,7 @@ public class YzCardController extends MyBaseController {
/**
* 卡余额修改
*
* @param
* @return
*/
@@ -1806,13 +1846,13 @@ public class YzCardController extends MyBaseController {
Parammap.put("User", User);
Parammap.put("agent_id", User.getDeptId());
Map<String, Object> map = yzCardServiceImpl.updBalance(Parammap);
if (map.get("code").toString().equals("200")){
return MyRetunSuccess(null,null);
}else {
if (map.get("code").toString().equals("200")) {
return MyRetunSuccess(null, null);
} else {
return Myerr("余额修改失败!!!");
}
}catch (Exception e){
} catch (Exception e) {
return Myerr("余额修改失败!!!");
}
}
@@ -1820,6 +1860,7 @@ public class YzCardController extends MyBaseController {
/**
* 修改支付密码
*
* @param
* @return
*/
@@ -1834,10 +1875,10 @@ public class YzCardController extends MyBaseController {
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = yzCardServiceImpl.updPwd(Parammap);
if(bool){
return MyRetunSuccess(null,"操作成功!");
}else {
boolean bool = yzCardServiceImpl.updPwd(Parammap);
if (bool) {
return MyRetunSuccess(null, "操作成功!");
} else {
return Myerr("操作失败……");
}
} catch (Exception e) {
@@ -1846,10 +1887,12 @@ public class YzCardController extends MyBaseController {
}
return Myerr("修改支付密码 操作失败!");
}
@PostMapping("/queryAll")
public AjaxResult queryAll() {
return yzCardServiceImpl.queryAll();
return yzCardServiceImpl.queryAll();
}
@PostMapping("/queryLTCardInfoAll")
public AjaxResult queryLTCardInfoAll() {
return yzCardServiceImpl.queryInfoAll();
@@ -1858,7 +1901,7 @@ public class YzCardController extends MyBaseController {
//anhuizhiyuan
@PostMapping("/queryZYCardInfoAll")
public void queryZYCardInfoAll() {
yzCardServiceImpl.queryZYCardInfoAll();
yzCardServiceImpl.queryZYCardInfoAll();
}
/**
@@ -1928,65 +1971,65 @@ public class YzCardController extends MyBaseController {
public AjaxResult SynTuJuCardStatus() {
boolean hasErrors = false;
StringBuilder errorMessage = new StringBuilder();
List<Map<String, Object>> RouteList = yzCardServiceImpl.findTuJuCardStatus();
if (RouteList != null && RouteList.size() > 0) {
for (Map<String, Object> Route : RouteList) {
try {
if (Route == null) {
errorMessage.append("iccid [null] 未划分 API通道 !请划分通道后重试!<br/>");
hasErrors = true;
continue;
}
String cd_status = Route.get("cd_status").toString();
if ("1".equals(cd_status)) {
//调用对象
Map<String, Object> map = new HashMap<>();
String cdUsername = (String) Route.get("cd_username");
String cdPwd = (String) Route.get("cd_pwd");
map.put("cd_username", cdUsername);
map.put("cd_pwd", cdPwd);
TuJuApi qr = new TuJuApi(map);
//此处让当前线程睡两秒后执行下一语句
try {
Thread.sleep(2000); // 暂停2秒
} catch (InterruptedException e) {
// 处理线程被中断的情况
Thread.currentThread().interrupt(); // 恢复中断状态
return AjaxResult.error("线程被中断!");
List<Map<String, Object>> RouteList = yzCardServiceImpl.findTuJuCardStatus();
if (RouteList != null && RouteList.size() > 0) {
for (Map<String, Object> Route : RouteList) {
try {
if (Route == null) {
errorMessage.append("iccid [null] 未划分 API通道 !请划分通道后重试!<br/>");
hasErrors = true;
continue;
}
String cd_status = Route.get("cd_status").toString();
if ("1".equals(cd_status)) {
//调用对象
Map<String, Object> map = new HashMap<>();
String cdUsername = (String) Route.get("cd_username");
String cdPwd = (String) Route.get("cd_pwd");
map.put("cd_username", cdUsername);
map.put("cd_pwd", cdPwd);
TuJuApi qr = new TuJuApi(map);
//此处让当前线程睡两秒后执行下一语句
try {
Thread.sleep(2000); // 暂停2秒
} catch (InterruptedException e) {
// 处理线程被中断的情况
Thread.currentThread().interrupt(); // 恢复中断状态
return AjaxResult.error("线程被中断!");
}
Map<String, Object> res = qr.cardDetail(Route.get("iccid").toString());
Map<String, Object> result = ((List<Map<String, Object>>) res.get("result")).get(0);
String code = result.get("code") != null ? result.get("code").toString() : "500";
if (code.equals("0")) {
//解析数据
Map<String, Object> cardStatus = internalApiRequest.queryCardStatus(Route, Route);
System.out.println(cardStatus);
Object statusCode = cardStatus.get("statusCode");
Map<String, Object> Upd_Map = new HashMap<>();
Upd_Map.put("status_id", statusCode);
Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode.toString()));
Upd_Map.put("iccid", Route.get("iccid").toString());
//更新 card info
if ("200".equals(cardStatus.get("code"))) {
yzCardServiceImpl.updStatusId(Upd_Map); //变更卡状态
}
} else {
return AjaxResult.error("网络繁忙稍后重试!" + result.get("Message").toString());
}
Map<String, Object> res = qr.cardDetail(Route.get("iccid").toString());
Map<String, Object> result = ((List<Map<String, Object>>) res.get("result")).get(0);
String code = result.get("code") != null ? result.get("code").toString() : "500";
if (code.equals("0")) {
//解析数据
Map<String, Object> cardStatus = internalApiRequest.queryCardStatus(Route, Route);
System.out.println(cardStatus);
Object statusCode = cardStatus.get("statusCode");
Map<String, Object> Upd_Map = new HashMap<>();
Upd_Map.put("status_id", statusCode);
Upd_Map.put("status_ShowId", getShowStatIdArr.GetShowStatId(statusCode.toString()));
Upd_Map.put("iccid", Route.get("iccid").toString());
//更新 card info
if ("200".equals(cardStatus.get("code"))) {
yzCardServiceImpl.updStatusId(Upd_Map); //变更卡状态
}
} else {
String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知";
errorMessage.append("同步卡状态 操作失败!通道 [").append(statusVal).append("]<br/>");
hasErrors = true;
return AjaxResult.error("网络繁忙稍后重试!" + result.get("Message").toString());
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:card:SynFlow " + " <br/> ip = " + ip + " <br/> ", e);
errorMessage.append("处理ICCID时发生错误: ").append(Route.getOrDefault("iccid", "未知")).append("<br/>");
} else {
String statusVal = cd_status.equals("2") ? "已停用" : cd_status.equals("3") ? "已删除" : "状态未知";
errorMessage.append("同步卡状态 操作失败!通道 [").append(statusVal).append("]<br/>");
hasErrors = true;
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:card:SynFlow " + " <br/> ip = " + ip + " <br/> ", e);
errorMessage.append("处理ICCID时发生错误: ").append(Route.getOrDefault("iccid", "未知")).append("<br/>");
hasErrors = true;
}
}
}
if (hasErrors) {
return AjaxResult.error(errorMessage.toString());
} else {
@@ -6,6 +6,7 @@ import com.yunze.apiCommon.Vo.DxDetail;
import com.yunze.apiCommon.mapper.mysql.YzCardRouteMapper;
import com.yunze.apiCommon.mapper.mysql.YzCardUpdateMapper;
import com.yunze.apiCommon.upstreamAPI.PublicApiService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;
@@ -14,10 +15,12 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
@Slf4j
@Component
public class ApiUtil_NoStatic {
@Resource
private CardManageStatusUtil cardManageStatusUtil;
@Resource
private PublicApiService publicApiService;
@Resource
@@ -1014,9 +1017,9 @@ public class ApiUtil_NoStatic {
Object resdata = res.get("data");
Map<String, Object> objectMap = JSONObject.parseObject(resdata.toString());
String state = objectMap.get("state").toString();
if (state.equals("0")){
if (state.equals("0")) {
statusCode = 8;
}else if (state.equals("07")) {
} else if (state.equals("07")) {
statusCode = 7;
} else if (state.equals("00")) {
statusCode = 1;
@@ -1891,7 +1894,7 @@ public class ApiUtil_NoStatic {
activateDate = firstActiveTime;
statusCode = 200;
data.put("Message", "同步成功");
}else {
} else {
data.put("Message", "激活时间数据为空!");
}
@@ -2045,7 +2048,7 @@ public class ApiUtil_NoStatic {
} else {
statusMessage = "激活时间数据为空!";
}
}else if("DianXin_CMP_5G".equals(cd_code)){
} else if ("DianXin_CMP_5G".equals(cd_code)) {
Map<String, Object> Data = JSON.parseObject(data.get("Data").toString());
if ("0".equals(Data.get("result"))) {
if (Data.get("servCreateDate") != null || !Data.get("servCreateDate").equals("")) {
@@ -2055,7 +2058,7 @@ public class ApiUtil_NoStatic {
+ "-" + servCreateDate.toString().substring(6, servCreateDate.toString().length());
statusCode = 200;
}
}else {
} else {
statusMessage = "激活时间数据为空!";
}
}
@@ -3404,4 +3407,76 @@ public class ApiUtil_NoStatic {
}
/**
* 单卡是否冻结状态解析
*
* @param map
* @return
*/
public Map<String, Object> queryManageStatus(Map<String, Object> map, Map<String, Object> find_card_route_map) {
JSONObject Outdata = new JSONObject();
try {
//返回数据解析
Map<String, Object> Rdata = publicApiService.insideApi(map, "queryManageStatus", find_card_route_map);
Map<String, Object> data = (Map<String, Object>) Rdata.get("Data");
int manageStatusCode = 7;
String manageStatusMessage = null;
String activateDate = null;
String cd_code = data.get("cd_code").toString();
try {
if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_TOKE_ShuoLang") || cd_code.equals("YiDong_EC_TengYu") || cd_code.equals("YiDong_EC_Combo") || cd_code.equals("ECV5_token_MW")) {
//移动解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
Map<String, Object> Obj = ((List<Map<String, Object>>) JsonData.get("result")).get(0);
String StatusCd = Obj.get("manageStopRestartStatus").toString();
Map<String, Object> EcV5CardStatusMap = cardManageStatusUtil.geYDCardStatus(StatusCd);
manageStatusCode = Integer.parseInt(EcV5CardStatusMap.get("statusCode").toString());
manageStatusMessage = EcV5CardStatusMap.get("statusMessage").toString();
} else if (cd_code.equals("PYKD")) {
//濮阳可当解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
Map<String, Object> Obj = ((List<Map<String, Object>>) JsonData.get("result")).get(0);
int StatusCd = Integer.parseInt(Obj.get("cardStatus").toString());
Map<String, Object> EcV5CardStatusMap = cardStatusReplacementUtil.getEcV5CardStatus(StatusCd);
manageStatusCode = Integer.parseInt(EcV5CardStatusMap.get("statusCode").toString());
manageStatusMessage = EcV5CardStatusMap.get("statusMessage").toString();
} else if (cd_code.equals("YDSM")) {
//大流量解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
Map<String, Object> Obj = ((List<Map<String, Object>>) JsonData.get("result")).get(0);
int StatusCd = Integer.parseInt(Obj.get("cardStatus").toString());
Map<String, Object> EcV5CardStatusMap = cardStatusReplacementUtil.getEcV5CardStatus(StatusCd);
manageStatusCode = Integer.parseInt(EcV5CardStatusMap.get("statusCode").toString());
manageStatusMessage = EcV5CardStatusMap.get("statusMessage").toString();
} else if (cd_code.equals("DianXin_CMP_5G")) {
//电信5G解析
log.error("{}", data);
Map<String, Object> Data = (Map<String, Object>) data.get("Data");
String result = Data.get("result").toString();
if (result.equals("0")) {
List<Map<String, Object>> productInfo = (List<Map<String, Object>>) Data.get("netBlockTypeList");
if (productInfo != null && productInfo.size() > 0) {
Map<String, Object> obj = productInfo.get(0);
String status = obj.get("blockType").toString();
Map<String, Object> CardStatusMap = cardManageStatusUtil.getDianXin_CMP_5G_CardStatus(status);
manageStatusCode = Integer.parseInt(CardStatusMap.get("statusCode").toString());
manageStatusMessage = CardStatusMap.get("statusMessage").toString();
}
}
}
Outdata.put("Message", data.get("Message"));
} catch (Exception e) {
manageStatusMessage = "内部接收消息,解析数据异常!";
log.error("{}", e);
}
Outdata.put("code", "200");
Outdata.put("manageStatusCode", manageStatusCode);
Outdata.put("manageStatusMessage", manageStatusMessage);
} catch (Exception e) {
Outdata.put("manageStatusMessage", "内部接收消息,解析数据异常!");
log.error("{}", e);
}
return Outdata;
}
}
@@ -0,0 +1,77 @@
package com.yunze.apiCommon.utils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
*
* @Author: Wang
* @Date: 2025/05/07/9:37
* @Description: 卡冻结状态解析
*/
@Component
public class CardManageStatusUtil {
/**
* 接口返回状态装换成系统状态
* 同步上游移动接口 卡冻结状态
*
* @param StatusCd
* @return
*/
public Map<String, Object> geYDCardStatus(String StatusCd) {
Map<String, Object> Rmap = new HashMap<>();
Integer statusCode = 7;
String statusMessage = "";
//未冻结 0
//已冻结 1
if ("0".equals(StatusCd)) {
statusCode = 0;
statusMessage = "未冻结";
} else if ("1".equals(StatusCd)) {
statusCode = 1;
statusMessage = "已冻结";
} else {
statusCode = 8;
statusMessage = "未知";
}
Rmap.put("statusCode", statusCode);
Rmap.put("statusMessage", statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 DianXin_CMP_5G 卡冻结状态
* @param StatusCd
*/
public Map<String,Object> getDianXin_CMP_5G_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
//卡冻结状态(0:未冻结 3:客户级机卡绑定断网 4 机卡绑定断网)
Integer statusCode = 7;
String statusMessage = "";
switch (StatusCd){
case "0":
statusCode = 0;
statusMessage = "未冻结";
break;
case "3":
case "4":
statusCode = 1;
statusMessage = "已冻结";
break;
case "8":
statusCode = 8;
statusMessage = "未知";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
}
File diff suppressed because it is too large Load Diff
@@ -669,6 +669,8 @@ public interface YzCardMapper
List<String> indexIccid(@Param("agentId") String agentId);
Map<String, Object> queryRenewalStatus(Integer renewalId);
int updManageStatusId(Map<String, Object> updMap);
}
@@ -2385,8 +2385,18 @@
iccid =#{iccid}
</where>
</update>
<update id="updManageStatusId">
update yz_card_info
<set>
manage_status = #{manage_status},
syn_Time =now()
</set>
<where>
iccid =#{iccid}
</where>
</update>
<select id="findTuJuRoute" resultType="java.util.Map">
<select id="findTuJuRoute" resultType="java.util.Map">
SELECT
b.cd_status,
a.iccid,
@@ -1928,6 +1928,11 @@ public class YzCardServiceImpl implements IYzCardService {
yzCardMapper.updNewUsed(putMap);
}
}
@Override
public boolean updManageStatusId(Map<String, Object> updMap) {
return yzCardMapper.updManageStatusId(updMap) > 0;
}
}
// String key = "M25h0BwJxRUp97SET5DCoV0UDO1x2lZx";
@@ -331,4 +331,7 @@ public interface IYzCardService
List<Map<String, Object>> findTuJuRoute();
List<Map<String, Object>> findTuJuCardStatus();
boolean updManageStatusId(Map<String, Object> updMap);
}
@@ -55,3 +55,12 @@ export function findIccid(query) {
data: query
})
}
// 导出续费信息
export function exportRenewalData(map) {
return request({
url: '/yunze/card/exportRenewalData',
method: 'post',
data: map
})
}
@@ -92,6 +92,18 @@
<el-col :span="1.5">
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['yunze:card:exportData']"
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" v-hasPermi="['yunze:renewal:list']" @queryTable="getList"></right-toolbar>
</el-row>
</el-form>
@@ -149,7 +161,7 @@
</template>
<script>
import {listRenewal,updRenewal } from "@/api/yunze/flowcard/renewal";
import {listRenewal,updRenewal,exportRenewalData} from "@/api/yunze/flowcard/renewal";
import tools from "@/utils/yunze/tools";
import appPrimary from "./appPrimary";
@@ -321,6 +333,41 @@ export default {
},
methods: {
//
handleExport() {
this.loading = true;
this.getParams();
let Pwd_Str = tools.encrypt(JSON.stringify(this.queryParams));
listRenewal(Pwd_Str).then(response => {
let jsonobj = JSON.parse(tools.Decrypt(response));
console.log(jsonobj);
if (jsonobj.code == 200) {
// this.cardList = jsonobj.Data.Data;
// this.total = jsonobj.Data.Pu.rowCount;
this.outCard();
} else {
this.msgError(jsonobj.msg);
}
this.loading = false;
}
);
},
//
outCard(){
this.getParams();
let Pwd_Str = tools.encrypt(JSON.stringify(this.queryParams));
exportRenewalData(Pwd_Str).then(response => {
let jsonobj = JSON.parse(tools.Decrypt(response));
//console.log(jsonobj);
if (jsonobj.code == 200) {
this.msgSuccess(jsonobj.Data);
} else {
let msg = jsonobj.Data != null && jsonobj.Data != '' ? jsonobj.Data : jsonobj.msg;
this.msgError(msg);
}
})
},
//
openInfo(row){
this.sel.id = row.id;
@@ -360,7 +407,6 @@ export default {
}
}
if (tools.Is_null(this.queryParams.timetype) && this.selTime != null) {
//console.log(this.selTime);
this.queryParams.staTime = this.selTime[0];
this.queryParams.endTime = this.selTime[1];
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1 @@
ZDbMOlQdWzasvols