!14 V1.0.0 版本更新

Merge pull request !14 from 山东云则/hotfix_poster
This commit is contained in:
山东云则
2022-09-06 04:01:08 +00:00
committed by Gitee
606 changed files with 61149 additions and 25756 deletions
+311
View File
@@ -0,0 +1,311 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="AbstractClassNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AccessToNonThreadSafeStaticFieldFromInstance" enabled="true" level="WARNING" enabled_by_default="true">
<option name="nonThreadSafeClasses">
<value />
</option>
<option name="nonThreadSafeTypes" value="" />
</inspection_tool>
<inspection_tool class="AccessToStaticFieldLockedOnInstance" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AmbiguousFieldAccess" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AmbiguousMethodCall" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AnnotationNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Za-z\d]*" />
<option name="m_minLength" value="8" />
<option name="m_maxLength" value="64" />
</inspection_tool>
<inspection_tool class="AnonymousClassVariableHidesContainingMethodVariable" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AssertsWithoutMessagesTestNG" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AwaitNotInLoop" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="AwaitWithoutCorrespondingSignal" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="BigDecimalMethodWithoutRoundingCalled" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="BooleanMethodNameMustStartWithQuestion" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreBooleanMethods" value="false" />
<option name="ignoreInAnnotationInterface" value="true" />
<option name="onlyWarnOnBaseMethods" value="true" />
<option name="questionString" value="add,are,can,check,contains,could,endsWith,equals,has,is,matches,must,put,remove,shall,should,startsWith,was,were,will,would" />
</inspection_tool>
<inspection_tool class="BusyWait" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CallToNativeMethodWhileLocked" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CallToSimpleGetterInClass" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreGetterCallsOnOtherObjects" value="false" />
<option name="onlyReportPrivateGetter" value="false" />
</inspection_tool>
<inspection_tool class="CallToSimpleSetterInClass" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreSetterCallsOnOtherObjects" value="false" />
<option name="onlyReportPrivateSetter" value="false" />
</inspection_tool>
<inspection_tool class="ClassNamePrefixedWithPackageName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ClassNameSameAsAncestorName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ClassNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Za-z\d]*" />
<option name="m_minLength" value="8" />
<option name="m_maxLength" value="64" />
</inspection_tool>
<inspection_tool class="CollectionAddAllCanBeReplacedWithConstructor" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CollectionContainsUrl" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="CollectionsMustHaveInitialCapacity" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ComparatorNotSerializable" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConditionSignal" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConfusingMainMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConstantNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="onlyCheckImmutables" value="false" />
<option name="m_regex" value="[A-Z][A-Z_\d]*" />
<option name="m_minLength" value="5" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="ConstantTestNGAssertArgument" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConvertAnnotations" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConvertJavadoc" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ConvertOldAnnotations" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DollarSignInName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="DoubleCheckedLocking" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreOnVolatileVariables" value="false" />
</inspection_tool>
<inspection_tool class="DynamicRegexReplaceableByCompiledPattern" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ElementOnlyUsedFromTestCode" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="EmptySynchronizedStatement" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="EnumeratedClassNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Za-z\d]*" />
<option name="m_minLength" value="8" />
<option name="m_maxLength" value="64" />
</inspection_tool>
<inspection_tool class="EnumeratedConstantNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Z_\d]*" />
<option name="m_minLength" value="5" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="EqualsHashCodeCalledOnUrl" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ExceptionNameDoesntEndWithException" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ExpectedExceptionNeverThrownTestNG" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ExtendsThread" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ExternalizableWithSerializationMethods" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="FieldAccessedSynchronizedAndUnsynchronized" enabled="true" level="WARNING" enabled_by_default="true">
<option name="countGettersAndSetters" value="false" />
</inspection_tool>
<inspection_tool class="FieldHidesSuperclassField" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreInvisibleFields" value="true" />
</inspection_tool>
<inspection_tool class="FieldMayBeStatic" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="InnerClassVariableHidesOuterClassVariable" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreInvisibleFields" value="true" />
</inspection_tool>
<inspection_tool class="InstanceMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="4" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="InstanceVariableNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="m_[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="5" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="InterfaceNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Za-z\d]*" />
<option name="m_minLength" value="8" />
<option name="m_maxLength" value="64" />
</inspection_tool>
<inspection_tool class="JUnitTestNG" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="KeySetIterationMayUseEntrySet" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LambdaParameterHidingMemberVariable" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LambdaParameterNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LambdaUnfriendlyMethodOverload" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LengthOneStringInIndexOf" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LengthOneStringsInConcatenation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="LocalVariableHidingMemberVariable" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreInvisibleFields" value="true" />
<option name="m_ignoreStaticMethods" value="true" />
</inspection_tool>
<inspection_tool class="LocalVariableNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreForLoopParameters" value="false" />
<option name="m_ignoreCatchParameters" value="false" />
<option name="m_regex" value="[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="1" />
<option name="m_maxLength" value="20" />
</inspection_tool>
<inspection_tool class="LongLiteralsEndingWithLowercaseL" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="MapReplaceableByEnumMap" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MethodMayBeStatic" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_onlyPrivateOrFinal" value="false" />
<option name="m_ignoreEmptyMethods" value="true" />
</inspection_tool>
<inspection_tool class="MethodMayBeSynchronized" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MethodNameSameAsParentName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MethodOverloadsParentMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MethodOverridesInaccessibleMethodOfSuper" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MethodOverridesStaticMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MisorderedAssertEqualsArgumentsTestNG" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="MisspelledMethodName" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NakedNotify" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NativeMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NestedSynchronizedStatement" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NewStringBufferWithCharArgument" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="NonAtomicOperationOnVolatileField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonBooleanMethodNameMayNotStartWithQuestion" enabled="true" level="WARNING" enabled_by_default="true">
<option name="questionString" value="add,are,can,check,contains,could,endsWith,equals,has,is,matches,must,put,remove,shall,should,startsWith,was,were,will,would" />
<option name="ignoreBooleanMethods" value="false" />
<option name="onlyWarnOnBaseMethods" value="true" />
</inspection_tool>
<inspection_tool class="NonExceptionNameEndsWithException" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonSerializableFieldInSerializableClass" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignorableAnnotations">
<value />
</option>
<option name="ignoreAnonymousInnerClasses" value="false" />
<option name="superClassString" value="" />
</inspection_tool>
<inspection_tool class="NonSerializableObjectBoundToHttpSession" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonSerializableObjectPassedToObjectStream" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonSerializableWithSerialVersionUIDField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonSerializableWithSerializationMethods" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NonSynchronizedMethodOverridesSynchronizedMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NotifyCalledOnCondition" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NotifyWithoutCorrespondingWait" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="NumericOverflow" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ObjectAllocationInLoop" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ObjectInstantiationInEqualsHashCode" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ObjectNotify" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="OctalLiteral" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="OverloadedMethodsWithSameNumberOfParameters" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreInconvertibleTypes" value="true" />
</inspection_tool>
<inspection_tool class="OverloadedVarargsMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PackageNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[a-z]*" />
<option name="m_minLength" value="3" />
<option name="m_maxLength" value="16" />
</inspection_tool>
<inspection_tool class="ParameterHidingMemberVariable" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreInvisibleFields" value="true" />
<option name="m_ignoreStaticMethodParametersHidingInstanceFields" value="true" />
<option name="m_ignoreForConstructors" value="false" />
<option name="m_ignoreForPropertySetters" value="false" />
<option name="m_ignoreForAbstractMethods" value="false" />
</inspection_tool>
<inspection_tool class="ParameterNameDiffersFromOverriddenParameter" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_ignoreSingleCharacterNames" value="false" />
<option name="m_ignoreOverridesOfLibraryMethods" value="false" />
</inspection_tool>
<inspection_tool class="ParameterNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="1" />
<option name="m_maxLength" value="20" />
</inspection_tool>
<inspection_tool class="PointlessArithmeticExpression" enabled="false" level="WARNING" enabled_by_default="false">
<option name="m_ignoreExpressionsContainingConstants" value="true" />
</inspection_tool>
<inspection_tool class="PublicFieldAccessedInSynchronizedContext" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="QuestionableName" enabled="true" level="WARNING" enabled_by_default="true">
<option name="nameString" value="aa,abc,bad,bar,bar2,baz,baz1,baz2,baz3,bb,blah,bogus,bool,cc,dd,defau1t,dummy,dummy2,ee,fa1se,ff,foo,foo1,foo2,foo3,foobar,four,fred,fred1,fred2,gg,hh,hello,hello1,hello2,hello3,ii,nu11,one,silly,silly2,string,two,that,then,three,whi1e,var" />
</inspection_tool>
<inspection_tool class="RandomDoubleForRandomInteger" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ReadObjectAndWriteObjectPrivate" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ReadObjectInitialization" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ReadResolveAndWriteReplaceProtected" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="RedundantThrowsDeclaration" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SafeLock" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SerialPersistentFieldsWithWrongSignature" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SerialVersionUIDNotStaticFinal" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SerializableHasSerialVersionUIDField" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreAnonymousInnerClasses" value="false" />
<option name="superClassString" value="" />
</inspection_tool>
<inspection_tool class="SerializableHasSerializationMethods" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreAnonymousInnerClasses" value="false" />
<option name="superClassString" value="" />
</inspection_tool>
<inspection_tool class="SerializableInnerClassHasSerialVersionUIDField" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreAnonymousInnerClasses" value="false" />
<option name="superClassString" value="" />
</inspection_tool>
<inspection_tool class="SerializableInnerClassWithNonSerializableOuterClass" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreAnonymousInnerClasses" value="false" />
<option name="superClassString" value="" />
</inspection_tool>
<inspection_tool class="SerializableStoresNonSerializable" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SerializableWithUnconstructableAncestor" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SetReplaceableByEnumSet" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SharedThreadLocalRandom" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SignalWithoutCorrespondingAwait" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SimplifiedTestNGAssertion" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SleepWhileHoldingLock" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StandardVariableNames" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StaticMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="4" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="StaticVariableNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="checkMutableFinals" value="false" />
<option name="m_regex" value="s_[a-z][A-Za-z\d]*" />
<option name="m_minLength" value="5" />
<option name="m_maxLength" value="32" />
</inspection_tool>
<inspection_tool class="StringBufferMustHaveInitialCapacity" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StringBufferToStringInConcatenation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StringEqualsEmptyString" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="StringReplaceableByStringBuffer" enabled="true" level="WARNING" enabled_by_default="true">
<option name="onlyWarnOnLoop" value="true" />
</inspection_tool>
<inspection_tool class="SuspiciousMethodCalls" enabled="false" level="WARNING" enabled_by_default="false">
<option name="REPORT_CONVERTIBLE_METHOD_CALLS" value="true" />
</inspection_tool>
<inspection_tool class="SuspiciousNameCombination" enabled="false" level="WARNING" enabled_by_default="false">
<group names="x,width,left,right" />
<group names="y,height,top,bottom" />
</inspection_tool>
<inspection_tool class="SuspiciousSystemArraycopy" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SuspiciousToArrayCall" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="SynchronizationOnStaticField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SynchronizeOnLock" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SynchronizeOnThis" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SynchronizedMethod" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_includeNativeMethods" value="true" />
<option name="ignoreSynchronizedSuperMethods" value="true" />
</inspection_tool>
<inspection_tool class="SynchronizedOnLiteralObject" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="SystemRunFinalizersOnExit" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TailRecursion" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TestNGMethodNamingConvention" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadLocalNotStaticFinal" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadPriority" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadRun" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadStartInConstruction" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadStopSuspendResume" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadWithDefaultRunMethod" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThreadYield" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="ThrowableNotThrown" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ToArrayCallWithZeroLengthArrayArgument" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TransientFieldInNonSerializableClass" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TransientFieldNotInitialized" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TrivialStringConcatenation" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="TypeParameterNamingConvention" enabled="true" level="WARNING" enabled_by_default="true">
<option name="m_regex" value="[A-Z][A-Za-z\d]*" />
<option name="m_minLength" value="1" />
<option name="m_maxLength" value="1" />
</inspection_tool>
<inspection_tool class="UnconditionalWait" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UndeclaredTests" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UnusedAssignment" enabled="false" level="WARNING" enabled_by_default="false">
<option name="REPORT_PREFIX_EXPRESSIONS" value="false" />
<option name="REPORT_POSTFIX_EXPRESSIONS" value="true" />
<option name="REPORT_REDUNDANT_INITIALIZER" value="true" />
</inspection_tool>
<inspection_tool class="UnusedLibrary" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="UpperCaseFieldNameNotConstant" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="VolatileArrayField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="VolatileLongOrDoubleField" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitCalledOnCondition" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitNotInLoop" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitNotifyNotInSynchronizedContext" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitOrAwaitWithoutTimeout" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitWhileHoldingTwoLocks" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WaitWithoutCorrespondingNotify" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="WhileLoopSpinsOnField" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoreNonEmtpyLoops" value="false" />
</inspection_tool>
<inspection_tool class="WrongPackageStatement" enabled="false" level="ERROR" enabled_by_default="false" />
</profile>
</component>
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+13
View File
@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.belerweb:pinyin4j:2.5.1">
<CLASSES>
<root url="jar://$PROJECT_DIR$/../../../workApp/apache-maven-3.8.6/repository/com/belerweb/pinyin4j/2.5.1/pinyin4j-2.5.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/../../../workApp/apache-maven-3.8.6/repository/com/belerweb/pinyin4j/2.5.1/pinyin4j-2.5.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$PROJECT_DIR$/../../../workApp/apache-maven-3.8.6/repository/com/belerweb/pinyin4j/2.5.1/pinyin4j-2.5.1-sources.jar!/" />
</SOURCES>
</library>
</component>
+54
View File
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ClientPropertiesManager">
<properties class="javax.swing.AbstractButton">
<property name="hideActionText" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JComponent">
<property name="html.disable" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JEditorPane">
<property name="JEditorPane.w3cLengthUnits" class="java.lang.Boolean" />
<property name="JEditorPane.honorDisplayProperties" class="java.lang.Boolean" />
<property name="charset" class="java.lang.String" />
</properties>
<properties class="javax.swing.JList">
<property name="List.isFileList" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JPasswordField">
<property name="JPasswordField.cutCopyAllowed" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JSlider">
<property name="Slider.paintThumbArrowShape" class="java.lang.Boolean" />
<property name="JSlider.isFilled" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JTable">
<property name="Table.isFileList" class="java.lang.Boolean" />
<property name="JTable.autoStartsEdit" class="java.lang.Boolean" />
<property name="terminateEditOnFocusLost" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JToolBar">
<property name="JToolBar.isRollover" class="java.lang.Boolean" />
</properties>
<properties class="javax.swing.JTree">
<property name="JTree.lineStyle" class="java.lang.String" />
</properties>
<properties class="javax.swing.text.JTextComponent">
<property name="caretAspectRatio" class="java.lang.Double" />
<property name="caretWidth" class="java.lang.Integer" />
</properties>
</component>
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/yunze-eureka/pom.xml" />
<option value="$PROJECT_DIR$/yunze-gateway/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK" />
</project>
+33
View File
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/yunze-C-business/business.iml" filepath="$PROJECT_DIR$/yunze-C-business/business.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-admin/cAdmin.iml" filepath="$PROJECT_DIR$/yunze-consumption-admin/cAdmin.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-order/cOrder.iml" filepath="$PROJECT_DIR$/yunze-consumption-order/cOrder.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-timed-task/cTask.iml" filepath="$PROJECT_DIR$/yunze-timed-task/cTask.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-update/cUpdate.iml" filepath="$PROJECT_DIR$/yunze-consumption-update/cUpdate.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-web/cWeb.iml" filepath="$PROJECT_DIR$/yunze-consumption-web/cWeb.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-web-shopping/cWebShopping.iml" filepath="$PROJECT_DIR$/yunze-consumption-web-shopping/cWebShopping.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-activatedate/cardActivateDate.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-activatedate/cardActivateDate.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-disconnected/cardDisconnected.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-disconnected/cardDisconnected.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-flow/cardFlow.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-flow/cardFlow.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-status/cardStatus.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-status/cardStatus.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-stop/cardStop.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-stop/cardStop.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-consumption-car-api/cardSynApi.iml" filepath="$PROJECT_DIR$/yunze-consumption-car-api/cardSynApi.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-gateway/gateway.iml" filepath="$PROJECT_DIR$/yunze-gateway/gateway.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/iotlink.iml" filepath="$PROJECT_DIR$/.idea/iotlink.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-web/web.iml" filepath="$PROJECT_DIR$/yunze-web/web.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-wechat/wechat.iml" filepath="$PROJECT_DIR$/yunze-wechat/wechat.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-admin/yunze-admin.iml" filepath="$PROJECT_DIR$/yunze-admin/yunze-admin.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-apiCommon/yunze-apiCommon.iml" filepath="$PROJECT_DIR$/yunze-apiCommon/yunze-apiCommon.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-business/yunze-business.iml" filepath="$PROJECT_DIR$/yunze-business/yunze-business.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-common/yunze-common.iml" filepath="$PROJECT_DIR$/yunze-common/yunze-common.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-eureka/yunze-eureka.iml" filepath="$PROJECT_DIR$/yunze-eureka/yunze-eureka.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-framework/yunze-framework.iml" filepath="$PROJECT_DIR$/yunze-framework/yunze-framework.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-generator/yunze-generator.iml" filepath="$PROJECT_DIR$/yunze-generator/yunze-generator.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-quartz/yunze-quartz.iml" filepath="$PROJECT_DIR$/yunze-quartz/yunze-quartz.iml" />
<module fileurl="file://$PROJECT_DIR$/yunze-system/yunze-system.iml" filepath="$PROJECT_DIR$/yunze-system/yunze-system.iml" />
</modules>
</component>
</project>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+101 -70
View File
@@ -1,12 +1,27 @@
<h2 align="center" style=" font-weight: bold;">IoTLink 0.8.0</h2>
<div style="margin-left: 36%">
<a href="https://gitee.com/sdyunze/iotlink/stargazers" target="_blank"><img src="https://gitee.com/sdyunze/iotlink/badge/star.svg?theme=gvp" alt="star"/></a>
<a style="margin-left: 10px;" href="https://gitee.com/sdyunze/iotlink/members" target="_blank"><img src="https://gitee.com/sdyunze/iotlink/badge/fork.svg?theme=gvp" alt="fork"/></a>
</div>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">IoTLink v1.0.0</h1>
<h4 align="center">基于SpringBoot开发的轻量级的物联网综合业务支撑平台</h4>
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">IoTLink</h1>
> 提供开箱即用的物联卡云端SaaS部署和本地私有部署解决方案,为您的物联卡提供数据采集的服务器端PaaS平台支撑。
使用 IoTLink 您可以:
- 业务告警、生命周期分布、业务使用量情况 等一览平台数据信息。
- 管理物联卡 用量记录、套餐封装、在线信息获取、智能诊断、分组备注、企业代理管理、预存、充值、返利 等。
- 微信端 B端企业管理 toB 信息看板数据信息全局掌控 预存、返利、提现、诊断、充值、订单等便携数据处理。
- 微信端 C端用户自查询 卡基本信息、用量、续费、预存、支付密码、常见问题、智能诊断、实名绑定 等 用户自处理操作。
特色功能
1. 业务分离,独立操作 系统功能与业务执行分离 优化用户体验加强业务独立。
2. 上游通道灵活配置,一次对接终生实用,支持二次开发、拓展、拒绝对接费用。
3. 通道轮询进度查看 可查看通道下 用量、生命周期、激活时间 等各个类别轮询进度一手掌握。
4. 关键数据私钥加密保障,全程加密传输 防止爬虫获取数据。
5. 首页 数据一览一手掌控 业务告警、生命周期分布、业务量使用情况、平台数据信息 等。
6. 商品、仓储、客户、合同、入款、发货 ERP企业常用功能拓展即将上线,敬请期待。
@@ -22,23 +37,7 @@ IoTLink基于 SpringBoot、Vue、Mybatis、RabbitMq、Mysql、Redis 等开发,
生命周期:重新定义了物联卡在使用过程中各个特征时期,目前分为七大生命周期,包括:可测试、库存、待激活、已激活、已停机、预销户、已销户(参考移动EC)。
提供开箱即用的物联卡云端SaaS部署和本地私有部署解决方案,为您的物联卡提供数据采集的服务器端PaaS平台支撑。
使用 IoTLink 您可以:
-业务告警、生命周期分布、业务使用量情况 等一览平台数据信息。
-管理物联卡 用量记录、套餐封装、在线信息获取、智能诊断、分组备注、企业代理管理、预存、充值、返利 等。
-微信端 B端企业管理 toB 信息看板数据信息全局掌控 预存、返利、提现、诊断、充值、订单等便携数据处理。
-微信端 C端用户自查询 卡基本信息、用量、续费、预存、支付密码、常见问题、智能诊断、实名绑定 等 用户自处理操作。
特色功能
1. 业务分离,独立操作 系统功能与业务执行分离 优化用户体验加强业务独立。
2. 上游通道灵活配置,一次对接终生实用,支持二次开发、拓展、拒绝对接费用。
3. 通道轮询进度查看 可查看通道下 用量、生命周期、激活时间 等各个类别轮询进度一手掌握。
4. 关键数据私钥加密保障,全程加密传输 防止爬虫获取数据。
5. 首页 数据一览一手掌控 业务告警、生命周期分布、业务量使用情况、平台数据信息 等。
6. 商品、仓储、客户、合同、入款、发货 ERP企业常用功能拓展即将上线,敬请期待。
其他资料正在补充中...
特别鸣谢:[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue),[element](https://github.com/ElemeFE/element),[vue-element-admin](https://github.com/PanJiaChen/vue-element-admin),[eladmin-web](https://github.com/elunez/eladmin-web)
@@ -60,6 +59,7 @@ IoTLink基于 SpringBoot、Vue、Mybatis、RabbitMq、Mysql、Redis 等开发,
![输入图片说明](http://doc.5iot.com/flie/FunctionList.jpg)
## 1.4 愿景
愿所有的物联网公司、物联网从业者、物联网开发者享受开源的魅力。让物联网在不久的将来更具工具化,为各行各业赋能创造。
@@ -133,11 +133,12 @@ com.yunze
├── yunze-consumption-car-stop // 达量停机 消费者
├── yunze-consumption-order // 订单充值 消费者
├── yunze-consumption-update // yz_card_info 表修改 消费者
├── yunze-generator // 代码生成
├── yunze-quartz // 定时任务
├── yunze-system // 系统代码
├── yunze-admin // 后台服务
├── yunze-ui // 页面前端代码
├── yunze-generator // 代码生成
├── yunze-quartz // 定时任务
├── yunze-system // 系统代码
├── yunze-admin // 后台服务
├── yunze-ui // 页面前端代码
├── yunze-timed-task // 定时任务执行
```
@@ -176,11 +177,11 @@ com.yunze
```
## 2.4 文档网站
## 2.4 项目部署
点击下方链接进入官方手册查看项目部署方式:
点击下方链接进入官方语雀帮助手册查看项目部署方式:
[http://doc.5iot.com](http://doc.5iot.com)
[如何快速部署 IoTLink](https://www.5iot.com/doc/?target=/md/deploy)
建议服务器最低配置:
@@ -197,11 +198,11 @@ com.yunze
**常见问题列表**
- [如何快速部署 IoTLink](http://doc.5iot.com/docs/guide/deploy.html)
- [目前支持哪些上游接口](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_1-%E7%9B%AE%E5%89%8D%E6%94%AF%E6%8C%81%E5%93%AA%E4%BA%9B%E4%B8%8A%E6%B8%B8%E6%8E%A5%E5%8F%A3)
- [为什么项目启动时报错](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_3-%E4%B8%BA%E4%BB%80%E4%B9%88%E9%A1%B9%E7%9B%AE%E5%90%AF%E5%8A%A8%E6%97%B6%E6%8A%A5%E9%94%99)
- [数据库使用 Group By 查询报错](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_4-%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BD%BF%E7%94%A8-group-by-%E6%9F%A5%E8%AF%A2%E6%8A%A5%E9%94%99)
- [项目每个分支的作用是什么](http://doc.5iot.com/docs/iotlinkdoc/commonProblem.html#_5-%E9%A1%B9%E7%9B%AE%E6%AF%8F%E4%B8%AA%E5%88%86%E6%94%AF%E7%9A%84%E4%BD%9C%E7%94%A8%E6%98%AF%E4%BB%80%E4%B9%88)
- [如何快速部署 IoTLink](https://www.5iot.com/doc/?target=/md/deploy)
- [目前支持哪些上游接口](https://www.5iot.com/doc/?target=/md/upstreamApi)
- [为什么项目启动时报错](https://www.5iot.com/doc/?target=/md/startError)
- [数据库使用 Group By 查询报错](https://www.5iot.com/doc/?target=/md/sqlError)
- [项目每个分支的作用是什么](https://www.5iot.com/doc/?target=/md/branchDescription)
# 四、最近规划
@@ -219,43 +220,73 @@ com.yunze
# 六、项目截图
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow1-1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow2-1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow2.1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow2.2.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow2.3.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow3.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow4.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow5.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow6.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow7.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow8.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow8.1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow9.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow10.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow10.1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow11.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow12.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow13.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow14.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow15.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow16.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow17.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow18.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow19.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow20.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow21.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow22.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/pageShow23.png">
![首页](http://doc.5iot.com/flie/pageShow/pageShow1-1.png)
## 微信web端
![物联网卡管理](http://doc.5iot.com/flie/pageShow/pageShow2-1.png)
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow1.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow2.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow3.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow4.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow5.png">
<img width="800" alt="light_page" src="http://doc.5iot.com/flie/pageShow/wxpageShow6.png">
![卡详情](http://doc.5iot.com/flie/pageShow/pageShow2.1.png)
![公司所属查询](http://doc.5iot.com/flie/pageShow/pageShow2.2.png)
![更新基础信息](http://doc.5iot.com/flie/pageShow/pageShow2.3.png)
![物联网卡设置](http://doc.5iot.com/flie/pageShow/pageShow3.png)
![平台资费](http://doc.5iot.com/flie/pageShow/pageShow4.png)
![资费订购](http://doc.5iot.com/flie/pageShow/pageShow5.png)
![订购历史](http://doc.5iot.com/flie/pageShow/pageShow6.png)
![用量详情](http://doc.5iot.com/flie/pageShow/pageShow7.png)
![上游通道](http://doc.5iot.com/flie/pageShow/pageShow8.png)
![上游通道详情](http://doc.5iot.com/flie/pageShow/pageShow8.1.png)
![通道进度](http://doc.5iot.com/flie/pageShow/pageShow9.png)
![执行任务管理](http://doc.5iot.com/flie/pageShow/pageShow10.png)
![执行任务下载](http://doc.5iot.com/flie/pageShow/pageShow10.1.png)
![内部管理](http://doc.5iot.com/flie/pageShow/pageShow11.png)
![企业管理](http://doc.5iot.com/flie/pageShow/pageShow12.png)
![角色管理](http://doc.5iot.com/flie/pageShow/pageShow13.png)
![全部订单](http://doc.5iot.com/flie/pageShow/pageShow14.png)
![定时任务](http://doc.5iot.com/flie/pageShow/pageShow15.png)
![菜单管理](http://doc.5iot.com/flie/pageShow/pageShow16.png)
![岗位管理](http://doc.5iot.com/flie/pageShow/pageShow17.png)
![字典管理](http://doc.5iot.com/flie/pageShow/pageShow18.png)
![参数设置](http://doc.5iot.com/flie/pageShow/pageShow19.png)
![日志执行](http://doc.5iot.com/flie/pageShow/pageShow20.png)
![规则管理](http://doc.5iot.com/flie/pageShow/pageShow21.png)
![推送配置](http://doc.5iot.com/flie/pageShow/pageShow22.png)
![推送记录](http://doc.5iot.com/flie/pageShow/pageShow23.png)
![绑定卡号](http://doc.5iot.com/flie/pageShow/wxpageShow1.png)
![主页](http://doc.5iot.com/flie/pageShow/wxpageShow2.png)
![资费订购](http://doc.5iot.com/flie/pageShow/wxpageShow3.png)
![流量查询](http://doc.5iot.com/flie/pageShow/wxpageShow4.png)
![充值记录](http://doc.5iot.com/flie/pageShow/wxpageShow5.png)
![购物下单](http://doc.5iot.com/flie/pageShow/wxpageShow6.png)
Binary file not shown.
Binary file not shown.
+14
View File
@@ -0,0 +1,14 @@
# 目录说明
> 该jar包为 联通接口调用 需使用 (未封装成自然月联通结算周期为27至次月26号23:59:59) 目前
>在`yunze-apiCommon` 打包遇到缺少 com.cu.api 【联通jar包依赖,开源版本中目前暂未使用到,删除依赖即可】 时 可删除 jar依赖
>或者 添加 `IoTGateway-Sdk_2.7_fat.jar` 至你的maven仓库
>PS: -Dfile= ;后面是跟的你的jar地址
## 例:
> mvn install:install-file -Dfile="C:\iotlink\jar\依赖jar\IoTGateway-Sdk_2.7_fat.jar" -DgroupId=com.cu -DartifactId=api -Dversion=2 -Dpackaging=jar
Binary file not shown.
View File
+5 -3
View File
@@ -6,14 +6,14 @@
<groupId>com.yunze</groupId>
<artifactId>yunze</artifactId>
<version>0.8.0</version>
<version>1.0.0</version>
<name>yunze</name>
<url>http://www.5iot.com</url>
<description>IOT综合业务支撑平台</description>
<properties>
<yunze.version>0.8.0</yunze.version>
<yunze.version>1.0.0</yunze.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
@@ -244,7 +244,9 @@
<module>yunze-consumption-car-disconnected</module>
<module>yunze-consumption-web-shopping</module>
<module>yunze-consumption-web</module>
<module>yunze-timed-task</module>
<module>yunze-apiCommon</module>
<module>yunze-consumption-car-api</module>
</modules>
<packaging>pom</packaging>
+19
View File
@@ -0,0 +1,19 @@
## sql 文件夹说明
### 命名规则
> 文件名以 ‘iotdb’ 开头 + 版本号 + 更新日期 如 【iotdb0.5.0-20220112.sql】 为 0.5.0 版本 更新 时间 为 2022-01-12
### 必须执行 SQL queryChildrenAreaInfo.sql
> 'queryChildrenAreaInfo.sql' 为 查询企业下子企业 查询函数 用来控制权限管理 执行该 SQL 需要 root 账号去执行
### 如果您是首次部署 IoTLink
> 如果您是首次部署 IoTLink 请直接执行 最新版本 一键一直版 SQL
### 如果您需要部署 微信端
> 如果您需要部署 微信端 功能 需要 执行 【iotdb0.7.0-202203331-wxWeb.sql】 SQL 文件。
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,22 @@
## 增加子企业查询SQL函数修复bug,该函数需使用数据库root账号在数据库直接运行
set global log_bin_trust_function_creators=TRUE;
CREATE DEFINER=`root`@`%` FUNCTION `queryChildrenAreaInfo`(
`username_set` char(50) charset utf8mb4 collate utf8mb4_0900_ai_ci ) RETURNS varchar(16383) CHARSET utf8
SQL SECURITY INVOKER
BEGIN
DECLARE sTemp VARCHAR(16383);
DECLARE sTempChd VARCHAR(16383);
SET sTemp="";
SET sTempChd = CAST(username_set AS CHAR);
WHILE sTempChd IS NOT NULL DO
SET sTemp= CONCAT(sTemp,",",sTempChd);
SELECT GROUP_CONCAT(dept_id) INTO sTempChd FROM sys_dept WHERE FIND_IN_SET(parent_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END
-168
View File
@@ -183,173 +183,5 @@
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.9" level="project" />
<orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-mp:3.9.6.B" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:2.5.6" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel:2.2.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.19" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
<orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" name="Maven: cglib:cglib:3.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:4.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
<orderEntry type="library" name="Maven: org.ehcache:ehcache:3.8.1" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.3" level="project" />
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" />
<orderEntry type="library" name="Maven: com.opencsv:opencsv:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.9" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-text:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.2" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.5" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: uk.org.lidalia:sysout-over-slf4j:1.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-mail:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.12.1" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.25" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.sun.mail:jakarta.mail:1.6.5" level="project" />
<orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.14" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.2.13.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.2.13.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.13.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.1.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.10.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.19" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.2.12.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.2.12.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.4" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.22" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.4.0" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:3.2" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-devtools:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.4" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-generator:3.4.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.velocity:velocity-engine-core:2.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.10.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.5.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.74" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.41" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.41" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-starter-redis:2.5.9" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-autoconfigure:2.5.9" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-anno:2.5.9" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-core:2.5.9" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-anno-api:2.5.9" level="project" />
<orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.8" level="project" />
<orderEntry type="library" name="Maven: org.mvel:mvel2:2.4.0.Final" level="project" />
<orderEntry type="library" name="Maven: com.alicp.jetcache:jetcache-redis:2.5.9" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.7.0" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:kryo:4.0.2" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:reflectasm:1.11.3" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-test:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.58.Final" level="project" />
<orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-pay:3.9.6.B" level="project" />
<orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-common:3.9.6.B" level="project" />
<orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.11.1" level="project" />
<orderEntry type="library" name="Maven: xmlpull:xmlpull:1.1.3.1" level="project" />
<orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.13" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:29.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.11.1" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.3.4" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.3" level="project" />
<orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
<orderEntry type="library" name="Maven: com.github.binarywang:qrcode-utils:1.1" level="project" />
<orderEntry type="library" name="Maven: com.google.zxing:core:3.2.1" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-http:5.2.0" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-core:5.2.0" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-util:6.0.0" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.65" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.65" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.10.9" level="project" />
<orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-mp:3.9.6.B" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
</component>
</module>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>yunze</artifactId>
<groupId>com.yunze</groupId>
<version>0.8.0</version>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -22,7 +22,10 @@ public class WxConfigInit {
private WxConfigServiceImpl wxConfigService;
/**
* auther:
* return:
* 描述: 获取所有的公众号
* 时间: 2021/12/14 9:40
*/
public List<WxConfig> getConfigs(){
List<WxConfig> configs= wxConfigService.list(new QueryWrapper<WxConfig>()
@@ -17,7 +17,7 @@ import lombok.EqualsAndHashCode;
* </p>
*
* @author yunxi
* @since 2020-12-21
* @since 2021-12-21
*/
@Getter
@Setter
@@ -16,6 +16,9 @@ import java.util.List;
* <p>
* 系统级日志 服务实现类
* </p>
*
* @author wct
* @since 2021-12-21
*/
@Service
public class SysLogsServiceImpl extends ServiceImpl<SysLogsMapper, SysLogs> implements SysLogsService {
@@ -11,7 +11,7 @@ public class CheckIsNull {
* auther:
* return:
* 描述: 检验非空方法
* 时间: 2020/11/22 11:45
* 时间: 2021/11/22 11:45
*/
public static boolean isNull(Object object){
if(null==object){
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<artifactId>yunze</artifactId>
<groupId>com.yunze</groupId>
<version>0.8.0</version>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
@@ -0,0 +1,73 @@
package com.yunze.web.controller.common;
import com.yunze.common.constant.ALiYunSendMessage;
import com.yunze.common.core.redis.RedisCache;
import com.yunze.common.mapper.yunze.commodity.YzWxByProductAgentMapper;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.TimeUnit;
@RestController
@CrossOrigin // 跨域支持
@RequestMapping
public class SmsApiController {
@Resource
private RedisCache redisCache;
@Resource
private ALiYunSendMessage aLiYunSendMessage;
@Resource
private YzWxByProductAgentMapper yzWxByProductAgentMapper;
@GetMapping("/send/{phone}")
public String code(@PathVariable String phone){
int H = 24;
// 调用发送方法
Object code = redisCache.getCacheObject("login_"+phone);
if (code!=null && code.toString().length()>0) { //不等于 空
return "五分钟内不能重复获取!";
}
Object count = redisCache.getCacheObject("login_SendMessageCount_"+phone);
Integer sendCount = count!=null && count.toString().length()>0?Integer.parseInt(count.toString()):0;
Map<String,Object> map = new HashMap<>();
map.put("config_key","login.SendMessageCount");
int maxSendCount = yzWxByProductAgentMapper.SendCount(map);//数据库查询配置参数
if(sendCount >= maxSendCount){
return "["+H+"]小时内不能超过["+maxSendCount+"]次短信验证!";
}
StringBuilder builder = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 6; i++) {
builder.append(random.nextInt(10));//实现验证码 6 位数字
}
// 生成验证码并存储到redis 中
code = builder.toString();
HashMap<String,Object> param = new HashMap<>();
param.put("code",code);
boolean isSend = aLiYunSendMessage.send(phone,"SMS_242220249",param);
if(isSend){
sendCount +=1;
redisCache.setCacheObject("login_SendMessageCount_"+phone, sendCount, H, TimeUnit.HOURS);//设置X小时过期
//设置 5 分钟过期
redisCache.setCacheObject("login_"+phone, code, 5, TimeUnit.MINUTES);//设置5分钟过期
return "验证成功 请查看手机验证码";
}else {
return "发送失败";
}
}
}
@@ -5,8 +5,10 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import com.yunze.common.core.redis.RedisCache;
import com.yunze.common.mapper.yunze.YzUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -46,7 +48,8 @@ public class SysLoginController
private TokenService tokenService;
@Resource
private YzUserMapper yzUserMapper;
@Resource
private RedisCache redisCache;
/**
* 登录方法
@@ -76,6 +79,63 @@ public class SysLoginController
return ajax;
}
/**
* 短信登录方法
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping("/message")
public AjaxResult loginMessage(@RequestBody LoginBody loginBody) throws Exception {
boolean bool = false;
AjaxResult ajax = null;
String username = loginBody.getUsername();
String code = loginBody.getCode();
boolean result = username.matches("[0-9]+");
String password = "";
String message = "";
Object yz_code = redisCache.getCacheObject("login_"+username);
if(yz_code!=null ){
if(code.equals(yz_code)){
if (result == true) {
System.out.println("该字符串是纯数字");
Map<String,Object> fmap = new HashMap<>();
fmap.put("phonenumber",username);
Map<String,String> userMpa = yzUserMapper.user_Massage(fmap);
if(userMpa!=null && userMpa.get("user_name")!=null){
bool = true;
username = userMpa.get("user_name");
password = userMpa.get("password");
}else{
message = "未找到手机号对应账号信息,请核对后重试!";
}
}else{
message = "手机号格式不正确,请核对后重试!";
}
}else{
message = "验证码有误!";
}
}else {
message = "验证码已失效!";
}
if(bool){
ajax = AjaxResult.success();
// 生成令牌
String token = loginService.Massagelogin(username, password,loginBody.getUuid());
System.out.println(token);
ajax.put(Constants.TOKEN, token);
}else{
ajax = AjaxResult.error(message);
}
return ajax;
}
/**
* 获取用户信息
*
@@ -1,10 +1,14 @@
package com.yunze.web.controller.system;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
@@ -249,4 +253,8 @@ public class SysUserController extends BaseController
user.setUpdateBy(SecurityUtils.getUsername());
return toAjax(userService.updateUserStatus(user));
}
}
@@ -1,213 +0,0 @@
package com.yunze.web.controller.yunze;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.domain.AjaxResult;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.IYzCardFlowService;
import com.yunze.system.service.yunze.IYzOrderService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 通道 管理
* 2021-06-19
* @author root
*/
@Api("订单管理")
@RestController
@RequestMapping("/yunze/order")
public class YzOrderController extends MyBaseController
{
@Resource
private IYzOrderService iYzOrderService;
@Resource
private IYzCardFlowService iYzCardFlowService;
/**
* 订单 列表
*/
@PreAuthorize("@ss.hasPermi('yunze:order:list')")
@PostMapping(value = "/list", produces = { "application/json;charset=UTF-8" })
public String list(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<Integer> agent_id = new ArrayList<>();
if(currentUser.getDeptId()!=100){
if(Parammap.get("agent_id")!=null){
List<Integer> P_agent_id = (List<Integer>) Parammap.get("agent_id");
agent_id.addAll(P_agent_id);
}else{
agent_id.add(Integer.parseInt(currentUser.getDeptId().toString()));
Parammap.put("agent_id",agent_id);
}
}
return MyRetunSuccess(iYzOrderService.selMap(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("获取订单 列表信息列表 操作失败!");
}
/**
* 查询 资费计划 信息
*/
@PreAuthorize("@ss.hasPermi('yunze:order:list')")
@PostMapping(value = "/queryPacketSimple", produces = { "application/json;charset=UTF-8" })
public String queryPacketSimple()
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<String> agent_id = new ArrayList<>();
if(currentUser.getDeptId()!=100){
agent_id.add(currentUser.getDeptId().toString());
}else{
agent_id.add(currentUser.getDeptId().toString());
}
Parammap.put("agent_id",agent_id);
return MyRetunSuccess(iYzCardFlowService.queryPacket_simple(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:list <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("获取 【订单】 查询 资费计划 操作失败!");
}
/**
* 查询 订单详情
*/
@PreAuthorize("@ss.hasPermi('yunze:order:findOrder')")
@PostMapping(value = "/findOrder", produces = { "application/json;charset=UTF-8" })
public String findOrder(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(iYzOrderService.findOrder(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:findOrder <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("查询 【订单详情】 操作失败!");
}
/**
* 平台导入充值
* @param file
* @return
*/
@Log(title = "订单管理", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:importRecharge')")
@PostMapping(value = "/importRecharge", produces = { "application/json;charset=utf-8" })
public AjaxResult importRecharge(MultipartFile file,@RequestParam Map<String,String> map)
{
String Pstr = map.get("Pstr").toString();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
Parammap.put("User",User);
Parammap.put("agent_id",User.getDeptId());
return AjaxResult.success(iYzOrderService.importRecharge(file,Parammap));
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:importRecharge <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return AjaxResult.error("平台导入充值 操作失败!");
}
/**
* 导出
* @return
*/
@Log(title = "全部订单导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:outOrder')")
@PostMapping(value = "/outOrder", produces = { "application/json;charset=utf-8" })
public String exportData(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(iYzOrderService.exportallorders(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:outOrder <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("全部订单导出 操作失败!");
}
}
@@ -1,13 +1,12 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.automation;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.controller.BaseController;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.YzCcService;
import com.yunze.system.service.yunze.IYzCcService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,31 +24,31 @@ import java.util.HashMap;
public class YzCcController extends MyBaseController {
@Autowired
private YzCcService YzCcService;
@Autowired
private IYzCcService IYzCcService;
/**
* 执行自动化
*/
@PreAuthorize("@ss.hasPermi('yunze:cc:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(YzCcService.ListCc(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cc:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("自动化 操作失败!");
/**
* 执行自动化
*/
@PreAuthorize("@ss.hasPermi('yunze:cc:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCcService.ListCc(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cc:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("自动化 操作失败!");
}
/**
* 自动化新增
@@ -65,7 +64,7 @@ public class YzCcController extends MyBaseController {
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(YzCcService.YzCcAdd(Parammap), null);
return MyRetunSuccess(IYzCcService.YzCcAdd(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cc:add <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.toString());
@@ -82,7 +81,7 @@ public class YzCcController extends MyBaseController {
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
return MyRetunSuccess(YzCcService.NameAdd(),null);
return MyRetunSuccess(IYzCcService.NameAdd(),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cc:nameadd " + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
@@ -105,7 +104,7 @@ public class YzCcController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(YzCcService.UpdateCc(Parammap), null);
return MyRetunSuccess(IYzCcService.UpdateCc(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cc:update <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
@@ -1,11 +1,10 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.automation;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.YzCcHisService;
import com.yunze.system.service.yunze.YzCcService;
import com.yunze.system.service.yunze.IYzCcHisService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +26,7 @@ import java.util.HashMap;
public class YzCcHisController extends MyBaseController {
@Autowired
private YzCcHisService yzCcHisService;
private IYzCcHisService IYzCcHisService;
/**
* 执行 自动化配置
*/
@@ -42,7 +41,7 @@ public class YzCcHisController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(yzCcHisService.ListCcHis(Parammap), null);
return MyRetunSuccess(IYzCcHisService.ListCcHis(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cchis:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
@@ -1,13 +1,12 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.automation;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.controller.BaseController;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.YzCcUrlService;
import com.yunze.system.service.yunze.IYzCcUrlService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,12 +23,11 @@ import java.util.Map;
@Api("自动化推送")
@RestController
@RequestMapping("/yunze/ccurl")
public class YzCcUrlController extends MyBaseController {
@Autowired
private YzCcUrlService yzCcUrlService;
private IYzCcUrlService IYzCcUrlService;
/**
@@ -46,7 +44,7 @@ public class YzCcUrlController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(yzCcUrlService.ListCcUrl(Parammap), null);
return MyRetunSuccess(IYzCcUrlService.ListCcUrl(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:ccurl:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
@@ -68,7 +66,7 @@ public class YzCcUrlController extends MyBaseController {
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(yzCcUrlService.insertCcUrl(Parammap), null);
return MyRetunSuccess(IYzCcUrlService.insertCcUrl(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:ccurl:add <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.toString());
@@ -91,7 +89,7 @@ public class YzCcUrlController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(yzCcUrlService.updateCcUrl(Parammap), null);
return MyRetunSuccess(IYzCcUrlService.updateCcUrl(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:ccurl:update <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
@@ -114,7 +112,7 @@ public class YzCcUrlController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
Map<String,Object> Rmap = yzCcUrlService.DeleteCcUrl(Parammap);
Map<String,Object> Rmap = IYzCcUrlService.DeleteCcUrl(Parammap);
boolean bool = (boolean) Rmap.get("bool");
String Msg = Rmap.get("Msg").toString();
if(bool){
@@ -0,0 +1,62 @@
package com.yunze.web.controller.yunze.bulk;
import com.alibaba.fastjson.JSON;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.bulk.IYzBulkBusinessService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.HashMap;
/**
* 批量业务受理
* 2022-05-25
*/
@Api("批量业务受理")
@RestController
@RequestMapping("/yunze/business")
public class YzBulkBusinessController extends MyBaseController {
@Resource
private IYzBulkBusinessService IYzBulkBusinessService;
/**
* 批量业务受理 列表查询
*/
@PreAuthorize("@ss.hasPermi('yunze:batchBusiness:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
String dept_id = currentUser.getDeptId().toString();
if(!dept_id.equals("100")){
Parammap.put("agent_id",dept_id);
}
return MyRetunSuccess(IYzBulkBusinessService.getList(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:batchBusiness:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量业务受理 操作失败!");
}
}
@@ -0,0 +1,126 @@
package com.yunze.web.controller.yunze.bulk;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.bulk.IYzBulkBusinessDtailsService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 批量业务受理详情
* 2022-05-25
*/
@Api("批量业务受理详情")
@RestController
@RequestMapping("/yunze/businessDtails")
public class YzBulkBusinessDtailsController extends MyBaseController {
@Autowired
private IYzBulkBusinessDtailsService IYzBulkBusinessDtailsService;
/**
* 批量业务受理详情 列表查询
*/
@PreAuthorize("@ss.hasPermi('yunze:businessDetails:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzBulkBusinessDtailsService.getList(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:businessDetails:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量业务受理详情 操作失败!");
}
/**
* 状态查询列表
*/
@PreAuthorize("@ss.hasPermi('yunze:businessDtails:success')")
@PostMapping(value = "/success", produces = {"application/json;charset=UTF-8"})
public String successArr(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzBulkBusinessDtailsService.successArr(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:businessDetails:success <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("状态查询列表 操作失败!");
}
/**
* 导出
* @return
*/
@Log(title = "状态查询导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:businessDtails:export')")
@PostMapping(value = "/export", produces = { "application/json;charset=utf-8" })
public String exportData(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(IYzBulkBusinessDtailsService.exportallorders(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:businessDtails:export <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("状态查询导出 操作失败!");
}
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.bulk;
import com.alibaba.fastjson.JSON;
import com.yunze.common.core.domain.entity.SysUser;
@@ -11,7 +11,7 @@ import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.common.utils.yunze.CsvToXlsxUtil;
import com.yunze.common.utils.yunze.FileConverter;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.IYzExecutionTaskService;
import com.yunze.system.service.yunze.bulk.IYzExecutionTaskService;
import com.yunze.web.core.config.MyBaseController;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@@ -163,6 +163,7 @@ public class YzExecutionTaskController extends MyBaseController
logger.info("<br/> " + " 公司 " + User.getDept().getDeptName() + " 用户名 " + User.getUserId() + " " + User.getUserName() + " <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ");
CsvOrExcle(path,response);
}
} else {
@@ -188,10 +189,16 @@ public class YzExecutionTaskController extends MyBaseController
String filePath = file2.getCanonicalPath();
filePath = filePath.replaceAll("\\\\","/"); //xlsx file address
filePath += "/mnt/yunze/download/csv/";
//切割出下载的地址请求头
String Prefix = path.split("/")[1];
if(Prefix.equals("getOriginal")){
}else{
filePath += "/mnt/yunze/download/csv/";
}
path = path.substring(Prefix.length() + 2, path.length());
//拼接下载地址
path = filePath + path;
@@ -1,195 +0,0 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.card.IYzAgentAccountService;
import com.yunze.web.core.config.MyBaseController;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* API账号 管理
*/
@RestController
@RequestMapping("/yunze/ApiAccount")
public class YzAgentAccountController extends MyBaseController {
@Resource
private IYzAgentAccountService iYzAgentAccountService;
/**
* 执行API账号查询
*/
@PreAuthorize("@ss.hasPermi('yunze:apiAccount:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String selList(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
List<Integer> agent_idArr = new ArrayList<>();
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
if(!deptId.equals("100")){
if(Parammap.get("agent_id")!=null){
List<Integer> P_agent_id = (List<Integer>) Parammap.get("agent_id");
agent_idArr.addAll(P_agent_id);
}else{
agent_idArr.add(Integer.parseInt(deptId));
Parammap.put("agent_id",agent_idArr);
}
}
return MyRetunSuccess(iYzAgentAccountService.getList(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:polling:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("查询 API账号 操作失败!");
}
/**
* 新增
*/
@Log(title = "API账号新增", businessType = BusinessType.INSERT)
@PreAuthorize("@ss.hasPermi('yunze:apiAccount:save')")
@PostMapping(value = "/save", produces = {"application/json;charset=UTF-8"})
public String save(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(iYzAgentAccountService.save(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:polling:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("新增 API账号 操作失败!");
}
/**
* 修改
*/
@Log(title = "API账号修改", businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('yunze:apiAccount:upd')")
@PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"})
public String upd(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
if(!deptId.equals("100")){
String P_agent_id = Parammap.get("agent_id").toString();
if(!P_agent_id.equals(deptId)){
return Myerr("不允许修改非本企业数据信息!");
}
}
return MyRetunSuccess(iYzAgentAccountService.upd(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:polling:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("修改 API账号 操作失败!");
}
/**
* 获取 agent_id 下 appId
*/
@PreAuthorize("@ss.hasPermi('yunze:apiAccount:find')")
@PostMapping(value = "/IsExaAgentId", produces = {"application/json;charset=UTF-8"})
public String IsExaAgentId(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(iYzAgentAccountService.is_exaAgentId(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:apiAccount:find <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("获取 agent_id 下 appId 操作失败!");
}
/**
* 删除
*/
@Log(title = "API账号删除", businessType = BusinessType.DELETE)
@PreAuthorize("@ss.hasPermi('yunze:apiAccount:del')")
@PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"})
public String Del(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
if(!deptId.equals("100")){
return Myerr("非总企业下用户不开放该功能!");
}
boolean bool = iYzAgentAccountService.del(Parammap);
if(bool){
return MyRetunSuccess("操作成功!", null);
}else{
return Myerr("删除 操作失败!");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:apiAccount:del <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("删除 API账号 操作失败!");
}
}
@@ -1,9 +1,11 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.controller.BaseController;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
@@ -144,9 +146,57 @@ public class YzAgentPackageController extends MyBaseController
*/
/**
* 导出
* @return
*/
@Log(title = "客户资费导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:agentTariffGroup:export')")
@PostMapping(value = "/export", produces = { "application/json;charset=utf-8" })
public String exportData(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(agentPackageService.exportallorders(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:agentTariffGroup:export <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("客户资费导出 操作失败!");
}
@Log(title = "企业资费计划导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:agentTariffGroup:export')")
@PostMapping(value = "/exportPacket", produces = { "application/json;charset=utf-8" })
public String exportPacket(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(agentPackageService.exportPacket(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> exportPacket <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("客户资费导出 操作失败!");
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.yunze.system.service.yunze.IYzAgentPacketService;
import com.yunze.web.core.config.MyBaseController;
@@ -0,0 +1,247 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.mapper.yunze.YzUserMapper;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.card.IYzApplicationforRenewalService;
import com.yunze.web.core.config.MyBaseController;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 续费申请 管理
*/
@RestController
@RequestMapping("/yunze/renewal")
public class YzApplicationforRenewalController extends MyBaseController {
@Resource
private IYzApplicationforRenewalService iYzApplicationforRenewalService;
@Resource
private YzUserMapper yzUserMapper;
/**
* 续费申请 查询
*/
@PreAuthorize("@ss.hasPermi('yunze:renewal:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String selList(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
List<Integer> agent_idArr = new ArrayList<>();
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
if(!deptId.equals("100")){
if(ParaMap.get("agent_id")!=null){
List<Integer> P_agent_id = (List<Integer>) ParaMap.get("agent_id");
agent_idArr.addAll(P_agent_id);
}else{
agent_idArr.add(Integer.parseInt(deptId));
ParaMap.put("agent_id",agent_idArr);
}
}
return MyRetunSuccess(iYzApplicationforRenewalService.selMap(ParaMap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:renewal:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("查询 续费申请 操作失败!");
}
/**
* 查询 企业账户账户金额信息
*/
@PreAuthorize("@ss.hasPermi('yunze:renewal:list')")
@PostMapping(value = "/getDeptPrestore", produces = {"application/json;charset=UTF-8"})
public String getDeptPrestore(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
ParaMap.put("dept_id",deptId);
Map<String, Object> rMap = yzUserMapper.findDeptAmount(ParaMap);
return MyRetunSuccess(rMap, null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:renewal:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("查询 企业账户账户金额信息 操作失败!");
}
/**
* 新增
*/
@Log(title = "新增续费申请", businessType = BusinessType.INSERT)
@PreAuthorize("@ss.hasPermi('yunze:renewal:add')")
@PostMapping(value = "/save", produces = {"application/json;charset=UTF-8"})
public String save(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser sysUser= loginUser.getUser();
String deptId = sysUser.getDeptId().toString();
ParaMap.put("dept_id",deptId);
ParaMap.put("login_dept_id",deptId);
return MyRetunSuccess(iYzApplicationforRenewalService.save(ParaMap,sysUser), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:polling:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("新增 续费申请 操作失败!");
}
/**
* 修改
*/
@Log(title = "修改续费详情", businessType = BusinessType.UPDATE)
@PreAuthorize("@ss.hasPermi('yunze:renewal:upd')")
@PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"})
public String upd(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
if(!deptId.equals("100")){
String P_agent_id = ParaMap.get("agent_id").toString();
if(!P_agent_id.equals(deptId)){
return Myerr("不允许修改非本企业数据信息!");
}
}
return MyRetunSuccess(iYzApplicationforRenewalService.upd(ParaMap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:renewal:upd <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("续费详情修改 操作失败!");
}
/**
* 查询单条
*/
@PreAuthorize("@ss.hasPermi('yunze:renewal:find')")
@PostMapping(value = "/find", produces = {"application/json;charset=UTF-8"})
public String find(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<Integer> agent_id = new ArrayList<>();
if (currentUser.getDeptId() != 100) {
if (ParaMap.get("agent_id") != null) {
List<Integer> P_agent_id = (List<Integer>) ParaMap.get("agent_id");
agent_id.addAll(P_agent_id);
} else {
agent_id.add(Integer.parseInt(currentUser.getDeptId().toString()));
ParaMap.put("agent_id", agent_id);
}
}
return MyRetunSuccess(iYzApplicationforRenewalService.find(ParaMap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:renewal:find <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("查询续费详情 操作失败!");
}
/**
* 查询单条 续费资费计划下 iccid
*/
@PreAuthorize("@ss.hasPermi('yunze:renewal:find')")
@PostMapping(value = "/findIccid", produces = {"application/json;charset=UTF-8"})
public String findIccid(@RequestBody String Pstr) {
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<Integer> agent_id = new ArrayList<>();
if (currentUser.getDeptId() != 100) {
if (ParaMap.get("agent_id") != null) {
List<Integer> P_agent_id = (List<Integer>) ParaMap.get("agent_id");
agent_id.addAll(P_agent_id);
} else {
agent_id.add(Integer.parseInt(currentUser.getDeptId().toString()));
ParaMap.put("agent_id", agent_id);
}
}
return MyRetunSuccess(iYzApplicationforRenewalService.findIccid(ParaMap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> /findIccid <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("查询 续费资费计划下 iccid 操作失败!");
}
}
@@ -0,0 +1,110 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.IYzCardApiOfferinginfoService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 上游套餐分类
* 表名:yz_card_api_offeringinfo
* 2022-4-25
*/
@Api("上游资费组管理")
@RestController
@RequestMapping("/yunze/info")
public class YzCardApiOfferinginfoController extends MyBaseController {
@Autowired
private IYzCardApiOfferinginfoService IYzCardApiOfferinginfoService;
/**
* 执行 上游资费组管理
*/
@PreAuthorize("@ss.hasPermi('yunze:offeringinfolist:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCardApiOfferinginfoService.getList(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:offeringinfo:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr(" 上游资费组管理 操作失败!");
}
/**
* 删除ID
*/
@PreAuthorize("@ss.hasPermi('yunze:offeringinfo:delete')")
@PostMapping(value = "/delete", produces = {"application/json;charset=UTF-8"})
public String Delete(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardApiOfferinginfoService.deleteInfo(Parammap);
if(bool){
return MyRetunSuccess("操作成功!",null);
}else{
return Myerr("删除失败!");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:offeringinfo:delete <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr(" 删除ID 操作失败!");
}
/**
* 修改
*/
@PreAuthorize("@ss.hasPermi('yunze:offeringinfo:update')")
@PostMapping(value = "/update", produces = {"application/json;charset=UTF-8"})
public String Update (@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardApiOfferinginfoService.updateInfo(Parammap);
if(bool){
return MyRetunSuccess("操作成功!",null);
}else{
return Myerr("修改失败!");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:offeringinfo:update <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr(" 修改 操作失败!");
}
}
@@ -0,0 +1,59 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.IYzCardApiOfferinginfolistService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 上游接口返回已订购资费信息
* 表名:yz_card_api_offeringinfolist
* 2022-4-25
*/
@Api("上游已订购套餐")
@RestController
@RequestMapping("/yunze/folist")
public class YzCardApiOfferinginfolistController extends MyBaseController {
@Autowired
private IYzCardApiOfferinginfolistService IYzCardApiOfferinginfolistService;
/**
* 执行 上游已订购套餐
*/
@PreAuthorize("@ss.hasPermi('yunze:offeringinfolist:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCardApiOfferinginfolistService.Listfolist(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:offeringinfolist:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("上游已订购套餐 操作失败!");
}
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
@@ -42,7 +42,7 @@ public class YzCardFlowController extends MyBaseController
/**
* 查询套餐信息
*/
@PreAuthorize("@ss.hasPermi('yunze:card:diagnosis')")
@PreAuthorize("@ss.hasPermi('yunze:flow:list')")
@PostMapping(value = "/queryflow", produces = { "application/json;charset=utf-8" })
public String queryflow(@RequestBody String Pstr)
{
@@ -93,7 +93,7 @@ public class YzCardFlowController extends MyBaseController
/**
* 查询 简要 资费计划 名称
* 查询 简要 资费计划 名称
*/
@PreAuthorize("@ss.hasPermi('yunze:cardFlow:queryPackageSimple')")
@PostMapping(value = "/queryPackageSimple", produces = { "application/json;charset=utf-8" })
@@ -1,8 +1,7 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.controller.BaseController;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
@@ -11,7 +10,7 @@ import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.YzCardFlowHisService;
import com.yunze.system.service.yunze.IYzCardFlowHisService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,10 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 用量详情
@@ -35,7 +31,7 @@ import java.util.Map;
@RequestMapping("/yunze/flowhis")
public class YzCardFlowHisController extends MyBaseController {
@Autowired
private YzCardFlowHisService yrootlowHisService;
private IYzCardFlowHisService yrootlowHisService;
/**
* 执行用量详情
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
@@ -347,5 +347,58 @@ public class YzCardPackageController extends MyBaseController
return Myerr("选择资费组时加载出对应的通道 操作失败!");
}
/**
* 导出
* @return
*/
@Log(title = "平台资费导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:tariffGroup:export')")
@PostMapping(value = "/export", produces = { "application/json;charset=utf-8" })
public String exportData(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(cardPackageService.exportallorders(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:tariffGroup:export <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("平台资费导出 操作失败!");
}
@Log(title = "资费计划导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:tariffGroup:export')")
@PostMapping(value = "/exportPacket", produces = { "application/json;charset=utf-8" })
public String exportPacket(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(cardPackageService.exportPacket(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:tariffGroup:export <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("平台资费导出 操作失败!");
}
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
@@ -186,4 +186,32 @@ public class YzCardPacketController extends MyBaseController
/**
* 续费查询
*/
@PreAuthorize("@ss.hasPermi('yunze:renewal:list')")
@PostMapping(value = "/findToBR", produces = { "application/json;charset=UTF-8" })
public String findToBR(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
Parammap.put("login_dept_id",currentUser.getDeptId());
return MyRetunSuccess(cardPacketService.findToBR(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:tariffPlan:findPacket <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.toString());
}
return Myerr("平台 划分资费计划 查询 异常!");
}
}
@@ -0,0 +1,52 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.IYzCardUsageReminderService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 上游返回套餐记录信息
* 2022-4-11
*/
@Api("上游返回套餐记录信息")
@RestController
@RequestMapping("/yunze/usage")
public class YzCardUsageReminderController extends MyBaseController {
@Autowired
private IYzCardUsageReminderService IYzCardUsageReminderService;
/**
* 上游返回套餐记录信息 列表
*/
@PreAuthorize("@ss.hasPermi('yunze:cardSetmeal:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String SynFlow(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCardUsageReminderService.list(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cardSetmeal:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("上游返回套餐记录信息 操作失败!");
}
}
@@ -0,0 +1,407 @@
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.domain.AjaxResult;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.IYzCardFlowService;
import com.yunze.system.service.yunze.IYzOrderService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 通道 管理
* 2021-06-19
* @author root
*/
@Api("订单管理")
@RestController
@RequestMapping("/yunze/order")
public class YzOrderController extends MyBaseController
{
@Resource
private IYzOrderService iYzOrderService;
@Resource
private IYzCardFlowService iYzCardFlowService;
/**
* 订单 列表
*/
@PreAuthorize("@ss.hasPermi('yunze:order:list')")
@PostMapping(value = "/list", produces = { "application/json;charset=UTF-8" })
public String list(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<Integer> agent_id = new ArrayList<>();
if(currentUser.getDeptId()!=100){
if(Parammap.get("agent_id")!=null){
List<Integer> P_agent_id = (List<Integer>) Parammap.get("agent_id");
agent_id.addAll(P_agent_id);
}else{
agent_id.add(Integer.parseInt(currentUser.getDeptId().toString()));
Parammap.put("agent_id",agent_id);
}
}
return MyRetunSuccess(iYzOrderService.selMap(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("获取订单 列表信息列表 操作失败!");
}
/**
* 查询 资费计划 信息
*/
@PreAuthorize("@ss.hasPermi('yunze:order:list')")
@PostMapping(value = "/queryPacketSimple", produces = { "application/json;charset=UTF-8" })
public String queryPacketSimple()
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<String> agent_id = new ArrayList<>();
if(currentUser.getDeptId()!=100){
agent_id.add(currentUser.getDeptId().toString());
}else{
agent_id.add(currentUser.getDeptId().toString());
}
Parammap.put("agent_id",agent_id);
return MyRetunSuccess(iYzCardFlowService.queryPacket_simple(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:list <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("获取 【订单】 查询 资费计划 操作失败!");
}
/**
* 查询 订单详情
*/
@PreAuthorize("@ss.hasPermi('yunze:order:findOrder')")
@PostMapping(value = "/findOrder", produces = { "application/json;charset=UTF-8" })
public String findOrder(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(iYzOrderService.findOrder(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:findOrder <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("查询 【订单详情】 操作失败!");
}
/**
* 平台导入充值
* @param file
* @return
*/
@Log(title = "订单管理", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:importRecharge')")
@PostMapping(value = "/importRecharge", produces = { "application/json;charset=utf-8" })
public AjaxResult importRecharge(MultipartFile file,@RequestParam Map<String,String> map)
{
String Pstr = map.get("Pstr").toString();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
Parammap.put("User",User);
Parammap.put("agent_id",User.getDeptId());
return AjaxResult.success(iYzOrderService.importRecharge(file,Parammap));
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:importRecharge <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return AjaxResult.error("平台导入充值 操作失败!");
}
/**
* 导出
* @return
*/
@Log(title = "全部订单导出", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:outOrder')")
@PostMapping(value = "/outOrder", produces = { "application/json;charset=utf-8" })
public String exportData(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
return MyRetunSuccess(iYzOrderService.exportallorders(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:outOrder <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("全部订单导出 操作失败!");
}
/**
* 导入查询、卡号类别
*
* @param file
* @return
*/
@Log(title = "资费订单导入查询", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:cardNumberAge')")
@PostMapping(value = "/cardNumberAge", produces = {"application/json;charset=utf-8"})
public AjaxResult CardNumberImport(MultipartFile file, @RequestParam Map<String, String> map) {
String Pstr = map.get("Pstr").toString();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
Parammap.put("User", User);
List<Integer> agent_id = new ArrayList<>();
if (User.getDeptId() != 100) {
if (Parammap.get("agent_id") != null) {
List<Integer> P_agent_id = (List<Integer>) Parammap.get("agent_id");
agent_id.addAll(P_agent_id);
} else {
agent_id.add(Integer.parseInt(User.getDeptId().toString()));
Parammap.put("agent_id", agent_id);
}
}
try {
return AjaxResult.success(AesEncryptUtil.encrypt(JSON.toJSONString(iYzOrderService.CardNumberImport(file, Parammap))));
} catch (Exception e) {
return AjaxResult.error(AesEncryptUtil.encrypt(JSON.toJSONString("返回数据加密操作失败")));
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:cardNumberAge <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return AjaxResult.error("资费订单导入查询 操作失败!");
}
/**
* 退订 不操作 下面的内容
*/
@PreAuthorize("@ss.hasPermi('yunze:order:nobscribe')")
@PostMapping(value = "/nobscribe", produces = { "application/json;charset=UTF-8" })
public String NoTbscribe(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
List<Integer> agent_id = new ArrayList<>();
if(currentUser.getDeptId()!=100){
if(Parammap.get("agent_id")!=null){
List<Integer> P_agent_id = (List<Integer>) Parammap.get("agent_id");
agent_id.addAll(P_agent_id);
}else{
agent_id.add(Integer.parseInt(currentUser.getDeptId().toString()));
Parammap.put("agent_id",agent_id);
}
}
Parammap.put("TaskAgent_id", agent_id);
return MyRetunSuccess(iYzOrderService.NoTbscribe(Parammap,currentUser),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:nobscribe <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("获取退订 不操作 操作失败!");
}
/**
* 勾选执行加包
*/
@PreAuthorize("@ss.hasPermi('yunze:order:package')")
@PostMapping(value = "/package", produces = { "application/json;charset=UTF-8" })
public String TimeOrder(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(iYzOrderService.getPackage(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:package <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("勾选执行加包 操作失败!");
}
/**
* 平台充值 [文本域]操作
* @return
*/
@Log(title = "订单管理", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:TextRecharge')")
@PostMapping(value = "/TextRecharge", produces = { "application/json;charset=utf-8" })
public String TextRecharge(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
Parammap.put("User",User);
Parammap.put("agent_id",User.getDeptId());
return MyRetunSuccess(iYzOrderService.TextRecharge(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:importRecharge <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("平台充值 [文本域] 操作失败!");
}
/**
* 平台充值 [文本域]操作-企业
* @return
*/
@Log(title = "企业订单", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('yunze:order:DeptTextRecharge')")
@PostMapping(value = "/DeptTextRecharge", produces = { "application/json;charset=utf-8" })
public String DeptTextRecharge(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> ParaMap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
ParaMap.putAll(JSON.parseObject((String) Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
ParaMap.put("User",User);
ParaMap.put("agent_id",User.getDeptId());
ParaMap.put("dept_id",User.getDeptId());
ParaMap.put("login_dept_id",User.getDeptId());
return MyRetunSuccess(iYzOrderService.DeptTextRecharge(ParaMap,User),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:order:importRecharge <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("平台充值 [文本域] 操作失败!");
}
/**
* 查询已充值的卡号数据
* @return
*/
@PreAuthorize("@ss.hasPermi('yunze:order:DeptTextRecharge')")
@PostMapping(value = "/findRecharged", produces = { "application/json;charset=utf-8" })
public String findRecharged(@RequestBody String Pstr)
{
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
HashMap<String, Object> Parammap = new HashMap<String, Object>();
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject((String) Pstr));
return MyRetunSuccess(iYzOrderService.findRecharged(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> findRecharged <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("查询已充值的卡号数据 操作失败!");
}
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card;
import com.alibaba.fastjson.JSON;
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card.channel;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
@@ -0,0 +1,159 @@
package com.yunze.web.controller.yunze.card.channel;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.IYzCardPollingErrorService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 轮询错误详情
* 2022-5-16
* */
@Api("轮询错误详情")
@RestController
@RequestMapping("/yunze/error")
public class YzCardPollingErrorController extends MyBaseController {
@Autowired
private IYzCardPollingErrorService IYzCardPollingErrorService;
@PreAuthorize("@ss.hasPermi('yunze:error:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String listError(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCardPollingErrorService.listError(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:error:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("轮询错误详情 操作失败!");
}
/**
* 单个修改轮询错误详情
* */
@PreAuthorize("@ss.hasPermi('yunze:error:upd')")
@PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"})
public String UpdateId(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorService.upd(Parammap);
if(bool){
return MyRetunSuccess("修改成功",null);
}else{
return Myerr("修改失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:error:upd <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("单个修改轮询错误详情 操作失败!");
}
/**
* 单个删除轮询错误详情
* */
@PreAuthorize("@ss.hasPermi('yunze:error:del')")
@PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"})
public String DeleteId(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorService.del(Parammap);
if(bool){
return MyRetunSuccess("删除成功",null);
}else{
return Myerr("删除失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:error:del <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("单个删除轮询错误详情 操作失败!");
}
/**
* 批量删除轮询错误详情
* */
@PreAuthorize("@ss.hasPermi('yunze:error:delArr')")
@PostMapping(value = "/delArr", produces = {"application/json;charset=UTF-8"})
public String DeleteArr(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorService.delArr(Parammap);
if(bool){
return MyRetunSuccess("批量删除成功",null);
}else{
return Myerr("批量删除失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:error:delArr <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量删除轮询错误详情 操作失败!");
}
/**
* 批量修改轮询错误详情
* */
@PreAuthorize("@ss.hasPermi('yunze:error:updArr')")
@PostMapping(value = "/updArr", produces = {"application/json;charset=UTF-8"})
public String UpdateArr(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorService.updArr(Parammap);
if(bool){
return MyRetunSuccess("批量修改成功",null);
}else{
return Myerr("批量修改失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:error:updArr <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量修改轮询错误详情 操作失败!");
}
}
@@ -0,0 +1,160 @@
package com.yunze.web.controller.yunze.card.channel;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.IYzCardPollingErrorGroupService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
/**
* 轮询错误概要
* 2022-5-16
* */
@Api("轮询错误概要")
@RestController
@RequestMapping("/yunze/group")
public class YzCardPollingErrorGroupController extends MyBaseController {
@Autowired
private IYzCardPollingErrorGroupService IYzCardPollingErrorGroupService;
@PreAuthorize("@ss.hasPermi('yunze:group:list')")
@PostMapping(value = "/list", produces = {"application/json;charset=UTF-8"})
public String listGroup(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(IYzCardPollingErrorGroupService.listGroup(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:group:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("轮询错误概要 操作失败!");
}
/**
* 单个删除轮询错误概要
* */
@PreAuthorize("@ss.hasPermi('yunze:group:del')")
@PostMapping(value = "/del", produces = {"application/json;charset=UTF-8"})
public String DeleteId(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorGroupService.del(Parammap);
if(bool){
return MyRetunSuccess("删除成功",null);
}else{
return Myerr("删除失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:group:del <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("单个删除轮询错误概要 操作失败!");
}
/**
* 单个修改轮询错误概要
* */
@PreAuthorize("@ss.hasPermi('yunze:group:upd')")
@PostMapping(value = "/upd", produces = {"application/json;charset=UTF-8"})
public String UpdateId(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorGroupService.upd(Parammap);
if(bool){
return MyRetunSuccess("修改成功",null);
}else{
return Myerr("修改失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:group:upd <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("单个修改轮询错误概要 操作失败!");
}
/**
* 批量删除轮询错误概要
* */
@PreAuthorize("@ss.hasPermi('yunze:group:delArr')")
@PostMapping(value = "/delArr", produces = {"application/json;charset=UTF-8"})
public String DeleteArr(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorGroupService.delArr(Parammap);
if(bool){
return MyRetunSuccess("批量删除成功",null);
}else{
return Myerr("批量删除失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:group:delArr <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量删除轮询错误概要 操作失败!");
}
/**
* 批量修改轮询错误概要
* */
@PreAuthorize("@ss.hasPermi('yunze:group:updArr')")
@PostMapping(value = "/updArr", produces = {"application/json;charset=UTF-8"})
public String UpdateArr(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
boolean bool = IYzCardPollingErrorGroupService.updArr(Parammap);
if(bool){
return MyRetunSuccess("批量修改成功",null);
}else{
return Myerr("批量修改失败");
}
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:group:updArr <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("批量修改轮询错误概要 操作失败!");
}
}
@@ -1,15 +1,11 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card.channel;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
import com.yunze.common.core.controller.BaseController;
import com.yunze.common.core.domain.AjaxResult;
import com.yunze.common.core.domain.entity.SysDictData;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.enums.BusinessType;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.StringUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.spring.SpringUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
@@ -17,16 +13,11 @@ import com.yunze.framework.web.service.TokenService;
import com.yunze.system.service.yunze.IYzCardRouteService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 通道 管理
@@ -268,6 +259,28 @@ public class YzCardRouteController extends MyBaseController
}
/*
* 选择运营商时加载出对应的通道
* */
@PreAuthorize("@ss.hasPermi('yunze:cardRoute:operator')")
@PostMapping(value = "/operator", produces = { "application/json;charset=UTF-8" })
public String operatorName(@RequestBody String Pstr)
{
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if(Pstr!=null){
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(iYzCardRouteService.operatorName(Parammap),null);
}catch (Exception e){
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:cardRoute:operator <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ",e.getCause().toString());
}
return Myerr("选择运营商时加载出对应的通道 操作失败!");
}
}
@@ -1,9 +1,9 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card.wechart;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
import com.yunze.common.utils.yunze.AesEncryptUtil;
import com.yunze.system.service.yunze.YzCategoryService;
import com.yunze.system.service.yunze.IYzCategoryService;
import com.yunze.web.core.config.MyBaseController;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +25,7 @@ import java.util.HashMap;
public class YzCategoryController extends MyBaseController {
@Autowired
private YzCategoryService YzCategoryService;
private IYzCategoryService IYzCategoryService;
/**
* 执行商品分类
@@ -41,7 +41,7 @@ public class YzCategoryController extends MyBaseController {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
// System.out.println(map);
Parammap.putAll(JSON.parseObject(Pstr));
return MyRetunSuccess(YzCategoryService.CategoryList(Parammap), null);
return MyRetunSuccess(IYzCategoryService.CategoryList(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> yunze:shop:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.card.wechart;
import com.alibaba.fastjson.JSON;
@@ -2,6 +2,7 @@ package com.yunze.web.controller.yunze.sysgl;
import com.alibaba.fastjson.JSON;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.yunze.common.core.domain.entity.SysUser;
import com.yunze.common.core.domain.model.LoginUser;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;
@@ -145,6 +146,87 @@ public class MySysDeptController extends MyBaseController {
/**
* 企业预存 【平台操作】
*/
@PreAuthorize("@ss.hasPermi('yunze:dept:sysPreSaved')")
@PostMapping(value = "/sysPreSaved", produces = {"application/json;charset=UTF-8"})
public String sysPreSaved(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
Pstr = Pstr.replace(" ", "+");//转义 ' '
}
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
String dept_id = currentUser.getDeptId().toString();
if(dept_id.equals("100")){
Parammap.put("ip",ip);
Map<String,Object> Rmap = iMySysDeptService.sysPreSaved(Parammap);
boolean bool = (boolean) Rmap.get("bool");
String Msg = Rmap.get("Msg").toString();
if(bool){
return MyRetunSuccess(Rmap,Msg);
}else{
return Myerr(Msg);
}
}else{
logger.info(">>[越权操作] ip :{} ,用户信息 {}<<",ip,JSON.toJSONString(currentUser));
return Myerr("禁止非总企业用户操作!");
}
} catch (Exception e) {
logger.error("<br/> /yunze/MySysDept/sysPreSaved <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("企业预存 【平台操作】 操作失败!");
}
/**
* 预存抵扣 【平台操作】
*/
@PreAuthorize("@ss.hasPermi('yunze:dept:sysDeduct')")
@PostMapping(value = "/sysDeduct", produces = {"application/json;charset=UTF-8"})
public String sysDeduct(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
Pstr = Pstr.replace(" ", "+");//转义 ' '
}
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser currentUser = loginUser.getUser();
String dept_id = currentUser.getDeptId().toString();
if(dept_id.equals("100")){
Parammap.put("ip",ip);
Map<String,Object> Rmap = iMySysDeptService.sysDeduct(Parammap);
boolean bool = (boolean) Rmap.get("bool");
String Msg = Rmap.get("Msg").toString();
if(bool){
return MyRetunSuccess(Rmap,Msg);
}else{
return Myerr(Msg);
}
}else{
logger.info(">>[越权操作] ip :{} ,用户信息 {}<<",ip,JSON.toJSONString(currentUser));
return Myerr("禁止非总企业用户操作!");
}
} catch (Exception e) {
logger.error("<br/> /yunze/MySysDept/sysPreSaved <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("企业预存 【平台操作】 操作失败!");
}
}
@@ -52,10 +52,38 @@ public class YzIndexpageController extends MyBaseController {
return MyRetunSuccess(iYzIndexpageService.findToDay(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> system:polling:list <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
logger.error("<br/> index:findToDay <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("首页数据加载 操作失败!");
}
/**
* 资产明细统计图加载
*/
@PreAuthorize("@ss.hasPermi('yunze:index:assetDetails')")
@PostMapping(value = "/assetDetails", produces = {"application/json;charset=UTF-8"})
public String AssetDetails(@RequestBody String Pstr) {
HashMap<String, Object> Parammap = new HashMap<String, Object>();
if (Pstr != null) {
Pstr = Pstr.replace("%2F", "/");//转义 /
}
try {
Pstr = AesEncryptUtil.desEncrypt(Pstr);
Parammap.putAll(JSON.parseObject(Pstr));
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
SysUser User = loginUser.getUser();
Parammap.put("dept_id",User.getDeptId());
Parammap.put("user_id",User.getUserId());
return MyRetunSuccess(iYzIndexpageService.assetDetails(Parammap), null);
} catch (Exception e) {
String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
logger.error("<br/> index:assetDetails <br/> Pstr = " + Pstr + " <br/> ip = " + ip + " <br/> ", e.getCause().toString());
}
return Myerr("资产明细统计图加载 操作失败!");
}
}
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.sysgl;
import com.alibaba.fastjson.JSON;
import com.yunze.common.utils.ServletUtils;
import com.yunze.common.utils.ip.IpUtils;;
@@ -1,4 +1,4 @@
package com.yunze.web.controller.yunze;
package com.yunze.web.controller.yunze.sysgl;
import com.alibaba.fastjson.JSON;
import com.yunze.common.annotation.Log;
@@ -30,7 +30,7 @@ import java.util.HashMap;
import java.util.List;
/**
* 执行日志信息
* 用户信息
* 2021-06-21
* @author root
*/
@@ -32,7 +32,10 @@ public class MyBaseController extends BaseController
protected String MyRetunSuccess(Object obj,String msg)
{
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
String deptId = "";
if(loginUser!=null){
deptId = loginUser.getUser().getDeptId().toString();
}
msg = msg!=null?msg:"操作成功";
Map<String, Object> Rmap = new HashMap<String, Object>();
Rmap.put("code",HttpStatus.SUCCESS);
@@ -51,8 +54,11 @@ public class MyBaseController extends BaseController
protected String Myerr(String Msg)
{
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = loginUser.getUser().getDeptId().toString();
LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
String deptId = "";
if(loginUser!=null){
deptId = loginUser.getUser().getDeptId().toString();
}
//LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
//String deptId = loginUser.getUser().getDeptId().toString();
Map<String ,Object> map = new HashMap<>();
@@ -3,7 +3,7 @@ yunze:
# 名称
name: IoTLink
# 版本
version: 0.8.0
version: 1.0.0
# 版权年份
copyrightYear: 2022v
# 实例演示开关
+11 -7
View File
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
<facet type="Spring" name="Spring">
<configuration />
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
@@ -75,7 +75,6 @@
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-starter:1.2.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.8" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: com.github.penggle:kaptcha:2.3.2" level="project" />
<orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235-1" level="project" />
<orderEntry type="library" name="Maven: com.github.oshi:oshi-core:5.6.0" level="project" />
@@ -104,6 +103,12 @@
<orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" />
<orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" />
<orderEntry type="module" module-name="yunze-common" />
<orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.0.3" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.1.14" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.12.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.2.13.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.2.8.RELEASE" level="project" />
@@ -169,11 +174,10 @@
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
<orderEntry type="library" name="Maven: net.sourceforge.javacsv:javacsv:2.0" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: javax.mail:mail:1.5.0-b01" level="project" />
<orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
<orderEntry type="library" name="Maven: com.yunze:yunze-apiCommon:0.8.0" level="project" />
<orderEntry type="module" module-name="yunze-apiCommon" />
<orderEntry type="library" name="Maven: com.cu:api:2" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.16" level="project" />
<orderEntry type="library" name="Maven: org.jumpmind.symmetric:symmetric-csv:3.5.19" level="project" />
<orderEntry type="library" name="Maven: com.belerweb:pinyin4j:2.5.1" level="project" />
<orderEntry type="module" module-name="yunze-generator" />
+142
View File
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>yunze</artifactId>
<groupId>com.yunze</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>yunze-apiCommon</artifactId>
<dependencies>
<!--联通API 单jar -->
<dependency>
<groupId>com.cu</groupId>
<artifactId>api</artifactId>
<version>2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.0</version>
<scope>compile</scope>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>org.dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
</dependencies>
<build>
<!-- 这样也可以把所有的xml文件,打包到相应位置。-->
<finalName>yunze-apiCommon</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.yml</include>
<include>**/*.xml</include>
<include>**/*.tld</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>
@@ -0,0 +1,60 @@
package com.yunze.apiCommon.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class RedisUtil {
public static RedisTemplate redisTemplate;
@Autowired
public void setRedisTemplate(RedisTemplate redisTemplate) {
RedisUtil.redisTemplate = redisTemplate;
}
public Long increment(String key,int i){
return redisTemplate.opsForValue().increment(key, i);
}
public void set(String key,String val,int timeout,TimeUnit type){
redisTemplate.opsForValue().set(key, val, timeout, type);
}
public void set(String key,String val){
redisTemplate .opsForValue().set(key, val);
}
public Object get(String key){
return redisTemplate.opsForValue().get(key);
}
public boolean expire(String key,int timeout,TimeUnit type){
return redisTemplate.expire(key, timeout, type);
}
public void setAccessToken(Object o){
redisTemplate.opsForValue().set("accessToken",o,2,TimeUnit.HOURS);
}
/**
* 描述: 删除指定的key
*/
public boolean delKey(String key){
return redisTemplate.delete(key);
}
public void set(String key,Object o){
redisTemplate.opsForValue().set(key,o,4,TimeUnit.HOURS);
}
}
@@ -0,0 +1,258 @@
package com.yunze.apiCommon.mapper;
import java.util.List;
import java.util.Map;
public interface YzCardRouteMapper {
/**
* 查询
*
* @param map
* @return
* @throws Exception
*/
List<Map<String, String>> sel_Map(Map map);
/**
* 查询 单卡所属通道信息
*
* @param map
* @return
*/
public Map<String, Object> find_route(Map<String, Object> map);
/**
* 修改记录
*
* @param map 表字段 map 对象
*/
public int update(Map<String, Object> map);
/**
* 修改 通道状态
*
* @param map 表字段 map 对象
*/
public int update_cd_status(Map<String, Object> map);
/**
* 查询总数
*
* @param map
* @return
* @throws Exception
*/
public int sel_Map_Count(Map map);
/**
* 删除记录
*
* @param map 表字段 map 对象
*/
public int delete(Map<String, Object> map);
/**
* 新增
*
* @param map 表字段 map 对象
*/
public int add(Map<String, Object> map);
/**
* 查询 用户 创建 通道信息
*
* @param map 表字段 map 对象
*/
public List<Map<String, Object>> find_route_list(Map<String, Object> map);
/**
* 查询 通道简要信息
*/
public List<Map<String, Object>> find_simple(Map<String, Object> map);
/**
* 查询 通道简要信息
*/
public List<Map<String, Object>> find_sp();
/**
* 查询 通道简要信息 状态为 正常 划分通道用
*/
public List<Map<String, Object>> find_cr();
/**
* 查询 通道信息
*
* @return
*/
public Map<String, Object> find(Map<String, Object> map);
/**
* 导出通道信息
*
* @param map
* @return
*/
public List<Map<String, Object>> outChannel(Map<String, Object> map);
/**
* 查询卡信息
*
* @param map
* @return
*/
public Map<String, Object> findCard(Map map);
//查询卡 iccid
public Map<String, Object> findIccid(Map map);
//查询资费计划
public List<Map<String, Object>> findFlow(Map map);
//接口 获取资费计划
public List<Map<String, Object>> findFlowArr(Map map);
/**
* 获取轮询通道信息
*
* @return
*/
public List<Map<String, Object>> findRouteID(Map map);
/**
* 查询通道id
*
* @return
*/
public List<String> findIDArr();
/**
* 查询 卡表里已经划分 的 通道信息
*
* @return
*/
public List<String> findCardChannelID();
/**
* 查询 设置上停机阈值 的 通道信息
*
* @return
*/
public List<String> findRemindRatioChannelID();
/**
* 查询 设置未订购停机 的 通道信息
*
* @return
*/
public List<String> findIsDisconnectedChannelID();
/**
* 查询 通道信息
*
* @param map
* @return
*/
public Map<String, Object> getRoute(Map<String, Object> map);
/**
* 平台使用量
* @param map
* @return
*/
public String find_Out_used(Map<String, Object> map);
/**
* 查询 企业是否可订购 资费计划
* @param map
* @return
*/
public Integer findSubscribe(Map<String, Object> map);
/**
* 查询 代理 可用 资费计划
* @param map
* @return
*/
public List<Map<String, Object>> findTariffplan(Map map);
/**
* 查询代理所属卡号
* @param map
* @return
*/
public Integer IsExistence(Map<String, Object> map);
/**
* 查询 通道简要信息 运营类型 通道id arr 类型
*/
public List<Map<String, Object>> find_simpleOperatorArr(Map<String, Object> map);
/**
* 通道 id 查询卡总数
*/
public List<Map<String, Object>> countId(Map map);
/*
* 通道 id 修改 卡总数
*/
public Integer upCount(Map map);
/**
* 查询自费组树结构,进行赋值
* @param map
*/
public List<Map<String,Object>> ruepkeFz(Map map);
/**
* 删除中间表通道ID
*/
public boolean deleteID(Map map);
/**
* 选择运营商时加载出对应的通道
*/
public List<Map<String,Object>> operatorName(Map map);
/**
* 通道名查找通道名称和密码
* @param map
* @return
*/
public Map<String,Object> findUsername(Map map);
/**
* 修改 key
* @param map
* @return
*/
public int updateKey(Map map);
}
@@ -0,0 +1,24 @@
package com.yunze.apiCommon.mapper;
import java.util.List;
import java.util.Map;
public interface YzIpWhitelistMapper {
/**
* 查询 允许向内部发送token 的白名单
*
* @param map
* @return
*/
public Map<String, Object> findWIp(Map<String, Object> map);
}
@@ -0,0 +1,45 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP;
import java.util.Map;
/**
* 电信 CMP 系统 API 接口
*/
public class DX_CMP_Api {
//构造赋值
public DX_CMP_Api(Map<String, Object> init_map){
user_id = init_map.get("cd_username").toString();
// 秘钥密码
password = init_map.get("cd_pwd").toString();
// key
key = init_map.get("cd_key").toString();
key1 = key.substring(0, 3);
key2 = key.substring(3, 6);
key3 = key.substring(6, 9);
}
// 服务器请求地址
protected String server_Ip = "http://api.ct10649.com:9001";
// user_id
protected String user_id = null;
// 秘钥密码
protected String password = null;
// 配置调用的名称
protected String Config_name = "";
//
protected String key =null;
protected String key1 = null;
protected String key2 = null;
protected String key3 = null;
}
@@ -0,0 +1,730 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP.Inquire;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DX_CMP_Api;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DesUtils;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.change.serviceAccept_DX;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import com.yunze.apiCommon.utils.XmlUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
/**
* 查询类接口
*/
public class Query_DX extends DX_CMP_Api {
protected Logger logger = Logger.getLogger(String.valueOf(this.getClass()));
public Query_DX(Map<String, Object> init_map) {
super(init_map);
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");//
map.put("cd_pwd", "");//
map.put("cd_key", "");//
Query_DX Qy = new Query_DX(map);
serviceAccept_DX OPtion = new serviceAccept_DX(map);
List<String> list = new ArrayList<>();
list.add("141");//
for (int i = 0; i <1 ; i++) {
System.out.println(Qy.queryOwe(list.get(i),"0"));
System.out.println(Qy.queryOwe(list.get(i),"1"));
}
}
/**
* 流量查询(当月)接口
* @param access_number SIM ID
*/
public Map<String, Object> query(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "queryTraffic";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("needDtl", "0");
String[] arr = {access_number,user_id,password,method }; //加密数组,数组所需
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
// System.out.println(param_url);
String res = HttpUtil.get(param_url);
//System.out.println(res);
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 电信[流量查询(当月)接口] 返回数据错误!"+res);
}
return rMap;
}
/**
* 套餐使用量批量查询接口
* @param access_numbers SIM ID
*/
public Map<String, Object> querys(String access_numbers) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "queryPakagePlus";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_numbers);
params.put("monthDate", "20201001");
String[] arr = {user_id,password,method }; //加密数组,数组所需
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//System.out.println(res);
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.err.print(Config_name+" 电信 [套餐使用量批量查询接口] 返回数据错误!");
}
return rMap;
}
/**
* 流量查询(时间段)接口
* @param access_numbers 149 短号
* @param startDate 开始时间
* @param endDate 结束时间
* @param needDtl 是否需要明细 0:只返回总使用量,1:返回明细。建议使用0
* @return
*/
public Map<String, Object> queryTrafficByDate(String access_numbers,String startDate,String endDate,String needDtl) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "queryTrafficByDate";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_numbers);
params.put("startDate", startDate);
params.put("endDate", endDate);
params.put("needDtl", needDtl);
String[] arr = {access_numbers,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
// System.out.println(param_url);
String res = HttpUtil.get(param_url);
// System.out.println(res);
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.err.print(Config_name+" 电信 [套餐使用量批量查询接口] 返回数据错误!");
}
return rMap;
}
/**
* 卡主状态查询接口
* @param access_number 149 短号
* @return
*/
public String queryCardMainStatus(String access_number) {
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "queryCardMainStatus";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
return res;
}
/**
* 机卡断开网状态查询
* author:
* date:2021.05.21
* @param access_number 149 短号
* @return
*/
public String queryMainOnlineStatus(String access_number) {
// 拼接接口地址
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "getOnlineStatus";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
// params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机
String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//System.out.println(res);
return res;
}
/**
* 机卡绑定状态查询
* author:
* date:2021.05.24
* @param imei 号
* @return
*/
public String queryMainCardBIndStatus(String imei) {
// 拼接接口地址
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "queryIMSI";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("imei", imei);
// params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机
String[] arr = {imei,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
return res;
}
/**
* 实名状态查询接口
* @param access_number 149 短号
* @return
*/
public Map<String, Object> realNameQueryIot(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "realNameQueryIot";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
// params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机
String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.err.print(Config_name+" 电信 [实名状态查询接口] 返回数据错误!");
}
return rMap;
}
/**
* 在线状态和会话信息查询接口
* @param access_number
* @return
*/
public Map<String, Object> getOnlineStatus(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "getOnlineStatus";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
// params.put("queryDropCard", true);//若该字段存在且传值为true,则查询拆机状态,否则不查询拆机
String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
System.out.println(res);
return rMap;
}
/**
* 基站粗定位接口
* @param access_number
* @return
*/
public String getLocationByPhone(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "getLocationByPhone";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
String[] arr = {access_number,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据iccid查询时加密数组里面传入iccid
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
System.out.println(res);
//解析响应密文
String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数
return position;
}
/**
* SIM卡列表查询接口
* @param access_number
* @return
*/
public String getSIMList(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "getSIMList";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("pageIndex", "1");
String[] arr = {user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
System.out.println(res);
//解析响应密文
String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数
return position;
}
/**
* 前向流量池内各成员查询接口
* @param access_number
* @return
*/
public String forwardFlowPoolMember(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "forwardFlowPoolMember";
//请求参数 Json
Map<String, Object> params = null;
String pageIndex = "1";
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("pageIndex", pageIndex);
String[] arr = {user_id,password,method, pageIndex,access_number }; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
System.out.println(res);
//解析响应密文
String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数
return position;
}
/**
* 接入号码查询接口
* @param iccid
* @return
*/
public String getTelephone(String iccid) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "getTelephone";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("iccid", iccid);
String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
// System.out.println(res);
//解析响应密文
String position= des.strDec(res,key1,key2,key3); //定位数据解密,调用DES解密函数
return position;
}
/**
* 套餐使用量查询接口
* @param iccid
* @return
*/
public String queryPakage(String iccid) {
String api_url = server_Ip + "/m2m_ec/query.do";
String method = "queryPakage";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("iccid", iccid);
String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//解析响应密文
String position = res; //定位数据解密,调用DES解密函数
try {
position = JSON.toJSONString(XmlUtil.xmlToMap(res));
} catch (Exception e) {
System.err.println(Config_name+" 电信CMP [套餐使用量查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage());
}
return position;
}
/**
* 余额查询接口
* @param iccid
* @return
*/
public String queryBalance(String iccid) {
String api_url = server_Ip + "/m2m_ec/query.do";
String method = "queryBalance";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("iccid", iccid);
String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//解析响应密文
String position = res; //定位数据解密,调用DES解密函数
try {
position = JSON.toJSONString(XmlUtil.xmlToMap(res));
} catch (Exception e) {
System.err.println(Config_name+" 电信CMP [余额查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage());
}
return position;
}
/**
* 流量池列表查询接口
* @return
*/
public String getPoolList() {
String api_url = server_Ip + "/m2m_ec/query.do";
String method = "getPoolList";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
String[] arr = {user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//解析响应密文
String position = res; //定位数据解密,调用DES解密函数
try {
position = JSON.toJSONString(XmlUtil.xmlToMap(res));
} catch (Exception e) {
System.err.println(Config_name+" 电信CMP [流量池列表查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage());
}
return position;
}
/**
* 产品资料查询接口
* @return
*/
public String prodInstQuery(String iccid) {
String api_url = server_Ip + "/m2m_ec/query.do";
String method = "prodInstQuery";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", iccid);
String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档,根据imsi查询时加密数组传入imsi
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//解析响应密文
String position = res; //定位数据解密,调用DES解密函数
try {
position = JSON.toJSONString(XmlUtil.xmlToMap(res));
} catch (Exception e) {
System.err.println(Config_name+" 电信CMP [产品资料查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage());
}
return position;
}
/**
* 欠费查询接口
* @return
*/
public String queryOwe(String iccid,String Query_Flag) {
String api_url = server_Ip + "/m2m_ec/query.do";
String method = "queryOwe";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", iccid);
params.put("Query_Flag", Query_Flag);
String[] arr = {iccid,user_id,password,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//解析响应密文
String position = res; //定位数据解密,调用DES解密函数
try {
position = JSON.toJSONString(XmlUtil.xmlToMap(res));
} catch (Exception e) {
System.err.println(Config_name+" 电信CMP [欠费查询接口 接口] 返回结果异常 "+res+" e "+e.getMessage());
}
return position;
}
}
@@ -0,0 +1,375 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP.change;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DX_CMP_Api;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.DesUtils;
import com.yunze.apiCommon.utils.CommonlyUsed;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import com.yunze.apiCommon.utils.XmlUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class serviceAccept_DX extends DX_CMP_Api {
public serviceAccept_DX(Map<String, Object> init_map) {
super(init_map);
}
/**
* 判断 在限速 标准 中
* @param speedValue
* @return bool = true 在标准中
*/
public Map<String,Object> speedValue_set(String speedValue){
boolean bool = false;
Map<String,Object> map = new HashMap<String,Object>();
List<String> rule = new ArrayList<String>();
rule.add("10");rule.add("11");rule.add("12");rule.add("13");rule.add("14");
rule.add("15");rule.add("16");rule.add("17");rule.add("18");rule.add("19");
rule.add("20");rule.add("21");rule.add("23");rule.add("24");rule.add("25");
rule.add("26");rule.add("27");rule.add("28");rule.add("29");rule.add("30");
rule.add("31");rule.add("32");rule.add("33");
if(speedValue.equals("0")){
speedValue = "31";//不限制
}else if(speedValue.equals("1")){
speedValue = "12";//1Mbps
}
bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中
map.put("speedValue",speedValue);
map.put("bool",bool);
return map;
}
/**
* 自主限速接口
* @param access_number
* @param speedValue
* 限速带宽速率:
* 10 1Kbps
* 11 512Kbps
* 12 1Mbps
* 13 3Mbps
* 14 5Mbps
* 15 7Mbps
* 16 10Mbps
* 17 20Mbps
* 18 30Mbps
* 19 40Mbps
* 20 50Mbps
* 21 60Mbps
* 22 70Mbps
* 23 80Mbps
* 24 90Mbps
* 25 100Mbps
* 26 110Mbps
* 27 120Mbps
* 28 130Mbps
* 29 140Mbps
* 30 150Mbps
* 31 不限制
* 32 64Kbps
* 33 256Kbps
* @param action action=ADD,表示设置上网速率;action=DEL,表示退订自主限速(此场景speedValue传固定值10)
* @return
*/
public String speedLimitAction(String access_number,String speedValue,String action) {
////System.out.println("action "+action);
// 拼接接口地址 /m2m_ec/app/serviceAccept.do
String api_url = server_Ip + "/m2m_ec/app/serviceAccept.do";
// speedLimitAction
String method = "speedLimitAction";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("access_number", access_number);
params.put("speedValue", speedValue);// 速率
params.put("action", action);
params.put("user_id", user_id);
//
String[] arr = {access_number,user_id,password,method,speedValue,action }; //加密数组,数组所需
//key1,key2,key2为电信提供的9位长接口密钥平均分为三段所形成
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("passWord", passWord);
params.put("sign", sign);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
return res;
}
/**
* 达量断网 接口
* @param access_number 物联网接入号(149或10649号段
* @param quota 断网阈值设置为1024M
* @param action 新增达量断网功能时action为1,如果已经添加了达量断网功能,需要修改断网阈值,则action设置为2,取消达量断网功能,action设置为3
* @return
*/
public Map<String, Object> offNetAction(String access_number,String quota,String action) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "offNetAction";
//请求参数 Json
Map<String, Object> params = null;
String type = "1"; //设置为1表示用户总使用量,设置为2表示超出套餐外
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("action", action);
params.put("type", type);
params.put("quota", quota);
String[] arr = {access_number,user_id,password,action,quota,type,method}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
////System.out.println(params.toString());
////System.out.println(UrlUtil.getUrl(api_url, params));
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
////System.out.println(res);
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
System.err.println(Config_name+" 电信 [达量断网 接口] 返回结果异常");
}
return rMap;
}
/**
* 单独添加/恢复断网接口
* @param access_number
* @param action
* @return
*/
public Map<String, Object> singleCutNet(String access_number,String action) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "singleCutNet";
//请求参数 Json
Map<String, Object> params = null;
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("action", action); //单独添加断网时action为ADD,单独恢复上网时为DEL
String[] arr = {access_number,user_id,password,action,method}; //加密数组,数组所需
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
////System.out.println(res);
if(res.indexOf("流水号")==-1 && res.length()>50) {
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
System.err.println(Config_name+" 电信 [单独添加/恢复断网接口] 返回结果异常");
}
}else {
rMap = new HashMap<>();
rMap.put("rspcode", res.substring(0,2));
rMap.put("rspdesc", res.substring(2,res.length()));
}
return rMap;
}
/**
* 停机保号/复机/测试期去激活
*
* @param access_number SIM ID
*/
public Map<String, Object> disabledNumber(String access_number,String orderTypeId) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "disabledNumber";
//请求参数 Json
Map<String, Object> params = null;
String acctCd = "";//固定字段,保持为空
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("acctCd", acctCd);
params.put("orderTypeId", orderTypeId); //19表示停机保号,20表示停机保号后复机,21表示测试期去激活,22表示测试期去激活后回到测试激活
String[] arr = {access_number,user_id,password,method, acctCd, orderTypeId }; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
//System.out.println(param_url);
String res = HttpUtil.get(param_url);
System.out.println(res);
if(res.indexOf("流水号")==-1 && res.length()>50) {
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
System.err.println(Config_name+" 电信 [单独添加/恢复断网接口] 返回结果异常");
}
}else {
rMap = new HashMap<>();
rMap.put("rspcode", res.substring(0,2));
rMap.put("rspdesc", res.substring(2,res.length()));
}
return rMap;
}
public static void main(String[] args) {
Map<String, Object> init_map=new HashMap<>();
serviceAccept_DX serviceAccept_dx=new serviceAccept_DX(init_map);
//serviceAccept_dx.
}
public Map<String, Object> xxx(String access_number) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = "http://api.ct10649.com:9001/m2m_ec/query.do";
//
String method = "queryBindDetection";
//请求参数 Json
Map<String, Object> params = null;
String acctCd = "";//固定字段,保持为空
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);// speedLimitAction (固定值) 方法名
params.put("user_id", "hzsjdxxkjyxgs");//user_id
params.put("access_number", access_number);
params.put("acctCd", acctCd);
//params.put("orderTypeId", orderTypeId); //19表示停机保号,20表示停机保号后复机,21表示测试期去激活,22表示测试期去激活后回到测试激活
String[] arr = {access_number,"//user_id","TmW7063M3dV0S39b",method, acctCd }; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
//Ft337yA59
String passWord = des.strEnc("TmW7063M3dV0S39b","Ft3","37y","A59"); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),"Ft3","37y","A59"); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//System.out.println(res);
if(res.indexOf("流水号")==-1 && res.length()>50) {
try {
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
System.err.println(" 电信 [单独添加/恢复断网接口] 返回结果异常");
}
}else {
rMap = new HashMap<>();
rMap.put("rspcode", res.substring(0,2));
rMap.put("rspdesc", res.substring(2,res.length()));
}
return rMap;
}
/**
* 机卡重绑
* @param access_number
* @param bind_type
* @param imei
* @return
* {"Response":{"RspType":"1","RspCode":"-5","RspDesc":"业务校验失败(单卡本月调用次数已超过限定次数!)"},"GROUP_TRANSACTIONID":"1000000168"}
* {"Response":{"RspType":"0","RspCode":"0000","RspDesc":"成功接收消息"},"GROUP_TRANSACTIONID":"1000000168"}
*/
public String IMEIReRecord(String access_number,String bind_type,String imei) {
Map<String, Object> rMap = null;
// 拼接接口地址 /m2m_ec/query.do
String api_url = server_Ip + "/m2m_ec/query.do";
//
String method = "IMEIReRecord";
//请求参数 Json
Map<String, Object> params = null;
String action = "ADD"; //固定值
// 拼接请求参数
params = new HashMap<String, Object>();
params.put("method", method);//
params.put("user_id", user_id);
params.put("access_number", access_number);
params.put("action", action);
params.put("bind_type", bind_type);//不填,表示普通机卡重绑 填写2,表示固定机卡重绑
if(bind_type.equals("2")){
params.put("imei", imei);//只有在bind_typ=2时才需传入,表示固定绑定到该设备号
}
String[] arr = {access_number ,user_id,password,method,action}; //加密数组,数组所需参数根据对应的接口文档
DesUtils des = new DesUtils(); //DES加密工具类实例化
String passWord = des.strEnc(password,key1,key2,key3); //密码加密
String sign = des.strEnc(DesUtils.naturalOrdering(arr),key1,key2,key3); //生成sign加密值
params.put("sign", sign);
params.put("passWord", passWord);
String param_url = UrlUtil.getUrl(api_url, params);
String res = HttpUtil.get(param_url);
//System.out.println(res);
return res;
}
}
@@ -0,0 +1,69 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G;
import java.util.*;
/**
* 电信CMP5G API 接口
*/
public class DianXin_DCP5G_Api {
//构造赋值
public DianXin_DCP5G_Api(Map<String, Object> init_map){
appKey = init_map.get("cd_username").toString();
secretKey = init_map.get("cd_pwd").toString();
timestamp = SignUtil.getCurTimestamp();
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("AppKey", appKey);
headers.put("Timestamp", timestamp);
}
// 服务器请求地址 https://cmp-api.ctwing.cn:20164
protected static String server_Ip = "https://cmp-api.ctwing.cn:20164";
// 用户登录名称
public static String appKey = null;
public static String secretKey = null;
public static Map<String, String> headers = null;
public static String timestamp = null;
// 配置调用的名称
protected static String Config_name = "";
public static String getSign(Map<String,Object> map) {
List<String> list=new ArrayList<>(map.keySet());
Collections.sort(list);
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
String k =list.get(i);
String v=(String )map.get(k);
if(sb.length()==0){
sb.append(k).append("=").append(v);
}else {
sb.append("&").append(k).append("=").append(v);
}
}
//System.out.println(sb);
String Sign = "";
try {
Sign = SignUtil.signMD5(sb + secretKey + timestamp);
}catch (Exception e){
}
headers.put("Sign", Sign);
return Sign; //生成sign加密值;
}
}
@@ -0,0 +1,272 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.Inquire;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.DianXin_DCP5G_Api;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.change.ServiceAccept_DX5G;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import com.yunze.apiCommon.utils.XmlUtil;
import java.util.*;
import java.util.logging.Logger;
/**
* 查询类接口
*/
public class Query_DX5G extends DianXin_DCP5G_Api {
protected Logger logger = Logger.getLogger(String.valueOf(this.getClass()));
public Query_DX5G(Map<String, Object> init_map) {
super(init_map);
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");//
map.put("cd_pwd", "");//
Query_DX5G Qy = new Query_DX5G(map);
ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(map);
List<String> list = new ArrayList<>();
list.add("1410");//
for (int i = 0; i <1 ; i++) {
System.out.println(Qy.getOnlineStatus(list.get(i)));
}
}
/**
* 流量查询(当月)接口
*/
public Map<String, Object> queryTraffic(String access_number,String needDtl) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/api/v1/openbill/queryTraffic";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("needDtl", needDtl);
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 在线状态和会话信息查询
*/
public Map<String, Object> getOnlineStatus(String access_number) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/openapi/v1/prodinst/getOnlineStatus";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 产品资料查询
*/
public Map<String, Object> prodInstQuery(String access_number) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/openapi/v1/prodinst/prodInstQuery";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = XmlUtil.xmlToMap(res);;
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 已订购产品查询
*/
public Map<String, Object> qryProdInstInfo(String access_number) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/api/v1/prod/qryProdInstInfo/"+access_number;
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 查询 SIM 卡主状态及从状态
*/
public Map<String, Object> queryCardMainStatus(String access_number,String queryDropCard) {
Map<String, Object> rMap = null;
String res = null;
queryDropCard = queryDropCard!=null?queryDropCard:"false";
// 拼接接口地址
String Config_name = "/openapi/v1/prodinst/queryCardMainStatus";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("queryDropCard", queryDropCard);//是否需要查询拆机状态,若该字段存在且传值为 true,则查询拆机状态,否则不查询 拆机
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 2.3.4. CTIOT_5GCMP_LC005-卡变更状态记录查询
*/
public Map<String, Object> cradStatus(String access_number,String page,String size) {
Map<String, Object> rMap = null;
String res = null;
page = page!=null?page:"1";
size = size!=null?size:"6";
// 拼接接口地址
String Config_name = "/openapi/v1/prodinst/cradStatus";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("page", page);//
params.put("size", size);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 2.1.8. CTIOT_5GCMP_BQ008-实名状态查询
*/
public Map<String, Object> realNameQueryIot(String access_number) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/openapi/v1/prodinst/realNameQueryIot";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = XmlUtil.xmlToMap(res);;
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 2.2.11. CTIOT_5GCMP_PM011-前向流量池成员查询
*/
public Map<String, Object> forwardFlowPoolMember(String access_number,String pageIndex) {
Map<String, Object> rMap = null;
String res = null;
pageIndex = pageIndex!=null?pageIndex:"1";
// 拼接接口地址
String Config_name = "/openapi/v1/flowpool/forwardFlowPoolMember";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("pageIndex", pageIndex);//
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
}
@@ -0,0 +1,83 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @Auther: zhang feng
* @Date: 2022/05/25/10:02
* @Description:
*/
public class SignUtil {
public static final String ENCODE = "UTF-8";
private static final String MD5_ALGORITHM = "MD5";
public static final String DATE_FORMAT_PATTERN ="yyyyMMddHHmmss";
public static String getCurTimestamp() {
long timestamp = System.currentTimeMillis();
Date date = new Date(timestamp);
SimpleDateFormat dateFormat = new
SimpleDateFormat(DATE_FORMAT_PATTERN, Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
return dateFormat.format(date);
}
public static String signMD5(String reqStr) throws Exception {
char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
byte[] btInput = reqStr.getBytes();
MessageDigest mdInst = MessageDigest.getInstance(MD5_ALGORITHM);
mdInst.update(btInput);
byte[] md = mdInst.digest();
int j = md.length;
char[] str = new char[j * 2];
int k = 0;
for (byte byte0 : md) {
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
return bytesToHexString(new
String(str).getBytes(ENCODE)).toUpperCase(Locale.US);
}
public static String bytesToHexString(byte[] b) {
StringBuilder sb = new StringBuilder();
for (byte value : b) {
String hex = Integer.toHexString(value & 0xFF);
if (hex.length() == 1) {
hex = '0' + hex;
}
sb.append(hex);
}
return sb.toString();
}
public static String order(String params) throws Exception {
Map<String, String> map = new HashMap<>();
try {
String[] kvs = params.split("&");
for (String kv :kvs) {
String[] kav = kv.split("=");
map.put(kav[0], kav[1]);
}
} catch (Exception e) {
throw new Exception("URL 参数不规范");
}
List<String> tmp = new ArrayList<>();
List<Map.Entry<String, String>> infoIds = new ArrayList<>(map.entrySet());
infoIds.sort(Map.Entry.comparingByKey());
for (Map.Entry<String, String> item :infoIds) {
tmp.add(item.getKey() + "=" + item.getValue());
}
return String.join("&", tmp);
}
public static void main(String[] args) throws Exception {
String paramStr = "a=1&c=3&b=2";
String bodyStr = "{\"name\":\"xf\",\"age\":\"dd\"}";
paramStr = order(paramStr);
long timestamp = System.currentTimeMillis();
String reqStr = paramStr + bodyStr ;
String secretKey = "d1209cfefe895364e03";
String Sign = signMD5(reqStr + secretKey + timestamp);
System.out.println(Sign);
}
}
@@ -0,0 +1,99 @@
package com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.change;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.DianXin_DCP5G_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import com.yunze.apiCommon.utils.XmlUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
/**
* 查询类接口
*/
public class ServiceAccept_DX5G extends DianXin_DCP5G_Api {
public ServiceAccept_DX5G(Map<String, Object> init_map) {
super(init_map);
}
/**
* 2.3.2. CTIOT_5GCMP_LC002- 停机保号相关
* @param access_number
* @param orderTypeId 停机保号类型:
* 19表示停机保号
* 20表示停机保号复机
* 21表示去激活停机
* 22 表示去激活复机
* @return
*/
public Map<String, Object> disabledNumberService(String access_number, String orderTypeId) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/5gcmp/openapi/v1/common/disabledNumberService";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("acctCd", "");//文档中没有 ,请求示例中有 不传入会报错!
params.put("orderTypeId", orderTypeId);
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
System.out.println(res);
rMap = XmlUtil.xmlToMap(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
/**
* 2.7.2. CTIOT_5GCMP_MAPN002- APN 上网功能启用、停止操作
* @param access_number
* @param action :
* 执行动作
* action=ADD,表示此 APN 可以上网;
* action=DEL,表示此APN 不可以上网;
* @return
*/
public Map<String, Object> apnNetStatusAction(String access_number, String action) {
Map<String, Object> rMap = null;
String res = null;
// 拼接接口地址
String Config_name = "/openapi/v1/subscribers/apnNetStatusAction";
String api_url = server_Ip +Config_name;
Map<String,Object> params = new HashMap<String,Object>();
params.put("access_number", access_number);//
params.put("action", action);
getSign(params); //生成sign加密值
String param_url = UrlUtil.getUrl(api_url, params,true);
try {
res = HttpUtil.get(param_url,headers);
System.out.println(res);
rMap = JSON.parseObject(res);
} catch (Exception e) {
rMap = new HashMap<>();
rMap.put("error",res);
System.out.println(Config_name+" 返回数据错误!"+res);
}
return rMap;
}
}
@@ -0,0 +1,148 @@
package com.yunze.apiCommon.upstreamAPI.DianXinDCP;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.json.XML;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.net.ssl.HttpsURLConnection;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.*;
import java.util.concurrent.TimeUnit;
@Component
public class DCPLoginUtil {
private static String urls = "https://si.global.ct10649.com/api/dcpsiapi/login";
@Resource
private RedisTemplate<String, Object> redisTemplate;
public String getToken(String username,String password){
CloseableHttpClient closeableHttpClient=null;
CloseableHttpResponse closeableHttpResponse=null;
try {
closeableHttpClient= HttpClientBuilder.create().build();
HttpPost httpPost=new HttpPost();
httpPost.setURI(new URI(urls));
httpPost.setHeader("Content-Type","application/json;charset=utf-8");
JSONObject jsonObject=new JSONObject();
jsonObject.put("username", username);
jsonObject.put("password",password);
StringEntity param=new StringEntity(jsonObject.toJSONString(),"utf-8");
httpPost.setEntity(param);
closeableHttpResponse=closeableHttpClient.execute(httpPost);
HttpEntity httpEntity=closeableHttpResponse.getEntity();
String enstr= EntityUtils.toString(httpEntity,"utf-8");
JSONObject data= JSON.parseObject(enstr);
System.out.println(data);
String token=data.getJSONObject("data").getString("token");
//保存到redis
redisTemplate.opsForValue().set("dcp_token",token,10, TimeUnit.MINUTES);
return token;
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(null!=closeableHttpClient){
closeableHttpClient.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if(null!=closeableHttpResponse){
closeableHttpResponse.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
public HttpURLConnection createConnection(URI uri) throws IOException {
URL url = uri.toURL();
URLConnection connection = url.openConnection();
HttpsURLConnection httpsURLConnection = (HttpsURLConnection) connection;
// httpsURLConnection.setSSLSocketFactory(new TLSSocketConnec());
return httpsURLConnection;
}
public static org.json.JSONObject httpSoap(String soap_url , String xml) {
DCPLoginUtil httpsUrlConnectionMessageSender = new DCPLoginUtil();
HttpURLConnection connection;
try {
connection = httpsUrlConnectionMessageSender.createConnection(new URI(soap_url ));
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
connection.connect();
//POST请求
OutputStreamWriter os = null;
String json="";
os = new OutputStreamWriter(connection.getOutputStream());
os.write(xml);
os.flush();
json=getResponse(connection);
org.json.JSONObject jsons=XML.toJSONObject(json);
if (connection != null) {
connection.disconnect();
return jsons;
}
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
}
return null;
}
public static String getResponse(HttpURLConnection Conn) throws IOException {
InputStream is;
if (Conn.getResponseCode() >= 400) {
is = Conn.getErrorStream();
} else {
is = Conn.getInputStream();
}
String response = "";
byte buff[] = new byte[512];
int b = 0;
while ((b = is.read(buff, 0, buff.length)) != -1) {
response += new String(buff, 0, b);
}
is.close();
return response;
}
}
@@ -0,0 +1,736 @@
package com.yunze.apiCommon.upstreamAPI.DianXinDCP;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.net.ssl.HttpsURLConnection;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
@Component
public class DcpDxService {
//接口
private static String soap_url = "https://global.ct10649.com/dcpapi/SubscriptionManagement?WSDL=";
@Resource
private DCPLoginUtil dcpLoginUtil;
@Resource
private RedisTemplate<String, Object> redisTemplate;
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd","");
map.put("cd_key", "");
DcpDxService ds = new DcpDxService();
System.out.println(ds.changeCardStatus("8986","3",map));
}
/**
* auther:
* return:
* 描述: 更新限速
* 上行速率:1 1kbps
* 2 64kbps
* 3 128kbps
* 4 512kbps
* 5 1Mbps
* 6 3Mbps
* 7 5Mbps
* 8 7Mbps
* 9 10Mbps
* 10 20Mbps
* 11 30Mbps
* 12 40Mbps
* 13 50Mbps
* 14 60Mbps
* 15 70Mbps
* 下行速率:
* 16 80Mbps
* 17 90Mbps
* 18 100Mbps
* 19 110Mbps
* 20 120Mbps
* 21 130Mbps
* 22 140Mbps
* 23 150Mbps
*/
public Map<String,Object> changeLimit(String tel,
String upValue,String dwValue,Map<String,Object> infoMap){
JSONObject jsonMap = new JSONObject();
JSONObject json = new JSONObject();
jsonMap.put("state", "false");
jsonMap.put("info", "api调用失败");
jsonMap.put("data","0");
try {
//获取流量地址
String url = "https://si.global.ct10649.com/api/dcpsiapi/ue/ambr/update";
json.put("msisdn", tel);
json.put("UE_AMBR_UL", upValue);
json.put("UE_AMBR_DL", dwValue);
String js = getDocking(url,json,infoMap);
JSONObject jsonObject= JSONObject.parseObject(js);
Object data = jsonObject.get("msg");
if(data.toString().equals("success")){
jsonMap.put("state", "true");
jsonMap.put("info", "成功");
jsonMap.put("data",data);
}
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(jsonMap);
return jsonMap;
}
/**
* return:
* 描述: 查询是否限速
*/
public Map<String,Object> queryLimit(String tel,Map<String,Object> infoMap){
JSONObject jsonMap = new JSONObject();
JSONObject json = new JSONObject();
jsonMap.put("state", "false");
jsonMap.put("info", "api调用失败");
jsonMap.put("data","0");
try {
//获取流量地址
String url = "https://si.global.ct10649.com/api/dcpsiapi/ue/" +
"ambr/query?msisdn="+tel;
String js = doGet(url,infoMap);
JSONObject jsonObject= JSONObject.parseObject(js);
Object code = jsonObject.get("status");
Object data = jsonObject.get("data");
if(code.toString().equals("200")){
jsonMap.put("state", "true");
jsonMap.put("info", "成功");
jsonMap.put("data",data);
}
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(jsonMap);
return jsonMap;
}
/**
* return:
* 描述: 查询实名
*/
public Map<String,Object> queryAuth(String iccid,String tel,Map<String,Object> infoMap){
JSONObject jsonMap = new JSONObject();
jsonMap.put("state", "false");
jsonMap.put("info", "api调用失败");
jsonMap.put("data","0");
try {
//获取流量地址
String url = "https://si.global.ct10649.com/api/dcpsiapi/ct" +
"/subscriptionQuery?iccid="+iccid+"&msisdn="+tel+"&isAuth=1";
jsonMap.put("iccid",iccid);
jsonMap.put("msisdn",tel);
jsonMap.put("isAuth","1");
String js = doGet(url, infoMap);
JSONObject jsonObject= JSONObject.parseObject(js);
Object code = jsonObject.get("status");
Object data = jsonObject.get("data");
if(code.toString().equals("200")){
jsonMap.put("state", "true");
jsonMap.put("info", "成功");
jsonMap.put("data",data);
}
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(jsonMap);
return jsonMap;
}
/**
* return:
* 描述: 流量查询
*/
public Map<String,Object> queryFlow(String tel,Map<String,Object> infoMap){
JSONObject jsonMap = new JSONObject();
JSONObject jsonMaps = new JSONObject();
jsonMap.put("state", "false");
jsonMap.put("info", "api调用失败");
jsonMap.put("data","0");
String sjyyyy = getMonthLastDayyyyy(0); //获取本年
String sjmm = getMonthLastDaymm(0); //获取本月
String sjdd = getMonthLastDaydd(); //获取本日
try {
//获取流量地址
String url = "https://si.global.ct10649.com/api/dcpsiapi/iccid/"+tel+"/trafficUsageHistory";
String month = sjyyyy+"-"+sjmm;
JSONArray jsonArray = new JSONArray();
jsonArray.add("ALL");
//j String[] strs = new String[]{"GPRS"};
jsonMaps.put("type",jsonArray);
// jsonMaps.put("type",strs);
jsonMaps.put("month", month); //年月份
jsonMaps.put("from_date", "01"); //开始日
jsonMaps.put("to_date", sjdd); //结束日
//System.out.println(jsonMaps);
String js = getDocking(url,jsonMaps,infoMap);
JSONObject j0= JSONObject.parseObject(js);
Object data = j0.get("data");
Object state=j0.get("status");
if(state.toString().equals("200")){
jsonMap.put("state","true");
JSONObject j1= JSONObject.parseObject(data.toString());
Object totalVolumnGPRS = j1.get("totalVolumnGPRS");
//MB
Double toGPRS = Double.valueOf(totalVolumnGPRS.toString())/1024/1024;
DecimalFormat df=new DecimalFormat("#0.00");
toGPRS=Double.parseDouble(df.format(toGPRS));
jsonMap.put("data", data);
jsonMap.put("info", "成功");
}
return jsonMap;
// //System.out.println(jsonMap.toString());
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(jsonMap);
return jsonMap;
}
/**
* TODO 停开机
*
* •Activate(激活)---------1
* •Pause(停机)------------2
* •Deactivate(使失效) -----3
* •Reactivate(重新激活)----4
* @return
*/
public Map<String,Object> changeCardStatus(String tel,String setup,Map<String,Object> infoMap){
JSONObject jsonMap = new JSONObject();
jsonMap.put("state", "false");
jsonMap.put("info", "api调用失败");
jsonMap.put("data","0");
String env = "\"http://schemas.xmlsoap.org/soap/envelope/\"";
String sub = "\"http://api.dcp.ericsson.net/SubscriptionManagement\"";
String wsse = "\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"";
String state = null;
switch (setup) {
case "2":
state = "Activate";
break;
case "3":
state = "Pause";
break;
default:
break;
}
StringBuffer sb = new StringBuffer();
String name=(String)infoMap.get("cd_username");
String password= (String)infoMap.get("cd_pwd");
String[] names=name.replace(",",",").split(",");
String[] passwords=password.replace(",",",").split(",");
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<soapenv:Envelope xmlns:soapenv="+env+" xmlns:sub="+sub+">");
sb.append("<soapenv:Header>");
sb.append("<wsse:Security xmlns:wsse="+wsse+" wsse:mustUnderstand=\"1\">");
sb.append("<wsse:UsernameToken>");
sb.append("<wsse:Username>"+names[0]+"</wsse:Username>"); //用户名
sb.append("<wsse:Password>"+passwords[0]+"</wsse:Password>"); //密码
sb.append("</wsse:UsernameToken>");
sb.append("</wsse:Security>");
sb.append("</soapenv:Header>");
sb.append("<soapenv:Body>");
sb.append("<sub:RequestSubscriptionStatusChange>");
sb.append("<resource>");
sb.append("<id>"+tel+"</id>");
sb.append("<type>icc</type>");
sb.append("</resource>");
sb.append("<subscriptionStatus>"+state+"</subscriptionStatus>");
sb.append("<range>1</range>");
sb.append("</sub:RequestSubscriptionStatusChange>");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
String xml = sb.toString();
System.out.println(soap_url);
System.out.println(xml);
try {
org.json.JSONObject json = dcpLoginUtil.httpSoap(soap_url,xml);
JSONObject j0= JSONObject.parseObject(json.toString());
Object Envelope =j0.get("env:Envelope");
JSONObject j1= JSONObject.parseObject(Envelope.toString());
Object envBody = j1.get("env:Body");
if((envBody.toString()).contains("env:Fault")){
jsonMap.put("info", "操作失败");
return jsonMap;
}
JSONObject j2= JSONObject.parseObject(envBody.toString());
Object RequestSubscriptionStatusChangeResponse = j2.get("ns2:RequestSubscriptionStatusChangeResponse");
JSONObject j3= JSONObject.parseObject(RequestSubscriptionStatusChangeResponse.toString());
Object serviceRequestId = j3.get("serviceRequestId").toString();
//提示变更结果
StringBuffer sbs = new StringBuffer();
sbs.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sbs.append("<soapenv:Envelope xmlns:soapenv="+env+" xmlns:sub="+sub+">");
sbs.append("<soapenv:Header>");
sbs.append("<wsse:Security xmlns:wsse="+wsse+" wsse:mustUnderstand=\"1\">");
sbs.append("<wsse:UsernameToken>");
sbs.append("<wsse:Username>"+names[0]+"</wsse:Username>"); //用户名
sbs.append("<wsse:Password>"+passwords[0]+"</wsse:Password>"); //密码
sbs.append("</wsse:UsernameToken>");
sbs.append("</wsse:Security>");
sbs.append("</soapenv:Header>");
sbs.append("<soapenv:Body>");
sbs.append("<sub:QuerySubscriptionStatusChange>");
sbs.append("<serviceRequestId>"+serviceRequestId+"</serviceRequestId>");
sbs.append("</sub:QuerySubscriptionStatusChange>");
sbs.append("</soapenv:Body>");
sbs.append("</soapenv:Envelope>");
String xmls = sbs.toString();
json = dcpLoginUtil.httpSoap(soap_url,xmls);
JSONObject jss= JSONObject.parseObject(json.toString());
Object envEnvelope =jss.get("env:Envelope");
JSONObject jss1= JSONObject.parseObject(envEnvelope.toString());
Object envBodys =jss1.get("env:Body");
JSONObject jss2= JSONObject.parseObject(envBodys.toString());
Object ns2QuerySubscriptionStatusChangeResponse =jss2.get("ns2:QuerySubscriptionStatusChangeResponse");
JSONObject jss3= JSONObject.parseObject(ns2QuerySubscriptionStatusChangeResponse.toString());
Object statusRequestResponse =jss3.get("statusRequestResponse");
String zt = "查询失败";
String state_id = "-1";
switch (statusRequestResponse.toString()) {
case "Completed":
zt = "修改成功";
state_id = "0000";
break;
case "In Progress":
zt = "修改中";
break;
case "Pending":
zt = "待处理";
break;
case "Canceled":
zt = "已 取 消";
break;
case "Rejected":
zt = "已拒绝";
break;
default:
zt = "修改失败!";
break;
}
jsonMap.put("state", "true");
jsonMap.put("data", jss);
jsonMap.put("info", "成功");
} catch (Exception e) {
e.printStackTrace();
}
return jsonMap;
}
/**
* TODO 卡状态查询
* @return
*/
public Map<String,Object> querySimStatus(String tel,Map<String,Object> infoMap){
Map<String,Object> retMap = new HashMap<>();
retMap.put("state", "false");
retMap.put("info", "api调用失败");
retMap.put("data", "0");
String env = "\"http://schemas.xmlsoap.org/soap/envelope/\"";
String sub = "\"http://api.dcp.ericsson.net/SubscriptionManagement\"";
String wsse = "\"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd\"";
StringBuffer sb = new StringBuffer();
String name=(String)infoMap.get("cd_username");
String password= (String)infoMap.get("cd_pwd");
String[] names=name.replace(",",",").split(",");
String[] passwords=password.replace(",",",").split(",");
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<soapenv:Envelope xmlns:soapenv="+env+" xmlns:sub="+sub+">");
sb.append("<soapenv:Header>");
sb.append("<wsse:Security xmlns:wsse="+wsse+" wsse:mustUnderstand=\"1\">");
sb.append("<wsse:UsernameToken>");
sb.append("<wsse:Username>"+names[0]+"</wsse:Username>"); //用户名
sb.append("<wsse:Password>"+passwords[0]+"</wsse:Password>"); //密码
sb.append("</wsse:UsernameToken>");
sb.append("</wsse:Security>");
sb.append("</soapenv:Header>");
sb.append("<soapenv:Body>");
sb.append("<sub:QuerySimResource>");
sb.append("<resource>");
sb.append("<id>"+tel+"</id>"); //查询号码
sb.append("<type>icc</type>");
sb.append("</resource>");
sb.append("</sub:QuerySimResource>");
sb.append("</soapenv:Body>");
sb.append("</soapenv:Envelope>");
String xml = sb.toString();
try {
org.json.JSONObject json = DCPLoginUtil.httpSoap(soap_url,xml);
JSONObject j0= JSONObject.parseObject(json.toString());
Object Envelope =j0.get("env:Envelope");
JSONObject j1= JSONObject.parseObject(Envelope.toString());
Object Body = j1.get("env:Body");
JSONObject j2= JSONObject.parseObject(Body.toString());
Object qsr = j2.get("ns2:QuerySimResourceResponse");
JSONObject j3= JSONObject.parseObject(qsr.toString());
Object SimResource = j3.get("SimResource");
JSONObject j4= JSONObject.parseObject(SimResource.toString());
Object simSubscriptionStatus = j4.get("simSubscriptionStatus");
// //System.out.println(simSubscriptionStatus);
String zt = "查询失败";
String state_id = "-1";
switch (simSubscriptionStatus.toString()) {
case "Active":
retMap.put("state", "true");
retMap.put("info", "成功");
break;
case "Pause":
retMap.put("state", "true");
retMap.put("info", "成功");
break;
case "Deactivated":
retMap.put("state", "true");
retMap.put("info", "成功");
break;
case "Terminated":
retMap.put("state", "true");
retMap.put("info", "成功");
break;
default:
retMap.put("state", "true");
retMap.put("info", "成功");
break;
}
retMap.put("data", j0);
retMap.put("state", "true");
retMap.put("info", "成功");
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(retMap);
return retMap;
}
/**
* 发送GET请求
* @return
* @throws IOException
*/
public String doGet(String httpUrl,Map<String,Object> infoMap) {
HttpURLConnection connection = null;
InputStream is = null;
OutputStream os = null;
BufferedReader br = null;
String result = null;
try {
String name=(String)infoMap.get("cd_username");
String password= (String)infoMap.get("cd_pwd");
String[] names=name.replace(",",",").split(",");
String[] passwords=password.replace(",",",").split(",");
//Object tokenO=redisTemplate.opsForValue().get("dcp_token");
String huoqutoken=null;
/*if(null!=tokenO){
huoqutoken=tokenO.toString();
}else{*/
huoqutoken = dcpLoginUtil.getToken(names[1],
passwords[1]);
// }
URL url = new URL(httpUrl);
// 通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(30000);
connection.setReadTimeout(60000);
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Connection", "Kepp-Alive");
connection.setRequestProperty("X-Access-Token", huoqutoken);
connection.connect();
// 通过连接对象获取一个输入流,向远程读取
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuffer sbf = new StringBuffer();
String temp = null;
// 循环遍历一行一行读取数据
while ((temp = br.readLine()) != null) {
sbf.append(temp);
sbf.append("\r");
}
result = sbf.toString();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭资源
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != os) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 断开与远程地址url的连接
connection.disconnect();
}
return result;
}
/**
* TODO
* 发送POST请求
* @return
*/
public String getDocking (String urls, JSONObject map, Map<String,Object> infoMap){
OutputStreamWriter out=null;
InputStream is=null;
BufferedReader br=null;
try {
String name=(String)infoMap.get("cd_username");
String password= (String)infoMap.get("cd_pwd");
String[] names=name.replace(",",",").split(",");
String[] passwords=password.replace(",",",").split(",");
String huoqutoken=null;
huoqutoken = dcpLoginUtil.getToken(names[1],passwords[1]);
URL url = new URL(urls);
URLConnection connection = url.openConnection();
HttpsURLConnection conn = (HttpsURLConnection) connection;
//请求方式
conn.setRequestMethod("POST");
//设置通用的请求属性
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setDefaultUseCaches(false);
conn.setConnectTimeout(30000);
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Connection", "Kepp-Alive");
conn.setRequestProperty("X-Access-Token", huoqutoken);
//断开连接
conn.connect();
//获取URLconnection对象对应的输出流
out = new OutputStreamWriter(conn.getOutputStream(),"utf-8");
//发送请求参数
out.write(map.toString());
//缓冲数据
out.flush();
//获取对应的输入流
is = conn.getInputStream();
//字符流缓存
br = new BufferedReader(new InputStreamReader(is));
String str = null;
String huoqu = null;
while ((str=br.readLine())!=null) {
huoqu = str + "\t";
}
//System.out.println(huoqu);
return huoqu;
} catch (Exception e) {
// //System.out.println("请求数据失败");
e.printStackTrace();
} finally{
try {
br.close();
is.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* 使用SOAP1.1发送消息
*
* @param url
* @param xml
* @return
*/
public static String doPostSoap1_1(String url, String xml){
String retStr = null;
// 创建HttpClientBuilder
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
// HttpClient
CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
HttpPost httpPost = new HttpPost(url);
try {
httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");
StringEntity data = new StringEntity(xml, Charset.forName("UTF-8"));
System.setProperty("https.protocols", "TLSv1.2,TLSv1.1,SSLv3");
httpPost.setEntity(data);
// //System.out.println("httpPost:"+httpPost);
CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
HttpEntity httpEntity = response.getEntity();
if (httpEntity != null) {
// 打印响应内容
retStr = EntityUtils.toString(httpEntity, "UTF-8");
}
// 释放资源
closeableHttpClient.close();
} catch (Exception e) {
e.printStackTrace();
}
return retStr;
}
/**
* 获取上月月份
*/
public static String getYearMonthss(){
SimpleDateFormat dateFormat = new SimpleDateFormat("MM");
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); // 设置为当前时间
calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
date = calendar.getTime();
return dateFormat.format(date);
}
/**
* 获取指定月份的最后一天
* @param year
* @param month
* @return
*/
public static String getLastDayOfMonth(int year,int month){
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR,year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最大天数
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
//设置日历中月份的最大天数
cal.set(Calendar.DAY_OF_MONTH, lastDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("dd");
String lastDayOfMonth = sdf.format(cal.getTime());
return lastDayOfMonth;
}
/**
* 获取本年
* @return
*/
public static String getMonthLastDayyyyy(int sj) {
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, sj);
int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, day);
SimpleDateFormat sim = new SimpleDateFormat("yyyy");
date = cal.getTime();
return sim.format(date);
}
/**
* 获取本月
* @return
*/
public static String getMonthLastDaymm(int sj) {
Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, sj);
int day = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
cal.set(Calendar.DAY_OF_MONTH, day);
SimpleDateFormat sim = new SimpleDateFormat("MM");
date = cal.getTime();
return sim.format(date);
}
/**
* 获取本日
* @return
*/
public static String getMonthLastDaydd() {
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd");//可以方便地修改日期格式
String hehe = dateFormat.format( now );
return hehe;
}
}
@@ -0,0 +1,82 @@
package com.yunze.apiCommon.upstreamAPI.DianXinDCP;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.HashMap;
import java.util.Map;
/**
* 电信CMP API 接口
*/
public class DianXin_DCP_Api {
//构造赋值
public DianXin_DCP_Api(Map<String, Object> init_map){
String cd_username[] = init_map.get("cd_username").toString().split(",");
String cd_pwd[] = init_map.get("cd_pwd").toString().split(",");
appid = cd_username[1] ;
secretKey = cd_pwd[1];
customerNo = init_map.get("cd_key").toString();
}
// 服务器请求地址
protected static String server_Ip = "https://si.global.ct10649.com";
// 用户登录名称
public static String appid = null;
public static String secretKey = null;
public static String customerNo = null;
// 配置调用的名称
protected static String Config_name = "";
/**
* 登录获取token
* @return
*/
public static String loginToken() {
String token = "";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
//返回信息 map
Map<String, Object> rMap = null;
// 拼接请求参数
params = new JSONObject();
params.put("username", appid);
params.put("password", secretKey);
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", token);
String res = HttpUtil.post(server_Ip+"/api/dcpsiapi/login", params.toJSONString(), headers);
//System.out.println(res);
Map<String, Object> obj = JSON.parseObject(res);
if ((obj.get("status").toString()).equals("200")) {
Map<String, String> data = (Map<String, String>)obj.get("data");
token = data.get("token");
System.out.println(token);
}
return token;
}
}
@@ -0,0 +1,134 @@
package com.yunze.apiCommon.upstreamAPI.DianXinDCP.Inquire;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DcpDxService;
import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DianXin_DCP_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 查询类接口
*/
public class Query_DianXinDCP extends DianXin_DCP_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd","");
map.put("cd_key", "");
Query_DianXinDCP Qy = new Query_DianXinDCP(map);
List<String> groups = new ArrayList<>();
groups.add("epsLocationState");
groups.add("epsIndividualUserType");
DcpDxService dcpDxService = new DcpDxService();
System.out.println(dcpDxService.queryFlow("8986",map));
}
public Query_DianXinDCP(Map<String, Object> init_map) {
super(init_map);
}
/**
* 查询 SIM 卡信息接口 【没调试好!2021-10-29】
* @param iccids : ["123123789123123"],
* @param groups : ["enterpriseInfo"]
* 选择要查询的信息,枚举可选如下一项或多项:
* -enterpriseInfo(返回 companyName)
* -packageInfo(返回订购包名称和描述)
* -dates(返回 firstActivationDate 和 pbrExitDate)
* -label(返回 customerLabel)
* -simSpecification(返回 SIM 卡规格 ID)
* -lockStateInfo(返回锁状态和被锁原因)
* -individualApn(返回在用 Apn。如果列表为空,则
* 订购包中所有 APN 均在用)
* @return
*/
public static String QuerySimResource(List<String> iccids,List<String> groups) {
// 拼接接口地址 https://global.ct10649.com/dcpapi/rest/subscriptionManagement/v1/subscriptions/details
String api_url = "https://global.ct10649.com/dcpapi/rest/subscriptionManagement/v1/subscriptions/details";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
params.put("type", "iccid");
params.put("values", iccids);
params.put("groups", groups);
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
System.out.println(params.toJSONString());
String res = HttpUtil.post(api_url, params.toJSONString(), headers);
return res;
}
public static String EPSMultiSC(String msisdn,List<String> moAttributes) {
// 拼接接口地址 https://si.global.ct10649.com/api/dcpsiapi/eps/multisc
String api_url = "https://si.global.ct10649.com/api/dcpsiapi/eps/multisc";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
params.put("msisdn", msisdn);
params.put("moAttributes", moAttributes);
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
System.out.println(params.toJSONString());
String res = HttpUtil.post(api_url, params.toJSONString(), headers);
return res;
}
/**
* SIM 卡信息接口(按号码)
* @param iccid
* @return
*/
public static String subscriptions(String iccid) {
// 拼接接口地址 https://global.ct10649.com/iot/api/sica/subscriptions/sims/{id}?iden tifier_type={identifier_type}&range={range}
String api_url = "https://global.ct10649.com/iot/api/sica/subscriptions/sims/"+iccid;
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
params.put("identifier_type", "icc");
params.put("range", "1");
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
String param_url = UrlUtil.getUrl(api_url, params);
System.out.println(param_url);
String res = HttpUtil.get(param_url, headers);
return res;
}
}
@@ -0,0 +1,201 @@
package com.yunze.apiCommon.upstreamAPI.DianXinDCP.change;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DianXin_DCP_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 变更 接口
*/
public class serviceAccept_DianXinDCP extends DianXin_DCP_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd","");
map.put("cd_key", "");
List<String> arr = new ArrayList<>();
arr.add("898611");
serviceAccept_DianXinDCP Qy = new serviceAccept_DianXinDCP(map);
for (int i = 0; i <arr.size() ; i++) {
String iccid = arr.get(i);
System.out.println(Qy.stateChanges(iccid,"iccid","3"));
}
}
public serviceAccept_DianXinDCP(Map<String, Object> init_map) {
super(init_map);
}
/**
* 机卡分离解绑
* @param iccid
* @param contactName
* @param contactPhone
* @return
*/
public static String unlockSimbind(String iccid,String contactName,String contactPhone) {
// 拼接接口地址 https://si.global.ct10649.com/api/dcpsiapi /unlock/simbind
String api_url = server_Ip + "/api/dcpsiapi/unlock/simbind";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
customerNo = customerNo!=null?customerNo:"31000069";//默认
params.put("customerNo", customerNo);
params.put("iccid", iccid);
params.put("contactName", contactName);
params.put("contactPhone", contactPhone);
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
String res = HttpUtil.post(api_url, params.toJSONString(), headers);
return res;
}
/**
* UE 号码级速率限制更新接口
* @param cardno SIM ID
* @param UE_AMBR_DL 下行速率
*/
public static String ueAmbrUpdate(String cardno,String UE_AMBR_DL,String type) {
// 拼接接口地址
String api_url = server_Ip + "/api/dcpsiapi/ue/ambr/update";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
if(type!=null) {
params.put("msisdn", cardno);
}else {
params.put("imsi", cardno);
}
//params.put("UE_AMBR_UL", cardType);//上行速率
params.put("UE_AMBR_DL", UE_AMBR_DL);//下行速率
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
String res = HttpUtil.post(api_url, params.toJSONString(), headers);
return res;
}
/**
* UE 取消实名
* @param cardno SIM ID
*/
public static String realNameRemove(String cardno,String type) {
// 拼接接口地址
String api_url = server_Ip + "/api/dcpsiapi/realName/remove";
//请求参数头部
Map<String, String> headers = null;
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
if(type!=null) {
if(type.equals("iccid")){
params.put("iccid", cardno);
}else if(type.equals("msisdn")){
params.put("msisdn", cardno);
}
}else {
params.put("imsi", cardno);
}
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
String param_url = UrlUtil.getUrl(api_url, params);
//System.out.println(param_url);
String res = HttpUtil.get(param_url,headers);
return res;
}
/**
*
* @param cardno
* @param type
* @param opState -ACTIVE(已激活) -PAUSE(停机保号) -DEACTIVATED(去激活) -ACTIVE_NO_BILLING(激活无计费) -DEACTIVATED_NO_BILLING(去激活无计费)
* @return
*/
public static String stateChanges(String cardno,String type,String opState) {
//请求参数 Json
JSONObject params = null;
// 拼接请求参数
params = new JSONObject();
JSONObject change = new JSONObject();
JSONObject subscriptions = new JSONObject();
JSONObject on_behalf_of = new JSONObject();
String state = null;
switch (opState) {
case "2":
state = "ACTIVE";
break;
case "3":
state = "PAUSE";
break;
default:
break;
}
change.put("state",state);
// 拼接接口地址
String api_url = "https://global.ct10649.com/iot/api/sica/subscriptions/requests/state-changes";
//请求参数头部
Map<String, String> headers = null;
on_behalf_of.put("company_id",customerNo);
List<String> identifiers = new ArrayList<>();
identifiers.add(cardno);
subscriptions.put("identifier_type",type);
subscriptions.put("identifiers",identifiers);
params.put("subscriptions", subscriptions);
params.put("change", change);
params.put("on_behalf_of", on_behalf_of);
//请求头部参数
headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
headers.put("X-Access-Token", loginToken());
String param_url = UrlUtil.getUrl(api_url, params);
System.out.println(param_url);
String res = HttpUtil.post(api_url, params.toJSONString(), headers);
return res;
}
}
@@ -0,0 +1,84 @@
package com.yunze.apiCommon.upstreamAPI.IoTLink.Inquire;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.IoTLink.IoTLink_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.*;
/**
* 查询类接口
*/
public class Query_IoTLink extends IoTLink_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd", "");
map.put("cd_key", "http://");
Query_IoTLink Qy = new Query_IoTLink(map);
System.out.println(Qy.cardInfo("89860"));
}
public Query_IoTLink(Map<String, Object> init_map) {
super(init_map);
}
/**
* 卡账期用量查询
* @param iccid
*/
public String simDataUsage(String iccid) {
String api_url = server_Ip + "/simDataUsage";
Map<String, Object> Parmap = new HashMap<String, Object>();
Parmap.put("iccid", iccid);
String data = JSON.toJSONString(getPmap(Parmap));
return HttpUtil.post(api_url, data);
}
/**
* 卡生命周期查询
* @param iccid
*/
public String simStatus(String iccid) {
String api_url = server_Ip + "/simStatus";
Map<String, Object> Parmap = new HashMap<String, Object>();
Parmap.put("iccid", iccid);
String data = JSON.toJSONString(getPmap(Parmap));
return HttpUtil.post(api_url, data);
}
/**
* 在网状态查询
* @param iccid
*/
public String simSession(String iccid) {
String api_url = server_Ip + "/simSession";
Map<String, Object> Parmap = new HashMap<String, Object>();
Parmap.put("iccid", iccid);
String data = JSON.toJSONString(getPmap(Parmap));
return HttpUtil.post(api_url, data);
}
/**
* 卡信息详情
* @param iccid
*/
public String cardInfo(String iccid) {
String api_url = server_Ip + "/cardInfo";
Map<String, Object> Parmap = new HashMap<String, Object>();
Parmap.put("cardno", iccid);
Parmap.put("type", "iccid");
String data = JSON.toJSONString(getPmap(Parmap));
return HttpUtil.post(api_url, data);
}
}
@@ -0,0 +1,107 @@
package com.yunze.apiCommon.upstreamAPI.IoTLink;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.MD5Util;
import java.util.*;
/**
* IoTLink 系统 API 接口
*/
public class IoTLink_Api {
//构造赋值
public IoTLink_Api(Map<String, Object> init_map){
String cd_pwd[] = init_map.get("cd_pwd").toString().split(",");
appId = init_map.get("cd_username").toString();
password = cd_pwd[0];
access_key = cd_pwd[1];
server_Ip = init_map.get("cd_key").toString()+"/route/open";
}
// 服务器请求地址
protected static String server_Ip = "";
// appId
public static String appId = null;
//秘钥密码
public static String password= null;
//秘钥密码
public static String access_key = null;
/**
* Sign 加密类
* @param map
* @param key
* @return
*/
public static String getSign(Map<String,Object> map,String key){
List<String> list=new ArrayList<>(map.keySet());
Collections.sort(list);
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
String k =list.get(i);
String v=(String )map.get(k);
sb.append(k).append("=").append(v).append("&");
}
String signstr=sb.append("key=").append(key).toString();
String sign = MD5Util.MD5Encode(signstr).toUpperCase();
return sign;
}
public static Map<String, Object> getPmap(Map<String, Object> Parmap){
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> verify = new HashMap<String, Object>();
String timeStamp = ""+System.currentTimeMillis() ;
verify.put("password", password);
verify.put("appId", appId);
verify.put("timeStamp", timeStamp);
verify.put("sign", getSign(verify, access_key));
map.put("verify", verify);
map.put("Param", Parmap);
return map;
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> Parmap = new HashMap<String, Object>();
Map<String, Object> verify = new HashMap<String, Object>();
String appId = "";
String password = "";
String access_key = "http://";
String timeStamp = ""+System.currentTimeMillis() ;
verify.put("password", password);
verify.put("appId", appId);
verify.put("timeStamp", timeStamp);
verify.put("sign", getSign(verify, access_key));
Parmap.put("type", "iccid");
Parmap.put("cardno", "898604");
map.put("verify", verify);
map.put("Param", Parmap);
server_Ip +="/queryFlow";
String result = null;
String data = JSON.toJSONString(map);
System.out.println(data);
result = HttpUtil.post(server_Ip, data);// 返回结果字符串
System.out.println(result);
}
}
@@ -0,0 +1,37 @@
package com.yunze.apiCommon.upstreamAPI.IoTLink.change;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.IoTLink.IoTLink_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.HashMap;
import java.util.Map;
public class serviceAccept_IoTLink extends IoTLink_Api {
public serviceAccept_IoTLink(Map<String, Object> init_map) {
super(init_map);
}
/**
* 卡状态变更
* @param iccid
* @param Status
* @return
*/
public String changeSimStatus(String iccid,String Status) {
String api_url = server_Ip + "/changeSimStatus";
Map<String, Object> Parmap = new HashMap<String, Object>();
Parmap.put("iccid", iccid);
Parmap.put("Status", Status);
String data = JSON.toJSONString(getPmap(Parmap));
return HttpUtil.post(api_url, data);
}
}
@@ -0,0 +1,430 @@
package com.yunze.apiCommon.upstreamAPI.LianTongCMP.Inquire;
import com.cu.api.request.CommonJsonRequest;
import com.cu.api.response.CommonJsonResponse;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.LT_CMP_Api;
import com.yunze.apiCommon.utils.MD5Util;
import java.io.IOException;
import java.util.*;
/**
* 查询类接口
*/
public class Query_LT extends LT_CMP_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd", "");
map.put("cd_key", "");
Query_LT Qy = new Query_LT(map);
System.out.println(Qy.queryAPNInfo("8986"));
}
public Query_LT(Map<String, Object> init_map) {
super(init_map);
}
/**
* 获取单个卡的流量
* @param iccid
* @param
* @return
*/
public static Map<String, Object> queryFlow(String iccid) {
Map<String, Object> rmap = new HashMap<String, Object>();
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1
request.setApiName("wsGetTerminalDetails/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
rmap = response.getData();
// //System.out.println(rmap);
// //System.out.println("rmap ====== "+rmap);
if(null==rmap){
System.out.println(iccids+"--查询流量返回报文-- "+response.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
}
return rmap;
}
/**
* 项目描述 当月流量查询接口
* 不再封装!!!!!!!!
* 注:上月27号 -本月26号晚 一个月。
*
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> queryBatchFlow(List<String> iccids) {
Map<String, Object> result = new HashMap<String, Object>();
if (iccids.size() > 50 || iccids.size() == 0) {
result.put("Message", "批量查询仅支持50位号码");
////System.out.println(result);
return result;
}
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1
request.setApiName("wsGetTerminalDetails/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<>();
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
//System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
////System.out.println(result);
return result;
}
/**
* @Author:
* @Return: 历史流量查询
* @Description:
* @Date: 2021/11/14 0014 14:07
*/
public static Map<String, Object> queryFlowHis(String iccid, String time) {
Map<String, Object> result = new HashMap<String, Object>();
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1
request.setApiName("wsGetTerminalUsage/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccid", iccid);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
params.put("billingCycle", time);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
// //System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 项目描述
* SIM卡状态:
* "0": 可测试,
* "1": 可激活,
* "2": 已激活,
* "3": 已停用,
* "4": 已失效,
* "5"": 已清除,
* "6": 已更换,
* "7": 库存,
* "8": 开始
*
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> queryCardStatus(String iccid) {
Map<String, Object> result = new HashMap<String, Object>();
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1
request.setApiName("wsGetTerminalDetails/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
//System.out.println(response);
result = response.getData();
} catch (Exception e) {
e.printStackTrace();
}
////System.out.println(result);
return result;
}
/**
* 项目描述 查询通讯计划-限速 单卡接口
* 0- 恢复正常
* 1- 上下行限速1Mbps
* 2- 上下行限速2Mbps
* 4- 上下行限速4Mbps
* 8- 上下行限速8Mbps
* -1- 上下行限速0.5Mbps
* -2- 上下行限速256Kbps
*
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> queryNetWork(String iccid) {
Map<String, Object> result = new HashMap<String, Object>();
int type = 0;
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1
request.setApiName("wsGetNetworkAccessconfig/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(result);
return result;
}
/**
* 项目描述 查询通讯计划-限速 批量接口
* 0- 恢复正常
* 1- 上下行限速1Mbps
* 2- 上下行限速2Mbps
* 4- 上下行限速4Mbps
* 8- 上下行限速8Mbps
* -1- 上下行限速0.5Mbps
* -2- 上下行限速256Kbps
*
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> queryNetWorkBatch(List<String> iccids) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> result = new HashMap<String, Object>();
int type = 0;
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1
request.setApiName("wsGetNetworkAccessconfig/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/**
* 项目描述 查询APN设置信息
* @throws IOException
*/
@SuppressWarnings("unchecked")
public static Map<String, Object> queryAPNMessage(String iccid) {
Map<String, Object> result = new HashMap<String, Object>();
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1
request.setApiName("wsGetNetworkAccessconfig/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(result);
return result;
}
/**
* 项目描述 查询是否需要实名认证
* 返回 true :已实名 不需要再实名
* fasle :未实名 需要实名认证
* @throws IOException
*/
public static Map<String, Object> queryRealNameStatus(String iccid) {
Map<String, Object> result = new HashMap<String, Object>();
try{
CommonJsonRequest request = new CommonJsonRequest();
//完整的url: https://gwapi.10646.cn/api/wsGetTerminalDetails/V1/1Main/vV1.1
request.setApiName("wsGetTerminalDetails/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
params= response.getData();
if (response.isSuccess()) {
result.put("state", params.get("resultCode"));
result.put("info", "成功");
List<Map<String, Object>> terminals = (List<Map<String, Object>>) params.get("terminals");
params = terminals.get(0);
String realNameStatus = (String) params.get("realNameStatus");
switch (realNameStatus) {
case "1":
result.put("rspcode","0002");
break;
case "2":
result.put("rspcode","0001");
break;
default:
break;
}
}else{
result.put("rspcode","0002");
}
// realNameStatus
}catch(Exception e){
e.printStackTrace();
}
return result;
}
public static String getSign(Map<String,Object> map,String key){
List<String> list=new ArrayList<>(map.keySet());
/* for (int i = 0; i < list.size(); i++) {
//System.out.println(list.get(i));
}*/
Collections.sort(list);
////System.out.println("后----");
/* for (int i = 0; i < list.size(); i++) {
//System.out.println(list.get(i));
}*/
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
String k =list.get(i);
String v=(String )map.get(k);
sb.append(k).append("=").append(v).append("&");
}
String signstr=sb.append("key=").append(key).toString();
String sign = MD5Util.MD5Encode(signstr).toUpperCase();
return sign;
}
/**
* 项目描述 查询APN设置信息
*
* @throws IOException
*/
public static Map<String, Object> queryAPNInfo(String iccid) {
Map<String, Object> result = new HashMap<String, Object>();
try {
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsGetNetworkAccessconfig/V1/1Main/vV1.1
request.setApiName("wsGetNetworkAccessconfig/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
List<String> iccids = new ArrayList<String>();
iccids.add(iccid);
params.put("iccids", iccids);
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(result);
return result;
}
}
@@ -0,0 +1,60 @@
package com.yunze.apiCommon.upstreamAPI.LianTongCMP;
import com.cu.api.IIoTGatewayClient;
import com.cu.api.IoTGatewayClient;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Map;
import java.util.Random;
/**
* 联通 CMP 系统 API 接口
*/
public class LT_CMP_Api {
//构造赋值
public LT_CMP_Api(Map<String, Object> init_map){
appId = init_map.get("cd_username").toString();
appSecret = init_map.get("cd_pwd").toString();
openId = init_map.get("cd_key").toString();
this.client = new IoTGatewayClient(server_Ip, appId,appSecret);
}
// 服务器请求地址
protected static String server_Ip = "https://gwapi.10646.cn/api/";;
// user_id
protected static String appId = null;
// 秘钥密码
protected static String appSecret = null;
//版本
protected static String version = "1.0";
// 配置调用的名称
protected static String Config_name = "";
// 登录用户
protected static String openId =null;
protected static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
protected static SimpleDateFormat sdf_lip = new SimpleDateFormat("yyyyMMddHHmmssSSS");
protected static Random random = new Random();
//接口操作类
protected static IIoTGatewayClient client = null;
protected static String timestamp = "";
protected static String trans_id = "";
/**
* 项目描述 获取序列号
* @throws IOException
*/
public static String gettrans_id(){
trans_id = timestamp.replace("-", "").replace(" ", "").replace(":", "");
return trans_id + new Random().nextInt(999999);
}
}
@@ -0,0 +1,138 @@
package com.yunze.apiCommon.upstreamAPI.LianTongCMP.change;
import com.cu.api.request.CommonJsonRequest;
import com.cu.api.response.CommonJsonResponse;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.LT_CMP_Api;
import com.yunze.apiCommon.utils.CommonlyUsed;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 联通 变更 接口
*/
public class serviceAccept_LT extends LT_CMP_Api {
public serviceAccept_LT(Map<String, Object> init_map) {
super(init_map);
}
/**
* 项目描述
* SIM卡状态:
"0": 可测试,
"1": 可激活,
"2": 已激活,
"3": 已停用,
"4": 已失效,
"5": 已清除,
"6": 已更换,
"7": 库存,
"8": 开始
* @throws IOException
*/
public static Map<String,Object> changeCardStatus(String iccid,String type){
Map<String,Object> result = new HashMap<String,Object>();
try{
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsEditTerminal/V1/1Main/vV1.1
request.setApiName("wsEditTerminal/V1/1Main");
request.setApiVer("V1.1");
/**
* 业务参数,需要发给能力提供者
*/
Map<String, Object> params = new HashMap<String, Object>();
params.put("asynchronous", "0");
params.put("iccid", iccid);
params.put("targetValue", type);
params.put("changeType", "3");
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
}catch(Exception e){
//System.out.println(e);
e.printStackTrace();
}
////System.out.println(result);
return result;
}
/**
* 项目描述 修改通讯计划-限速
* 0- 恢复正常 21997854 (4M左右)
* 1- 上下行限速1Mbps 21997289
* 2- 上下行限速2Mbps 21997290
* 4- 上下行限速4Mbps 21997291
* @throws IOException
*/
public static Map<String,Object> upNetWork(String iccid,String nacId){
Map<String,Object> result = new HashMap<String,Object>();
try{
CommonJsonRequest request = new CommonJsonRequest();
//完整的url:https://gwapi.10646.cn/api/wsEditNetworkAccessConfig/V1/1Main/vV1.1
request.setApiName("wsEditNetworkAccessConfig/V1/1Main");
request.setApiVer("V1.1");
Map<String, Object> params = new HashMap<String, Object>();
params.put("iccid", iccid);
params.put("nacId", nacId);
params.put("asynchronous", "0");
params.put("messageId", gettrans_id());
params.put("openId", openId);
params.put("version", version);
request.setParams(params);
CommonJsonResponse response = client.execute(request);
result = response.getData();
}catch(Exception e){
e.printStackTrace();
}
////System.out.println(result);
return result;
}
/**
* 判断 在限速 标准 中
* @param speedValue
* @return bool = true 在标准中
*/
public Map<String,Object> speedValue_set(String speedValue){
boolean bool = false;
Map<String,Object> map = new HashMap<String,Object>();
List<String> rule = new ArrayList<String>();
rule.add("21997854");rule.add("21997289");rule.add("21997290");rule.add("21997291");
if(speedValue.length()>2){
if(speedValue.equals("0")){
speedValue = "21997854";//不限制
}else if(speedValue.equals("1")){
speedValue = "21997289";//1Mbps
}else if(speedValue.equals("2")){
speedValue = "21997290";//2Mbps
}else if(speedValue.equals("4")){
speedValue = "21997291";//4Mbps
}
}else{//适配多联通账户匹配
bool = true;
}
bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中
map.put("speedValue",speedValue);
map.put("bool",bool);
return map;
}
}
@@ -0,0 +1,748 @@
package com.yunze.apiCommon.upstreamAPI;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.mapper.YzCardRouteMapper;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.Inquire.Query_DX;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP.change.serviceAccept_DX;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.Inquire.Query_DX5G;
import com.yunze.apiCommon.upstreamAPI.DianXinCMP5G.change.ServiceAccept_DX5G;
import com.yunze.apiCommon.upstreamAPI.DianXinDCP.DcpDxService;
import com.yunze.apiCommon.upstreamAPI.DianXinDCP.change.serviceAccept_DianXinDCP;
import com.yunze.apiCommon.upstreamAPI.IoTLink.Inquire.Query_IoTLink;
import com.yunze.apiCommon.upstreamAPI.IoTLink.change.serviceAccept_IoTLink;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.Inquire.Query_LT;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.change.serviceAccept_LT;
import com.yunze.apiCommon.upstreamAPI.SDYiDong.Inquire.Query_Sdiot;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.Inquire.Query_YD;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.change.serviceAccept_YD;
import com.yunze.apiCommon.upstreamAPI.YiDongEcV2.Inquire.Query_EcV2;
import com.yunze.apiCommon.utils.VeDate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class PublicApiService {
@Resource
private YzCardRouteMapper yzCardRouteMapper;
@Resource
private DcpDxService dcpDxService;
@Resource
private RabbitTemplate rabbitTemplate;
/**
* 内部API 调用
* @param Param
* @param function_name
* @return
*/
public Map<String,Object> insideApi(Map<String, Object> Param, String function_name, Map<String, Object> find_card_route_map) {
Map<String,Object> Rmap = new HashMap<>();
String code = "200";
String msg = "操作成功!";
Object data = null;
try {
data = CPU(Param,function_name, find_card_route_map);
} catch (Exception e) {
System.out.println("= insideApi ["+function_name+"]==");
System.out.println(e.getMessage());
System.out.println(JSON.toJSONString(Param));
System.out.println(JSON.toJSONString(find_card_route_map));
code = "500";
msg = "上游接口异常!";
}
Rmap.put("code",code);
Rmap.put("msg",msg);
Rmap.put("data",data);
return Rmap;
}
public Map<String, Object> queryFlow(Map<String, Object> map) {
return CPU(map, "queryFlow",null);
}
public Map<String, Object> queryFlowHis(Map<String, Object> map) {
return CPU(map, "queryFlowHis",null);
}
public Map<String, Object> queryCardStatus(Map<String, Object> map) {
return CPU(map, "queryCardStatus",null);
}
public Map<String, Object> queryOnlineStatus(Map<String, Object> map) {
return CPU(map, "queryOnlineStatus",null);
}
public Map<String, Object> queryCardBindStatus(Map<String, Object> map) {
return CPU(map, "queryCardBIndStatus",null);
}
public Map<String, Object> changeCardStatus(Map<String, Object> map) {
return CPU(map, "changeCardStatus",null);
}
public Map<String, Object> queryRealNameStatus(Map<String, Object> map) {
return CPU(map, "queryRealNameStatus",null);
}
public Map<String, Object> queryAPNInfo(Map<String, Object> map) {
return CPU(map, "queryAPNInfo",null);
}
public Map<String, Object> todayUse(Map<String, Object> map) {
return CPU(map, "todayUse",null);
}
public Map<String, Object> FunctionApnStatus(Map<String, Object> map) {
return CPU(map, "FunctionApnStatus",null);
}
public Map<String, Object> SpeedLimit(Map<String, Object> map) {
return CPU(map, "SpeedLimit",null);
}
public Map<String, Object> MachineCardBinding(Map<String, Object> map) {return CPU(map, "MachineCardBinding", null);}
public Map<String, Object> EcV2(Map<String, Object> map) {
return CPU(map, "EcV2",null);
}
public Map<String, Object> queryCardActiveTime(Map<String, Object> map) {
return CPU(map, "queryCardActiveTime",null);
}
public Map<String, Object> queryCardImei(Map<String, Object> map) {
return CPU(map, "queryCardImei",null);
}
public Map<String, Object> queryFlow(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryFlow",find_card_route_map);
}
public Map<String, Object> queryFlowHis(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryFlowHis",find_card_route_map);
}
public Map<String, Object> queryCardStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryCardStatus",find_card_route_map);
}
public Map<String, Object> queryOnlineStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryOnlineStatus",find_card_route_map);
}
public Map<String, Object> queryCardBindStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryCardBIndStatus",find_card_route_map);
}
public Map<String, Object> changeCardStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "changeCardStatus",find_card_route_map);
}
public Map<String, Object> queryRealNameStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryRealNameStatus",find_card_route_map);
}
public Map<String, Object> queryAPNInfo(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryAPNInfo",find_card_route_map);
}
public Map<String, Object> todayUse(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "todayUse",find_card_route_map);
}
public Map<String, Object> FunctionApnStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "FunctionApnStatus",find_card_route_map);
}
public Map<String, Object> SpeedLimit(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "SpeedLimit",find_card_route_map);
}
public Map<String, Object> MachineCardBinding(Map<String, Object> map,Map<String, Object> find_card_route_map) {return CPU(map, "MachineCardBinding", find_card_route_map);}
public Map<String, Object> EcV2(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "EcV2",find_card_route_map);
}
public Map<String, Object> simStopReason(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "simStopReason",find_card_route_map);
}
public Map<String, Object> onOffStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "onOffStatus",find_card_route_map);
}
public Map<String, Object> apnInfo(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "apnInfo",find_card_route_map);
}
public Map<String, Object> cardBindStatus(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "cardBindStatus",find_card_route_map);
}
public Map<String, Object> simChangeHistory(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "simChangeHistory",find_card_route_map);
}
public Map<String, Object> simDataMargin(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "simDataMargin",find_card_route_map);
}
public Map<String, Object> queryOffering(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryOffering",find_card_route_map);
}
public Map<String, Object> cardInfo(Map<String, Object> map) {
Map<String, Object> Rmap = yzCardRouteMapper.findCard(map);
Object iccid = Rmap.get("iccid")!=null?Rmap.get("iccid"):"";
map.put("iccid",iccid);
Rmap.put("packetArr",yzCardRouteMapper.findFlow(map));
try {
if(Rmap!=null){
Object activateDate = Rmap.get("activateDate");
String statusId = Rmap.get("statusId")!=null?Rmap.get("statusId").toString():"0";
if(activateDate!=null && activateDate.toString().length()>0){
}else {
//库存 正常 可测试 不需要获取激活时间
if(statusId.equals("1") || statusId.equals("2") || statusId.equals("3")){
System.out.println(" iccid = "+iccid+" 不需要获取激活时间 statusId = "+statusId);
}else{
//1.创建路由 绑定 生产队列 发送消息
//导卡 路由队列
String polling_queueName = "admin_getSynActivateDate_queue";
String polling_routingKey = "admin.getSynActivateDate.queue";
String polling_exchangeName = "admin_exchange";//路由
try {
Map<String, Object> start_type = new HashMap<>();
start_type.put("iccid",iccid);
rabbitTemplate.convertAndSend(polling_exchangeName, polling_routingKey, JSON.toJSONString(start_type), message -> {
// 设置消息过期时间 30 分钟 过期
message.getMessageProperties().setExpiration("" + (30 * 1000 * 60));
return message;
});
} catch (Exception e) {
System.out.println("发送获取激活时间指令失败 " + e.getMessage());
}
}
}
}
}catch (Exception e){
System.out.println("发送获取激活时间指令 异常 "+e.getMessage());
}
return Rmap;
}
public Map<String, Object> cardPackageInfo(Map<String, Object> map) {
Map<String, Object> Rmap = new HashMap<>();
Map<String, Object> Pmap = new HashMap<>();
Map<String, Object> Cardmap = yzCardRouteMapper.findIccid(map);
if(Cardmap!=null && Cardmap.get("iccid")!=null){
String iccid = Cardmap.get("iccid").toString();
Pmap.put("iccid",iccid);
Pmap.put("all",map.get("all"));
Rmap.put("packetArr",yzCardRouteMapper.findFlowArr(Pmap));
}else{
Rmap.put("packetArr",null);
}
return Rmap;
}
public Map<String, Object> queryCardActiveTime(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryCardActiveTime",find_card_route_map);
}
public Map<String, Object> realNameRemove(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "realNameRemove",find_card_route_map);
}
public Map<String, Object> queryCardImei(Map<String, Object> map,Map<String, Object> find_card_route_map) {
return CPU(map, "queryCardImei",find_card_route_map);
}
public Map<String, Object> getToken(Map<String, Object> map) {
Map<String, Object> Rmap = null;
String tokenType = map.get("tokenType").toString();
Object refreshToken = map.get("refreshToken");//刷新token
String cd_code = "";
Map<String, Object> find_card_route_map = null;
if(tokenType.equals("001")){
map.put("cd_id","1");
find_card_route_map = yzCardRouteMapper.getRoute(map);
cd_code = find_card_route_map.get("cd_code").toString();
if(refreshToken!=null){
find_card_route_map.put("refreshToken",refreshToken);
}
YD_EC_Api Qy = new YD_EC_Api(find_card_route_map,cd_code);
Rmap = new HashMap<>();
Rmap.put("token",Qy.token);
}
return Rmap;
}
/**
* 通道处理器
*
* @param map
* @param function_name
* @param find_card_route_map
* @return
*/
private Map<String, Object> CPU(Map<String, Object> map, String function_name, Map<String, Object> find_card_route_map) {
//System.out.println("CPU====");
Map<String, Object> rmap = new HashMap<String, Object>();
//判断卡 通道 类型 类型
//System.out.println(map);
find_card_route_map = find_card_route_map==null?yzCardRouteMapper.find_route(map):find_card_route_map;
//System.out.println(find_card_route_map);
String cd_code = find_card_route_map.get("cd_code").toString();//通道类型
try {
String network_type = find_card_route_map.get("network_type")!=null?find_card_route_map.get("network_type").toString():"";//通道类型
if(network_type!=null && network_type.length()>0 && network_type.equals("1")){
if(cd_code.equals("YiDong_ECv2")){
cd_code = "YiDong_ECv2_Combo";
}else if(cd_code.equals("YiDong_EC")){
cd_code = "YiDong_EC_Combo";
}
}
}catch (Exception e){
System.out.println("CPU = network_type 异常 "+e.getMessage()+" "+JSON.toJSONString(find_card_route_map));
}
String cd_status = find_card_route_map.get("cd_status").toString();//通道状态
String card_no = find_card_route_map.get("card_no")!=null?find_card_route_map.get("card_no").toString():"";// 真实号码
String imei = null;
String iccid = map.get("iccid").toString();//iccid
String dateTime = null;
String Is_Stop = null;
String Is_Break = null;
String speedValue = null;
String Is_Spee = null;
String bind_type = null;
String AutomaticRecovery = null;
String contactName = null;
String contactPhone = null;
String testType = null;
String operType = null;
if (function_name.equals("queryFlowHis")){
dateTime = map.get("dateTime") != null ? map.get("dateTime").toString() : null;// 【查询历史流量月】
}else if (function_name.equals("changeCardStatus")){
Is_Stop = map.get("Is_Stop") != null ? map.get("Is_Stop").toString() : null;// 【是否停复机】 on 开机 off 停机
}else if (function_name.equals("FunctionApnStatus")){
Is_Break = map.get("Is_Break") != null ? map.get("Is_Break").toString() : null;// 【断网复机】 是否 0 开机 1 停机
}else if (function_name.equals("SpeedLimit")){
speedValue = map.get("speedValue") != null ? map.get("speedValue").toString() : null;// 【限速】 标准 值
Is_Spee = map.get("Is_Spee") != null ? map.get("Is_Spee").toString() : null;// 【限速】 是否 0 增加 1 删除
AutomaticRecovery = map.get("AutomaticRecovery") != null ? map.get("AutomaticRecovery").toString() : null;// 是否 【限速】月初是否恢复 0 自动恢复 1 不自动恢复
}else if (function_name.equals("MachineCardBinding")){
bind_type = map.get("bind_type") != null ? map.get("bind_type").toString() : null;// 【机卡绑定】 【电信CMP】 不填,表示普通机卡重绑 填写2,表示固定机卡重绑
imei = map.get("imei") != null ? map.get("imei").toString() : null;// 【机卡绑定】 【电信CMP】 只有在bind_typ=2时才需传入,表示固定绑定到该设备号
contactName = map.get("contactName") != null ? map.get("contactName").toString() : null;// 电信DCP 解绑用
contactPhone = map.get("contactPhone") != null ? map.get("contactPhone").toString() : null;// 电信DCP 解绑用
}else if(function_name.equals("cardBindStatus")){
testType = map.get("cardBindStatus") != null ? map.get("cardBindStatus").toString() : "1";// 【物联卡机卡分离状态查询 】 ECv5
}else if (function_name.equals("changeCardStatusFlexible")){
/**
* 0:已激活转已停机
* 1:已停机转已激活
* 2:库存转已激活
* 3:可测试转库存
* 4:可测试转待激活
* 5:可测试转已激活
* 6:待激活转已激活
*/
operType = map.get("operType") != null ? map.get("operType").toString() : null;// 【状态灵活变更】
}
rmap.put("iccid",iccid);
//find_card_route_map != null &&
if ( cd_code != null && cd_code.equals("") == false && cd_status.equals("1")) {
if (cd_code.equals("IoTLink")) {
if (function_name.equals("queryFlow")) {
Query_IoTLink Qy = new Query_IoTLink(find_card_route_map);
rmap.put("Data",Qy.simDataUsage(iccid));
}else if (function_name.equals("queryCardStatus")) {
Query_IoTLink Qy = new Query_IoTLink(find_card_route_map);
rmap.put("Data",Qy.simStatus(iccid));
}else if(function_name.equals("queryOnlineStatus")){
Query_IoTLink Qy = new Query_IoTLink(find_card_route_map);
rmap.put("Data",Qy.simSession(iccid));
}else if(function_name.equals("changeCardStatus")){
serviceAccept_IoTLink Ser = new serviceAccept_IoTLink(find_card_route_map);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "0";//正常
} else if (Is_Stop.equals("off")){
stop = "1";//停机
}
rmap.put("Data", Ser.changeSimStatus(iccid,stop));
}else if (function_name.equals("queryCardActiveTime")) {
Query_IoTLink Qy = new Query_IoTLink(find_card_route_map);
rmap.put("Data", Qy.cardInfo(card_no));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("DianXin_CMP")) {
if (function_name.equals("queryFlow")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data", Qy.query(card_no));
} else if (function_name.equals("queryFlowHis")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data", Qy.queryTrafficByDate(card_no, dateTime + "01", VeDate.getEndDateOfMonth(dateTime), "0"));
} else if (function_name.equals("queryCardStatus")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data", Qy.queryCardMainStatus(card_no));
}else if(function_name.equals("queryOnlineStatus")){
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data",Qy.queryMainOnlineStatus(card_no));
} else if(function_name.equals("queryCardBIndStatus")){
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data",Qy.queryMainCardBIndStatus(imei));
} else if (function_name.equals("changeCardStatus")) {
//实例化 电信 CMP 业务变更 类
serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "20";//正常
} else if (Is_Stop.equals("off")){
stop = "19";//停机
}
rmap.put("Data", Ser.disabledNumber(card_no,stop));
}else if (function_name.equals("queryRealNameStatus")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data", Qy.realNameQueryIot(card_no));
}
else if (function_name.equals("queryAPNInfo")) {
rmap.put("Data", "未开放接口!");
}else if (function_name.equals("todayUse")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
String now = VeDate.getNowDateShortNuber();//获取今天时间 yyyyMMdd
//System.out.println("now = "+now);
rmap.put("Data", Qy.queryTrafficByDate(card_no, now, now, "0"));
}else if (function_name.equals("FunctionApnStatus")) {
//实例化 电信 CMP 业务变更 类
serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map);
String option = Is_Break.equals("0")?"DEL":"ADD";
rmap.put("Data", Ser.singleCutNet(card_no,option));
}else if (function_name.equals("SpeedLimit")) {
//实例化 电信 CMP 业务变更 类
serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map);
String option = Is_Spee.equals("1")?"DEL":"ADD";
Map<String,Object> Smap = Ser.speedValue_set(speedValue);
boolean bool = (boolean) Smap.get("bool");
speedValue = Smap.get("speedValue").toString();
if(bool){
rmap.put("Data", Ser.speedLimitAction(card_no,speedValue,option));
}else{
rmap.put("Data", "限速标准不存在,请检查后重试!");
}
}else if (function_name.equals("MachineCardBinding")) {
//实例化 电信 CMP 业务变更 类
serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map);
rmap.put("Data", Ser.IMEIReRecord(card_no,bind_type,imei));
}else if (function_name.equals("queryCardActiveTime")) {
//实例化 电信 CMP 查询 类
Query_DX Qy = new Query_DX(find_card_route_map);
rmap.put("Data", Qy.queryCardMainStatus(card_no));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
} else if (cd_code.equals("LianTong_CMP")) {
if (function_name.equals("queryFlow")) {
//实例化 联通 CMP 查询 类
Query_LT Qy = new Query_LT(find_card_route_map);
rmap.put("Data", Qy.queryFlow(iccid));
} else if (function_name.equals("queryFlowHis")) {
//实例化 联通 CMP 查询 类
Query_LT Qy = new Query_LT(find_card_route_map);
rmap.put("Data", Qy.queryFlowHis(iccid, dateTime));
} else if (function_name.equals("queryCardStatus")) {
//实例化 联通 CMP 查询 类
Query_LT Qy = new Query_LT(find_card_route_map);
rmap.put("Data", Qy.queryCardStatus(iccid));
} else if (function_name.equals("changeCardStatus")) {
//实例化 联通 CMP 业务变更 类
serviceAccept_LT Ser = new serviceAccept_LT(find_card_route_map);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "2";//正常
} else if (Is_Stop.equals("off")){
stop = "3";//停机
}
rmap.put("Data", Ser.changeCardStatus(iccid,stop));
}else if (function_name.equals("queryRealNameStatus")) {
//实例化 联通 CMP 查询 类
Query_LT Qy = new Query_LT(find_card_route_map);
//iccid = iccid.length()>19?iccid.substring(0,19):iccid;
rmap.put("Data", Qy.queryRealNameStatus(iccid));
}else if (function_name.equals("queryAPNInfo")) {
//实例化 联通 CMP 查询 类
Query_LT Qy = new Query_LT(find_card_route_map);
rmap.put("Data", Qy.queryAPNInfo(iccid));
}else if (function_name.equals("FunctionApnStatus")) {
rmap.put("Data", "未开放接口!");
}else if (function_name.equals("SpeedLimit")) {
//实例化 联通 CMP 业务变更 类
serviceAccept_LT Ser = new serviceAccept_LT(find_card_route_map);
Map<String,Object> Smap = Ser.speedValue_set(speedValue);
boolean bool = (boolean) Smap.get("bool");
speedValue = Smap.get("speedValue").toString();
if(bool){
rmap.put("Data", Ser.upNetWork(iccid,speedValue));
}else{
rmap.put("Data", "限速标准不存在,请检查后重试!");
}
}else if (function_name.equals("MachineCardBinding")) {
rmap.put("Data", "未开放接口!");
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
} else if (cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo") ) {
if (function_name.equals("queryFlow")) {
//实例化 移动 EC 查询 类
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
if(cd_code.equals("YiDong_EC_Combo")){
rmap.put("Data", Qy.queryGprsMarginBySim(card_no));
}else{
rmap.put("Data", Qy.selectFlow(card_no));
}
} else if (function_name.equals("queryFlowHis")) {
//实例化 移动 EC 查询 类
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.designatedMonth(card_no, dateTime));
} else if (function_name.equals("queryCardStatus")) {
//实例化 移动 EC 查询 类
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryCardStatus(card_no));
}else if (function_name.equals("changeCardStatus")) {
//实例化 移动 EC 业务变更 类
serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "1";//正常
} else if (Is_Stop.equals("off")){
stop = "0";//停机
}
rmap.put("Data", Ser.changeCardStatus(card_no,stop));
}else if (function_name.equals("queryRealNameStatus")) {
rmap.put("Data", "未开放接口!");
}else if (function_name.equals("queryAPNInfo")) {
//实例化 移动 EC 查询 类
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryApnStatus(card_no));
}else if (function_name.equals("FunctionApnStatus")) {
//实例化 移动 EC 业务变更 类
serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code);
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Ser.FunctionApnStatus(card_no,Is_Break, Qy.queryApnStatus(card_no)));
}else if (function_name.equals("SpeedLimit")) {
//实例化 移动 EC 业务变更 类
serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code);
Map<String,Object> Smap = Ser.speedValue_set(speedValue,AutomaticRecovery);
boolean bool = (boolean) Smap.get("bool");
speedValue = Smap.get("speedValue").toString();
if(bool){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
Map<String,Object> Jobj = Qy.queryApnStatus(card_no);
String apnName =null;
if(Jobj.get("status").toString().equals("0")){
Map<String,Object> result = ((List<Map<String,Object>>)Jobj.get("result")).get(0);
Map<String,Object> data =((List<Map<String,Object>>) result.get("serviceTypeList")).get(0);
apnName = data.get("apnName").toString();
}
rmap.put("Data", Ser.speed(card_no,apnName,speedValue));
}else{
rmap.put("Data", "限速标准不存在,请检查后重试!");
}
}else if (function_name.equals("MachineCardBinding")) {
rmap.put("Data", "未开放接口!");
}else if(function_name.equals("queryOnlineStatus")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.sim_session(card_no));
}else if(function_name.equals("queryCardActiveTime")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryCardActiveTime(card_no));
}else if(function_name.equals("queryCardImei")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryCardImei(card_no));
}else if(function_name.equals("simStopReason")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.simStopReason(card_no));
}else if(function_name.equals("onOffStatus")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.onOffStatus(card_no));
}else if(function_name.equals("apnInfo")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.apnInfo(card_no));
}else if(function_name.equals("cardBindStatus")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.cardBindStatus(card_no,testType));
}else if(function_name.equals("simChangeHistory")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.simChangeHistory(card_no));
}else if (function_name.equals("changeCardStatusFlexible")) {
//实例化 移动 EC 业务变更 类
serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code);
rmap.put("Data", Ser.changeCardStatus(card_no,operType));
}else if(function_name.equals("simDataMargin")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.simDataMargin(card_no));
}else if(function_name.equals("queryOffering")){
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryOffering(card_no));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if(cd_code.equals("DianXin_DCP")){
if (function_name.equals("queryFlow")) {
rmap=dcpDxService.queryFlow(iccid,find_card_route_map);
} else if (function_name.equals("queryFlowHis")) {
rmap.put("data","未开放接口");
} else if (function_name.equals("queryCardStatus")) {
rmap=dcpDxService.querySimStatus(iccid,find_card_route_map);
} else if (function_name.equals("changeCardStatus")) {
String stop = null;
if (Is_Stop.equals("on")) {
stop = "2";//正常
} else if (Is_Stop.equals("off")){
stop = "3";//停机
}
rmap=dcpDxService.changeCardStatus(iccid,stop,find_card_route_map);
}else if (function_name.equals("queryRealNameStatus")) {
rmap=dcpDxService.queryAuth(iccid,card_no,find_card_route_map);
}
else if (function_name.equals("queryAPNInfo")) {
rmap=dcpDxService.queryLimit(iccid,find_card_route_map);
}else if (function_name.equals("todayUse")) {
rmap.put("data","未开放接口");
}else if (function_name.equals("FunctionApnStatus")) {
rmap.put("data","未开放接口");
}else if (function_name.equals("SpeedLimit")) {
serviceAccept_DX Ser = new serviceAccept_DX(find_card_route_map);
Map<String,Object> Smap = Ser.speedValue_set(speedValue);
boolean bool = (boolean) Smap.get("bool");
speedValue = Smap.get("speedValue").toString();
if(bool){
rmap=dcpDxService.changeLimit(iccid,
"13",speedValue,find_card_route_map);
}else{
rmap.put("data", "限速标准不存在,请检查后重试!");
}
}else if (function_name.equals("MachineCardBinding")) {
serviceAccept_DianXinDCP Ser = new serviceAccept_DianXinDCP(find_card_route_map);
//bind_type = 联系人姓名 imei = 联系人手机号码
rmap.put("data",Ser.unlockSimbind(iccid,contactName,contactPhone));
}else if (function_name.equals("realNameRemove")) {
serviceAccept_DianXinDCP Ser = new serviceAccept_DianXinDCP(find_card_route_map);
//bind_type = 联系人姓名 imei = 联系人手机号码
rmap.put("data",Ser.realNameRemove(iccid,"iccid"));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) {
if (function_name.equals("queryFlow")) {
//实例化 查询 类
Query_EcV2 Qy = new Query_EcV2(find_card_route_map);
if(cd_code.equals("YiDong_ECv2_Combo")){
rmap.put("Data", Qy.gprsrealtimeinfo(iccid));
}else {
rmap.put("Data", Qy.queryCardFlow(iccid));
}
} else if (function_name.equals("queryCardStatus")) {
//实例化 查询 类
Query_EcV2 Qy = new Query_EcV2(find_card_route_map);
rmap.put("Data", Qy.queryCardStatus(iccid));
} else if (function_name.equals("queryOnlineStatus")) {
//实例化 查询 类
Query_EcV2 Qy = new Query_EcV2(find_card_route_map);
rmap.put("Data", Qy.sim_session(iccid));
} else if (function_name.equals("queryOffering")) {
//实例化 查询 类
Query_EcV2 Qy = new Query_EcV2(find_card_route_map);
rmap.put("Data", Qy.querycardprodinfod(iccid));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("DianXin_CMP_5G")) {//电信CMP5G
if (function_name.equals("queryFlow")) {
//实例化 查询 类
Query_DX5G Qy = new Query_DX5G(find_card_route_map);
rmap.put("Data", Qy.queryTraffic(card_no,"0"));
}
else if (function_name.equals("queryCardStatus")) {
//实例化 查询 类
Query_DX5G Qy = new Query_DX5G(find_card_route_map);
rmap.put("Data", Qy.queryCardMainStatus(card_no,null));
} else if (function_name.equals("changeCardStatus")) {
//实例化
ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(find_card_route_map);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "20";//正常
} else if (Is_Stop.equals("off")) {
stop = "19";//停机
}
rmap.put("Data", Sr.disabledNumberService(card_no,stop));
} else if (function_name.equals("FunctionApnStatus")) {
//实例化 查询 类
ServiceAccept_DX5G Sr = new ServiceAccept_DX5G(find_card_route_map);
String option = Is_Break.equals("0")?"ADD":"DEL";
rmap.put("Data", Sr.apnNetStatusAction(card_no,option));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
} else {
rmap.put("cd_code", 500);
rmap.put("Message", "划分的通道 通道编号配置错误请检查通道编号!");
}
} else if (cd_status == "2" || cd_status == "3") {
rmap.put("cd_code", 500);
rmap.put("Message", "划分通道 已停用或已删除!");
} else {
rmap.put("cd_code", 500);
rmap.put("Message", "未找到 划分通道!");
}
return rmap;
}
}
@@ -0,0 +1,117 @@
package com.yunze.apiCommon.upstreamAPI.SDYiDong.Inquire;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.SDYiDong.Sdiot_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
public class Query_Sdiot extends Sdiot_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd", "");
map.put("cd_key", "");
Query_Sdiot Qy = new Query_Sdiot(map);
for (int i = 0; i < 1; i++) {
System.out.println(Qy.queryCardStatus("10"));
}
}
public Query_Sdiot(Map<String, Object> init_map) {
super(init_map);
}
/**
* 获取单卡的流量
* @param queryNum 接入号
* @param
* @return
*/
public static String queryFlow(String queryNum) {
String Rstr = null;
try {
Map<String, Object> params = new HashMap<>();
params.put("appkey",appkey);
params.put("token",token);
params.put("numType","1");
params.put("queryNum",queryNum);
params.put("provinceid",provinceid);
String url = server_Ip + "/cmiotopen/qryGPRSRealTimeInfo";
Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params));
} catch (Exception e) {
e.printStackTrace();
}
return Rstr;
}
/**
* 获取单卡的状态
*  00-正常;
*  01-单向停机;
*  02-停机;
*  03-预销号;
*  04-销号;
*  05-过户;
*  06-休眠;
*  07-待激;
*  99-号码不存在
* @param msisdn 接入号
* @param
* @return
*/
public static String queryCardStatus(String msisdn) {
String Rstr = null;
try {
Map<String, Object> params = new HashMap<>();
params.put("appkey",appkey);
params.put("token",token);
params.put("msisdn",msisdn);
params.put("provinceid",provinceid);
String url = server_Ip + "/cmiotopen/qryUserStatusRealSingle";
Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params));
} catch (Exception e) {
e.printStackTrace();
}
return Rstr;
}
/**
* 在线信息查询
* @param msisdn
* @return
*/
public static String qryGPRSInfo(String msisdn) {
String Rstr = null;
try {
Map<String, Object> params = new HashMap<>();
params.put("appkey",appkey);
params.put("token",token);
params.put("msisdn",msisdn);
params.put("provinceid",provinceid);
String url = server_Ip + "/cmiotopen/qryGPRSInfo";
Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params));
} catch (Exception e) {
e.printStackTrace();
}
return Rstr;
}
}
@@ -0,0 +1,75 @@
package com.yunze.apiCommon.upstreamAPI.SDYiDong;
import com.yunze.apiCommon.utils.MD5Util;
import com.yunze.apiCommon.utils.SHA256Util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 山东 移动老系统 接口
*/
public class Sdiot_Api {
//构造赋值
public Sdiot_Api(Map<String, Object> init_map){
appkey = init_map.get("cd_username").toString();
appsecret = init_map.get("cd_pwd").toString();
provinceid = init_map.get("cd_key").toString();
token = getToken();
}
// 服务器请求地址 http://223.99.141.141:10110/sdiot
protected static String server_Ip = "http://223.99.141.141:10110/sdiot";
// 秘钥key
public static String appkey = null;
//秘钥密码
public static String appsecret = null;
//省份编码,山东省为:“531”
public static String provinceid = null;
public static String token = null;
// 配置调用的名称
protected static String Config_name = "";
public static String getSign(Map<String,Object> map,String key){
List<String> list=new ArrayList<>(map.keySet());
/* for (int i = 0; i < list.size(); i++) {
//System.out.println(list.get(i));
}*/
Collections.sort(list);
////System.out.println("后----");
/* for (int i = 0; i < list.size(); i++) {
//System.out.println(list.get(i));
}*/
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
String k =list.get(i);
String v=(String )map.get(k);
sb.append(k).append("=").append(v).append("&");
}
String signstr=sb.append("key=").append(key).toString();
String sign = MD5Util.MD5Encode(signstr).toUpperCase();
return sign;
}
public String getToken(){
return SHA256Util.getSHA256StrJava(appkey+appsecret).toLowerCase();
}
}
@@ -0,0 +1,550 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEC.Inquire;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
public class Query_YD extends YD_EC_Api {
public Query_YD(Map<String, Object> init_map,String cd_code) {
super(init_map,cd_code);
}
/**
* 单卡本月套餐内流量使用量实时查询
* @param card_no
* @return
*/
public String queryGprsMarginBySim(String card_no) {
String functionNm = "/query/sim-data-margin";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String url = server_Ip + functionNm;
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡接口查询卡状态
* @param card_no
* @return
*/
public String queryCardStatus(String card_no) {
String functionNm = "/query/sim-status";
JSONObject json = new JSONObject();
String cardStatus = null;
String lastChangeDate = null;
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("msisdn", card_no);
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 月流量查询接口
* @param card_no
* @return
*/
public String selectFlow(String card_no) {
String functionNm = "/query/sim-data-usage";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String url = server_Ip + functionNm;
String Str = send(url,json);
//System.out.println(Str);
return repeat(Str,json,url);
}
/**
* 查询指定月份的已用流量。6个月内的
*
* @param card_no
* @param queryDate
* @return
*/
public String designatedMonth(String card_no, String queryDate) {
String functionNm = "/query/sim-data-usage-monthly/batch";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdns", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("queryDate", queryDate);
String url = server_Ip + functionNm;
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡卡状态操作
* @param card_no
* @param flag
* @return
*/
/*public String changeCardStatus(String card_no, String flag) {
String functionNm = "/change/sim-status";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("operType", flag);
String Str = send(url,json);
return repeat(Str,json,url);
}*/
/**
* 查询单卡的机卡分离状态
* @param card_no
* @return
*/
public String queryCardBindStatus(String card_no) {
String functionNm = "/query/card-bind-status";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String cardStatus = null;
String sepTime = null;
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("testType", 0);
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 解除单卡的机卡分离
* @param card_no
* @return
*/
/* public String upCardBindStatus(String card_no) {
String functionNm = "/operate/card-bind-by-bill";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("operType", 2);
String Str = send(url,json);
return repeat(Str,json,url);
}*/
/**
* 单卡查询激活以及开卡时间
* @param card_no
* @return
*/
public String queryCardActiveTime(String card_no) {
String functionNm = "/query/sim-basic-info";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* @param @param card_no
* @param @return 参数
* @return JSONObject 返回类型
* @throws
* @Description:单卡查询apn状态
* @author
* @date 2020年5月25日
*/
public Map<String, Object> queryApnStatus(String card_no) {
String functionNm = "/query/sim-communication-function-status";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
//String Str = HttpUtil.post(url, json.toJSONString());
String Str = send(url,json);
return JSONObject.parseObject(repeat(Str,json,url));
}
/**
* 流量池信息查询
* @return
*/
public static String queryFlowPool(){
String functionNm = "/query/group-data-margin";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
}
json.put("groupId", appId);
String Str = HttpUtil.post(url, json.toJSONString());
return Str;
}
/**
* 单卡在线信息实时查询
* @param card_no
* @return
*/
public String sim_session(String card_no) {
String functionNm = "/query/sim-session";
JSONObject json = new JSONObject();
String cardStatus = null;
String lastChangeDate = null;
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡实时使用终端 IMEI 查询
* @param card_no
* @return
*/
public String queryCardImei(String card_no) {
String functionNm = "/query/sim-imei";
JSONObject json = new JSONObject();
String cardStatus = null;
String lastChangeDate = null;
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡停机原因查询
* @param card_no
* @return
*/
public String simStopReason(String card_no) {
String functionNm = "/query/sim-stop-reason";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡开关机状态实时查询
* @param card_no
* @return
*/
public String onOffStatus(String card_no) {
String functionNm = "/query/on-off-status";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡已开通APN信息查询
* @param card_no
* @return
*/
public String apnInfo(String card_no) {
String functionNm = "/query/apn-info";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 物联卡机卡分离状态查询
* @param card_no
* @param testType 分离检测方式:
* 0:话单侧检测
* 1:网络侧检测
* @return
*/
public String cardBindStatus(String card_no,String testType) {
String functionNm = "/query/card-bind-status";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
json.put("testType", testType);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
json.put("testType", testType);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡状态变更历史查询
* @param card_no
* @return
*/
public String simChangeHistory(String card_no) {
String functionNm = "/query/sim-change-history";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 单卡本月套餐内流量使用量实时查
* @param card_no
* @return
*/
public String simDataMargin(String card_no) {
String functionNm = "/query/sim-data-margin";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 资费订购实时查询
* @param card_no
* @return
*/
public String queryOffering(String card_no) {
String functionNm = "/query/ordered-offerings";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
json.put("queryType", "3");
}else{
json.put("interface", functionNm);
json.put("appid", appId);
json.put("queryType", "3");
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
}
@@ -0,0 +1,53 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEC;
import com.alibaba.fastjson.JSONObject;
/**
* EC 官方返回数据格式
*/
public class ResJson extends JSONObject {
private String status;
private String message;
private Object result;
public ResJson(String status, String message, Object result) {
this.status = status;
this.message = message;
this.result = result;
/* try {
this.result = AesEncryptUtil.desEncrypt(result.toString(),"Api@iotyunze00","2020_12_10163622");
}catch (Exception e){
this.result = "返回数据加密失败";
//System.out.println(e);
}*/
}
public ResJson() {
}
public ResJson success(Object result){
this.put("status","0");
this.put("message","正确");
/* try {
result = AesEncryptUtil.desEncrypt(result.toString(),"Api@iotyunze00","2020_12_10163622");
}catch (Exception e){
result = "返回数据加密失败";
//System.out.println(e);
}*/
this.put("result",result);
//System.out.println(this);
return this;
}
public ResJson error(String status, String message, Object result){
this.put("status",status);
this.put("message",message);
this.put("result",result);
//System.out.println(this);
return this;
}
}
@@ -0,0 +1,151 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEC;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.config.RedisUtil;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.UrlUtil;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 移动 EC 系统 API 接口
*/
public class YD_EC_Api {
private RedisUtil redisUtil;
//构造赋值
public YD_EC_Api(Map<String, Object> init_map,String cd_code){
redisUtil = new RedisUtil();
appId = init_map.get("cd_username").toString();
password = init_map.get("cd_pwd").toString();
if(cd_code.equals("YiDong_EC_TengYu")){
server_Ip = init_map.get("cd_key").toString();
}else{
server_Ip = "https://api.iot.10086.cn/v5/ec";
}
this.cd_code = cd_code;
String R_token = null;
try {
R_token = (String) redisUtil.redisTemplate.opsForValue().get(password+":"+ appId);
}catch (Exception e){
//System.out.println("移动获取 token 异常");
//System.out.println(e);
}
// 去 Redis 查询 当前 的 token
//System.out.println("R_token = "+R_token);
if(R_token!=null && R_token!=""){
token = R_token;
}else{
if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo")){
//获取token
SetToken(appId,password);
}
}
}
// 服务器请求地址
protected static String server_Ip = "https://api.iot.10086.cn/v5/ec";
// user_id
protected static String appId = null;
// 秘钥密码
protected static String password = null;
// 配置调用的名称
protected static String Config_name = "";
// 企业 编号
protected static String transid =null;
//token 获取请求参数
protected static Map<String,Object> TokenMap = null;
//通道编码
protected static String cd_code = null;
// token
public static String token = null;
/**
* 获取 token
* @param appid
* @param pwd
*/
public void SetToken(String appid, String pwd) {
String method = server_Ip + "/get/token";
Map<String, Object> params = new HashMap<String, Object>();
params.put("appid", appid);
params.put("password", pwd);
params.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
String reqUrl = UrlUtil.getUrl(method, params);
//System.err.println(reqUrl);
String res = HttpUtil.get(reqUrl);
//System.out.println("res = " + res);
JSONObject json = JSON.parseObject(res);
Object status = json.get("status");
if (status != null && status.toString().equals("0")) {
Map<String, String> map = ((List<Map<String, String>>) json.get("result")).get(0);
token = map.get("token");
//System.out.println("token = " + token);
redisUtil.redisTemplate.opsForValue().set(password + ":" + appId, token, 10, TimeUnit.MINUTES);
//redisUtil.redisTemplate.expire(appId+"_"+password, 60*50, TimeUnit.SECONDS);
}
}
/**
* 检查返回数据为 token 失效 时 重新 获取 token
* @param Str
* @param json
* @param url
* @return
*/
public String repeat (String Str, JSONObject json, String url){
if (Str != null) {
JSONObject rmap = JSONObject.parseObject(Str);
//{"status":"12021","message":"TOKEN不存在或已过期,请重新获取","result":[]}
if (rmap.get("status").toString().equals("12021")) {
// 重置 token , 再次执行
if(cd_code.equals("YiDong_EC") || cd_code.equals("YiDong_EC_Combo")){
SetToken(appId, password);
}
json.put("token", token);
Str = HttpUtil.post(url, json.toJSONString());
}
}
return Str;
}
/**
* 数据发送
* @param url
* @param json
* @return
*/
public String send(String url, JSON json){
String Str = null;
if(!cd_code.equals("YiDong_EC_TengYu")){
Str = HttpUtil.post(url, json.toJSONString());
}else {
try {
Str = HttpUtil.sendPostJson(url, json.toJSONString());
}catch (Exception e){
System.out.println(url+" <<<< >>>> "+json.toJSONString()+" HttpUtil.sendPostJson 异常 "+e.getMessage());
}
}
return Str;
}
}
@@ -0,0 +1,229 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEC.change;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api;
import com.yunze.apiCommon.utils.CommonlyUsed;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* 移动 变更 接口
*/
public class serviceAccept_YD extends YD_EC_Api {
public serviceAccept_YD(Map<String, Object> init_map,String cd_code) {
super(init_map,cd_code);
}
/**
* 项目描述 单卡卡状态操作
* 0:申请停机(已激活转已停机)
1:申请复机(已停机转已激活)
2:库存转已激活
3:可测试转库存
4:可测试转待激活
5:可测试转已激活
6:待激活转已激活
* @param card_no
* @param flag
* @return
* @throws IOException
*/
public String changeCardStatus(String card_no, String flag){
String functionNm = "/change/sim-status";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip+functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
json.put("requestParams", requestParams);
}
json.put("operType", flag);
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
*
* @Title: FunctionApnStatus
* @Description:单卡apn 开停
* @param @param card_no
* @param @param operType 0:开 1:停
* @param @param 单卡apn信息
* @param @return 参数
* @return JSONObject 返回类型
* @throws
* @author
* @date 2020年5月25日
*/
public String FunctionApnStatus(String card_no,String operType,Map<String, Object> Jobj){
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip+"/operate/sim-apn-function";
String Str = null;
Map<String, Object> Data = ((List<Map<String, Object>>) Jobj.get("result")).get(0);
Map<String, Object> serviceTypeList = ((List<Map<String, Object>>) Data.get("serviceTypeList")).get(0);
String apnName=serviceTypeList.get("apnName").toString();
String serviceStatus =""; // 当前apn状态
//获取 查询 apn 数据
if(Jobj.get("status").toString().equals("0")){
serviceStatus = serviceTypeList.get("serviceStatus").toString(); // 0:暂停 1:恢复
}
if("1".equals(serviceStatus) &&"0".equals(operType)){
retult.put("status", "0");
retult.put("message", "操作成功");
Str = JSON.toJSONString(retult);
}else if("0".equals(serviceStatus)&&"1".equals(operType)){
retult.put("status", "0");
retult.put("message", "操作成功");
Str = JSON.toJSONString(retult);
}else{
json.put("transid", transid);
json.put("token", token);
json.put("msisdn", card_no);
json.put("apnName", apnName);
json.put("operType", operType);
Str = send(url,json);
}
return repeat(Str,json,url);
}
/**
* @param card_no
* @param apnName
* @param serviceUsageState
* 1:速率恢复
* 91:APN-AMBR=2Mbps(月初不自动恢复)
* 92:APN-AMBR=1Mbps(月初不自动恢复
* 93:APN-AMBR=512Kbps(月初不自动恢复)
* 94:APN-AMBR=128Kbps(月初不自动恢复)
* 95:APN-AMBR=2Mbps(月初自动恢复)
* 96:APN-AMBR=1Mbps(月初自动恢复)
* 97:APN-AMBR=512Kbps(月初自动恢复)
* 98:APN-AMBR=128Kbps(月初自动恢复)
* @return
*/
public String speed(String card_no, String apnName,String serviceUsageState){
String functionNm = "/operate/network-speed";
JSONObject retult = new JSONObject();
JSONObject json = new JSONObject();
String url = server_Ip+functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
json.put("apnName", apnName);
json.put("serviceUsageState", serviceUsageState);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
requestParams.put("apnName", apnName);
requestParams.put("serviceUsageState", serviceUsageState);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
/**
* 判断 在限速 标准 中
* @param speedValue
* @param AutomaticRecovery 月初 是否 自动恢复 0 自动 恢复 1 不自动恢复
* @return bool = true 在标准中
*/
public Map<String,Object> speedValue_set(String speedValue,String AutomaticRecovery){
boolean bool = false;
Map<String,Object> map = new HashMap<String,Object>();
List<String> rule = new ArrayList<String>();
rule.add("1");rule.add("91");rule.add("92");rule.add("93");
rule.add("94");rule.add("95");rule.add("96");rule.add("97");rule.add("98");
//自动恢复
if(AutomaticRecovery!=null && AutomaticRecovery!="" && AutomaticRecovery=="0"){
if(speedValue.equals("1")){
speedValue = "96";//1Mbps
}else if(speedValue.equals("2")){
speedValue = "95";//2Mbps
}else if(speedValue.equals("11")){
speedValue = "97";//512Kbps
}else if(speedValue.equals("5")){
speedValue = "98";//128Kbps
}
}else{
if(speedValue.equals("1")){
speedValue = "92";//1Mbps
}else if(speedValue.equals("2")){
speedValue = "91";//2Mbps
}else if(speedValue.equals("11")){
speedValue = "93";//512Kbps
}else if(speedValue.equals("5")){
speedValue = "94";//128Kbps
}
}
if(speedValue.equals("0")){
speedValue = "1";//不限制
}
bool = CommonlyUsed.Val_Is_Arr(rule,speedValue);//判断 传入 类型是否在 已有 标准中
map.put("speedValue",speedValue);
map.put("bool",bool);
return map;
}
/**
* V5.9.4 2021-11-26 ⚫ 下架“机卡绑定类”商品包及其包内所含接口
* 单卡机卡绑定/变更/解绑(网络侧)
* @param card_no
* @param operType 机卡操作:
* 1:机卡绑定
* 2:机卡解绑
* 3:绑定变更
* @param imei
* @return
*/
public String cardBind(String card_no, String operType,String imei){
String functionNm = "/operate/card-bind-by-web";
JSONObject json = new JSONObject();
String url = server_Ip+functionNm;
if(!cd_code.equals("YiDong_EC_TengYu")){
json.put("transid", appId + new SimpleDateFormat("YYYYMMDDHHMMSS").format(new Date()));
json.put("token", token);
json.put("msisdn", card_no);
json.put("operType", operType);
json.put("imei", imei);
}else{
json.put("interface", functionNm);
json.put("appid", appId);
Map<String,Object> requestParams = new HashMap<>();
requestParams.put("msisdn",card_no);
requestParams.put("operType", operType);
requestParams.put("imei", imei);
json.put("requestParams", requestParams);
}
String Str = send(url,json);
return repeat(Str,json,url);
}
}
@@ -0,0 +1,136 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEcV2.Inquire;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.YiDongEcV2.YD_EcV2_Api;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
@Slf4j
public class Query_EcV2 extends YD_EcV2_Api {
public Query_EcV2(Map<String, Object> init_map) {
super(init_map);
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "");
map.put("cd_pwd", ",");
map.put("cd_key", "");
Query_EcV2 Qy = new Query_EcV2(map);
for (int i = 0; i < 1; i++) {
System.out.println(Qy.gprsrealtimeinfo("8986041"));
}
}
/**
* 套餐内GPRS流量使用情况实时查询
* @param iccid
* @return
*/
public String gprsrealtimeinfo(String iccid) {
String functionNm = "/gprsrealtimeinfo";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
json.put("transid", transid);
json.put("token", token);
json.put("appid", appId);
json.put("ebid", "0001000000083");
json.put("iccid", iccid);
String Str = send(url,json);
log.info(">> {} gprsrealtimeinfo :{} <<", iccid, Str);
return Str;
}
/**
* 单卡接口查询卡状态
* @param iccid
* @return
*/
public String queryCardStatus(String iccid) {
String functionNm = "/userstatusrealsingle";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
json.put("transid", transid);
json.put("token", token);
json.put("appid", appId);
json.put("ebid", "0001000000009");
json.put("iccid", iccid);
String Str = send(url,json);
log.info(">> {} queryCardStatus :{} <<", iccid, Str);
return Str;
}
/**
* 月流量查询接口
* @param iccid
* @return
*/
public String queryCardFlow(String iccid) {
String functionNm = "/gprsusedinfosingle";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
json.put("transid", transid);
json.put("token", token);
json.put("appid", appId);
json.put("ebid", "0001000000012");
json.put("iccid", iccid);
String Str = send(url,json);
log.info(">> {} queryCardFlow :{} <<", iccid, Str);
return Str;
}
/**
* 单卡在线信息实时查询
* @param iccid
* @return
*/
public String sim_session(String iccid) {
String functionNm = "/gprsrealsingle";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
json.put("transid", transid);
json.put("token", token);
json.put("appid", appId);
json.put("ebid", "0001000000008");
json.put("iccid", iccid);
String Str = send(url,json);
return Str;
}
/**
* 物联卡资费套餐查询
* @param iccid
* @return
*/
public String querycardprodinfod(String iccid) {
String functionNm = "/querycardprodinfo";
JSONObject json = new JSONObject();
String url = server_Ip + functionNm;
json.put("transid", transid);
json.put("token", token);
json.put("appid", appId);
json.put("ebid", "0001000000264");
json.put("iccid", iccid);
String Str = send(url,json);
return Str;
}
}
@@ -0,0 +1,73 @@
package com.yunze.apiCommon.upstreamAPI.YiDongEcV2;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.utils.HttpUtil;
import com.yunze.apiCommon.utils.SHA256Util;
import com.yunze.apiCommon.utils.UrlUtil;
import com.yunze.apiCommon.utils.VeDate;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
* 移动 ECv2 系统 API 接口
*/
public class YD_EcV2_Api {
//构造赋值
public YD_EcV2_Api(Map<String, Object> init_map){
appId = init_map.get("cd_username").toString();
password = init_map.get("cd_pwd").toString();
ecID = init_map.get("cd_key").toString();
token = getToken();
}
// 服务器请求地址
protected static String server_Ip = "https://api.iot.10086.cn/v2";
// user_id
protected static String appId = null;
// 秘钥密码
protected static String password = null;
// 配置调用的名称
protected static String Config_name = "";
// 企业 编号
protected static String ecID =null;
// 请求 编号
protected static String transid =null;
//token 获取请求参数
protected static Map<String,Object> TokenMap = null;
// token
protected static String token = null;
/**
* 获取 token
*/
public String getToken() {
transid = VeDate.getTransid(appId,8);
return SHA256Util.getSHA256StrJava(appId+password+transid).toLowerCase();
}
/**
* 数据发送
* @param url
* @param map
* @return
*/
public String send(String url, Map<String,Object> map){
String Str = null;
try {
Str = HttpUtil.doPost(url, map);
}catch (Exception e){
System.out.println("url : "+url+" map : "+map+" 返回结果异常 "+e.getMessage());
}
/*System.out.println(url);
System.out.println(map);
System.out.println(Str);*/
return Str;
}
}
@@ -0,0 +1,134 @@
package com.yunze.apiCommon.utils;
/**
* AES 128bit 加密解密工具类
*
*/
import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AesEncryptUtil {
//使用AES-128-CBC加密模式,key需要为16位,key和iv可以相同!
private static String KEY = "YunZeIot@5iot.cn";
private static String IV = "www_5iot_cn@2022";
/**
* 加密方法
* @param data 要加密的数据
* @param key 加密key
* @param iv 加密iv
* @return 加密的结果
* @throws Exception
*/
public static String encrypt(String data, String key, String iv) throws Exception {
try {
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");//"算法/模式/补码方式"
int blockSize = cipher.getBlockSize();
byte[] dataBytes = data.getBytes("utf-8");
int plaintextLength = dataBytes.length;
if (plaintextLength % blockSize != 0) {
plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
}
byte[] plaintext = new byte[plaintextLength];
System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes("utf-8"), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes("utf-8"));
cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
byte[] encrypted = cipher.doFinal(plaintext);
////System.out.println("加密后:"+byteToHexString(encrypted));
return new Base64().encodeToString(encrypted);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 解密方法
* @param data 要解密的数据
* @param key 解密key
* @param iv 解密iv
* @return 解密的结果
* @throws Exception
*/
public static String desEncrypt(String data, String key, String iv) throws Exception {
try {
byte[] encrypted1 = new Base64().decode(data);
Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
SecretKeySpec keyspec = new SecretKeySpec(key.getBytes("utf-8"), "AES");
IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes("utf-8"));
cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
byte[] original = cipher.doFinal(encrypted1);
String originalString = new String(original,"utf-8");
return originalString.trim();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 使用默认的key和iv加密
* @param data
* @return
* @throws Exception
*/
public static String encrypt(String data) throws Exception {
return encrypt(data, KEY, IV);
}
/**
* 使用默认的key和iv加密
* @param data
* @return
* @throws Exception
*/
public static String EscapeEncrypt(String data) throws Exception {
data = data.replace("%2F", "/");//转义 /
data = data.replace(" ", "+");//转义 [ ] 》 +
return encrypt(data, KEY, IV);
}
/**
* 使用默认的key和iv解密
* @param data
* @return
* @throws Exception
*/
public static String desEncrypt(String data) throws Exception {
return desEncrypt(data, KEY, IV);
}
public static String byteToHexString(byte[] bytes) {
StringBuffer sb = new StringBuffer(bytes.length);
String sTemp;
for (int i = 0; i < bytes.length; i++) {
sTemp = Integer.toHexString(0xFF & bytes[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
return sb.toString();
}
/**
* 测试 V型知识库
*/
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,138 @@
package com.yunze.apiCommon.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
/**
* 精确的浮点数运算
*
* @author yunze
*/
public class Arith
{
/** 默认除法运算精度 */
private static final int DEF_DIV_SCALE = 10;
/** 这个类不能实例化 */
private Arith()
{
}
/**
* 提供精确的加法运算。
* @param v1 被加数
* @param v2 加数
* @return 两个参数的和
*/
public static double add(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.add(b2).doubleValue();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
/**
* 提供精确的乘法运算。
* @param v1 被乘数
* @param v2 乘数
* @return 两个参数的积
*/
public static double mul(double v1, double v2)
{
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
/**
* 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
* 小数点以后10位,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @return 两个参数的商
*/
public static double div(double v1, double v2)
{
return div(v1, v2, DEF_DIV_SCALE);
}
/**
* 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
* 定精度,以后的数字四舍五入。
* @param v1 被除数
* @param v2 除数
* @param scale 表示表示需要精确到小数点以后几位。
* @return 两个参数的商
*/
public static double div(double v1, double v2, int scale)
{
if (scale < 0)
{
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
if (b1.compareTo(BigDecimal.ZERO) == 0)
{
return BigDecimal.ZERO.doubleValue();
}
return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue();
}
/**
* 提供精确的小数位四舍五入处理。
* @param v 需要四舍五入的数字
* @param scale 小数点后保留几位
* @return 四舍五入后的结果
*/
public static double round(double v, int scale)
{
if (scale < 0)
{
throw new IllegalArgumentException(
"The scale must be a positive integer or zero");
}
BigDecimal b = new BigDecimal(Double.toString(v));
BigDecimal one = BigDecimal.ONE;
return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue();
}
/**
* 将double类型的科学计数法转换成指定格式的正常字符串
* start 转换double类型的格式为:两位小数
* @param d
* @return String
*/
public static double formatToTwo(double d) {
DecimalFormat a = new DecimalFormat("#,##0.00");
String frmStr = a.format(d);
if(frmStr.indexOf(",")==-1){//判断转换之后是不是带有 逗号
return Double.parseDouble(frmStr);
}else {
return d;
}
}
public static void main(String[] args) {
System.out.println(Arith.formatToTwo(9.765625e-4));
}
}
@@ -0,0 +1,671 @@
package com.yunze.apiCommon.utils;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
/**
* 卡状态 转换类
* @Auther: zhang feng
* @Date: 2022/03/03/18:23
* @Description:
*/
@Component
public class CardStatusReplacementUtil {
/**
* 接口返回状态装换成系统状态
* 获取 IoTLink 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getIoTLinkCardStatus(Integer StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
//库存 1
//可测试 2
//待激活 3
//已激活 4
//已停机 5
//预销户 6
//已销户 7
//未知 8
if (StatusCd == 1 ) {
statusCode = 19;
statusMessage = "库存";
}else if (StatusCd == 2) {
statusCode = 17;
statusMessage = "可测试";
}else if (StatusCd == 3) {
statusCode = 7;
statusMessage = "待激活";
} else if (StatusCd == 4) {
statusCode = 1;
statusMessage = "正常";
} else if (StatusCd == 5 ) {
statusCode = 2;
statusMessage = "停机";
}else if (StatusCd == 6) {
statusCode = 4;
statusMessage = "预销号";
}else if (StatusCd == 7) {
statusCode = 18;
statusMessage = "销号";
}else if (StatusCd == 8) {
statusCode = 8;
statusMessage = "未知";
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 获取卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getStates(String StatusCd){
Map<String,Object> map = new HashMap<>();
int statusCode = 0;
String statusMessage ="";
// 正常• 单项停机• 停机• 预销号• 销号• 过户• 休眠• 待激活• 未知
switch (StatusCd){
case "正常":
statusCode = 1;
statusMessage = "正常";
break;
case "单向停机":
statusCode = 3;
statusMessage = "单向停机";
break;
case "停机":
statusCode = 2;
statusMessage = "停机";
break;
case "预销号":
statusCode = 4;
statusMessage = "预销号";
break;
case "预注销":
statusCode = 4;
statusMessage = "预销号";
break;
case "销号":
statusCode = 18;
statusMessage = "销号";
break;
case "过户":
statusCode = 5;
statusMessage = "过户";
break;
case "休眠":
statusCode = 6;
statusMessage = "休眠";
break;
case "待激活":
statusCode = 7;
statusMessage = "待激活";
break;
case "号码不存在":
break;
case "已激活":
statusCode = 1;
statusMessage = "正常";
break;
case "激活":
statusCode = 1;
statusMessage = "正常";
break;
case "已停用":
statusCode = 2;
statusMessage = "停机";
break;
case "已失效":
statusCode = 18;
statusMessage = "销号";
break;
case "可测试":
statusCode = 17;
statusMessage = "可测试";
break;
case "库存":
statusCode = 19;
statusMessage = "库存";
break;
case "可激活":
statusCode = 7;
statusMessage = "待激活";
break;
case "去激活":
statusCode = 7;
statusMessage = "待激活";
break;
case "测试期正常":
statusCode = 9;
statusMessage = "测试期正常";
break;
case "测试去激活":
statusCode = 9;
statusMessage = "测试期正常";
break;
case "在用":
statusCode = 1;
statusMessage = "正常";
break;
case "运营商管理状态":
statusCode = 14;
statusMessage = "运营商管理状态";
break;
case "拆机":
statusCode = 16;
statusMessage = "拆机";
break;
case "销号/拆机":
statusCode = 16;
statusMessage = "拆机";
break;
case "违章停机":
statusCode = 20;
statusMessage = "违章停机";
break;
case "测试激活":
statusCode = 9;
statusMessage = "测试期正常";
break;
case "断网":
statusCode = 21;
statusMessage = "断网";
break;
case "已断网":
statusCode = 21;
statusMessage = "断网";
break;
case "运营商注销":
statusCode = 18;
statusMessage = "销号";
break;
case "欠停":
statusCode = 27;
statusMessage = "欠停";
break;
case "挂失":
statusCode = 28;
statusMessage = "挂失";
break;
case "故障卡":
statusCode = 29;
statusMessage = "故障卡";
break;
case "未实名停机":
statusCode = 30;
statusMessage = "未实名停机";
break;
case "超量停机":
statusCode = 31;
statusMessage = "超量停机";
break;
case "停机保号":
statusCode = 32;
statusMessage = "停机保号";
break;
case "已锁定":
statusCode = 33;
statusMessage = "已锁定";
break;
}
map.put("statusCode",statusCode);
map.put("statusMessage",statusMessage);
return map;
}
/**
* 接口返回状态装换成系统状态
* 获取移动Ec 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getEcV5CardStatus(Integer StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
// 1:待激活2:已激活4:停机6:可测试7:库存 8:预销户
if (StatusCd == 1 ) {
statusCode = 7;
statusMessage = "待激活";
}else if (StatusCd == 6) {
statusCode = 17;
statusMessage = "可测试";
}else if (StatusCd == 7) {
statusCode = 19;
statusMessage = "库存";
} else if (StatusCd == 2) {
statusCode = 1;
statusMessage = "正常";
} else if (StatusCd == 4 ) {
statusCode = 2;
statusMessage = "停机";
}else if (StatusCd == 8) {
statusCode = 4;
statusMessage = "预销号";
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* DongXin_ECV2 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getDongXin_ECV2_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
// ⚫ 00 -正常;⚫ 01-单向停机;⚫ 02-停机;⚫ 03-预销号; 04-销号;⚫ 05-过户;⚫ 06-休眠;⚫ 07-待激活;⚫ 99-号码不存在
if (StatusCd.equals("07")) {
statusCode = 7;
statusMessage = "待激活";
} else if (StatusCd.equals("00")) {
statusCode = 1;
statusMessage = "正常";
} else if (StatusCd.equals("01")) {
statusCode = 3;
statusMessage = "单向停机";
} else if (StatusCd.equals("03")) {
statusCode = 4;
statusMessage = "预销号";
} else if (StatusCd.equals("04")) {
statusCode = 18;
statusMessage = "销号";
} else if (StatusCd.equals("05")) {
statusCode = 5;
statusMessage = "过户";
} else if (StatusCd.equals("06")) {
statusCode = 6;
statusMessage = "休眠";
}else if ( StatusCd.equals("02")) {
statusCode = 2;
statusMessage = "停机";
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 联通_CMP 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getLianTong_CMP_CardStatus(Integer StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
// "0": 可测试,"1": 可激活, "2": 已激活, "3": 已停用, "4": 已失效, "5"": 已清除, "6": 已更换, "7": 库存, "8": 开始
if (StatusCd == 0 ) {
statusCode = 7;
statusMessage = "待激活";
} else if (StatusCd == 1) {
statusCode = 9;
statusMessage = "可激活";
} else if (StatusCd == 7) {
statusCode = 19;
statusMessage = "库存";
} else if (StatusCd == 8) {
statusCode = 22;
statusMessage = "开始";
}else if (StatusCd == 2) {
statusCode = 1;
statusMessage = "正常";
} else if (StatusCd == 3 ) {
statusCode = 2;
statusMessage = "停机";
}else if (StatusCd == 4) {
statusCode = 23;
statusMessage = "已失效";
}else if (StatusCd == 5) {
statusCode = 24;
statusMessage = "已清除";
}else if (StatusCd == 6) {
statusCode = 25;
statusMessage = "已更换";
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 电信 CMP 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getDianXin_CMP_CardStatus(Integer StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
// 1:可激活 2:测试激活 3:测试去激活 4:在用 5:停机 6:运营商管理状态 7:拆机
switch (StatusCd){
case 1:
statusCode = 7;
statusMessage = "待激活";
break;
case 2:
statusCode = 9;
statusMessage = "测试期正常";
break;
case 3:
statusCode = 15;
statusMessage = "测试去激活";
break;
case 4:
statusCode = 1;
statusMessage = "正常";
break;
case 5:
statusCode = 2;
statusMessage = "停机";
break;
case 6:
statusCode = 14;
statusMessage = "运营商管理状态";
break;
case 7:
statusCode = 16;
statusMessage = "拆机";
break;
default :
statusCode = 8;
statusMessage = "未知";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 电信 DCP 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getDianXin_DCP_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
// Active ( 已 激 活 )Deactivated (去激活) Paused ( 停 机 保 号 )Terminated (拆机)
switch (StatusCd) {
case "Active":
statusCode = 1;
statusMessage = "正常";
break;
case "Pause":
statusCode = 2;
statusMessage = "停机";
break;
case "Deactivated":
statusCode = 7;
statusMessage = "待激活";
break;
case "Terminated":
statusCode = 16;
statusMessage = "拆机";
break;
default:
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 TenngYu 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getTenngYu_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
Integer statusCode = 0;
String statusMessage = "";
switch (StatusCd){
case "1":
statusCode = 17;
statusMessage = "可测试";
break;
case "2":
statusCode = 7;
statusMessage = "待激活";
break;
case "3":
statusCode = 1;
statusMessage = "正常";
break;
case "4":
statusCode = 2;
statusMessage = "停机";
break;
case "5":
statusCode = 23;
statusMessage = "已失效";
break;
case "6":
statusCode = 24;
statusMessage = "已清除";
break;
case "7":
statusCode = 25;
statusMessage = "已清除";
break;
case "8":
statusCode = 19;
statusMessage = "库存";
break;
case "9":
statusCode = 22;
statusMessage = "开始";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 ChenZe 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getChenZe_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
//卡生命周期状态(1:待激活;2:已激活;3:---;4:停机;5:停机保号;8:预销户;9:已销户)
Integer statusCode = 0;
String statusMessage = "";
switch (StatusCd){
case "1":
statusCode = 7;
statusMessage = "待激活";
break;
case "2":
statusCode = 1;
statusMessage = "正常";
break;
case "3":
statusCode = 8;
statusMessage = "未知";
break;
case "4":
statusCode = 2;
statusMessage = "停机";
break;
case "5":
statusCode = 2;
statusMessage = "停机";
break;
case "8":
statusCode = 4;
statusMessage = "预销号";
break;
case "9":
statusCode = 18;
statusMessage = "销号";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 DianXin_CMP_5G 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getDianXin_CMP_5G_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
//卡生命周期状态(1:可激活 2:测试激活 3:测试去激活 4:在用 5:停机6:运营商管理状态)
Integer statusCode = 0;
String statusMessage = "";
switch (StatusCd){
case "1":
statusCode = 7;
statusMessage = "待激活";
break;
case "2":
statusCode = 1;
statusMessage = "正常";
break;
case "3":
statusCode = 7;
statusMessage = "待激活";
break;
case "4":
statusCode = 7;
statusMessage = "待激活";
break;
case "5":
statusCode = 2;
statusMessage = "停机";
break;
case "6":
statusCode = 14;
statusMessage = "运营商管理状态";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
/**
* 接口返回状态装换成系统状态
* 获取 MwFengZuShou 卡状态
* @param StatusCd
* @return
*/
public Map<String,Object> getMwFengZuShou_CardStatus(String StatusCd){
Map<String,Object> Rmap = new HashMap<>();
//卡生命周期状态(0 测试 1 沉默 2 使用 3 当月停用 4 预约销户 5 人工停用 6 到期停用 7 渠道停用 8 运营商停用)
Integer statusCode = 0;
String statusMessage = "";
switch (StatusCd){
case "0":
statusCode = 17;
statusMessage = "可测试";
break;
case "1":
statusCode = 7;
statusMessage = "待激活";
break;
case "2":
statusCode = 1;
statusMessage = "正常";
break;
case "3":
statusCode = 2;
statusMessage = "停机";
break;
case "4":
statusCode = 4;
statusMessage = "预销号";
break;
case "5":
statusCode = 3;
statusMessage = "单项停机";
break;
case "6":
statusCode = 31;
statusMessage = "超量停机";
case "7":
statusCode = 3;
statusMessage = "单项停机";
break;
case "8":
statusCode = 20;
statusMessage = "违章停机";
break;
}
Rmap.put("statusCode",statusCode);
Rmap.put("statusMessage",statusMessage);
return Rmap;
}
}
@@ -0,0 +1,28 @@
package com.yunze.apiCommon.utils;
import java.util.List;
/**
* 常用工具类
* 20201218 ~ 至今
*/
public class CommonlyUsed {
/**
* 判断 val 是否在 StrArr
* @param StrArr
* @param val
* @return
*/
public static boolean Val_Is_Arr (List<String> StrArr,String val){
boolean bool = false;
for (int i = 0; i < StrArr.size(); i++) {
if (val.equals(StrArr.get(i))){
bool = true;
break;
}
}
return bool;
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,463 @@
package com.yunze.apiCommon.utils;
import java.util.*;
/**
* 比较两个 list
*/
public class Different {
/**
* 获取不同数据
* @param list1
* @param list2
* @return
*/
public static List<String> getDiffrent(List<String> list1, List<String> list2) {
Map<String, Integer> map = new HashMap<String, Integer>(list1.size() + list2.size());
List<String> diff = new ArrayList<String>();
List<String> maxList = list1;
List<String> minList = list2;
if (list2.size() > list1.size()) {
maxList = list2;
minList = list1;
}
for (String string : maxList) {
map.put(string, 1);
}
for (String string : minList) {
Integer cc = map.get(string);
if (cc != null) {
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
diff.add(entry.getKey());
}
}
return diff;
}
/**
* 获取相同值
* @param list1
* @param list2
* @param lie
* @return
*/
public static List<Map<String, String>> getIdentical(List<String> list1, List<String> list2,String lie) {
Map<String, Integer> map = new HashMap<String, Integer>(list1.size() + list2.size());
List<Map<String, String>> diff = new ArrayList<Map<String, String>>();
List<String> maxList = list1;
List<String> minList = list2;
if (list2.size() > list1.size()) {
maxList = list2;
minList = list1;
}
for (String string : maxList) {
map.put(string, 1);
}
for (String string : minList) {
Integer cc = map.get(string);
if (cc != null) {
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
}else{
Map<String, String> Obj = new HashMap<String, String>();
Obj.put(lie,entry.getKey());
diff.add(Obj);
}
}
return diff;
}
/**
* 获取相同数据
* @param list1
* @param list2
* @return
*/
public static List<String> getIdentical(List<String> list1, List<String> list2) {
Map<String, Integer> map = new HashMap<String, Integer>(list1.size() + list2.size());
List<String> diff = new ArrayList<String>();
List<String> maxList = list1;
List<String> minList = list2;
if (list2.size() > list1.size()) {
maxList = list2;
minList = list1;
}
for (String string : maxList) {
map.put(string, 1);
}
for (String string : minList) {
Integer cc = map.get(string);
if (cc != null) {
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
}else{
diff.add(entry.getKey());
}
}
return diff;
}
/**
* 获取不同数据
* @param list1
* @param list2
* @param lie
* @return
*/
public static List<Map<String, Object>> getDiffrent(List<String> list1, List<String> list2,String lie) {
Map<String, Integer> map = new HashMap<String, Integer>(list1.size() + list2.size());
List<Map<String, Object>> diff = new ArrayList<Map<String, Object>>();
List<String> maxList = list1;
List<String> minList = list2;
if (list2.size() > list1.size()) {
maxList = list2;
minList = list1;
}
for (String string : maxList) {
map.put(string, 1);
}
for (String string : minList) {
Integer cc = map.get(string);
if (cc != null) {
map.put(string, ++cc);
continue;
}
map.put(string, 1);
}
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (entry.getValue() == 1) {
Map<String, Object> Obj = new HashMap<String, Object>();
Obj.put(lie,entry.getKey());
diff.add(Obj);
}
}
return diff;
}
/**
* 删除 字段 相同数据
* @param listmap
* @param list2
* @param lie
* @return
*/
public static List<Map<String, String>> delIdentical(List<Map<String, String>> listmap, List<String> list2,String lie) {
List<Map<String, String>> Rmap = new ArrayList<Map<String, String>>();
for (int i = 0; i < listmap.size(); i++) {
Map<String, String> map = listmap.get(i);
String val = map.get(lie);
boolean bool = false;
for (int j = 0; j < list2.size(); j++) {
if(val.equals(list2.get(j))){
bool = true;
break;
}
}
if(!bool){
Rmap.add(map);
}
}
return Rmap;
}
/**
* 删除 字段 相同数据
* @param listmap
* @param list2
* @param lie
* @return
*/
public static List<Map<String, Object>> delIdenticalObj(List<Map<String, Object>> listmap, List<String> list2,String lie) {
List<Map<String, Object>> Rmap = new ArrayList<Map<String, Object>>();
for (int i = 0; i < listmap.size(); i++) {
Map<String, Object> map = listmap.get(i);
String val = map.get(lie)+"";
boolean bool = false;
for (int j = 0; j < list2.size(); j++) {
if(val.equals(list2.get(j))){
bool = true;
break;
}
}
if(!bool){
Rmap.add(map);
}
}
return Rmap;
}
public static boolean Is_existence(String[] list1, String val) {
boolean bool = false;
for (int i = 0; i <list1.length ; i++) {
if(list1[i].equals(val)){
bool = true;
break;
}
}
return bool;
}
/**
* 判断 val 是否在 list1 中
* @param list1
* @param val
* @return
*/
public static boolean Is_existence(List<String> list1, String val) {
boolean bool = false;
for (int i = 0; i <list1.size() ; i++) {
if(list1.get(i).equals(val)){
bool = true;
break;
}
}
return bool;
}
/**
* 判断 val 是否在 list1 中
* @param list1
* @param val
* @return
*/
public static boolean Is_existence(List<Map<String,Object>> list1,String lie, String val) {
boolean bool = false;
for (int i = 0; i <list1.size() ; i++) {
Map<String,Object> obj = list1.get(i);
if(obj.get(lie).equals(val)){
bool = true;
break;
}
}
return bool;
}
public static boolean Is_existenceStr(List<String> list1, String val) {
boolean bool = false;
for (int i = 0; i <list1.size() ; i++) {
if(list1.get(i).equals(val)){
bool = true;
break;
}
}
return bool;
}
public static boolean Is_existence(List<Integer> list1, Integer val) {
boolean bool = false;
for (int i = 0; i <list1.size() ; i++) {
if(list1.get(i)==val){
bool = true;
break;
}
}
return bool;
}
public static void main(String[] args) {
/*List<String> list1 =new ArrayList<String>();
for(int i=1;i<10;i++) {
list1.add(i+"");
}
List<String> list2 =new ArrayList<String>();
for(int i=5;i<11;i++) {
list2.add(i+"");
}
List<String> list3 =getIdentical(list1,list2);
List<Map<String, String>> list4 =getIdentical(list2,list1,"iccid");
System.out.println(list1);
System.out.println(list2);
System.out.println("不同的值:"+list3);
System.out.println("不同的值:"+list4);*/
/*Objects Wtarr[] = {};
for (int i = 1; i < 10; i++) {
Wtarr = StringArrAdd(Wtarr, );
}
for (int i = 1; i < Wtarr.length; i++) {
System.out.println(Wtarr[i]);
}*/
}
public static Object[] StringArrAdd(Object[] custom,Object name) {
//添加姓名
if(custom==null) { //若数组为空,定义数组的长度为1
custom=new Objects[1];
custom[0]=name;
} else {
//若数组不为空,把数组复制出一个新的,在原数组的基础上加1
Object[] copy= Arrays.copyOf(custom, custom.length+1);
//把原先数组制空
custom=null;
//把新数组给原先这个数组
custom=copy;
custom[custom.length-1]=name;
}
return custom;
}
/**
* 获取 数组去重数据 和 重复值
* List<String> list = new LinkedList<String> ();
* list.add ("电视");
* list.add ("电视");
* list.add ("手机");
* list.add ("冰箱");
* list.add ("电视");
* list.add ("空调");
* list.add ("手机");
* @param list
* @return
*/
public static Map<String,Object> getListDifference(List<String> list){
Map<String,Object> Rmap = new HashMap<>();
Set<String> set = new HashSet<String> ();
List<String> arr = new ArrayList<> ();
String result = "";
for ( String string : list )
{
// 表示存在就加不进去了
if (!set.add (string))
{
if (!result.contains (string))
{
result += string + "|";
arr.add(string);
}
}
}
List<String> resultArr = new ArrayList<>(set);
Rmap.put("only",resultArr);//[手机, 空调, 冰箱, 电视]
Rmap.put("Repeat",arr);//[电视, 手机]
return Rmap;
}
/**
* 获取 筛选不重复的某列值 和 重复的
* @param list
* @param lie
* @return
*/
public static Map<String, Object> getNotRepeating(List<Map<String, Object>> list,String lie) {
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> Rlist = new ArrayList<Map<String, Object>>();
List<Map<String, Object>> Repeatlist = new ArrayList<Map<String, Object>>();
for (int i = 0; i <list.size() ; i++) {
Map<String, Object> obj = list.get(i);
if(Rlist.size()>0){
if(Is_existence(Rlist,lie,obj.get(lie).toString())){
Repeatlist.add(obj);
}else{
Rlist.add(obj);
}
}else{
Rlist.add(obj);
}
}
map.put("Rlist",Rlist);
map.put("Repeatlist",Repeatlist);
return map;
}
/**
* 获取 筛选不重复的某列值 和 重复的
* @param list
* @param lie
* @return
*/
public static Map<String, Object> getNotRepeating(List<Map<String, Object>> list,List<String> DB_list,String lie) {
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> Rlist = new ArrayList<Map<String, Object>>();//存在
List<Map<String, Object>> Repeatlist = new ArrayList<Map<String, Object>>();//不存在
for (int i = 0; i <list.size() ; i++) {
Map<String, Object> obj = list.get(i);
if(Is_existenceStr(DB_list,obj.get(lie).toString())){
Rlist.add(obj);
}else{
Repeatlist.add(obj);
}
}
map.put("Rlist",Rlist);
map.put("Repeatlist",Repeatlist);
return map;
}
}

Some files were not shown because too many files have changed in this diff Show More