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

用户导出

上级 76fc3d59
...@@ -240,4 +240,12 @@ public class TbCfUserInfoController { ...@@ -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> { ...@@ -58,4 +58,8 @@ public interface TbCfUserInfoDao extends BaseDao<TbCfUserInfoEntity> {
BigDecimal getUserBonus(String userId); BigDecimal getUserBonus(String userId);
String getParentUser(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 { ...@@ -109,4 +109,6 @@ public interface TbCfUserInfoService {
int getUserNetworkCount(Map<String, Object> params); int getUserNetworkCount(Map<String, Object> params);
String getParentUser(String userId); String getParentUser(String userId);
void exportUserData(String[] userIds,Map<String, Object> map);
} }
...@@ -10,6 +10,7 @@ import com.platform.utils.excel.ExcelExport; ...@@ -10,6 +10,7 @@ import com.platform.utils.excel.ExcelExport;
import com.platform.utils.excel.ExcelImport; import com.platform.utils.excel.ExcelImport;
import com.platform.vo.Network; import com.platform.vo.Network;
import com.platform.vo.StatisticalVo; import com.platform.vo.StatisticalVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -256,12 +257,73 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService { ...@@ -256,12 +257,73 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
* @param filename 文件名称 * @param filename 文件名称
*/ */
public String getAbsoluteFile(String filename) { public String getAbsoluteFile(String filename) {
// String downloadPath = "D:\\virtual\\" + filename; String downloadPath = "D:\\afrishop\\" + filename;
String downloadPath = "/home/virtual/uploadPath" + filename; // String downloadPath = "/home/afrishop/uploadPath" + filename;
File desc = new File(downloadPath); File desc = new File(downloadPath);
if (!desc.getParentFile().exists()) { if (!desc.getParentFile().exists()) {
desc.getParentFile().mkdirs(); desc.getParentFile().mkdirs();
} }
return downloadPath; 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 @@ ...@@ -55,6 +55,70 @@
from tb_cf_user_info from tb_cf_user_info
where user_id = #{id} where user_id = #{id}
</select> </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 id="getDailyRegistered" resultType="com.platform.vo.StatisticalVo">
SELECT SELECT
......
...@@ -606,7 +606,7 @@ ...@@ -606,7 +606,7 @@
</i-button> </i-button>
#end #end
#if($shiro.hasPermission("tbcfstationitem:export")) #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> </i-button>
#end #end
......
...@@ -99,6 +99,10 @@ ...@@ -99,6 +99,10 @@
#if($shiro.hasPermission("tbcfuserinfo:update")) #if($shiro.hasPermission("tbcfuserinfo:update"))
<i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button> <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
#end #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")) #if($shiro.hasPermission("tbcfuserinfo:delete"))
<i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button> <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
#end #end
......
...@@ -511,7 +511,7 @@ sexFormat = function (cellvalue) { ...@@ -511,7 +511,7 @@ sexFormat = function (cellvalue) {
returnStr = "女"; returnStr = "女";
} }
}*/ }*/
return cellvalue == 0 ? '男' : '女'; return cellvalue == 1 ? "男" : cellvalue == 2 ? "女" : "未知";
}; };
/** /**
......
...@@ -61,14 +61,29 @@ let vm = new Vue({ ...@@ -61,14 +61,29 @@ let vm = new Vue({
q: { q: {
name: '' name: ''
}, },
isuserlist:false,//是否显示 isuserlist: false,//是否显示
userpage:1,//下级页码 userpage: 1,//下级页码
selflist:[],//自己 selflist: [],//自己
sonlist:[],//下级列表 sonlist: [],//下级列表
sonid:'',//查看更多时请求的id sonid: '',//查看更多时请求的id
seemore:true,//是否还有更多 seemore: true,//是否还有更多
}, },
methods: { 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 () { query: function () {
vm.reload(); vm.reload();
}, },
...@@ -88,7 +103,7 @@ let vm = new Vue({ ...@@ -88,7 +103,7 @@ let vm = new Vue({
vm.getInfo(userId); vm.getInfo(userId);
}, },
// 查看下级 // 查看下级
takeman:function (){ takeman: function () {
let userId = getSelectedRow("#jqGrid"); let userId = getSelectedRow("#jqGrid");
if (userId == null) { if (userId == null) {
return; return;
...@@ -99,28 +114,28 @@ let vm = new Vue({ ...@@ -99,28 +114,28 @@ let vm = new Vue({
}, },
// 获取下线接口 // 获取下线接口
getnext:function(id){ getnext: function (id) {
vm.sonid = 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({ Ajax.request({
url: url, url: url,
type: "get", type: "get",
contentType: "application/json", contentType: "application/json",
successCallback: function (r) { successCallback: function (r) {
console.log(r) console.log(r)
if (r.code == 0){ if (r.code == 0) {
vm.selflist = r.list.parent vm.selflist = r.list.parent
if (vm.userpage == 1){ if (vm.userpage == 1) {
vm.sonlist = r.list.networks.list 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 list = r.list.networks.list
var con = vm.sonlist var con = vm.sonlist
for (var i = 0;i<list.length;i++){ for (var i = 0; i < list.length; i++) {
con.push(list[i]) con.push(list[i])
} }
vm.sonlist = con vm.sonlist = con
} }
if (r.list.networks.list.length != 12){ if (r.list.networks.list.length != 12) {
vm.seemore = false vm.seemore = false
} }
...@@ -131,12 +146,12 @@ let vm = new Vue({ ...@@ -131,12 +146,12 @@ let vm = new Vue({
}); });
}, },
// 查看更多 // 查看更多
lookmore:function(){ lookmore: function () {
vm.userpage = vm.userpage + 1 vm.userpage = vm.userpage + 1
vm.getnext(vm.sonid) vm.getnext(vm.sonid)
}, },
// 关闭下级列表 // 关闭下级列表
closebtn:function (){ closebtn: function () {
vm.isuserlist = false vm.isuserlist = false
vm.userpage = 1 vm.userpage = 1
vm.sonid = '' vm.sonid = ''
......
...@@ -25,6 +25,22 @@ ...@@ -25,6 +25,22 @@
</properties> </properties>
<dependencies> <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> <dependency>
<groupId>net.coobird</groupId> <groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId> <artifactId>thumbnailator</artifactId>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论