记得上下班打卡 | git大法好,push需谨慎

Commit 55569119 authored by wangyifan's avatar wangyifan

草莓护照-徽章 领取用户列表

parent e2bbf431
package com.liquidnet.service.adam.dto.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel("草莓护照-徽章领取用户搜索参数")
public class AdamCaomeiBadgeClaimUserSearchParam {
@ApiModelProperty(value = "徽章ID")
private String badgeId;
}
package com.liquidnet.service.adam.dto.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("草莓护照-徽章领取用户")
public class AdamCaomeiBadgeClaimUserVo {
@ApiModelProperty(value = "用户昵称")
private String nickname;
@ApiModelProperty(value = "手机号(脱敏)")
private String mobile;
@ApiModelProperty(value = "领取时间")
private Date claimedAt;
@ApiModelProperty(value = "获取途径: 1-绑定护照自动发放, 2-购票自动发放, 3-补签审核通过, 4-现场管理员手动发放")
private Integer source;
}
......@@ -8,7 +8,9 @@ import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamCaomeiBadgeAdminService;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeParam;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeClaimUserSearchParam;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeSearchParam;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeClaimUserVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeVo;
import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
import io.swagger.annotations.Api;
......@@ -88,6 +90,22 @@ public class AdamCaomeiBadgeController extends BaseController {
return prefix + "/badge_detail";
}
@RequiresPermissions("adam:caomei:badge:view")
@GetMapping("claimUsers/{badgeId}")
public String claimUsers(@PathVariable("badgeId") String badgeId, ModelMap mmap) {
mmap.put("badgeId", badgeId);
return prefix + "/badge_claim_users";
}
@RequiresPermissions("adam:caomei:badge:list")
@PostMapping("claimUsers/list")
@ResponseBody
public TableDataInfo claimUsersList(AdamCaomeiBadgeClaimUserSearchParam param) {
startPage();
List<AdamCaomeiBadgeClaimUserVo> list = adamCaomeiBadgeAdminService.listClaimUsers(param);
return getDataTable(list);
}
@GetMapping("edit/{mid}")
public String edit(@PathVariable("mid") Long mid, ModelMap mmap) {
AdamCaomeiBadge badge = adamCaomeiBadgeAdminService.getById(mid);
......
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
<th:block th:include="include :: header('领取用户列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<input type="hidden" id="badgeId" th:value="${badgeId}">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "adam/caomei/badge";
$(function() {
var options = {
url: prefix + "/claimUsers/list",
queryParams: function(params) {
return {
pageSize: params.limit,
pageNum: params.offset / params.limit + 1,
badgeId: $("#badgeId").val()
};
},
modalName: "领取用户",
columns: [
{
field: 'nickname',
title: '用户昵称'
},
{
field: 'mobile',
title: '手机号'
},
{
field: 'claimedAt',
title: '领取时间'
},
{
field: 'source',
title: '获取途径',
formatter: function(value, row, index) {
if (value == 1) return '绑定护照自动发放';
if (value == 2) return '购票自动发放';
if (value == 3) return '补签审核通过';
if (value == 4) return '现场管理员手动发放';
return '未知';
}
}
]
};
$.table.init(options);
});
</script>
</body>
</html>
......@@ -145,7 +145,7 @@
}
// 领取用户按钮
actions.push('<a class="btn btn-warning btn-sm" href="javascript:void(0)" onclick="claimedUsers(\'' + row.mid + '\')"><i class="fa fa-users"></i>领取用户</a>');
actions.push('<a class="btn btn-warning btn-sm" href="javascript:void(0)" onclick="claimedUsers(\'' + row.badgeId + '\')"><i class="fa fa-users"></i>领取用户</a>');
return actions.join('');
}
......@@ -174,8 +174,12 @@
}
/* 领取用户 */
function claimedUsers(mid) {
$.modal.msgWarning("领取用户列表功能开发中...");
function claimedUsers(badgeId) {
if (!badgeId) {
$.modal.msgError("未找到徽章ID");
return;
}
$.modal.open("领取用户", prefix + "/claimUsers/" + badgeId);
}
</script>
</body>
......
package com.liquidnet.client.admin.zhengzai.adam.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeClaimUserSearchParam;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeSearchParam;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeClaimUserVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeVo;
import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
......@@ -18,4 +20,11 @@ public interface IAdamCaomeiBadgeAdminService extends IService<AdamCaomeiBadge>
* @return
*/
List<AdamCaomeiBadgeVo> listWithClaimedCount(AdamCaomeiBadgeSearchParam param);
/**
* 徽章领取用户列表
* @param param
* @return
*/
List<AdamCaomeiBadgeClaimUserVo> listClaimUsers(AdamCaomeiBadgeClaimUserSearchParam param);
}
......@@ -5,7 +5,10 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.client.admin.zhengzai.adam.service.IAdamCaomeiBadgeAdminService;
import com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimCountDto;
import com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimUserDto;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeClaimUserSearchParam;
import com.liquidnet.service.adam.dto.param.AdamCaomeiBadgeSearchParam;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeClaimUserVo;
import com.liquidnet.service.adam.dto.vo.AdamCaomeiBadgeVo;
import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
import com.liquidnet.service.adam.mapper.AdamCaomeiBadgeMapper;
......@@ -58,4 +61,17 @@ public class AdamCaomeiBadgeAdminServiceImpl extends ServiceImpl<AdamCaomeiBadge
return vo;
}).collect(Collectors.toList());
}
@Override
public List<AdamCaomeiBadgeClaimUserVo> listClaimUsers(AdamCaomeiBadgeClaimUserSearchParam param) {
if (param == null || StringUtils.isBlank(param.getBadgeId())) {
return Collections.emptyList();
}
List<AdamCaomeiBadgeClaimUserDto> list = baseMapper.selectClaimUsersByBadgeId(param.getBadgeId());
return list.stream().map(item -> {
AdamCaomeiBadgeClaimUserVo vo = new AdamCaomeiBadgeClaimUserVo();
BeanUtils.copyProperties(item, vo);
return vo;
}).collect(Collectors.toList());
}
}
package com.liquidnet.service.adam.dto;
import lombok.Data;
import java.util.Date;
@Data
public class AdamCaomeiBadgeClaimUserDto {
private String nickname;
private String mobile;
private Date claimedAt;
private Integer source;
}
......@@ -2,6 +2,7 @@ package com.liquidnet.service.adam.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimCountDto;
import com.liquidnet.service.adam.dto.AdamCaomeiBadgeClaimUserDto;
import com.liquidnet.service.adam.entity.AdamCaomeiBadge;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
......@@ -21,4 +22,21 @@ public interface AdamCaomeiBadgeMapper extends BaseMapper<AdamCaomeiBadge> {
"</script>"
})
List<AdamCaomeiBadgeClaimCountDto> selectClaimedCountByBadgeIds(@Param("badgeIds") List<String> badgeIds);
@Select({
"select ",
"ifnull(ui.nickname,'') as nickname,",
"case ",
"when u.mobile is null then '' ",
"when length(u.mobile) >= 11 then concat(substring(u.mobile,1,3),'****',substring(u.mobile,8,4)) ",
"else u.mobile end as mobile,",
"ub.created_at as claimedAt,",
"ub.source as source ",
"from adam_caomei_user_badge ub ",
"left join adam_user_info ui on ub.user_id = ui.uid ",
"left join adam_user u on ub.user_id = u.uid ",
"where ub.badge_id = #{badgeId} ",
"order by ub.created_at desc"
})
List<AdamCaomeiBadgeClaimUserDto> selectClaimUsersByBadgeId(@Param("badgeId") String badgeId);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment