30262728@qq.com 8 hours ago
parent
commit
f42f823729
38 changed files with 189 additions and 246 deletions
  1. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/controller/C2cAdController.java
  2. 5 5
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/controller/C2cOrderController.java
  3. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdCreateDTO.java
  4. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdLogDTO.java
  5. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdTranDTO.java
  6. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdViewDTO.java
  7. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cOrderCreateDTO.java
  8. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/setting/AdSetting.java
  9. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cAdEntity.java
  10. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cAdLogEntity.java
  11. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cOrderEntity.java
  12. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cAdLogServiceImpl.java
  13. 22 21
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cAdServiceImpl.java
  14. 38 38
      qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cOrderServiceImpl.java
  15. 2 2
      qnfhq-api/src/main/java/com/qnfhq/modules/trade/service/impl/TCurrencyOrderServiceImpl.java
  16. 2 16
      qnfhq-api/src/main/java/com/qnfhq/modules/user/dao/AppAssetDao.java
  17. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/user/dto/AppAssetDTO.java
  18. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/user/entity/AppAssetEntity.java
  19. 1 1
      qnfhq-api/src/main/java/com/qnfhq/modules/user/enums/AssetEnum.java
  20. 5 25
      qnfhq-api/src/main/java/com/qnfhq/modules/user/service/AppAssetService.java
  21. 20 44
      qnfhq-api/src/main/java/com/qnfhq/modules/user/service/impl/AppAssetServiceImpl.java
  22. 20 6
      qnfhq-api/src/main/java/com/qnfhq/modules/user/service/impl/AppUserServiceImpl.java
  23. 1 1
      qnfhq-api/src/main/resources/i18n/validation.properties
  24. 1 1
      qnfhq-api/src/main/resources/i18n/validation_de.properties
  25. 1 1
      qnfhq-api/src/main/resources/i18n/validation_en.properties
  26. 1 1
      qnfhq-api/src/main/resources/i18n/validation_es.properties
  27. 1 1
      qnfhq-api/src/main/resources/i18n/validation_fr.properties
  28. 1 1
      qnfhq-api/src/main/resources/i18n/validation_ja.properties
  29. 1 1
      qnfhq-api/src/main/resources/i18n/validation_ko.properties
  30. 1 1
      qnfhq-api/src/main/resources/i18n/validation_th.properties
  31. 1 1
      qnfhq-api/src/main/resources/i18n/validation_tw.properties
  32. 1 1
      qnfhq-api/src/main/resources/i18n/validation_vi.properties
  33. 1 1
      qnfhq-api/src/main/resources/i18n/validation_zh.properties
  34. 25 16
      qnfhq-api/src/main/resources/logback-spring.xml
  35. 1 1
      qnfhq-api/src/main/resources/mapper/c2c/C2cAdDao.xml
  36. 1 1
      qnfhq-api/src/main/resources/mapper/c2c/C2cAdLogDao.xml
  37. 6 6
      qnfhq-api/src/main/resources/mapper/c2c/C2cOrderDao.xml
  38. 11 34
      qnfhq-api/src/main/resources/mapper/user/AppAssetDao.xml

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/controller/C2cAdController.java

