2 Commits 333a14f9c5 ... 7e4ed4245c

Autor SHA1 Mensagem Data
  2297027248@qq.com 7e4ed4245c 删除没有用的引入包 há 3 anos atrás
  2297027248@qq.com 34843972bb 删除没有用的引入包 há 3 anos atrás
100 ficheiros alterados com 4188 adições e 484 exclusões
  1. 5 5
      .idea/jarRepositories.xml
  2. 403 329
      .idea/workspace.xml
  3. 126 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/ApiRequestBean.java
  4. 96 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/ApiResponseBean.java
  5. 144 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/HttpUtils.java
  6. 380 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/RSAEncrypt.java
  7. 106 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/RSASignature.java
  8. 62 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/SXFPaySign.java
  9. 53 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/SignUtil.java
  10. 294 3
      yijia-admin/src/main/java/com/yijia/web/controller/system/SysDeptController.java
  11. 78 0
      yijia-admin/src/main/java/com/yijia/web/controller/system/SysStationPay.java
  12. 4 4
      yijia-admin/src/main/resources/logback.xml
  13. 3 2
      yijia-admin/target/classes/application-druid.yml
  14. 6 6
      yijia-admin/target/classes/application.yml
  15. BIN
      yijia-admin/target/classes/com/yijia/web/controller/common/CommonController.class
  16. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/ApiRequestBean.class
  17. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/ApiResponseBean.class
  18. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/HttpUtils$1.class
  19. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/HttpUtils.class
  20. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/RSAEncrypt.class
  21. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/RSASignature.class
  22. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SXFPaySign.class
  23. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SignUtil.class
  24. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SysAgentController.class
  25. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SysDeptController.class
  26. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SysStationPay.class
  27. BIN
      yijia-admin/target/classes/com/yijia/web/controller/system/SysUserController.class
  28. 5 3
      yijia-admin/target/classes/logback.xml
  29. 5 0
      yijia-admin/target/maven-archiver/pom.properties
  30. 33 0
      yijia-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  31. 31 0
      yijia-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  32. BIN
      yijia-admin/target/yijia-admin.jar
  33. BIN
      yijia-admin/target/yijia-admin.jar.original
  34. 1 0
      yijia-admin/yijia-admin.iml
  35. 68 0
      yijia-common/src/main/java/com/yijia/common/core/domain/entity/SysDept.java
  36. BIN
      yijia-common/target/classes/com/yijia/common/config/YiJiaConfig.class
  37. BIN
      yijia-common/target/classes/com/yijia/common/core/domain/AjaxResult.class
  38. BIN
      yijia-common/target/classes/com/yijia/common/core/domain/BaseEntity.class
  39. BIN
      yijia-common/target/classes/com/yijia/common/core/domain/entity/SysDept.class
  40. BIN
      yijia-common/target/classes/com/yijia/common/core/domain/entity/SysUser.class
  41. BIN
      yijia-common/target/classes/com/yijia/common/utils/file/FileUploadUtils.class
  42. BIN
      yijia-common/target/classes/com/yijia/common/utils/file/FileUtils.class
  43. BIN
      yijia-common/target/classes/com/yijia/common/utils/http/HttpHelper.class
  44. BIN
      yijia-common/target/classes/com/yijia/common/utils/http/HttpUtils.class
  45. BIN
      yijia-common/target/classes/com/yijia/common/utils/poi/ExcelUtil.class
  46. 5 0
      yijia-common/target/maven-archiver/pom.properties
  47. 98 0
      yijia-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  48. 84 0
      yijia-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  49. BIN
      yijia-common/target/yijia-common-1.0.1.jar
  50. 26 2
      yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponInfoController.java
  51. 97 11
      yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponIssueController.java
  52. 125 0
      yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponUserController.java
  53. 67 0
      yijia-coupon/src/main/java/com/yijia/coupon/domain/AppUserInfo.java
  54. 59 25
      yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponInfo.java
  55. 57 14
      yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponIssue.java
  56. 13 11
      yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponIssueRelation.java
  57. 296 0
      yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponUser.java
  58. 1 1
      yijia-coupon/src/main/java/com/yijia/coupon/mapper/CouponIssueMapper.java
  59. 63 0
      yijia-coupon/src/main/java/com/yijia/coupon/mapper/CouponUserMapper.java
  60. 1 1
      yijia-coupon/src/main/java/com/yijia/coupon/service/ICouponIssueService.java
  61. 62 0
      yijia-coupon/src/main/java/com/yijia/coupon/service/ICouponUserService.java
  62. 6 5
      yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponIssueRelationServiceImpl.java
  63. 1 1
      yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponIssueServiceImpl.java
  64. 98 0
      yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponUserServiceImpl.java
  65. 18 2
      yijia-coupon/src/main/resources/mapper/coupon/CouponInfoMapper.xml
  66. 59 38
      yijia-coupon/src/main/resources/mapper/coupon/CouponIssueMapper.xml
  67. 124 0
      yijia-coupon/src/main/resources/mapper/coupon/CouponUserMapper.xml
  68. BIN
      yijia-coupon/target/classes/com/yijia/coupon/controller/CouponInfoController.class
  69. BIN
      yijia-coupon/target/classes/com/yijia/coupon/controller/CouponIssueController.class
  70. BIN
      yijia-coupon/target/classes/com/yijia/coupon/controller/CouponIssueRelationController.class
  71. BIN
      yijia-coupon/target/classes/com/yijia/coupon/controller/CouponUserController.class
  72. BIN
      yijia-coupon/target/classes/com/yijia/coupon/domain/AppUserInfo.class
  73. BIN
      yijia-coupon/target/classes/com/yijia/coupon/domain/CouponInfo.class
  74. BIN
      yijia-coupon/target/classes/com/yijia/coupon/domain/CouponIssue.class
  75. BIN
      yijia-coupon/target/classes/com/yijia/coupon/domain/CouponIssueRelation.class
  76. BIN
      yijia-coupon/target/classes/com/yijia/coupon/domain/CouponUser.class
  77. BIN
      yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponIssueMapper.class
  78. BIN
      yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponIssueRelationMapper.class
  79. BIN
      yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponUserMapper.class
  80. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/ICouponIssueRelationService.class
  81. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/ICouponIssueService.class
  82. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/ICouponUserService.class
  83. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponIssueRelationServiceImpl.class
  84. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponIssueServiceImpl.class
  85. BIN
      yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponUserServiceImpl.class
  86. 102 13
      yijia-coupon/target/classes/mapper/coupon/CouponInfoMapper.xml
  87. 137 0
      yijia-coupon/target/classes/mapper/coupon/CouponIssueMapper.xml
  88. 87 0
      yijia-coupon/target/classes/mapper/coupon/CouponIssueRelationMapper.xml
  89. 124 0
      yijia-coupon/target/classes/mapper/coupon/CouponUserMapper.xml
  90. 1 1
      yijia-coupon/target/maven-archiver/pom.properties
  91. 18 2
      yijia-coupon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  92. 21 5
      yijia-coupon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  93. BIN
      yijia-coupon/target/yijia-coupon-1.0.1.jar
  94. 8 0
      yijia-customer/pom.xml
  95. 153 0
      yijia-customer/src/main/java/com/yijia/customer/controller/CardExcelImportController.java
  96. 15 0
      yijia-customer/src/main/java/com/yijia/customer/controller/CustomerCardUseRecordController.java
  97. 4 0
      yijia-customer/src/main/java/com/yijia/customer/controller/CustomerElectronicCardController.java
  98. 16 0
      yijia-customer/src/main/java/com/yijia/customer/controller/CustomerGradeSettingController.java
  99. 160 0
      yijia-customer/src/main/java/com/yijia/customer/domain/CardExcelImport.java
  100. 79 0
      yijia-customer/src/main/java/com/yijia/customer/mapper/CardExcelImportMapper.java

+ 5 - 5
.idea/jarRepositories.xml

@@ -2,17 +2,17 @@
 <project version="4">
   <component name="RemoteRepositoriesConfiguration">
     <remote-repository>
-      <option name="id" value="central" />
-      <option name="name" value="Central Repository" />
-      <option name="url" value="https://repo.maven.apache.org/maven2" />
-    </remote-repository>
-    <remote-repository>
       <option name="id" value="public" />
       <option name="name" value="aliyun nexus" />
       <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
     </remote-repository>
     <remote-repository>
       <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
       <option name="name" value="Maven Central repository" />
       <option name="url" value="https://repo1.maven.org/maven2" />
     </remote-repository>

Diff do ficheiro suprimidas por serem muito extensas
+ 403 - 329
.idea/workspace.xml


+ 126 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/ApiRequestBean.java

@@ -0,0 +1,126 @@
+package com.yijia.web.controller.system;
+
+import java.io.Serializable;
+
+
+public class ApiRequestBean<T>  implements Serializable{
+	
+	private static final long serialVersionUID = -9073910802005694017L;
+
+	/**
+	 * 合作机构id
+	 */
+	private String orgId;
+	
+	/**
+	 * 请求id
+	 */
+	private String reqId;
+	
+	/**
+	 * 请求接口版本1.0
+	 */
+	private String version;
+	
+	/**
+	 * 代理商身份标识
+	 */
+	private String agentId;
+	
+	/**
+	 * 业务员编号
+	 */
+	private String salesCode;
+	
+	/**
+	 * 业务数据
+	 */
+	private T reqData;
+	
+	/**
+	 * 签名
+	 */
+	private String sign;
+	
+	/**
+	 * 签名类型
+	 */
+	private String signType;
+	
+	/**
+	 * 请求时间
+	 */
+	private String timestamp;
+
+	public String getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(String orgId) {
+		this.orgId = orgId;
+	}
+
+	public String getReqId() {
+		return reqId;
+	}
+
+	public void setReqId(String reqId) {
+		this.reqId = reqId;
+	}
+
+	public String getVersion() {
+		return version;
+	}
+
+	public void setVersion(String version) {
+		this.version = version;
+	}
+
+	public String getAgentId() {
+		return agentId;
+	}
+
+	public void setAgentId(String agentId) {
+		this.agentId = agentId;
+	}
+
+	public String getSalesCode() {
+		return salesCode;
+	}
+
+	public void setSalesCode(String salesCode) {
+		this.salesCode = salesCode;
+	}
+
+	public T getReqData() {
+		return reqData;
+	}
+
+	public void setReqData(T reqData) {
+		this.reqData = reqData;
+	}
+
+	public String getSign() {
+		return sign;
+	}
+
+	public void setSign(String sign) {
+		this.sign = sign;
+	}
+
+	public String getSignType() {
+		return signType;
+	}
+
+	public void setSignType(String signType) {
+		this.signType = signType;
+	}
+
+	public String getTimestamp() {
+		return timestamp;
+	}
+
+	public void setTimestamp(String timestamp) {
+		this.timestamp = timestamp;
+	}
+}

+ 96 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/ApiResponseBean.java

@@ -0,0 +1,96 @@
+package com.yijia.web.controller.system;
+
+import java.io.Serializable;
+
+public class ApiResponseBean<T>  implements Serializable {
+
+	private static final long serialVersionUID = -6027021300935759741L;
+	
+	/**
+	 * 系统响应码
+	 */
+	private String code;
+	/**
+	 * 系统消息
+	 */
+	private String msg;
+	
+	/**
+	 * 请求时id
+	 */
+	private String reqId;
+	
+	/**
+	 * 请求时orgId
+	 */
+	private String orgId;
+	
+	private String signType;
+	
+	
+	/**
+	 * 返回消息
+	 */
+	private T respData;
+	
+	/**
+	 * 签名
+	 */
+	private String sign;
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getMsg() {
+		return msg;
+	}
+
+	public void setMsg(String msg) {
+		this.msg = msg;
+	}
+
+	public String getReqId() {
+		return reqId;
+	}
+
+	public void setReqId(String reqId) {
+		this.reqId = reqId;
+	}
+
+	public String getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(String orgId) {
+		this.orgId = orgId;
+	}
+
+	public String getSignType() {
+		return signType;
+	}
+
+	public void setSignType(String signType) {
+		this.signType = signType;
+	}
+
+	public T getRespData() {
+		return respData;
+	}
+
+	public void setRespData(T respData) {
+		this.respData = respData;
+	}
+
+	public String getSign() {
+		return sign;
+	}
+
+	public void setSign(String sign) {
+		this.sign = sign;
+	}
+}

+ 144 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/HttpUtils.java

