src/main/java/com/xcong/excoin/modules/documentary/controller/DocumentaryController.java
@@ -3,9 +3,11 @@ import java.util.Map; import javax.validation.Valid; import javax.validation.constraints.NotNull; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -14,6 +16,7 @@ import com.xcong.excoin.common.controller.BaseController; import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.documentary.dto.FollowTraderInfoDto; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; import com.xcong.excoin.modules.documentary.service.DocumentaryService; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; @@ -46,8 +49,30 @@ */ @PostMapping("traderConfirm") @ControllerEndpoint(operation = "交易员申请---确认", exceptionMessage = "认证失败") public FebsResponse traderConfirm(@Valid FollowTraderInfoEntity followTraderInfoEntity) { return documentaryService.traderConfirm(followTraderInfoEntity); public FebsResponse traderConfirm(@Valid FollowTraderInfoDto followTraderInfoDto) { return documentaryService.traderConfirm(followTraderInfoDto); } /** * 踢出交易员 * @param id * @return */ @GetMapping("traderGetOut/{id}") @ControllerEndpoint(operation = "踢出交易员", exceptionMessage = "踢出失败") public FebsResponse traderGetOut(@NotNull(message = "{required}") @PathVariable Long id) { return documentaryService.traderGetOut(id); } /** * 设置成【满员】状态 * @param id * @return */ @GetMapping("traderGetFull/{id}") @ControllerEndpoint(operation = "设置成【满员】状态", exceptionMessage = "设置失败") public FebsResponse traderGetFull(@NotNull(message = "{required}") @PathVariable Long id) { return documentaryService.traderGetFull(id); } } src/main/java/com/xcong/excoin/modules/documentary/dto/FollowTraderInfoDto.java
New file @@ -0,0 +1,16 @@ package com.xcong.excoin.modules.documentary.dto; import javax.validation.constraints.NotNull; import lombok.Data; @Data public class FollowTraderInfoDto { @NotNull(message = "ID不能为空") private Long id; @NotNull(message = "ID不能为空") private String isok; } src/main/java/com/xcong/excoin/modules/documentary/service/DocumentaryService.java
@@ -1,11 +1,13 @@ package com.xcong.excoin.modules.documentary.service; import javax.validation.Valid; import javax.validation.constraints.NotNull; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.documentary.dto.FollowTraderInfoDto; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; public interface DocumentaryService extends IService<FollowTraderInfoEntity> { @@ -14,6 +16,10 @@ FollowTraderInfoEntity selectTraderDetailByid(long id); FebsResponse traderConfirm(@Valid FollowTraderInfoEntity followTraderInfoEntity); FebsResponse traderConfirm(@Valid FollowTraderInfoDto followTraderInfoDto); FebsResponse traderGetOut(@NotNull(message = "{required}") Long id); FebsResponse traderGetFull(@NotNull(message = "{required}") Long id); } src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java
@@ -1,11 +1,13 @@ package com.xcong.excoin.modules.documentary.service.impl; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.validation.Valid; import javax.validation.constraints.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.documentary.dto.FollowTraderInfoDto; import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity; import com.xcong.excoin.modules.documentary.mapper.FollowTraderInfoMapper; @@ -24,11 +27,9 @@ import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; import com.xcong.excoin.modules.member.mapper.MemberMapper; import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -108,13 +109,13 @@ @Override @Transactional public FebsResponse traderConfirm(@Valid FollowTraderInfoEntity followTraderInfoEntity) { Long id = followTraderInfoEntity.getId(); public FebsResponse traderConfirm(@Valid FollowTraderInfoDto followTraderInfoDto) { Long id = followTraderInfoDto.getId(); FollowTraderInfoEntity selectById = followTraderInfoMapper.selectById(id); if(ObjectUtil.isEmpty(selectById)) { return new FebsResponse().fail().message("交易员信息不存在"); } String isok = followTraderInfoEntity.getIsok(); String isok = followTraderInfoDto.getIsok(); if("1".equals(isok)) { //更新【会员信息表】数据 Long memberId = selectById.getMemberId(); @@ -129,6 +130,10 @@ followTraderInfoMapper.updateById(selectById); //新增【交易员收益信息 】数据 FollowTraderProfitInfoEntity followTraderProfitInfoEntity = new FollowTraderProfitInfoEntity(); followTraderProfitInfoEntity.setCreateBy("system"); followTraderProfitInfoEntity.setCreateTime(new Date()); followTraderProfitInfoEntity.setUpdateBy("system"); followTraderProfitInfoEntity.setUpdateTime(new Date()); followTraderProfitInfoEntity.setMemberId(memberId); followTraderProfitInfoEntity.setTraderId(selectById.getId()); followTraderProfitInfoEntity.setTotalProfitRatio(BigDecimal.ZERO); @@ -137,7 +142,7 @@ followTraderProfitInfoEntity.setWinRate(BigDecimal.ZERO); followTraderProfitInfoEntity.setTotalFollowerCnt(BigDecimal.ZERO); followTraderProfitInfoEntity.setTotalOrderCnt(BigDecimal.ZERO); followTraderProfitInfoMapper.updateById(followTraderProfitInfoEntity); followTraderProfitInfoMapper.insert(followTraderProfitInfoEntity); }else { //更新【交易员信息表】数据 selectById.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_N); @@ -146,4 +151,29 @@ return new FebsResponse().success(); } @Override public FebsResponse traderGetOut(@NotNull(message = "{required}") Long id) { FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); if(ObjectUtil.isEmpty(followTraderInfoEntity)) { return new FebsResponse().fail().message("交易员信息不存在"); } Long memberId = followTraderInfoEntity.getMemberId(); MemberEntity memberEntity = memberMapper.selectById(memberId); memberEntity.setIsTrader(2); memberMapper.updateById(memberEntity); return new FebsResponse().success(); } @Override @Transactional public FebsResponse traderGetFull(@NotNull(message = "{required}") Long id) { FollowTraderInfoEntity followTraderInfoEntity = followTraderInfoMapper.selectById(id); if(ObjectUtil.isEmpty(followTraderInfoEntity)) { return new FebsResponse().fail().message("交易员信息不存在"); } followTraderInfoEntity.setIsAll(1); followTraderInfoMapper.updateById(followTraderInfoEntity); return new FebsResponse().success(); } } src/main/java/com/xcong/excoin/modules/member/entity/MemberEntity.java
@@ -143,7 +143,6 @@ /** * 是否是交易员1是2否 */ @TableField(exist = false) private Integer isTrader; /** src/main/resources/templates/febs/views/modules/documentary/traderDetail.html
@@ -26,49 +26,28 @@ </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">真实姓名:</label> <div class="layui-input-block"> <input type="text" name="realName" minlength="4" maxlength="10" data-th-id="${member.realName}" lay-verify="range|realName" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">电话:</label> <div class="layui-input-block"> <input type="text" name=phone minlength="4" maxlength="10" data-th-id="${member.phone}" lay-verify="range|phone" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">邮箱:</label> <div class="layui-input-block"> <input type="text" name="email" minlength="4" maxlength="10" data-th-id="${member.email}" lay-verify="range|email" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">利润率:</label> <label class="layui-form-label">利润率:</label> <div class="layui-input-block"> <input type="text" name="profitRatio" minlength="4" maxlength="10" data-th-id="${member.profitRatio}" lay-verify="range|profitRatio" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">币币账户总余额:</label> <label class="layui-form-label">币币账户总余额:</label> <div class="layui-input-block"> <input type="text" name="walletNum" minlength="4" maxlength="10" data-th-id="${member.walletNum}" lay-verify="range|walletNum" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">合约账户总余额:</label> <label class="layui-form-label">合约账户总余额:</label> <div class="layui-input-block"> <input type="text" name="walletCoinNum" minlength="4" maxlength="10" data-th-id="${member.walletCoinNum}" lay-verify="range|walletCoinNum" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">币币账户总余额:</label> <label class="layui-form-label">币币账户总余额:</label> <div class="layui-input-block"> <input type="text" name="agentNum" minlength="4" maxlength="10" data-th-id="${member.agentNum}" lay-verify="range|agentNum" autocomplete="off" class="layui-input" readonly> src/main/resources/templates/febs/views/modules/documentary/traderUpdate.html
@@ -84,7 +84,30 @@ } }); } if (layEvent === 'getOut') { febs.modal.confirm('确认', '您是否要踢出该交易员?', function () { confirmUsers(data.id); }); } if (layEvent === 'getFull') { febs.modal.confirm('确认', '您是否要设置成【满员】状态?', function () { cancelUsers(data.id); }); } }); function confirmUsers(id) { febs.get(ctx + 'documentary/traderGetOut/' + id, null, function () { febs.alert.success('踢出成功'); $query.click(); }); } function cancelUsers(id) { febs.get(ctx + 'documentary/traderGetFull/' + id, null, function () { febs.alert.success('设置成功'); $query.click(); }); } // 查询按钮 @@ -137,6 +160,9 @@ templet: function (d) { if (d.verifyStatus === 3) { return '<a lay-event="edit" shiro:hasPermission="user:update">审核</a>' }else if(d.verifyStatus === 1){ return '<a lay-event="getOut" shiro:hasPermission="user:update">踢出</a>' return '<a lay-event="getFull" shiro:hasPermission="user:update">满员</a>' }else { return '' }