@@ -78,7 +78,7 @@ public class C2cAdController extends ApiBaseController {
         if(!DirectionEnum.isValidCode(direction)) {
             return result.error(MessageUtils.message("merchant.param.direction.invalid"));//参数direction值不正确
         }
-        String symbol = request.getCoin().toLowerCase();
+        String symbol = request.getSymbol().toLowerCase();
         String legalCoin = request.getLegalCoin().toUpperCase();
         Integer priceType = request.getPriceType();
         BigDecimal price = request.getPrice();//价格
@@ -107,7 +107,7 @@ public class C2cAdController extends ApiBaseController {
         SettingEntity setting = settingService.getSetting(SettingEnum.AD_SETTING.name());
         List<AdSetting> adSettingsList = JSONUtil.toList(JSONUtil.parseArray(setting.getSettingValue()), AdSetting.class);
         if (!CollectionUtils.isEmpty(adSettingsList)) {
-            Map<String, List<AdSetting>> symbolGroup = adSettingsList.stream().collect(Collectors.groupingBy(AdSetting::getCoin));
+            Map<String, List<AdSetting>> symbolGroup = adSettingsList.stream().collect(Collectors.groupingBy(AdSetting::getSymbol));
             List<AdSetting> symbolSettingList = symbolGroup.get(symbol);
             AdSetting adSet = null;
             for(AdSetting adSetting : symbolSettingList) {

+ 5 - 5
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/controller/C2cOrderController.java

@@ -153,7 +153,7 @@ public class C2cOrderController extends ApiBaseController {
         if(direction.intValue() == DirectionEnum.SELL.getCode().intValue()) {
             AppAssetEntity tAppAsset = new AppAssetEntity();
             tAppAsset.setUserId(loginUserId);
-            tAppAsset.setCoin(c2cOrder.getCoin());
+            tAppAsset.setSymbol(c2cOrder.getSymbol());
             tAppAsset.setType(AssetEnum.PLATFORM_ASSETS.getCode());
             List<AppAssetEntity> assetList = appAssetService.selectList(tAppAsset);
             if(assetList==null || assetList.size()==0) {
@@ -172,14 +172,14 @@ public class C2cOrderController extends ApiBaseController {
         if(c2cAd==null) {
             //清除缓存
             Integer adDirection = direction.intValue() == DirectionEnum.SELL.getCode().intValue() ? DirectionEnum.BUY.getCode() : DirectionEnum.SELL.getCode();
-            c2cAdService.deleteAdCache(c2cOrder.getC2cAdId(), c2cOrder.getPayType().toString(), c2cOrder.getLegalCoin(), c2cOrder.getCoin(), adDirection);
+            c2cAdService.deleteAdCache(c2cOrder.getC2cAdId(), c2cOrder.getPayType().toString(), c2cOrder.getLegalCoin(), c2cOrder.getSymbol(), adDirection);
             return error(MessageUtils.message("c2c.order.param.adid"));//广告编号无效
         }
         if(c2cAd.getStatus().intValue()== AdStatusEnum.NOPASS.getCode()) {
             //清除缓存
             Integer adDirection = c2cAd.getDirection();
             String adLegalCoin = c2cAd.getLegalCoin();
-            String adSymbol = c2cAd.getCoin();
+            String adSymbol = c2cAd.getSymbol();
             String adPayway = c2cAd.getPayway().replaceAll("^,|,$", "");
             c2cAdService.deleteAdCache(c2cAd.getId(), adPayway, adLegalCoin, adSymbol, adDirection);
             return error(MessageUtils.message("c2c.order.param.adid.invalid"));//广告已不可用
@@ -191,7 +191,7 @@ public class C2cOrderController extends ApiBaseController {
         BigDecimal price = c2cAd.getPrice().setScale(2, RoundingMode.DOWN);
 
         String unit = c2cOrder.getUnit().toLowerCase();
-        String symbol = c2cOrder.getCoin().toLowerCase();
+        String symbol = c2cOrder.getSymbol().toLowerCase();
         //数币金额
         BigDecimal symbolAmount = BigDecimal.ZERO;
         //法币金额
@@ -207,7 +207,7 @@ public class C2cOrderController extends ApiBaseController {
         if(direction.intValue() == DirectionEnum.SELL.getCode().intValue()) {
             AppAssetEntity tAppAsset = new AppAssetEntity();
             tAppAsset.setUserId(loginUserId);
-            tAppAsset.setCoin(c2cOrder.getCoin());
+            tAppAsset.setSymbol(c2cOrder.getSymbol());
             tAppAsset.setType(AssetEnum.PLATFORM_ASSETS.getCode());
             List<AppAssetEntity> assetList = appAssetService.selectList(tAppAsset);
             if(assetList==null || assetList.size()==0) {

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdCreateDTO.java

@@ -30,8 +30,8 @@ public class C2cAdCreateDTO implements Serializable {
 	private String legalCoin;
 
 	@SchemaProperty(name = "交易币种")
-    @NotBlank(message="{NotBlank.coin}")//交易币种不能为空
-	private String coin;
+    @NotBlank(message="{NotBlank.symbol}")//交易币种不能为空
+	private String symbol;
 
 	@SchemaProperty(name = "数量")
     @NotNull(message="{NotNull.num}")//数量不能为空

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdLogDTO.java

@@ -26,7 +26,7 @@ public class C2cAdLogDTO implements Serializable {
 	private Long orderId;
 
 	@SchemaProperty(name = "数币的数量")
-	private BigDecimal coinNum;
+	private BigDecimal symbolNum;
 
 	@SchemaProperty(name = "变更前剩余可用数币的数量")
 	private BigDecimal beforeAvailNum;

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdTranDTO.java

@@ -30,8 +30,8 @@ public class C2cAdTranDTO implements Serializable {
 	private String legalCoin;
 
 	@SchemaProperty(name = "交易币USDT")
-    @NotBlank(message="{NotBlank.coin}")//交易币种不能为空
-	private String coin;
+    @NotBlank(message="{NotBlank.symbol}")//交易币种不能为空
+	private String symbol;
 
 	@SchemaProperty(name = "买入法币的数量/卖出数币的数量")
     @NotNull(message="{NotNull.num}")//数量不能为空

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cAdViewDTO.java

@@ -33,8 +33,8 @@ public class C2cAdViewDTO implements Serializable {
     private String legalCoin;
 
     @SchemaProperty(name = "交易币USDT")
-    @NotBlank(message="{NotBlank.coin}")//交易币种不能为空
-    private String coin;
+    @NotBlank(message="{NotBlank.symbol}")//交易币种不能为空
+    private String symbol;
 
 	@SchemaProperty(name = "数币的总数量")
 	private BigDecimal amount;

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/C2cOrderCreateDTO.java

@@ -29,8 +29,8 @@ public class C2cOrderCreateDTO implements Serializable {
 	private String legalCoin;
 
 	@SchemaProperty(name = "交易币种")
-    @NotBlank(message="{NotBlank.coin}")//交易币种不能为空
-	private String coin;
+    @NotBlank(message="{NotBlank.symbol}")//交易币种不能为空
+	private String symbol;
 
 	@SchemaProperty(name = "广告编号")
     @NotNull(message="{NotNull.c2cAdId}")//广告编号不能为空

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/dto/setting/AdSetting.java

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 public class AdSetting {
 
     private String legalCoin;//法币
-    private String coin;//币种
+    private String symbol;//币种
     private BigDecimal minPrice;//最小价格
     private BigDecimal maxPrice;//最大价格
     private BigDecimal minAmount;//最小金额

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cAdEntity.java

@@ -53,7 +53,7 @@ public class C2cAdEntity implements Serializable {
     /**
      * 交易币USDT
      */
-	private String coin;
+	private String symbol;
     /**
      * 数币的总数量
      */

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cAdLogEntity.java

@@ -30,7 +30,7 @@ public class C2cAdLogEntity implements Serializable {
     /**
      * 数币的数量
      */
-	private BigDecimal coinNum;
+	private BigDecimal symbolNum;
     /**
      * 变更前剩余可用数币的数量
      */

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/entity/C2cOrderEntity.java

@@ -48,7 +48,7 @@ public class C2cOrderEntity implements Serializable {
     /**
      * 数币
      */
-	private String coin;
+	private String symbol;
     /**
      * 广告编号
      */
@@ -68,7 +68,7 @@ public class C2cOrderEntity implements Serializable {
     /**
      * 数币数量
      */
-	private BigDecimal coinNum;
+	private BigDecimal symbolNum;
     /**
      * 法币的交易金额
      */

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cAdLogServiceImpl.java

@@ -37,7 +37,7 @@ public class C2cAdLogServiceImpl extends ServiceImpl<C2cAdLogDao, C2cAdLogEntity
         C2cAdLogEntity c2cAdLogEntity = new C2cAdLogEntity();
         c2cAdLogEntity.setAdId(adId);
         c2cAdLogEntity.setOrderId(orderId);
-        c2cAdLogEntity.setCoinNum(symbolNum);
+        c2cAdLogEntity.setSymbolNum(symbolNum);
         c2cAdLogEntity.setBeforeAvailNum(availableNum);
         c2cAdLogEntity.setAfterAvailNum(afterAvailNum);
         c2cAdLogEntity.setBeforeMaxAmount(beforeMaxAmount);

+ 22 - 21
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cAdServiceImpl.java

@@ -67,7 +67,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     public Result createAd(C2cAdCreateDTO c2cAdDTO, long loginId) throws Exception {
         Result result = new Result();
         Integer direction = c2cAdDTO.getDirection();
-        String symbol = c2cAdDTO.getCoin().toLowerCase();//usdt小写
+        String symbol = c2cAdDTO.getSymbol().toLowerCase();//usdt小写
         String legalCoin = c2cAdDTO.getLegalCoin().toUpperCase();//法币大写
         Integer priceType = c2cAdDTO.getPriceType();
 
@@ -96,7 +96,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         //账户可用资金
         BigDecimal avaAmount = BigDecimal.ZERO;
         AppAssetEntity tAppAsset = new AppAssetEntity();
-        tAppAsset.setCoin(symbol);
+        tAppAsset.setSymbol(symbol);
         tAppAsset.setType(AssetEnum.PLATFORM_ASSETS.getCode());
         tAppAsset.setUserId(merchant.getUserId());
         List<AppAssetEntity> assetList = appAssetService.selectList(tAppAsset);
@@ -119,7 +119,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         c2cAd.setMerchantId(merchant.getId());
         c2cAd.setDirection(direction);
         c2cAd.setLegalCoin(legalCoin);
-        c2cAd.setCoin(symbol);
+        c2cAd.setSymbol(symbol);
         c2cAd.setNum(num);
         c2cAd.setAvailableNum(num);
         c2cAd.setPriceType(priceType);
@@ -134,8 +134,8 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
             throw new Exception(MessageUtils.message("c2c.order.save.fail"));//保存广告失败
         }
         if (direction.intValue() == DirectionEnum.SELL.getCode().intValue()) {
-            //卖出广告 冻结卖出数量的币
-            if (appAssetService.frozeAssetByUserId(c2cAd.getUserId(), c2cAd.getCoin(), c2cAd.getNum()) == 0) {
+            //冻结卖出的币
+            if (appAssetService.freezeBalance(ptAsset, c2cAd.getNum()) == 0) {
                 throw new Exception(MessageUtils.message("seller.asset.freeze.fail"));//冻结卖家资产失败
             }
         }
@@ -154,12 +154,13 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         }
 
         if (ad.getDirection().intValue() == DirectionEnum.SELL.getCode().intValue()) {
-            if (appAssetService.unblockAssetByUserId(ad.getUserId(), ad.getCoin(), ad.getAvailableNum()) == 0) {
+            AppAssetEntity asset = appAssetService.getAppAssetEntity(ad.getUserId(), ad.getSymbol(),AssetEnum.PLATFORM_ASSETS.getCode());
+            if (appAssetService.unfreezeBalance(asset, ad.getAvailableNum()) == 0) {
                 throw new Exception(MessageUtils.message("c2c.user.occupied.asset.fail"));//用户资产解冻失败
             }
         }
 
-        deleteAdCache(ad.getId(),ad.getPayway().replaceAll("^,|,$", ""),ad.getLegalCoin(),ad.getCoin(),ad.getDirection());
+        deleteAdCache(ad.getId(),ad.getPayway().replaceAll("^,|,$", ""),ad.getLegalCoin(),ad.getSymbol(),ad.getDirection());
         return result;
     }
 
@@ -206,7 +207,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         adMap.put("merchantId",c2cAd.getMerchantId());
         adMap.put("direction", c2cAd.getDirection());
         adMap.put("legalCoin", c2cAd.getLegalCoin());
-        adMap.put("coin", c2cAd.getCoin());
+        adMap.put("symbol", c2cAd.getSymbol());
         adMap.put("payway", payway);
         adMap.put("total", c2cAd.getNum());
         //可用数量
@@ -269,7 +270,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     @Override
     public Result queryTranAd(C2cAdTranDTO tranDTO) {
         Result result = new Result();
-        String tranSymbol = tranDTO.getCoin().toLowerCase();
+        String tranSymbol = tranDTO.getSymbol().toLowerCase();
         String tranLegalCoin = tranDTO.getLegalCoin().toUpperCase();
         Integer tranDirection = tranDTO.getDirection();
         //支付方式
@@ -342,19 +343,19 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     /**
      * 查询快捷交易广告
      *
-     * @param coin
+     * @param symbol
      * @param direction
      * @param legalCoin
      * @param tranAmount
      * @return
      */
-    private List<C2cAdEntity> selectC2cAdTranList(String coin,Integer direction,
+    private List<C2cAdEntity> selectC2cAdTranList(String symbol,Integer direction,
                                                   String legalCoin,BigDecimal tranAmount,Integer tag) {
         return baseDao.selectList(new LambdaQueryWrapper<C2cAdEntity>()
                     .ne(C2cAdEntity::getUserId, StpUtil.getLoginIdAsLong())
                     .eq(Objects.nonNull(direction),C2cAdEntity::getDirection, direction)
                     .eq(StrUtil.isNotBlank(legalCoin),C2cAdEntity::getLegalCoin, legalCoin)
-                    .eq(StrUtil.isNotBlank(coin),C2cAdEntity::getCoin, coin)
+                    .eq(StrUtil.isNotBlank(symbol),C2cAdEntity::getSymbol, symbol)
                     .eq(C2cAdEntity::getStatus,AdStatusEnum.PASS.getCode())
                     .eq(Objects.nonNull(tag),C2cAdEntity::getTag,tag)
                     .last(" limit 100")
@@ -405,7 +406,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         }
         params.put(Constant.PAGE,viewDTO.getPageNum());
         params.put(Constant.LIMIT,viewDTO.getPageSize());
-        String inputCoin = viewDTO.getCoin().toLowerCase();
+        String inputSymbol = viewDTO.getSymbol().toLowerCase();
         String inputLegalCoin = viewDTO.getLegalCoin().toUpperCase();
 
         // 查数据库
@@ -417,7 +418,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
                 .ne(C2cAdEntity::getUserId, StpUtil.getLoginIdAsLong())
                 .eq(Objects.nonNull(direction),C2cAdEntity::getDirection, direction)
                 .eq(StrUtil.isNotBlank(inputLegalCoin),C2cAdEntity::getLegalCoin, inputLegalCoin)
-                .eq(StrUtil.isNotBlank(inputCoin),C2cAdEntity::getCoin, inputCoin)
+                .eq(StrUtil.isNotBlank(inputSymbol),C2cAdEntity::getSymbol, inputSymbol)
                 .eq(C2cAdEntity::getStatus,AdStatusEnum.PASS.getCode())
                 .eq(Objects.nonNull(tag) && tag != -1,C2cAdEntity::getTag,tag)
                 .le(Objects.nonNull(amount),C2cAdEntity::getMinAmount,amount)
@@ -464,7 +465,7 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
         c2cAd.setUserName(Convert.toStr(adMap.get("userName")));
         c2cAd.setMerchantId(Convert.toLong(adMap.get("merchantId")));
         c2cAd.setDirection(Convert.toInt(adMap.get("direction")));
-        c2cAd.setCoin(Convert.toStr(adMap.get("coin")));
+        c2cAd.setSymbol(Convert.toStr(adMap.get("symbol")));
         c2cAd.setLegalCoin(Convert.toStr(adMap.get("legalCoin")));
         c2cAd.setNum(Convert.toBigDecimal(adMap.get("total")));
         c2cAd.setAvailableNum(Convert.toBigDecimal(adMap.get("availableNum")));
@@ -482,9 +483,9 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     private void delSetAdCache(C2cAdEntity ad) {
         if(ad != null) {
             if (ad.getStatus().intValue() == AdStatusEnum.NOPASS.getCode().intValue()) {
-                deleteAdCache(ad.getId(), ad.getPayway().replaceAll("^,|,$", ""), ad.getLegalCoin(), ad.getCoin(), ad.getDirection());
+                deleteAdCache(ad.getId(), ad.getPayway().replaceAll("^,|,$", ""), ad.getLegalCoin(), ad.getSymbol(), ad.getDirection());
             } else {
-                deleteAdCache(ad.getId(), ad.getPayway().replaceAll("^,|,$", ""), ad.getLegalCoin(), ad.getCoin(), ad.getDirection());
+                deleteAdCache(ad.getId(), ad.getPayway().replaceAll("^,|,$", ""), ad.getLegalCoin(), ad.getSymbol(), ad.getDirection());
                 setAdCache(ad);
             }
         }
@@ -514,9 +515,9 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     public boolean updateC2cAdDisabled(C2cAdEntity c2cAd) {
         Integer adDirection = c2cAd.getDirection();
         String adLegalCoin = c2cAd.getLegalCoin();
-        String adCoin = c2cAd.getCoin();
+        String adSymbol = c2cAd.getSymbol();
         String adPayway = c2cAd.getPayway().replaceAll("^,|,$", "");
-        deleteAdCache(c2cAd.getId(), adPayway, adLegalCoin, adCoin, adDirection);
+        deleteAdCache(c2cAd.getId(), adPayway, adLegalCoin, adSymbol, adDirection);
         c2cAd.setStatus(AdStatusEnum.NOPASS.getCode());
         return updateById(c2cAd);
     }
@@ -531,9 +532,9 @@ public class C2cAdServiceImpl extends BaseServiceImpl<C2cAdDao, C2cAdEntity> imp
     public void deleteC2cAdCache(C2cAdEntity c2cAd) {
         Integer adDirection = c2cAd.getDirection();
         String adLegalCoin = c2cAd.getLegalCoin();
-        String adCoin = c2cAd.getCoin();
+        String adSymbol = c2cAd.getSymbol();
         String adPayway = c2cAd.getPayway().replaceAll("^,|,$", "");
-        deleteAdCache(c2cAd.getId(), adPayway, adLegalCoin, adCoin, adDirection);
+        deleteAdCache(c2cAd.getId(), adPayway, adLegalCoin, adSymbol, adDirection);
     }
 
 

+ 38 - 38
qnfhq-api/src/main/java/com/qnfhq/modules/c2c/service/impl/C2cOrderServiceImpl.java

@@ -177,12 +177,12 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         order.setUserName(Convert.toStr(odMap.get("userName")));
         order.setDirection(Convert.toInt(odMap.get("direction")));
         order.setLegalCoin(Convert.toStr(odMap.get("legalCoin")));
-        order.setCoin(Convert.toStr(odMap.get("coin")));
+        order.setSymbol(Convert.toStr(odMap.get("symbol")));
         order.setC2cAdId(Convert.toLong(odMap.get("c2cAdId")));
         order.setTranUserId(Convert.toLong(odMap.get("tranUserId")));
         order.setTranUserName(Convert.toStr(odMap.get("tranUserName")));
         order.setTranPrice(Convert.toBigDecimal(odMap.get("tranPrice")));
-        order.setCoinNum(Convert.toBigDecimal(odMap.get("coinNum")));
+        order.setSymbolNum(Convert.toBigDecimal(odMap.get("symbolNum")));
         order.setTranAmount(Convert.toBigDecimal(odMap.get("tranAmount")));
         order.setPayType(Convert.toInt(odMap.get("payType")));
         order.setFlow(Convert.toInt(odMap.get("flow")));
@@ -203,12 +203,12 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         odMap.put("userName", c2cOrder.getUserName());
         odMap.put("direction", c2cOrder.getDirection());
         odMap.put("legalCoin", c2cOrder.getLegalCoin());
-        odMap.put("coin", c2cOrder.getCoin());
+        odMap.put("symbol", c2cOrder.getSymbol());
         odMap.put("c2cAdId", c2cOrder.getC2cAdId());
         odMap.put("tranUserId", c2cOrder.getTranUserId());
         odMap.put("tranUserName", c2cOrder.getTranUserName());
         odMap.put("tranPrice", c2cOrder.getTranPrice());
-        odMap.put("coinNum", c2cOrder.getCoinNum());
+        odMap.put("symbolNum", c2cOrder.getSymbolNum());
         odMap.put("tranAmount", c2cOrder.getTranAmount());
         odMap.put("payType", c2cOrder.getPayType());
         odMap.put("flow", c2cOrder.getFlow());
@@ -254,12 +254,12 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Result createC2cOrder(C2cOrderCreateDTO c2cOrderDTO, C2cAdEntity c2cAd, BigDecimal legalCoinAmount, BigDecimal coinNum,
+    public Result createC2cOrder(C2cOrderCreateDTO c2cOrderDTO, C2cAdEntity c2cAd, BigDecimal legalCoinAmount, BigDecimal symbolNum,
                                  Long loginUserId, String realName) throws Exception {
         /** 1买入  2 卖出 */
         Integer direction = c2cOrderDTO.getDirection();
         /** 交易币 */
-        String coin = c2cOrderDTO.getCoin().toLowerCase();
+        String symbol = c2cOrderDTO.getSymbol().toLowerCase();
         /** 法定货币 */
         String legalCoin = c2cOrderDTO.getLegalCoin().toLowerCase();
         /** 广告编号 */
@@ -276,12 +276,12 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         c2cOrder.setUserName(realName);
         c2cOrder.setDirection(direction);
         c2cOrder.setLegalCoin(legalCoin);
-        c2cOrder.setCoin(coin);
+        c2cOrder.setSymbol(symbol);
         c2cOrder.setC2cAdId(c2cAdId);
         c2cOrder.setTranUserId(tranUserId);
         c2cOrder.setTranUserName(adUserName);
         c2cOrder.setTranPrice(price);
-        c2cOrder.setCoinNum(coinNum);
+        c2cOrder.setSymbolNum(symbolNum);
         c2cOrder.setTranAmount(legalCoinAmount);
         c2cOrder.setPayType(payType);
         c2cOrder.setFlow(C2cOrderFlowEnum.PROGRESS.getCode());
@@ -297,23 +297,23 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         //用户卖出冻结资金
         if(c2cOrder.getDirection().intValue() == DirectionEnum.SELL.getCode().intValue()) {
             AppAssetEntity userPlatformAsset = appAssetService.getAppAssetEntity(c2cOrder.getUserId(),
-                    c2cOrder.getCoin(),AssetEnum.PLATFORM_ASSETS.getCode());
-            if(userPlatformAsset.getAvailable().compareTo(c2cOrder.getCoinNum())==-1) {
+                    c2cOrder.getSymbol(),AssetEnum.PLATFORM_ASSETS.getCode());
+            if(userPlatformAsset.getAvailable().compareTo(c2cOrder.getSymbolNum())==-1) {
                 throw new Exception(MessageUtils.message("c2c.order.availableAmount.insufficient"));//您的可用资产必须大于卖出数量
             }
-            if (appAssetService.frozeAssetByUserId(loginUserId, c2cOrder.getCoin(), c2cOrder.getCoinNum()) == 0) {
+            if (appAssetService.freezeBalance(userPlatformAsset, c2cOrder.getSymbolNum()) == 0) {
                 throw new Exception(MessageUtils.message("c2c.order.update.asset.fail"));//更新卖家资产失败
             }
-            appAssetLogService.insertAssetLog(c2cOrder.getId(),c2cOrder.getUserId(),c2cOrder.getCoin(),AssetEnum.PLATFORM_ASSETS.getCode(),
+            appAssetLogService.insertAssetLog(c2cOrder.getId(),c2cOrder.getUserId(),c2cOrder.getSymbol(),AssetEnum.PLATFORM_ASSETS.getCode(),
                     userPlatformAsset.getTotal(),userPlatformAsset.getTotal(),
-                    userPlatformAsset.getAvailable(),userPlatformAsset.getAvailable().subtract(c2cOrder.getCoinNum()),
-                    userPlatformAsset.getFrozen(),userPlatformAsset.getFrozen().add(c2cOrder.getCoinNum()),"c2c卖出冻结资产");
+                    userPlatformAsset.getAvailable(),userPlatformAsset.getAvailable().subtract(c2cOrder.getSymbolNum()),
+                    userPlatformAsset.getFrozen(),userPlatformAsset.getFrozen().add(c2cOrder.getSymbolNum()),"c2c卖出冻结资产");
         }
 
         // 更新广告的可用数量
         BigDecimal newMaxAmount = null;
         Integer newStatus = null;
-        BigDecimal maxAvail = c2cAd.getAvailableNum().subtract(coinNum).multiply(price);
+        BigDecimal maxAvail = c2cAd.getAvailableNum().subtract(symbolNum).multiply(price);
         if(c2cAd.getMaxAmount().compareTo(maxAvail)==1) {
             newMaxAmount = maxAvail;
         }
@@ -321,11 +321,11 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
             newStatus = AdStatusEnum.NOPASS.getCode();
             c2cAdService.deleteC2cAdCache(c2cAd);
         }
-        if (c2cAdService.updateC2cAdAvailableNumById(c2cAdId, c2cOrder.getCoinNum(), newMaxAmount, newStatus,c2cAd.getVersion()) == 0) {
+        if (c2cAdService.updateC2cAdAvailableNumById(c2cAdId, c2cOrder.getSymbolNum(), newMaxAmount, newStatus,c2cAd.getVersion()) == 0) {
             throw new Exception(MessageUtils.message("operation.fail.please.refresh"));//操作失败,请刷新后重试
         }
-        c2cAdLogService.insertC2cAdLog(c2cAdId,c2cOrder.getId(),c2cOrder.getCoinNum(),
-                c2cAd.getAvailableNum(),c2cAd.getAvailableNum().subtract(c2cOrder.getCoinNum()),
+        c2cAdLogService.insertC2cAdLog(c2cAdId,c2cOrder.getId(),c2cOrder.getSymbolNum(),
+                c2cAd.getAvailableNum(),c2cAd.getAvailableNum().subtract(c2cOrder.getSymbolNum()),
                 c2cAd.getMaxAmount(),
                 newMaxAmount!=null?newMaxAmount:c2cAd.getMaxAmount(),"创建C2C订单");
 
@@ -368,7 +368,7 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
     public int cancelC2cOrderRedis(int oldStatus,C2cOrderEntity order) {
         //redis广告可用数量恢复
         C2cAdEntity c2cAd = c2cAdService.selectById(order.getC2cAdId());
-        c2cAdService.deleteAdCache(c2cAd.getId(),c2cAd.getPayway().replaceAll("^,|,$", ""),c2cAd.getLegalCoin(),c2cAd.getCoin(),c2cAd.getDirection());
+        c2cAdService.deleteAdCache(c2cAd.getId(),c2cAd.getPayway().replaceAll("^,|,$", ""),c2cAd.getLegalCoin(),c2cAd.getSymbol(),c2cAd.getDirection());
         c2cAdService.setAdCache(c2cAd);
         deleteOrderCache(order);
 
@@ -442,14 +442,14 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         }
 
         if(order.getDirection().intValue() == DirectionEnum.SELL.getCode().intValue()) {
-            AppAssetEntity info = appAssetService.getAppAssetEntity(order.getUserId(),order.getCoin(),AssetEnum.PLATFORM_ASSETS.getCode());
-            if (appAssetService.unblockAssetByUserId(sellUserId, order.getCoin(), order.getCoinNum()) <= 0) {
+            AppAssetEntity info = appAssetService.getAppAssetEntity(order.getUserId(),order.getSymbol(),AssetEnum.PLATFORM_ASSETS.getCode());
+            if (appAssetService.unfreezeBalance(info, order.getSymbolNum()) <= 0) {
                 throw new Exception(MessageUtils.message("c2c.user.occupied.asset.fail"));//用户资产解冻失败
             }
-            appAssetLogService.insertAssetLog(order.getId(),order.getUserId(),order.getCoin(),AssetEnum.PLATFORM_ASSETS.getCode(),
+            appAssetLogService.insertAssetLog(order.getId(),order.getUserId(),order.getSymbol(),AssetEnum.PLATFORM_ASSETS.getCode(),
                     info.getTotal(),info.getTotal(),
-                    info.getAvailable(),info.getAvailable().add(order.getCoinNum()),
-                    info.getFrozen(),info.getFrozen().subtract(order.getCoinNum()),"c2c订单取消解冻资产");
+                    info.getAvailable(),info.getAvailable().add(order.getSymbolNum()),
+                    info.getFrozen(),info.getFrozen().subtract(order.getSymbolNum()),"c2c订单取消解冻资产");
         }
         //广告可用数量恢复
         C2cAdEntity c2cAd = c2cAdService.selectById(order.getC2cAdId());
@@ -457,11 +457,11 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
         if(order.getTranAmount().compareTo(c2cAd.getMaxAmount())==1) {
             maxAmount = order.getTranAmount();
         }
-        if(c2cAdService.addC2cAdAvailableNumById(order.getC2cAdId(),order.getCoinNum(),maxAmount,c2cAd.getVersion())<=0) {
+        if(c2cAdService.addC2cAdAvailableNumById(order.getC2cAdId(),order.getSymbolNum(),maxAmount,c2cAd.getVersion())<=0) {
             throw new Exception(MessageUtils.message("c2c.ad.availAmount.update.fail"));//更新广告可用数量失败
         }
-        c2cAdLogService.insertC2cAdLog(order.getC2cAdId(),order.getId(),order.getCoinNum(),
-                c2cAd.getAvailableNum(),c2cAd.getAvailableNum().add(order.getCoinNum()),
+        c2cAdLogService.insertC2cAdLog(order.getC2cAdId(),order.getId(),order.getSymbolNum(),
+                c2cAd.getAvailableNum(),c2cAd.getAvailableNum().add(order.getSymbolNum()),
                 c2cAd.getMaxAmount(),c2cAd.getMaxAmount(),"c2c订单取消,恢复广告可用数量");
         //消息通知
         c2cMsgContentService.sendOrderCancelMsg(getBuyUserId(order),sellUserId,order.getId(),order.getOrderNo());
@@ -606,12 +606,12 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
             throw new Exception(MessageUtils.message("c2c.order.update.fail"));//更新订单失败
         }
         //2 更新买家账户
-        AppAssetEntity buyerAsset = appAssetService.getAppAssetEntity(buyUserId, order.getCoin(), AssetEnum.PLATFORM_ASSETS.getCode());
+        AppAssetEntity buyerAsset = appAssetService.getAppAssetEntity(buyUserId, order.getSymbol(), AssetEnum.PLATFORM_ASSETS.getCode());
 
         //判断是否需要创建买家资产账户
         if (Objects.isNull(buyerAsset)) {
             AppUserEntity buyUser = appUserService.getById(buyUserId);
-            appAssetService.createAsset(buyUser, order.getCoin(), AssetEnum.PLATFORM_ASSETS.getCode());
+            appAssetService.createAsset(buyUser, order.getSymbol(), AssetEnum.PLATFORM_ASSETS.getCode());
 
             buyerAsset = new AppAssetEntity();
             buyerAsset.setTotal(BigDecimal.ZERO);
@@ -619,27 +619,27 @@ public class C2cOrderServiceImpl extends BaseServiceImpl<C2cOrderDao, C2cOrderEn
             buyerAsset.setAvailable(BigDecimal.ZERO);
         }
         //卖家资产
-        AppAssetEntity sellerAsset = appAssetService.getAppAssetEntity(sellUserId, order.getCoin(), AssetEnum.PLATFORM_ASSETS.getCode());
+        AppAssetEntity sellerAsset = appAssetService.getAppAssetEntity(sellUserId, order.getSymbol(), AssetEnum.PLATFORM_ASSETS.getCode());
 
-        if (appAssetService.addAssetByUserId(buyUserId, order.getCoin(), order.getCoinNum()) <= 0) {
+        if (appAssetService.addAsset(buyerAsset, order.getSymbolNum()) <= 0) {
             throw new Exception(MessageUtils.message("c2c.buyer.asset.update.fail"));//更新买家资产失败
         }
 
-        if(appAssetService.releaseAssetByUserId(sellUserId, order.getCoin(), order.getCoinNum()) <= 0) {
+        if(appAssetService.releaseAsset(sellerAsset, order.getSymbolNum()) <= 0) {
             throw new Exception(MessageUtils.message("c2c.seller.asset.update.fail"));//更新卖家资产失败
         }
 
         //买家资产变更记录
-        appWalletRecordService.generateRecord(buyUserId, order.getCoinNum(),
+        appWalletRecordService.generateRecord(buyUserId, order.getSymbolNum(),
                 RecordEnum.C2C_TRAN_BUY.getCode(), "system", order.getOrderNo(),
-                RecordEnum.C2C_TRAN_BUY.getInfo(), buyerAsset.getTotal(), buyerAsset.getTotal().add(order.getCoinNum()),
-                order.getCoin(), "");
+                RecordEnum.C2C_TRAN_BUY.getInfo(), buyerAsset.getTotal(), buyerAsset.getTotal().add(order.getSymbolNum()),
+                order.getSymbol(), "");
 
         //卖家资产变更记录
-        appWalletRecordService.generateRecord(sellUserId, order.getCoinNum(),
+        appWalletRecordService.generateRecord(sellUserId, order.getSymbolNum(),
                 RecordEnum.C2C_TRAN_SELL.getCode(), "system", order.getOrderNo(),
-                RecordEnum.C2C_TRAN_SELL.getInfo(), buyerAsset.getTotal(), buyerAsset.getTotal().subtract(order.getCoinNum()),
-                order.getCoin(), "");
+                RecordEnum.C2C_TRAN_SELL.getInfo(), buyerAsset.getTotal(), buyerAsset.getTotal().subtract(order.getSymbolNum()),
+                order.getSymbol(), "");
 
         deleteOrderCache(order);
 

+ 2 - 2
qnfhq-api/src/main/java/com/qnfhq/modules/trade/service/impl/TCurrencyOrderServiceImpl.java

@@ -150,7 +150,7 @@ public class TCurrencyOrderServiceImpl extends BaseServiceImpl<TCurrencyOrderDao
             log.info("成交金额:{}", turnover);
             log.info("可用金额:{}", baseCoinAsset.getAvailable());
             if (baseCoinAsset.getAvailable().compareTo(turnover) < 0) {
-                throw new RenException(MessageUtils.message("currency.balance.deficiency", baseCoinAsset.getCoin().toUpperCase()));//当前{0}币种余额不足
+                throw new RenException(MessageUtils.message("currency.balance.deficiency", baseCoinAsset.getSymbol().toUpperCase()));//当前{0}币种余额不足
             }
             tAppAssetService.freezeBalance(baseCoinAsset, turnover);
         } else if (tCurrencyOrder.getDirection().equals(DelegateDirectionEnum.SELL.getCode())) {
@@ -161,7 +161,7 @@ public class TCurrencyOrderServiceImpl extends BaseServiceImpl<TCurrencyOrderDao
                 throw new RenException(MessageUtils.message("currency.balance.deficiency", tCurrencyOrder.getCoin().toUpperCase()));//当前{0}币种余额不足
             }
             if (coinAsset.getAvailable().compareTo(tCurrencyOrder.getDelegateAmount()) < 0) {
-                throw new RenException(MessageUtils.message("currency.balance.deficiency", coinAsset.getCoin().toUpperCase()));//当前{0}币种余额不足
+                throw new RenException(MessageUtils.message("currency.balance.deficiency", coinAsset.getSymbol().toUpperCase()));//当前{0}币种余额不足
             }
             tAppAssetService.freezeBalance(coinAsset, tCurrencyOrder.getDelegateAmount());
         }

+ 2 - 16
qnfhq-api/src/main/java/com/qnfhq/modules/user/dao/AppAssetDao.java

@@ -19,33 +19,19 @@ import java.util.Map;
 @Mapper
 public interface AppAssetDao extends BaseMapper<AppAssetEntity> {
 
-    /**
-     * 冻结资产
-     * @param params
-     * @return
-     */
-    int frozeAssetByUserId(Map<String,Object> params);
-
-    /**
-     * 解冻资产
-     * @param params
-     * @return
-     */
-    int unblockAssetByUserId(Map<String, Object> params);
-
     /**
      * c2c买币 增加资产
      * @param params
      * @return
      */
-    int addAssetByUserId(Map<String, Object> params);
+    int addAsset(Map<String, Object> params);
 
     /**
      * C2C卖家放币 减少资产
      * @param params
      * @return
      */
-    int releaseAssetByUserId(Map<String, Object> params);
+    int releaseAsset(Map<String, Object> params);
 
     /**
      * 现货交易 冻结资产

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/user/dto/AppAssetDTO.java

@@ -27,7 +27,7 @@ public class AppAssetDTO implements Serializable {
 	private Long userId;
 
 	@SchemaProperty(name = "币种")
-	private String coin;
+	private String symbol;
 
 	@SchemaProperty(name = "资产总额")
 	private BigDecimal amout;

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/user/entity/AppAssetEntity.java

@@ -30,7 +30,7 @@ public class AppAssetEntity implements Serializable {
     /**
      * 币种
      */
-	private String coin;
+	private String symbol;
     /**
      * 资产总额
      */

+ 1 - 1
qnfhq-api/src/main/java/com/qnfhq/modules/user/enums/AssetEnum.java

@@ -21,7 +21,7 @@ public enum AssetEnum {
     /**
      * 现货资产
      */
-    SPOT_ASSETS(4,"现货账户"),
+    SPOT_ASSETS(4,"现货"),
 
 
     ;

+ 5 - 25
qnfhq-api/src/main/java/com/qnfhq/modules/user/service/AppAssetService.java

@@ -38,24 +38,6 @@ public interface AppAssetService extends IService<AppAssetEntity> {
      */
     AppAssetEntity getAppAssetEntity(Long userId, String symbol,Integer type);
 
-    /**
-     *  冻结资产
-     * @param userId
-     * @param symbol
-     * @param amout
-     * @return
-     */
-    int frozeAssetByUserId(Long userId, String symbol, BigDecimal amout);
-
-    /**
-     * 解冻资产
-     * @param userId
-     * @param symbol
-     * @param amout
-     * @return
-     */
-    int unblockAssetByUserId(Long userId, String symbol, BigDecimal amout);
-
     /**
      * 创建资产
      * @param user
@@ -68,25 +50,23 @@ public interface AppAssetService extends IService<AppAssetEntity> {
 
     /**
      * c2c买币 增加资产
-     * @param userId 用户ID
-     * @param symbol 币种
+     * @param asset
      * @param amout 金额
      * @return
      */
-    int addAssetByUserId(Long userId, String symbol, BigDecimal amout);
+    int addAsset(AppAssetEntity asset, BigDecimal amout);
 
     /**
      * C2C卖家放币 减少资产
-     * @param userId
-     * @param symbol
+     * @param asset
      * @param amout
      * @return
      */
-    int releaseAssetByUserId(Long userId, String symbol, BigDecimal amout);
+    int releaseAsset(AppAssetEntity asset, BigDecimal amout);
 
 
     /**
-     *  现货交易冻结资产
+     *  冻结可用资产
      * @param baseCoinAsset
      * @param amount 币的数量
      * @return

+ 20 - 44
qnfhq-api/src/main/java/com/qnfhq/modules/user/service/impl/AppAssetServiceImpl.java

@@ -36,7 +36,9 @@ public class AppAssetServiceImpl extends ServiceImpl<AppAssetDao, AppAssetEntity
      */
     @Override
     public List<AppAssetEntity> getUserAssets() {
-        List<AppAssetEntity> list = appAssetDao.selectList(new LambdaQueryWrapper<AppAssetEntity>().eq(AppAssetEntity::getUserId, StpUtil.getLoginIdAsLong()).eq(AppAssetEntity::getCoin, "usdt"));
+        List<AppAssetEntity> list = appAssetDao.selectList(new LambdaQueryWrapper<AppAssetEntity>()
+                .eq(AppAssetEntity::getUserId, StpUtil.getLoginIdAsLong())
+                .eq(AppAssetEntity::getSymbol, "usdt"));
         return list;
     }
 
@@ -45,7 +47,7 @@ public class AppAssetServiceImpl extends ServiceImpl<AppAssetDao, AppAssetEntity
     public List<AppAssetEntity> selectList(AppAssetEntity appAssetEntity) {
         Wrapper<AppAssetEntity> queryWrapper = new LambdaQueryWrapper<AppAssetEntity>()
                 .eq(Objects.nonNull(appAssetEntity.getUserId()),AppAssetEntity::getUserId, appAssetEntity.getUserId())
-                .eq(StrUtil.isNotBlank(appAssetEntity.getCoin()),AppAssetEntity::getCoin, appAssetEntity.getCoin())
+                .eq(StrUtil.isNotBlank(appAssetEntity.getSymbol()),AppAssetEntity::getSymbol, appAssetEntity.getSymbol())
                 .eq(Objects.nonNull(appAssetEntity.getType()),AppAssetEntity::getType, appAssetEntity.getType());
         List<AppAssetEntity> list = appAssetDao.selectList(queryWrapper);
         return list;
@@ -55,36 +57,16 @@ public class AppAssetServiceImpl extends ServiceImpl<AppAssetDao, AppAssetEntity
     public AppAssetEntity getAppAssetEntity(Long userId, String symbol,Integer type) {
         return getOne(new LambdaQueryWrapper<AppAssetEntity>()
                 .eq(Objects.nonNull(userId),AppAssetEntity::getUserId, userId)
-                .eq(StrUtil.isNotBlank(symbol),AppAssetEntity::getCoin, symbol)
+                .eq(StrUtil.isNotBlank(symbol),AppAssetEntity::getSymbol, symbol)
                 .eq(Objects.nonNull(type),AppAssetEntity::getType, type)
         );
     }
 
     @Override
-    public int frozeAssetByUserId(Long userId, String coin, BigDecimal amout) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("userId", userId);
-        map.put("coin", coin);
-        map.put("money", amout);
-        map.put("type", AssetEnum.PLATFORM_ASSETS.getCode());
-        return appAssetDao.frozeAssetByUserId(map);
-    }
-
-    @Override
-    public int unblockAssetByUserId(Long userId, String coin, BigDecimal amout) {
-        Map<String, Object> map = new HashMap<>();
-        map.put("userId", userId);
-        map.put("coin", coin);
-        map.put("money", amout);
-        map.put("type", AssetEnum.PLATFORM_ASSETS.getCode());
-        return appAssetDao.unblockAssetByUserId(map);
-    }
-
-    @Override
-    public boolean createAsset(AppUserEntity user, String coin, Integer type) {
+    public boolean createAsset(AppUserEntity user, String symbol, Integer type) {
         AppAssetEntity tAppAsset = new AppAssetEntity();
         tAppAsset.setUserId(user.getId());
-        tAppAsset.setCoin(coin);
+        tAppAsset.setSymbol(symbol);
         tAppAsset.setTotal(BigDecimal.ZERO);
         tAppAsset.setFrozen(BigDecimal.ZERO);
         tAppAsset.setAvailable(BigDecimal.ZERO);
@@ -98,36 +80,30 @@ public class AppAssetServiceImpl extends ServiceImpl<AppAssetDao, AppAssetEntity
 
     /**
      * c2c买币 增加资产
-     * @param userId
-     * @param symbol
-     * @param amout
+     * @param asset
+     * @param amount
      * @return
      */
     @Override
-    public int addAssetByUserId(Long userId, String coin, BigDecimal amout) {
+    public int addAsset(AppAssetEntity asset, BigDecimal amount) {
         Map<String, Object> map = new HashMap<>();
-        map.put("userId", userId);
-        map.put("coin", coin);
-        map.put("money", amout);
-        map.put("type", AssetEnum.PLATFORM_ASSETS.getCode());
-        return appAssetDao.addAssetByUserId(map);
+        map.put("id", asset.getId());
+        map.put("amount", amount);
+        return appAssetDao.addAsset(map);
     }
 
     /**
-     * c2c放行 接冻资产
-     * @param userId
-     * @param symbol
-     * @param amout
+     * c2c放行 减少资产
+     * @param asset
+     * @param amount
      * @return
      */
     @Override
-    public int releaseAssetByUserId(Long userId, String coin, BigDecimal amout) {
+    public int releaseAsset(AppAssetEntity asset, BigDecimal amount) {
         Map<String, Object> map = new HashMap<>();
-        map.put("userId", userId);
-        map.put("coin", coin);
-        map.put("money", amout);
-        map.put("type", AssetEnum.PLATFORM_ASSETS.getCode());
-        return appAssetDao.releaseAssetByUserId(map);
+        map.put("id", asset.getId());
+        map.put("amount", amount);
+        return appAssetDao.releaseAsset(map);
     }
 
     /**

+ 20 - 6
qnfhq-api/src/main/java/com/qnfhq/modules/user/service/impl/AppUserServiceImpl.java

@@ -212,7 +212,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
         appUserEntity.setLoginPassword(null);
         Result result = new Result();
         result.setMsg(MessageUtils.message("user.register.success"));//注册成功
-        result.setData(appUserEntity);
+//        result.setData(appUserEntity);
         return result;
     }
 
@@ -300,7 +300,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
             symbolGroup.forEach((symbol, assetList) -> {
                 AppAssetEntity tAppAsset = new AppAssetEntity();
                 tAppAsset.setUserId(user.getId());
-                tAppAsset.setCoin(symbol);
+                tAppAsset.setSymbol(symbol);
                 tAppAsset.setTotal(BigDecimal.ZERO);
                 tAppAsset.setFrozen(BigDecimal.ZERO);
                 tAppAsset.setAvailable(BigDecimal.ZERO);
@@ -314,7 +314,7 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
         //初始化玩家用户钱包-理财资产
         AppAssetEntity tAppAsset = new AppAssetEntity();
         tAppAsset.setUserId(user.getId());
-        tAppAsset.setCoin("usdt");
+        tAppAsset.setSymbol("usdt");
         tAppAsset.setTotal(BigDecimal.ZERO);
         tAppAsset.setFrozen(BigDecimal.ZERO);
         tAppAsset.setAvailable(BigDecimal.ZERO);
@@ -327,6 +327,11 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
         tAppAsset.setType(AssetEnum.CONTRACT_ASSETS.getCode());
         tAppAsset.setId(null);
         assetService.save(tAppAsset);
+
+        //初始化玩家用户钱包-现货账户
+        tAppAsset.setType(AssetEnum.SPOT_ASSETS.getCode());
+        tAppAsset.setId(null);
+        assetService.save(tAppAsset);
     }
 
 
@@ -406,7 +411,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
         sendPhoneDto.setMobile(zone + phone);
         sendPhoneDto.setCode(codeType);
         sendPhoneDto.setParams(map);
-        Result result = smsSendService.sendMobileCodeV2(sendPhoneDto);
+        //Result result = smsSendService.sendMobileCodeV2(sendPhoneDto);
+        //test 测试  start
+        Result result = new Result();
+        result.setCode(200);
+        randomCode = "123456";
+        //test 测试  end
         if (result.getCode() == 200) {
             redisUtils.set(smsKey, randomCode, ApiConstant.SMS_EXPIRE);
             final String codeTryKey = String.format("%s%s", smsKey, "try");
@@ -489,9 +499,11 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
     private void verifyResult(String codeResultKey) {
         Object codeResult = redisUtils.get(codeResultKey);
         if (Objects.isNull(codeResult) || (int) codeResult != 1) {
+            log.info("验证码未通过"+codeResultKey);
             throw new RenException(MessageUtils.message("system.busy.try.again.later"));//系统繁忙,请稍后再试
         }
-        redisUtils.delete(codeResultKey);
+        log.info("验证码通过"+codeResultKey);
+        //redisUtils.delete(codeResultKey);
     }
 
     /**
@@ -635,10 +647,12 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
                 throw new RenException(MessageUtils.message("user.register.code.err"));//验证码错误
             }
         }
-        redisUtils.delete(cacheKey);
+        log.info("=====验证码校验成功====="+cacheKey);
+        //redisUtils.delete(cacheKey);
         //设置验证结果
         final String checkCodeResult = String.format("%s%s", cacheKey, ":result");
         redisUtils.set(checkCodeResult, 1, ApiConstant.CHECK_EXPIRE);
+        log.info("=====设置验证结果成功====="+checkCodeResult);
     }
 
     @Override

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation.properties

@@ -10,7 +10,7 @@ Email.format.err=Format emel tidak betul
 NotBlank.socialAccount=Akaun sosial tidak boleh kosong  
 NotBlank.socialType=Jenis akaun sosial tidak boleh kosong  
 NotNull.direction=Arah tidak boleh kosong  
-NotBlank.coin=Mata wang perdagangan tidak boleh kosong  
+NotBlank.symbol=Mata wang perdagangan tidak boleh kosong  
 NotBlank.legalCoin=Mata wang sah tidak boleh kosong  
 NotNull.priceType=Jenis harga tidak boleh kosong  
 NotNull.price=Harga tidak boleh kosong  

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_de.properties

@@ -10,7 +10,7 @@ Email.format.err=E-Mail-Format ist nicht korrekt
 NotBlank.socialAccount=Sozialkonto darf nicht leer sein  
 NotBlank.socialType=Sozialkonto-Typ darf nicht leer sein  
 NotNull.direction=Richtung darf nicht leer sein  
-NotBlank.coin=Handelsw\u00e4hrung darf nicht leer sein  
+NotBlank.symbol=Handelsw\u00e4hrung darf nicht leer sein  
 NotBlank.legalCoin=Fiat-W\u00e4hrung darf nicht leer sein  
 NotNull.priceType=Preistyp darf nicht leer sein  
 NotNull.price=Preis darf nicht leer sein  

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_en.properties

@@ -10,7 +10,7 @@ Email.format.err=Email format is incorrect
 NotBlank.socialAccount=Social account cannot be empty
 NotBlank.socialType=Social account type cannot be empty
 NotNull.direction=Direction cannot be empty
-NotBlank.coin=Trading currency cannot be empty
+NotBlank.symbol=Trading currency cannot be empty
 NotBlank.legalCoin=Legal currency cannot be empty
 NotNull.priceType=Price type cannot be empty
 NotNull.price=Price cannot be empty

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_es.properties

@@ -10,7 +10,7 @@ Email.format.err=El formato del correo electr\u00f3nico no es correcto
 NotBlank.socialAccount=La cuenta social no puede estar vac\u00eda  
 NotBlank.socialType=El tipo de cuenta social no puede estar vac\u00edo  
 NotNull.direction=La direcci\u00f3n no puede estar vac\u00eda  
-NotBlank.coin=La moneda de transacci\u00f3n no puede estar vac\u00eda  
+NotBlank.symbol=La moneda de transacci\u00f3n no puede estar vac\u00eda  
 NotBlank.legalCoin=La moneda legal no puede estar vac\u00eda  
 NotNull.priceType=El tipo de precio no puede estar vac\u00edo  
 NotNull.price=El precio no puede estar vac\u00edo  

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_fr.properties

@@ -10,7 +10,7 @@ Email.format.err=Le format de l'email est incorrect
 NotBlank.socialAccount=Le compte social ne peut pas \u00eatre vide  
 NotBlank.socialType=Le type de compte social ne peut pas \u00eatre vide  
 NotNull.direction=La direction ne peut pas \u00eatre vide  
-NotBlank.coin=La devise de transaction ne peut pas \u00eatre vide  
+NotBlank.symbol=La devise de transaction ne peut pas \u00eatre vide  
 NotBlank.legalCoin=La monnaie l\u00e9gale ne peut pas \u00eatre vide  
 NotNull.priceType=Le type de prix ne peut pas \u00eatre vide  
 NotNull.price=Le prix ne peut pas \u00eatre vide  

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_ja.properties

@@ -10,7 +10,7 @@ Email.format.err=\u30e1\u30fc\u30eb\u5f62\u5f0f\u304c\u6b63\u3057\u304f\u3042\u3
 NotBlank.socialAccount=\u30bd\u30fc\u30b7\u30e3\u30eb\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
 NotBlank.socialType=\u30bd\u30fc\u30b7\u30e3\u30eb\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u7a2e\u985e\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
 NotNull.direction=\u65b9\u5411\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
-NotBlank.coin=\u53d6\u5f15\u901a\u8ca8\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
+NotBlank.symbol=\u53d6\u5f15\u901a\u8ca8\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
 NotBlank.legalCoin=\u6cd5\u5b9a\u901a\u8ca8\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
 NotNull.priceType=\u4fa1\u683c\u30bf\u30a4\u30d7\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093
 NotNull.price=\u4fa1\u683c\u3092\u7a7a\u306b\u3067\u304d\u307e\u305b\u3093

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_ko.properties

@@ -10,7 +10,7 @@ Email.format.err=\uc774\uba54\uc77c \ud615\uc2dd\uc774 \uc62c\ubc14\ub974\uc9c0
 NotBlank.socialAccount=\uc18c\uc15c \uacc4\uc815\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
 NotBlank.socialType=\uc18c\uc15c \uacc4\uc815 \uc720\ud615\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
 NotNull.direction=\ubc29\ud5a5\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
-NotBlank.coin=\uac70\ub798 \ud1b5\ud654\ub294 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
+NotBlank.symbol=\uac70\ub798 \ud1b5\ud654\ub294 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
 NotBlank.legalCoin=\ubc95\uc815 \ud654\ud3d0\ub294 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
 NotNull.priceType=\uac00\uaca9 \uc720\ud615\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  
 NotNull.price=\uac00\uaca9\uc740 \ube44\uc6cc\ub458 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4  

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_th.properties

@@ -10,7 +10,7 @@ Email.format.err=\u0e23\u0e39\u0e1b\u0e41\u0e1a\u0e1a\u0e2d\u0e35\u0e40\u0e21\u0
 NotBlank.socialAccount=\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e42\u0e0b\u0e40\u0e0a\u0e35\u0e22\u0e25\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
 NotBlank.socialType=\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e42\u0e0b\u0e40\u0e0a\u0e35\u0e22\u0e25\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
 NotNull.direction=\u0e17\u0e34\u0e28\u0e17\u0e32\u0e07\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
-NotBlank.coin=\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
+NotBlank.symbol=\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e43\u0e19\u0e01\u0e32\u0e23\u0e0b\u0e37\u0e49\u0e2d\u0e02\u0e32\u0e22\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
 NotBlank.legalCoin=\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e01\u0e0e\u0e2b\u0e21\u0e32\u0e22\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07
 NotNull.priceType=\u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17\u0e02\u0e2d\u0e07\u0e23\u0e32\u0e04\u0e32\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e1b\u0e47\u0e19\u0e04\u0e48\u0e32\u0e27\u0e48\u0e32\u0e07\u0e44\u0e14\u0e49
 NotNull.price=\u0e23\u0e32\u0e04\u0e32\u0e15\u0e49\u0e2d\u0e07\u0e44\u0e21\u0e48\u0e27\u0e48\u0e32\u0e07

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_tw.properties

@@ -10,7 +10,7 @@ Email.format.err=\u90f5\u7bb1\u683c\u5f0f\u4e0d\u6b63\u78ba
 NotBlank.socialAccount=\u793e\u4ea4\u5e33\u865f\u4e0d\u80fd\u7a7a
 NotBlank.socialType=\u793e\u4ea4\u5e33\u865f\u985e\u578b\u4e0d\u80fd\u7a7a
 NotNull.direction=\u65b9\u5411\u4e0d\u80fd\u70ba\u7a7a
-NotBlank.coin=\u4ea4\u6613\u5e63\u7a2e\u4e0d\u80fd\u70ba\u7a7a
+NotBlank.symbol=\u4ea4\u6613\u5e63\u7a2e\u4e0d\u80fd\u70ba\u7a7a
 NotBlank.legalCoin=\u6cd5\u5e63\u4e0d\u80fd\u70ba\u7a7a
 NotNull.priceType=\u50f9\u683c\u985e\u578b\u4e0d\u80fd\u70ba\u7a7a
 NotNull.price=\u50f9\u683c\u4e0d\u80fd\u70ba\u7a7a

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_vi.properties

@@ -10,7 +10,7 @@ Email.format.err=\u0110\u1ecbnh d\u1ea1ng email kh\u00f4ng \u0111\u00fang
 NotBlank.socialAccount=T\u00e0i kho\u1ea3n m\u1ea1ng x\u00e3 h\u1ed9i kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
 NotBlank.socialType=Lo\u1ea1i t\u00e0i kho\u1ea3n m\u1ea1ng x\u00e3 h\u1ed9i kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
 NotNull.direction=H\u01b0\u1edbng kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
-NotBlank.coin=Lo\u1ea1i ti\u1ec1n giao d\u1ecbch kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
+NotBlank.symbol=Lo\u1ea1i ti\u1ec1n giao d\u1ecbch kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
 NotBlank.legalCoin=Ti\u1ec1n ph\u00e1p \u0111\u1ecbnh kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
 NotNull.priceType=Lo\u1ea1i gi\u00e1 kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng
 NotNull.price=Gi\u00e1 kh\u00f4ng \u0111\u01b0\u1ee3c \u0111\u1ec3 tr\u1ed1ng

+ 1 - 1
qnfhq-api/src/main/resources/i18n/validation_zh.properties

@@ -10,7 +10,7 @@ Email.format.err=\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e
 NotBlank.socialAccount=\u793e\u4ea4\u8d26\u53f7\u4e0d\u80fd\u7a7a
 NotBlank.socialType=\u793e\u4ea4\u8d26\u53f7\u7c7b\u578b\u4e0d\u80fd\u7a7a
 NotNull.direction=\u65b9\u5411\u4e0d\u80fd\u4e3a\u7a7a
-NotBlank.coin=\u4ea4\u6613\u5e01\u79cd\u4e0d\u80fd\u4e3a\u7a7a
+NotBlank.symbol=\u4ea4\u6613\u5e01\u79cd\u4e0d\u80fd\u4e3a\u7a7a
 NotBlank.legalCoin=\u6cd5\u5e01\u4e0d\u80fd\u4e3a\u7a7a
 NotNull.priceType=\u4ef7\u683c\u7c7b\u578b\u4e0d\u80fd\u4e3a\u7a7a
 NotNull.price=\u4ef7\u683c\u4e0d\u80fd\u4e3a\u7a7a

+ 25 - 16
qnfhq-api/src/main/resources/logback-spring.xml

@@ -1,21 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
-    <include resource="org/springframework/boot/logging/logback/base.xml" />
-    <logger name="org.springframework.web" level="INFO"/>
-    <logger name="org.springboot.sample" level="TRACE" />
+    <contextName>logback</contextName>
+    <!--输出到控制台 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n </pattern>
+        </encoder>
+    </appender>
 
-    <!-- 开发、测试环境 -->
-    <springProfile name="dev,test">
-        <logger name="org.springframework.web" level="INFO"/>
-        <logger name="org.springboot.sample" level="INFO" />
-        <logger name="com.qnfhq" level="DEBUG" />
-    </springProfile>
-
-    <!-- 生产环境 -->
-    <springProfile name="prod">
-        <logger name="org.springframework.web" level="ERROR"/>
-        <logger name="org.springboot.sample" level="ERROR" />
-        <logger name="com.qnfhq" level="ERROR" />
-    </springProfile>
+    <!--按天生成日志 -->
+    <appender name="logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!--禁用prudent模式-->
+        <prudent>false</prudent>
+        <file>log/qnfhq-api/out.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <FileNamePattern>log/qnfhq-api/%d{yyyy-MM-dd}.%i.log.gz </FileNamePattern>
+            <maxFileSize>200MB</maxFileSize>
+            <maxHistory>100</maxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
 
+    <root level="info">
+        <appender-ref ref="console" />
+        <appender-ref ref="logFile" />
+    </root>
 </configuration>

+ 1 - 1
qnfhq-api/src/main/resources/mapper/c2c/C2cAdDao.xml

@@ -11,7 +11,7 @@
         <result property="merchantId" column="merchant_id"/>
         <result property="direction" column="direction"/>
         <result property="legalCoin" column="legal_coin"/>
-        <result property="coin" column="coin"/>
+        <result property="symbol" column="symbol"/>
         <result property="num" column="num"/>
         <result property="availableNum" column="available_num"/>
         <result property="priceType" column="price_type"/>

+ 1 - 1
qnfhq-api/src/main/resources/mapper/c2c/C2cAdLogDao.xml

@@ -6,7 +6,7 @@
     <resultMap type="com.qnfhq.modules.c2c.entity.C2cAdLogEntity" id="c2cAdLogMap">
         <result property="adId" column="ad_id"/>
         <result property="orderId" column="order_id"/>
-        <result property="coinNum" column="coin_num"/>
+        <result property="symbolNum" column="symbol_num"/>
         <result property="beforeAvailNum" column="before_avail_num"/>
         <result property="afterAvailNum" column="after_avail_num"/>
         <result property="beforeMaxAmount" column="before_max_amount"/>

+ 6 - 6
qnfhq-api/src/main/resources/mapper/c2c/C2cOrderDao.xml

@@ -10,12 +10,12 @@
         <result property="userName" column="user_name"/>
         <result property="direction" column="direction"/>
         <result property="legalCoin" column="legal_coin"/>
-        <result property="coin" column="coin"/>
+        <result property="symbol" column="symbol"/>
         <result property="c2cAdId" column="c2c_ad_id"/>
         <result property="tranUserId" column="tran_user_id"/>
         <result property="tranUserName" column="tran_user_name"/>
         <result property="tranPrice" column="tran_price"/>
-        <result property="coinNum" column="coin_num"/>
+        <result property="symbolNum" column="symbol_num"/>
         <result property="tranAmount" column="tran_amount"/>
         <result property="payType" column="pay_type"/>
         <result property="payTime" column="pay_time"/>
@@ -38,12 +38,12 @@
             <if test="userName != null">user_name,</if>
             <if test="direction != null">direction,</if>
             <if test="legalCoin != null">legal_coin,</if>
-            <if test="coin != null">coin,</if>
+            <if test="symbol != null">symbol,</if>
             <if test="c2cAdId != null">c2c_ad_id,</if>
             <if test="tranUserId != null">tran_user_id,</if>
             <if test="tranUserName != null">tran_user_name,</if>
             <if test="tranPrice != null">tran_price,</if>
-            <if test="coinNum != null">coin_num,</if>
+            <if test="symbolNum != null">symbol_num,</if>
             <if test="tranAmount != null">tran_amount,</if>
             <if test="payType != null">pay_type,</if>
             <if test="flow != null">flow,</if>
@@ -59,12 +59,12 @@
             <if test="userName != null">#{userName},</if>
             <if test="direction != null">#{direction},</if>
             <if test="legalCoin != null">#{legalCoin},</if>
-            <if test="coin != null">#{coin},</if>
+            <if test="symbol != null">#{symbol},</if>
             <if test="c2cAdId != null">#{c2cAdId},</if>
             <if test="tranUserId != null">#{tranUserId},</if>
             <if test="tranUserName != null">#{tranUserName},</if>
             <if test="tranPrice != null">#{tranPrice},</if>
-            <if test="coinNum != null">#{coinNum},</if>
+            <if test="symbolNum != null">#{symbolNum},</if>
             <if test="tranAmount != null">#{tranAmount},</if>
             <if test="payType != null">#{payType},</if>
             <if test="flow != null">#{flow},</if>

+ 11 - 34
qnfhq-api/src/main/resources/mapper/user/AppAssetDao.xml

@@ -6,7 +6,7 @@
     <resultMap type="com.qnfhq.modules.user.entity.AppAssetEntity" id="appAssetMap">
         <result property="id" column="id"/>
         <result property="userId" column="user_id"/>
-        <result property="coin" column="coin"/>
+        <result property="symbol" column="symbol"/>
         <result property="total" column="total"/>
         <result property="frozen" column="frozen"/>
         <result property="available" column="available"/>
@@ -18,52 +18,29 @@
         <result property="remark" column="remark"/>
     </resultMap>
 
-    <!-- c2c卖出 冻结资产 -->
-    <update id="frozeAssetByUserId" parameterType="java.util.Map">
-        update t_app_asset
-        <set>
-            available = available - #{money},
-            frozen= frozen + #{money},
-            update_time = now()
-        </set>
-        where user_id = #{userId} and coin =#{coin}  and type=#{type}
-    </update>
-
-    <!-- c2c卖出取消 解冻资产 -->
-    <update id="unblockAssetByUserId" parameterType="java.util.Map">
-        update t_app_asset
-        <set>
-            available = available + #{money},
-            frozen = frozen - #{money},
-            update_time = now()
-        </set>
-        where user_id = #{userId} and coin =#{coin}  and type=#{type}
-    </update>
-
     <!-- c2c买币 增加资产 -->
-    <update id="addAssetByUserId" parameterType="java.util.Map">
+    <update id="addAsset" parameterType="java.util.Map">
         update t_app_asset
         <set>
-            total = total + #{money},
-            available=available + #{money},
+            total = total + #{amount},
+            available=available + #{amount},
             update_time = now()
         </set>
-        where user_id = #{userId} and coin =#{coin} and type=#{type}
+        where id = #{id}
     </update>
 
     <!-- c2c放行 减少资产 -->
-    <update id="releaseAssetByUserId" parameterType="java.util.Map">
+    <update id="releaseAsset" parameterType="java.util.Map">
         update t_app_asset
         <set>
-            total = total - #{money},
-            frozen=frozen - #{money},
+            total = total - #{amount},
+            frozen=frozen - #{amount},
             update_time = now()
         </set>
-        where user_id = #{userId} and coin =#{coin} and type=#{type}
+        where id=#{id} and frozen>=#{amount}
     </update>
 
-
-    <!-- 现货交易 冻结资产 -->
+    <!-- 冻结可用资产 -->
     <update id="freezeBalance" parameterType="java.util.Map">
         update t_app_asset
         <set>
@@ -73,7 +50,7 @@
         where id = #{id} and available>=#{amount}
     </update>
 
-    <!-- 现货交易 解冻资产 -->
+    <!-- 解冻资产 -->
     <update id="unfreezeBalance" parameterType="java.util.Map">
         update t_app_asset
         <set>