package com.sinata.modular.member.controller;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.baomidou.mybatisplus.plugins.Page;
|
import com.sinata.common.enums.EnumIsDelete;
|
import com.sinata.common.enums.EnumIsLock;
|
import com.sinata.common.enums.EnumMemberGrade;
|
import com.sinata.core.base.controller.BaseController;
|
import com.sinata.core.common.annotion.BussinessLog;
|
import com.sinata.core.common.constant.factory.PageFactory;
|
import com.sinata.core.util.Convert;
|
import com.sinata.core.util.DateUtils2;
|
import com.sinata.core.util.ExcelExportUtil;
|
import com.sinata.modular.member.model.MemUser;
|
import com.sinata.modular.member.service.IMemUserService;
|
import com.sinata.modular.system.model.TCityRegion;
|
import com.sinata.modular.system.service.ITCityRegionService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.Model;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* 会员用户信息控制器
|
*
|
* @author goku
|
*/
|
@Slf4j
|
@Controller
|
@RequestMapping("/memUser")
|
public class MemUserController extends BaseController {
|
|
private String PREFIX = "/member/memUser/";
|
|
@Autowired
|
private IMemUserService memUserService;
|
|
@Autowired
|
private ITCityRegionService cityRegionService;
|
|
/**
|
* 跳转到会员用户信息首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
return PREFIX + "memUser.html";
|
}
|
|
/**
|
* 获取会员用户信息列表
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/list")
|
public Object list(String beginTime, String endTime, String nickName, String phone, Integer isLock) {
|
Page<Map<String, Object>> page = new PageFactory().defaultPage();
|
|
List<Map<String, Object>> list = wrapperList(page, beginTime, endTime, nickName, phone, isLock);
|
|
page.setRecords(list);
|
return super.packForBT(page);
|
}
|
|
public List<Map<String, Object>> wrapperList(Page<Map<String, Object>> page, String beginTime, String endTime, String nickName, String phone, Integer isLock) {
|
Wrapper wrapper = new EntityWrapper<MemUser>()
|
.le("member_grade_id", EnumMemberGrade.G_2.index)
|
.orderBy("o.id", false);
|
wrapper.eq("o.is_delete", EnumIsDelete.EXISTED.index);
|
|
if (!StringUtils.isEmpty(nickName)) {
|
wrapper.like("nick_name", nickName);
|
}
|
if (!StringUtils.isEmpty(phone)) {
|
wrapper.like("phone", phone);
|
}
|
if (!StringUtils.isEmpty(isLock) && isLock != -1) {
|
wrapper.eq("o.is_lock", isLock);
|
}
|
|
// 时间搜索
|
if (!StringUtils.isEmpty(beginTime)) {
|
wrapper.ge("o.create_time", beginTime + " 00:00:00");
|
}
|
if (!StringUtils.isEmpty(endTime)) {
|
wrapper.le("o.create_time", endTime + " 23:59:59");
|
}
|
|
// 查询数据列表
|
List<Map<String, Object>> list;
|
if (page != null) {
|
list = memUserService.getMapList(page, wrapper);
|
} else {
|
list = memUserService.getMapList(wrapper);
|
}
|
|
// 获取所有城市
|
List<TCityRegion> cityAll = cityRegionService.getCityNameCodeAll();
|
|
// 封装数据
|
for (Map<String, Object> map : list) {
|
map.put("cityCode",
|
cityRegionService.getProvinceCityCountyNameByAll(cityAll, Convert.toStr(map.get("city_code"))).stream()
|
.map(TCityRegion::getName)
|
.collect(Collectors.joining("-"))
|
);
|
}
|
return list;
|
}
|
|
/**
|
* 导出用户列表
|
*/
|
@ResponseBody
|
@RequestMapping(value = "/export")
|
public void bonuSharesExport(String beginTime, String endTime, String nickName, String phone, Integer isLock, HttpServletResponse response) {
|
List<Map<String, Object>> list = this.wrapperList(null, beginTime, endTime, nickName, phone, isLock);
|
|
// 表格数据【封装】
|
List<List<Object>> dataList = new ArrayList<>();
|
|
// 头部列【封装】
|
List<Object> shellList = new ArrayList<>();
|
shellList.add("注册时间");
|
shellList.add("用户昵称");
|
shellList.add("所在城市");
|
shellList.add("性别");
|
shellList.add("生日");
|
shellList.add("联系电话");
|
shellList.add("职级");
|
shellList.add("积分");
|
shellList.add("状态");
|
dataList.add(shellList);
|
|
// 详细数据列【封装】
|
for (Map<String, Object> map : list) {
|
shellList = new ArrayList<>();
|
shellList.add(map.get("create_time"));
|
shellList.add(map.get("nick_name"));
|
shellList.add(map.get("cityCode"));
|
shellList.add(map.get("sex"));
|
shellList.add(map.get("birthday"));
|
shellList.add(map.get("phone"));
|
shellList.add(EnumMemberGrade.getMarkByIndex(Convert.toInt(map.get("member_grade_id"))));
|
shellList.add(map.get("integral"));
|
shellList.add(EnumIsLock.getMarkByIndex(Convert.toInt(map.get("is_lock"))));
|
dataList.add(shellList);
|
}
|
try {
|
String title = "用户信息";
|
// 调用工具类进行导出
|
ExcelExportUtil.easySheet(title + DateUtils2.formatDate(new Date(), "YYYYMMddHHmmSS"), title, dataList, response);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@BussinessLog(value = "用户管理-冻结/解冻")
|
@ResponseBody
|
@RequestMapping(value = "/updateState")
|
public Object updateState(String memUserIds, Integer state, String remark) {
|
if (state.intValue() == 1) {
|
memUserService.updateForSet("is_lock = " + state + ",remark='" + remark + "'", new EntityWrapper<MemUser>().in("id", memUserIds.split(",")));
|
|
} else {
|
memUserService.updateForSet("is_lock = " + state + ",remark=null", new EntityWrapper<MemUser>().in("id", memUserIds.split(",")));
|
|
}
|
return SUCCESS_TIP;
|
}
|
|
|
@RequestMapping("/getUserList")
|
@ResponseBody
|
public Object mallGoodsList() {
|
Wrapper wrapper = new EntityWrapper<MemUser>().eq("is_delete", 0).orderBy("id", false);
|
|
List<MemUser> userList = memUserService.selectList(wrapper);
|
List<HashMap<String, Object>> userMapList= userList.stream().map(user->{
|
HashMap<String,Object> goodMap = new HashMap<>();
|
//商品编号
|
goodMap.put("showId",user.getShowId());
|
goodMap.put("phone",user.getPhone());
|
goodMap.put("nickName",user.getNickName());
|
goodMap.put("id",user.getId());
|
goodMap.put("agentLevel",user.getMemberGradeId());
|
String agentLevelName ="";
|
switch (user.getMemberGradeId()){
|
case 2:
|
agentLevelName = "VIP会员";
|
break;
|
case 3:
|
agentLevelName = "黄金营销员";
|
break;
|
case 4:
|
agentLevelName = "城市合伙人";
|
break;
|
case 5:
|
agentLevelName = "市场总监";
|
break;
|
default:
|
agentLevelName = "普通会员";
|
break;
|
}
|
goodMap.put("agentLevelName",agentLevelName);
|
return goodMap;
|
}).collect(Collectors.toList());
|
return new HashMap<String, Object>(){{
|
put( "code", 200);
|
put( "value", userMapList);
|
}};
|
}
|
|
}
|