@@ -0,0 +1,144 @@
+package com.yijia.web.controller.system;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpStatus;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLContextBuilder;
+import org.apache.http.conn.ssl.TrustStrategy;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+
+import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+
+public class HttpUtils {
+	
+	/**
+	 * 创建没有证书的SSL链接工厂类
+	 * @return
+	 * @throws NoSuchAlgorithmException
+	 * @throws KeyStoreException
+	 * @throws KeyManagementException
+	 */
+	public static SSLConnectionSocketFactory getSSLConnectionSocketFactory() throws NoSuchAlgorithmException, 
+			KeyStoreException, KeyManagementException {
+		SSLContextBuilder   context = new SSLContextBuilder().useProtocol("TLSv1.2");
+		context.loadTrustMaterial(null, new TrustStrategy() {
+			@Override
+			public boolean isTrusted(X509Certificate[] arg0, String arg1)
+					throws CertificateException {
+				return true;
+			}
+		});
+		return new SSLConnectionSocketFactory(context.build());
+	}
+	
+	/**
+	 * 链接GET请求
+	 * @param url
+	 * @return
+	 * @throws KeyManagementException
+	 * @throws NoSuchAlgorithmException
+	 * @throws KeyStoreException
+	 * @throws ClientProtocolException
+	 * @throws IOException
+	 */
+	public static String connectGetUrl(String url) throws KeyManagementException, 
+			NoSuchAlgorithmException, KeyStoreException, ClientProtocolException, IOException {
+		SSLConnectionSocketFactory sslsf = getSSLConnectionSocketFactory();
+		CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslsf).build();
+		RequestConfig config = RequestConfig.custom().setSocketTimeout(10000).setConnectTimeout(5000).build();
+		HttpGet httpGet = null;
+		CloseableHttpResponse resp = null;
+		String jsonString = "";
+		try {
+			httpGet =	new HttpGet(url);
+			httpGet.setConfig(config);
+			resp = client.execute(httpGet);
+			HttpEntity entity = resp.getEntity();
+		    jsonString = EntityUtils.toString(entity, "UTF-8");
+		} finally {
+        	if (resp != null) {
+        		try {
+        			resp.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+        	}
+			if (httpGet != null) {
+				httpGet.releaseConnection();
+			}
+		}
+		return jsonString;
+	}
+	
+	/**
+	 * 链接POST请求
+	 * @param url
+	 * @param jsonParm
+	 * @return
+	 * @throws KeyManagementException
+	 * @throws NoSuchAlgorithmException
+	 * @throws KeyStoreException
+	 * @throws ClientProtocolException
+	 * @throws IOException
+	 */
+	public static String connectPostUrl(String url, String jsonParm) throws KeyManagementException, 
+			NoSuchAlgorithmException, KeyStoreException, ClientProtocolException, IOException {
+		SSLConnectionSocketFactory sslsf = getSSLConnectionSocketFactory();
+		CloseableHttpClient client = HttpClients.custom().setSSLSocketFactory(sslsf).build();
+		RequestConfig config = RequestConfig.custom().setSocketTimeout(40000).setConnectTimeout(10000).build();
+		HttpPost httpPost = null;
+		CloseableHttpResponse resp = null;
+		try {
+			httpPost = new HttpPost(url);
+			httpPost.setConfig(config);
+			StringEntity params = new StringEntity(jsonParm,"UTF-8");  
+			params.setContentType("application/json");
+	        httpPost.setEntity(params);
+			resp = client.execute(httpPost);
+			HttpEntity entity = resp.getEntity();
+			String jsonString = EntityUtils.toString(entity, "UTF-8");
+			
+			if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
+				return jsonString;
+			}
+		}catch (IOException e) {
+			if (e instanceof org.apache.http.conn.ConnectTimeoutException) {
+				throw new org.apache.http.conn.ConnectTimeoutException("connect timed out");
+			}
+			if (e instanceof java.net.SocketTimeoutException) {
+				throw new java.net.SocketTimeoutException("Read timed out");
+			}
+			throw new IOException("IOException");
+		}  finally {
+        	if (resp != null) {
+        		try {
+        			resp.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+        	}
+			if (httpPost != null) {
+				httpPost.releaseConnection();
+			}
+			try {
+				client.close();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+		return null;
+	}
+}

+ 380 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/RSAEncrypt.java

@@ -0,0 +1,380 @@
+package com.yijia.web.controller.system;
+
+import com.alibaba.fastjson.JSON;
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import java.io.*;
+import java.security.*;
+import java.security.interfaces.RSAPrivateKey;
+import java.security.interfaces.RSAPublicKey;
+import java.security.spec.InvalidKeySpecException;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.Map;
+
+
+/**
+ * rsa 签名
+ * 利用genKeyPair ()方法来生成钥匙对。
+ 加密:RSAEncrypt.encryptBASE64(RSAEncrypt.encrypt(RSAEncrypt.loadPublicKeyByStr(RSAEncrypt.loadPublicKeyByFile(filepath)),"要加密的字符串".getBytes()))
+ 解密:RSAEncrypt.decrypt(RSAEncrypt.loadPrivateKeyByStr(RSAEncrypt.loadPrivateKeyByFile(filepath)), RSAEncrypt.decryptBASE64("要解密的字符串"))
+ */
+public class RSAEncrypt {
+    /**
+     * 字节数据转字符串专用集合
+     */
+    private static final char[] HEX_CHAR = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
+
+    /**
+     * 随机生成密钥对
+     */
+    public static void genKeyPair(String filePath) {
+        // KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象
+        KeyPairGenerator keyPairGen = null;
+        try {
+            keyPairGen = KeyPairGenerator.getInstance("RSA");
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        // 初始化密钥对生成器,密钥大小为96-1024位
+        keyPairGen.initialize(1024, new SecureRandom());
+        // 生成一个密钥对,保存在keyPair中
+        KeyPair keyPair = keyPairGen.generateKeyPair();
+        // 得到私钥
+        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
+        // 得到公钥
+        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
+        try {
+            // 得到公钥字符串
+            String publicKeyString = new String(encryptBASE64(publicKey.getEncoded()));
+            // 得到私钥字符串
+            String privateKeyString = new String(encryptBASE64(privateKey.getEncoded()));
+            // 将密钥对写入到文件
+            FileWriter pubfw = new FileWriter(filePath + "/publicKey.keystore");
+            FileWriter prifw = new FileWriter(filePath + "/privateKey.keystore");
+            BufferedWriter pubbw = new BufferedWriter(pubfw);
+            BufferedWriter pribw = new BufferedWriter(prifw);
+            pubbw.write(publicKeyString);
+            pribw.write(privateKeyString);
+            pubbw.flush();
+            pubbw.close();
+            pubfw.close();
+            pribw.flush();
+            pribw.close();
+            prifw.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 从文件中输入流中加载公钥
+     *
+     * @param path 公钥路径
+     * @throws Exception 加载公钥时产生的异常
+     */
+    public static String loadPublicKeyByFile(String path) throws Exception {
+        try {
+            BufferedReader br = new BufferedReader(new FileReader(path + "/publicKey.keystore"));
+            String readLine = null;
+            StringBuilder sb = new StringBuilder();
+            while ((readLine = br.readLine()) != null) {
+                sb.append(readLine);
+            }
+            br.close();
+            return sb.toString();
+        } catch (IOException e) {
+            throw new Exception("公钥数据流读取错误");
+        } catch (NullPointerException e) {
+            throw new Exception("公钥输入流为空");
+        }
+    }
+
+    /**
+     * 从字符串中加载公钥
+     *
+     * @param publicKeyStr 公钥数据字符串
+     * @throws Exception 加载公钥时产生的异常
+     */
+    public static RSAPublicKey loadPublicKeyByStr(String publicKeyStr) throws Exception {
+        try {
+            byte[] buffer = decryptBASE64(publicKeyStr);
+            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(buffer);
+            return (RSAPublicKey) keyFactory.generatePublic(keySpec);
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此算法");
+        } catch (InvalidKeySpecException e) {
+            throw new Exception("公钥非法");
+        } catch (NullPointerException e) {
+            throw new Exception("公钥数据为空");
+        }
+    }
+
+    /**
+     * 从文件中加载私钥
+     *
+     * @param path 私钥文件路径
+     * @return 是否成功
+     * @throws Exception
+     */
+    public static String loadPrivateKeyByFile(String path) throws Exception {
+        try {
+            BufferedReader br = new BufferedReader(new FileReader(path + "/privateKey.keystore"));
+            String readLine = null;
+            StringBuilder sb = new StringBuilder();
+            while ((readLine = br.readLine()) != null) {
+                sb.append(readLine);
+            }
+            br.close();
+            return sb.toString();
+        } catch (IOException e) {
+            throw new Exception("私钥数据读取错误");
+        } catch (NullPointerException e) {
+            throw new Exception("私钥输入流为空");
+        }
+    }
+
+    public static RSAPrivateKey loadPrivateKeyByStr(String privateKeyStr) throws Exception {
+        try {
+            byte[] buffer = decryptBASE64(privateKeyStr);
+            PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(buffer);
+            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+            return (RSAPrivateKey) keyFactory.generatePrivate(keySpec);
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此算法");
+        } catch (InvalidKeySpecException e) {
+            throw new Exception("私钥非法");
+        } catch (NullPointerException e) {
+            throw new Exception("私钥数据为空");
+        }
+    }
+
+    /**
+     * 公钥加密过程
+     *
+     * @param publicKey     公钥
+     * @param plainTextData 明文数据
+     * @return
+     * @throws Exception 加密过程中的异常信息
+     */
+    public static byte[] encrypt(RSAPublicKey publicKey, byte[] plainTextData) throws Exception {
+        if (publicKey == null) {
+            throw new Exception("加密公钥为空, 请设置");
+        }
+        Cipher cipher = null;
+        try {
+            // 使用默认RSA
+            cipher = Cipher.getInstance("RSA");
+            // cipher= Cipher.getInstance("RSA", new BouncyCastleProvider());
+            cipher.init(Cipher.ENCRYPT_MODE, publicKey);
+            byte[] output = cipher.doFinal(plainTextData);
+            return output;
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此加密算法");
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+            return null;
+        } catch (InvalidKeyException e) {
+            throw new Exception("加密公钥非法,请检查");
+        } catch (IllegalBlockSizeException e) {
+            throw new Exception("明文长度非法");
+        } catch (BadPaddingException e) {
+            throw new Exception("明文数据已损坏");
+        }
+    }
+
+    /**
+     * 私钥加密过程
+     *
+     * @param privateKey    私钥
+     * @param plainTextData 明文数据
+     * @return
+     * @throws Exception 加密过程中的异常信息
+     */
+    public static byte[] encrypt(RSAPrivateKey privateKey, byte[] plainTextData) throws Exception {
+        if (privateKey == null) {
+            throw new Exception("加密私钥为空, 请设置");
+        }
+        Cipher cipher = null;
+        try {
+            // 使用默认RSA
+            cipher = Cipher.getInstance("RSA");
+            cipher.init(Cipher.ENCRYPT_MODE, privateKey);
+            byte[] output = cipher.doFinal(plainTextData);
+            return output;
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此加密算法");
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+            return null;
+        } catch (InvalidKeyException e) {
+            throw new Exception("加密私钥非法,请检查");
+        } catch (IllegalBlockSizeException e) {
+            throw new Exception("明文长度非法");
+        } catch (BadPaddingException e) {
+            throw new Exception("明文数据已损坏");
+        }
+    }
+
+    /**
+     * 私钥解密过程
+     *
+     * @param privateKey 私钥
+     * @param cipherData 密文数据
+     * @return 明文
+     * @throws Exception 解密过程中的异常信息
+     */
+    public static byte[] decrypt(RSAPrivateKey privateKey, byte[] cipherData) throws Exception {
+        if (privateKey == null) {
+            throw new Exception("解密私钥为空, 请设置");
+        }
+        Cipher cipher = null;
+        try {
+            // 使用默认RSA
+            cipher = Cipher.getInstance("RSA");
+            // cipher= Cipher.getInstance("RSA", new BouncyCastleProvider());
+            cipher.init(Cipher.DECRYPT_MODE, privateKey);
+            byte[] output = cipher.doFinal(cipherData);
+            return output;
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此解密算法");
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+            return null;
+        } catch (InvalidKeyException e) {
+            throw new Exception("解密私钥非法,请检查");
+        } catch (IllegalBlockSizeException e) {
+            throw new Exception("密文长度非法");
+        } catch (BadPaddingException e) {
+            throw new Exception("密文数据已损坏");
+        }
+    }
+
+    /**
+     * 公钥解密过程
+     *
+     * @param publicKey  公钥
+     * @param cipherData 密文数据
+     * @return 明文
+     * @throws Exception 解密过程中的异常信息
+     */
+    public static byte[] decrypt(RSAPublicKey publicKey, byte[] cipherData) throws Exception {
+        if (publicKey == null) {
+            throw new Exception("解密公钥为空, 请设置");
+        }
+        Cipher cipher = null;
+        try {
+            // 使用默认RSA
+            cipher = Cipher.getInstance("RSA");
+            // cipher= Cipher.getInstance("RSA", new BouncyCastleProvider());
+            cipher.init(Cipher.DECRYPT_MODE, publicKey);
+            byte[] output = cipher.doFinal(cipherData);
+            return output;
+        } catch (NoSuchAlgorithmException e) {
+            throw new Exception("无此解密算法");
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+            return null;
+        } catch (InvalidKeyException e) {
+            throw new Exception("解密公钥非法,请检查");
+        } catch (IllegalBlockSizeException e) {
+            throw new Exception("密文长度非法");
+        } catch (BadPaddingException e) {
+            throw new Exception("密文数据已损坏");
+        }
+    }
+
+    /**
+     * 字节数据转十六进制字符串
+     *
+     * @param data 输入数据
+     * @return 十六进制内容
+     */
+    public static String byteArrayToString(byte[] data) {
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < data.length; i++) {
+            // 取出字节的高四位 作为索引得到相应的十六进制标识符 注意无符号右移
+            stringBuilder.append(HEX_CHAR[(data[i] & 0xf0) >>> 4]);
+            // 取出字节的低四位 作为索引得到相应的十六进制标识符
+            stringBuilder.append(HEX_CHAR[(data[i] & 0x0f)]);
+            if (i < data.length - 1) {
+                stringBuilder.append(' ');
+            }
+        }
+        return stringBuilder.toString();
+    }
+
+    public static String encryptBASE64(byte[] key) throws Exception {
+        return (new BASE64Encoder()).encodeBuffer(key);
+    }
+
+    public static byte[] decryptBASE64(String key) throws Exception {
+        return (new BASE64Decoder()).decodeBuffer(key);
+    }
+
+    /**
+     * 私钥加密(数字签名),用公钥进行验证
+     * @param args
+     */
+    public static void main(String[] args) {
+        String filepath = "/Users/cxd/Documents/Exercise/ideaDemo/src/main/resources";
+        
+        String privateKey = "";
+        String publicKey = "";
+        
+
+        String key = "123123123";
+        
+        //RSAEncrypt.genKeyPair(filepath);
+        System. out.println( "---------------私钥签名过程------------------" );
+        String content= "{\"addressType01\":\"01\",\"addressType02\":\"01\",\"addressType03\":\"01\"}";
+        String signstr= null;
+        try {
+
+       // String enData = EncryptUtil.encryptBASE64(EncryptUtil.encrypt(content.getBytes(), key.getBytes()));
+        	Map<String, Object> requestParam = (Map<String, Object>) JSON.parse(content);
+        	
+        	String signContent = RSASignature.getOrderContent(requestParam);
+        
+            signstr = RSASignature.encryptBASE64(RSASignature.sign(signContent, privateKey));
+            
+          //  System.out.println("加密后的数据" + enData);
+            System. out.println( "签名原串:" +signContent);
+            System. out.println( "签名串:"+signstr);
+            System. out.println();
+            //
+            System. out.println( "---------------公钥校验签名------------------" );
+            System. out.println( "签名原串:" +content);
+            System. out.println( "签名串:"+signstr);
+
+            System. out. println("验签结果:"+RSASignature.doCheck(signContent, signstr,publicKey ));
+
+
+           /* key = "123123121";
+            System.out.println("DES开始解密.....");
+            String deData = new String(EncryptUtil.decrypt(EncryptUtil.decryptBASE64(enData), key.getBytes()));
+            System.out.println("DES解密后的数据:" + deData);
+*/
+        	
+        	String enData1 = "pTrCotXethMaH3K7jiM3Eg==\r\n";
+        	String signstr1 = "RUPwD/bF/7Vgg203JQ/T3W4R1yHso1p6ZoUS8nysWand76fyB1+X1GdJNsBALQhajvaQHhTtWAaQ"
++"K7ezL2NASa7EYWC+H+jXhd98C6WgWFWga4ApjK2RjSWsTz1y30GJSxW++fbYYSuz8Owrx3iNLNyc"
++"E8Br0pdj40pL+OJs60A=";
+        	String publicKey1 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmsrFtFPTnEzfpJ/hDl5RODBxw4i9Ex3NmmG/N7A1+by032zZZgLLpdNh8y5otjFY0E37Nyr4FGKFRSSuDiTk8vfx3pv6ImS1Rxjjg4qdVHIfqhCeB0Z2ZPuBD3Gbj8hHFEtXZq8+msAFu/5ZQjiVhgs5WWBjh54LYWSum+d9+wIDAQAB";
+            System. out. println("验签结果1:"+RSASignature.doCheck(enData1, signstr1,publicKey1 ));
+            String desStr = "DFk3/UBtnjRh+b/S4EE3snSorVigDXmKIfWYap1PAlYNe5t5RNQnE9QoQzXOd9P8BKMa8Sld+ea4\nDWClWD1a7cZ6qrD29o7vDiaqM6md3FihHL+CuYJrwgOUzSHCbnGSjQNayKSxZ4ccXB4NKY+s4/8F\n8Q5p0wZ6H1jbYawv1qrUGV9Sdv2pVw5Q2nL1vhr5nws1plHxuTU0vQ8yVppYDt+Z42KkwDGs\n";
+            
+           // String deData = new String(EncryptUtil.decrypt(EncryptUtil.decryptBASE64(desStr), key.getBytes()));
+           // System.out.println("DES解密后的数据:" + deData);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}

+ 106 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/RSASignature.java

@@ -0,0 +1,106 @@
+package com.yijia.web.controller.system;
+
+import java.security.KeyFactory;
+import java.security.PrivateKey;
+import java.security.PublicKey;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.*;
+
+
+/**
+ * RSA签名验签类
+ */
+public class RSASignature {
+
+    /**
+     * 签名算法
+     */
+    public static final String SIGN_ALGORITHMS = "SHA1WithRSA";
+    
+	/**
+	 * 针对参数进行排序拼装
+	 * @param
+	 * @return
+	 */
+	public static String getOrderContent(Map<String, Object> requestParam) {
+		Map<String, Object> sortedParams = new TreeMap<String, Object>();
+		if ((requestParam != null) && (requestParam.size() > 0)) {
+			sortedParams.putAll(requestParam);
+		}
+		StringBuffer content = new StringBuffer();
+		List<String> keys = new ArrayList<String>(sortedParams.keySet());
+		Collections.sort(keys);
+		int index = 0;
+		for (int i = 0; i < keys.size(); i++) {
+			String key = keys.get(i);
+			Object value = sortedParams.get(key);
+			if (key!=null &&!"".equals(key)&& value != null) {
+				content.append((index == 0 ? "" : "&") + key + "=" + value);
+				index++;
+			}
+		}
+		return content.toString();
+	}
+
+    /**
+     * rsa 签名
+     * @param content 待签名内容
+     * @param privateKey  私钥
+     * @return
+     */
+    public static byte[] sign(String content, String privateKey) {
+        try {
+            PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(decryptBASE64(privateKey));
+            KeyFactory keyf = KeyFactory.getInstance("RSA");
+            PrivateKey priKey = keyf.generatePrivate(priPKCS8);
+            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
+            signature.initSign(priKey);
+            signature.update(content.getBytes("UTF-8"));
+            byte[] signed = signature.sign();
+            return signed;
+        } catch (Exception e) {
+        	e.printStackTrace();
+            return null;
+        }
+    }
+
+    /**
+     * RSA验签名检查
+     * @param content 待签名数据
+     * @param sign 签名值
+     * @param publicKey 分配给开发商公钥
+     * @return 布尔值
+     */
+    public static boolean doCheck(String content, String sign, String publicKey) {
+        try {
+            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+            byte[] encodedKey = decryptBASE64(publicKey);
+            PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
+
+
+            java.security.Signature signature = java.security.Signature.getInstance(SIGN_ALGORITHMS);
+
+            signature.initVerify(pubKey);
+            signature.update(content.getBytes("UTF-8"));
+
+            boolean bverify = signature.verify(decryptBASE64(sign));
+            return bverify;
+
+        } catch (Exception e) {
+        	e.printStackTrace();
+            return false;
+        }
+    }
+
+    public static String encryptBASE64(byte[] key) throws Exception {
+        System.out.println("key:"+key);
+        String base64encodedString = Base64.getEncoder().encodeToString(key);
+        return base64encodedString.replaceAll("[\\s*\t\n\r]", "");
+    }
+    public static byte[] decryptBASE64(String key) throws Exception {
+        byte[] base64decodedBytes = Base64.getDecoder().decode(key.replaceAll("[\\s*\t\n\r]", ""));
+        return base64decodedBytes;
+    }
+
+}

+ 62 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/SXFPaySign.java

@@ -0,0 +1,62 @@
+package com.yijia.web.controller.system;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.UUID;
+
+/**
+ * 随行付,公共方法
+ */
+public class SXFPaySign {
+    //合作方私钥(替换成自己的)
+    // public static final String privateKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM+4PMi2ZPqpeCQ1IIV8mWYmGubr3DoEEJ3W2oEu8bFMVVpK5Jx6WhQ9xR83OQW7lbMI+BbumilKXfHdHrW7gWvu7yB2dD50GbT6bZXXnuddui+BnS/Yc9QxFS+HLcOX8bsmgJ5P/4D1Klm4k3OOsGJ3CsLDuz8RwNlxwuhg8+lQIDAQAB";
+    //测试环境私钥
+    //public static final String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMz7g8yLZk+ql4JDUghXyZZiYa5uvcOgQQndbagS7xsUxVWkrknHpaFD3FHzc5BbuVswj4Fu6aKUpd8d0etbuBa+7vIHZ0PnQZtPptldee5126L4GdL9hz1DEVL4ctw5fxuyaAnk//gPUqWbiTc46wYncKwsO7PxHA2XHC6GDz6VAgMBAAECgYEAgC2C1CQTPRvqk+0u3cKvbtdkR6Q+C5cpNFb/XAtC80dAwnYw+jfarYX2vlQi3pFMzeYGxqQpep3DP0qxWqBG8uu7Depw2HlWcw+6z68G3Vpkprx9FHnsy/ijCX/76HMmDmGN1r68FnDZXHKdaLZPQeNxDY3Hz83Quq04yav5Ah0CQQDoVoZZM6SyF+gz4/mg29UwkEXcn5uUARWo7QrO6vOsYzTEiNvNIlLFxd5xE2i9LAKKLWBtuaMovrdC4fHguQaLAkEA4dvINHcuehDHVzgS5I/6hB5PnQZOrnZFDZUd7woh9xUu9qQTxZpPcbfSpDFCKDbTknM1dn+7WpLk6Zd9YGyTXwJACXu2oh90gnxtUujkQIeYjRHmeBnfrMvaiXmbblSyu3+VIMyBRD85Z68q5CyposcQF3nArNnd6gTW0BkO2WBT/wJAUUGbA5UlOXEz5mMcGPLbtBCbn+iXAhk2uq49OLSyh4wtezqIinz7u/PgaoX2QTWIZJXiVCGcK/fRN2DzEG+/jQJAIQQFJNUX5i7aUS4By8xrffUpeTTiszu+WTU5Rz2jRoT8YwgqiqAWG9dNSggcfnJIz968a+Jg5s483y06mEEmjA==";
+    //生产环境私钥
+    public static final String privateKey="MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAPCpA8iF1tYerDYcZTGiPkRHlQKlkM2vy752cLZydVUrfKkGQaSMBHbmgK7LgenQ6cjWl2mM5zLOWxqNKxsUj/xMbkAdYXKtYy1nL6NLo3RI+cXbUB5tNiS4ojSwjFg4AHIfjGyBnnQar/dulfuNJ3QBsfHBDR/DsIfXUaBcmsoFAgMBAAECgYEA8A7YHEUNWUb9Z3iJpKn/TKLOy/YVbGdoaFPC+OtRiSS40+3OuvGEXoptYG7V50MigNk17e7EjNR04hZhIkEvoX/d9KLIKRtZUOMga6GhqD/PqRpgKq8JObMkvJ1U7KeEimUqBeukbvzBUJrVQT1RpbXmX3zpf0kj7l/FPOfZD8ECQQD9RpXw7gtv96N6WIF2k42UMAMLVuGivTW2bZzxP6TCD/FeZMG2JNy3nydCc2v6GuGDQZ8WCQIpzK72gMzLrYVVAkEA8z+w+Ao8Y6BxX8P/5GZg4x1ZHqQOfsrWbC6iMeIenLkAgMpEPYLYpm5nZ0db7pf5OU037bSXxQoauQnjOM8x8QJBANzQGk94Kg6PFz7GRPDNScTlavIK6CMK1PZccFTASPNMFQJX067qSmfoYMEFgiEGKJBXuMvsRK+OnQeaWXJFsRUCQFva9Uz1MJC+iZGMRhlNv9CDyJ+VfBPNLON1SLJlnQG5qsL3noVL39wZXNrXS5Pxt5831aLhy14Qzr6JSVCujUECQQDD0KIfodS9dxKnstJaaX2B5aYXPYsI+4PBMeFw4inl+9JFJb85U1SmuYAkGPj8OFBtxkhzeHXkvD5aMKj0cUVs";
+    //随行付公钥
+   // public static final String sxfPublic = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCOmsrFtFPTnEzfpJ/hDl5RODBxw4i9Ex3NmmG/N7A1+by032zZZgLLpdNh8y5otjFY0E37Nyr4FGKFRSSuDiTk8vfx3pv6ImS1Rxjjg4qdVHIfqhCeB0Z2ZPuBD3Gbj8hHFEtXZq8+msAFu/5ZQjiVhgs5WWBjh54LYWSum+d9+wIDAQAB";
+   //生产环境随行付公钥
+    public static final String sxfPublic = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjo1+KBcvwDSIo+nMYLeOJ19Ju4ii0xH66ZxFd869EWFWk/EJa3xIA2+4qGf/Ic7m7zi/NHuCnfUtUDmUdP0JfaZiYwn+1Ek7tYAOc1+1GxhzcexSJLyJlR2JLMfEM+rZooW4Ei7q3a8jdTWUNoak/bVPXnLEVLrbIguXABERQ0Ze0X9Fs0y/zkQFg8UjxUN88g2CRfMC6LldHm7UBo+d+WlpOYH7u0OTzoLLiP/04N1cfTgjjtqTBI7qkOGxYs6aBZHG1DJ6WdP+5w+ho91sBTVajsCxAaMoExWQM2ipf/1qGdsWmkZScPflBqg7m0olOD87ymAVP/3Tcbvi34bDfwIDAQAB";
+    /**
+     * 封装传参信息,增加公共信息,增加业务信息
+     * @param reqData
+     * @return
+     */
+    public static String getSXFPay(JSONObject reqData ) {
+        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
+        String dataStr = df.format(new Date());
+        ApiRequestBean<JSONObject> reqBean = new ApiRequestBean<JSONObject>();
+        //reqBean.setOrgId("77563944");//测试 合作机构id
+        reqBean.setOrgId("73153713");//生产合作机构id
+        reqBean.setReqId(UUID.randomUUID().toString().replaceAll("-", ""));//请求id 订单号
+        reqBean.setSignType("RSA");//签名类型
+        reqBean.setTimestamp(dataStr);//请求时间
+        reqBean.setVersion("1.0");//版本
+        //将业务参数存放在 JSON 对象中
+        reqBean.setReqData(reqData);
+        String req = JSONObject.toJSONString(reqBean);
+        System.out.println("req:" + req);
+        return req;
+    }
+
+
+    /**
+     *封装组织加密串
+     */
+    public static String getSignContent(String req){
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        return "";
+    }
+
+}

+ 53 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/SignUtil.java

@@ -0,0 +1,53 @@
+package com.yijia.web.controller.system;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Arrays;
+
+/**
+ * @Author : suxinghua
+ * @CreateTime : 2020/11/24
+ * @Description :
+ **/
+public class SignUtil {
+
+    private static String token = "jiaduoduowxtest";//填你自己的
+
+
+    public static boolean checkSignature(String signature, String timestamp, String nonce) {
+        String[] paramArr = new String[] { token, timestamp, nonce };
+        Arrays.sort(paramArr);
+        String content = paramArr[0].concat(paramArr[1]).concat(paramArr[2]);
+
+        String ciphertext = null;
+        try {
+            MessageDigest md = MessageDigest.getInstance("SHA-1");
+            byte[] digest = md.digest(content.getBytes());
+            ciphertext = byteToStr(digest);
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+
+        return ciphertext != null ? ciphertext.equals(signature.toUpperCase()) : false;
+    }
+
+
+    private static String byteToStr(byte[] byteArray) {
+        String strDigest = "";
+        for (int i = 0; i < byteArray.length; i++) {
+            strDigest += byteToHexStr(byteArray[i]);
+        }
+        return strDigest;
+    }
+
+
+    private static String byteToHexStr(byte mByte) {
+        char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
+        char[] tempArr = new char[2];
+        tempArr[0] = Digit[(mByte >>> 4) & 0X0F];
+        tempArr[1] = Digit[mByte & 0X0F];
+
+        String s = new String(tempArr);
+        return s;
+    }
+}

+ 294 - 3
yijia-admin/src/main/java/com/yijia/web/controller/system/SysDeptController.java

@@ -1,14 +1,17 @@
 package com.yijia.web.controller.system;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
 import com.yijia.common.core.domain.TreeSelect;
 import com.yijia.common.core.domain.model.LoginUser;
 import com.yijia.common.utils.bean.BeanUtils;
 import com.yijia.station.domain.DeptInfoDemo;
 import com.yijia.station.domain.SysDeptDemo;
+import com.yijia.system.domain.SysDeptFalge;
+import com.yijia.system.domain.SysRespon;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -59,6 +62,26 @@ public class SysDeptController extends BaseController
         List<SysDept> depts = deptService.selectDeptListTree(dept);
         return AjaxResult.success(depts);
     }
+    /**
+     * 根据当前人员信息返回不同的部门信息
+     */
+    @GetMapping("/selectDeptFlage")
+    public AjaxResult selectDeptFlage()
+    {
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        SysDeptFalge sysDeptFalge=new SysDeptFalge();
+        SysDept nowSysDept=deptService.selectDeptById(currentUser.getUser().getDeptId());
+        if(nowSysDept.getParentId()==0){
+            return AjaxResult.success(sysDeptFalge);
+        }
+        if(nowSysDept.getParentId()==100){
+            sysDeptFalge.setGroupDept(nowSysDept);
+            return AjaxResult.success(sysDeptFalge);
+        }
+        sysDeptFalge.setGroupDept(deptService.selectDeptById(nowSysDept.getParentId()));
+        sysDeptFalge.setUserDept(nowSysDept);
+        return AjaxResult.success(sysDeptFalge);
+    }
 
     /**
      * 查询部门列表(排除节点)
@@ -108,7 +131,19 @@ public class SysDeptController extends BaseController
 //        BeanUtils.copyProperties(sysDeptDemo, sysDepts);
         return AjaxResult.success(sysDepts);
     }
+    /**获取当前登录人的站点信息*/
+    @GetMapping(value = "/getGroupByUser")
+    public AjaxResult getGroupByUser()
+    {
 
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        SysDept sysDept=deptService.selectDeptById(currentUser.getUser().getDeptId());
+        if(sysDept.getParentId()==0||sysDept.getParentId()==100){
+            return AjaxResult.success(sysDept);
+        }
+        SysDept sysDept1=deptService.selectDeptById(sysDept.getParentId());
+        return AjaxResult.success(sysDept1);
+    }
 
     /**
      * 获取部门下拉树列表
@@ -280,9 +315,68 @@ public class SysDeptController extends BaseController
         {
             return AjaxResult.error("该部门包含未停用的子部门!");
         }
+
+        if("1".equals(dept.getMnoStatus())) {
+            if(dept.getMnoArray()==null){
+                return AjaxResult.error("未传入分账账户信息");
+            }
+            SysDept dept1=deptService.selectDeptById(dept.getDeptId());
+            if (dept.getMnoArray().equals(dept1.getMnoArray())){
+              //分款账户没有发生变化,不需要重新调用接口
+            }else {
+                try {
+
+                    SysRespon respon1=QuerySign(dept);
+                    if ("02".equals(respon1.getResponMessage())) {
+                        SysRespon respon=setMnoArray(dept);
+                        if (!"0000".equals(respon.getResponCode())) {
+                            return AjaxResult.error(respon.getResponMessage());
+                        }
+                    } else if("00".equals(respon1.getResponMessage())) {
+                        return AjaxResult.error("已发送链接,未签约");
+                    }else  if("01".equals(respon1.getResponMessage())){
+                        return AjaxResult.error("签约失败");
+                    }else if("03".equals(respon1.getResponMessage())){
+                        return AjaxResult.error("未签约");
+                    }else {
+                        return AjaxResult.error(respon1.getResponMessage());
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
         dept.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(deptService.updateDept(dept));
     }
+    /**
+     * 设置分账模式
+     */
+
+    @GetMapping("/mnoSplit/{deptId}")
+    public AjaxResult mnoSplit(@PathVariable Long deptId)
+    {
+       if(deptId ==null){
+           return AjaxResult.error("传入id参数错误");
+       }
+       SysDept dept1=deptService.selectDeptById(deptId);
+       if(dept1.getDeptId()==null){
+           return AjaxResult.error("未查询到对应的信息");
+       }
+        try {
+            // QuerySign(dept);
+            SysRespon respon=SetMnoSign(dept1);
+            if (!"0000".equals(respon.getResponCode())){
+                return AjaxResult.error(respon.getResponMessage());
+            }else {
+            return AjaxResult.success(respon.getResponMessage());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("调用接口失败"+e.getMessage());
+        }
+    }
 
     /**
      * 删除部门
@@ -317,4 +411,201 @@ public class SysDeptController extends BaseController
         return toAjax(i);
     }
 
+    public SysRespon SetMnoSign( SysDept dept) throws Exception {
+
+        SysRespon respon=new SysRespon();
+        JSONObject reqData = new JSONObject();
+        reqData.put("mno",dept.getMno() );
+        reqData.put("signType", "00");
+        String req= SXFPaySign.getSXFPay(reqData);
+        ///logger.debug("参数信息:"+req);
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        System.out.println("拼接后的参数:" + signContent);
+        //logger.debug("拼接后的参数:"+signContent);
+        //sign
+        String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+        System.out.println("============签名:" + sign);
+        reqMap.put("sign", sign);
+        String reqStr = JSON.toJSONString(reqMap);
+        System.out.println("请求参数:" + reqMap);
+        System.out.println("请求参数:" + reqStr);
+        //调用第三方接口地址
+        String url = "https://openapi.suixingpay.com/merchant/sign/getUrl";//生产地址
+        String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+        System.out.println("返回信息:" + resultJson);
+        //不要对reqData排序 所以用LinkedHashMap
+        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+        if ("0000".equals(result.get("code"))) {
+            //验签
+            String signResult = result.get("sign").toString();
+            result.remove("sign");
+            String resultStr = RSASignature.getOrderContent(result);
+            System.out.println("resultStr: " + resultStr);
+            //sign
+            String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+            System.out.println("resultSign: " + resultSign);
+            //组装加密串
+            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                System.out.println("===================验签成功==============");
+                //
+                if(result.containsKey("respData")){
+                    HashMap<String, Object> result1 = JSON.parseObject(result.get("respData")+"", LinkedHashMap.class, Feature.OrderedField);
+                    if("0000".equals(result1.get("bizCode"))){
+                        respon.setResponCode("0000");
+                        System.out.println(result1.get("retUrl"));
+                        String url1=result1.get("retUrl")+"";
+                        respon.setResponMessage(result1.get("retUrl")+"");
+                        return respon;
+                    }else {
+                        respon.setResponCode(result1.get("bizCode") + "");
+                        respon.setResponMessage(result1.get("bizMsg") + "");
+                    }
+                    //判断 bizCode bizCode =="0000" 则业务成功
+                }else {
+                    respon.setResponCode("0004");
+                    respon.setResponMessage(result.get("msg") + "");
+                }
+            }else {
+                respon.setResponCode("0002");
+                respon.setResponMessage("RSA验证失败");
+            }
+        }
+        return respon;
+    }
+
+
+    public SysRespon QuerySign( SysDept dept) throws Exception {
+        SysRespon respon=new SysRespon();
+        JSONObject reqData = new JSONObject();
+        reqData.put("mno",dept.getMno() );
+        String req= SXFPaySign.getSXFPay(reqData);
+        ///logger.debug("参数信息:"+req);
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        System.out.println("拼接后的参数:" + signContent);
+        //logger.debug("拼接后的参数:"+signContent);
+        //sign
+        String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+        System.out.println("============签名:" + sign);
+        reqMap.put("sign", sign);
+        String reqStr = JSON.toJSONString(reqMap);
+        System.out.println("请求参数:" + reqMap);
+        System.out.println("请求参数:" + reqStr);
+        //调用第三方接口地址
+        String url = "https://openapi.suixingpay.com/merchant/sign/querySignContract";//生产地址
+        String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+        System.out.println("返回信息:" + resultJson);
+        //不要对reqData排序 所以用LinkedHashMap
+        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+        if ("0000".equals(result.get("code"))) {
+            //验签
+            String signResult = result.get("sign").toString();
+            result.remove("sign");
+            String resultStr = RSASignature.getOrderContent(result);
+            System.out.println("resultStr: " + resultStr);
+            //sign
+            String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+            System.out.println("resultSign: " + resultSign);
+            //组装加密串
+            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                System.out.println("===================验签成功==============");
+                //
+                if(result.containsKey("respData")){
+                    HashMap<String, Object> result1 = JSON.parseObject(result.get("respData")+"", LinkedHashMap.class, Feature.OrderedField);
+                    if("0000".equals(result1.get("bizCode"))){
+                        respon.setResponCode("0000");
+                        respon.setResponMessage(result1.get("signResult")+"");
+                        System.out.println(result1.get("signResult"));
+                        return respon ;
+                    }else {
+                        respon.setResponCode(result1.get("bizCode") + "");
+                        respon.setResponMessage(result1.get("bizMsg") + "");
+                    }
+                    //判断 bizCode bizCode =="0000" 则业务成功
+                }else {
+                    respon.setResponCode("0004");
+                    respon.setResponMessage(result.get("msg") + "");
+                }
+
+            }else {
+                respon.setResponCode("0002");
+                respon.setResponMessage("RSA验证失败");
+            }
+        }
+        return respon;
+    }
+
+
+    public SysRespon setMnoArray( SysDept dept) throws Exception {
+        SysRespon respon=new SysRespon();
+        JSONObject reqData = new JSONObject();
+        reqData.put("mno",dept.getMno() );
+        reqData.put("mnoArray",dept.getMnoArray() );
+        String req= SXFPaySign.getSXFPay(reqData);
+        ///logger.debug("参数信息:"+req);
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        System.out.println("拼接后的参数:" + signContent);
+        //logger.debug("拼接后的参数:"+signContent);
+        //sign
+        String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+        System.out.println("============签名:" + sign);
+        reqMap.put("sign", sign);
+        String reqStr = JSON.toJSONString(reqMap);
+        System.out.println("请求参数:" + reqMap);
+        System.out.println("请求参数:" + reqStr);
+        //调用第三方接口地址
+        String url = "https://openapi.suixingpay.com/query/ledger/setMnoArray";//生产地址
+        String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+        System.out.println("返回信息:" + resultJson);
+        //不要对reqData排序 所以用LinkedHashMap
+        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+        if ("0000".equals(result.get("code"))) {
+            //验签
+            String signResult = result.get("sign").toString();
+            result.remove("sign");
+            String resultStr = RSASignature.getOrderContent(result);
+            System.out.println("resultStr: " + resultStr);
+            //sign
+            String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+            System.out.println("resultSign: " + resultSign);
+            //组装加密串
+            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                System.out.println("===================验签成功==============");
+                //
+                if(result.containsKey("respData")){
+                    HashMap<String, Object> result1 = JSON.parseObject(result.get("respData")+"", LinkedHashMap.class, Feature.OrderedField);
+                    if("0000".equals(result1.get("bizCode"))){
+                        respon.setResponCode("0000");
+                        respon.setResponMessage("签约成功");
+                        System.out.println(result1.get("signResult"));
+                        return respon;
+                    }else {
+                        respon.setResponCode(result1.get("bizCode") + "");
+                        respon.setResponMessage(result1.get("bizMsg") + "");
+                    }
+                    //判断 bizCode bizCode =="0000" 则业务成功
+                }else {
+                respon.setResponCode("0004");
+                respon.setResponMessage(result.get("msg")+"");
+                }
+            }
+            else {
+                respon.setResponCode("0002");
+                respon.setResponMessage("RSA验证失败");
+            }
+        }
+        return respon;
+    }
+
 }

+ 78 - 0
yijia-admin/src/main/java/com/yijia/web/controller/system/SysStationPay.java

@@ -0,0 +1,78 @@
+package com.yijia.web.controller.system;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.parser.Feature;
+
+
+import com.yijia.common.core.domain.entity.SysDept;
+import com.yijia.station.domain.StationPayInterfance;
+import com.yijia.web.controller.system.HttpUtils;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+
+/*
+ * <Title> CouponController </Title>
+ * <Description> 优惠券 </Description>
+ * @Author JK
+ * @Date 2021年7月6日
+ */
+@RestController
+@RequestMapping("/system/StationPay")
+public class SysStationPay {
+
+
+    @ResponseBody
+    @PostMapping("/StationPay")
+    public String getJhPayInfo(@RequestBody SysDept dept) throws Exception {
+        String ss ="";
+        JSONObject reqData = new JSONObject();
+        reqData.put("mno",dept.getMno() );
+        reqData.put("signType", "00");
+        String req= SXFPaySign.getSXFPay(reqData);
+        ///logger.debug("参数信息:"+req);
+        System.out.println("req:" + req);
+        //此处不要改变reqData里面值的顺序用LinkedHashMap
+        HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
+        //组装加密串
+        String signContent = RSASignature.getOrderContent(reqMap);
+        System.out.println("拼接后的参数:" + signContent);
+        //logger.debug("拼接后的参数:"+signContent);
+        //sign
+        String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+        System.out.println("============签名:" + sign);
+        reqMap.put("sign", sign);
+        String reqStr = JSON.toJSONString(reqMap);
+        System.out.println("请求参数:" + reqMap);
+        System.out.println("请求参数:" + reqStr);
+        //调用第三方接口地址
+        String url = "https://openapi.suixingpay.com/merchant/sign/getUrl";//生产地址
+        String resultJson = HttpUtils.connectPostUrl(url, reqStr);
+        System.out.println("返回信息:" + resultJson);
+        //不要对reqData排序 所以用LinkedHashMap
+        HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
+        if ("0000".equals(result.get("code"))) {
+            //验签
+            String signResult = result.get("sign").toString();
+            result.remove("sign");
+            String resultStr = RSASignature.getOrderContent(result);
+            System.out.println("resultStr: " + resultStr);
+            //sign
+            String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
+            System.out.println("resultSign: " + resultSign);
+            //组装加密串
+            if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
+                System.out.println("===================验签成功==============");
+                //
+                if(result.containsKey("reqData")){
+                    //判断 bizCode bizCode =="0000" 则业务成功
+                }
+
+            }
+        }
+
+        return ss;
+    }
+}

+ 4 - 4
yijia-admin/src/main/resources/logback.xml

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-<!--    <property name="log.path" value="/home/testDemo/logs" />-->
+   <!--<property name="log.path" value="/home/testDemo/logs" />-->
     <property name="log.path" value="/home/devnote/deBugJar/logs" />
-<!--    <property name="log.path" value="/home/devnote/demoJar/logs" />-->
-<!--    <property name="log.path" value="/home/prodJar/logs" />-->
+    <!--<property name="log.path" value="/home/devnote/demoJar/logs" />-->
+   <!-- <property name="log.path" value="/home/prodJar/logs" />-->
 
-    <!-- 日志输出格式 -->
+     <!-- 日志输出格式 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
 	<!-- 控制台输出 -->

+ 3 - 2
yijia-admin/target/classes/application-druid.yml

@@ -6,8 +6,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                #url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_debug?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
-                url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://47.105.116.204:3306/jiaduoduo_db_prod?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                #url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                #url: jdbc:mysql://115.28.211.17:3306/jiaduoduo_db_demo?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: develop
                 password: 1234.Abcd
                 #url: jdbc:mysql://localhost:3306/jiaduoduo_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8

+ 6 - 6
yijia-admin/target/classes/application.yml

@@ -10,15 +10,15 @@ yijia:
   demoEnabled: true
   # 文件路径
   #正式服务器
-  #profile: /home/uploadfile/images
-    # imageurl: http://image.huijy.net:8088/images
+  profile: /home/uploadfile/images
+  imageurl: http://image.huijy.net:8088/images
   #测试服务器
-   #profile: /home/uploadfile/images
-   #imageurl: http://upload.huijy.net:8088/images
+  #profile: /home/uploadfile/images
+  #imageurl: http://upload.huijy.net:8088/images
   #本地测试服务
-  profile: E:/img
+  # profile: D:/img
   #图片地址
-  imageUrl: http://localhost:8080/profile
+  ##imageUrl: http://localhost:8080/profile
   # 获取ip地址开关
   addressEnabled: false
   # 验证码开关

BIN
yijia-admin/target/classes/com/yijia/web/controller/common/CommonController.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/ApiRequestBean.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/ApiResponseBean.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/HttpUtils$1.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/HttpUtils.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/RSAEncrypt.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/RSASignature.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SXFPaySign.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SignUtil.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SysAgentController.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SysDeptController.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SysStationPay.class


BIN
yijia-admin/target/classes/com/yijia/web/controller/system/SysUserController.class


+ 5 - 3
yijia-admin/target/classes/logback.xml

@@ -1,10 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-<!--    <property name="log.path" value="/home/testDemo/logs" />-->
-    <property name="log.path" value="/home/devnote/deBugJar/logs" />
+   <!--<property name="log.path" value="/home/testDemo/logs" />-->
+    <!--<property name="log.path" value="/home/devnote/deBugJar/logs" />-->
+    <!--<property name="log.path" value="/home/devnote/demoJar/logs" />-->
+    <property name="log.path" value="/home/prodJar/logs" />
 
-    <!-- 日志输出格式 -->
+     <!-- 日志输出格式 -->
 	<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
 
 	<!-- 控制台输出 -->

+ 5 - 0
yijia-admin/target/maven-archiver/pom.properties

@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Sep 24 09:53:33 CST 2021
+version=1.0.1
+groupId=com.yijia
+artifactId=yijia-admin

+ 33 - 0
yijia-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -0,0 +1,33 @@
+com\yijia\YiJiaServletInitializer.class
+com\yijia\YiJiaApplication.class
+com\yijia\web\controller\system\RSASignature.class
+com\yijia\web\controller\system\SysUserController.class
+com\yijia\web\controller\system\SysStationPay.class
+com\yijia\web\controller\tool\TestController.class
+com\yijia\web\controller\system\SXFPaySign.class
+com\yijia\web\controller\system\SysLoginController.class
+com\yijia\web\controller\common\CommonController.class
+com\yijia\web\controller\tool\UserEntity.class
+com\yijia\web\controller\system\HttpUtils.class
+com\yijia\web\controller\system\HttpUtils$1.class
+com\yijia\web\controller\monitor\SysLogininforController.class
+com\yijia\web\controller\system\SysAgentController.class
+com\yijia\web\core\config\SwaggerConfig.class
+com\yijia\web\controller\system\SysMenuController.class
+com\yijia\web\controller\monitor\ServerController.class
+com\yijia\web\controller\system\SysConfigController.class
+com\yijia\web\controller\system\SysDictTypeController.class
+com\yijia\web\controller\common\CaptchaController.class
+com\yijia\web\controller\monitor\SysUserOnlineController.class
+com\yijia\web\controller\system\SysNoticeController.class
+com\yijia\web\controller\system\SysPostController.class
+com\yijia\web\controller\system\RSAEncrypt.class
+com\yijia\web\controller\system\SysDictDataController.class
+com\yijia\web\controller\monitor\SysOperlogController.class
+com\yijia\web\controller\system\SignUtil.class
+com\yijia\web\controller\system\ApiResponseBean.class
+com\yijia\web\controller\system\SysDeptController.class
+com\yijia\web\controller\system\ApiRequestBean.class
+com\yijia\web\controller\tool\SwaggerController.class
+com\yijia\web\controller\system\SysRoleController.class
+com\yijia\web\controller\system\SysProfileController.class

+ 31 - 0
yijia-admin/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1,31 @@
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\HttpUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\YiJiaServletInitializer.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\monitor\SysOperlogController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysAgentController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\YiJiaApplication.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\RSAEncrypt.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysMenuController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\common\CaptchaController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysNoticeController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\monitor\SysLogininforController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysDictDataController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\tool\TestController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\common\CommonController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysConfigController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SXFPaySign.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysUserController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysPostController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\RSASignature.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysProfileController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\monitor\SysUserOnlineController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysRoleController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\monitor\ServerController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysDictTypeController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\ApiRequestBean.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysLoginController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\tool\SwaggerController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\ApiResponseBean.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SignUtil.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysDeptController.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\controller\system\SysStationPay.java
+D:\java项目\SAAS-AFTEREND2\yijia-admin\src\main\java\com\yijia\web\core\config\SwaggerConfig.java

BIN
yijia-admin/target/yijia-admin.jar


BIN
yijia-admin/target/yijia-admin.jar.original


+ 1 - 0
yijia-admin/yijia-admin.iml

@@ -146,5 +146,6 @@
     <orderEntry type="module" module-name="yijia-market" />
     <orderEntry type="module" module-name="yijia-integral" />
     <orderEntry type="module" module-name="yijia-coupon" />
+    <orderEntry type="module" module-name="yijia-label" />
   </component>
 </module>

+ 68 - 0
yijia-common/src/main/java/com/yijia/common/core/domain/entity/SysDept.java

@@ -90,6 +90,7 @@ public class SysDept extends BaseEntity
     private String printDeviceType;
     private String isLngFlag;
     private String city;
+    //是否开启优惠卷
     private String couponEnabledFlag;
 
     public String getCouponEnabledFlag() {
@@ -181,10 +182,77 @@ public class SysDept extends BaseEntity
     /**优惠劵是否共享*/
     private String  couponFlag;
 
+    /**分账收款商户编号*/
+    private String  mnoArray;
+
+    /**分账账号比例*/
+    private String  mnoProportion;
+
+    /**分账状态*/
+    private String  mnoStatus;
+
+
+
+    public String getMnoProportion() {
+        return mnoProportion;
+    }
+
+    public void setMnoProportion(String mnoProportion) {
+        this.mnoProportion = mnoProportion;
+    }
+
+    public String getMnoStatus() {
+        return mnoStatus;
+    }
+
+    public void setMnoStatus(String mnoStatus) {
+        this.mnoStatus = mnoStatus;
+    }
+
     private Long userId;
 
+    public String getMnoArray() {
+        return mnoArray;
+    }
+
+    public void setMnoArray(String mnoArray) {
+        this.mnoArray = mnoArray;
+    }
+
     private BigDecimal balance;
 
+    public String getMerchantNo() {
+        return merchantNo;
+    }
+
+    public void setMerchantNo(String merchantNo) {
+        this.merchantNo = merchantNo;
+    }
+
+    public String getTerminalId() {
+        return terminalId;
+    }
+
+    public void setTerminalId(String terminalId) {
+        this.terminalId = terminalId;
+    }
+
+    public String getYunKey() {
+        return yunKey;
+    }
+
+    public void setYunKey(String yunKey) {
+        this.yunKey = yunKey;
+    }
+
+    /**云闪付商户号码*/
+    private String  merchantNo;
+    /**云闪付终端号*/
+    private String  terminalId;
+    /**云闪付密钥*/
+    private String  yunKey;
+
+
     public BigDecimal getBalance() {
         return balance;
     }

BIN
yijia-common/target/classes/com/yijia/common/config/YiJiaConfig.class


BIN
yijia-common/target/classes/com/yijia/common/core/domain/AjaxResult.class


BIN
yijia-common/target/classes/com/yijia/common/core/domain/BaseEntity.class


BIN
yijia-common/target/classes/com/yijia/common/core/domain/entity/SysDept.class


BIN
yijia-common/target/classes/com/yijia/common/core/domain/entity/SysUser.class


BIN
yijia-common/target/classes/com/yijia/common/utils/file/FileUploadUtils.class


BIN
yijia-common/target/classes/com/yijia/common/utils/file/FileUtils.class


BIN
yijia-common/target/classes/com/yijia/common/utils/http/HttpHelper.class


BIN
yijia-common/target/classes/com/yijia/common/utils/http/HttpUtils.class


BIN
yijia-common/target/classes/com/yijia/common/utils/poi/ExcelUtil.class


+ 5 - 0
yijia-common/target/maven-archiver/pom.properties

@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Sep 24 09:53:18 CST 2021
+version=1.0.1
+groupId=com.yijia
+artifactId=yijia-common

+ 98 - 0
yijia-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -0,0 +1,98 @@
+com\yijia\common\utils\html\EscapeUtil.class
+com\yijia\common\config\YiJiaConfig.class
+com\yijia\common\exception\BaseException.class
+com\yijia\common\exception\user\UserPasswordNotMatchException.class
+com\yijia\common\utils\DateUtils.class
+com\yijia\common\exception\DemoModeException.class
+com\yijia\common\core\domain\entity\SysRole.class
+com\yijia\common\annotation\DataSource.class
+com\yijia\common\utils\spring\SpringUtils.class
+com\yijia\common\utils\ServletUtils.class
+com\yijia\common\exception\job\TaskException.class
+com\yijia\common\annotation\DataScope.class
+com\yijia\common\utils\ip\IpUtils.class
+com\yijia\common\enums\BusinessStatus.class
+com\yijia\common\core\domain\model\LoginUser.class
+com\yijia\common\enums\OperatorType.class
+com\yijia\common\utils\file\FileUtils.class
+com\yijia\common\core\controller\BaseController.class
+com\yijia\common\exception\job\TaskException$Code.class
+com\yijia\common\utils\http\HttpUtils.class
+com\yijia\common\core\page\TableDataInfo.class
+com\yijia\common\core\domain\AjaxResult.class
+com\yijia\common\utils\file\MimeTypeUtils.class
+com\yijia\common\filter\RepeatedlyRequestWrapper.class
+com\yijia\common\core\page\PageDomain.class
+com\yijia\common\constant\HttpStatus.class
+com\yijia\common\enums\HttpMethod.class
+com\yijia\common\core\domain\BaseEntity.class
+com\yijia\common\constant\UserConstants.class
+com\yijia\common\utils\ExceptionUtil.class
+com\yijia\common\exception\file\InvalidExtensionException$InvalidFlashExtensionException.class
+com\yijia\common\core\domain\TreeEntity.class
+com\yijia\common\utils\StringUtils.class
+com\yijia\common\annotation\Excels.class
+com\yijia\common\core\controller\BaseController$1.class
+com\yijia\common\core\domain\entity\SysDictData.class
+com\yijia\common\annotation\RepeatSubmit.class
+com\yijia\common\enums\BusinessType.class
+com\yijia\common\core\redis\RedisCache.class
+com\yijia\common\filter\XssHttpServletRequestWrapper.class
+com\yijia\common\exception\UtilException.class
+com\yijia\common\utils\poi\ExcelUtil.class
+com\yijia\common\annotation\Log.class
+com\yijia\common\utils\bean\BeanUtils.class
+com\yijia\common\utils\MessageUtils.class
+com\yijia\common\utils\file\FileUploadUtils.class
+com\yijia\common\utils\sign\Base64.class
+com\yijia\common\utils\uuid\UUID.class
+com\yijia\common\utils\sql\SqlUtil.class
+com\yijia\common\utils\Threads.class
+com\yijia\common\exception\user\CaptchaException.class
+com\yijia\common\filter\RepeatedlyRequestWrapper$1.class
+com\yijia\common\annotation\Excel$Type.class
+com\yijia\common\core\text\Convert.class
+com\yijia\common\utils\html\HTMLFilter.class
+com\yijia\common\utils\http\HttpUtils$1.class
+com\yijia\common\annotation\Excel.class
+com\yijia\common\utils\uuid\UUID$Holder.class
+com\yijia\common\annotation\Excel$ColumnType.class
+com\yijia\common\enums\DataSourceType.class
+com\yijia\common\constant\ScheduleConstants$Status.class
+com\yijia\common\core\domain\model\LoginBody.class
+com\yijia\common\core\page\TableSupport.class
+com\yijia\common\exception\file\FileSizeLimitExceededException.class
+com\yijia\common\utils\uuid\IdUtils.class
+com\yijia\common\exception\file\FileException.class
+com\yijia\common\core\text\StrFormatter.class
+com\yijia\common\utils\http\HttpUtils$TrustAnyTrustManager.class
+com\yijia\common\utils\DictUtils.class
+com\yijia\common\utils\LogUtils.class
+com\yijia\common\exception\file\InvalidExtensionException.class
+com\yijia\common\core\domain\entity\SysDept.class
+com\yijia\common\core\domain\TreeSelect.class
+com\yijia\common\constant\GenConstants.class
+com\yijia\common\utils\ip\AddressUtils.class
+com\yijia\common\exception\CustomException.class
+com\yijia\common\filter\RepeatableFilter.class
+com\yijia\common\core\text\CharsetKit.class
+com\yijia\common\utils\Arith.class
+com\yijia\common\utils\sign\Md5Utils.class
+com\yijia\common\core\domain\entity\SysMenu.class
+com\yijia\common\utils\SecurityUtils.class
+com\yijia\common\constant\Constants.class
+com\yijia\common\exception\file\InvalidExtensionException$InvalidImageExtensionException.class
+com\yijia\common\utils\http\HttpUtils$TrustAnyHostnameVerifier.class
+com\yijia\common\utils\reflect\ReflectUtils.class
+com\yijia\common\exception\user\CaptchaExpireException.class
+com\yijia\common\filter\XssFilter.class
+com\yijia\common\utils\http\HttpHelper.class
+com\yijia\common\constant\ScheduleConstants.class
+com\yijia\common\enums\UserStatus.class
+com\yijia\common\core\domain\entity\SysDictType.class
+com\yijia\common\core\domain\entity\SysUser.class
+com\yijia\common\utils\VerifyCodeUtils.class
+com\yijia\common\exception\file\FileNameLengthLimitExceededException.class
+com\yijia\common\filter\XssHttpServletRequestWrapper$1.class
+com\yijia\common\exception\user\UserException.class
+com\yijia\common\exception\file\InvalidExtensionException$InvalidMediaExtensionException.class

+ 84 - 0
yijia-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1,84 @@
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysRole.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\file\FileException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\user\UserPasswordNotMatchException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\TreeSelect.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\filter\RepeatableFilter.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\file\FileUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\HttpMethod.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\Excel.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\file\FileUploadUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\poi\ExcelUtil.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\text\Convert.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\DataScope.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\Log.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\file\InvalidExtensionException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\job\TaskException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\filter\RepeatedlyRequestWrapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\LogUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysUser.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\html\HTMLFilter.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\StringUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\BusinessType.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\html\EscapeUtil.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\page\PageDomain.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\reflect\ReflectUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\sql\SqlUtil.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\Excels.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\text\CharsetKit.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysDictType.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\RepeatSubmit.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\BaseEntity.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\config\YiJiaConfig.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\ExceptionUtil.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\UserStatus.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\constant\ScheduleConstants.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\DataSourceType.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\DictUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\BaseException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\spring\SpringUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysDictData.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\user\CaptchaException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\file\MimeTypeUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\TreeEntity.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\file\FileNameLengthLimitExceededException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\constant\Constants.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysMenu.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\ip\IpUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\sign\Base64.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\filter\XssHttpServletRequestWrapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\bean\BeanUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\DemoModeException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\file\FileSizeLimitExceededException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\http\HttpHelper.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\VerifyCodeUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\page\TableSupport.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\constant\UserConstants.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\constant\HttpStatus.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\constant\GenConstants.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\BusinessStatus.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\uuid\IdUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\user\UserException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\page\TableDataInfo.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\model\LoginBody.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\DateUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\enums\OperatorType.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\Threads.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\controller\BaseController.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\ServletUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\entity\SysDept.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\UtilException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\sign\Md5Utils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\http\HttpUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\ip\AddressUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\text\StrFormatter.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\CustomException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\Arith.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\annotation\DataSource.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\AjaxResult.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\exception\user\CaptchaExpireException.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\domain\model\LoginUser.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\SecurityUtils.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\core\redis\RedisCache.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\filter\XssFilter.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\uuid\UUID.java
+D:\java项目\SAAS-AFTEREND2\yijia-common\src\main\java\com\yijia\common\utils\MessageUtils.java

BIN
yijia-common/target/yijia-common-1.0.1.jar


+ 26 - 2
yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponInfoController.java

@@ -6,6 +6,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import com.yijia.common.core.domain.entity.SysDept;
 import com.yijia.common.core.domain.model.LoginUser;
 import com.yijia.common.utils.SecurityUtils;
 import com.yijia.system.service.ISysDeptService;
@@ -70,8 +71,14 @@ public class CouponInfoController extends BaseController
                 }
                 coupon.setEffectiveTime(eff);
                 if(coupon!=null && coupon.getVerification()!=null){
-                  //List<Integer> integerList =   Arrays.asList(stringList).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList());
+                    //List<Integer> integerList =   Arrays.asList(stringList).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList());
                     List<String> stringList = Arrays.asList(coupon.getVerification().split(","));
+                    List<String> namelist=new ArrayList<>();
+                    for(String temp:stringList){
+                        SysDept sysDept=sysDeptService.selectDeptById(Long.valueOf(temp));
+                        namelist.add(sysDept.getDeptName());
+                    }
+                    coupon.setVerificationNameList(namelist);
                     List<Integer> sssd = stringList.stream()
                             .map(s -> Integer.parseInt(s))
                             .collect(Collectors.toList());
@@ -87,6 +94,19 @@ public class CouponInfoController extends BaseController
         }
         return getDataTable(list);
     }
+    /**
+     * 查询优惠卷启用状态
+     */
+    @GetMapping("/selectCouponEnableFalge")
+    public AjaxResult selectCouponEnableFalge()
+    {
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        SysDept  dept = sysDeptService.selectDeptById(currentUser.getUser().getDeptId());
+        if(dept.getCouponEnabledFlag()==null){
+            return AjaxResult.success(0);
+        }
+        return AjaxResult.success(Integer.parseInt(dept.getCouponEnabledFlag()));
+    }
 
     /**
      * 导出优惠劵列表
@@ -143,6 +163,7 @@ public class CouponInfoController extends BaseController
             LoginUser currentUser = SecurityUtils.getLoginUser();
             couponInfo.setCreateBy(String.valueOf(currentUser.getUser().getUserId()));
             couponInfo.setStationId(currentUser.getUser().getDeptId());
+
             if(couponInfo!=null &&couponInfo.getVerificationList()!=null && couponInfo.getVerificationList().size()>0){
                 String verification= StringUtils.join( couponInfo.getVerificationList(),",");
                 couponInfo.setVerification(verification);
@@ -211,6 +232,9 @@ public class CouponInfoController extends BaseController
                 String appointedDays= String.join(",", couponInfo.getAppointedDaysList());
                 couponInfo.setAppointedDays(appointedDays);
             }
+            if(couponInfo.getEditFlag()=="1"){
+               return toAjax(0) ;
+            };
         } catch (ParseException e) {
             e.printStackTrace();
         }
@@ -221,7 +245,7 @@ public class CouponInfoController extends BaseController
      * 删除优惠劵
      */
     @Log(title = "优惠劵", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
+    @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Integer[] ids)
     {
         return toAjax(couponInfoService.deleteCouponInfoByIds(ids));

+ 97 - 11
yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponIssueController.java

@@ -1,10 +1,17 @@
 package com.yijia.coupon.controller;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Random;
+
+import com.yijia.common.core.domain.entity.SysDept;
 import com.yijia.common.core.domain.model.LoginUser;
 import com.yijia.common.utils.SecurityUtils;
+import com.yijia.coupon.domain.CouponInfo;
 import com.yijia.coupon.domain.CouponIssueRelation;
+import com.yijia.coupon.service.ICouponInfoService;
 import com.yijia.coupon.service.ICouponIssueRelationService;
+import com.yijia.system.service.impl.SysDeptServiceImpl;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +45,10 @@ public class CouponIssueController extends BaseController
     private ICouponIssueService couponIssueService;
     @Autowired
     private ICouponIssueRelationService couponIssueRelationService;
+    @Autowired
+    private ICouponInfoService  couponInfoService;
+    @Autowired
+    private SysDeptServiceImpl sysDeptService;
     /**
      * 查询优惠劵发放方式列表
      */
@@ -61,15 +72,50 @@ public class CouponIssueController extends BaseController
                 }
                 CouponIssueRelation couponIssueRelation =new CouponIssueRelation();
                 couponIssueRelation.setIssueId(issue.getId());
-                List<Integer> detailList = couponIssueRelationService.selectCouponIdList(couponIssueRelation);
+
+                List<CouponIssueRelation> detailList = couponIssueRelationService.selectCouponIssueRelationList(couponIssueRelation);
+                List<Integer> idlist = couponIssueRelationService.selectCouponIdList(couponIssueRelation);
+                List<CouponInfo> couponInfos=new ArrayList<>();
                 if(detailList!=null &&detailList.size()>0){
-                    issue.setCouponIssueRelationList(detailList);
+                   for(CouponIssueRelation data:detailList){
+                       couponInfos.add(couponInfoService.selectCouponInfoById(Integer.valueOf(data.getCouponId()+"")));
+                   }
+                   issue.setCouponList(couponInfos);
+
+                    issue.setCouponIssueRelationList(idlist);
                 }
             }
         }
         return getDataTable(list);
     }
 
+
+    /**
+     * 查询当前人员的发放方式
+     */
+    @GetMapping("/listByLogin")
+    public TableDataInfo listByLogin()
+    {
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        List<CouponIssue> list=new ArrayList<CouponIssue>();
+        if(currentUser.getUser().getDept().getParentId()!=100&&currentUser.getUser().getDept().getParentId()!=0){
+            SysDept sysDept=sysDeptService.selectDeptById(currentUser.getUser().getDept().getParentId());
+            if("1".equals(sysDept.getCouponFlag())){
+                CouponIssue couponIssue=new CouponIssue();
+                couponIssue.setIssueType("4");
+                couponIssue.setStationId(sysDept.getDeptId());
+                list=couponIssueService.selectCouponIssueList(couponIssue);
+            }else {
+                CouponIssue couponIssue=new CouponIssue();
+                couponIssue.setIssueType("4");
+                couponIssue.setStationId(currentUser.getUser().getDeptId());
+                list=couponIssueService.selectCouponIssueList(couponIssue);
+            }
+        }
+        return getDataTable(list);
+    }
+
+
     /**
      * 导出优惠劵发放方式列表
      */
@@ -86,14 +132,14 @@ public class CouponIssueController extends BaseController
      * 获取优惠劵发放方式详细信息
      */
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    public AjaxResult getInfo(@PathVariable("id") String id)
     {
         //查询优惠劵发放方式
         CouponIssue couponIssue = couponIssueService.selectCouponIssueById(id);
         if(couponIssue!=null ){
             //查询发放对应的优惠
             CouponIssueRelation relation =new CouponIssueRelation();
-            relation.setCouponId(couponIssue.getId());
+            relation.setIssueId(couponIssue.getId());
             if(couponIssue!=null && couponIssue.getShowId()!=null){
                 couponIssue.setShowIdList(Arrays.asList(couponIssue.getShowId().split(",")));
             }
@@ -118,6 +164,19 @@ public class CouponIssueController extends BaseController
     public AjaxResult add(@RequestBody CouponIssue couponIssue)
     {
         int i=0;
+        Random random = new Random();
+        String result = "";
+        String result1 = "";
+        for (int m = 0; m < 4; m++) {
+            result += random.nextInt(10);
+        }
+        for (int mm = 0; mm < 4; mm++) {
+            result1 += random.nextInt(10);
+        }
+        String TempTime=System.currentTimeMillis()+"";
+
+        String ordNo = ""+result1+TempTime.substring(5)+result;
+        couponIssue.setId(ordNo);
         if(couponIssue!=null &&couponIssue.getShowIdList()!=null && couponIssue.getShowIdList().size()>0){
             String verification= StringUtils.join( couponIssue.getShowIdList(),",");
             couponIssue.setShowId(verification);
@@ -128,19 +187,34 @@ public class CouponIssueController extends BaseController
         if(couponIssue!=null && couponIssue.getCycleDaysList()!=null && couponIssue.getCycleDaysList().size()>0){
             couponIssue.setCycleDays(StringUtils.join( couponIssue.getCycleDaysList(),","));
         }
+        if(couponIssue.getIssueType().equals("3")){
+            CouponIssue couponIssue1=new CouponIssue();
+            couponIssue1.setIssueType("3");
+            couponIssue1.setStatus("1");
+            List<CouponIssue> couponIssues=couponIssueService.selectCouponIssueList(couponIssue1);
+            if(couponIssues.size()>0){
+                return AjaxResult.error("支付成功后的展示位,只能设置一个!");
+            }
+        }
         LoginUser currentUser = SecurityUtils.getLoginUser();
         couponIssue.setCreateBy(String.valueOf(currentUser.getUser().getUserId()));
+        couponIssue.setStationId(currentUser.getUser().getDeptId());
+        couponIssue.setStatus("1");
         i=couponIssueService.insertCouponIssue(couponIssue);
         List<Integer> list = couponIssue.getCouponIssueRelationList();
         if(list!=null && list.size()>0){
             for (Integer couponId : list){
                 CouponIssueRelation issueRetail = new CouponIssueRelation();
+                CouponInfo couponInfo=couponInfoService.selectCouponInfoById(couponId);
+                couponInfo.setEditFlag("1");
+                i=couponInfoService.updateCouponInfo(couponInfo);
                 issueRetail.setIssueId(couponIssue.getId());
                 issueRetail.setCouponId(Long.valueOf(couponId));
                 issueRetail.setCreateBy(String.valueOf(currentUser.getUser().getUserId()));
                 i=  couponIssueRelationService.insertCouponIssueRelation(issueRetail);
             }
         }
+
         return toAjax(i);
     }
 
@@ -157,27 +231,33 @@ public class CouponIssueController extends BaseController
             String verification= StringUtils.join( couponIssue.getShowIdList(),",");
             couponIssue.setShowId(verification);
         }
-        if(couponIssue!=null && couponIssue.getAppointedDays()!=null){
-            couponIssue.setAppointedDaysList(Arrays.asList(couponIssue.getAppointedDays().split(",")));
+        if(couponIssue!=null && couponIssue.getAppointedDaysList()!=null&&couponIssue.getAppointedDaysList().size()>0 ){
+            couponIssue.setAppointedDays(StringUtils.join( couponIssue.getAppointedDaysList(),","));
         }
-        if(couponIssue!=null && couponIssue.getCycleDays()!=null){
-            couponIssue.setCycleDaysList(Arrays.asList(couponIssue.getCycleDays().split(",")));
+        if(couponIssue!=null && couponIssue.getCycleDaysList()!=null && couponIssue.getCycleDaysList().size()>0){
+            couponIssue.setCycleDays(StringUtils.join( couponIssue.getCycleDaysList(),","));
         }
+
         LoginUser currentUser = SecurityUtils.getLoginUser();
+        couponIssue.setStationId(currentUser.getUser().getDeptId());
+        couponIssue.setStatus("1");
         List<Integer> list = couponIssue.getCouponIssueRelationList();
         couponIssue.setUpdateBy(String.valueOf(currentUser.getUser().getUserId()));
         i=couponIssueService.updateCouponIssue(couponIssue);
         //删除所有的已绑定的优惠劵
         CouponIssueRelation detail = new CouponIssueRelation();
         detail.setIssueId(couponIssue.getId());
-        i =  couponIssueRelationService.deleteCouponIssueRelation(detail);
+        couponIssueRelationService.deleteCouponIssueRelation(detail);
         if(list!=null && list.size()>0){
             for (Integer couponId : list){
                 CouponIssueRelation issueRetail = new CouponIssueRelation();
+                CouponInfo couponInfo=couponInfoService.selectCouponInfoById(couponId);
+                couponInfo.setEditFlag("1");
+                couponInfoService.updateCouponInfo(couponInfo);
                 issueRetail.setIssueId(couponIssue.getId());
                 issueRetail.setCouponId(Long.valueOf(couponId));
                 issueRetail.setCreateBy(String.valueOf(currentUser.getUser().getUserId()));
-                i=  couponIssueRelationService.insertCouponIssueRelation(issueRetail);
+                couponIssueRelationService.insertCouponIssueRelation(issueRetail);
             }
         }
         return toAjax(i);
@@ -193,6 +273,12 @@ public class CouponIssueController extends BaseController
             String verification= StringUtils.join( couponIssue.getShowIdList(),",");
             couponIssue.setShowId(verification);
         }
+        if(couponIssue!=null && couponIssue.getAppointedDaysList()!=null&&couponIssue.getAppointedDaysList().size()>0 ){
+            couponIssue.setAppointedDays(StringUtils.join( couponIssue.getAppointedDaysList(),","));
+        }
+        if(couponIssue!=null && couponIssue.getCycleDaysList()!=null && couponIssue.getCycleDaysList().size()>0){
+            couponIssue.setCycleDays(StringUtils.join( couponIssue.getCycleDaysList(),","));
+        }
         LoginUser currentUser = SecurityUtils.getLoginUser();
         couponIssue.setUpdateBy(String.valueOf(currentUser.getUser().getUserId()));
         i=couponIssueService.updateCouponIssue(couponIssue);
@@ -202,7 +288,7 @@ public class CouponIssueController extends BaseController
      * 删除优惠劵发放方式
      */
     @Log(title = "优惠劵发放方式", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
+    @DeleteMapping("/{ids}")
     public AjaxResult remove(@PathVariable Integer[] ids)
     {
         return toAjax(couponIssueService.deleteCouponIssueByIds(ids));

+ 125 - 0
yijia-coupon/src/main/java/com/yijia/coupon/controller/CouponUserController.java

@@ -0,0 +1,125 @@
+package com.yijia.coupon.controller;
+
+import com.yijia.common.annotation.Log;
+import com.yijia.common.core.controller.BaseController;
+import com.yijia.common.core.domain.AjaxResult;
+import com.yijia.common.core.domain.entity.SysDept;
+import com.yijia.common.core.domain.model.LoginUser;
+import com.yijia.common.core.page.TableDataInfo;
+import com.yijia.common.enums.BusinessType;
+import com.yijia.common.utils.SecurityUtils;
+import com.yijia.common.utils.poi.ExcelUtil;
+import com.yijia.coupon.domain.CouponInfo;
+import com.yijia.coupon.domain.CouponIssue;
+import com.yijia.coupon.domain.CouponIssueRelation;
+import com.yijia.coupon.domain.CouponUser;
+import com.yijia.coupon.service.ICouponIssueService;
+import com.yijia.coupon.service.ICouponUserService;
+import com.yijia.system.service.ISysDeptService;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 优惠劵Controller
+ *
+ * @author yijia
+ * @date 2021-08-09
+ */
+@RestController
+@RequestMapping("/coupon/user")
+public class CouponUserController extends BaseController
+{
+    private static final Logger log = LoggerFactory.getLogger(CouponUser.class);
+    @Autowired
+    private ICouponIssueService couponIssueService;
+    @Autowired
+    private ICouponUserService couponUserService;
+    @Autowired
+    private ISysDeptService deptService;
+
+    /**
+     * 查询人员优惠劵发放方式列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(CouponUser couponUser)
+    {
+
+        List<String> list = deptService.levelDeptList(couponUser.getLevelId());
+        if(list!=null && list.size()>0){
+            couponUser.setStationIdList(list);
+            couponUser.setStationId(null);
+        }
+        startPage();
+        List<CouponUser> couponUserlist = couponUserService.selectCouponUserList(couponUser);
+        return getDataTable(couponUserlist);
+    }
+
+
+    /**
+     * 导出人员优惠劵发放方式列表
+     */
+    @Log(title = "人员优惠劵信息", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(CouponUser couponUser)
+    {
+        List<CouponUser> list = couponUserService.selectCouponUserList(couponUser);
+        ExcelUtil<CouponUser> util = new ExcelUtil<CouponUser>(CouponUser.class);
+        return util.exportExcel(list, "user");
+    }
+
+
+
+    /**
+     * 获取人员优惠劵发放方式详细信息
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        //查询人员优惠劵发放方式
+        CouponUser couponUser = couponUserService.selectCouponUserById(id);
+        return AjaxResult.success(couponUser);
+    }
+
+    /**
+     * 新增人员优惠劵
+     */
+    @Log(title = "人员优惠劵", businessType = BusinessType.INSERT)
+    @PostMapping
+    @Transactional
+    public AjaxResult add(@RequestBody CouponUser couponUser)
+    {
+        int i=0;
+         i=couponUserService.insertCouponUser(couponUser);
+        return toAjax(i);
+    }
+    /**
+     * 修改优惠劵发放方式
+     */
+    @Log(title = "人员优惠劵的修改", businessType = BusinessType.UPDATE)
+    @PutMapping
+    @Transactional
+    public AjaxResult edit(@RequestBody CouponUser couponUser)
+    {
+        int i=0;
+        i=couponUserService.updateCouponUser(couponUser);
+        return toAjax(i);
+    }
+    /**
+     * 删除人员优惠劵发放方式
+     */
+    @Log(title = "优惠劵发放方式", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable String[] ids)
+    {
+        return toAjax(couponUserService.deleteCouponUserByIds(ids));
+    }
+}

+ 67 - 0
yijia-coupon/src/main/java/com/yijia/coupon/domain/AppUserInfo.java

@@ -0,0 +1,67 @@
+package com.yijia.coupon.domain;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yijia.common.annotation.Excel;
+import com.yijia.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+public class AppUserInfo extends BaseEntity
+{
+
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Integer userId;
+
+    /** 手机号码 */
+    @Excel(name = "注册手机号")
+    private String mobilePhone;
+
+    public String getMobilePhone() {
+        return mobilePhone;
+    }
+
+    public void setMobilePhone(String mobilePhone) {
+        this.mobilePhone = mobilePhone;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getBlogNickName() {
+        return blogNickName;
+    }
+
+    public void setBlogNickName(String blogNickName) {
+        this.blogNickName = blogNickName;
+    }
+
+    /** 注册昵称 */
+    @Excel(name = "注册昵称")
+    private String blogNickName;
+
+
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("userId", getUserId())
+                .append("mobilePhone", getMobilePhone())
+                .append("blogNickName", getBlogNickName())
+                .toString();
+    }
+
+}

+ 59 - 25
yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponInfo.java

@@ -104,13 +104,46 @@ public class CouponInfo extends BaseEntity
     @Excel(name = "有效状态:0,未生效; 1,生效;2,失效;")
     private String status;
 
+    /** 有效状态:0,未生效; 1,生效;2,失效; */
+    @Excel(name = "优惠卷与标签是否叠加:0,不叠加; 1,叠加")
+    private String isLabelFlag;
+
+    public String getIsLabelFlag() {
+        return isLabelFlag;
+    }
+
+    public void setIsLabelFlag(String isLabelFlag) {
+        this.isLabelFlag = isLabelFlag;
+    }
+
+    //优惠卷标识
+    private String couponRemark;
     /** 是否删除优惠劵 1是 0 否 */
     private String delFlag;
     /** 优惠劵 站点id **/
     private String verification;
     /**优惠卷站点id*/
     private List<Integer> verificationList;
+    private List<String> verificationNameList;
+
+    public List<String> getVerificationNameList() {
+        return verificationNameList;
+    }
+
+    public void setVerificationNameList(List<String> verificationNameList) {
+        this.verificationNameList = verificationNameList;
+    }
+
     private List<String> oilNameList;
+
+    public String getCouponRemark() {
+        return couponRemark;
+    }
+
+    public void setCouponRemark(String couponRemark) {
+        this.couponRemark = couponRemark;
+    }
+
     /**是否开启电子卡*/
     private String isCardFlag;
     /**是否开启等级*/
@@ -441,30 +474,31 @@ public class CouponInfo extends BaseEntity
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("stationId", getStationId())
-            .append("couponName", getCouponName())
-            .append("couponType", getCouponType())
-            .append("couponThresholdAmt", getCouponThresholdAmt())
-            .append("useDiscountType", getUseDiscountType())
-            .append("oilName", getOilName())
-            .append("oilType", getOilType())
-            .append("couponAmt",getCouponAmt())
-            .append("couponNum",getCouponNum())
-            .append("effectiveTimeType", getEffectiveTimeType())
-            .append("effectiveTimeStart", getEffectiveTimeStart())
-            .append("effectiveTimeEnd", getEffectiveTimeEnd())
-            .append("effectiveDayNum", getEffectiveDayNum())
-            .append("couponReceiveNum", getCouponReceiveNum())
-            .append("openPlatform", getOpenPlatform())
-            .append("grantStatus", getGrantStatus())
-            .append("status", getStatus())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("delFlag", getDelFlag())
-            .append("verification", getVerification())
-            .toString();
+                .append("id", getId())
+                .append("stationId", getStationId())
+                .append("couponName", getCouponName())
+                .append("couponType", getCouponType())
+                .append("couponThresholdAmt", getCouponThresholdAmt())
+                .append("useDiscountType", getUseDiscountType())
+                .append("oilName", getOilName())
+                .append("oilType", getOilType())
+                .append("couponAmt",getCouponAmt())
+                .append("couponNum",getCouponNum())
+                .append("effectiveTimeType", getEffectiveTimeType())
+                .append("effectiveTimeStart", getEffectiveTimeStart())
+                .append("effectiveTimeEnd", getEffectiveTimeEnd())
+                .append("effectiveDayNum", getEffectiveDayNum())
+                .append("couponReceiveNum", getCouponReceiveNum())
+                .append("openPlatform", getOpenPlatform())
+                .append("grantStatus", getGrantStatus())
+                .append("status", getStatus())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("delFlag", getDelFlag())
+                .append("verification", getVerification())
+                .append("isLabelFlag", getIsLabelFlag())
+                .toString();
     }
 }

+ 57 - 14
yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponIssue.java

@@ -19,7 +19,7 @@ public class CouponIssue extends BaseEntity
     private static final long serialVersionUID = 1L;
 
     /** 发放表主键id */
-    private Long id;
+    private String id;
 
     /** 发放类型 (1主动发放,2消费发放,3扫码发放,4展示发放) */
     @Excel(name = "发放类型 ", readConverterExp = "1=主动发放,2消费发放,3扫码发放,4展示发放")
@@ -41,16 +41,59 @@ public class CouponIssue extends BaseEntity
     @Excel(name = "展示位置id(1支付成功之后的展示位,2待定,3待定)")
     private String showId;
 
+    /** 展示位置id(1支付成功之后的展示位,2待定,3待定) */
+    @Excel(name = "发放次数")
+    private Long giveCount;
+
+    public Long getGiveCount() {
+        return giveCount;
+    }
+
+    public void setGiveCount(Long giveCount) {
+        this.giveCount = giveCount;
+    }
+
+    public int getGiveLimit() {
+        return giveLimit;
+    }
+
+    public void setGiveLimit(int giveLimit) {
+        this.giveLimit = giveLimit;
+    }
+
+    /** 展示位置id(1支付成功之后的展示位,2待定,3待定) */
+    @Excel(name = "发送限额")
+    private int giveLimit;
+
     private List<String> showIdList;
 
     private String appointedDays;
     private String cycleDays;
     private String availableControl;
     private String issueName;
+    private String issueRemark;
+
+    public String getIssueRemark() {
+        return issueRemark;
+    }
+
+    public void setIssueRemark(String issueRemark) {
+        this.issueRemark = issueRemark;
+    }
 
     private List<String> appointedDaysList;
     private List<String> cycleDaysList;
 
+    public List<CouponInfo> getCouponList() {
+        return couponList;
+    }
+
+    public void setCouponList(List<CouponInfo> couponList) {
+        this.couponList = couponList;
+    }
+
+    /**关联的优惠卷的信息*/
+    private List<CouponInfo> couponList;
     public String getIssueName() {
         return issueName;
     }
@@ -117,11 +160,11 @@ public class CouponIssue extends BaseEntity
         this.showIdList = showIdList;
     }
 
-    public Long getId() {
+    public String getId() {
         return id;
     }
 
-    public void setId(Long id) {
+    public void setId(String id) {
         this.id = id;
     }
 
@@ -174,16 +217,16 @@ public class CouponIssue extends BaseEntity
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("issueType", getIssueType())
-            .append("discountThresholdAmt", getDiscountThresholdAmt())
-            .append("status", getStatus())
-            .append("stationId", getStationId())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .append("showId", getShowId())
-            .toString();
+                .append("id", getId())
+                .append("issueType", getIssueType())
+                .append("discountThresholdAmt", getDiscountThresholdAmt())
+                .append("status", getStatus())
+                .append("stationId", getStationId())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .append("showId", getShowId())
+                .toString();
     }
 }

+ 13 - 11
yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponIssueRelation.java

@@ -20,12 +20,14 @@ public class CouponIssueRelation extends BaseEntity
 
     /** 优惠劵发放方式主键id */
     @Excel(name = "优惠劵发放方式主键id")
-    private Long issueId;
+    private String issueId;
 
     /** 优惠劵表主键id */
     @Excel(name = "优惠劵表主键id")
     private Long couponId;
 
+
+
     public void setId(Long id)
     {
         this.id = id;
@@ -35,12 +37,12 @@ public class CouponIssueRelation extends BaseEntity
     {
         return id;
     }
-    public void setIssueId(Long issueId)
+    public void setIssueId(String issueId)
     {
         this.issueId = issueId;
     }
 
-    public Long getIssueId()
+    public String getIssueId()
     {
         return issueId;
     }
@@ -57,13 +59,13 @@ public class CouponIssueRelation extends BaseEntity
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("issueId", getIssueId())
-            .append("couponId", getCouponId())
-            .append("createBy", getCreateBy())
-            .append("createTime", getCreateTime())
-            .append("updateBy", getUpdateBy())
-            .append("updateTime", getUpdateTime())
-            .toString();
+                .append("id", getId())
+                .append("issueId", getIssueId())
+                .append("couponId", getCouponId())
+                .append("createBy", getCreateBy())
+                .append("createTime", getCreateTime())
+                .append("updateBy", getUpdateBy())
+                .append("updateTime", getUpdateTime())
+                .toString();
     }
 }

+ 296 - 0
yijia-coupon/src/main/java/com/yijia/coupon/domain/CouponUser.java

@@ -0,0 +1,296 @@
+package com.yijia.coupon.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yijia.common.annotation.Excel;
+import com.yijia.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ *
+ * 用户优惠卷的查询实例
+ *
+ *
+ * */
+public class CouponUser extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    @Excel(name = "id主键")
+    private Integer id;
+
+    /** 客户的unid */
+    @Excel(name = "客户的unid")
+    private String unionId;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /** 油站ID */
+    @Excel(name = "油站ID")
+    private Long stationId;
+
+
+    /** 发放方式id */
+    @Excel(name = "发放方式id")
+    private String issueId;
+
+    /** 优惠卷id */
+    @Excel(name = "优惠卷id")
+    private Long couponId;
+
+    /** 用户领取该券后优惠券券码 */
+    //@Excel(name = "用户领取该券后优惠券券码")
+   // private String couponNo;
+
+    /** 是否使用:0、未使用;1、已使用; */
+    @Excel(name = "是否使用:0、未使用;1、已使用;")
+    private String couponIsUsed;
+
+
+    /** 是否有效:1、有效;0、无效;; */
+    @Excel(name = "是否有效:1、有效;0、无效;")
+    private String couponIsEffective;
+
+    /** 优惠券获取时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "优惠券获取时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date getCouponTime;
+
+    /** $column.columnComment */
+    private Integer userId;
+
+    /** 手机号码 */
+    @Excel(name = "注册手机号")
+    private String mobilePhone;
+    private List<String> stationIdList;
+
+    /**优惠卷名称 */
+    @Excel(name = "优惠卷名称")
+    private String couponName;
+
+    /**发放方式名称 */
+    @Excel(name = "发放方式名称")
+    private String issueName;
+
+    /**优惠卷标识 */
+    @Excel(name = "优惠卷标识")
+    private String couponRemark;
+
+    /**发放方式标识*/
+    @Excel(name = "发放方式")
+    private String issueRemark;
+
+    /**核销员手机号*/
+    @Excel(name = "核销员手机号")
+    private String verificationUserPhone;
+
+    public String getVerificationUserPhone() {
+        return verificationUserPhone;
+    }
+
+    public void setVerificationUserPhone(String verificationUserPhone) {
+        this.verificationUserPhone = verificationUserPhone;
+    }
+
+    public String getCouponRemark() {
+        return couponRemark;
+    }
+
+    public void setCouponRemark(String couponRemark) {
+        this.couponRemark = couponRemark;
+    }
+
+    public String getIssueRemark() {
+        return issueRemark;
+    }
+
+    public void setIssueRemark(String issueRemark) {
+        this.issueRemark = issueRemark;
+    }
+
+    public String getCouponType() {
+        return couponType;
+    }
+
+    public void setCouponType(String couponType) {
+        this.couponType = couponType;
+    }
+
+    public String getCouponAmt() {
+        return couponAmt;
+    }
+
+    public void setCouponAmt(String couponAmt) {
+        this.couponAmt = couponAmt;
+    }
+
+    /**优惠卷类型*/
+    @Excel(name = "优惠卷类型")
+    private String couponType;
+
+    /**优惠卷金额*/
+    @Excel(name = "优惠卷金额")
+    private String couponAmt;
+
+
+
+
+
+    public String getCouponName() {
+        return couponName;
+    }
+
+    public void setCouponName(String couponName) {
+        this.couponName = couponName;
+    }
+
+    public String getIssueName() {
+        return issueName;
+    }
+
+    public void setIssueName(String issueName) {
+        this.issueName = issueName;
+    }
+
+    @Override
+    public List<String> getStationIdList() {
+        return stationIdList;
+    }
+
+    @Override
+    public void setStationIdList(List<String> stationIdList) {
+        this.stationIdList = stationIdList;
+    }
+
+    public String getMobilePhone() {
+        return mobilePhone;
+    }
+
+    public void setMobilePhone(String mobilePhone) {
+        this.mobilePhone = mobilePhone;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getBlogNickName() {
+        return blogNickName;
+    }
+
+    public void setBlogNickName(String blogNickName) {
+        this.blogNickName = blogNickName;
+    }
+
+    /** 注册昵称 */
+    @Excel(name = "注册昵称")
+    private String blogNickName;
+
+
+
+    public String getUnionId() {
+        return unionId;
+    }
+
+    public void setUnionId(String unionId) {
+        this.unionId = unionId;
+    }
+
+    public Long getStationId() {
+        return stationId;
+    }
+
+    public void setStationId(Long stationId) {
+        this.stationId = stationId;
+    }
+
+    public String getIssueId() {
+        return issueId;
+    }
+
+    public void setIssueId(String issueId) {
+        this.issueId = issueId;
+    }
+
+    public Long getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Long couponId) {
+        this.couponId = couponId;
+    }
+
+    public String getCouponIsUsed() {
+        return couponIsUsed;
+    }
+
+    public void setCouponIsUsed(String couponIsUsed) {
+        this.couponIsUsed = couponIsUsed;
+    }
+
+    public String getCouponIsEffective() {
+        return couponIsEffective;
+    }
+
+    public void setCouponIsEffective(String couponIsEffective) {
+        this.couponIsEffective = couponIsEffective;
+    }
+
+    public Date getGetCouponTime() {
+        return getCouponTime;
+    }
+
+    public void setGetCouponTime(Date getCouponTime) {
+        this.getCouponTime = getCouponTime;
+    }
+
+    public Date getCouponEffectiveTime() {
+        return couponEffectiveTime;
+    }
+
+    public void setCouponEffectiveTime(Date couponEffectiveTime) {
+        this.couponEffectiveTime = couponEffectiveTime;
+    }
+
+    /** 固定时间-优惠券有效期截止时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "固定时间-优惠券有效期截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date couponEffectiveTime;
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("unionId", getUnionId())
+                .append("stationId", getStationId())
+                .append("issueId", getIssueId())
+                .append("couponId", getCouponId())
+                .append("couponIsUsed", getCouponIsUsed())
+                .append("couponIsEffective", getCouponIsEffective())
+                .append("getCouponTime", getGetCouponTime())
+                .append("couponEffectiveTime",getCouponIsEffective())
+                .append("userId",getUserId())
+                .append("mobilePhone", getMobilePhone())
+                .append("blogNickName",getBlogNickName())
+                .toString();
+    }
+
+
+}

+ 1 - 1
yijia-coupon/src/main/java/com/yijia/coupon/mapper/CouponIssueMapper.java

@@ -17,7 +17,7 @@ public interface CouponIssueMapper
      * @param id 优惠劵发放方式ID
      * @return 优惠劵发放方式
      */
-    public CouponIssue selectCouponIssueById(Integer id);
+    public CouponIssue selectCouponIssueById(String id);
 
     /**
      * 查询优惠劵发放方式列表

+ 63 - 0
yijia-coupon/src/main/java/com/yijia/coupon/mapper/CouponUserMapper.java

@@ -0,0 +1,63 @@
+package com.yijia.coupon.mapper;
+
+import com.yijia.coupon.domain.CouponInfo;
+import com.yijia.coupon.domain.CouponUser;
+
+import java.util.List;
+
+/**
+ * 人员的优惠卷查询接口
+ * 
+ * @author yijia
+ * @date 2021-08-09
+ */
+public interface CouponUserMapper
+{
+    /**
+     * 查询人员优惠卷
+     *
+     * @param id 人员优惠卷id
+     * @return 人员优惠卷信息
+     */
+    public CouponUser selectCouponUserById(Integer id);
+
+    /**
+     * 查询人员优惠卷
+     * 
+     * @param couponUser 人员优惠卷信息
+     * @return 人员优惠卷信息集合
+     */
+    public List<CouponUser> selectCouponUserList(CouponUser  couponUser);
+
+    /**
+     * 新增人员优惠卷
+     * 
+     * @param couponUser 人员优惠卷信息
+     * @return 结果
+     */
+    public int insertCouponUser(CouponUser couponUser);
+
+    /**
+     * 修改人员优惠卷
+     * 
+     * @param couponUser 人员优惠卷
+     * @return 结果
+     */
+    public int updateCouponUser(CouponUser couponUser);
+
+    /**
+     * 删除人员优惠卷
+     * 
+     * @param id 人员优惠劵ID
+     * @return 结果
+     */
+    public int deleteCouponUserById(Integer id);
+
+    /**
+     * 批量删除人员优惠卷
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteCouponUserByIds(String[] ids);
+}

+ 1 - 1
yijia-coupon/src/main/java/com/yijia/coupon/service/ICouponIssueService.java

@@ -17,7 +17,7 @@ public interface ICouponIssueService
      * @param id 优惠劵发放方式ID
      * @return 优惠劵发放方式
      */
-    public CouponIssue selectCouponIssueById(Integer id);
+    public CouponIssue selectCouponIssueById(String id);
 
     /**
      * 查询优惠劵发放方式列表

+ 62 - 0
yijia-coupon/src/main/java/com/yijia/coupon/service/ICouponUserService.java

@@ -0,0 +1,62 @@
+package com.yijia.coupon.service;
+
+import com.yijia.coupon.domain.CouponUser;
+
+import java.util.List;
+
+/**
+ * 人员优惠劵Service接口
+ * 
+ * @author yijia
+ * @date 2021-08-09
+ */
+public interface ICouponUserService
+{
+    /**
+     * 查询人员优惠劵
+     * 
+     * @param id 人员优惠劵ID
+     * @return 优惠劵
+     */
+    public CouponUser selectCouponUserById(Integer id);
+
+    /**
+     * 查询人员优惠劵列表
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 人员优惠劵集合
+     */
+    public List<CouponUser> selectCouponUserList(CouponUser couponUser);
+
+    /**
+     * 新增人员优惠劵
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 结果
+     */
+    public int insertCouponUser(CouponUser  couponUser);
+
+    /**
+     * 修改人员优惠劵
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 结果
+     */
+    public int updateCouponUser(CouponUser  couponUser);
+
+    /**
+     * 批量删除人员优惠劵
+     * 
+     * @param ids 需要删除的人员优惠劵ID
+     * @return 结果
+     */
+    public int deleteCouponUserByIds(String[] ids);
+
+    /**
+     * 删除优惠劵信息
+     * 
+     * @param id 优惠劵ID
+     * @return 结果
+     */
+    public int deleteCouponUserById(Integer id);
+}

+ 6 - 5
yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponIssueRelationServiceImpl.java

@@ -21,6 +21,7 @@ public class CouponIssueRelationServiceImpl implements ICouponIssueRelationServi
     @Autowired
     private CouponIssueRelationMapper couponIssueRelationMapper;
 
+
     /**
      * 查询发放方式,优惠劵信息
      *
@@ -102,11 +103,11 @@ public class CouponIssueRelationServiceImpl implements ICouponIssueRelationServi
 
     @Override
     public List<Integer> selectCouponIdList(CouponIssueRelation couponIssueRelation) {
-       List<CouponIssueRelation> list = couponIssueRelationMapper.selectCouponIssueRelationList(couponIssueRelation);
-       List<Integer> integerList =new ArrayList<>();
-       for(CouponIssueRelation relation:list ){
-           integerList.add(relation.getCouponId().intValue());
-       }
+        List<CouponIssueRelation> list = couponIssueRelationMapper.selectCouponIssueRelationList(couponIssueRelation);
+        List<Integer> integerList =new ArrayList<>();
+        for(CouponIssueRelation relation:list ){
+            integerList.add(relation.getCouponId().intValue());
+        }
         return integerList;
     }
 }

+ 1 - 1
yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponIssueServiceImpl.java

@@ -27,7 +27,7 @@ public class CouponIssueServiceImpl implements ICouponIssueService
      * @return 优惠劵发放方式
      */
     @Override
-    public CouponIssue selectCouponIssueById(Integer id)
+    public CouponIssue selectCouponIssueById(String id)
     {
         return couponIssueMapper.selectCouponIssueById(id);
     }

+ 98 - 0
yijia-coupon/src/main/java/com/yijia/coupon/service/impl/CouponUserServiceImpl.java

@@ -0,0 +1,98 @@
+package com.yijia.coupon.service.impl;
+
+import com.yijia.common.utils.DateUtils;
+import com.yijia.coupon.domain.CouponUser;
+import com.yijia.coupon.mapper.CouponInfoMapper;
+import com.yijia.coupon.mapper.CouponUserMapper;
+import com.yijia.coupon.service.ICouponInfoService;
+import com.yijia.coupon.service.ICouponUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 优惠劵Service业务层处理
+ * 
+ * @author yijia
+ * @date 2021-08-09
+ */
+@Service
+public class CouponUserServiceImpl implements ICouponUserService
+{
+    @Autowired
+    private CouponUserMapper  couponUserMapper;
+
+    /**
+     * 查询人员优惠劵
+     * 
+     * @param id 人员优惠劵ID
+     * @return 人员优惠劵
+     */
+    @Override
+    public CouponUser selectCouponUserById(Integer id)
+    {
+        return couponUserMapper.selectCouponUserById(id);
+    }
+
+    /**
+     * 查询人员优惠劵列表
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 人员优惠劵
+     */
+    @Override
+    public List<CouponUser> selectCouponUserList(CouponUser couponUser)
+    {
+        return couponUserMapper.selectCouponUserList(couponUser);
+    }
+
+    /**
+     * 新增人员优惠劵
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 结果
+     */
+    @Override
+    public int insertCouponUser(CouponUser  couponUser)
+    {
+        couponUser.setCreateTime(DateUtils.getNowDate());
+        return couponUserMapper.insertCouponUser(couponUser);
+    }
+
+    /**
+     * 修改人员优惠劵
+     * 
+     * @param couponUser 人员优惠劵
+     * @return 结果
+     */
+    @Override
+    public int updateCouponUser(CouponUser  couponUser)
+    {
+        return couponUserMapper.updateCouponUser(couponUser);
+    }
+
+    /**
+     * 批量删除人员优惠劵
+     * 
+     * @param ids 需要删除的人员优惠劵ID
+     * @return 结果
+     */
+    @Override
+    public int deleteCouponUserByIds(String[] ids)
+    {
+        return couponUserMapper.deleteCouponUserByIds(ids);
+    }
+
+    /**
+     * 删除人员优惠劵信息
+     * 
+     * @param id 人员优惠劵ID
+     * @return 结果
+     */
+    @Override
+    public int deleteCouponUserById(Integer id)
+    {
+        return couponUserMapper.deleteCouponUserById(id);
+    }
+}

+ 18 - 2
yijia-coupon/src/main/resources/mapper/coupon/CouponInfoMapper.xml

@@ -40,13 +40,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="appointedDays"    column="appointed_days" />
         <result property="cycleDays"    column="cycle_days" />
         <result property="availableControl"    column="available_control" />
+        <result property="couponRemark"    column="coupon_remark" />
+        <result property="isLabelFlag"    column="is_label_flag" />
     </resultMap>
 
     <sql id="selectCouponInfoVo">
         select id, station_id, coupon_name, coupon_type, coupon_threshold_amt, use_discount_type, oil_name, oil_type, coupon_amt, coupon_num,
         coupon_details,coupon_hold_num,effective_time_type, effective_time_start, effective_time_end, effective_day_num, coupon_receive_num,
          open_platform, grant_status, status, create_by, create_time, update_by, update_time, del_flag,verification,coupon_cumulative_num,
-         coupon_use_num,is_market_flag,is_grade_flag,is_card_flag,edit_flag,appointed_days,cycle_days,available_control
+         coupon_use_num,is_market_flag,is_grade_flag,is_card_flag,edit_flag,appointed_days,cycle_days,available_control,coupon_remark,is_label_flag
          from coupon_info
     </sql>
 
@@ -76,6 +78,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null  and appointedDays != ''"> and appointed_days = #{appointedDays}</if>
             <if test="cycleDays != null  and cycleDays != ''"> and cycle_days = #{cycleDays}</if>
             <if test="availableControl != null  and availableControl != ''"> and available_control = #{availableControl}</if>
+            <if test="isLabelFlag != null  and isLabelFlag != ''"> and is_label_flag = #{isLabelFlag}</if>
+            <if test="couponRemark != null  and couponRemark != ''"> and coupon_remark like concat('%', #{couponRemark}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
             <if test="stationIdList != null ">
                 and station_id in
                 <foreach item="item" index="index" collection="stationIdList"
@@ -84,7 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </foreach>
             </if>
         </where>
-        order by id desc
+        order by status desc , id desc
     </select>
 
     <select id="selectCouponInfoById" parameterType="Integer" resultMap="CouponInfoResult">
@@ -129,6 +139,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null">appointed_days,</if>
             <if test="cycleDays != null">cycle_days,</if>
             <if test="availableControl != null">available_control,</if>
+            <if test="isLabelFlag != null">is_label_flag,</if>
+            <if test="couponRemark != null">coupon_remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="stationId != null">#{stationId},</if>
@@ -165,6 +177,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null">#{appointedDays},</if>
             <if test="cycleDays != null">#{cycleDays},</if>
             <if test="availableControl != null">#{availableControl},</if>
+            <if test="isLabelFlag != null">#{isLabelFlag},</if>
+            <if test="couponRemark != null">#{couponRemark},</if>
          </trim>
     </insert>
 
@@ -203,6 +217,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null">appointed_days = #{appointedDays},</if>
             <if test="cycleDays != null">cycle_days = #{cycleDays},</if>
             <if test="availableControl != null">available_control = #{availableControl},</if>
+            <if test="isLabelFlag != null">is_label_flag = #{isLabelFlag},</if>
+            <if test="couponRemark != null">coupon_remark = #{couponRemark},</if>
         </trim>
         where id = #{id}
     </update>

+ 59 - 38
yijia-coupon/src/main/resources/mapper/coupon/CouponIssueMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yijia.coupon.mapper.CouponIssueMapper">
 
     <resultMap type="CouponIssue" id="CouponIssueResult">
@@ -19,18 +19,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="appointedDays"    column="appointed_days" />
         <result property="cycleDays"    column="cycle_days" />
         <result property="availableControl"    column="available_control" />
+        <result property="giveCount"    column="give_count" />
+        <result property="giveLimit"    column="give_limit" />
+        <result property="issueRemark"    column="issue_remark" />
     </resultMap>
 
     <sql id="selectCouponIssueVo">
         select id,issue_name, issue_type, discount_threshold_amt, status, station_id, create_by, create_time, update_by, update_time, show_id,
-        appointed_days,cycle_days,available_control
+        appointed_days,cycle_days,available_control,give_count,give_limit,issue_remark
          from coupon_issue
     </sql>
 
     <select id="selectCouponIssueList" parameterType="CouponIssue" resultMap="CouponIssueResult">
         <include refid="selectCouponIssueVo"/>
         <where>
-            <if test="issueName != null  and issueName != ''"> and issue_name = #{issueName}</if>
+            <if test="issueName != null  and issueName != ''"> and issue_name like concat('%', #{issueName}, '%')</if>
             <if test="issueType != null  and issueType != ''"> and issue_type = #{issueType}</if>
             <if test="discountThresholdAmt != null "> and discount_threshold_amt = #{discountThresholdAmt}</if>
             <if test="status != null  and status != ''"> and status = #{status}</if>
@@ -39,47 +42,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null  and appointedDays != ''"> and appointed_days = #{appointedDays}</if>
             <if test="cycleDays != null  and cycleDays != ''"> and cycle_days = #{cycleDays}</if>
             <if test="availableControl != null  and availableControl != ''"> and available_control = #{availableControl}</if>
+            <if test="giveCount != null  and giveCount != ''"> and give_count = #{giveCount}</if>
+            <if test="giveLimit != null  and giveLimit != ''"> and give_limit = #{giveLimit}</if>
+            <if test="issueRemark != null  and issueRemark != ''"> and issue_remark like concat('%', #{issueRemark}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
         </where>
-        order by id desc
+        order by status desc , create_time desc
     </select>
 
-    <select id="selectCouponIssueById" parameterType="Integer" resultMap="CouponIssueResult">
+    <select id="selectCouponIssueById" parameterType="String" resultMap="CouponIssueResult">
         <include refid="selectCouponIssueVo"/>
         where id = #{id}
     </select>
 
-    <insert id="insertCouponIssue" parameterType="CouponIssue" useGeneratedKeys="true" keyProperty="id">
-        insert into coupon_issue
-        <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="issueName != null">issue_name,</if>
-            <if test="issueType != null">issue_type,</if>
-            <if test="discountThresholdAmt != null">discount_threshold_amt,</if>
-            <if test="status != null">status,</if>
-            <if test="stationId != null">station_id,</if>
-            <if test="createBy != null">create_by,</if>
-            <if test="createTime != null">create_time,</if>
-            <if test="updateBy != null">update_by,</if>
-            <if test="updateTime != null">update_time,</if>
-            <if test="showId != null">show_id,</if>
-            <if test="appointedDays != null">appointed_days,</if>
-            <if test="cycleDays != null">cycle_days,</if>
-            <if test="availableControl != null">available_control,</if>
-         </trim>
-        <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="issueName != null">#{issueName},</if>
-            <if test="issueType != null">#{issueType},</if>
-            <if test="discountThresholdAmt != null">#{discountThresholdAmt},</if>
-            <if test="status != null">#{status},</if>
-            <if test="stationId != null">#{stationId},</if>
-            <if test="createBy != null">#{createBy},</if>
-            <if test="createTime != null">#{createTime},</if>
-            <if test="updateBy != null">#{updateBy},</if>
-            <if test="updateTime != null">#{updateTime},</if>
-            <if test="showId != null">#{showId},</if>
-            <if test="appointedDays != null">#{appointedDays},</if>
-            <if test="cycleDays != null">#{cycleDays},</if>
-            <if test="availableControl != null">#{availableControl},</if>
-         </trim>
+    <insert id="insertCouponIssue" parameterType="CouponIssue" >
+        insert into coupon_issue(
+        <if test="id != null">id,</if>
+        <if test="issueName != null">issue_name,</if>
+        <if test="issueType != null">issue_type,</if>
+        <if test="discountThresholdAmt != null">discount_threshold_amt,</if>
+        <if test="status != null">status,</if>
+        <if test="stationId != null">station_id,</if>
+        <if test="createBy != null">create_by,</if>
+        <if test="createTime != null">create_time,</if>
+        <if test="updateBy != null">update_by,</if>
+        <if test="updateTime != null">update_time,</if>
+        <if test="showId != null">show_id,</if>
+        <if test="appointedDays != null">appointed_days,</if>
+        <if test="cycleDays != null">cycle_days,</if>
+        <if test="availableControl != null">available_control,</if>
+        <if test="giveCount != null">give_count,</if>
+        <if test="giveLimit != null">give_limit,</if>
+        <if test="issueRemark != null">issue_remark</if>
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="issueName != null">#{issueName},</if>
+        <if test="issueType != null">#{issueType},</if>
+        <if test="discountThresholdAmt != null">#{discountThresholdAmt},</if>
+        <if test="status != null">#{status},</if>
+        <if test="stationId != null">#{stationId},</if>
+        <if test="createBy != null">#{createBy},</if>
+        <if test="createTime != null">#{createTime},</if>
+        <if test="updateBy != null">#{updateBy},</if>
+        <if test="updateTime != null">#{updateTime},</if>
+        <if test="showId != null">#{showId},</if>
+        <if test="appointedDays != null">#{appointedDays},</if>
+        <if test="cycleDays != null">#{cycleDays},</if>
+        <if test="availableControl != null">#{availableControl},</if>
+        <if test="giveCount != null">#{giveCount},</if>
+        <if test="giveLimit != null">#{giveLimit},</if>
+        <if test="issueRemark != null">#{issueRemark}</if>
+        )
     </insert>
 
     <update id="updateCouponIssue" parameterType="CouponIssue">
@@ -98,6 +116,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="appointedDays != null">appointed_days = #{appointedDays},</if>
             <if test="cycleDays != null">cycle_days = #{cycleDays},</if>
             <if test="availableControl != null">available_control = #{availableControl},</if>
+            <if test="giveCount != null">give_count = #{giveCount},</if>
+            <if test="giveLimit != null">give_limit = #{giveLimit},</if>
+            <if test="issueRemark != null">issue_remark = #{issueRemark},</if>
         </trim>
         where id = #{id}
     </update>

+ 124 - 0
yijia-coupon/src/main/resources/mapper/coupon/CouponUserMapper.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yijia.coupon.mapper.CouponUserMapper">
+
+    <resultMap type="CouponUser" id="CouponUserResult">
+        <result property="id"    column="id"    />
+        <result property="unionId"    column="union_id"    />
+        <result property="stationId"    column="station_id"    />
+        <result property="issueId"    column="issue_id"    />
+        <result property="couponId"    column="coupon_id"    />
+        <result property="couponIsUsed"    column="coupon_is_used"    />
+        <result property="couponIsEffective"    column="coupon_is_effective"    />
+        <result property="getCouponTime"    column="get_coupon_time"    />
+        <result property="couponEffectiveTime"    column="coupon_effective_time"    />
+        <result property="userId"    column="user_id"    />
+        <result property="mobilePhone"    column="mobile_phone"    />
+        <result property="blogNickName"    column="blog_nick_name"    />
+        <result property="couponName"    column="coupon_name"    />
+        <result property="issueName"    column="issue_name"    />
+        <result property="couponRemark"    column="coupon_remark"    />
+        <result property="issueRemark"    column="issue_remark"    />
+        <result property="couponType"    column="coupon_type"    />
+        <result property="couponAmt"    column="coupon_amt"    />
+        <result property="verificationUserPhone"    column="verification_user_phone"    />
+    </resultMap>
+
+
+    <sql id="selectCouponUserVo">
+           SELECT a.union_id,a.station_id,
+            a.issue_id,a.id,a.get_coupon_time,a.coupon_id,
+            a.coupon_is_used,a.coupon_is_effective,a.coupon_effective_time,
+            b.coupon_name,c.issue_name,d.user_id,d.mobile_phone,d.blog_nick_name,
+            b.coupon_remark,c.issue_remark,b.coupon_type,b.coupon_amt,a.verification_user_phone
+            from  coupon_user a
+            left join coupon_info b on a.coupon_id=b.id
+            left join coupon_issue c  on  a.issue_id=c.id
+	        left  join app_user_info d  on a.union_id=d.union_id
+    </sql>
+
+    <select id="selectCouponUserList" parameterType="CouponUser" resultMap="CouponUserResult">
+        <include refid="selectCouponUserVo"/>
+        <where>
+            <if test="unionId != null "> and a.union_id = #{unionId}</if>
+            <if test="stationId != null  and stationId != ''">and a.station_id = #{stationId}</if>
+            <if test="issueId != null  and issueId != ''"> and a.issue_id = #{issueId}</if>
+            <if test="couponId != null "> and a.coupon_id = #{couponId}</if>
+            <if test="couponIsUsed != null  and couponIsUsed != '' "> and a.coupon_is_used = #{couponIsUsed}</if>
+            <if test="couponIsEffective != null  and couponIsEffective != ''">and a.coupon_is_effective = #{couponIsEffective}</if>
+            <if test="getCouponTime != null  and getCouponTime != ''"> and a.get_coupon_time = #{getCouponTime}</if>
+            <if test="couponEffectiveTime != null and couponEffectiveTime != ''"> and a.coupon_effective_time = #{couponEffectiveTime}</if>
+            <if test="verificationUserPhone != null and verificationUserPhone != ''"> and a.verification_user_phone like concat('%', #{verificationUserPhone}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(a.get_coupon_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(a.get_coupon_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="stationIdList != null ">
+                and a.station_id in
+                <foreach item="item" index="index" collection="stationIdList"
+                         open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        order by a.id desc
+    </select>
+
+    <select id="selectCouponUserById" parameterType="Integer" resultMap="CouponUserResult">
+        <include refid="selectCouponUserVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCouponUser" parameterType="CouponUser" useGeneratedKeys="true" keyProperty="id">
+        insert into coupon_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="unionId != null">union_id,</if>
+            <if test="stationId != null">station_id,</if>
+            <if test="issueId != null">issue_id,</if>
+            <if test="couponId != null">coupon_id,</if>
+            <if test="couponIsUsed != null">coupon_is_used,</if>
+            <if test="couponIsEffective != null">coupon_is_effective,</if>
+            <if test="couponEffectiveTime != null">coupon_effective_time,</if>
+            <if test="getCouponTime != null">get_coupon_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="unionId != null">#{unionId},</if>
+            <if test="stationId != null">#{stationId},</if>
+            <if test="issueId != null">#{issueId},</if>
+            <if test="couponId != null">#{couponId},</if>
+            <if test="couponIsUsed != null">#{couponIsUsed},</if>
+            <if test="couponIsEffective != null">#{couponIsEffective},</if>
+            <if test="couponEffectiveTime != null">#{couponEffectiveTime},</if>
+            <if test="getCouponTime != null">#{getCouponTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCouponUser" parameterType="CouponUser">
+        update coupon_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="unionId != null">union_id = #{unionId},</if>
+            <if test="stationId != null">station_id = #{stationId},</if>
+            <if test="issueId != null">issue_id = #{issueId},</if>
+            <if test="couponId != null">coupon_id = #{couponId},</if>
+            <if test="couponIsUsed != null">coupon_is_used = #{couponIsUsed},</if>
+            <if test="couponIsEffective != null">couponEffectiveTime = #{couponIsEffective},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCouponUserById" parameterType="Integer">
+        delete from coupon_user where id = #{id}
+    </delete>
+
+    <delete id="deleteCouponUserByIds" parameterType="String">
+        delete from coupon_user where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

BIN
yijia-coupon/target/classes/com/yijia/coupon/controller/CouponInfoController.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/controller/CouponIssueController.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/controller/CouponIssueRelationController.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/controller/CouponUserController.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/domain/AppUserInfo.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/domain/CouponInfo.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/domain/CouponIssue.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/domain/CouponIssueRelation.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/domain/CouponUser.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponIssueMapper.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponIssueRelationMapper.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/mapper/CouponUserMapper.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/ICouponIssueRelationService.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/ICouponIssueService.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/ICouponUserService.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponIssueRelationServiceImpl.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponIssueServiceImpl.class


BIN
yijia-coupon/target/classes/com/yijia/coupon/service/impl/CouponUserServiceImpl.class


+ 102 - 13
yijia-coupon/target/classes/mapper/coupon/CouponInfoMapper.xml

@@ -3,17 +3,20 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yijia.coupon.mapper.CouponInfoMapper">
-    
+
     <resultMap type="CouponInfo" id="CouponInfoResult">
         <result property="id"    column="id"    />
-        <result property="couponId"    column="coupon_id"    />
+        <result property="stationId"    column="station_id"    />
         <result property="couponName"    column="coupon_name"    />
         <result property="couponType"    column="coupon_type"    />
+        <result property="couponThresholdAmt"    column="coupon_threshold_amt"    />
         <result property="useDiscountType"    column="use_discount_type"    />
         <result property="oilName"    column="oil_name"    />
         <result property="oilType"    column="oil_type"    />
         <result property="couponAmt"    column="coupon_amt"    />
         <result property="couponNum"    column="coupon_num"    />
+        <result property="couponHoldNum"    column="coupon_hold_num"    />
+        <result property="couponDetails"    column="coupon_details"    />
         <result property="effectiveTimeType"    column="effective_time_type"    />
         <result property="effectiveTimeStart"    column="effective_time_start"    />
         <result property="effectiveTimeEnd"    column="effective_time_end"    />
@@ -26,23 +29,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateTime"    column="update_time"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="verification"    column="verification" />
+        <result property="couponCumulativeNum"    column="coupon_cumulative_num" />
+        <result property="couponUseNum"    column="coupon_use_num" />
+        <result property="isCardFlag"    column="is_card_flag" />
+        <result property="isGradeFlag"    column="is_grade_flag" />
+        <result property="isMarketFlag"    column="is_market_flag" />
+        <result property="editFlag"    column="edit_flag" />
+        <result property="appointedDays"    column="appointed_days" />
+        <result property="cycleDays"    column="cycle_days" />
+        <result property="availableControl"    column="available_control" />
+        <result property="couponRemark"    column="coupon_remark" />
+        <result property="isLabelFlag"    column="is_label_flag" />
     </resultMap>
 
     <sql id="selectCouponInfoVo">
-        select id, coupon_id, coupon_name, coupon_type, use_discount_type, oil_name, oil_type, coupon_amt, coupon_num, effective_time_type, effective_time_start, effective_time_end, effective_day_num, coupon_receive_num, open_platform, grant_status, status, create_by, create_time, update_by, update_time from coupon_info
+        select id, station_id, coupon_name, coupon_type, coupon_threshold_amt, use_discount_type, oil_name, oil_type, coupon_amt, coupon_num,
+        coupon_details,coupon_hold_num,effective_time_type, effective_time_start, effective_time_end, effective_day_num, coupon_receive_num,
+         open_platform, grant_status, status, create_by, create_time, update_by, update_time, del_flag,verification,coupon_cumulative_num,
+         coupon_use_num,is_market_flag,is_grade_flag,is_card_flag,edit_flag,appointed_days,cycle_days,available_control,coupon_remark,is_label_flag
+         from coupon_info
     </sql>
 
     <select id="selectCouponInfoList" parameterType="CouponInfo" resultMap="CouponInfoResult">
         <include refid="selectCouponInfoVo"/>
-        <where>  
-            <if test="couponId != null  and couponId != ''"> and coupon_id = #{couponId}</if>
+        <where>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
             <if test="couponName != null  and couponName != ''"> and coupon_name like concat('%', #{couponName}, '%')</if>
             <if test="couponType != null  and couponType != ''"> and coupon_type = #{couponType}</if>
+            <if test="couponThresholdAmt != null "> and coupon_threshold_amt = #{couponThresholdAmt}</if>
             <if test="useDiscountType != null  and useDiscountType != ''"> and use_discount_type = #{useDiscountType}</if>
             <if test="oilName != null  and oilName != ''"> and oil_name like concat('%', #{oilName}, '%')</if>
             <if test="oilType != null  and oilType != ''"> and oil_type = #{oilType}</if>
             <if test="couponAmt != null "> and coupon_amt = #{couponAmt}</if>
             <if test="couponNum != null "> and coupon_num = #{couponNum}</if>
+            <if test="couponHoldNum != null "> and coupon_hold_num = #{couponHoldNum}</if>
+            <if test="couponDetails != null "> and coupon_details = #{couponDetails}</if>
             <if test="effectiveTimeType != null  and effectiveTimeType != ''"> and effective_time_type = #{effectiveTimeType}</if>
             <if test="effectiveTimeStart != null "> and effective_time_start = #{effectiveTimeStart}</if>
             <if test="effectiveTimeEnd != null "> and effective_time_end = #{effectiveTimeEnd}</if>
@@ -51,25 +74,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="openPlatform != null  and openPlatform != ''"> and open_platform = #{openPlatform}</if>
             <if test="grantStatus != null  and grantStatus != ''"> and grant_status = #{grantStatus}</if>
             <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="verification != null  and verification != ''"> and verification = #{verification}</if>
+            <if test="appointedDays != null  and appointedDays != ''"> and appointed_days = #{appointedDays}</if>
+            <if test="cycleDays != null  and cycleDays != ''"> and cycle_days = #{cycleDays}</if>
+            <if test="availableControl != null  and availableControl != ''"> and available_control = #{availableControl}</if>
+            <if test="isLabelFlag != null  and isLabelFlag != ''"> and is_label_flag = #{isLabelFlag}</if>
+            <if test="couponRemark != null  and couponRemark != ''"> and coupon_remark like concat('%', #{couponRemark}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="stationIdList != null ">
+                and station_id in
+                <foreach item="item" index="index" collection="stationIdList"
+                         open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         </where>
+        order by status desc , id desc
     </select>
-    
+
     <select id="selectCouponInfoById" parameterType="Integer" resultMap="CouponInfoResult">
         <include refid="selectCouponInfoVo"/>
         where id = #{id}
     </select>
-        
+
     <insert id="insertCouponInfo" parameterType="CouponInfo" useGeneratedKeys="true" keyProperty="id">
         insert into coupon_info
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="couponId != null">coupon_id,</if>
+            <if test="stationId != null">station_id,</if>
             <if test="couponName != null">coupon_name,</if>
             <if test="couponType != null">coupon_type,</if>
+            <if test="couponThresholdAmt != null">coupon_threshold_amt,</if>
             <if test="useDiscountType != null">use_discount_type,</if>
             <if test="oilName != null">oil_name,</if>
             <if test="oilType != null">oil_type,</if>
             <if test="couponAmt != null">coupon_amt,</if>
             <if test="couponNum != null">coupon_num,</if>
+            <if test="couponHoldNum != null">coupon_hold_num,</if>
+            <if test="couponDetails != null">coupon_details,</if>
             <if test="effectiveTimeType != null">effective_time_type,</if>
             <if test="effectiveTimeStart != null">effective_time_start,</if>
             <if test="effectiveTimeEnd != null">effective_time_end,</if>
@@ -82,16 +128,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time,</if>
             <if test="updateBy != null">update_by,</if>
             <if test="updateTime != null">update_time,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="verification != null">verification,</if>
+            <if test="couponCumulativeNum != null">coupon_cumulative_num,</if>
+            <if test="couponUseNum != null">coupon_use_num,</if>
+            <if test="isCardFlag != null">is_card_flag,</if>
+            <if test="isGradeFlag != null">is_grade_flag,</if>
+            <if test="isMarketFlag != null">is_market_flag,</if>
+            <if test="editFlag != null">edit_flag,</if>
+            <if test="appointedDays != null">appointed_days,</if>
+            <if test="cycleDays != null">cycle_days,</if>
+            <if test="availableControl != null">available_control,</if>
+            <if test="isLabelFlag != null">is_label_flag,</if>
+            <if test="couponRemark != null">coupon_remark,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="couponId != null">#{couponId},</if>
+            <if test="stationId != null">#{stationId},</if>
             <if test="couponName != null">#{couponName},</if>
             <if test="couponType != null">#{couponType},</if>
+            <if test="couponThresholdAmt != null">#{couponThresholdAmt},</if>
             <if test="useDiscountType != null">#{useDiscountType},</if>
             <if test="oilName != null">#{oilName},</if>
             <if test="oilType != null">#{oilType},</if>
             <if test="couponAmt != null">#{couponAmt},</if>
             <if test="couponNum != null">#{couponNum},</if>
+            <if test="couponHoldNum != null">#{couponHoldNum},</if>
+            <if test="couponDetails != null">#{couponDetails},</if>
             <if test="effectiveTimeType != null">#{effectiveTimeType},</if>
             <if test="effectiveTimeStart != null">#{effectiveTimeStart},</if>
             <if test="effectiveTimeEnd != null">#{effectiveTimeEnd},</if>
@@ -104,20 +166,36 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">#{createTime},</if>
             <if test="updateBy != null">#{updateBy},</if>
             <if test="updateTime != null">#{updateTime},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="verification != null">#{verification},</if>
+            <if test="couponCumulativeNum != null">#{couponCumulativeNum},</if>
+            <if test="couponUseNum != null">#{couponUseNum},</if>
+            <if test="isCardFlag != null">#{isCardFlag},</if>
+            <if test="isGradeFlag != null">#{isGradeFlag},</if>
+            <if test="isMarketFlag != null">#{isMarketFlag},</if>
+            <if test="editFlag != null">#{editFlag},</if>
+            <if test="appointedDays != null">#{appointedDays},</if>
+            <if test="cycleDays != null">#{cycleDays},</if>
+            <if test="availableControl != null">#{availableControl},</if>
+            <if test="isLabelFlag != null">#{isLabelFlag},</if>
+            <if test="couponRemark != null">#{couponRemark},</if>
          </trim>
     </insert>
 
     <update id="updateCouponInfo" parameterType="CouponInfo">
         update coupon_info
         <trim prefix="SET" suffixOverrides=",">
-            <if test="couponId != null">coupon_id = #{couponId},</if>
+            <if test="stationId != null">station_id = #{stationId},</if>
             <if test="couponName != null">coupon_name = #{couponName},</if>
             <if test="couponType != null">coupon_type = #{couponType},</if>
+            <if test="couponThresholdAmt != null">coupon_threshold_amt = #{couponThresholdAmt},</if>
             <if test="useDiscountType != null">use_discount_type = #{useDiscountType},</if>
             <if test="oilName != null">oil_name = #{oilName},</if>
             <if test="oilType != null">oil_type = #{oilType},</if>
             <if test="couponAmt != null">coupon_amt = #{couponAmt},</if>
             <if test="couponNum != null">coupon_num = #{couponNum},</if>
+            <if test="couponHoldNum != null">coupon_hold_num = #{couponHoldNum},</if>
+            <if test="couponDetails != null">coupon_details = #{couponDetails},</if>
             <if test="effectiveTimeType != null">effective_time_type = #{effectiveTimeType},</if>
             <if test="effectiveTimeStart != null">effective_time_start = #{effectiveTimeStart},</if>
             <if test="effectiveTimeEnd != null">effective_time_end = #{effectiveTimeEnd},</if>
@@ -130,6 +208,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateBy != null">update_by = #{updateBy},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="verification != null">verification = #{verification},</if>
+            <if test="isCardFlag != null">is_card_flag = #{isCardFlag},</if>
+            <if test="isGradeFlag != null">is_grade_flag = #{isGradeFlag},</if>
+            <if test="isMarketFlag != null">is_market_flag = #{isMarketFlag},</if>
+            <if test="editFlag != null">edit_flag = #{editFlag},</if>
+            <if test="appointedDays != null">appointed_days = #{appointedDays},</if>
+            <if test="cycleDays != null">cycle_days = #{cycleDays},</if>
+            <if test="availableControl != null">available_control = #{availableControl},</if>
+            <if test="isLabelFlag != null">is_label_flag = #{isLabelFlag},</if>
+            <if test="couponRemark != null">coupon_remark = #{couponRemark},</if>
         </trim>
         where id = #{id}
     </update>
@@ -139,10 +228,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <delete id="deleteCouponInfoByIds" parameterType="String">
-        delete from coupon_info where id in 
+        delete from coupon_info where id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>
     </delete>
-    
-</mapper>
+
+</mapper>

+ 137 - 0
yijia-coupon/target/classes/mapper/coupon/CouponIssueMapper.xml

@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yijia.coupon.mapper.CouponIssueMapper">
+
+    <resultMap type="CouponIssue" id="CouponIssueResult">
+        <result property="id"    column="id"    />
+        <result property="issueName"    column="issue_name"    />
+        <result property="issueType"    column="issue_type"    />
+        <result property="discountThresholdAmt"    column="discount_threshold_amt"    />
+        <result property="status"    column="status"    />
+        <result property="stationId"    column="station_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="showId"    column="show_id"    />
+        <result property="appointedDays"    column="appointed_days" />
+        <result property="cycleDays"    column="cycle_days" />
+        <result property="availableControl"    column="available_control" />
+        <result property="giveCount"    column="give_count" />
+        <result property="giveLimit"    column="give_limit" />
+        <result property="issueRemark"    column="issue_remark" />
+    </resultMap>
+
+    <sql id="selectCouponIssueVo">
+        select id,issue_name, issue_type, discount_threshold_amt, status, station_id, create_by, create_time, update_by, update_time, show_id,
+        appointed_days,cycle_days,available_control,give_count,give_limit,issue_remark
+         from coupon_issue
+    </sql>
+
+    <select id="selectCouponIssueList" parameterType="CouponIssue" resultMap="CouponIssueResult">
+        <include refid="selectCouponIssueVo"/>
+        <where>
+            <if test="issueName != null  and issueName != ''"> and issue_name like concat('%', #{issueName}, '%')</if>
+            <if test="issueType != null  and issueType != ''"> and issue_type = #{issueType}</if>
+            <if test="discountThresholdAmt != null "> and discount_threshold_amt = #{discountThresholdAmt}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+            <if test="stationId != null "> and station_id = #{stationId}</if>
+            <if test="showId != null  and showId != ''"> and show_id = #{showId}</if>
+            <if test="appointedDays != null  and appointedDays != ''"> and appointed_days = #{appointedDays}</if>
+            <if test="cycleDays != null  and cycleDays != ''"> and cycle_days = #{cycleDays}</if>
+            <if test="availableControl != null  and availableControl != ''"> and available_control = #{availableControl}</if>
+            <if test="giveCount != null  and giveCount != ''"> and give_count = #{giveCount}</if>
+            <if test="giveLimit != null  and giveLimit != ''"> and give_limit = #{giveLimit}</if>
+            <if test="issueRemark != null  and issueRemark != ''"> and issue_remark like concat('%', #{issueRemark}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(create_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
+        </where>
+        order by status desc , create_time desc
+    </select>
+
+    <select id="selectCouponIssueById" parameterType="String" resultMap="CouponIssueResult">
+        <include refid="selectCouponIssueVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCouponIssue" parameterType="CouponIssue" >
+        insert into coupon_issue(
+        <if test="id != null">id,</if>
+        <if test="issueName != null">issue_name,</if>
+        <if test="issueType != null">issue_type,</if>
+        <if test="discountThresholdAmt != null">discount_threshold_amt,</if>
+        <if test="status != null">status,</if>
+        <if test="stationId != null">station_id,</if>
+        <if test="createBy != null">create_by,</if>
+        <if test="createTime != null">create_time,</if>
+        <if test="updateBy != null">update_by,</if>
+        <if test="updateTime != null">update_time,</if>
+        <if test="showId != null">show_id,</if>
+        <if test="appointedDays != null">appointed_days,</if>
+        <if test="cycleDays != null">cycle_days,</if>
+        <if test="availableControl != null">available_control,</if>
+        <if test="giveCount != null">give_count,</if>
+        <if test="giveLimit != null">give_limit,</if>
+        <if test="issueRemark != null">issue_remark</if>
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="issueName != null">#{issueName},</if>
+        <if test="issueType != null">#{issueType},</if>
+        <if test="discountThresholdAmt != null">#{discountThresholdAmt},</if>
+        <if test="status != null">#{status},</if>
+        <if test="stationId != null">#{stationId},</if>
+        <if test="createBy != null">#{createBy},</if>
+        <if test="createTime != null">#{createTime},</if>
+        <if test="updateBy != null">#{updateBy},</if>
+        <if test="updateTime != null">#{updateTime},</if>
+        <if test="showId != null">#{showId},</if>
+        <if test="appointedDays != null">#{appointedDays},</if>
+        <if test="cycleDays != null">#{cycleDays},</if>
+        <if test="availableControl != null">#{availableControl},</if>
+        <if test="giveCount != null">#{giveCount},</if>
+        <if test="giveLimit != null">#{giveLimit},</if>
+        <if test="issueRemark != null">#{issueRemark}</if>
+        )
+    </insert>
+
+    <update id="updateCouponIssue" parameterType="CouponIssue">
+        update coupon_issue
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="issueName != null">issue_name = #{issueName},</if>
+            <if test="issueType != null">issue_type = #{issueType},</if>
+            <if test="discountThresholdAmt != null">discount_threshold_amt = #{discountThresholdAmt},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="stationId != null">station_id = #{stationId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="showId != null">show_id = #{showId},</if>
+            <if test="appointedDays != null">appointed_days = #{appointedDays},</if>
+            <if test="cycleDays != null">cycle_days = #{cycleDays},</if>
+            <if test="availableControl != null">available_control = #{availableControl},</if>
+            <if test="giveCount != null">give_count = #{giveCount},</if>
+            <if test="giveLimit != null">give_limit = #{giveLimit},</if>
+            <if test="issueRemark != null">issue_remark = #{issueRemark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCouponIssueById" parameterType="Integer">
+        delete from coupon_issue where id = #{id}
+    </delete>
+
+    <delete id="deleteCouponIssueByIds" parameterType="String">
+        delete from coupon_issue where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 87 - 0
yijia-coupon/target/classes/mapper/coupon/CouponIssueRelationMapper.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yijia.coupon.mapper.CouponIssueRelationMapper">
+
+    <resultMap type="CouponIssueRelation" id="CouponIssueRelationResult">
+        <result property="id"    column="id"    />
+        <result property="issueId"    column="issue_id"    />
+        <result property="couponId"    column="coupon_id"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time" />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"  />
+    </resultMap>
+
+    <sql id="selectCouponIssueRelationVo">
+        select id, issue_id, coupon_id, create_by, create_time, update_by, update_time from coupon_issue_relation
+    </sql>
+
+    <select id="selectCouponIssueRelationList" parameterType="CouponIssueRelation" resultMap="CouponIssueRelationResult">
+        <include refid="selectCouponIssueRelationVo"/>
+        <where>
+            <if test="issueId != null "> and issue_id = #{issueId}</if>
+            <if test="couponId != null "> and coupon_id = #{couponId}</if>
+        </where>
+    </select>
+
+    <select id="selectCouponIssueRelationById" parameterType="Long" resultMap="CouponIssueRelationResult">
+        <include refid="selectCouponIssueRelationVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCouponIssueRelation" parameterType="CouponIssueRelation">
+        insert into coupon_issue_relation
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="issueId != null">issue_id,</if>
+            <if test="couponId != null">coupon_id,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="issueId != null">#{issueId},</if>
+            <if test="couponId != null">#{couponId},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateCouponIssueRelation" parameterType="CouponIssueRelation">
+        update coupon_issue_relation
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="issueId != null">issue_id = #{issueId},</if>
+            <if test="couponId != null">coupon_id = #{couponId},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCouponIssueRelationById" parameterType="Long">
+        delete from coupon_issue_relation where id = #{id}
+    </delete>
+
+    <delete id="deleteCouponIssueRelation" parameterType="Long">
+        delete from coupon_issue_relation
+        <where>
+            <if test="issueId != null "> and issue_id = #{issueId}</if>
+            <if test="couponId != null "> and coupon_id = #{couponId}</if>
+        </where>
+    </delete>
+    <delete id="deleteCouponIssueRelationByIds" parameterType="String">
+        delete from coupon_issue_relation where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 124 - 0
yijia-coupon/target/classes/mapper/coupon/CouponUserMapper.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yijia.coupon.mapper.CouponUserMapper">
+
+    <resultMap type="CouponUser" id="CouponUserResult">
+        <result property="id"    column="id"    />
+        <result property="unionId"    column="union_id"    />
+        <result property="stationId"    column="station_id"    />
+        <result property="issueId"    column="issue_id"    />
+        <result property="couponId"    column="coupon_id"    />
+        <result property="couponIsUsed"    column="coupon_is_used"    />
+        <result property="couponIsEffective"    column="coupon_is_effective"    />
+        <result property="getCouponTime"    column="get_coupon_time"    />
+        <result property="couponEffectiveTime"    column="coupon_effective_time"    />
+        <result property="userId"    column="user_id"    />
+        <result property="mobilePhone"    column="mobile_phone"    />
+        <result property="blogNickName"    column="blog_nick_name"    />
+        <result property="couponName"    column="coupon_name"    />
+        <result property="issueName"    column="issue_name"    />
+        <result property="couponRemark"    column="coupon_remark"    />
+        <result property="issueRemark"    column="issue_remark"    />
+        <result property="couponType"    column="coupon_type"    />
+        <result property="couponAmt"    column="coupon_amt"    />
+        <result property="verificationUserPhone"    column="verification_user_phone"    />
+    </resultMap>
+
+
+    <sql id="selectCouponUserVo">
+           SELECT a.union_id,a.station_id,
+            a.issue_id,a.id,a.get_coupon_time,a.coupon_id,
+            a.coupon_is_used,a.coupon_is_effective,a.coupon_effective_time,
+            b.coupon_name,c.issue_name,d.user_id,d.mobile_phone,d.blog_nick_name,
+            b.coupon_remark,c.issue_remark,b.coupon_type,b.coupon_amt,a.verification_user_phone
+            from  coupon_user a
+            left join coupon_info b on a.coupon_id=b.id
+            left join coupon_issue c  on  a.issue_id=c.id
+	        left  join app_user_info d  on a.union_id=d.union_id
+    </sql>
+
+    <select id="selectCouponUserList" parameterType="CouponUser" resultMap="CouponUserResult">
+        <include refid="selectCouponUserVo"/>
+        <where>
+            <if test="unionId != null "> and a.union_id = #{unionId}</if>
+            <if test="stationId != null  and stationId != ''">and a.station_id = #{stationId}</if>
+            <if test="issueId != null  and issueId != ''"> and a.issue_id = #{issueId}</if>
+            <if test="couponId != null "> and a.coupon_id = #{couponId}</if>
+            <if test="couponIsUsed != null  and couponIsUsed != '' "> and a.coupon_is_used = #{couponIsUsed}</if>
+            <if test="couponIsEffective != null  and couponIsEffective != ''">and a.coupon_is_effective = #{couponIsEffective}</if>
+            <if test="getCouponTime != null  and getCouponTime != ''"> and a.get_coupon_time = #{getCouponTime}</if>
+            <if test="couponEffectiveTime != null and couponEffectiveTime != ''"> and a.coupon_effective_time = #{couponEffectiveTime}</if>
+            <if test="verificationUserPhone != null and verificationUserPhone != ''"> and a.verification_user_phone like concat('%', #{verificationUserPhone}, '%')</if>
+            <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
+                AND date_format(a.get_coupon_time,'%y-%m-%d %H:%i:%s') &gt;= date_format(#{beginTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
+                AND date_format(a.get_coupon_time,'%y-%m-%d %H:%i:%s') &lt;= date_format(#{endTime},'%y-%m-%d %H:%i:%s')
+            </if>
+            <if test="stationIdList != null ">
+                and a.station_id in
+                <foreach item="item" index="index" collection="stationIdList"
+                         open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        order by a.id desc
+    </select>
+
+    <select id="selectCouponUserById" parameterType="Integer" resultMap="CouponUserResult">
+        <include refid="selectCouponUserVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertCouponUser" parameterType="CouponUser" useGeneratedKeys="true" keyProperty="id">
+        insert into coupon_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="unionId != null">union_id,</if>
+            <if test="stationId != null">station_id,</if>
+            <if test="issueId != null">issue_id,</if>
+            <if test="couponId != null">coupon_id,</if>
+            <if test="couponIsUsed != null">coupon_is_used,</if>
+            <if test="couponIsEffective != null">coupon_is_effective,</if>
+            <if test="couponEffectiveTime != null">coupon_effective_time,</if>
+            <if test="getCouponTime != null">get_coupon_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="unionId != null">#{unionId},</if>
+            <if test="stationId != null">#{stationId},</if>
+            <if test="issueId != null">#{issueId},</if>
+            <if test="couponId != null">#{couponId},</if>
+            <if test="couponIsUsed != null">#{couponIsUsed},</if>
+            <if test="couponIsEffective != null">#{couponIsEffective},</if>
+            <if test="couponEffectiveTime != null">#{couponEffectiveTime},</if>
+            <if test="getCouponTime != null">#{getCouponTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateCouponUser" parameterType="CouponUser">
+        update coupon_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="unionId != null">union_id = #{unionId},</if>
+            <if test="stationId != null">station_id = #{stationId},</if>
+            <if test="issueId != null">issue_id = #{issueId},</if>
+            <if test="couponId != null">coupon_id = #{couponId},</if>
+            <if test="couponIsUsed != null">coupon_is_used = #{couponIsUsed},</if>
+            <if test="couponIsEffective != null">couponEffectiveTime = #{couponIsEffective},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteCouponUserById" parameterType="Integer">
+        delete from coupon_user where id = #{id}
+    </delete>
+
+    <delete id="deleteCouponUserByIds" parameterType="String">
+        delete from coupon_user where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 1 - 1
yijia-coupon/target/maven-archiver/pom.properties

@@ -1,5 +1,5 @@
 #Generated by Maven
-#Fri May 28 17:18:30 CST 2021
+#Fri Sep 24 09:53:27 CST 2021
 version=1.0.1
 groupId=com.yijia
 artifactId=yijia-coupon

+ 18 - 2
yijia-coupon/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -1,5 +1,21 @@
-com\yijia\coupon\domain\CouponInfo.class
+com\yijia\coupon\controller\CouponIssueRelationController.class
+com\yijia\coupon\mapper\CouponUserMapper.class
+com\yijia\coupon\service\impl\CouponIssueRelationServiceImpl.class
+com\yijia\coupon\controller\CouponInfoController.class
 com\yijia\coupon\service\impl\CouponInfoServiceImpl.class
+com\yijia\coupon\domain\AppUserInfo.class
+com\yijia\coupon\domain\CouponIssueRelation.class
+com\yijia\coupon\service\ICouponUserService.class
+com\yijia\coupon\service\ICouponIssueService.class
+com\yijia\coupon\mapper\CouponIssueRelationMapper.class
+com\yijia\coupon\domain\CouponUser.class
+com\yijia\coupon\controller\CouponIssueController.class
+com\yijia\coupon\domain\CouponInfo.class
 com\yijia\coupon\service\ICouponInfoService.class
 com\yijia\coupon\mapper\CouponInfoMapper.class
-com\yijia\coupon\controller\CouponInfoController.class
+com\yijia\coupon\domain\CouponIssue.class
+com\yijia\coupon\service\ICouponIssueRelationService.class
+com\yijia\coupon\controller\CouponUserController.class
+com\yijia\coupon\mapper\CouponIssueMapper.class
+com\yijia\coupon\service\impl\CouponIssueServiceImpl.class
+com\yijia\coupon\service\impl\CouponUserServiceImpl.class

+ 21 - 5
yijia-coupon/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -1,5 +1,21 @@
-E:\SAAS-AFTEREND\yijia-coupon\src\main\java\com\yijia\coupon\service\impl\CouponInfoServiceImpl.java
-E:\SAAS-AFTEREND\yijia-coupon\src\main\java\com\yijia\coupon\controller\CouponInfoController.java
-E:\SAAS-AFTEREND\yijia-coupon\src\main\java\com\yijia\coupon\mapper\CouponInfoMapper.java
-E:\SAAS-AFTEREND\yijia-coupon\src\main\java\com\yijia\coupon\service\ICouponInfoService.java
-E:\SAAS-AFTEREND\yijia-coupon\src\main\java\com\yijia\coupon\domain\CouponInfo.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\domain\CouponUser.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\ICouponUserService.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\impl\CouponUserServiceImpl.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\mapper\CouponIssueMapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\impl\CouponIssueServiceImpl.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\domain\CouponIssueRelation.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\ICouponIssueService.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\impl\CouponInfoServiceImpl.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\controller\CouponIssueRelationController.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\mapper\CouponIssueRelationMapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\ICouponIssueRelationService.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\controller\CouponUserController.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\domain\CouponIssue.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\domain\CouponInfo.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\controller\CouponIssueController.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\controller\CouponInfoController.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\mapper\CouponInfoMapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\ICouponInfoService.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\mapper\CouponUserMapper.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\domain\AppUserInfo.java
+D:\java项目\SAAS-AFTEREND2\yijia-coupon\src\main\java\com\yijia\coupon\service\impl\CouponIssueRelationServiceImpl.java

BIN
yijia-coupon/target/yijia-coupon-1.0.1.jar


+ 8 - 0
yijia-customer/pom.xml

@@ -30,6 +30,14 @@
             <groupId>com.yijia</groupId>
             <artifactId>yijia-system</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.yijia</groupId>
+            <artifactId>yijia-coupon</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.yijia</groupId>
+            <artifactId>yijia-label</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

+ 153 - 0
yijia-customer/src/main/java/com/yijia/customer/controller/CardExcelImportController.java

@@ -0,0 +1,153 @@
+package com.yijia.customer.controller;
+
+
+import com.yijia.common.annotation.Log;
+import com.yijia.common.core.controller.BaseController;
+import com.yijia.common.core.domain.AjaxResult;
+import com.yijia.common.core.domain.entity.SysDept;
+import com.yijia.common.core.domain.model.LoginUser;
+import com.yijia.common.core.page.TableDataInfo;
+import com.yijia.common.enums.BusinessType;
+import com.yijia.common.utils.SecurityUtils;
+import com.yijia.common.utils.poi.ExcelUtil;
+import com.yijia.customer.domain.CardExcelImport;
+import com.yijia.customer.domain.CustomerCardUseRecord;
+import com.yijia.customer.service.ICardExcelImportService;
+import com.yijia.customer.service.ICustomerCardUseRecordService;
+import com.yijia.system.service.ISysDeptService;
+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 java.util.List;
+
+/**
+ * 导入excel信息Controller
+ *
+ * @author yijia
+ * @date 2021-05-18
+ */
+@RestController
+@RequestMapping("/customer/cardImport")
+public class CardExcelImportController extends BaseController
+{
+    @Autowired
+    private ICardExcelImportService cardExcelImportService;
+
+    @Autowired
+    private ISysDeptService sysDeptService;
+
+
+
+    /**
+     *  导入excel的客户信息
+     *
+     * @param id 客户信息的
+     * @return 客户电子会员卡充值消费记录
+     */
+    @GetMapping(value = "/{id}")
+    public AjaxResult selectCardExcelImportById(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success( cardExcelImportService.selectCardExcelImportById(id));
+    }
+
+    /**
+     * 查询导入excel信息
+     *
+     * @param cardExcelImport  条件
+     * @return 客户电子会员卡充值消费记录
+     */
+    @GetMapping("/list")
+    public TableDataInfo selectCardExcelImportList(CardExcelImport  cardExcelImport)
+    {
+        startPage();
+        List<CardExcelImport> recordList = cardExcelImportService.selectCardExcelImportList(cardExcelImport);
+        return getDataTable(recordList);
+    }
+
+    /**
+     * 下载模板
+     */
+
+    @GetMapping("/importTemplate")
+    @ResponseBody
+    public AjaxResult importTemplate()
+    {
+        ExcelUtil<CardExcelImport> util = new ExcelUtil<CardExcelImport>(CardExcelImport.class);
+        return util.importTemplateExcel("学生数据");
+    }
+
+    /**
+     * 导入
+     */
+    @PostMapping("/importFile")
+    @ResponseBody
+    public AjaxResult importCardExcelFile(MultipartFile file) throws Exception
+    {
+        int mm=0;
+        ExcelUtil<CardExcelImport> util = new ExcelUtil<CardExcelImport>(CardExcelImport.class);
+        List<CardExcelImport> studentList = util.importExcel(file.getInputStream());
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        String message = cardExcelImportService.importData(studentList,loginUser.getUser().getDeptId());
+        return AjaxResult.success(message);
+    }
+
+
+    /**
+     * 导入list信息
+     */
+    @PostMapping("/importCardExcel")
+    @ResponseBody
+    public AjaxResult importCardExcel( @RequestBody List<CardExcelImport> cardExcelImports)
+    {
+
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+
+        String message = cardExcelImportService.importData(cardExcelImports,loginUser.getUser().getDeptId() );
+        return AjaxResult.success(message);
+    }
+    /**
+     * 新增导入的信息
+     *
+     * @param cardExcelImport 新增的excel信息
+     * @return 结果
+     */
+    @Log(title = "新增导入信息", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult insertCardExcelImport(CardExcelImport cardExcelImport)
+    {
+        return toAjax( cardExcelImportService.insertCardExcelImport(cardExcelImport));
+    }
+
+    /**
+     * 修改导入的excel信息
+     *
+     * @param cardExcelImport 修改的导入客户信息
+     * @return 结果
+     */
+    @Log(title = "修改导入信息", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult updateCardExcelImport(CardExcelImport cardExcelImport)
+    {
+        return toAjax( cardExcelImportService.updateCardExcelImport(cardExcelImport));
+    }
+
+    /**
+     * 批量删除客户电子会员卡充值消费记录
+     *
+     * @param ids 需要删除的客户电子会员卡充值消费记录ID
+     * @return 结果
+     */
+    @Log(title = "批量删除导入的信息", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult deleteCardExcelImportByIds(Long[] ids)
+    {
+        return toAjax( cardExcelImportService.deleteCardExcelImportByIds(ids));
+    }
+
+
+
+
+}

+ 15 - 0
yijia-customer/src/main/java/com/yijia/customer/controller/CustomerCardUseRecordController.java

@@ -72,6 +72,21 @@ public class CustomerCardUseRecordController extends BaseController
         customerCardUseRecord.setStatus("1");
         return AjaxResult.success(customerCardUseRecordService.listCZXFData(customerCardUseRecord));
     }
+
+    /**
+     * 查询客户充值/消费记录汇总 (包括已经退款的)
+     */
+    @GetMapping(value = "/listAllCZXFData")
+    public AjaxResult listAllCZXFData(CustomerCardUseRecord customerCardUseRecord)
+    {
+        List<String> list = sysDeptService.levelDeptList(customerCardUseRecord.getLevelId());
+        if(list!=null && list.size()>0){
+            customerCardUseRecord.setStationIdList(list);
+            customerCardUseRecord.setStationId(null);
+        }
+        customerCardUseRecord.setStatus("1");
+        return AjaxResult.success(customerCardUseRecordService.listAllCZXFData(customerCardUseRecord));
+    }
     /**
      * 导出客户电子会员卡充值消费记录列表
      */

+ 4 - 0
yijia-customer/src/main/java/com/yijia/customer/controller/CustomerElectronicCardController.java

@@ -161,6 +161,7 @@ public class CustomerElectronicCardController extends BaseController
         return AjaxResult.success(customerElectronicCardService.listHYData(customerElectronicCard));
     }
 
+
     /**
      * 查询电子会员数据
      */
@@ -174,4 +175,7 @@ public class CustomerElectronicCardController extends BaseController
         }
         return AjaxResult.success(customerElectronicCardService.listJRHYData(customerElectronicCard));
     }
+
+
+
 }

+ 16 - 0
yijia-customer/src/main/java/com/yijia/customer/controller/CustomerGradeSettingController.java

@@ -60,6 +60,22 @@ public class CustomerGradeSettingController extends BaseController
         return getDataTable(settingList);
     }
 
+
+
+    /**
+     * 查询当前登录人员的等级
+     */
+    @GetMapping("/listByLogin")
+    public TableDataInfo listByLogin()
+    {
+        LoginUser currentUser = SecurityUtils.getLoginUser();
+        CustomerGradeSetting customerGradeSetting=new CustomerGradeSetting();
+        customerGradeSetting.setStationId(currentUser.getUser().getDeptId());
+        customerGradeSetting.setDelFlag("0");
+        List<CustomerGradeSetting> settingList = customerGradeSettingService.selectCustomerGradeSettingList(customerGradeSetting);
+        return getDataTable(settingList);
+    }
+
     /**
      * 导出客户优惠等级设置列表
      */

+ 160 - 0
yijia-customer/src/main/java/com/yijia/customer/domain/CardExcelImport.java

@@ -0,0 +1,160 @@
+package com.yijia.customer.domain;
+
+import com.yijia.common.annotation.Excel;
+import com.yijia.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public class CardExcelImport extends BaseEntity
+{
+
+    private static final long serialVersionUID = 1L;
+
+    /** 导入excel的id */
+    private Long excelId;
+
+    /** 剩余可用余额 */
+    @Excel(name = "可用的余额")
+    private BigDecimal balance;
+
+    /** 剩余积分的值*/
+    @Excel(name = "积分余额")
+    private Integer integral;
+
+    /** 用户手机号*/
+    @Excel(name = "用户手机号")
+    private String phoneNumber;
+
+    /** 电子卡类型*/
+    @Excel(name = "电子卡类型")
+    private String cardType;
+
+    /** 油站id*/
+    @Excel(name = "油站id")
+    private Integer stationId;
+
+    /** 会员等级*/
+    @Excel(name = "会员等级")
+    private String memberGrade;
+
+    /** 油站名称*/
+    private String stationName;
+
+    /**油站信息的list*/
+    private List<String> stationList;
+
+    /** 标签id*/
+    @Excel(name = "标签的id")
+    private Integer labelId;
+
+    /** 发放方式*/
+    @Excel(name = "发放方式的id")
+    private String couponIssueId;
+
+    public Integer getLabelId() {
+        return labelId;
+    }
+
+    public void setLabelId(Integer labelId) {
+        this.labelId = labelId;
+    }
+
+    public String getCouponIssueId() {
+        return couponIssueId;
+    }
+
+    public void setCouponIssueId(String couponIssueId) {
+        this.couponIssueId = couponIssueId;
+    }
+
+    public List<String> getStationList() {
+        return stationList;
+    }
+
+    public void setStationList(List<String> stationList) {
+        this.stationList = stationList;
+    }
+
+    public String getStationName() {
+        return stationName;
+    }
+
+    public void setStationName(String stationName) {
+        this.stationName = stationName;
+    }
+
+    public Long getExcelId() {
+        return excelId;
+    }
+
+    public void setExcelId(Long excelId) {
+        this.excelId = excelId;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public String getPhoneNumber() {
+        return phoneNumber;
+    }
+
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getCardType() {
+        return cardType;
+    }
+
+    public void setCardType(String cardType) {
+        this.cardType = cardType;
+    }
+
+    public Integer getStationId() {
+        return stationId;
+    }
+
+    public void setStationId(Integer stationId) {
+        this.stationId = stationId;
+    }
+
+    public String getMemberGrade() {
+        return memberGrade;
+    }
+
+    public void setMemberGrade(String memberGrade) {
+        this.memberGrade = memberGrade;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("excelId", getExcelId())
+                .append("balance", getBalance())
+                .append("integral", getIntegral())
+                .append("phoneNumber", getPhoneNumber())
+                .append("cardType", getCardType())
+                .append("stationId", getStationId())
+                .append("memberGrade", getMemberGrade())
+                .append("labelId", getLabelId())
+                .append("couponIssueId", getCouponIssueId())
+                .toString();
+    }
+
+}

+ 79 - 0
yijia-customer/src/main/java/com/yijia/customer/mapper/CardExcelImportMapper.java

@@ -0,0 +1,79 @@
+package com.yijia.customer.mapper;
+
+import com.yijia.customer.domain.CardExcelImport;
+import com.yijia.customer.domain.CustomerCardUseRecord;
+
+import java.util.List;
+
+/**
+ * 客户电子会员卡充值消费记录Mapper接口
+ *
+ * @author yijia
+ * @date 2021-05-18
+ */
+public interface CardExcelImportMapper
+{
+    /**
+     * 查询导入的信息
+     *
+     * @param id 导入excel生成的id
+     * @return 导入的会员信息
+     */
+    public CardExcelImport selectCardExcelImportById(Long id);
+
+
+
+
+    /**
+     * 查询导入的会员信息
+     *
+     * @param cardExcelImport 导入的客户信息
+     * @return 导入的客户信息
+     */
+    public List<CardExcelImport> selectCardExcelImportList(CardExcelImport  cardExcelImport);
+
+    /**
+     * 校验手机号和油站信息查重
+     *
+     * @param cardExcelImport 校验手机号参数
+     * @return 手机号的参数
+     */
+    public List<CardExcelImport> selectCardExcelImportByPhoneStation(CardExcelImport  cardExcelImport);
+
+    /**
+     * 增加导入客户信息
+     *
+     * @param cardExcelImport 导入客户的信息
+     * @return 新增结果
+     */
+    public int insertCardExcelImport(CardExcelImport cardExcelImport);
+
+    /**
+     * 修改客户电子会员卡充值消费记录
+     *
+     * @param cardExcelImport 客户电子会员卡充值消费记录
+     * @return 结果
+     */
+    public int updateCardExcelImport(CardExcelImport cardExcelImport);
+
+    /**
+     * 删除导入的客户信息
+     *
+     * @param id 导入客户信息的id
+     * @return 结果
+     */
+    public int deleteCardExcelImportById(Long id);
+
+    /**
+     * 批量删除客户电子会员卡充值消费记录
+     *
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteCardExcelImportByIds(Long[] ids);
+
+
+
+
+
+}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff