提交 3425a0a2 authored 作者: 吴德鹏's avatar 吴德鹏

用户导出

上级 76fc3d59
......@@ -240,4 +240,12 @@ public class TbCfUserInfoController {
}
@PostMapping("/exportUserData")
@RequiresPermissions("tbcfuserinfo:export")
@ResponseBody
public R exportUserData(@RequestBody String[] ids, @RequestParam Map<String, Object> map) {
tbCfUserInfoService.exportUserData(ids,map);
return R.ok();
}
}
......@@ -58,4 +58,8 @@ public interface TbCfUserInfoDao extends BaseDao<TbCfUserInfoEntity> {
BigDecimal getUserBonus(String userId);
String getParentUser(String userId);
List<TbCfUserInfoEntity> getUsers(String[] userIds);
List<TbCfUserInfoEntity> getUserList(Map<String, Object> map);
}
......@@ -109,4 +109,6 @@ public interface TbCfUserInfoService {
int getUserNetworkCount(Map<String, Object> params);
String getParentUser(String userId);
void exportUserData(String[] userIds,Map<String, Object> map);
}
......@@ -10,6 +10,7 @@ import com.platform.utils.excel.ExcelExport;
import com.platform.utils.excel.ExcelImport;
import com.platform.vo.Network;
import com.platform.vo.StatisticalVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -256,12 +257,73 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
* @param filename 文件名称
*/
public String getAbsoluteFile(String filename) {
// String downloadPath = "D:\\virtual\\" + filename;
String downloadPath = "/home/virtual/uploadPath" + filename;
String downloadPath = "D:\\afrishop\\" + filename;
// String downloadPath = "/home/afrishop/uploadPath" + filename;
File desc = new File(downloadPath);
if (!desc.getParentFile().exists()) {
desc.getParentFile().mkdirs();
}
return downloadPath;
}
public void exportUserData(String[] userIds, Map<String, Object> map) {
ExcelExport ee1 = new ExcelExport();
List<Object[]> list1 = new ArrayList<Object[]>();
List<TbCfUserInfoEntity> users;
if (userIds == null || userIds.length == 0) {
//查询符合条件的用户
users = tbCfUserInfoDao.getUserList(map);
} else {
//查询勾选的用户
users = tbCfUserInfoDao.getUsers(userIds);
}
String[] header = new String[]{"账号", "昵称", "国家", "注册来源", "注册时间", "电话号码", "邮箱", "性别", "facebook账号"};
users.forEach(user -> {
System.err.println(user.getSex());
List<Object> obj = new ArrayList<Object>();
obj.add(user.getAccount());
obj.add(user.getNick());
obj.add(user.getCountry());
String str = null;
if (user.getSource() != null) {
if (user.getSource() == 1) {
str = "app";
} else if (user.getSource() == 2) {
str = "pc";
} else if (user.getSource() == 3) {
str = "mobile";
}
}
obj.add(str);
obj.add(user.getCreateTime());
obj.add(user.getPhone());
obj.add(user.getEmail());
String sex = user.getSex() == null ? null : user.getSex() == 1 ? "男" : user.getSex() == 2 ? "女" : "未知";
obj.add(sex);
obj.add(user.getFacebook());
list1.add(obj.toArray());
});
ee1.addSheetByArray("user", list1, header);
OutputStream fis;
try {
String filename = encodingFilename("user");
fis = new FileOutputStream(getAbsoluteFile(filename));
ee1.getWorkbook().write(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
......@@ -55,6 +55,70 @@
from tb_cf_user_info
where user_id = #{id}
</select>
<select id="getUsers" resultType="com.platform.entity.TbCfUserInfoEntity">
select
`user_id`,
`user_no`,
`user_type`,
`account`,
`avatar`,
`nick`,
`phone`,
`phone_flag`,
`password`,
`last_login_time`,
`last_login_ip`,
`login_count`,
`email`,
`facebook`,
`create_time`,
`sex`,
`default_address_id`,
`invited_user_id`,
`invited_count`,
`enable_flag`,
`email_flag`,
country,
source
from tb_cf_user_info
where user_id in
<foreach item="userId" collection="array" open="(" separator="," close=")">
#{userId}
</foreach>
</select>
<select id="getUserList" resultType="com.platform.entity.TbCfUserInfoEntity">
select
`user_id`,
`user_no`,
`user_type`,
`account`,
`avatar`,
`nick`,
`phone`,
`phone_flag`,
`password`,
`last_login_time`,
`last_login_ip`,
`login_count`,
`email`,
`facebook`,
`create_time`,
`sex`,
`default_address_id`,
`invited_user_id`,
`invited_count`,
`enable_flag`,
`email_flag`,
country,
source
from tb_cf_user_info
where 1=1
<if test="startTime != null and endTime != ''">
AND create_time between #{startTime} and #{endTime}
</if>
</select>
<!--查询每日注册量-->
<select id="getDailyRegistered" resultType="com.platform.vo.StatisticalVo">
SELECT
......
......@@ -606,7 +606,7 @@
</i-button>
#end
#if($shiro.hasPermission("tbcfstationitem:export"))
<i-button type="info" @click="exportExcel"><i class="fa fa-chevron-down"></i>&nbsp;导出
<i-button type="info" @click="exportUserData"><i class="fa fa-chevron-down"></i>&nbsp;导出
</i-button>
#end
......
......@@ -99,6 +99,10 @@
#if($shiro.hasPermission("tbcfuserinfo:update"))
<i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
#end
#if($shiro.hasPermission("tbcfuserinfo:export"))
<i-button type="info" @click="exportUserData"><i class="fa fa-chevron-down"></i>&nbsp;导出
</i-button>
#end
#if($shiro.hasPermission("tbcfuserinfo:delete"))
<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
#end
......
......@@ -511,7 +511,7 @@ sexFormat = function (cellvalue) {
returnStr = "女";
}
}*/
return cellvalue == 0 ? '男' : '女';
return cellvalue == 1 ? "男" : cellvalue == 2 ? "女" : "未知";
};
/**
......
......@@ -61,14 +61,29 @@ let vm = new Vue({
q: {
name: ''
},
isuserlist:false,//是否显示
userpage:1,//下级页码
selflist:[],//自己
sonlist:[],//下级列表
sonid:'',//查看更多时请求的id
seemore:true,//是否还有更多
isuserlist: false,//是否显示
userpage: 1,//下级页码
selflist: [],//自己
sonlist: [],//下级列表
sonid: '',//查看更多时请求的id
seemore: true,//是否还有更多
},
methods: {
exportUserData() {
let userIds = $("#jqGrid").getGridParam("selarrrow");
console.log('userIds', userIds)
Ajax.request({
url: "../tbcfuserinfo/exportUserData",
params: JSON.stringify(userIds),
type: "POST",
contentType: "application/json",
successCallback: function () {
alert('操作成功', function (index) {
vm.reload();
});
}
});
},
query: function () {
vm.reload();
},
......@@ -88,7 +103,7 @@ let vm = new Vue({
vm.getInfo(userId);
},
// 查看下级
takeman:function (){
takeman: function () {
let userId = getSelectedRow("#jqGrid");
if (userId == null) {
return;
......@@ -99,28 +114,28 @@ let vm = new Vue({
},
// 获取下线接口
getnext:function(id){
getnext: function (id) {
vm.sonid = id
let url = "../tbcfuserinfo/getUserNetwork?_search=falsec&nd=1615534841220&limit=12&page="+vm.userpage+"&sidx=order_time&order=desc&userId="+id;
let url = "../tbcfuserinfo/getUserNetwork?_search=falsec&nd=1615534841220&limit=12&page=" + vm.userpage + "&sidx=order_time&order=desc&userId=" + id;
Ajax.request({
url: url,
type: "get",
contentType: "application/json",
successCallback: function (r) {
console.log(r)
if (r.code == 0){
vm.selflist = r.list.parent
if (vm.userpage == 1){
if (r.code == 0) {
vm.selflist = r.list.parent
if (vm.userpage == 1) {
vm.sonlist = r.list.networks.list
}else if(r.list.networks.list.length>0) {
} else if (r.list.networks.list.length > 0) {
var list = r.list.networks.list
var con = vm.sonlist
for (var i = 0;i<list.length;i++){
for (var i = 0; i < list.length; i++) {
con.push(list[i])
}
vm.sonlist = con
}
if (r.list.networks.list.length != 12){
if (r.list.networks.list.length != 12) {
vm.seemore = false
}
......@@ -131,12 +146,12 @@ let vm = new Vue({
});
},
// 查看更多
lookmore:function(){
lookmore: function () {
vm.userpage = vm.userpage + 1
vm.getnext(vm.sonid)
},
// 关闭下级列表
closebtn:function (){
closebtn: function () {
vm.isuserlist = false
vm.userpage = 1
vm.sonid = ''
......
......@@ -25,6 +25,22 @@
</properties>
<dependencies>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论