Browse Source

Merge branch 'refs/heads/Huang' into dev

# Conflicts:
#	src/main/java/com/example/demo/controller/ConsumeController.java
#	src/main/java/com/example/demo/controller/RechargeController.java
#	src/main/resources/application.yml
dev
huangqizhen 3 weeks ago
parent
commit
e2dd14cfdd
  1. 44
      pom.xml
  2. 9
      src/main/java/com/example/demo/DemoApplication.java
  3. 4
      src/main/java/com/example/demo/Util/BaseDES.java
  4. 100
      src/main/java/com/example/demo/Util/BaseDES2.java
  5. 107
      src/main/java/com/example/demo/Util/DESGB.java
  6. 227
      src/main/java/com/example/demo/Util/GoldTistV2.java
  7. 2
      src/main/java/com/example/demo/Util/JWTUtil.java
  8. 2
      src/main/java/com/example/demo/Util/RequestWrapper.java
  9. 33
      src/main/java/com/example/demo/config/CacheConfig.java
  10. 50
      src/main/java/com/example/demo/config/DBSrcArticle.java
  11. 62
      src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java
  12. 60
      src/main/java/com/example/demo/config/Mysql2DataSourceConfig.java
  13. 46
      src/main/java/com/example/demo/config/Mysql3DataSourceConfig.java
  14. 1
      src/main/java/com/example/demo/config/RedisConfig.java
  15. 17
      src/main/java/com/example/demo/config/WebClientConfig.java
  16. 1
      src/main/java/com/example/demo/config/WebConfig.java
  17. 43
      src/main/java/com/example/demo/config/dBSrcUser.java
  18. 2
      src/main/java/com/example/demo/controller/ActivityController.java
  19. 41
      src/main/java/com/example/demo/controller/AdminController.java
  20. 28
      src/main/java/com/example/demo/controller/AuditController.java
  21. 35
      src/main/java/com/example/demo/controller/ConsumeController.java
  22. 18
      src/main/java/com/example/demo/controller/DetailYController.java
  23. 117
      src/main/java/com/example/demo/controller/DouController.java
  24. 58
      src/main/java/com/example/demo/controller/OneController.java
  25. 24
      src/main/java/com/example/demo/controller/PermissionController.java
  26. 9
      src/main/java/com/example/demo/controller/ProductController.java
  27. 33
      src/main/java/com/example/demo/controller/RechargeController.java
  28. 9
      src/main/java/com/example/demo/controller/RefundController.java
  29. 2
      src/main/java/com/example/demo/controller/StatisticsController.java
  30. 13
      src/main/java/com/example/demo/controller/UserController.java
  31. 29
      src/main/java/com/example/demo/domain/dou/Balance.java
  32. 25
      src/main/java/com/example/demo/domain/dou/Member.java
  33. 44
      src/main/java/com/example/demo/domain/dou/Pay.java
  34. 30
      src/main/java/com/example/demo/domain/dou/RechargeTotal.java
  35. 26
      src/main/java/com/example/demo/domain/dou/Records.java
  36. 17
      src/main/java/com/example/demo/domain/dou/Searchinfo.java
  37. 41
      src/main/java/com/example/demo/domain/dou/Spend.java
  38. 37
      src/main/java/com/example/demo/domain/dou/SpendTotal.java
  39. 28
      src/main/java/com/example/demo/domain/dou/Total.java
  40. 28
      src/main/java/com/example/demo/domain/dou/Yve.java
  41. 17
      src/main/java/com/example/demo/domain/dou/YveTotal.java
  42. 7
      src/main/java/com/example/demo/domain/entity/Activity.java
  43. 126
      src/main/java/com/example/demo/domain/entity/Admin.java
  44. 12
      src/main/java/com/example/demo/domain/entity/Audit.java
  45. 8
      src/main/java/com/example/demo/domain/entity/Detail.java
  46. 19
      src/main/java/com/example/demo/domain/entity/DetailY.java
  47. 24
      src/main/java/com/example/demo/domain/entity/Index.java
  48. 14
      src/main/java/com/example/demo/domain/entity/Permission.java
  49. 12
      src/main/java/com/example/demo/domain/entity/Product.java
  50. 14
      src/main/java/com/example/demo/domain/entity/Rate.java
  51. 14
      src/main/java/com/example/demo/domain/entity/Recharge.java
  52. 7
      src/main/java/com/example/demo/domain/entity/User.java
  53. 10
      src/main/java/com/example/demo/domain/entity/UserDetailExport.java
  54. 8
      src/main/java/com/example/demo/domain/entity/UserGold.java
  55. 15
      src/main/java/com/example/demo/domain/vo/ConsumeDetail.java
  56. 17
      src/main/java/com/example/demo/domain/vo/DetailExport.java
  57. 5
      src/main/java/com/example/demo/domain/vo/DetailVo.java
  58. 4
      src/main/java/com/example/demo/domain/vo/DetailYVo.java
  59. 17
      src/main/java/com/example/demo/domain/vo/DetailYgold.java
  60. 12
      src/main/java/com/example/demo/domain/vo/ERP.java
  61. 7
      src/main/java/com/example/demo/domain/vo/Meium.java
  62. 7
      src/main/java/com/example/demo/domain/vo/Page.java
  63. 37
      src/main/java/com/example/demo/domain/vo/RechargeA.java
  64. 23
      src/main/java/com/example/demo/domain/vo/RechargeVo.java
  65. 45
      src/main/java/com/example/demo/domain/vo/RefundA.java
  66. 5
      src/main/java/com/example/demo/domain/vo/Result.java
  67. 4
      src/main/java/com/example/demo/domain/vo/Statistics.java
  68. 4
      src/main/java/com/example/demo/domain/vo/Statisticss.java
  69. 13
      src/main/java/com/example/demo/domain/vo/SumCoin.java
  70. 30
      src/main/java/com/example/demo/domain/vo/SumConsume.java
  71. 30
      src/main/java/com/example/demo/domain/vo/SumDetailY.java
  72. 33
      src/main/java/com/example/demo/domain/vo/Table.java
  73. 4
      src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java
  74. 6
      src/main/java/com/example/demo/domain/vo/UserVo.java
  75. 24
      src/main/java/com/example/demo/domain/work/One.java
  76. 24
      src/main/java/com/example/demo/domain/work/Three.java
  77. 22
      src/main/java/com/example/demo/domain/work/Two.java
  78. 50
      src/main/java/com/example/demo/mapper/AdminMapper.java
  79. 62
      src/main/java/com/example/demo/mapper/ConsumeMapper.java
  80. 184
      src/main/java/com/example/demo/mapper/DetailYMapper.java
  81. 16
      src/main/java/com/example/demo/mapper/OneMapper.java
  82. 15
      src/main/java/com/example/demo/mapper/PermissionMapper.java
  83. 6
      src/main/java/com/example/demo/mapper/ProductMapper.java
  84. 77
      src/main/java/com/example/demo/mapper/RechargeMapper.java
  85. 62
      src/main/java/com/example/demo/mapper/RefundMapper.java
  86. 350
      src/main/java/com/example/demo/mapper/StatisticsMapper.java
  87. 19
      src/main/java/com/example/demo/mapper/UserMapper.java
  88. 23
      src/main/java/com/example/demo/mapperLink/DouMapper.java
  89. 16
      src/main/java/com/example/demo/mapperPay/PayMapper.java
  90. 2
      src/main/java/com/example/demo/security/SecurityConfig.java
  91. 3
      src/main/java/com/example/demo/security/TokenFilter.java
  92. 44
      src/main/java/com/example/demo/security/UploadFilter.java
  93. 1
      src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java
  94. 60
      src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java
  95. 21
      src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java
  96. 52
      src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java
  97. 1
      src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java
  98. 34
      src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java
  99. 193
      src/main/java/com/example/demo/serviceImpl/DouServiceImpl.java
  100. 31
      src/main/java/com/example/demo/serviceImpl/OneServiceImpl.java

44
pom.xml

@ -11,6 +11,7 @@
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.2-SNAPSHOT</version>
<!-- <version>0.0.3-SNAPSHOT</version>-->
<name>demo</name>
<description>demo</description>
@ -25,10 +26,16 @@
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.kafka</groupId>-->
<!-- <artifactId>spring-kafka</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>com.101tec</groupId>-->
@ -40,6 +47,18 @@
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- 多数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
@ -50,7 +69,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>3.3.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@ -65,6 +84,12 @@
<artifactId>commons-pool2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-data-elasticsearch</artifactId>-->
@ -90,6 +115,11 @@
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version> <!-- 确保是最新稳定版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
@ -142,6 +172,14 @@
</configuration>
</plugin>
</plugins>
<!--<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>-->
</build>
</project>

9
src/main/java/com/example/demo/DemoApplication.java

@ -1,11 +1,18 @@
package com.example.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication
@EnableCaching
@SpringBootApplication
@MapperScan(basePackages = "com.example.demo.mapper", sqlSessionTemplateRef = "mysql1SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapperLink", sqlSessionTemplateRef = "mysql2SqlSessionTemplate")
@MapperScan(basePackages = "com.example.demo.mapperPay", sqlSessionTemplateRef = "mysql3SqlSessionTemplate")
public class DemoApplication {
public static void main(String[] args) {

4
src/main/java/com/example/demo/Util/BaseDES.java

@ -4,6 +4,8 @@ package com.example.demo.Util;
import javax.crypto.Cipher;
import java.security.*;
import static org.apache.poi.poifs.crypt.CipherAlgorithm.des;
public class BaseDES {
private static String strDefaultKey = "98hltleg";
@ -91,6 +93,8 @@ public class BaseDES {
public static void main(String args[]) {
try {
BaseDES d = new BaseDES();
String encryptedText = d.encrypt("94616995");
System.out.println("加密结果:" + encryptedText);
System.out.println("加密字符串:90005179》"+d.encrypt("90005179"));
System.out.println("解密字符串:6aaef5277c050f7ae383f816651098ff》"+d.decrypt("6aaef5277c050f7ae383f816651098ff"));
} catch (Exception e) {

100
src/main/java/com/example/demo/Util/BaseDES2.java

@ -0,0 +1,100 @@
package com.example.demo.Util;
import javax.crypto.Cipher;
import java.security.Key;
public class BaseDES2 {
private static String strDefaultKey = "gold20@)";
private Cipher encryptCipher = null;
private Cipher decryptCipher = null;
public static String byteArr2HexStr(byte[] arrB) throws Exception {
int iLen = arrB.length;
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = arrB[i];
while (intTmp < 0) {
intTmp = intTmp + 256;
}
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}
public static byte[] hexStr2ByteArr(String strIn) {
byte[] arrB = strIn.getBytes();
int iLen = arrB.length;
byte[] arrOut = new byte[iLen / 2];
for (int i = 0; i < iLen; i = i + 2) {
String strTmp = new String(arrB, i, 2);
arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);
}
return arrOut;
}
public BaseDES2() throws Exception {
this(strDefaultKey);
}
public BaseDES2(String strKey) throws Exception {
Key key = getKey(strKey.getBytes());
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
}
public byte[] encrypt(byte[] arrB) throws Exception {
return encryptCipher.doFinal(arrB);
}
public String encrypt(String strIn) throws Exception {
return byteArr2HexStr(encrypt(strIn.getBytes()));
}
public byte[] decrypt(byte[] arrB) throws Exception {
return decryptCipher.doFinal(arrB);
}
public String decrypt(String strIn) throws Exception {
return new String(decrypt(hexStr2ByteArr(strIn)));
}
private Key getKey(byte[] arrBTmp) {
byte[] arrB = new byte[8];
for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
arrB[i] = arrBTmp[i];
}
Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
return key;
}
public static void main(String args[]) {
try {
BaseDES2 d = new BaseDES2();
String encryptedText = d.encrypt("30003761");
System.out.println("加密结果:" + encryptedText);
} catch (Exception e) {
e.printStackTrace();
}
}
}

107
src/main/java/com/example/demo/Util/DESGB.java

@ -0,0 +1,107 @@
package com.example.demo.Util;
import java.security.*;
import javax.crypto.*;
public class DESGB {
private static String strDefaultKey = "testhlsoft";
private Cipher encryptCipher = null;
private Cipher decryptCipher = null;
public static String byteArr2HexStr(byte[] arrB) throws Exception {
int iLen = arrB.length;
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = arrB[i];
while (intTmp < 0) {
intTmp = intTmp + 256;
}
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}
public static byte[] hexStr2ByteArr(String strIn) throws Exception {
byte[] arrB = strIn.getBytes();
int iLen = arrB.length;
byte[] arrOut = new byte[iLen / 2];
for (int i = 0; i < iLen; i = i + 2) {
String strTmp = new String(arrB, i, 2);
arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);
}
return arrOut;
}
public DESGB() throws Exception {
this(strDefaultKey);
}
public DESGB(String strKey) throws Exception {
Key key = getKey(strKey.getBytes());
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
}
public byte[] encrypt(byte[] arrB) throws Exception {
return encryptCipher.doFinal(arrB);
}
public String encrypt(String strIn) throws Exception {
return byteArr2HexStr(encrypt(strIn.getBytes()));
}
public byte[] decrypt(byte[] arrB) throws Exception {
return decryptCipher.doFinal(arrB);
}
/**
* @功能描述: 解决中文乱码问题
* @开发人员: 弘历研发部 刘志红 2024-1-28上午11:27:38 创建
* @参数介绍: @param strIn
* @参数介绍: @return
* @参数介绍: @throws Exception
* @返回数据: String
* @版本编号: V1.0
*/
public String decrypt(String strIn) throws Exception {
return new String(decrypt(hexStr2ByteArr(strIn)),"UTF-8");
}
private Key getKey(byte[] arrBTmp) throws Exception {
byte[] arrB = new byte[8];
for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
arrB[i] = arrBTmp[i];
}
Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
return key;
}
public static void main(String args[]) {
try {
DESGB d = new DESGB();
System.out.println(d.decrypt("d19f27abb3486c689304600788c604e700abf96d6bd1c9ca"));
} catch (Exception e) {
e.printStackTrace();
}
}
}

227
src/main/java/com/example/demo/Util/GoldTistV2.java

@ -0,0 +1,227 @@
package com.example.demo.Util;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
* @开发目的: 测试使用
* @开发人员: 弘历研发部 刘志红
* @开发时间: 2024-1-26下午1:42:18
* @软件版本: V1.0
*/
public class GoldTistV2 {
private static String url = "http://hcm.rzfwq.com/hwhcnewA/";
/**
* <pre>
* 发送不带参数的GET的HTTP请求
* </pre>
*
* @param reqUrl HTTP请求URL
* @return HTTP响应的字符串
*/
public static String doGet(String reqUrl) {
HttpURLConnection url_con = null;
String responseContent = null;
try {
StringBuffer params = new StringBuffer();
String queryUrl = reqUrl;
int paramIndex = reqUrl.indexOf("?");
if (paramIndex > 0) {
queryUrl = reqUrl.substring(0, paramIndex);
String parameters = reqUrl.substring(paramIndex + 1, reqUrl.length());
String[] paramArray = parameters.split("&");
for (int i = 0; i < paramArray.length; i++) {
String string = paramArray[i];
int index = string.indexOf("=");
if (index > 0) {
String parameter = string.substring(0, index);
String value = string.substring(index + 1, string.length());
params.append(parameter);
params.append("=");
params.append(URLEncoder.encode(value, "UTF-8"));
params.append("&");
}
}
params = params.deleteCharAt(params.length() - 1);
}
URL url = new URL(queryUrl);
url_con = (HttpURLConnection) url.openConnection();
url_con.setRequestMethod("GET");
System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(500000));// 单位毫秒jdk1.4换成这个,连接超时
System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(500000)); // 单位毫秒jdk1.4换成这个,读操作超时
// url_con.setConnectTimeout(5000);//单位毫秒jdk
// 1.5换成这个,连接超时
// url_con.setReadTimeout(5000);//单位毫秒jdk 1.5换成这个,读操作超时
url_con.setDoOutput(true);
byte[] b = params.toString().getBytes();
url_con.getOutputStream().write(b, 0, b.length);
url_con.getOutputStream().flush();
url_con.getOutputStream().close();
InputStream in = url_con.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in, "UTF-8"));
String tempLine = rd.readLine();
StringBuffer temp = new StringBuffer();
String crlf = System.getProperty("line.separator");
while (tempLine != null) {
temp.append(tempLine);
temp.append(crlf);
tempLine = rd.readLine();
}
responseContent = temp.toString();
rd.close();
in.close();
}
catch (IOException e) {
e.printStackTrace();
}finally {
if (url_con != null) {
url_con.disconnect();
}
}
return responseContent;
}
/**
* 生成 MD5 签名
*
* @param params 待签名的参数数组
* @param secretKey 密钥
* @return 签名的 MD5 哈希值若出现异常则返回 null
*/
public static String generateSignature(String[] params, String secretKey) {
// 将参数数组转换为列表以便进行排序
List<String> paramList = new ArrayList<String>();
Collections.addAll(paramList, params);
// 对参数列表进行排序
Collections.sort(paramList);
// 拼接排序后的参数
StringBuilder paramString = new StringBuilder();
for (String param : paramList) {
paramString.append(param);
}
// 拼接密钥
paramString.append(secretKey);
try {
// 获取 MD5 消息摘要实例
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算摘要明确指定字符编码为 UTF-8
byte[] digest = md.digest(paramString.toString().getBytes("UTF-8"));
// 将字节数组转换为十六进制字符串
StringBuilder hexString = new StringBuilder();
for (byte b : digest) {
String hex = Integer.toHexString(0xFF & b);
if (hex.length() == 1) {
hexString.append('0');
}
hexString.append(hex);
}
return hexString.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
} catch (java.io.UnsupportedEncodingException e) {
e.printStackTrace();
return null;
}
}
/**
* @功能描述: 生成随机数
* @开发人员: 弘历研发部 刘志红 2024-1-25下午5:45:36 创建
* @参数介绍: @param len
* @参数介绍: @return
* @返回数据: String
* @版本编号: V1.0
*/
public static String RandomUid(int len){
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghjklmnpqrstuvwxyz23456789";
StringBuilder result = new StringBuilder();
Random rnd = new Random();
int strlen = characters.length();
while (result.length() < 8) { // length of the random string.
int index = (int) (rnd.nextFloat() * strlen);
result.append(characters.charAt(index));
}
return "JB"+result.toString();
}
/**
* 类型说明
*
55 免费金币 金币系统退商品
56 永久金币 金币系统退商品
57 任务金币 金币系统退商品
58 免费金币 金币系统退金币
59 任务金币 金币系统退金币
* @功能描述: 金币平台更新客户金币
* @开发人员: 弘历研发部 刘志红 2025-3-21下午1:58:13 创建
* @参数介绍: @param jwcode 账号
* @参数介绍: @param lx 类型
* @参数介绍: @param jbs 金币数量
* @参数介绍: @param remark 备注
* @参数介绍: @param yjjb 永久金币
* @参数介绍: @param czr 操作人
* @参数介绍: @param goodsname 商品名称
* @参数介绍: @return
* @返回数据: String 返回状态1加成功2减成功其他失败 -5 金币不足 -6 类型错误 -7签名错误
* @版本编号: V1.0
*/
public static String addCoinNew(String jwcode, int lx, double jbs,
String remark,double yjjb,String czr,String goodsname){
//查错误使用
String sjzfc = RandomUid(10);
String resp = "";
try {
DESGB desjbkc = new DESGB("Jbxt.205");
String sk = "jwcode="+jwcode+"&number="+jbs+"&uid="+sjzfc+"&remark="+
remark+"&czr="+czr+"&yjjb="+yjjb+"&czpt=4&goodsname="+goodsname+"&type="+lx;
System.out.println("签名前:"+sk);
String sign = generateSignature(sk.split("&"),"222251821eba7efab6d48e388b8f6baa");
sk = desjbkc.encrypt(new String(sk.getBytes(), "UTF-8"));
System.out.println(url+"goldUpdate_sign.gold?app=4&sk="+sk+"&sign="+sign);
resp = doGet(url+"goldUpdate_sign.gold?app=4&sk="+sk+"&sign="+sign);
}catch (Exception e){
System.out.println("加金币异常"+e.toString());
}
System.out.println(resp);
return resp;
}
public static void main(String[] args) throws Exception {
//调用demo
addCoinNew("94226013",64,1,"充1金币测试",0,"黄其振 ","文章11");
}
}

