From ea6dfba6e2550f75437398c790559b1eb98ba49d Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 04 Mar 2021 17:29:49 +0800
Subject: [PATCH] Merge branch 'whole_new' of http://120.27.238.55:7000/r/exchange into whole_new

---
 src/main/resources/i18n/messages_zh_CN.properties                                           |    1 
 src/main/java/com/xcong/excoin/modules/documentary/vo/TradeSetInfoVo.java                   |    3 +
 src/main/java/com/xcong/excoin/modules/documentary/controller/TraderController.java         |    7 +-
 src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerSettingDao.java        |    2 
 src/main/resources/mapper/documentary/FollowFollowerSettingDao.xml                          |    8 ++
 src/main/java/com/xcong/excoin/modules/documentary/dto/BeTraderDto.java                     |   26 ++++++++
 src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java       |   10 +++
 src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java          |    5 +
 src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java |   63 ++++++++++++++++++---
 src/main/resources/i18n/messages_en_US.properties                                           |    1 
 10 files changed, 113 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/documentary/controller/TraderController.java b/src/main/java/com/xcong/excoin/modules/documentary/controller/TraderController.java
index 733a709..1e7c417 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/controller/TraderController.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/controller/TraderController.java
@@ -10,6 +10,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.documentary.dto.BeTraderDto;
 import com.xcong.excoin.modules.documentary.dto.OutFollowInfoDto;
 import com.xcong.excoin.modules.documentary.dto.TradeFollowInfoDto;
 import com.xcong.excoin.modules.documentary.dto.TradeOrderInfoDto;
@@ -114,9 +115,9 @@
 	 *  成为交易员---立即入驻
 	 */
 	@ApiOperation(value="成为交易员---立即入驻", notes="成为交易员---立即入驻")
-	@GetMapping(value = "/beTrader")
-	public Result  beTrader() {
-		return documentaryService.beTrader();
+	@PostMapping(value = "/beTrader")
+	public Result  beTrader(@RequestBody @Valid BeTraderDto beTraderDto) {
+		return documentaryService.beTrader(beTraderDto);
 	}
 	
 	/**
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerSettingDao.java b/src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerSettingDao.java
index ffb1b68..48f8626 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerSettingDao.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/dao/FollowFollowerSettingDao.java
@@ -17,4 +17,6 @@
 	FollowFollowerSettingEntity selectOneBymemberIdAndTradeId(@Param("memberId")Long memberId, @Param("traderId")Long traderId);
 
 	List<FollowFollowerSettingEntity> selectAllFollowerSettingByTradeMemberId(@Param("memberId") Long memberId);
+
+	List<FollowFollowerSettingEntity> selectDocumentaryOrderSetInfosBymemberId(@Param("memberId")Long memberId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/dto/BeTraderDto.java b/src/main/java/com/xcong/excoin/modules/documentary/dto/BeTraderDto.java
new file mode 100644
index 0000000..2b5e1b7
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/documentary/dto/BeTraderDto.java
@@ -0,0 +1,26 @@
+package com.xcong.excoin.modules.documentary.dto;
+
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "BeTraderDto", description = "参数接受类")
+public class BeTraderDto {
+	
+	@ApiModelProperty("头像")
+    private String avatar;
+	
+	@NotNull(message = "名称不能为空")
+	@ApiModelProperty("名称")
+    private String nickname;
+	
+	@ApiModelProperty("宣言")
+	private String declaration;
+	
+	@NotNull(message = "标签不能为空")
+	@ApiModelProperty("标签")
+	private String labels;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
index 92ca020..696b321 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/entity/FollowTraderInfoEntity.java
@@ -34,6 +34,12 @@
      */
     private String nickname;
     /**
+     * 名称是否已修改
+     */
+    private Integer nicknameState;
+    public static final Integer STATE_Y = 1;
+    public static final Integer STATE_N = 0;
+    /**
      * 宣言
      */
     private String declaration;
@@ -70,6 +76,10 @@
     private Integer isOpen;
     public static final Integer ISOPEN_Y = 1;
     public static final Integer ISOPEN_N = 2;
+    /**
+     * 最大跟随人数
+     */
+    private Integer followNum;
     
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java b/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
index 9d4cb8d..94af144 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
@@ -2,9 +2,12 @@
 
 import javax.validation.Valid;
 
+import org.springframework.web.bind.annotation.RequestBody;
+
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
+import com.xcong.excoin.modules.documentary.dto.BeTraderDto;
 import com.xcong.excoin.modules.documentary.dto.CancelDocumentaryOrderSetDto;
 import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto;
 import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto;
@@ -50,7 +53,7 @@
 
 	public Result getFollowTraderProfit(long traderId);
 
-	public Result beTrader();
+	public Result beTrader(@Valid BeTraderDto beTraderDto);
 
 	public Result beTraderStatus();
 
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
index 0f9356c..2f93ebe 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
@@ -16,6 +16,7 @@
 import com.xcong.excoin.utils.*;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -39,6 +40,7 @@
 import com.xcong.excoin.modules.documentary.dao.FollowTraderLabelDao;
 import com.xcong.excoin.modules.documentary.dao.FollowTraderProfitDetailDao;
 import com.xcong.excoin.modules.documentary.dao.FollowTraderProfitInfoDao;
+import com.xcong.excoin.modules.documentary.dto.BeTraderDto;
 import com.xcong.excoin.modules.documentary.dto.CancelDocumentaryOrderSetDto;
 import com.xcong.excoin.modules.documentary.dto.DocumentaryOrderSetDto;
 import com.xcong.excoin.modules.documentary.dto.FollowFollowerNoticeDto;
@@ -630,8 +632,23 @@
 	public Result getDocumentaryOrderSetInfo(String tradeId) {
 		//获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        log.info("跟单---点击跟单或者编辑---"+memberId+"参数"+tradeId);
         DocumentaryOrderSetInfoVo documentaryOrderSetInfoVo = new DocumentaryOrderSetInfoVo();
         long parseLong = Long.parseLong(tradeId);
+        
+        //只能跟随一个人
+        Map<String, Object> columnMaps = new HashMap<>();
+        columnMaps.put("member_id", memberId);
+        List<FollowFollowerSettingEntity> followFollowerSettingEntityAllows = followFollowerSettingDao.selectByMap(columnMaps);
+        if(CollUtil.isNotEmpty(followFollowerSettingEntityAllows)) {
+        	for(FollowFollowerSettingEntity followFollowerSettingEntityAllow : followFollowerSettingEntityAllows) {
+        		Long tradeIdAllow = followFollowerSettingEntityAllow.getTraderId();
+        		if(parseLong != tradeIdAllow) {
+        			return Result.fail(MessageSourceUtils.getString("documentary_service_0015"));
+        		}
+        	}
+        }
+        
         //获取【跟随者设置】数据
         FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId,parseLong);
 
@@ -661,7 +678,7 @@
         if(maxFollowCnt > 0){
         	documentaryOrderSetInfoVo.setMaxFollowCnt(maxFollowCnt.toString());
 		}
-        documentaryOrderSetInfoVo.setMaxFollowCnt(null);
+        documentaryOrderSetInfoVo.setMaxFollowCnt("");
         log.info(memberId + "-最大持仓张数-"+maxFollowCnt.toString());
 		return Result.ok(documentaryOrderSetInfoVo);
 	}
