8 files modified
2 files added
| | |
| | | package com.xcong.excoin.modules.yunding.controller; |
| | | |
| | | import com.xcong.excoin.common.annotation.ControllerEndpoint; |
| | | 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.helpCenter.entity.HelpCenterArticleEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.yunding.entity.YdOrderEntity; |
| | | import com.xcong.excoin.modules.yunding.entity.YdProductEntity; |
| | |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotNull; |
| | | import java.lang.reflect.Member; |
| | | import java.util.Map; |
| | | |
| | |
| | | return new FebsResponse().success().data(dataTable); |
| | | } |
| | | |
| | | /** |
| | | * 合伙人设置--同意 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("addIsTraderOn/{id}") |
| | | @ControllerEndpoint(operation = "合伙人设置--同意", exceptionMessage = "操作失败") |
| | | public FebsResponse addIsTraderOn(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return basicSettingService.addIsTraderOn(id); |
| | | } |
| | | /** |
| | | * 合伙人设置--取消 |
| | | * @param id |
| | | * @return |
| | | */ |
| | | @GetMapping("delIsTraderOn/{id}") |
| | | @ControllerEndpoint(operation = "合伙人设置--取消", exceptionMessage = "操作失败") |
| | | public FebsResponse delIsTraderOn(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return basicSettingService.delIsTraderOn(id); |
| | | } |
| | | |
| | | /** |
| | | * 产品---更新 |
| | | * @return |
| | | */ |
| | | @PostMapping("ydProductUpdateOn") |
| | | @ControllerEndpoint(operation = "产品---更新", exceptionMessage = "设置失败") |
| | | public FebsResponse ydProductUpdateOn(@Valid YdProductEntity ydProductEntity) { |
| | | return basicSettingService.ydProductUpdateOn(ydProductEntity); |
| | | } |
| | | |
| | | } |
| | |
| | | import com.xcong.excoin.common.entity.FebsResponse; |
| | | import com.xcong.excoin.common.entity.QueryRequest; |
| | | import com.xcong.excoin.common.utils.FebsUtil; |
| | | import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity; |
| | | import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity; |
| | | import com.xcong.excoin.modules.yunding.entity.YdProductEntity; |
| | | import com.xcong.excoin.modules.yunding.service.IBasicSettingService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.apache.shiro.authz.annotation.RequiresPermissions; |
| | |
| | | idFromMember = id; |
| | | return FebsUtil.view("modules/yunding/seeOrder"); |
| | | } |
| | | /** |
| | | * 产品修改 |
| | | */ |
| | | @GetMapping("ydProductUpdate/{id}") |
| | | public String ydProductUpdate(@PathVariable long id, Model model) { |
| | | YdProductEntity data = basicSettingService.getydProductUpdateById(id); |
| | | model.addAttribute("member", data); |
| | | return FebsUtil.view("modules/yunding/ydProductListUpdate"); |
| | | } |
| | | |
| | | } |
| | |
| | | IPage<MemberAccountMoneyChangeEntity> seeReturn(Page<MemberAccountMoneyChangeEntity> page, @Param("record")MemberEntity memberEntity); |
| | | |
| | | IPage<YdOrderEntity> seeOrder(Page<YdOrderEntity> page,@Param("record") MemberEntity memberEntity); |
| | | |
| | | YdProductEntity getydProductById(@Param("id")long id); |
| | | } |
New file |
| | |
| | | package com.xcong.excoin.modules.yunding.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.xcong.excoin.modules.yunding.entity.YdProductEntity; |
| | | |
| | | public interface YdProductMapper extends BaseMapper<YdProductEntity> { |
| | | } |
| | |
| | | |
| | | 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.member.entity.MemberAccountMoneyChangeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | |
| | | IPage<MemberAccountMoneyChangeEntity> seeReturn(QueryRequest request, MemberEntity memberEntity); |
| | | |
| | | IPage<YdOrderEntity> seeOrder(QueryRequest request, MemberEntity memberEntity); |
| | | |
| | | FebsResponse addIsTraderOn(Long id); |
| | | |
| | | FebsResponse delIsTraderOn(Long id); |
| | | |
| | | YdProductEntity getydProductUpdateById(long id); |
| | | |
| | | FebsResponse ydProductUpdateOn(YdProductEntity ydProductEntity); |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | 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.member.entity.MemberAccountMoneyChangeEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberEntity; |
| | | import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; |
| | | import com.xcong.excoin.modules.member.mapper.MemberMapper; |
| | | import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; |
| | | import com.xcong.excoin.modules.yunding.entity.BasicSettingEntity; |
| | | import com.xcong.excoin.modules.yunding.entity.YdOrderEntity; |
| | | import com.xcong.excoin.modules.yunding.entity.YdProductEntity; |
| | | import com.xcong.excoin.modules.yunding.mapper.BasicSettingMapper; |
| | | import com.xcong.excoin.modules.yunding.mapper.YdProductMapper; |
| | | import com.xcong.excoin.modules.yunding.service.IBasicSettingService; |
| | | import com.xcong.excoin.modules.yunding.vo.YdAgentOrderVo; |
| | | import com.xcong.excoin.modules.yunding.vo.YdMemberVo; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | |
| | | private BasicSettingMapper basicSettingMapper; |
| | | @Resource |
| | | private MemberWalletCoinMapper memberWalletCoinMapper; |
| | | @Resource |
| | | private MemberMapper memberMapper; |
| | | @Resource |
| | | private YdProductMapper ydProductMapper; |
| | | |
| | | @Override |
| | | public IPage<YdOrderEntity> getOrderList(YdOrderEntity ydOrderEntity, QueryRequest request) { |
| | |
| | | return ydOrderEntitys; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse addIsTraderOn(Long id) { |
| | | MemberEntity memberEntity = memberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(memberEntity)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | memberEntity.setIsTrader(MemberEntity.ISTRADER_Y); |
| | | memberMapper.updateById(memberEntity); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse delIsTraderOn(Long id) { |
| | | MemberEntity memberEntity = memberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(memberEntity)) { |
| | | return new FebsResponse().fail().message("会员信息不存在"); |
| | | } |
| | | memberEntity.setIsTrader(MemberEntity.ISTRADER_N); |
| | | memberMapper.updateById(memberEntity); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public YdProductEntity getydProductUpdateById(long id) { |
| | | return basicSettingMapper.getydProductById(id); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse ydProductUpdateOn(YdProductEntity ydProductEntity) { |
| | | Long id = ydProductEntity.getId(); |
| | | YdProductEntity ydProductEntityOld = ydProductMapper.selectById(id); |
| | | String name = ydProductEntity.getName(); |
| | | ydProductEntityOld.setName(name); |
| | | BigDecimal totalT = ydProductEntity.getTotalT(); |
| | | ydProductEntityOld.setTotalT(totalT); |
| | | BigDecimal surplusT = ydProductEntity.getSurplusT(); |
| | | ydProductEntityOld.setSurplusT(surplusT); |
| | | BigDecimal salePrice = ydProductEntity.getSalePrice(); |
| | | ydProductEntityOld.setSalePrice(salePrice); |
| | | Integer proCycle = ydProductEntity.getProCycle(); |
| | | ydProductEntityOld.setProCycle(proCycle); |
| | | BigDecimal manageExpense = ydProductEntity.getManageExpense(); |
| | | ydProductEntityOld.setManageExpense(manageExpense); |
| | | Integer shelvesDays = ydProductEntity.getShelvesDays(); |
| | | ydProductEntityOld.setShelvesDays(shelvesDays); |
| | | Integer limitedNum = ydProductEntity.getLimitedNum(); |
| | | ydProductEntityOld.setLimitedNum(limitedNum); |
| | | Integer status = ydProductEntity.getStatus(); |
| | | ydProductEntityOld.setStatus(status); |
| | | ydProductMapper.updateById(ydProductEntityOld); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | } |
| | |
| | | ORDER BY a.buy_time DESC |
| | | </select> |
| | | |
| | | <select id="getydProductById" resultType="com.xcong.excoin.modules.yunding.entity.YdProductEntity"> |
| | | SELECT |
| | | * |
| | | FROM |
| | | yd_product a |
| | | where id = #{id} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | maxmin: true,
|
| | | });
|
| | | }
|
| | | if (layEvent === 'addIsTrader') {
|
| | | febs.modal.confirm('设置合伙人', '设置成为合伙人?', function () {
|
| | | addIsTraderOn(data.id);
|
| | | });
|
| | | }
|
| | | if (layEvent === 'delIsTrader') {
|
| | | febs.modal.confirm('设置合伙人', '取消合伙人资格?', function () {
|
| | | delIsTraderOn(data.id);
|
| | | });
|
| | | }
|
| | | });
|
| | | function addIsTraderOn(id) {
|
| | | febs.get(ctx + 'yd/addIsTraderOn/' + id, null, function () {
|
| | | febs.alert.success('操作成功');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | | function delIsTraderOn(id) {
|
| | | febs.get(ctx + 'yd/delIsTraderOn/' + id, null, function () {
|
| | | febs.alert.success('操作成功');
|
| | | $query.click();
|
| | | });
|
| | | }
|
| | | function disagree(id) {
|
| | | febs.get(ctx + 'tradeManage/disagreePositionSetting/' + id, null, function () {
|
| | | febs.alert.success('禁止成功');
|
| | |
| | | //{field: 'realName', title: '姓名', minWidth: 100,align:'left'},
|
| | | {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
|
| | | {field: 'refererId', title: '上级邀请码UID', minWidth: 80,align:'center'},
|
| | | // {field: 'accountType', title: '账号类型',
|
| | | // templet: function (d) {
|
| | | // if (d.accountType === 2) {
|
| | | // return '<span style="color:green;">测试账号</span>'
|
| | | // } else if (d.accountType === 1) {
|
| | | // return '<span style="color:red;">正常账号</span>'
|
| | | // }else{
|
| | | // return ''
|
| | | // }
|
| | | // }, minWidth: 80,align:'center'},
|
| | | {field: 'isTrader', title: '状态',
|
| | | templet: function (d) {
|
| | | if (d.isTrader === 1) {
|
| | | return '<span style="color:green;">合伙人</span>'
|
| | | } else{
|
| | | return ''
|
| | | }
|
| | | }, minWidth: 80,align:'center'},
|
| | | // {field: 'accountStatus', title: '账号状态',
|
| | | // templet: function (d) {
|
| | | // if (d.accountStatus === 1) {
|
| | |
| | | // }
|
| | | // },minWidth: 100,align:'center'},
|
| | | {field: 'createTime', title: '注册时间', minWidth: 180,align:'center'},
|
| | | {title: '操作', |
| | | templet: function (d) {
|
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>'
|
| | | },minWidth: 300,align:'center'}
|
| | | {title: '操作', templet: function (d) {
|
| | | if(d.isTrader === 2){
|
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>'
|
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addIsTrader" shiro:hasPermission="user:update">成为合伙人</button>'
|
| | | }else if(d.isTrader === 1){
|
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>'
|
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="delIsTrader" shiro:hasPermission="user:update">取消合伙人</button>'
|
| | | }else{
|
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="addCoin" shiro:hasPermission="user:update">拨币</button>'
|
| | | }
|
| | | },minWidth: 300,align:'center'}
|
| | | ]]
|
| | | });
|
| | | }
|
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="trader-profit" lay-title="产品列表"> |
| | | <div class="layui-fluid layui-anim febs-anim" id="product-List" lay-title="产品列表"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#trader-profit'), |
| | | $view = $('#product-List'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | |
| | | |
| | | if (layEvent === 'edit') { |
| | | febs.modal.open('交易员审核', 'modules/documentary/traderDetail/' + data.id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#user-update').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | if (layEvent === 'updateProduct') { |
| | | febs.modal.open('产品修改', 'modules/yunding/ydProductUpdate/' + data.id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#user-update').find('#submit').trigger('click'); |
| | |
| | | return '' |
| | | } |
| | | }, minWidth: 80,align:'center'}, |
| | | {title: '操作', |
| | | templet: function (d) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="updateProduct" shiro:hasPermission="user:update">修改</button>' |
| | | },minWidth: 100,align:'center'} |
| | | |
| | | ]] |
| | | }); |
| | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | account: $searchForm.find('input[name="account"]').val().trim(), |
| | | }; |
| | | } |
| | | |
New file |
| | |
| | | <style> |
| | | #user-update { |
| | | padding: 20px 25px 25px 0; |
| | | } |
| | | |
| | | #user-update .layui-treeSelect .ztree li a, .ztree li span { |
| | | margin: 0 0 2px 3px !important; |
| | | } |
| | | #user-update #data-permission-tree-block { |
| | | border: 1px solid #eee; |
| | | border-radius: 2px; |
| | | padding: 3px 0; |
| | | } |
| | | #user-add .layui-treeSelect .ztree li span.button.switch { |
| | | top: 1px; |
| | | left: 3px; |
| | | } |
| | | |
| | | </style> |
| | | <div class="layui-fluid" id="user-update"> |
| | | <form class="layui-form" action="" lay-filter="user-update-form"> |
| | | <div class="layui-form-item febs-hide"> |
| | | <label class="layui-form-label febs-form-item-require">用户id:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="id" data-th-value="${member.id}"> |
| | | </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="name" data-th-id="${member.name}" |
| | | 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="number" name="totalT" data-th-id="${member.totalT}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">剩余数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="surplusT" data-th-id="${member.surplusT}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">售价:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="salePrice" data-th-id="${member.salePrice}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">服务周期:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="proCycle" data-th-id="${member.proCycle}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">管理费:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="manageExpense" data-th-id="${member.manageExpense}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">上架天数:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="shelvesDays" data-th-id="${member.shelvesDays}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">限购数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="number" name="limitedNum" data-th-id="${member.limitedNum}" |
| | | autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">销售状态:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="radio" name="status" value="1" title="热售中" checked=""> |
| | | <input type="radio" name="status" value="2" title="售罄" > |
| | | <input type="radio" name="status" value="3" title="未开售" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item febs-hide"> |
| | | <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <script data-th-inline="javascript"> |
| | | layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () { |
| | | var $ = layui.$, |
| | | febs = layui.febs, |
| | | layer = layui.layer, |
| | | formSelects = layui.formSelects, |
| | | treeSelect = layui.treeSelect, |
| | | form = layui.form, |
| | | eleTree = layui.eleTree, |
| | | member = [[${member}]], |
| | | $view = $('#user-update'), |
| | | validate = layui.validate, |
| | | _deptTree; |
| | | |
| | | form.render(); |
| | | |
| | | initUserValue(); |
| | | |
| | | formSelects.render(); |
| | | |
| | | function initUserValue() { |
| | | form.val("user-update-form", { |
| | | "name": member.name, |
| | | "totalT": member.totalT, |
| | | "surplusT": member.surplusT, |
| | | "salePrice": member.salePrice, |
| | | "proCycle": member.proCycle, |
| | | "manageExpense": member.manageExpense, |
| | | "shelvesDays": member.shelvesDays, |
| | | "limitedNum": member.limitedNum, |
| | | "status": member.status |
| | | }); |
| | | } |
| | | |
| | | form.on('submit(user-update-form-submit)', function (data) { |
| | | febs.post(ctx + 'yd/ydProductUpdateOn', data.field, function () { |
| | | layer.closeAll(); |
| | | febs.alert.success('操作成功'); |
| | | $('#product-List').find('#query').click(); |
| | | }); |
| | | return false; |
| | | }); |
| | | }); |
| | | </script> |