2
src/main/java/com/example/demo/Util/JWTUtil.java

@ -23,7 +23,7 @@ import java.util.UUID;
public class JWTUtil {
//有效期为
public static final Long JWT_TTL = 2*60 * 60 *1000L;// 60 * 60 *1000 一个小时
public static final Long JWT_TTL = 24*60 * 60 *1000L;// 60 * 60 *1000 一个小时
//设置 密钥
public static final String JWT_KEY = "bobzyh";

2
src/main/java/com/example/demo/Util/RequestWrapper.java

@ -26,7 +26,7 @@ public class RequestWrapper extends HttpServletRequestWrapper {
// 将body数据存储起来
String bodyStr = getBodyString(request);
body = bodyStr.getBytes(Charset.defaultCharset());
System.out.println(new String(body, Charset.defaultCharset()) + "+**+*+*+*++*+*+*+");
}

33
src/main/java/com/example/demo/config/CacheConfig.java

@ -0,0 +1,33 @@
package com.example.demo.config;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.concurrent.ConcurrentMapCache;
import org.springframework.cache.support.SimpleCacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import java.time.Duration;
import java.util.Arrays;
@Configuration
@EnableCaching
public class CacheConfig {
@Bean
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofHours(1)) // 设置默认过期时间为 1 小时
.disableCachingNullValues(); // 禁用空值缓存
return RedisCacheManager.builder(redisConnectionFactory)
.cacheDefaults(config)
.withCacheConfiguration("statistics", config) // 注册缓存名称
.withCacheConfiguration("recharge", config) // 注册缓存名称
.withCacheConfiguration("consume", config) // 注册缓存名称
.build();
}
}

50
src/main/java/com/example/demo/config/DBSrcArticle.java

@ -0,0 +1,50 @@
//package com.example.demo.config;
//
//import com.zaxxer.hikari.HikariDataSource;
//import org.apache.ibatis.session.SqlSessionFactory;
//import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.SqlSessionFactoryBean; // 正确导入SqlSessionFactoryBean
//import org.mybatis.spring.annotation.MapperScan;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.jdbc.DataSourceBuilder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//
//import javax.sql.DataSource;
//
//
//
///**
// * 数据库leadnews_article配置
// */
//@Configuration
//@MapperScan(basePackages = {"com.example.demo.mapper"}, sqlSessionFactoryRef = "sqlSessionFactoryArticle")
//public class DBSrcArticle {
//
// @Bean(name = "mysql1DataSource")
// @Primary // 因为这是默认数据源因此标记为Primary
// @ConfigurationProperties(prefix = "spring.datasource.mysql1")
// public DataSource cmsDataSource() {
// HikariDataSource dataSource = DataSourceBuilder.create().type(HikariDataSource.class).build();
//// log.info("mysql1 DataSource initialized with pool-name: {}", dataSource.getPoolName());
// return dataSource;
// }
//
// @Bean(name = "mysql1SqlSessionFactory")
// @Primary // 默认SqlSessionFactory
// public SqlSessionFactory cmsSqlSessionFactory(@Qualifier("mysql1DataSource") DataSource dataSource) throws Exception {
// SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
// return sessionFactory.getObject();
// }
//
// @Bean(name = "mysql1SqlSessionTemplate")
// @Primary // 默认SqlSessionTemplate
// public SqlSessionTemplate cmsSqlSessionTemplate(@Qualifier("mysql1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
// return new SqlSessionTemplate(sqlSessionFactory);
// }
//}

62
src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java

@ -0,0 +1,62 @@
package com.example.demo.config;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Slf4j
@Configuration
public class Mysql1DataSourceConfig {
// @Bean(name = "mysql1DataSource")
//// @Primary
// public DataSource mysql1DataSource() {
// HikariDataSource dataSource = new HikariDataSource();
// dataSource.setJdbcUrl("jdbc:mysql://54.251.137.151:10701/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF-8");
// dataSource.setUsername("hwgold");
// dataSource.setPassword("AGX4Z3YMxiCG3GR2");
// dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
// dataSource.setMaximumPoolSize(10);
// dataSource.setPoolName("mysql1HikariCP");
// log.info("mysql1 DataSource initialized with pool-name: {}", dataSource.getPoolName());
// return dataSource;
// }
@Bean(name = "mysql1DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql1")
public DataSource mysql2DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql1SqlSessionFactory")
// @Primary
public SqlSessionFactory mysql1SqlSessionFactory(@Qualifier("mysql1DataSource") DataSource dataSource,
@Qualifier("globalConfiguration1") org.apache.ibatis.session.Configuration globalConfiguration1) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
sessionFactory.setConfiguration(globalConfiguration1);
return sessionFactory.getObject();
}
@Bean(name = "mysql1SqlSessionTemplate")
// @Primary
public SqlSessionTemplate mysql1SqlSessionTemplate(@Qualifier("mysql1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration.mysql1")
public org.apache.ibatis.session.Configuration globalConfiguration1() {
return new org.apache.ibatis.session.Configuration();
}
}

60
src/main/java/com/example/demo/config/Mysql2DataSourceConfig.java