@@ -739,7 +756,15 @@
 
 	@Override
 	@Transactional
-	public Result beTrader() {
+	public Result beTrader(@Valid BeTraderDto beTraderDto) {
+		//头像
+		String avatar = beTraderDto.getAvatar();
+		//昵称
+		String nickname = beTraderDto.getNickname();
+		//宣言
+		String declaration = beTraderDto.getDeclaration();
+		//标签
+		String labels = beTraderDto.getLabels();
 		//获取用户ID
         Long memberId = LoginUserUtils.getAppLoginUser().getId();
         MemberEntity memberEntity = memberDao.selectById(memberId);
@@ -777,14 +802,24 @@
         followTraderInfoEntity.setMemberId(memberId);
         followTraderInfoEntity.setProfitRatio(BigDecimal.valueOf(0.1));
 //        followTraderInfoEntity.setAvatar(FollowTraderInfoEntity.AVATAR_DEFAULT);
-        String phone = memberEntity.getPhone();
-        String email = memberEntity.getEmail();
-        if(StrUtil.isNotEmpty(phone)) {
-        	followTraderInfoEntity.setNickname(phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
-        }else {
-        	followTraderInfoEntity.setNickname(email.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)","$1****$3$4"));
+//        String phone = memberEntity.getPhone();
+//        String email = memberEntity.getEmail();
+//        if(StrUtil.isNotEmpty(phone)) {
+//        	followTraderInfoEntity.setNickname(phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"));
+//        }else {
+//        	followTraderInfoEntity.setNickname(email.replaceAll("(\\w?)(\\w+)(\\w)(@\\w+\\.[a-z]+(\\.[a-z]+)?)","$1****$3$4"));
+//        }
+        if(StrUtil.isNotEmpty(avatar)) {
+        	followTraderInfoEntity.setAvatar(avatar);
         }
-        followTraderInfoEntity.setDeclaration(FollowTraderInfoEntity.DECLARATION_DEFAULT);
+        followTraderInfoEntity.setNickname(nickname);
+        followTraderInfoEntity.setNicknameState(FollowTraderInfoEntity.STATE_Y);
+        if(StrUtil.isEmpty(declaration)) {
+        	followTraderInfoEntity.setDeclaration(FollowTraderInfoEntity.DECLARATION_DEFAULT);
+        }else {
+        	followTraderInfoEntity.setDeclaration(declaration);
+        }
+        followTraderInfoEntity.setLabels(labels);
         followTraderInfoEntity.setIsAll(FollowTraderInfoEntity.IS_ALL_N);
         followTraderInfoEntity.setProfitRatio(BigDecimal.ZERO);
         followTraderInfoEntity.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_ING);
@@ -830,6 +865,8 @@
         tradeSetInfoVo.setAvatar(avatar);
         String nickname = followTraderInfoEntity.getNickname();
         tradeSetInfoVo.setNickname(nickname);
+        Integer nicknameState = followTraderInfoEntity.getNicknameState();
+        tradeSetInfoVo.setNicknameState(nicknameState);
         String declaration = followTraderInfoEntity.getDeclaration();
         tradeSetInfoVo.setDeclaration(declaration);
         Integer isOpen = followTraderInfoEntity.getIsOpen();
@@ -864,6 +901,14 @@
         String declaration = updateTradeSetInfoDto.getDeclaration();
         int isOpen = updateTradeSetInfoDto.getIsOpen();
         String labels = updateTradeSetInfoDto.getLabels();
+        Integer nicknameState = followTraderInfoEntity.getNicknameState();
+        if(FollowTraderInfoEntity.STATE_Y == nicknameState && !nickname.equals(followTraderInfoEntity.getNickname())) {
+        	return Result.ok(MessageSourceUtils.getString("member_service_0099"));
+        }
+        if(!nickname.equals(followTraderInfoEntity.getNickname())) {
+        	followTraderInfoEntity.setNickname(nickname);
+        	followTraderInfoEntity.setNicknameState(FollowTraderInfoEntity.STATE_Y);
+        }
         followTraderInfoEntity.setLabels(labels);
         followTraderInfoEntity.setAvatar(avatar);
         followTraderInfoEntity.setNickname(nickname);
diff --git a/src/main/java/com/xcong/excoin/modules/documentary/vo/TradeSetInfoVo.java b/src/main/java/com/xcong/excoin/modules/documentary/vo/TradeSetInfoVo.java
index 59ef975..555f00e 100644
--- a/src/main/java/com/xcong/excoin/modules/documentary/vo/TradeSetInfoVo.java
+++ b/src/main/java/com/xcong/excoin/modules/documentary/vo/TradeSetInfoVo.java
@@ -18,6 +18,9 @@
 	
 	@ApiModelProperty("名称")
     private String nickname;
+
+	@ApiModelProperty("名称状态:0:未修改 1:已修改")
+	private int nicknameState;
 	
 	@ApiModelProperty("是否开启带单 1是2否")
 	private int isOpen;
diff --git a/src/main/resources/i18n/messages_en_US.properties b/src/main/resources/i18n/messages_en_US.properties
index 825a36e..1b5f99a 100644
--- a/src/main/resources/i18n/messages_en_US.properties
+++ b/src/main/resources/i18n/messages_en_US.properties
@@ -140,6 +140,7 @@
 member_service_0096=Transfer fail
 member_service_0097=Payment method already exists
 member_service_0098=Please select another account
+member_service_0099=The nickname can only be modified once
 
 order_service_0001=Wrong parameter value
 order_service_0002=Not logged in
diff --git a/src/main/resources/i18n/messages_zh_CN.properties b/src/main/resources/i18n/messages_zh_CN.properties
index 6d7272b..fa50004 100644
--- a/src/main/resources/i18n/messages_zh_CN.properties
+++ b/src/main/resources/i18n/messages_zh_CN.properties
@@ -140,6 +140,7 @@
 member_service_0096=划转失败
 member_service_0097=支付方式已存在
 member_service_0098=请选择其他账户
+member_service_0099=昵称只允许修改一次
 
 order_service_0001=参值有误
 order_service_0002=未登录
diff --git a/src/main/resources/mapper/documentary/FollowFollowerSettingDao.xml b/src/main/resources/mapper/documentary/FollowFollowerSettingDao.xml
index 941cd8a..e7a0151 100644
--- a/src/main/resources/mapper/documentary/FollowFollowerSettingDao.xml
+++ b/src/main/resources/mapper/documentary/FollowFollowerSettingDao.xml
@@ -25,5 +25,13 @@
 		from follow_follower_setting a, follow_follower_profit b
 		where a.member_id=b.member_id and a.trader_member_id=b.trade_member_id and a.trader_member_id=#{memberId} and b.is_follow=1
 	</select>
+	<select id="selectDocumentaryOrderSetInfosBymemberId" resultType="com.xcong.excoin.modules.documentary.entity.FollowFollowerSettingEntity">
+		SELECT
+			*
+		FROM
+			follow_follower_setting
+		WHERE
+			member_id = #{memberId}
+	</select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1