@ -0,0 +1,60 @@
package com.example.demo.config;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Slf4j
@Configuration
public class Mysql2DataSourceConfig {
// @Bean(name = "mysql2DataSource")
// public DataSource mysql2DataSource() {
// HikariDataSource dataSource = new HikariDataSource();
// dataSource.setJdbcUrl("jdbc:mysql://39.101.133.168:3306/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&characterEncoding=UTF-8");
// dataSource.setUsername("hljw");
// dataSource.setPassword("5dmWCCKfEk3TTeyn");
// dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
// dataSource.setMaximumPoolSize(10);
// dataSource.setPoolName("mysql2HikariCP");
// log.info("mysql2 DataSource initialized with pool-name: {}", dataSource.getPoolName());
// return dataSource;
// }
// 定义名为 "spring.datasource.mysql2" DataSource Bean
@Bean(name = "mysql2DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql2")
public DataSource mysql2DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql2SqlSessionFactory")
public SqlSessionFactory mysql2SqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource,
@Qualifier("globalConfiguration2") org.apache.ibatis.session.Configuration globalConfiguration2) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapperLink/*.xml"));
sessionFactory.setConfiguration(globalConfiguration2);
return sessionFactory.getObject();
}
@Bean(name = "mysql2SqlSessionTemplate")
public SqlSessionTemplate mysql2SqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration.mysql2")
public org.apache.ibatis.session.Configuration globalConfiguration2() {
return new org.apache.ibatis.session.Configuration();
}
}

46
src/main/java/com/example/demo/config/Mysql3DataSourceConfig.java

@ -0,0 +1,46 @@
package com.example.demo.config;
import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Slf4j
@Configuration
public class Mysql3DataSourceConfig {
@Bean(name = "mysql3DataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql3")
public DataSource mysql3DataSource() {
return DataSourceBuilder.create().type(HikariDataSource.class).build();
}
@Bean(name = "mysql3SqlSessionFactory")
public SqlSessionFactory mysql3SqlSessionFactory(@Qualifier("mysql3DataSource") DataSource dataSource,
@Qualifier("globalConfiguration3") org.apache.ibatis.session.Configuration globalConfiguration3) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapperPay/*.xml"));
sessionFactory.setConfiguration(globalConfiguration3);
return sessionFactory.getObject();
}
@Bean(name = "mysql3SqlSessionTemplate")
public SqlSessionTemplate mysql3SqlSessionTemplate(@Qualifier("mysql3SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
@Bean
@ConfigurationProperties(prefix = "mybatis.configuration.mysql3")
public org.apache.ibatis.session.Configuration globalConfiguration3() {
return new org.apache.ibatis.session.Configuration();
}
}

1
src/main/java/com/example/demo/config/RedisConfig.java

@ -1,5 +1,6 @@
package com.example.demo.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.cache.CacheProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.annotation.EnableCaching;

17
src/main/java/com/example/demo/config/WebClientConfig.java

@ -0,0 +1,17 @@
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfig {
@Bean
public WebClient webClient() {
return WebClient.builder()
.baseUrl("http://hwapi.rzfwq.com")
.build();
}
}

1
src/main/java/com/example/demo/config/WebConfig.java

@ -6,7 +6,6 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configurable
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${upload.path}")

43
src/main/java/com/example/demo/config/dBSrcUser.java

@ -0,0 +1,43 @@
//package com.example.demo.config;
//
//import com.zaxxer.hikari.HikariDataSource;
//import org.apache.ibatis.session.SqlSessionFactory;
//import org.mybatis.spring.SqlSessionFactoryBean; // 修复正确导入类
//import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.annotation.MapperScan;
//import org.springframework.beans.factory.annotation.Qualifier;
//import org.springframework.boot.context.properties.ConfigurationProperties;
//import org.springframework.boot.jdbc.DataSourceBuilder;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.context.annotation.Primary;
//import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
//
//import javax.sql.DataSource;
//
///**
// * 数据库leadnews_user配置
// */
//@Configuration
//@MapperScan(basePackages = {"com.example.demo.mapperLink"}, sqlSessionFactoryRef = "sqlSessionFactoryUser")
//public class dBSrcUser {
//
// @Bean(name = "mysql2DataSource")
// @ConfigurationProperties(prefix = "spring.datasource.mysql2")
// public DataSource hljwDataSource() {
// return DataSourceBuilder.create().type(HikariDataSource.class).build();
// }
//
// @Bean(name = "mysql2SqlSessionFactory")
// public SqlSessionFactory hljwSqlSessionFactory(@Qualifier("mysql2DataSource") DataSource dataSource) throws Exception {
// SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(dataSource);
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapperlink/*.xml"));
// return sessionFactory.getObject();
// }
//
// @Bean(name = "mysql2SqlSessionTemplate")
// public SqlSessionTemplate hljwSqlSessionTemplate(@Qualifier("mysql2SqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
// return new SqlSessionTemplate(sqlSessionFactory);
// }
//}

2
src/main/java/com/example/demo/controller/ActivityController.java

@ -27,9 +27,7 @@ public class ActivityController {
@PostMapping("/add")
public Result add(@RequestBody Activity activity) {
// try {
int result=activityService.add(activity);
return Result.success();
// } catch (Exception e) {
// log.warn(Arrays.toString(e.getStackTrace()));

41
src/main/java/com/example/demo/controller/AdminController.java

@ -24,6 +24,17 @@ public class AdminController {
private final AdminService adminService;
@PostMapping("/add")
public Result add(@RequestBody Admin admin){
try {
return Result.success(adminService.add(admin));
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return Result.error(e.getMessage());
}
}
@PostMapping("/search")
public Result search(@RequestBody Page page){
if(ObjectUtils.isEmpty(page.getPageNum())){
@ -34,6 +45,16 @@ public class AdminController {
}
}
@PostMapping("/area")
public Result area(){
return Result.success(adminService.area());
}
@PostMapping("/store")
public Result store(){
return Result.success(adminService.store());
}
@PostMapping("/login")
public Result login(@RequestBody Admin admin){
@ -73,5 +94,25 @@ public class AdminController {
}
}
@PostMapping("/update")
public Result update(@RequestBody Admin admin){
try {
return Result.success(adminService.edit(admin));
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return Result.error(e.getMessage());
}
}
@PostMapping("/selectNo")
public Result selectNo(@RequestBody Admin admin){
try {
return Result.success(adminService.selectNo(admin));
} catch (Exception e) {
e.printStackTrace();
log.error(e.getMessage());
return Result.error(e.getMessage());
}
}
}

28
src/main/java/com/example/demo/controller/AuditController.java

@ -1,13 +1,11 @@
package com.example.demo.controller;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.mapper.AdminMapper;
import com.example.demo.mapper.DetailMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.mapper.*;
import com.example.demo.sevice.AuditService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -21,8 +19,6 @@ import java.time.LocalDate;
import java.time.Month;
import java.util.Arrays;
import static com.example.demo.Util.JWTUtil.getUserDetails;
@RestController
@RequestMapping("/audit/audit")
@RequiredArgsConstructor
@ -39,6 +35,8 @@ public class AuditController {
private final AuditService auditService;
@Autowired
private AdminMapper adminMapper;
@Autowired
private ConsumeMapper consumeMapper;
@PostMapping("/add")
public Result add(@RequestBody Audit audit){
@ -73,6 +71,9 @@ public class AuditController {
BigDecimal rechargeCoin = detail.getRechargeCoin();
BigDecimal taskCoin = detail.getTaskCoin();
BigDecimal freeCoin = detail.getFreeCoin();
String good = detail.getRefundGoods();
String jwcode = detail.getJwcode();
User user = userMapper.selectByJwcode(detail.getJwcode());
user.setBuyJb(user.getBuyJb().add(rechargeCoin));
@ -81,6 +82,7 @@ public class AuditController {
Admin admin =adminMapper.selectById(audit.getAdminId());
LocalDate now = LocalDate.now();
Month currentMonth = now.getMonth();
@ -93,8 +95,18 @@ public class AuditController {
detail.setUsername(user1.getName()); // 获取 user name 设置到 detail username
detail.setArea(user1.getArea()); // 获取 user area 设置到 detail area
detail.setName(admin.getName());
refundMapper.inserty(detail);
userMapper.update(user);
// refundMapper.inserty(detail);
// refundMapper.updateOrderCode(detail.getContactId());
// userMapper.update(user);
if(rechargeCoin!=null&&rechargeCoin.compareTo(BigDecimal.ZERO)!=0){
GoldTistV2.addCoinNew(detail.getJwcode(), 56, rechargeCoin.doubleValue(), "金币退款", rechargeCoin.doubleValue(), admin.getName(), good);
}
if(freeCoin!=null&&freeCoin.compareTo(BigDecimal.ZERO)!=0){
GoldTistV2.addCoinNew(detail.getJwcode(), 55, freeCoin.doubleValue(), "金币退款", 0, admin.getName(), good);
}
if(taskCoin!=null&&taskCoin.compareTo(BigDecimal.ZERO)!=0){
GoldTistV2.addCoinNew(detail.getJwcode(), 57, taskCoin.doubleValue(),"金币退款", 0, admin.getName(), good);
}
}
// 充值驳回
// if (audit.getStatus() == 2 && audit.getRechargeId() != null) {

35
src/main/java/com/example/demo/controller/ConsumeController.java

@ -14,6 +14,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/consume")
@ -38,14 +39,14 @@ public class ConsumeController {
ObjectMapper objectMapper = new ObjectMapper();
String detailJson = objectMapper.writeValueAsString(detailY);
// 发送消息到 Kafka 队列
// // 发送消息到 Kafka 队列
// kafkaProducer.sendMessage("consume-topic", detailJson);
return Result.success("Request added to Kafka queue");
consumeService.insert(detailY);
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
return Result.success();
}
@PostMapping("/select")
@ -58,14 +59,12 @@ public class ConsumeController {
}
}
@PostMapping("/getDeatil/{jwcode}")
public Result getDeatil(@PathVariable("jwcode") Integer jwcode) {
@PostMapping("/getDeatil")
public Result getDeatil(@RequestBody UserVo userVo) {
try {
UserVo userVo = new UserVo();
userVo.setJwcode(jwcode.toString());
userService.search(userVo);
return Result.success(consumeService.getDeatil(jwcode));
return Result.success(consumeService.getDeatil(userVo.getJwcode()));
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
@ -77,4 +76,24 @@ public class ConsumeController {
System.out.println(name + "name");
return Result.success(consumeService.getProduct(name));
}
@PostMapping("/SumConsume")
public Result getSumConsume(@RequestBody SumConsume sumConsume) {
try {
return Result.success(consumeService.getSumConsume(sumConsume));
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
@PostMapping("/getConsume")
public Result getConsume() {
try {
List<String> result = consumeService.getConsume();
return Result.success(result);
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
}

18
src/main/java/com/example/demo/controller/DetailYController.java

@ -4,10 +4,7 @@ package com.example.demo.controller;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.ERP;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.domain.vo.*;
import com.example.demo.sevice.DetailService;
import com.example.demo.sevice.DetailYService;
//import com.example.demo.sevice.OtherService;
@ -18,6 +15,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@ -62,6 +60,18 @@ public class DetailYController {
}
@PostMapping("/ERP")
public Result addERP(@RequestBody ERP erp) throws Exception {
log.info("erp:{}", erp);
return Result.success(otherService.addERP(erp));
}
@PostMapping("/getDetailY")
public Result getDetailY(@RequestBody SumDetailY sumDetailY) {
List<SumDetailY> result = detailYService.getDetailY(sumDetailY);
return Result.success(result);
}
@PostMapping("/getarea")
public Result getarea() {
List<String> result = detailYService.getarea();
return Result.success(result);
}
}

117
src/main/java/com/example/demo/controller/DouController.java

@ -0,0 +1,117 @@
package com.example.demo.controller;
import com.example.demo.domain.dou.*;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.Result;
import com.example.demo.sevice.DouService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
@RestController
@RequestMapping("/dou")
@RequiredArgsConstructor
@Slf4j
@CrossOrigin
public class DouController {
private final DouService douService;
@RequestMapping("/search")
public Result search(@RequestBody Searchinfo jwcode) throws Exception{
try {
return Result.success(douService.searchinfo(jwcode));
}catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
@RequestMapping("/add")
public Result add(@RequestBody Records records) throws Exception{
try {
return Result.success(douService.add(records));
}catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
@RequestMapping("/getYve")
public Result getYve(@RequestBody Page page){
if (ObjectUtils.isEmpty(page.getPageNum())) {
System.out.println(page.getYve()+"-----");
return Result.success(douService.getYve(page.getYve()));
} else {
System.out.println(page.getYve()+"++++");
return Result.success(douService.searchForPage(page.getPageNum(), page.getPageSize(), page.getYve()));
}
}
@RequestMapping("/getYveTotal")
public Result getYveTotal(@RequestBody YveTotal yveTotal){
System.out.println(douService.getYveTotal(yveTotal));
return Result.success(douService.getYveTotal(yveTotal));
}
@RequestMapping("/getIp")
public Result getIp(){
return Result.success(douService.getIp());
}
@RequestMapping("/getStyle")
public Result getStyle(){
return Result.success(douService.getStyle());
}
@RequestMapping("/getPayIp")
public Result getPayIp(){
return Result.success(douService.getPayIp());
}
@RequestMapping("/getPay")
public Result getPay(@RequestBody Page page){
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.success(douService.getPay(page.getPay()));
} else {
return Result.success(douService.searchPay(page.getPageNum(), page.getPageSize(), page.getPay()));
}
}
@RequestMapping("/getSpend")
public Result getSpend(@RequestBody Page page){
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.success(douService.getSpend(page.getSpend()));
} else {
return Result.success(douService.searchSpend(page.getPageNum(), page.getPageSize(), page.getSpend()));
}
}
@RequestMapping("/getSpendTotal")
public Result getSpendTotal(@RequestBody SpendTotal spendTotal){
return Result.success(douService.getSpendTotal(spendTotal));
}
@RequestMapping("/getRechargeTotal")
public Result getRechargeTotal(@RequestBody RechargeTotal rechargeTotal){
return Result.success(douService.getRechargeTotal(rechargeTotal));
}
@RequestMapping("/SearchPay")
public Result SearchPay(@RequestBody Page page){
if (ObjectUtils.isEmpty(page.getPageNum())) {
return Result.success(douService.SearchPay(page.getPay()));
} else {
return Result.success(douService.SearchPay(page.getPageNum(), page.getPageSize(), page.getPay()));
}
}
@RequestMapping("/SearchStyle")
public Result SearchStyle(){
return Result.success(douService.SearchStyle());
}
@RequestMapping("/SearchPayIp")
public Result SearchPayIp(){
return Result.success(douService.SearchPayIp());
}
@RequestMapping("/getTotal")
public Result getTotal(@RequestBody Total total){
return Result.success(douService.getTotal(total));
}
}

58
src/main/java/com/example/demo/controller/OneController.java

@ -0,0 +1,58 @@
package com.example.demo.controller;
import com.example.demo.domain.work.One;
import com.example.demo.domain.work.Three;
import com.example.demo.domain.work.Two;
import com.example.demo.sevice.OneService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/One")
@RequiredArgsConstructor
@Slf4j
@CrossOrigin
public class OneController {
private final OneService oneService;
// 定义一个DTO类来封装请求参数
public static class RequestParams {
private String token;
private List<String> areas;
// Getter和Setter方法
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public List<String> getAreas() {
return areas;
}
public void setAreas(List<String> areas) {
this.areas = areas;
}
}
@PostMapping("/getOne")
public One getOne(@RequestBody RequestParams requestParams) throws Exception {
return oneService.getOne(requestParams.getToken(), requestParams.getAreas());
}
@PostMapping("/getTwo")
public Two getTwo(@RequestBody RequestParams requestParams) throws Exception {
return oneService.getTwo(requestParams.getToken(), requestParams.getAreas());
}
@PostMapping("/getThree")
public Three getThree(@RequestBody RequestParams requestParams) throws Exception {
return oneService.getThree(requestParams.getToken(), requestParams.getAreas());
}
}

24
src/main/java/com/example/demo/controller/PermissionController.java

@ -0,0 +1,24 @@
package com.example.demo.controller;
import com.example.demo.domain.vo.Result;
import com.example.demo.sevice.PermissionService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/permission")
@RequiredArgsConstructor
@Slf4j
@CrossOrigin
public class PermissionController {
private final PermissionService permissionService;
@RequestMapping("/getPermission")
public Result getPermission() {
return Result.success(permissionService.getPermission());
}
}

9
src/main/java/com/example/demo/controller/ProductController.java

@ -1,6 +1,7 @@
package com.example.demo.controller;
import com.example.demo.domain.entity.Index;
import com.example.demo.domain.entity.Product;
import com.example.demo.domain.vo.Result;
import com.example.demo.sevice.ProductService;
@ -19,4 +20,12 @@ public class ProductController {
public Result Product(@RequestBody Product product){
return Result.success(productService.findAll(product));
}
@PostMapping("/add")
public Result add(@RequestBody Product product){
return Result.success(productService.add(product));
}
@PostMapping("/index")
public Result index(@RequestBody Index index){
return Result.success(productService.findIndex(index));
}
}

33
src/main/java/com/example/demo/controller/RechargeController.java

@ -2,9 +2,11 @@ package com.example.demo.controller;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.Result;
//import com.example.demo.controller.KafkaProducer;
import com.example.demo.sevice.RechargeService;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -24,11 +26,12 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
@Slf4j
@CrossOrigin
@JsonIgnoreProperties(ignoreUnknown = true)
public class RechargeController {
private final RechargeService rechargeService;
private final ObjectMapper objectMapper; // 添加这一行
@Autowired
// @Autowired
// private KafkaProducer kafkaProducer;
@PostMapping("/addmore")
public Result add(@RequestBody Map<String, Object> requestBody) {
@ -41,7 +44,7 @@ public class RechargeController {
// 提取并转换所有的 Recharge 对象
List<Recharge> recharges = requestBody.entrySet().stream()
.filter(entry -> !entry.getKey().equals("token"))
.filter(entry -> !entry.getKey().equals("token") && entry.getValue() instanceof Map)
.map(entry -> {
try {
return objectMapper.convertValue(entry.getValue(), Recharge.class);
@ -60,8 +63,8 @@ public class RechargeController {
// Recharge 对象转换为 JSON 字符串
String rechargeJson = objectMapper.writeValueAsString(recharges);
// 发送消息到 Kafka 队列
// kafkaProducer.sendMessage("rechargeadd-topic", rechargeJson);
// 发送消息到 Kafka 队列如果需要
// kafkaProducer.sendMessage("rechargeadd-topic", rechargeJson);
return rechargeService.addRecharges(recharges);
} catch (Exception e) {
@ -77,15 +80,16 @@ public class RechargeController {
// Recharge 对象转换为 JSON 字符串
ObjectMapper objectMapper = new ObjectMapper();
String rechargeJson = objectMapper.writeValueAsString(recharge);
// 发送消息到 Kafka 队列
// kafkaProducer.sendMessage("recharge-topic", rechargeJson);
return Result.success("Request added to Kafka queue");
rechargeService.add(recharge);
//// // 发送消息到 Kafka 队列
//// kafkaProducer.sendMessage("recharge-topic", rechargeJson);
//
// return Result.success("Request added to Kafka queue");
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
return Result.success();
}
@PostMapping("/edit")
@ -107,4 +111,15 @@ public class RechargeController {
return Result.success(rechargeService.searchForPage(page.getPageNum(), page.getPageSize(), page.getRechargeVo()));
}
}
@PostMapping("/RechargeA")
public Result searchRechargeA(@RequestBody RechargeA rechargeA) {
List<RechargeA> result = rechargeService.getRechargeA(rechargeA);
return Result.success(result);
}
@PostMapping("/getWay")
public Result getWay() {
List<String> result = rechargeService.getWay();
return Result.success(result);
}
}

9
src/main/java/com/example/demo/controller/RefundController.java

@ -3,6 +3,8 @@ package com.example.demo.controller;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.vo.Page;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RefundA;
import com.example.demo.domain.vo.Result;
import com.example.demo.sevice.RefundService;
import lombok.RequiredArgsConstructor;
@ -12,6 +14,7 @@ import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping("/refund")
@ -97,4 +100,10 @@ public class RefundController {
return Result.success(refundService.searchForPage(page.getPageNum(), page.getPageSize(),page.getDetail()));
}
}
@PostMapping("/RefundA")
public Result getRefundA(@RequestBody RefundA refundA) {
List<RefundA> result = refundService.getRefundA(refundA);
return Result.success(result);
}
}

2
src/main/java/com/example/demo/controller/StatisticsController.java

@ -8,12 +8,10 @@ import com.example.demo.serviceImpl.UserServiceImpl;
import com.example.demo.sevice.StatisticsService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.Date;
@RestController

13
src/main/java/com/example/demo/controller/UserController.java

@ -8,6 +8,9 @@ import com.example.demo.sevice.UserSevice;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.ResponseEntity;
import org.springframework.http.HttpStatus;
import java.util.Arrays;
@ -37,4 +40,14 @@ public class UserController {
public Result jwcode() throws Exception {
return Result.success(userSevice.jwcode());
}
@PostMapping("/add")
public Result User(@RequestBody User user) throws Exception{
try {
return Result.success(userSevice.add(user));
} catch (Exception e) {
log.error(Arrays.toString(e.getStackTrace()));
return Result.error(e.getMessage());
}
}
}

29
src/main/java/com/example/demo/domain/dou/Balance.java

@ -0,0 +1,29 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Balance implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private Integer uid;
private Integer s1;
private Integer money;
private Integer moneyNum;
private Integer moneyS;
private Integer jinbi;
private Integer jinbiNum;
private Integer jinbiFree;
private Integer jinbiFreeNum;
private Integer jinbiBuy;
private Integer jinbiBuyNum;
private Integer jinbiCostTotal;
}

25
src/main/java/com/example/demo/domain/dou/Member.java

@ -0,0 +1,25 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Member implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String nickname;
private String shop;
private String jwcode;
private Integer jinbiBuy;
private Integer jinbiFree;
private Integer number;
private String masterNickname;
private String masterShop;
}

44
src/main/java/com/example/demo/domain/dou/Pay.java

@ -0,0 +1,44 @@
package com.example.demo.domain.dou;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pay {
private String token;
private Integer jwcode;
private String OrderNo;
private String type;
private String nickname;
private BigDecimal price;
private Integer count;
private String payStyle;
private Integer state;
private Integer platfrom;
private Integer successTime;
private String name;
private String deptName;
private String shopName;
private Integer money;
private Integer moneyFree;
private Integer moneyBuy;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private String sortField;
private String sortOrder;
private String ipAddress;
private String time;
}

30
src/main/java/com/example/demo/domain/dou/RechargeTotal.java

@ -0,0 +1,30 @@
package com.example.demo.domain.dou;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RechargeTotal {
private String token;
private Integer jwcode;
private String OrderNo;
private String type;
private BigDecimal priceTotal;
private Integer countTotal;
private String payStyle;
private String deptName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}

26
src/main/java/com/example/demo/domain/dou/Records.java

@ -0,0 +1,26 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Records implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private Integer uid;
private Integer money;
private Integer moneyFree;
private Integer moneyBuy;
private Integer time;
private Integer type;
private Integer data;
private String jwcode;
private String token;
private String content ;
}

17
src/main/java/com/example/demo/domain/dou/Searchinfo.java

@ -0,0 +1,17 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Searchinfo implements Serializable {
private static final long serialVersionUID = 1L;
private String jwcode;
private String token;
}

41
src/main/java/com/example/demo/domain/dou/Spend.java

@ -0,0 +1,41 @@
package com.example.demo.domain.dou;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Spend implements Serializable {
private static final long serialVersionUID = 1L;
private String jwcode;
private String nickname;
private String ipAddress;
private Integer jinbi;
private Integer jinbiFree;
private Integer jinbiBuy;
private Integer jinbiCostTotal;
private String token;
private String sortField;
private String sortOrder;
private String sourceName;
private String content;
private Integer payType;
private Integer good;
private Integer createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private String room;
private Integer sourceType;
}

37
src/main/java/com/example/demo/domain/dou/SpendTotal.java

@ -0,0 +1,37 @@
package com.example.demo.domain.dou;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SpendTotal {
private String token;
private Integer SpendTotal;
private String jwcode;
private String nickname;
private String ipAddress;
private Integer jinbi;
private Integer jinbiFree;
private Integer jinbiBuy;
private Integer jinbiCostTotal;
private String sortField;
private String sortOrder;
private String sourceName;
private String content;
private Integer payType;
private Integer sourceType;
private Integer time;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
}

28
src/main/java/com/example/demo/domain/dou/Total.java

@ -0,0 +1,28 @@
package com.example.demo.domain.dou;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Total {
private String token;
private String jwcode;
private String orderNo;
private String type;
private String ipAddress;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private Integer count;
private Integer price;
}

28
src/main/java/com/example/demo/domain/dou/Yve.java

@ -0,0 +1,28 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Yve implements Serializable {
private static final long serialVersionUID = 1L;
private String jwcode;
private String nickname;
private String ipAddress;
private Integer jinbi;
private Integer jinbiFree;
private Integer jinbiBuy;
private Integer jinbiCostTotal;
private Integer jinbiCostbeenTotal;
private Integer jinbifreebeenTotal;
private String token;
private String sortField;
private String sortOrder;
}

17
src/main/java/com/example/demo/domain/dou/YveTotal.java

@ -0,0 +1,17 @@
package com.example.demo.domain.dou;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class YveTotal {
private Integer jinbiBuy;
private Integer jinbiCostTotal;
private Integer jinbiFree;
private String token;
private String ipAddress;
private String jwcode;
}

7
src/main/java/com/example/demo/domain/entity/Activity.java

@ -18,22 +18,23 @@ import java.util.Date;
@Data
public class Activity implements Serializable {
private static final long serialVersionUID = 1L;
private Integer activityId;
private Integer adminId;
private String dept;
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "Asia/Shanghai")
private Date startTime;
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "Asia/Shanghai")
private Date endTime;
private String activityName;
private BigDecimal rechargeRatio;
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
@JsonFormat(shape = com.fasterxml.jackson.annotation.JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;

126
src/main/java/com/example/demo/domain/entity/Admin.java

@ -1,3 +1,74 @@
//package com.example.demo.domain.entity;
//
//import com.fasterxml.jackson.annotation.JsonFormat;
//import com.fasterxml.jackson.annotation.JsonIgnore;
//import lombok.Data;
//import lombok.NoArgsConstructor;
//import org.springframework.format.annotation.DateTimeFormat;
//import org.springframework.security.core.GrantedAuthority;
//import org.springframework.security.core.authority.SimpleGrantedAuthority;
//import org.springframework.security.core.userdetails.UserDetails;
//
//import java.io.Serializable;
//import java.util.*;
//
//@Data
//@NoArgsConstructor
//public class Admin implements UserDetails, Serializable {
// private Integer adminId;
// private String name;
// private String username;
// private String password;
// private String permission;
// private String area;
// private String adminFlag;
// private String store;
// private String token;
// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
// private Date createTime;
// private String jwcode;
// @Override
// @JsonIgnore
// public Collection<? extends GrantedAuthority> getAuthorities() {
// Set<GrantedAuthority> authorities = new HashSet<>();
// if (permission != null) {
// int permValue = permission.intValue();
// if (permValue == 1) {
// authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
// } else if (permValue == 2) {
// authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
// } else if (permValue == 3) {
// authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
// }
// }
// return authorities;
// }
// @Override
// @JsonIgnore
// public boolean isAccountNonExpired() {
// return UserDetails.super.isAccountNonExpired();
// }
//
// @Override
// @JsonIgnore
// public boolean isAccountNonLocked() {
// return UserDetails.super.isAccountNonLocked();
// }
//
// @Override
// @JsonIgnore
// public boolean isCredentialsNonExpired() {
// return UserDetails.super.isCredentialsNonExpired();
// }
//
// @Override
// @JsonIgnore
// public boolean isEnabled() {
// return UserDetails.super.isEnabled();
// }
//}
//
package com.example.demo.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -15,54 +86,75 @@ import java.util.*;
@Data
@NoArgsConstructor
public class Admin implements UserDetails, Serializable {
private static final long serialVersionUID = 1L;
private Integer adminId;
private String name;
private String username;
private String password;
private Integer permission;
private String permission;
private String area;
private String adminFlag;
private String store;
private String token;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private String jwcode;
private Integer status1;
private String remark;
private String machineId;
@Override
@JsonIgnore
public Collection<? extends GrantedAuthority> getAuthorities() {
Set<GrantedAuthority>authorities = new HashSet<>();
if(permission == 1){
authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
}else if(permission == 2){
authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
}else if(permission == 3){
authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
}
return authorities;
Set<GrantedAuthority> authorities = new HashSet<>();
Optional.ofNullable(permission)
.map(Integer::valueOf)
.ifPresent(permValue -> {
switch (permValue) {
case 1:
authorities.add(new SimpleGrantedAuthority("ROLE_SUPER_ADMIN"));
break;
case 2:
authorities.add(new SimpleGrantedAuthority("ROLE_ADMIN"));
break;
case 3:
authorities.add(new SimpleGrantedAuthority("ROLE_AUDITORS"));
break;
case 5:
authorities.add(new SimpleGrantedAuthority("Branch_Manager"));
break;
default:
// 可以添加默认角色或处理未知权限
break;
}
});
return authorities;
}
@Override
@JsonIgnore
public boolean isAccountNonExpired() {
return UserDetails.super.isAccountNonExpired();
return true; // 默认账户未过期
}
@Override
@JsonIgnore
public boolean isAccountNonLocked() {
return UserDetails.super.isAccountNonLocked();
return true; // 默认账户未锁定
}
@Override
@JsonIgnore
public boolean isCredentialsNonExpired() {
return UserDetails.super.isCredentialsNonExpired();
return true; // 默认凭证未过期
}
@Override
@JsonIgnore
public boolean isEnabled() {
return UserDetails.super.isEnabled();
return status1 != null && status1 == 1;
}
}
}

12
src/main/java/com/example/demo/domain/entity/Audit.java

@ -6,13 +6,16 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
@JsonIgnoreProperties
public class Audit {
@JsonIgnoreProperties(ignoreUnknown = true)
public class Audit implements Serializable {
private static final long serialVersionUID = 1L;
private Integer auditId;
private String jwcode;
private Integer rechargeId;
@ -20,7 +23,7 @@ public class Audit {
private Integer adminId;
private Integer status;
private Integer AuditFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Date startDate;
@ -47,6 +50,7 @@ private BigDecimal rechargeGold;
private String rechargeTime;
private String adminName;
private String sortField;
private String sortOrder;
}

8
src/main/java/com/example/demo/domain/entity/Detail.java

@ -9,10 +9,12 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class Detail implements Serializable {
private static final long serialVersionUID = 1L;
private Integer detailId;
private Integer detailyId;
private String name;
@ -35,7 +37,7 @@ public class Detail implements Serializable {
private Integer status;
private Integer updateType;
private Integer detailFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private String username;
@ -68,7 +70,9 @@ public class Detail implements Serializable {
private BigDecimal allGold;
private Integer typeR;//选择退款部分
private String sortField;
private String sortOrder;
private List<String> areas;
}

19
src/main/java/com/example/demo/domain/entity/DetailY.java

@ -9,11 +9,13 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class DetailY implements Serializable {
private static final long serialVersionUID = 1L;
private Integer detailyId;
private String name;
private String jwcode;
@ -30,13 +32,13 @@ public class DetailY implements Serializable {
private BigDecimal rechargeCoin;
private BigDecimal freeCoin;
private BigDecimal taskCoin;
private BigDecimal gold;
private Integer adminId;
private Integer status;
private Integer updateType;
private Integer detailFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
private Date endDate;
@ -51,7 +53,9 @@ public class DetailY implements Serializable {
private String auditReson;
private String orderCode;
private Integer refundFlag;
private Integer gtype;
private List<Integer> updateTypes;
// @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
// @DateTimeFormat(pattern = "yyyy-MM-dd")
@ -72,4 +76,15 @@ public class DetailY implements Serializable {
private BigDecimal sumR;
private BigDecimal sumF;
private BigDecimal sumT;
private String sortField;
private String sortOrder;
private String num;
private List<String> areas;
private String uid;
private BigDecimal gold_last;
}

24
src/main/java/com/example/demo/domain/entity/Index.java

@ -0,0 +1,24 @@
package com.example.demo.domain.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Index implements Serializable {
private static final long serialVersionUID = 1L;
private Integer indexId;
private BigDecimal price;
private String name;
private String remark;
private Integer type;
private Integer productFlag;
private Date createTime;
private String token;
}

14
src/main/java/com/example/demo/domain/entity/Permission.java

@ -0,0 +1,14 @@
package com.example.demo.domain.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class Permission implements Serializable {
private static final long serialVersionUID = 1L;
private Integer permissionId;
private String permissionName;
}

12
src/main/java/com/example/demo/domain/entity/Product.java

@ -4,22 +4,22 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@NoArgsConstructor
public class Product {
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
private int productId;
private BigDecimal price;
private String name;
private Date listed_time;
private Date down_time;
private String remark;
private String subjects;
private String type;
private String productFlag;
private Integer type;
private Integer productFlag;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
private String token;

14
src/main/java/com/example/demo/domain/entity/Rate.java

@ -5,25 +5,28 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class Rate {
public class Rate implements Serializable {
private static final long serialVersionUID = 1L;
private Integer rateId;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startTime;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endTime;
private String currency;
private BigDecimal exchangeRate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date updateTime;
private Integer adminId;
@ -32,5 +35,4 @@ public class Rate {
private String token;
private Integer updateId;
private Integer status;
}

14
src/main/java/com/example/demo/domain/entity/Recharge.java

@ -1,17 +1,22 @@
package com.example.demo.domain.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Recharge implements Serializable {
private static final long serialVersionUID = 1L;
public class Recharge {
private String Rate;
private Integer rechargeId;
private String jwcode;
private Integer activityId;
@ -27,7 +32,7 @@ public class Recharge {
private String rechargeRatio;
private String remark;
private Integer flag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Date startDate;
@ -35,13 +40,12 @@ public class Recharge {
private String orderCode;
private String token;
private Integer rateId;
private Integer line;
private Integer line;
private String showInput;
private String imageUrl;
private String rate;
private String isInputInvalid;
private String inputErrorMessage;
private String adminName;
}

7
src/main/java/com/example/demo/domain/entity/User.java

@ -5,12 +5,15 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class User {
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer userId;
private String name;
private String jwcode;
@ -22,7 +25,7 @@ public class User {
private Date birthday;
private String head;
private Integer UserFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private String signature;

10
src/main/java/com/example/demo/domain/entity/UserDetailExport.java

@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
@ -26,13 +27,14 @@ public class UserDetailExport {
private String area;
@ExcelProperty("平台信息")
@ColumnWidth(20)
private String platformInfo;
private String consumePlatform;
@ExcelProperty("更新数量")
@ColumnWidth(20)
private BigDecimal count;
private BigDecimal gold;
@ExcelProperty("更新类型")
@ColumnWidth(20)
private int update_type;
private Integer updateType;
@ExcelProperty("充值金币")
@ColumnWidth(20)
private BigDecimal rechargeCoin;
@ -45,7 +47,7 @@ public class UserDetailExport {
@ExcelProperty("提交人")
@ColumnWidth(20)
private String createAdmin;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
}

8
src/main/java/com/example/demo/domain/entity/UserGold.java

@ -5,13 +5,16 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class UserGold {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public class UserGold implements Serializable {
private static final long serialVersionUID = 1L;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String jwcode;
@ -22,6 +25,7 @@ public class UserGold {
private BigDecimal coreJb;
private BigDecimal free6;
private BigDecimal free12;
private Date addTime;
private Date lastTime;
private String token;
}

15
src/main/java/com/example/demo/domain/vo/ConsumeDetail.java

@ -5,12 +5,17 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class ConsumeDetail {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public class ConsumeDetail implements Serializable {
private static final long serialVersionUID = 1L;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Integer detailId;
private String name;
@ -33,7 +38,7 @@ public class ConsumeDetail {
private Integer status;
private String updateType;
private Integer detailFlag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Integer adminId;
@ -47,4 +52,8 @@ public class ConsumeDetail {
private String productName;
private String username;
private String sortField;
private String sortOrder;
private List<String> areas;
}

17
src/main/java/com/example/demo/domain/vo/DetailExport.java

@ -1,21 +1,32 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class DetailExport {
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class DetailExport implements Serializable {
private static final long serialVersionUID = 1L;
private Integer updateType;
private String jwcode;
private String token;
private String area;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private List<String> areas;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date startDate;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date endDate;

5
src/main/java/com/example/demo/domain/vo/DetailVo.java

@ -4,13 +4,16 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@NoArgsConstructor
public class DetailVo {
public class DetailVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer detailId;
private String name;
private String jwcode;

4
src/main/java/com/example/demo/domain/vo/DetailYVo.java

@ -4,11 +4,13 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class DetailYVo {
public class DetailYVo implements Serializable {
private static final long serialVersionUID = 1L;
private Integer detailYId;
private String name;

17
src/main/java/com/example/demo/domain/vo/DetailYgold.java

@ -3,10 +3,15 @@ package com.example.demo.domain.vo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@NoArgsConstructor
public class DetailYgold {
public class DetailYgold implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
private String area;
private BigDecimal buyJb;
@ -16,4 +21,14 @@ public class DetailYgold {
private String jwcode;
private Integer Rcoin;
private Integer Scoin;
private BigDecimal SumbuyJb;
private BigDecimal SumcoreJb;
private BigDecimal Sumfree12;
private BigDecimal Sumfree6;
private String sortField;
private String sortOrder;
private List<String> areas;
}

12
src/main/java/com/example/demo/domain/vo/ERP.java

@ -1,15 +1,20 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class ERP {
@JsonIgnoreProperties(ignoreUnknown = true)
public class ERP implements Serializable {
private static final long serialVersionUID = 1L;
private String jwcode;
private BigDecimal taskJb;
private BigDecimal freeJb;
@ -18,7 +23,7 @@ public class ERP {
private String productName;
private String reamrk;
private String type;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
private Date createTime;
private String consumePlatform;
private String name;
@ -28,4 +33,7 @@ public class ERP {
private Integer updateType;
private String area;
private String token;
private Table table;
}

7
src/main/java/com/example/demo/domain/vo/Meium.java

@ -18,8 +18,8 @@ import java.util.Map;
@Data
@NoArgsConstructor
public class Meium implements Serializable {
private static final long serialVersionUID = 1L;
//中间-11个月 每月充值金币
private BigDecimal rechargeSumCoin;
//中间-11个月 每月免费金币
@ -28,7 +28,7 @@ public class Meium implements Serializable {
private BigDecimal taskSumCoin;
private String area;
private String store;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private BigDecimal totalRechargeSum;
private Date searchStartTime;
@ -42,6 +42,9 @@ public class Meium implements Serializable {
private String day;
private String sortField;
private String sortOrder;
@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);

7
src/main/java/com/example/demo/domain/vo/Page.java

@ -1,6 +1,9 @@
package com.example.demo.domain.vo;
import com.example.demo.domain.dou.Pay;
import com.example.demo.domain.dou.Spend;
import com.example.demo.domain.dou.Yve;
import com.example.demo.domain.entity.*;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
@ -13,6 +16,7 @@ import java.io.Serializable;
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Page implements Serializable {
private static final long serialVersionUID = 1L;
private Integer pageNum;
private Integer pageSize;
@ -27,6 +31,9 @@ public class Page implements Serializable {
private DetailY detailY;
private DetailYVo detailYVo;
private DetailYgold detailYgold;
private Yve yve;
private Pay pay;
private Spend spend;
}

37
src/main/java/com/example/demo/domain/vo/RechargeA.java

@ -0,0 +1,37 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RechargeA implements Serializable {
private static final long serialVersionUID = 1L;
private Integer Raudit;
private BigDecimal SumRaudit;
private BigDecimal SumRaudit1;
private BigDecimal SumRaudit2;
private String flag;
private List<Integer> flags;
private String token;
private String jwcode;
private String activityId;
private Integer adminId;
private Date startDate;
private Date endDate;
private String payWay;
private String rechargeWay;
private String area;
private String auditStatus;
private List<String> areas;
}

23
src/main/java/com/example/demo/domain/vo/RechargeVo.java

@ -5,11 +5,16 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; // 引入 Serializable
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class RechargeVo {
public class RechargeVo implements Serializable { // 实现 Serializable 接口
private static final long serialVersionUID = 1L; // 添加 serialVersionUID
private Integer rechargeId;
private String jwcode;
@ -23,11 +28,10 @@ public class RechargeVo {
private String rechargeVoucher;
private Integer adminId;
private String area;
private String remark;
private Integer flag;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date createTime;
private Date startDate;
@ -43,4 +47,13 @@ public class RechargeVo {
private Integer detailId;
private String orderCode;
}
private String adminName;
private String sortField;
private String sortOrder;
private List<String> areas; // List 类型默认是可序列化的
// 如果有任何不需要序列化的字段可以使用 transient 关键字
// private transient SomeNonSerializableType nonSerializableField;
}

45
src/main/java/com/example/demo/domain/vo/RefundA.java

@ -0,0 +1,45 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RefundA implements Serializable {
private static final long serialVersionUID = 1L;
private Integer Raudit;
private BigDecimal SumRaudit;
private BigDecimal SumRaudit1;
private BigDecimal SumRaudit2;
private BigDecimal SumRaudit3;
private String flag;
private List<Integer> flags;
private String token;
private String jwcode;
private String activityId;
private Integer adminId;
private Date startDate;
private Date endDate;
private String payWay;
private String rechargeWay;
private String area;
private String status;
private String refundType;
private String refundGoods;
private String category;
private BigDecimal amount;
private List<String> areas;
}

5
src/main/java/com/example/demo/domain/vo/Result.java

@ -6,10 +6,13 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
public class Result implements Serializable {
private static final long serialVersionUID = 1L;
private Integer code;
private String msg;
private Object data;

4
src/main/java/com/example/demo/domain/vo/Statistics.java

@ -4,13 +4,15 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
public class Statistics {
public class Statistics implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal rechargeSumCoin;
private BigDecimal free6SumCoin;
private BigDecimal free12SumCoin;

4
src/main/java/com/example/demo/domain/vo/Statisticss.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@ -11,7 +12,8 @@ import java.util.List;
@NoArgsConstructor
public class Statisticss {
public class Statisticss implements Serializable {
private static final long serialVersionUID = 1L;
private List<Statistics> CoinSystemSum;
private List<Statistics> ERPSum;

13
src/main/java/com/example/demo/domain/vo/SumCoin.java

@ -6,15 +6,19 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
public class SumCoin {
public class SumCoin implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> areas;
//当前金币余量 充值金币
private BigDecimal todayRecharge;
@ -58,11 +62,11 @@ public class SumCoin {
private BigDecimal yearSumFreeCoin;
//全年累计消耗金币数--下面 消耗任务金币
private BigDecimal yearSumTaskCoin;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date searchStartTime;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date searchEndTime;
private Integer updateType;
@ -89,4 +93,7 @@ public class SumCoin {
private BigDecimal totalTask;
private String token;
// 识别年
private Integer year;
}

30
src/main/java/com/example/demo/domain/vo/SumConsume.java

@ -0,0 +1,30 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SumConsume implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal Sumcion;
private BigDecimal SumRcion;
private BigDecimal SumFcion;
private BigDecimal SumTcion;
private String jwcode;
private String consumePlatform;
private String consumeType;
private String productName;
private Date startDate;
private Date endDate;
private String token;
private String area;
private List<String> areas;
}

30
src/main/java/com/example/demo/domain/vo/SumDetailY.java

@ -0,0 +1,30 @@
package com.example.demo.domain.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SumDetailY implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal sumR;
private BigDecimal sumT;
private BigDecimal sumF;
private List<Integer> updateTypes;
private String token;
private Date startDate;
private Date endDate;
private String area;
private String jwcode;
private Integer updateType;
private String consumePlatform;
private String types;
private List<String> areas;
}

33
src/main/java/com/example/demo/domain/vo/Table.java

@ -0,0 +1,33 @@
package com.example.demo.domain.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class Table implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String uid;
private BigDecimal gold_last;
private Integer gtype;
private String jwcode;
private BigDecimal free;
private BigDecimal core_jb;
private BigDecimal buy_jb;
private String cz_time;
private String cz_user;
private String cz_bz;
private Integer flag;
private Integer operation_type;
private Integer operation_platform;
private Integer operation_type_id;
private String goods_name;
// Getters and setters
}

4
src/main/java/com/example/demo/domain/vo/UserConsumeCoin.java

@ -5,12 +5,14 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
public class UserConsumeCoin {
public class UserConsumeCoin implements Serializable {
private static final long serialVersionUID = 1L;
private String jwcode;
private BigDecimal free6;

6
src/main/java/com/example/demo/domain/vo/UserVo.java

@ -5,13 +5,15 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
@NoArgsConstructor
public class UserVo {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public class UserVo implements Serializable {
private static final long serialVersionUID = 1L;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private String jwcode;
private String name;

24
src/main/java/com/example/demo/domain/work/One.java

@ -0,0 +1,24 @@
package com.example.demo.domain.work;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class One implements Serializable {
private static final long serialVersionUID = 1L;
private String token ;
private BigDecimal sumgold ;
private BigDecimal differr ;
private BigDecimal rechargegold ;
private BigDecimal freegold ;
private BigDecimal taskgold ;
private BigDecimal sfreegold;
private BigDecimal dfreegold;
}

24
src/main/java/com/example/demo/domain/work/Three.java

@ -0,0 +1,24 @@
package com.example.demo.domain.work;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Three implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal consumeCoin;
private BigDecimal consumeGold;
private BigDecimal refundCoin;
private BigDecimal yesterdayCoin;
private BigDecimal yesterdayGold;
private BigDecimal yesterdayrefund;
private BigDecimal rechargegold ;
private BigDecimal freegold ;
private BigDecimal taskgold ;
}

22
src/main/java/com/example/demo/domain/work/Two.java

@ -0,0 +1,22 @@
package com.example.demo.domain.work;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Two implements Serializable {
private static final long serialVersionUID = 1L;
private BigDecimal totalgold;
private BigDecimal totalcoin;
private BigDecimal yesterdaytotal;
private BigDecimal yesterdayrecharge;
private BigDecimal rechargegold ;
private BigDecimal freegold ;
private BigDecimal taskgold ;
}

50
src/main/java/com/example/demo/mapper/AdminMapper.java

@ -11,9 +11,9 @@ import java.util.List;
public interface AdminMapper {
@Insert({
"insert into admin",
"(name,jwcode,password,permission,area,admin_flag,create_time)",
"(name,jwcode,password,permission,area,store,admin_flag,create_time,remark,status1,machineId)",
"values",
"(#{name},#{jwcode},,#{password},#{permission},#{area},#{admin_flag},now())"
"(#{name},#{jwcode},#{password},#{permission},#{area},#{store},#{adminFlag},now(),#{remark},#{status1},#{machineId})"
})
@Options(useGeneratedKeys = true,keyColumn = "admin_id",keyProperty = "adminId")
int insert(Admin admin);
@ -23,12 +23,14 @@ public interface AdminMapper {
"UPDATE admin",
"<set>",
"<if test='name!=null and name.length()>0'>name =#{name},</if>",
"<if test='jwcode!=null and jwcode.length()>0'>jwcode =#{jwcode},</if>",
"<if test='password!=null and password.length()>0'>password =#{password},</if>",
"<if test='permission!=null and permission.length()>0'>permission =#{permission},</if>",
"<if test='area!=null and area.length()>0'>area =#{area},</if>",
"<if test='adminFlag!=null and adminFlag.length()>0'>admin_flag =#{adminFlag},</if>",
"<if test='adminFlag!=null '>admin_flag =#{adminFlag},</if>",
"<if test='status1!=null '>status1 =#{status1},</if>",
"<if test='remark!=null '>remark =#{remark},</if>",
"</set>",
"where jwcode =#{jwcode}",
"</script>"
})
int update(Admin admin);
@ -46,13 +48,43 @@ public interface AdminMapper {
"<script>",
"SELECT * from admin",
"<where>",
"<if test='name!=null and name.length()>0'> and `name` like concat('%',#{name},'%'),</if>",
"<if test='jwcode!=null and jwcode.length()>0'> and `jwcode` like concat('%',#{jwcode},'%'),</if>",
"<if test='permission!=null'> and permission=#{permission},</if>",
"<if test='area!=null and area.length()>0'> and `area` like concat('%',#{area},'%'),</if>",
"<if test='adminFlag!=null'> and admin_flag =#{adminFlag},</if>",
"admin_flag=1",
"<if test='name!=null and name.length()>0'> and `name` like concat('%',#{name},'%')</if>",
"<if test='jwcode!=null and jwcode.length()>0'> and jwcode=#{jwcode}</if>",
"<if test='area!=null and area.length()>0'> and `area`=#{area}</if>",
"<if test='store!=null and store.length()>0'> and `store`=#{store}</if>",
"and permission != 4",
"</where>",
"ORDER BY status1 DESC, permission ASC",
"</script>"
})
List<Admin> select(Admin admin);
@Select({
"select DISTINCT store from admin"
})
List<String> selectStore();
@Select({
"select DISTINCT area from admin"
})
List<String> selectArea();
@Select({
// "<script>",
"select * from admin ",
// "<where>",
"where (permission != 1 AND permission != 2 AND permission != 3) and jwcode=#{jwcode}",
// "</where>",
})
List<Admin> selectNo(Admin admin);
@Select({
"select * from admin",
"where jwcode=#{jwcode}",
"and",
"admin_flag = 1"
})
Admin selectByJwcode(String jwcode);
}

62
src/main/java/com/example/demo/mapper/ConsumeMapper.java

@ -3,6 +3,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.SumConsume;
import org.apache.ibatis.annotations.*;
import java.util.List;
@ -10,6 +11,9 @@ import java.util.List;
@Mapper
public interface ConsumeMapper {
SumConsume getSumConsume(SumConsume sumConsume);
List<String> getConsume();
//通过id查询user全部信息
@Select({
"select * from user where user_id=#{userId}"
@ -29,11 +33,11 @@ public interface ConsumeMapper {
// "(#{jwcode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType},#{refundGoods},#{contactId},#{remark},#{rechargeCoin},#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),1,#{orderCode})"
"insert into detail_y",
"(jwcode,order_code,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods," +
"contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,refund_flag,create_time,first_recharge,`name`,username,area)",
"contact_id,remark,recharge_coin,free_coin,task_coin,admin_id,update_type,detail_flag,refund_flag,create_time,first_recharge,`name`,username,area,product_name)",
"values ",
"(#{jwcode},#{orderCode},#{activityId},#{rechargeWay},#{productId},'金币系统','购买商品',#{refundType}" +
",#{refundGoods},#{contactId},#{remark},#{rechargeCoin}" +
",#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,1,now(),#{firstRecharge},#{name},#{username},#{area})"
",#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,1,now(),#{firstRecharge},#{name},#{username},#{area},#{productName})"
})
// 获取自增主键
@Options(useGeneratedKeys = true,keyColumn = "detaily_id",keyProperty = "detailyId")
@ -43,34 +47,45 @@ public interface ConsumeMapper {
//userName
//模糊分页查询查询消费明细
@Select({
"<script>",
"select detail_y.*,admin.name as adminName,product.name as productName from detail_y ",
"left join `admin` on detail_y.admin_id=admin.admin_id ",
"left join `user` on detail_y.jwcode= user.jwcode ",
"left join product on detail_y.product_id= product.product_id ",
"<where>",
// "`detail_flag`=1 AND update_type = '1'",
"update_type=1",
"<if test='jwcode!=null'>and detail_y.jwcode =#{jwcode}</if>",
"<if test='productName!=null and productName.length>0'>and product.name = #{productName}</if>",
"<if test='consumePlatform!=null and consumePlatform.length>0'>and detail_y.consume_platform=#{consumePlatform}</if>",
"<if test='consumeType!=null and consumeType.length>0'>and detail_y.consume_type= #{consumeType}</if>",
"<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"ORDER BY detail_y.create_time DESC",
"</script>"
})
// @Select({
// "<script>",
// "select detail_y.*,admin.name as adminName,product.name as productName from detail_y ",
// "left join `admin` on detail_y.admin_id=admin.admin_id ",
// "left join `user` on detail_y.jwcode= user.jwcode ",
// "left join product on detail_y.product_id= product.product_id ",
// "<where>",
//// "`detail_flag`=1 AND update_type = '1'",
// "update_type=1",
// "<if test='jwcode!=null'>and detail_y.jwcode =#{jwcode}</if>",
// "<if test='productName!=null and productName.length>0'>and product.name = #{productName}</if>",
// "<if test='consumePlatform!=null and consumePlatform.length>0'>and detail_y.consume_platform=#{consumePlatform}</if>",
// "<if test='consumeType!=null and consumeType.length>0'>and detail_y.consume_type= #{consumeType}</if>",
// "<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
// "<if test='area!=null and area.length>0'>and area=#{area}</if>",
// "</where>",
//
// "<choose>",
// " <!-- 优先使用前端传入的排序参数 -->",
// " <when test='sortField != null or sortOrder != null'>",
// " ORDER BY ${sortField} ${sortOrder}",
// " </when>",
// " <!-- 默认排序 -->",
// " <otherwise>",
// "ORDER BY detail_y.create_time DESC",
// " </otherwise>",
// "</choose>",
// "</script>"
// })
List<ConsumeDetail> select(ConsumeDetail consumeDetail);
//查询消费信息
@Select({
"select * ,product.name as productName from detail_y " ,
"inner join product on detail_y.product_id= product.product_id ",
"select * from detail_y " ,
// "inner join product on detail_y.product_id= product.product_id ",
"where `detail_flag`=1 AND update_type = '1' and jwcode=#{jwcode} AND refund_flag=1"
})
List<Detail> getDeatil(Integer jwcode);
List<Detail> getDeatil(String jwcode);
//查询消费信息
@ -83,4 +98,5 @@ public interface ConsumeMapper {
}

184
src/main/java/com/example/demo/mapper/DetailYMapper.java

@ -4,12 +4,22 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.SumDetailY;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface DetailYMapper {
DetailYgold getgold(DetailYgold detailYgold);
List<SumDetailY> getDetailY(SumDetailY sumDetailY);
List<String> getarea();
@Insert({
// "insert into detail_y",
// "(jwcode,order_code,activity_id,recharge_way,product_id,consume_platform,consume_type,refund_type,refund_goods,name,username,area" +
@ -19,9 +29,9 @@ public interface DetailYMapper {
// ",#{refundGoods},#{name},#{username},#{area},#{contactId},#{remark},#{rechargeCoin}" +
// ",#{freeCoin},#{taskCoin},#{adminId},#{updateType},1,now(),#{firstRecharge})"
"insert into detail_y \n" +
"(jwcode, order_code, activity_id, recharge_way, product_id, consume_platform, consume_type, refund_type, refund_goods, name, username, area, contact_id, remark, recharge_coin, free_coin, task_coin, admin_id, update_type, detail_flag, create_time, first_recharge,product_name)\n" +
"(jwcode, order_code, activity_id, recharge_way, product_id, consume_platform, consume_type, refund_type, refund_goods, name, username, area, contact_id, remark, recharge_coin, free_coin, task_coin, admin_id, update_type, detail_flag, create_time, first_recharge,product_name,gtype,uid,gold_last)\n" +
"values \n" +
"(#{jwcode}, #{orderCode}, #{activityId}, #{rechargeWay}, #{productId}, #{consumePlatform}, #{consumeType}, #{refundType}, #{refundGoods}, #{name}, #{username}, #{area}, #{contactId}, #{remark}, #{rechargeCoin}, #{freeCoin}, #{taskCoin}, #{adminId}, #{updateType}, 1, now(), #{firstRecharge},#{productName})"
"(#{jwcode}, #{orderCode}, #{activityId}, #{rechargeWay}, #{productId}, #{consumePlatform}, #{consumeType}, #{refundType}, #{refundGoods},#{name}, #{username}, #{area}, #{contactId}, #{remark}, #{rechargeCoin}, #{freeCoin}, #{taskCoin}, #{adminId}, #{updateType}, 1, #{createTime}, #{firstRecharge},#{productName},#{gtype},#{uid},#{gold_last})"
})
@Options(useGeneratedKeys = true,keyColumn = "detaily_id",keyProperty = "detailyId")
int add(DetailY detaily);
@ -30,69 +40,92 @@ public interface DetailYMapper {
})
DetailY selectByDetailyId(Integer detaily_id);
@Select({
"<script>",
"SELECT ",
"`user`.name,`user`.area,user_gold.buy_jb,user_gold.core_jb,user_gold.free_12,user_gold.free_6,",
"user_gold.jwcode,",
"SUM(CASE WHEN detail_y.update_type = 0 THEN detail_y.recharge_coin ELSE 0 END) AS Rcoin,",
"SUM(CASE WHEN detail_y.update_type = 1 THEN detail_y.recharge_coin ELSE 0 END) AS Scoin",
"FROM ",
"detail_y",
"LEFT JOIN ",
"user_gold ON detail_y.jwcode = user_gold.jwcode",
"LEFT JOIN",
"`user` ON detail_y.jwcode = `user`.jwcode",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
"<if test='area!=null and area.length>0'>AND `user`.area=#{area}</if>",
"</where>",
"GROUP BY",
"user_gold.jwcode",
"ORDER BY ",
"Rcoin DESC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT ",
// "`user`.name,`user`.area,user_gold.buy_jb,user_gold.core_jb,user_gold.free_12,user_gold.free_6,",
// "user_gold.jwcode,",
// "SUM(CASE WHEN detail_y.update_type = 0 THEN detail_y.recharge_coin ELSE 0 END) AS Rcoin,",
// "SUM(CASE WHEN detail_y.update_type = 1 THEN detail_y.recharge_coin + detail_y.free_coin + detail_y.task_coin ELSE 0 END) AS Scoin",
// "FROM ",
// "detail_y",
// "LEFT JOIN ",
// "user_gold ON detail_y.jwcode = user_gold.jwcode",
// "LEFT JOIN",
// "`user` ON detail_y.jwcode = `user`.jwcode",
// "<where>",
// "<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
// "<if test='area!=null and area.length>0'>AND `user`.area=#{area}</if>",
// "</where>",
// "GROUP BY",
// "user_gold.jwcode",
//
// "<choose>",
// " <!-- 优先使用前端传入的排序参数 -->",
// " <when test='sortField != null or sortOrder != null'>",
// " ORDER BY ${sortField} ${sortOrder}",
// " </when>",
// " <!-- 默认排序 -->",
// " <otherwise>",
// "ORDER BY ",
// "Rcoin DESC",
// " </otherwise>",
// "</choose>",
// "</script>"
//
// })
List<DetailYgold> selectgold(DetailYgold detailYgold);
@Select({
"<script>",
"select username,name,detail_y.jwcode,area,detail_y.update_type,detail_y.create_time,detail_y.consume_platform,detail_y.free_coin,detail_y.recharge_coin,detail_y.task_coin from detail_y",
// "select * from detail_y",
// "select detail_y.*,admin.name,admin.area,user.name as uname,audit.status from detail",
// "left join `admin` on `detail_y`.admin_id = `admin`.admin_id",
// "left join `user` on `detail_y`.jwcode = `user`.jwcode",
// "left join audit on `detail_y`.detail_id=audit.detail_id",
"<where>",
// "(status is null or status='1')",
"<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
"<if test='updateType!=null'>and update_type=#{updateType}</if>",
"<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='consumePlatform!=null and consumePlatform.length>0'>and consume_platform=#{consumePlatform}</if>",
"</where>",
"ORDER BY detaily_id desc",
"</script>"
})
// @Select({
// "<script>",
// "select username,name,detail_y.jwcode,area,detail_y.update_type,detail_y.create_time,detail_y.consume_platform,detail_y.free_coin,detail_y.recharge_coin,detail_y.task_coin from detail_y",
//// "select * from detail_y",
//// "select detail_y.*,admin.name,admin.area,user.name as uname,audit.status from detail",
//// "left join `admin` on `detail_y`.admin_id = `admin`.admin_id",
//// "left join `user` on `detail_y`.jwcode = `user`.jwcode",
//// "left join audit on `detail_y`.detail_id=audit.detail_id",
// "<where>",
//// "(status is null or status='1')",
// "<if test='jwcode!=null and jwcode.length>0'>and detail_y.jwcode=#{jwcode}</if>",
// "<if test='updateType!=null'>and update_type in (#{updateType})</if>",
// "<if test='updateTypes!=null'>and update_type in (#{updateTypes})</if>",
// "<if test='startDate != null and endDate != null'>AND detail_y.create_time BETWEEN #{startDate} AND #{endDate}</if>",
// "<if test='consumePlatform!=null and consumePlatform.length>0'>and consume_platform=#{consumePlatform}</if>",
// "<if test='area!=null and area.length>0'>and area=#{area}</if>",
// "</where>",
// "<choose>",
// " <!-- 优先使用前端传入的排序参数 -->",
// " <when test='sortField != null or sortOrder != null'>",
// " ORDER BY ${sortField} ${sortOrder}",
// " </when>",
// " <!-- 默认排序 -->",
// " <otherwise>",
// " ORDER BY detaily_id DESC",
// " </otherwise>",
// "</choose>",
// "</script>"
//
// })
List<DetailY> select(DetailY detailY);
List<DetailY> select1(DetailY detailY);
@Select({
"<script>",
"SELECT",
" SUM(`recharge_coin`) AS 'sumR',",
" SUM(`recharge_coin`) AS 'sumT',",
" SUM(`recharge_coin`) AS 'sumF'",
"FROM",
"`detail_y`",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>AND jwcode=#{jwcode}</if>",
"<if test='updateType!=null'>AND update_type=#{updateType}</if>",
"<if test='startDate != null and endDate != null'>AND create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"</script>"
})
// @Select({
// "<script>",
// "SELECT",
// " SUM(`recharge_coin`) AS 'sumR',",
// " SUM(`task_coin`) AS 'sumT',",
// " SUM(`free_coin`) AS 'sumF'",
// "FROM",
// "`detail_y`",
// "<where>",
// "<if test='jwcode!=null and jwcode.length>0'>AND jwcode=#{jwcode}</if>",
// "<if test='updateType!=null'>AND update_type=#{updateType}</if>",
// "<if test='startDate != null and endDate != null'>AND create_time BETWEEN #{startDate} AND #{endDate}</if>",
// "<if test='area!=null and area.length>0'>AND area=#{area}</if>",
// "</where>",
// "</script>"
// })
DetailY getCount(DetailY detailY);
//导出数据的SQL
@ -110,19 +143,20 @@ public interface DetailYMapper {
@Select("SELECT COUNT(*) FROM detail_y")
int getTotalCount();
@Select({
"<script>",
"SELECT d.detaily_id,u.name,d.jwcode,u.area,d.consume_platform,d.update_type,d.recharge_coin,d.task_coin," +
"d.free_coin,d.create_admin,d.create_time",
"FROM detail_y d",
"LEFT JOIN user u on d.jwcode = u.jwcode ",
"<where>",
"<if test='jwcode!=null'>AND d.jwcode=#{jwcode}</if>",
"<if test='area'>AND u.area=#{area}</if>",
"<if test='startDate != null and endDate != null'>AND create_time BETWEEN #{startDate} AND #{endDate}</if>",
"</where>",
"ORDER BY detaily_id desc",
"</script>"
})
// @Select({
// "<script>",
// "SELECT d.detaily_id,u.name,d.jwcode,u.area,d.consume_platform,d.update_type,d.recharge_coin,d.task_coin," +
// "d.free_coin,d.create_admin,d.create_time",
// "FROM detail_y d",
// "LEFT JOIN user u on d.jwcode = u.jwcode ",
// "<where>",
// "<if test='updateType!=null'>AND d.update_type=#{updateType}</if>",
// "<if test='jwcode!=null'>AND d.jwcode=#{jwcode}</if>",
// "<if test='area != null '>AND u.area=#{area}</if>",
// "<if test='startDate != null and endDate != null'>AND create_time BETWEEN #{startDate} AND #{endDate}</if>",
// "</where>",
// "ORDER BY detaily_id desc",
// "</script>"
// })
List<UserDetailExport> searchAll(DetailExport detailExport);
}

16
src/main/java/com/example/demo/mapper/OneMapper.java

@ -0,0 +1,16 @@
package com.example.demo.mapper;
import com.example.demo.domain.work.One;
import com.example.demo.domain.work.Three;
import com.example.demo.domain.work.Two;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface OneMapper {
One getOne(List<String> areas) throws Exception;
Two getTwo(List<String> areas) throws Exception;
Three getThree(List<String> areas) throws Exception;
}

15
src/main/java/com/example/demo/mapper/PermissionMapper.java

@ -0,0 +1,15 @@
package com.example.demo.mapper;
import com.example.demo.domain.entity.Permission;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface PermissionMapper {
@Select({
"select * from permission"
})
List<Permission> getPermission();
}

6
src/main/java/com/example/demo/mapper/ProductMapper.java

@ -1,6 +1,7 @@
package com.example.demo.mapper;
import com.example.demo.domain.entity.Index;
import com.example.demo.domain.entity.Product;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
@ -9,6 +10,11 @@ import java.util.List;
@Mapper
public interface ProductMapper {
List<Index> findIndex(Index index);
int add(Product product);
@Select({
"select * from product"
})

77
src/main/java/com/example/demo/mapper/RechargeMapper.java

@ -2,6 +2,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.Recharge;
import com.example.demo.domain.vo.RechargeA;
import com.example.demo.domain.vo.RechargeVo;
import org.apache.ibatis.annotations.*;
@ -10,17 +11,30 @@ import java.util.List;
@Mapper
public interface RechargeMapper {
List<RechargeA> getRechargeA(RechargeA rechargeA);
List<String> getWay();
@Insert({
"INSERT INTO recharge",
"(jwcode,order_code,activity_id,paid_gold,free_gold,recharge_gold,pay_way,recharge_way,recharge_time,recharge_voucher,admin_id,remark,flag)",
"(jwcode,order_code,activity_id,paid_gold,free_gold,recharge_gold,pay_way,recharge_way,recharge_time,recharge_voucher,admin_id,remark,flag,admin_name)",
"values ",
"(#{jwcode},#{orderCode},#{activityId},#{paidGold},#{freeGold},#{rechargeGold},#{payWay},#{rechargeWay},#{rechargeTime},#{rechargeVoucher},#{adminId},#{remark},1)"
"(#{jwcode},#{orderCode},#{activityId},#{paidGold},#{freeGold},#{rechargeGold},#{payWay},#{rechargeWay},#{rechargeTime},#{rechargeVoucher},#{adminId},#{remark},1,#{adminName})"
})
@Options(useGeneratedKeys = true,keyColumn = "recharge_id",keyProperty = "rechargeId")
int insert(Recharge recharge);
@Insert({
"INSERT INTO recharge",
"(jwcode,order_code,activity_id,paid_gold,free_gold,recharge_gold,pay_way,recharge_way,recharge_time,recharge_voucher,admin_id,remark,flag,admin_name)",
"values ",
"(#{jwcode},#{orderCode},#{activityId},#{paidGold}*100,#{freeGold}*100,#{rechargeGold},#{payWay},#{rechargeWay},#{rechargeTime},#{rechargeVoucher},#{adminId},#{remark},1,#{adminName})"
})
@Options(useGeneratedKeys = true,keyColumn = "recharge_id",keyProperty = "rechargeId")
int insert1(Recharge recharge);
@Insert({
"<script>",
"INSERT INTO recharge (",
"jwcode, order_code, activity_id, paid_gold, free_gold, recharge_gold, pay_way, recharge_way, recharge_time, recharge_voucher, admin_id, remark, flag)",
@ -38,39 +52,50 @@ public interface RechargeMapper {
"<script>",
"UPDATE recharge",
"<set>",
"<if test= 'flag!=null '>flag=#{flag},</if>",
"<if test= 'flag!=null'>flag=#{flag},</if>",
"</set>",
"where recharge_id=#{rechargeId}",
"</script>"
})
int update(Recharge recharge);
@Select({
"<script>",
"SELECT user.`name` as user_name,recharge.jwcode,recharge.create_time,recharge.recharge_time," +
"recharge.recharge_way,recharge.remark,recharge.paid_gold,recharge.free_gold,recharge.recharge_gold,recharge.pay_way,recharge.recharge_voucher," +
"recharge.recharge_id,recharge.activity_id,recharge.admin_id,activity.activity_name,audit.`status`,audit.audit_id,audit.reson, admin.name,user.area,audit.detail_id FROM recharge",
"LEFT JOIN audit ON recharge.recharge_id = audit.recharge_id",
"LEFT JOIN `user` ON recharge.jwcode = `user`.jwcode",
"LEFT JOIN activity on recharge.activity_id = activity.activity_id",
"LEFT JOIN `admin` on recharge.admin_id = `admin`.admin_id",
"<where>",
"flag='1'",
"<if test='jwcode!=null and jwcode.length>0'>and recharge.jwcode=#{jwcode}</if>",
"<if test='activityId!=null'>and recharge.activity_id=#{activityId}</if>",
"<if test='adminId!=null'>and recharge.admin_id=#{adminId}</if>",
"<if test='startDate != null and endDate != null'>AND recharge.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"<if test='payWay!=null and payWay.length>0 '>and pay_way like concat('%',#{payWay},'%')</if>",
"<if test='rechargeWay!=null and rechargeWay.length>0 '>and recharge_way like concat('%',#{rechargeWay},'%')</if>",
"<if test='area!=null and area.length>0'>and user.area=#{area}</if>",
"<if test='status!=null'>and audit.status=#{status}</if>",
"</where>",
"ORDER BY recharge.create_time DESC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT user.`name` as user_name,recharge.jwcode,recharge.create_time,recharge.recharge_time," +
// "recharge.recharge_way,recharge.remark,recharge.paid_gold,recharge.free_gold,recharge.recharge_gold,recharge.pay_way,recharge.recharge_voucher," +
// "recharge.recharge_id,recharge.activity_id,recharge.admin_id,activity.activity_name,audit.`status`,audit.audit_id,audit.reson, admin.name,user.area,audit.detail_id FROM recharge",
// "LEFT JOIN audit ON recharge.recharge_id = audit.recharge_id",
// "LEFT JOIN `user` ON recharge.jwcode = `user`.jwcode",
// "LEFT JOIN activity on recharge.activity_id = activity.activity_id",
// "LEFT JOIN `admin` on recharge.admin_id = `admin`.admin_id",
// "<where>",
// "flag='1'",
// "<if test='jwcode!=null and jwcode.length>0'>and recharge.jwcode=#{jwcode}</if>",
// "<if test='activityId!=null'>and recharge.activity_id=#{activityId}</if>",
// "<if test='adminId!=null'>and recharge.admin_id=#{adminId}</if>",
// "<if test='startDate != null and endDate != null'>AND recharge.create_time BETWEEN #{startDate} AND #{endDate}</if>",
// "<if test='payWay!=null and payWay.length>0 '>and pay_way like concat('%',#{payWay},'%')</if>",
// "<if test='rechargeWay!=null and rechargeWay.length>0 '>and recharge_way like concat('%',#{rechargeWay},'%')</if>",
// "<if test='area!=null and area.length>0'>and user.area=#{area}</if>",
// "<if test='status!=null'>and audit.status=#{status}</if>",
// "</where>",
// "<choose>",
// " <!-- 优先使用前端传入的排序参数 -->",
// " <when test='sortField != null or sortOrder != null'>",
// " ORDER BY ${sortField} ${sortOrder}",
// " </when>",
// " <!-- 默认排序 -->",
// " <otherwise>",
// "ORDER BY recharge.create_time DESC",
// " </otherwise>",
// "</choose>",
//
// "</script>"
// })
List<RechargeVo> select(RechargeVo rechargeVo);
//根据jwcode和充值类型判断有没有有首充标识设为0否者设为1
@Select({"select count(*) from detail",
"where jwcode=#{jwcode} and update_type='0'"})
int getAllByjwAndup(String jwcode);
}

62
src/main/java/com/example/demo/mapper/RefundMapper.java

@ -2,7 +2,7 @@ package com.example.demo.mapper;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.entity.Detail;
import com.example.demo.domain.vo.RefundA;
import org.apache.ibatis.annotations.*;
import java.util.List;
@ -10,6 +10,8 @@ import java.util.List;
@Mapper
public interface RefundMapper {
List<RefundA> getRefundA(RefundA refundA);
@Insert({
"insert into detail",
"(jwcode,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type,order_code)",
@ -21,9 +23,9 @@ public interface RefundMapper {
@Insert({
"insert into detail_y",
"(jwcode,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type,order_code,area,username,name,consume_platform)",
"(jwcode,refund_type,refund_goods,contact_id,recharge_coin,free_coin,task_coin,remark,admin_id,create_time,update_type,order_code,area,username,name,consume_platform,refund_flag)",
"values",
"(#{jwcode},#{refundType},#{refundGoods},#{contactId},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),2,#{orderCode},#{area},#{username},#{name},'金币系统')"
"(#{jwcode},#{refundType},#{refundGoods},#{contactId},#{rechargeCoin},#{freeCoin},#{taskCoin},#{remark},#{adminId},now(),2,#{orderCode},#{area},#{username},#{name},'金币系统',0)"
})
@Options(useGeneratedKeys = true, keyColumn = "detaily_id", keyProperty = "detailyId")
int inserty(Detail detail);
@ -66,32 +68,42 @@ public interface RefundMapper {
int update(@Param("detailId") Integer detailId);
//退款成功将detail表中的的记录退款状态改为已退款
@Update("update detail set refund_flag = 0 where detail_id = #{contactId}")
@Update("update detail_y set refund_flag = 0 where detaily_id = #{contactId}")
int updateOrderCode(Integer contactId);
@Select("select * from detail where detail_id = #{detailId} and detail_flag = 1")
Detail selectByDetailId(Integer detailId);
@Select({
"<script>",
"SELECT d.jwcode,d.refund_type,d.refund_goods,d.recharge_coin,d.free_coin,d.task_coin,d.remark,d.create_time,d.detail_id,",
" u.area, a.name AS adminName,",
" u.name AS userName,",
" au.status , au.reson AS auditReson,au.refund_id,au.audit_id",
"FROM detail d",
"LEFT JOIN `admin` a ON d.admin_id = a.admin_id",
"LEFT JOIN `user` u ON d.jwcode = u.jwcode",
"LEFT JOIN audit au ON d.detail_id = au.refund_id",
"WHERE d.detail_flag = 1 and update_type = 2 ",
"<if test='status!=null'>and au.status=#{status}</if>",
"<if test='area!=null and area.length>0'>AND u.area = #{area}</if>",
"<if test='jwcode != null'>AND d.jwcode = #{jwcode}</if>",
"<if test='refundType != null and refundType.length>0'>AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')</if>",
"<if test='refundGoods != null and refundGoods.length>0'>AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')</if>",
"<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>",
"ORDER BY d.create_time DESC",
"</script>"
})
List<Detail> select(Detail detail);
// @Select({
// "<script>",
// "SELECT d.jwcode,d.refund_type,d.refund_goods,d.recharge_coin,d.free_coin,d.task_coin,d.remark,d.create_time,d.detail_id,",
// " u.area, a.name AS adminName,",
// " u.name AS userName,",
// " au.status , au.reson AS auditReson,au.refund_id,au.audit_id",
// "FROM detail d",
// "LEFT JOIN `admin` a ON d.admin_id = a.admin_id",
// "LEFT JOIN `user` u ON d.jwcode = u.jwcode",
// "LEFT JOIN audit au ON d.detail_id = au.refund_id",
// "WHERE d.detail_flag = 1 and update_type = 2 ",
// "<if test='status!=null'>and au.status=#{status}</if>",
// "<if test='area!=null and area.length>0'>AND u.area = #{area}</if>",
// "<if test='jwcode != null'>AND d.jwcode = #{jwcode}</if>",
// "<if test='refundType != null and refundType.length>0'>AND d.refund_type LIKE CONCAT('%', #{refundType}, '%')</if>",
// "<if test='refundGoods != null and refundGoods.length>0'>AND d.refund_goods LIKE CONCAT('%', #{refundGoods}, '%')</if>",
// "<if test='startDate != null and endDate != null'>AND d.create_time BETWEEN #{startDate} AND #{endDate}</if>",
//
// "<choose>",
// " <!-- 优先使用前端传入的排序参数 -->",
// " <when test='sortField != null or sortOrder != null'>",
// " ORDER BY ${sortField} ${sortOrder}",
// " </when>",
// " <!-- 默认排序 -->",
// " <otherwise>",
// "ORDER BY d.create_time DESC",
// " </otherwise>",
// "</choose>",
// "</script>"
// })
List<Detail> select(Detail detail);
}

350
src/main/java/com/example/demo/mapper/StatisticsMapper.java

@ -10,31 +10,31 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
@Mapper
public interface StatisticsMapper {
List<Meium> getMeium(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
//全年累计金币数
@Select("SELECT SUM(recharge_coin) AS rechargeSumCoin, " +
" SUM(free_coin) AS freeSumCoin, " +
" SUM(task_coin) AS taskSumCoin, " +
" (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalSumCoin " +
@Select("SELECT SUM(recharge_coin) / 100 AS rechargeSumCoin, " +
" SUM(free_coin) / 100 AS freeSumCoin, " +
" SUM(task_coin) / 100 AS taskSumCoin, " +
" (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin))/ 100 AS totalSumCoin " +
"FROM `detail_y` " +
"WHERE update_type = '0' " +
" AND create_time >= CONCAT(YEAR(CURDATE()), '-01-01') " +
" AND create_time < NOW()")
Statistics getTotalYearCoin();
//免费金币分类
@Select("SELECT SUM(free_6) AS free6SumCoin,SUM(free_12) AS free12SumCoin From user_gold")
@Select("SELECT SUM(free_6) / 100 AS free6SumCoin,SUM(free_12) / 100 AS free12SumCoin From user_gold")
Statistics getFreeCoinTotal();
//昨日新增
@Select("SELECT SUM(recharge_coin) AS rechargeYesterdaySumCoin, " +
" SUM(free_coin) AS freeYesterdaySumCoin, " +
" SUM(task_coin) AS taskYesterdaySumCoin, " +
" (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin)) AS totalYesterdaySumCoin " +
@Select("SELECT SUM(recharge_coin) / 100 AS rechargeYesterdaySumCoin, " +
" SUM(free_coin) / 100 AS freeYesterdaySumCoin, " +
" SUM(task_coin) / 100 AS taskYesterdaySumCoin, " +
" (SUM(recharge_coin) + SUM(free_coin) + SUM(task_coin))/ 100 AS totalYesterdaySumCoin " +
"FROM `detail_y` " +
"WHERE update_type = '0' " +
" AND create_time >= CURDATE() - INTERVAL 1 DAY " +
@ -77,10 +77,10 @@ public interface StatisticsMapper {
//金币系统1
@Select("SELECT p.subjects AS subject, " +
" d.consume_platform,"+
" SUM(d.recharge_coin) AS rechargeCoinSystemSum, " +
" SUM(d.free_coin) AS freeCoinSystemSum, " +
" SUM(d.task_coin) AS taskCoinSystemSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalCoinSystemSum " +
" SUM(d.recharge_coin) / 100 AS rechargeCoinSystemSum, " +
" SUM(d.free_coin) / 100 AS freeCoinSystemSum, " +
" SUM(d.task_coin) / 100 AS taskCoinSystemSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin))/ 100 AS totalCoinSystemSum " +
"FROM detail_y d " +
"JOIN product p ON d.product_id = p.product_id " +
"WHERE d.update_type = '1' AND " +
@ -91,10 +91,10 @@ public interface StatisticsMapper {
//ERP1
@Select("SELECT p.subjects AS subject, " +
" d.consume_platform,"+
" SUM(d.recharge_coin) AS rechargeERPSum, " +
" SUM(d.free_coin) AS freeERPSum, " +
" SUM(d.task_coin) AS taskERPSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalERPSum " +
" SUM(d.recharge_coin) / 100 AS rechargeERPSum, " +
" SUM(d.free_coin) / 100 AS freeERPSum, " +
" SUM(d.task_coin) / 100 AS taskERPSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin))/ 100 AS totalERPSum " +
"FROM detail_y d " +
"JOIN product p ON d.product_id = p.product_id " +
"WHERE d.update_type = '1' AND " +
@ -104,10 +104,10 @@ public interface StatisticsMapper {
// //HomilyChart1
@Select("SELECT p.subjects AS subject, " +
" d.consume_platform,"+
" SUM(d.recharge_coin) AS rechargeHomilyChartSum, " +
" SUM(d.free_coin) AS freeHomilyChartSum, " +
" SUM(d.task_coin) AS taskHomilyChartSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalHomilyChartSum " +
" SUM(d.recharge_coin) / 100 AS rechargeHomilyChartSum, " +
" SUM(d.free_coin) / 100 AS freeHomilyChartSum, " +
" SUM(d.task_coin) / 100 AS taskHomilyChartSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalHomilyChartSum " +
"FROM detail_y d " +
"JOIN product p ON d.product_id = p.product_id " +
"WHERE d.update_type = '1' AND " +
@ -118,10 +118,10 @@ public interface StatisticsMapper {
// //HomilyLink1
@Select("SELECT p.subjects AS subject, " +
" d.consume_platform,"+
" SUM(d.recharge_coin) AS rechargeHomilyLinkSum, " +
" SUM(d.free_coin) AS freeHomilyLinkSum, " +
" SUM(d.task_coin) AS taskHomilyLinkSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalHomilyLinkSum " +
" SUM(d.recharge_coin) / 100 AS rechargeHomilyLinkSum, " +
" SUM(d.free_coin) / 100 AS freeHomilyLinkSum, " +
" SUM(d.task_coin) / 100 AS taskHomilyLinkSum, " +
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS totalHomilyLinkSum " +
"FROM detail_y d " +
"JOIN product p ON d.product_id = p.product_id " +
"WHERE d.update_type = '1' AND " +
@ -130,15 +130,15 @@ public interface StatisticsMapper {
List<Statistics> getHomilyLinkSum();
//--------------------------------------------------------------------------------------------//
@Select({"SELECT today.rechargeSumCoin AS todayRecharge," ,
"yesterday.rechargeSumCoin AS yesterdayRecharge," ,
"today.freeSumCoin AS todayFree,",
"yesterday.freeSumCoin AS yesterdayFree," ,
"today.taskSumCoin AS todayTask," ,
"yesterday.taskSumCoin ASHsterdayTask," ,
"(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) AS todayTotalCoin," ,
"(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin) AS yesterdayTotalCoin," ,
"((today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) -(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin)) AS coinDifference" ,
@Select({"SELECT today.rechargeSumCoin / 100 AS todayRecharge," ,
"yesterday.rechargeSumCoin / 100 AS yesterdayRecharge," ,
"today.freeSumCoin / 100 AS todayFree,",
"yesterday.freeSumCoin / 100 AS yesterdayFree," ,
"today.taskSumCoin / 100 AS todayTask," ,
"yesterday.taskSumCoin / 100 AS HsterdayTask," ,
"(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) / 100 AS todayTotalCoin," ,
"(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin) / 100 AS yesterdayTotalCoin," ,
"((today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) -(yesterday.rechargeSumCoin + yesterday.freeSumCoin + yesterday.taskSumCoin)) / 100 AS coinDifference" ,
"FROM (SELECT SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE create_time <= CURRENT_TIMESTAMP) AS today" ,
"JOIN ( SELECT SUM(recharge_coin) AS rechargeSumCoin,SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE DATE(create_time) <= CURDATE() - INTERVAL 1 DAY) AS yesterday"})
SumCoin getSumCoin();
@ -147,38 +147,37 @@ public interface StatisticsMapper {
@Select({"SELECT SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END) AS yearRecharge," ,
"SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END) AS yearFree," +
" SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END) AS yearTask," +
" SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearConsumeCoin,",
" SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END) AS totalRechargeRefund," ,
" SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END) AS totalFreeRefund," ,
" SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END) AS totalTaskRefund," ,
" SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearRefundCoin," ,
" SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END)+SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) AS yearsumCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN recharge_coin ELSE 0 END) AS yearSumRechargeCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN free_coin ELSE 0 END) AS yearSumFreeCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN task_coin ELSE 0 END) AS yearSumTaskCoin",
@Select({"SELECT SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END) / 100 AS yearRecharge," ,
"SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END) / 100 AS yearFree," +
" SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END) / 100 AS yearTask," +
" SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearConsumeCoin,",
" SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END) / 100 AS totalRechargeRefund," ,
" SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END) / 100 AS totalFreeRefund," ,
" SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END) / 100 AS totalTaskRefund," ,
" SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearRefundCoin," ,
" SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100+SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100 AS yearsumCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN recharge_coin ELSE 0 END) / 100 AS yearSumRechargeCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN free_coin ELSE 0 END) / 100 AS yearSumFreeCoin,",
" SUM(CASE WHEN update_type IN ('1', '2') THEN task_coin ELSE 0 END) / 100 AS yearSumTaskCoin",
"FROM detail_y WHERE YEAR(create_time) = YEAR(CURRENT_DATE)" ,
" AND create_time <= NOW()"})
SumCoin getYearConsumeCoin();
@Select({
"SELECT IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END), 0) AS todayRecharge,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END), 0) AS todayFree,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END), 0) AS todayTask,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayConsumeCoin,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END), 0) AS total_recharge_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END), 0) AS total_free_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END), 0) AS total_task_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS dayRefundCoin,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) +",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END), 0) AS daysumCoin",
"SELECT IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin ELSE 0 END) / 100, 0) AS todayRecharge,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN free_coin ELSE 0 END) / 100, 0) AS todayFree,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN task_coin ELSE 0 END) / 100, 0) AS todayTask,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS dayConsumeCoin,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin ELSE 0 END) / 100, 0) AS total_recharge_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN free_coin ELSE 0 END) / 100, 0) AS total_free_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN task_coin ELSE 0 END) / 100, 0) AS total_task_refund,",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS dayRefundCoin,",
" IFNULL(SUM(CASE WHEN update_type = '1' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) +",
" IFNULL(SUM(CASE WHEN update_type = '2' THEN recharge_coin + free_coin + task_coin ELSE 0 END) / 100, 0) AS daysumCoin",
"FROM `detail_y` WHERE DATE(create_time) = CURDATE() - INTERVAL 1 DAY"
})
SumCoin getDayConsumeCoin();
// @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
// " SUM(recharge_coin) AS rechargeSumCoin," ,
// " SUM(free_coin) AS freeSumCoin,",
@ -199,22 +198,22 @@ public interface StatisticsMapper {
// })
@Select({
"<script>",
"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
" SUM(recharge_coin) AS rechargeSumCoin," ,
" SUM(free_coin) AS freeSumCoin," ,
" SUM(task_coin) AS taskSumCoin" ,
" FROM detail_y" ,
" WHERE update_type = '0'" ,
"<if test='searchStartTime != null and searchEndTime != null'>",
" AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
"</if>",
"GROUP BY month ORDER BY month ASC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month," ,
// " SUM(recharge_coin) / 100 AS rechargeSumCoin," ,
// " SUM(free_coin) / 100 AS freeSumCoin," ,
// " SUM(task_coin) / 100 AS taskSumCoin" ,
// " FROM detail_y" ,
// " WHERE update_type = '0'" ,
// "<if test='searchStartTime != null and searchEndTime != null'>",
// " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
// "</if>",
// "GROUP BY month ORDER BY month ASC",
// "</script>"
// })
List<SumCoin> getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuPayCoin(@Param("searchStartTime") Date StartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
//本年--1
@ -224,51 +223,51 @@ public interface StatisticsMapper {
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = '1'" +
// "GROUP BY month ORDER BY month asc"
// })
@Select({
"<script>",
"SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,",
" SUM(recharge_coin) AS rechargeSumCoin,",
" SUM(free_coin) AS freeSumCoin,",
" SUM(task_coin) AS taskSumCoin",
"FROM detail_y",
"WHERE update_type = '1'",
"<if test='searchStartTime != null and searchEndTime != null'>",
" AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
"</if>",//之前没有加动态SQL如果前端传递空数据库会查不到
"GROUP BY month",
"ORDER BY month ASC",
"</script>"
})
// @Select({
// "<script>",
// "SELECT DATE_FORMAT(create_time, '%Y-%m') AS month,",
// " SUM(recharge_coin) / 100 AS rechargeSumCoin,",
// " SUM(free_coin) / 100 AS freeSumCoin,",
// " SUM(task_coin) / 100 AS taskSumCoin",
// "FROM detail_y",
// "WHERE update_type = '1'",
// "<if test='searchStartTime != null and searchEndTime != null'>",
// " AND create_time BETWEEN #{searchStartTime} AND #{searchEndTime}",
// "</if>",//之前没有加动态SQL如果前端传递空数据库会查不到
// "GROUP BY month",
// "ORDER BY month ASC",
// "</script>"
// })
List<SumCoin> getMediuConsumeCoin(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuConsumeCoin(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
// 本月 ---0
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
"from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
"and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
})
List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
// @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
// "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = 0 group by DATE_FORMAT(create_time,'%m-%d')"
// })
List<SumCoin> getMediuPayCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
"from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
"and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
})
// @Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
// "from detail_y where datediff(create_time,#{searchStartTime})>=0 " +
// "and datediff(create_time,#{searchEndTime})<=0 and update_type = 1 group by DATE_FORMAT(create_time,'%m-%d')"
// })
List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
List<SumCoin> getMediuCounsumeCoinyue(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime, List<String> areas);
@Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
"IFNULL(SUM(recharge_coin), 0) AS rechargeSumCoin,",
"IFNULL(SUM(free_coin), 0) AS freeSumCoin,",
"IFNULL(SUM(task_coin), 0) AS taskSumCoin",
"FROM detail_y",
"WHERE DATE(create_time) = #{searchEndTime}",
"AND update_type = #{updateType}",
"GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
})
List<SumCoin> getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
// @Select({"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
// "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
// "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
// "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
// "FROM detail_y",
// "WHERE DATE(create_time) = #{searchEndTime}",
// "AND update_type = #{updateType}",
// "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
// })
List<SumCoin> getMediuPayCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType, List<String> areas);
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
@ -276,21 +275,21 @@ public interface StatisticsMapper {
})
List<SumCoin> getMediuConsumeCoinday1(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
"IFNULL(SUM(recharge_coin), 0) AS rechargeSumCoin,",
"IFNULL(SUM(free_coin), 0) AS freeSumCoin,",
"IFNULL(SUM(task_coin), 0) AS taskSumCoin",
"FROM detail_y",
"WHERE DATE(create_time) = #{searchEndTime}",
"AND update_type = #{updateType}",
"GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
})
List<SumCoin> getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType);
// @Select({
// "SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS day,",
// "IFNULL(SUM(recharge_coin) / 100, 0) AS rechargeSumCoin,",
// "IFNULL(SUM(free_coin) / 100, 0) AS freeSumCoin,",
// "IFNULL(SUM(task_coin) / 100, 0) AS taskSumCoin",
// "FROM detail_y",
// "WHERE DATE(create_time) = #{searchEndTime}",
// "AND update_type = #{updateType}",
// "GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')"
// })
List<SumCoin> getMediuConsumeCoinday(@Param("searchEndTime") Date searchEndTime, @Param("updateType") Integer updateType, List<String> areas);
//给定时间段--10
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) AS rechargeSumCoin,sum(free_coin) as freeSumCoin ,sum(task_coin) as taskSumCoin " +
@Select({"select DATE_FORMAT(create_time,'%Y-%m-%d') as day,sum(recharge_coin) / 100 AS rechargeSumCoin,sum(free_coin) / 100 as freeSumCoin ,sum(task_coin) / 100 as taskSumCoin " +
"from detail_y where recharge_coin>0 and datediff(create_time,#{searchStartTime})>=0 " +
"and datediff(create_time,#{searchEndTime})<=0 and update_type = '0' group by DATE_FORMAT(create_time,'%m-%d')"
})
@ -298,9 +297,9 @@ public interface StatisticsMapper {
@Select({
"SELECT m.day,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END), 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END), 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END), 0) AS taskSumCoin",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) / 100, 0) AS rechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) / 100, 0) AS freeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) / 100, 0) AS taskSumCoin",
"FROM (",
" SELECT DATE_ADD(#{searchStartTime}, INTERVAL n DAY) AS day",
" FROM (",
@ -321,20 +320,20 @@ public interface StatisticsMapper {
@Select({"SELECT today.jwcode," ,
"today.rechargeSumCoin AS todayRecharge," ,
"today.freeSumCoin AS todayFree,",
"today.taskSumCoin AS todayTask," ,
"(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) AS todayTotalCoin" ,
"today.rechargeSumCoin / 100 AS todayRecharge," ,
"today.freeSumCoin / 100 AS todayFree,",
"today.taskSumCoin / 100 AS todayTask," ,
"(today.rechargeSumCoin + today.freeSumCoin + today.taskSumCoin) / 100 AS todayTotalCoin" ,
"FROM (SELECT jwcode, SUM(recharge_coin) AS rechargeSumCoin, SUM(free_coin) AS freeSumCoin, SUM(task_coin) AS taskSumCoin FROM detail_y WHERE create_time <= CURRENT_TIMESTAMP) AS today" ,
"where jwcode=#{jwcode}"})
SumCoin getMess(Integer jwcode);
@Select({"SELECT u.area " ,
" SUM(d.recharge_coin) AS totalRecharge," ,
" SUM(d.free_coin) AS totalFree," ,
" SUM(d.task_coin) AS totalTask," ,
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS todayTotalCoin" ,
" SUM(d.recharge_coin) / 100 AS totalRecharge," ,
" SUM(d.free_coin) / 100 AS totalFree," ,
" SUM(d.task_coin) / 100 AS totalTask," ,
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS todayTotalCoin" ,
"FROM detail_y d" ,
"INNER JOIN activity a ON d.activity_id = a.activity_id" ,
"INNER JOIN user u ON a.user_id = u.user_id" ,
@ -347,11 +346,11 @@ public interface StatisticsMapper {
List<SumCoin> getMediumAreaPay();
@Select({"SELECT u.area " ,
" SUM(d.recharge_coin) AS totalRecharge," ,
" SUM(d.free_coin) AS totalFree," ,
" SUM(d.task_coin) AS totalTask," ,
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS todayTotalCoin" ,
@Select({"SELECT u.area, " ,
" SUM(d.recharge_coin) / 100 AS totalRecharge," ,
" SUM(d.free_coin) / 100 AS totalFree," ,
" SUM(d.task_coin) / 100 AS totalTask," ,
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin) / 100) AS todayTotalCoin" ,
"FROM detail_y d" ,
"INNER JOIN user u ON u.jwcode = d.jwcode",
"WHERE d.update_type = '1'",
@ -368,9 +367,9 @@ public interface StatisticsMapper {
@Select({
"SELECT m.week,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END), 0) AS xrechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END), 0) AS xfreeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END), 0) AS xtaskSumCoin",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) / 100 0) AS xrechargeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.free_coin ELSE 0 END) / 100, 0) AS xfreeSumCoin,",
" COALESCE(SUM(CASE WHEN d.update_type = '1' THEN d.task_coin ELSE 0 END) / 100, 0) AS xtaskSumCoin",
"FROM (",
" SELECT DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL n WEEK), '%Y-%u') AS week",
" FROM (",
@ -391,10 +390,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.update_type = '0')) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.update_type = '0')) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
@ -409,10 +408,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
@ -427,10 +426,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 0 ",
@ -444,18 +443,18 @@ public interface StatisticsMapper {
List<Meium> getBuyAndTask(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
"SELECT d.area,",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) +SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode ",
"WHERE update_type = 0 ",
"<if test='searchStartTime != null and searchEndTime != null'>",
"AND DATE(d.create_time) BETWEEN DATE(#{searchStartTime}) AND DATE(#{searchEndTime})",
"</if>",
"GROUP BY u.area",
"GROUP BY d.area",
"order by totalRechargeSum desc",
"</script>"
})
@ -463,10 +462,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1 ",
@ -481,10 +480,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode and u.name=d.username",
"WHERE update_type = 1 ",
@ -499,10 +498,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) +SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"left JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1 ",
@ -517,10 +516,10 @@ public interface StatisticsMapper {
@Select({
"<script>",
"SELECT u.area,",
" SUM(d.recharge_coin) AS rechargeSumCoin,",
" SUM(d.free_coin) AS freeSumCoin,",
" SUM(d.task_coin) AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) AS totalRechargeSum",
" SUM(d.recharge_coin) / 100 AS rechargeSumCoin,",
" SUM(d.free_coin) / 100 AS freeSumCoin,",
" SUM(d.task_coin) / 100 AS taskSumCoin,",
" (SUM(d.recharge_coin) + SUM(d.free_coin) + SUM(d.task_coin)) / 100 AS totalRechargeSum",
"FROM detail_y d",
"LEFT JOIN user u ON u.jwcode = d.jwcode",
"WHERE update_type = 1",
@ -536,7 +535,6 @@ public interface StatisticsMapper {
"</script>"
})
List<Meium> getPay(@Param("searchStartTime") Date searchStartTime, @Param("searchEndTime") Date searchEndTime);
}

19
src/main/java/com/example/demo/mapper/UserMapper.java

@ -10,6 +10,10 @@ import java.util.List;
@Mapper
public interface UserMapper {
int add(User user);
int addUserGold(UserGold userGold);
@Select({
"<script>",
"select jwcode from user",
@ -21,7 +25,7 @@ public interface UserMapper {
List<String> selectJwcode();
@Select({
"<script>",
"select name from user",
"select * from user",
"<where>",
"<if test='jwcode!=null and jwcode.length>0'>and jwcode=#{jwcode}</if>",
"</where>",
@ -54,18 +58,17 @@ public interface UserMapper {
" SUM(CASE WHEN d.update_type = '0' THEN d.recharge_coin ELSE 0 END) AS total_recharge_gold, \n" +
" SUM(CASE WHEN d.update_type = '1' THEN d.recharge_coin ELSE 0 END) AS total_spend_gold, \n" +
" COUNT(CASE WHEN d.update_type = '0' THEN 1 END) AS recharge_times, \n" +
" COUNT(CASE WHEN d.update_type = '1' THEN 1 END) AS spend_times, \n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '0' THEN 1 END) AS pending_recharge_times, \n" +
" COUNT(CASE WHEN a.status = 0 AND d.update_type = '1' THEN 1 END) AS pending_spend_times \n" +
" COUNT(CASE WHEN d.update_type = '1' THEN 1 END) AS spend_times\n" +
"FROM\n" +
" user_gold u\n" +
"LEFT JOIN user on user.jwcode=u.jwcode",
"LEFT JOIN\n" +
" detail d ON u.jwcode = d.jwcode\n" +
"LEFT JOIN\n" +
" audit a ON d.detail_id = a.detail_id AND a.audit_flag = 1\n" +
" detail_y d ON u.jwcode = d.jwcode\n" +
"WHERE\n" +
" u.jwcode =#{jwcode}\n"
" u.jwcode =#{jwcode}"
})
UserVo selectA(UserVo userVo);

23
src/main/java/com/example/demo/mapperLink/DouMapper.java

@ -0,0 +1,23 @@
package com.example.demo.mapperLink;
import com.example.demo.domain.dou.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface DouMapper {
int add(Records Records);
Member searchinfo(Searchinfo jwcode);
Integer searchId(@Param("jwcode")String jwcode);
List<Yve> getYve(Yve yve);
YveTotal getYveTotal(YveTotal yveTotal);
List<String> getIp();
List<Spend> getSpend(Spend spend);
Integer getSpendTotal(SpendTotal spendTotal);
List<Pay> getPay(Pay pay);
List<String> getPayIp();
Total getTotal(Total total);
}

16
src/main/java/com/example/demo/mapperPay/PayMapper.java

@ -0,0 +1,16 @@
package com.example.demo.mapperPay;
import com.example.demo.domain.dou.Pay;
import com.example.demo.domain.dou.RechargeTotal;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface PayMapper {
List<Pay> getPay(Pay pay);
List<String> getPayIp();
List<String> getStyle();
RechargeTotal getRechargeTotal(RechargeTotal rechargeTotal);
}

2
src/main/java/com/example/demo/security/SecurityConfig.java

@ -60,7 +60,7 @@ public class SecurityConfig {
request
.requestMatchers( HttpMethod.POST,
// 用户不登录就可以访问的路径
"/admin/login","/upload/**").permitAll()
"/admin/login","/upload/**","/detailY/ERP").permitAll()
.requestMatchers(
"/error","alipay/**","/upload/**"
).permitAll()

3
src/main/java/com/example/demo/security/TokenFilter.java

@ -229,10 +229,11 @@ public class TokenFilter extends OncePerRequestFilter {
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// 检查是否是上传请求
boolean isErpRequest = request.getRequestURI().startsWith("/ERP") || request.getRequestURI().contains("ERP");
boolean isUploadRequest = request.getRequestURI().startsWith("/upload");
System.out.println(request.getRequestURI());
System.out.println(isUploadRequest);
if (isUploadRequest) {
if (isUploadRequest ) {
// 如果是上传请求直接将请求传递给下一个过滤器或目标资源
filterChain.doFilter(request, response);
return;

44
src/main/java/com/example/demo/security/UploadFilter.java

@ -0,0 +1,44 @@
package com.example.demo.security;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
import org.springframework.web.multipart.MultipartResolver;
import java.io.IOException;
@Component
public class UploadFilter extends OncePerRequestFilter {
private final MultipartResolver multipartResolver;
public UploadFilter(MultipartResolver multipartResolver) {
this.multipartResolver = multipartResolver;
}
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
// 检查请求是否为上传请求这里假设上传请求的路径以 "/upload" 开头
boolean isUploadRequest = request.getRequestURI().startsWith("/upload");
System.out.println(isUploadRequest);
System.out.println("MultipartResolver: " + multipartResolver);
if (isUploadRequest ) {
System.out.println("执行upload-------------------------------");
// 如果是上传请求且Content-Type为multipart/form-data直接将请求传递给下一个过滤器或目标资源
filterChain.doFilter(request, response);
} else {
// 如果不是上传请求执行一些自定义逻辑
// 例如可以在这里添加令牌验证或其他安全检查
// 继续执行过滤器链
filterChain.doFilter(request, response);
}
}
}

1
src/main/java/com/example/demo/serviceImpl/ActivityServiceImpl.java

@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;

60
src/main/java/com/example/demo/serviceImpl/AdminServiceImpl.java

@ -21,6 +21,7 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import java.util.List;
@ -39,10 +40,20 @@ public class AdminServiceImpl implements AdminService {
@Override
public int add(Admin admin) {
//判断jwcode是否已存在
Admin admin1=adminMapper.selectByJwcode(admin.getJwcode());
if(!ObjectUtils.isEmpty(admin1)){
throw new RuntimeException("用户已存在");
}
//设置密码
if(ObjectUtils.isEmpty(admin.getPassword())){
admin.setPassword("$2a$10$jKrLD.8RTPzk4oe6c27b0ec9QP4DodbCVQLrLIEXS0xeT2vsp9cJK");
}else {
admin.setPassword(admin.getPassword());
}
return adminMapper.insert(admin);
}
@CacheEvict(value = "admin",allEntries = true)
@Override
public int edit(Admin admin) {
return adminMapper.update(admin);
@ -72,22 +83,59 @@ public class AdminServiceImpl implements AdminService {
}
@Override
public Admin login(Admin admin) throws Exception {
System.out.println("第一步");
Admin admin1=adminMapper.selectByJwcode(admin.getJwcode());
String[] machineIds = admin1.getMachineId().split(",");
boolean flag = false;
for(String machineId:machineIds) {
if (admin.getMachineId() != null && admin.getMachineId().equals(machineId))
flag = true;
}
if (!flag) {
throw new RuntimeException("你没有使用该机器的权限!");
}
System.out.println(admin.getJwcode());
System.out.println(admin.getPassword());
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(admin.getJwcode(),admin.getPassword());
System.out.println(token+"第二步");
try {
Authentication authentication = authenticationManager.authenticate(token);
System.out.println(authentication+"第一步");
Admin loginAdmin = (Admin) authentication.getPrincipal();
System.out.println(token);
System.out.println(loginAdmin+"logAdmin");
return loginAdmin;
}catch (BadCredentialsException exception){
throw new BadCredentialsException("用户或密码错误");
}
}
@Override
public List<String> store() {
return adminMapper.selectStore();
}
@Override
public List<String> area() {
return adminMapper.selectArea();
}
@Override
public List<Admin> selectNo(Admin admin) {
Admin admin1 = adminMapper.selectByJwcode(admin.getJwcode());
if (ObjectUtils.isEmpty(admin1)) {
throw new RuntimeException("用户不存在");
}
try {
int permission = Integer.parseInt(admin1.getPermission());
if (permission == 1 || permission == 2 || permission == 3) {
throw new RuntimeException("用户已有权限");
}
} catch (NumberFormatException e) {
throw new RuntimeException("权限字段格式错误");
}
return adminMapper.selectNo(admin);
}
}

21
src/main/java/com/example/demo/serviceImpl/AuditServiceImpl.java

@ -3,13 +3,15 @@ package com.example.demo.serviceImpl;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.mapper.*;
import com.example.demo.mapper.AuditMapper;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.mapper.RefundMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.AuditService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
@ -100,6 +102,7 @@ public class AuditServiceImpl implements AuditService {
BigDecimal paidGold =audit.getPaidGold();
BigDecimal freeGold =audit.getFreeGold();
BigDecimal rechargeGold =audit.getRechargeGold();
String remark =audit.getRemark();
String Way=audit.getRechargeWay();
String uuid = audit.getOrderCode();
@ -139,11 +142,15 @@ public class AuditServiceImpl implements AuditService {
System.out.println(uuid+"/*/*/*-/-*/-/*-/-*/-/*-/*-/-*");
detailY.setOrderCode(uuid);
detailY.setFirstRecharge(0);
System.out.println(detailY);
result = detailYMapper.add(detailY);
if (result != 1) {
throw new Exception("Failed to insert another entity");
}
// result = detailYMapper.add(detailY);
if(paidGold != null && paidGold.compareTo(BigDecimal.ZERO) != 0) {
GoldTistV2.addCoinNew(jwcode, 64, paidGold.doubleValue()/100, remark, 0, name, "金币充值");
}
if(freeGold != null && freeGold.compareTo(BigDecimal.ZERO) != 0) {
GoldTistV2.addCoinNew(jwcode, 63, freeGold.doubleValue()/100, remark, 0, name, "金币充值");
}
}
return auditMapper.update(audit);
}

52
src/main/java/com/example/demo/serviceImpl/ConsumeServiceImpl.java

@ -2,10 +2,10 @@ package com.example.demo.serviceImpl;
import com.example.demo.Util.GoldTistV2;
import com.example.demo.domain.entity.*;
import com.example.demo.domain.vo.ConsumeDetail;
import com.example.demo.domain.vo.DetailVo;
import com.example.demo.domain.vo.DetailYVo;
import com.example.demo.domain.vo.SumConsume;
import com.example.demo.mapper.ConsumeMapper;
import com.example.demo.mapper.UserMapper;
import com.example.demo.sevice.ConsumeService;
@ -15,7 +15,6 @@ import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -35,7 +34,7 @@ public class ConsumeServiceImpl implements ConsumeService {
ConsumeMapper consumeMapper;
private final UserMapper userMapper;
private final UserServiceImpl userService;
@CacheEvict(value = "consume,detailY", allEntries = true)
@CacheEvict(value = {"consume", "detailY"}, allEntries = true)
@Override
//新增消费记录
public int insert(DetailY detailY) throws Exception {
@ -56,6 +55,7 @@ public class ConsumeServiceImpl implements ConsumeService {
String username =detailY.getUsername();
String area = detailY.getArea();
String jwcode = detailY.getJwcode();
String product = detailY.getProductName();
UserGold userGold = userMapper.selectGold(jwcode);
BigDecimal buyJb =userGold.getBuyJb();
BigDecimal coreJb=userGold.getCoreJb();
@ -73,14 +73,30 @@ public class ConsumeServiceImpl implements ConsumeService {
boolean isAfterJune = currentMonth.getValue() > Month.JUNE.getValue();
// 根据月份更新 free6 free12
if (isBeforeJune||isJune) {
// 如果是六月前更新 free6
BigDecimal free6 = userGold.getFree6().add(freeGold1);
userGold.setFree6(free6);
if (isBeforeJune || isJune) {
// 如果是六月前优先扣减 free6
BigDecimal free6 = userGold.getFree6();
if (free6.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) {
// 如果 free6 足够扣减直接扣减
userGold.setFree6(free6.add(freeGold1));
} else {
// 如果 free6 不足扣减 free6 0剩余部分从 free12 扣减
BigDecimal remaining = free6.add(freeGold1); // 剩余需要扣减的金币
userGold.setFree6(BigDecimal.ZERO); // free6 归零
userGold.setFree12(userGold.getFree12().add(remaining)); // free12 扣减剩余部分
}
} else if (isAfterJune) {
// 如果是六月后更新 free12
BigDecimal free12 = userGold.getFree12().add(freeGold1);
userGold.setFree12(free12);
// 如果是六月后优先扣减 free12
BigDecimal free12 = userGold.getFree12();
if (free12.add(freeGold1).compareTo(BigDecimal.ZERO) >= 0) {
// 如果 free12 足够扣减直接扣减
userGold.setFree12(free12.add(freeGold1));
} else {
// 如果 free12 不足扣减 free12 0剩余部分从 free6 扣减
BigDecimal remaining = free12.add(freeGold1); // 剩余需要扣减的金币
userGold.setFree12(BigDecimal.ZERO); // free12 归零
userGold.setFree6(userGold.getFree6().add(remaining)); // free6 扣减剩余部分
}
}
// 设置更新后的Sumgold回到user对象
@ -94,7 +110,7 @@ public class ConsumeServiceImpl implements ConsumeService {
// 更新用户对象以反映新的余额
result = userMapper.updateGold(userGold);
GoldTistV2.addCoinNew(jwcode, 65, (paidGold1.add(freeGold1).add(taskGold1).divide(new BigDecimal("100"))).doubleValue(), "购买商品", paidGold1.doubleValue(),name,product);
return result;
@ -124,7 +140,17 @@ public class ConsumeServiceImpl implements ConsumeService {
return new PageInfo<>(list);
}
public List<Detail> getDeatil(Integer jwcode){
@Override
public SumConsume getSumConsume(SumConsume sumConsume) {
return consumeMapper.getSumConsume(sumConsume);
}
@Override
public List<String> getConsume() {
return consumeMapper.getConsume();
}
public List<Detail> getDeatil(String jwcode){
return consumeMapper.getDeatil(jwcode);
}

1
src/main/java/com/example/demo/serviceImpl/DetailServiceImpl.java

@ -9,7 +9,6 @@ import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

34
src/main/java/com/example/demo/serviceImpl/DetailYServiceImpl.java

@ -4,6 +4,7 @@ import com.example.demo.domain.entity.DetailY;
import com.example.demo.domain.entity.UserDetailExport;
import com.example.demo.domain.vo.DetailExport;
import com.example.demo.domain.vo.DetailYgold;
import com.example.demo.domain.vo.SumDetailY;
import com.example.demo.mapper.DetailYMapper;
import com.example.demo.sevice.DetailYService;
import com.github.pagehelper.PageHelper;
@ -50,9 +51,23 @@ public class DetailYServiceImpl implements DetailYService {
@Cacheable(key = "#root.method.name + ':' + #pageNum + '-' + #pageSize + '-' + #detailY.hashCode()")
@Override
public PageInfo<DetailY> getDetailByPage(int pageNum, int pageSize, DetailY detailY) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
if(detailY.getNum()!=null) {
if (detailY.getNum().equals("1")) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
} else if (detailY.getNum().equals("2")) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select1(detailY);
return new PageInfo<>(list);
}
}
else if (detailY.getNum() == null) {
PageHelper.startPage(pageNum, pageSize);
List<DetailY> list = detailYMapper.select(detailY);
return new PageInfo<>(list);
}
return null;
}
@Override
@ -60,6 +75,19 @@ public class DetailYServiceImpl implements DetailYService {
return detailYMapper.searchAll(detailExport);
}
@Override
public List<SumDetailY> getDetailY(SumDetailY sumdetailY) {
System.out.println("------------------------------------------------------------------");
System.out.println(detailYMapper.getDetailY(sumdetailY));
System.out.println("------------------------------------------------------------------");
return detailYMapper.getDetailY(sumdetailY);
}
@Override
public List<String> getarea() {
return detailYMapper.getarea();
}
// @Override
// public List<UserDetailExport> searchAll(UserDetailExport userDetailExport) {
// return detailYMapper.searchExport();

193
src/main/java/com/example/demo/serviceImpl/DouServiceImpl.java

@ -0,0 +1,193 @@
package com.example.demo.serviceImpl;
import com.example.demo.Util.BaseDES;
import com.example.demo.Util.BaseDES2;
import com.example.demo.domain.dou.*;
import com.example.demo.domain.vo.RechargeVo;
import com.example.demo.mapperLink.DouMapper;
import com.example.demo.mapperPay.PayMapper;
import com.example.demo.sevice.DouService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.UUID;
@Service
@Transactional
@RequiredArgsConstructor
@CacheConfig(cacheNames = "dou")
public class DouServiceImpl implements DouService {
private final DouMapper douMapper;
private final PayMapper payMapper;
private final RestTemplate restTemplate;
@Override
public int add(Records records) throws Exception {
Integer uid = douMapper.searchId(records.getJwcode());
if(uid == null){
throw new Exception("用户不存在");
}
Integer moneyFree = records.getMoneyFree() != null ? records.getMoneyFree() : 0;
Integer moneyBuy = records.getMoneyBuy() != null ? records.getMoneyBuy() : 0;
// 3. 构造请求 URL 和参数
String baseUrl = "http://39.101.133.168:8828/hljw/api/user/gold";
String jwcode1 = records.getJwcode();
BaseDES2 des = new BaseDES2();
String jwcode= des.encrypt(jwcode1);
String op = ""; // 初始化操作类型
String url = ""; // 初始化 URL
// 假设 jwcode 已经加密
if(records.getData()==0){
op = "recharge";
}
else if(records.getData()==1){
op = "cost";
}
// 根据业务逻辑设置操作类型
// 假设 records 中有 gold 字段
String content = records.getContent(); // 假设 records 中有 content 字段
if(moneyBuy!=0){
UUID orderNo = UUID.randomUUID();
Integer gold = moneyBuy;
url = baseUrl + "?jwcode=" + jwcode + "&op=" + op + "&gold=" + gold + "&content=" + content +"&order_no=" + orderNo;
}
if(moneyFree!=0){
Integer gold = moneyFree;
url = baseUrl + "?jwcode=" + jwcode + "&op=" + op + "&gold=" + gold + "&content=" + content;
}
// 构造完整 URL
System.out.println(url);
// 4. 调用接口
ResponseEntity<String> response = restTemplate.getForEntity(url, String.class);
// 5. 处理响应
if (response.getStatusCode().is2xxSuccessful()) {
// 解析响应内容假设返回 JSON
String responseBody = response.getBody();
// 进一步处理响应数据
System.out.println("Response: " + responseBody);
} else {
throw new RuntimeException("接口调用失败,HTTP 状态码:" + response.getStatusCode());
}
// 返回结果根据业务逻辑决定返回值
return 1; // 示例返回值
}
@Override
public Member searchinfo(Searchinfo jwcode) throws Exception {
Integer uid = douMapper.searchId(jwcode.getJwcode());
if(uid == null){
throw new Exception("用户不存在");
}
return douMapper.searchinfo(jwcode);
}
@Override
public List<Yve> getYve(Yve yve) {
return douMapper.getYve(yve);
}
@Override
public YveTotal getYveTotal(YveTotal yveTotal) {
return douMapper.getYveTotal(yveTotal);
}
@Override
public List<String> getIp() {
return douMapper.getIp();
}
@Override
public Object searchForPage(Integer pageNum, Integer pageSize, Yve yve) {
PageHelper.startPage(pageNum, pageSize);
List<Yve> list= douMapper.getYve(yve);
return new PageInfo<>(list);
}
@Override
public List<String> getStyle() {
return payMapper.getStyle();
}
@Override
public List<String> getPayIp() {
return douMapper.getPayIp();
}
@Override
public List<Pay> getPay(Pay pay) {
return douMapper.getPay(pay);
}
@Override
public Object searchPay(Integer pageNum, Integer pageSize, Pay pay) {
PageHelper.startPage(pageNum, pageSize);
List<Pay> list= douMapper.getPay(pay);
return new PageInfo<>(list);
}
@Override
public List<Spend> getSpend(Spend spend) {
return douMapper.getSpend(spend);
}
@Override
public Object searchSpend(Integer pageNum, Integer pageSize, Spend spend) {
PageHelper.startPage(pageNum, pageSize);
List<Spend> list= douMapper.getSpend(spend);
return new PageInfo<>(list);
}
@Override
public Integer getSpendTotal(SpendTotal spendTotal) {
return douMapper.getSpendTotal(spendTotal);
}
@Override
public RechargeTotal getRechargeTotal(RechargeTotal rechargeTotal) {
return payMapper.getRechargeTotal(rechargeTotal);
}
@Override
public List<Pay> SearchPay(Pay pay) {
return payMapper.getPay(pay);
}
@Override
public List<String> SearchStyle() {
return payMapper.getStyle();
}
@Override
public List<String> SearchPayIp() {
return payMapper.getPayIp();
}
@Override
public Object SearchPay(Integer pageNum, Integer pageSize, Pay pay) {
PageHelper.startPage(pageNum, pageSize);
List<Pay> list= payMapper.getPay(pay);
return new PageInfo<>(list);
}
@Override
public Total getTotal(Total total) {
return douMapper.getTotal(total);
}
}

31
src/main/java/com/example/demo/serviceImpl/OneServiceImpl.java

@ -0,0 +1,31 @@
package com.example.demo.serviceImpl;
import com.example.demo.domain.work.One;
import com.example.demo.domain.work.Three;
import com.example.demo.domain.work.Two;
import com.example.demo.mapper.OneMapper;
import com.example.demo.sevice.OneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class OneServiceImpl implements OneService {
@Autowired
private OneMapper oneMapper;
@Override
public One getOne(String token,List<String> areas) throws Exception {
return oneMapper.getOne(areas);
}
@Override
public Two getTwo(String token,List<String> areas) throws Exception {
return oneMapper.getTwo(areas);
}
@Override
public Three getThree(String token,List<String> areas) throws Exception {
return oneMapper.getThree(areas);
}
}

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

Loading…
Cancel
Save