Commit dc440189 by 董有沛

活动管理和订单管理、学子公司院校管理

parent 146080ca
package com.winsun.bean;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableName;
import lombok.Data;
@Data
@TableName("hhr_sales_order")
public class SalesOrder {
/**
* 主键
*/
private int id;
/**
* 订单号码
*/
private String orderPhone;
/**
* 用户id
*/
private String userId;
/**
* 创建时间
*/
private Date createTime;
/**
* 审核状态 1:未审核 2:系统审核不通过 3:充值审核通过 4、 充值审核不通过
*/
private String status;
/**
* 审核备注
*/
private String remark;
/**
* 销售县分
*/
private String salesSubst;
/**
* 销售学校
*/
private String salesSchool;
/**
* 审核时间
*/
private Date auditTime ;
/**
* 佣金状态
*/
private String bonusStatus;
/**
* 订单类型
*/
private String orderType;
/**
* 订单编码
*/
private String orderNum;
/**
* 升级套餐
*/
private String upgradeCombo;
/**
* 原套餐
*/
private String oldCombo;
/**
* 删除标价 0:未删除 1:已删除
*/
private String delFlag;
/**
* 号码激活时间
*/
private Date activateTime;
/**
* 网点编码
*/
private String networkCode;
/**
* 网点名称
*/
private String networkName;
/**
* 总激励
*/
private double allBonus;
/**
* 未发放激励
*/
private double nonSendBonus;
/**
* 已发放激励
*/
private double sendBonus;
/**
* 最近充值金额
*/
private double recentlyAmount;
/**
* 最近充值激励
*/
private double recentlyBonus;
/**
* 累计充值金额
*/
private double monthAmount;
/**
* 累计充值激励
*/
private double monthBonus;
/**
* 本金激励
*/
private double capitalBonus;
}
......@@ -9,6 +9,8 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import org.apache.commons.io.filefilter.FalseFileFilter;
@TableName("sys_user")
@Data
public class SysUser implements Serializable {
......@@ -132,4 +134,7 @@ public class SysUser implements Serializable {
private String deptidBelong;
private String oldPassward;
@TableField(exist = false)
private String schoolName;
}
package com.winsun.bean.activity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
@SuppressWarnings("serial")
@TableName("hhr_activity")
@Data
public class HhrActivity implements Serializable{
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private String id;
/**
* 活动标题
*/
private String title;
/**
* 活动详情
*/
private String desc;
/**
* 活动积分
*/
private int integral;
/**
* 活动封面图片
*/
private String imageUrl;
/**
* 活动类型
*/
private String activityType;
/**
* 活动小类
*/
private String subclass;
/**
* 学生证照片
*/
private String range;
/**
* 状态
*/
private String status;
/**
* 排序号
*/
private int sort;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String creator;
/**
* 修改时间
*/
private Date updateTime;
/**
* 删除标记
*/
private int delFlag;
}
package com.winsun.bean.activity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import lombok.Data;
@SuppressWarnings("serial")
@TableName("hhr_activity_record")
@Data
public class HhrActivityRecord implements Serializable{
/**
* 主键
*/
@TableId(type = IdType.AUTO)
private String id;
/**
* 活动ID
*/
private String activityId;
/**
* 活动积分
*/
private int recordIntegral;
/**
* 活动记录审核状态
*/
private String status;
/**
* 审核意见
*/
private String remark;
/**
* 活动记录参与图片
*/
private String imageUrl;
/**
* 活动留言
*/
private String message;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人id
*/
private String createId;
/**
* 创建人
*/
private String creator;
/**
* 修改时间
*/
private Date updateTime;
}
......@@ -33,7 +33,5 @@ public interface PartnerMapper extends BaseMapper<Partner> {
@Insert(" replace into hhr_user_school(user_id,school_id) VALUES(#{userId},#{schoolId})")
int saveSchoolRef(@Param("userId") String userId,@Param("schoolId") String schoolId);
@Select(" select * from hhr_user_school")
List<Map<String, Object>> getSchoolRef();
}
package com.winsun.mapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Component;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.winsun.bean.SalesOrder;
@Mapper
@Component
public interface SalesOrderMapper extends BaseMapper<SalesOrder> {
@Select(" select * from hhr_phone_school ")
List<Map<String, Object>> getPhoneSchool();
@Insert(" replace into hhr_phone_school(order_phone,school) VALUES(#{orderPhone},#{school})")
int updatePhoneSchool(@Param("orderPhone") String orderPhone,@Param("school") String school);
@Update(" update hhr_sales_order set status = #{status}, remark = #{remark} where order_phone = #{orderPhone} and del_flag = 0"
+ " and order_type = 1 and send_bonus = 0 ")
int updateRepealOrder(@Param("status") String status,@Param("remark") String remark,@Param("orderPhone") String orderPhone);
@Select(" select * from hhr_phone_school where order_phone = #{orderPhone} ")
List<Map<String, Object>> getPhoneSchoolByPhone(@Param("orderPhone") String orderPhone);
@Delete("delete from hhr_phone_school where order_phone = #{orderPhone} ")
int deletePhoneSchool(@Param("orderPhone") String orderPhone);
}
......@@ -2,6 +2,9 @@ package com.winsun.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.winsun.bean.School;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
......@@ -29,5 +32,16 @@ public interface SchoolMapper extends BaseMapper<School> {
@Update("insert into hhr_user_school (school_id,user_id) values (#{schoolId},#{userId})")
Integer insertUserSchool(@Param("userId")String usrId ,@Param("schoolId")String schoolId);
@Select("select * from `hhr_user_school` ")
List<Map<String,Object>> getSchoolRef();
@Select("select * from `hhr_supervisor_school` ")
List<Map<String,Object>> getSupervisorSchoolRef();
@Insert(" replace into hhr_supervisor_school(user_id,school) values(#{userId},#{school}) ")
int addSupervisorSchool(@Param("userId") String userId, @Param("school") String school);
@Delete(" delete from hhr_supervisor_school where id = #{id} ")
int deleteSupervisorSchool(@Param("id") String id);
}
package com.winsun.mapper;
package com.winsun.mapper.activity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.winsun.bean.HhrActivity;
import com.winsun.bean.HhrUser;
import com.winsun.bean.activity.HhrActivity;
/**
* 合伙人用户表的Mapper
......
package com.winsun.mapper.activity;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.winsun.bean.activity.HhrActivityRecord;
/**
* 合伙人用户表的Mapper
*/
@Mapper
@Component
public interface ActivityRecordMapper extends BaseMapper<HhrActivityRecord> {
}
package com.winsun.utils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.multipart.MultipartFile;
/**
* 导入Excel文件(支持“XLS”和“XLSX”格式)
* @author
......@@ -168,13 +174,20 @@ public class ImportExcel {
*/
public Object getCellValue(Row row, int column){
Object val = "";
SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
Cell cell = row.getCell(column);
if (cell != null){
if (cell.getCellType() == CellType.NUMERIC){
val = cell.getNumericCellValue();
// DecimalFormat df = new DecimalFormat("0");
// val = df.format(cell.getNumericCellValue());
//val = cell.getNumericCellValue();
if(HSSFDateUtil.isCellDateFormatted(cell)) {
val = sFormat.format(cell.getDateCellValue());
}else {
cell.setCellType(CellType.STRING);
val = cell.getStringCellValue() + "";
}
}else if (cell.getCellType() == CellType.STRING){
val = cell.getStringCellValue();
}else if (cell.getCellType() == CellType.FORMULA){
......
......@@ -2,34 +2,44 @@ package com.winsun.controller;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.google.common.util.concurrent.Service.State;
import com.itextpdf.text.pdf.PdfStructTreeController.returnType;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.bean.HhrActivity;
import com.winsun.mapper.ActivityMapper;
import com.winsun.bean.QRCode;
import com.winsun.bean.activity.HhrActivity;
import com.winsun.bean.activity.HhrActivityRecord;
import com.winsun.mapper.activity.ActivityMapper;
import com.winsun.utils.PicturesUtil;
/**
* @Author: chancy
* @Date: 2020/2/12 17:26
* @Author: dongyp
* @Date: 2020/4/9
*/
@RestController
@RequestMapping("/activity")
public class ActivityController extends BaseController {
private static ActivityMapper activityMapper;
private static String PATH_TYPE = "activity";
@Autowired
public ActivityController(ActivityMapper activityMapper) {
......@@ -48,6 +58,7 @@ public class ActivityController extends BaseController {
wrapper.like(StringUtils.isNotBlank(title), "title", title, SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(activityType), "activity_type", activityType);
wrapper.eq(StringUtils.isNotBlank(subclass), "subclass", subclass);
wrapper.eq("del_flag", 0);
Page<HhrActivity> page = new Page<>(pageIndex, pageSize);
List<HhrActivity> list = activityMapper.selectPage(page, wrapper);
......@@ -125,4 +136,56 @@ public class ActivityController extends BaseController {
return ResponseData.error("删除失败");
}
/**
* 查询活动列表
*
* @param pageNo 查询页码 默认首页
* @param pageSize 查询每页数量 默认10
* @param activityType 查询条件-活动类型
* @param subclass 查询条件-活动小类
* @return
*/
@ResponseBody
@RequestMapping(value = "getActivityList", method = RequestMethod.POST)
public ResponseData<Map<String, Object>> getActivityList(Integer pageNo, Integer pageSize, String activityType, String subclass) {
Wrapper<HhrActivity> wrapper = new EntityWrapper<HhrActivity>();
wrapper.eq(StringUtils.isNotBlank(activityType), "activity_type", activityType);
wrapper.eq(StringUtils.isNotBlank(subclass), "subclass", subclass);
wrapper.eq("del_flag", 0);
Page<HhrActivity> page = new Page<>(pageNo == null ? 1 : pageNo, pageSize == null ? 10 : pageSize);
List<HhrActivity> list = activityMapper.selectPage(page, wrapper);
page.setRecords(list);
resultMap.put("activityList", list);
return ResponseData.success(resultMap, "查询成功");
}
/**
* 获取活动信息
*
* @return
*/
@ResponseBody
@RequestMapping(value = "getActivityInfo", method = RequestMethod.POST)
public ResponseData<Map<String, Object>> getActivityInfo(String id) {
HhrActivity activity = activityMapper.selectById(id);
Map<String, Object> activityMap = JSON.parseObject(JSON.toJSONString(activity), Map.class);
return ResponseData.success(activityMap, "查询成功");
}
@Permission(menuname = "上传图片",value = "uploadImg", method = RequestMethod.POST)
public ResponseData<String> uploadImg(@RequestParam("picture") String picture) {
ShiroUser user = getShiroUser();
Integer userId=user.getId();
String path = PicturesUtil.uploadPictures(picture, userId.toString(),PATH_TYPE);
if(StringUtils.isNoneBlank(path)){
return ResponseData.success(path, "上传成功");
}
return ResponseData.error("上传图片失败!");
}
}
package com.winsun.controller;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.IOUtils;
import com.winsun.bean.OrderView;
import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.bean.YrymReport;
import com.winsun.bean.activity.HhrActivity;
import com.winsun.bean.activity.HhrActivityRecord;
import com.winsun.constant.OrderStatus;
import com.winsun.mapper.OrderViewMapper;
import com.winsun.mapper.PartnerMapper;
import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.mapper.activity.ActivityMapper;
import com.winsun.mapper.activity.ActivityRecordMapper;
import com.winsun.utils.MapUtil;
import lombok.extern.slf4j.Slf4j;
/**
* 活动参与记录 controller
* @Author: dongyp
* @Date: 2020/4/14
*/
@Slf4j
@RestController
@RequestMapping("/activityRecord")
public class ActivityRecordController extends BaseController {
private static ActivityRecordMapper activityRecordMapper;
private static ActivityMapper activityMapper;
private static SysUserMapper sysUserMapper;
private static SchoolMapper schoolMapper;
@Autowired
private PartnerMapper partnerMapper;
@Autowired
private OrderViewMapper orderViewMapper;
@Autowired
public ActivityRecordController(ActivityRecordMapper activityRecordMapper,ActivityMapper activityMapper,SysUserMapper sysUserMapper,SchoolMapper schoolMapper) {
ActivityRecordController.activityRecordMapper = activityRecordMapper;
ActivityRecordController.activityMapper = activityMapper;
ActivityRecordController.sysUserMapper = sysUserMapper;
ActivityRecordController.schoolMapper = schoolMapper;
}
@Permission(menuname = "查询活动参与信息", value = "list", method = RequestMethod.POST)
public ResponseData<Page<Map<String, Object>>> list(@RequestParam("title") String title,
@RequestParam("activityType") String activityType, @RequestParam("subclass") String subclass,
@RequestParam(name = "status", required = false) String status,
@RequestParam(name = "creator", required = false) String creator,
@RequestParam(name = "createTimeStart", required = false) String createTimeStart,
@RequestParam(name = "createTimeEnd", required = false) String createTimeEnd,
@RequestParam(name = "pageNo", required = false) int pageIndex,
@RequestParam(name = "pageSize", required = false) int pageSize) {
Wrapper<HhrActivity> wrapperActivity = new EntityWrapper<HhrActivity>();
wrapperActivity.like(StringUtils.isNotBlank(title), "title", title, SqlLike.DEFAULT);
wrapperActivity.eq(StringUtils.isNotBlank(activityType), "activity_type", activityType);
wrapperActivity.eq(StringUtils.isNotBlank(subclass), "subclass", subclass);
wrapperActivity.eq("del_flag", 0);
List<HhrActivity> listActivity = activityMapper.selectList(wrapperActivity);
Wrapper<HhrActivityRecord> wrapperRecord = new EntityWrapper<HhrActivityRecord>();
wrapperRecord.like(StringUtils.isNotBlank(creator), "creator", creator, SqlLike.DEFAULT);
wrapperRecord.eq(StringUtils.isNotBlank(status), "status", status);
List<HhrActivityRecord> listRecord = activityRecordMapper.selectList(wrapperRecord);
Page<Map<String, Object>> page = new Page<>(pageIndex, pageSize);
List<Map<String, Object>> newList = new ArrayList<Map<String,Object>>();
for(HhrActivityRecord activityRecord : listRecord) {
String activityId = activityRecord.getActivityId();
for(HhrActivity activity : listActivity) {
if(activityId.equals(activity.getId())) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", activity.getTitle());
map.put("desc", activity.getDesc());
map.put("integral", activity.getIntegral());
map.put("activityType", activity.getActivityType());
map.put("subclass", activity.getSubclass());
map.put("id", activityRecord.getId());
map.put("status", activityRecord.getStatus());
map.put("remark", activityRecord.getRemark());
map.put("recordIntegral", activityRecord.getRecordIntegral());
map.put("creator", activityRecord.getCreator());
map.put("message", activityRecord.getMessage());
map.put("createTime", activityRecord.getCreateTime());
newList.add(map);
}
}
}
List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
if(newList.size() < pageSize) {
dataList = newList;
}else {
dataList = newList.subList((pageIndex-1)*pageSize, pageIndex*pageSize);
}
page.setRecords(dataList);
page.setTotal(newList.size());
return ResponseData.success(page, "查询完毕!");
}
@Permission(menuname = "审核活动参与记录", value = "auditActivityRecord", method = RequestMethod.POST)
public ResponseData<String> auditActivityRecord(@RequestParam("id") String id,
@RequestParam("status") String status, @RequestParam("integral") String integral,
@RequestParam("remark") String remark){
HhrActivityRecord activityRecord = new HhrActivityRecord();
activityRecord.setId(id);
activityRecord.setStatus(status);
activityRecord.setRecordIntegral(Integer.parseInt(integral));
activityRecord.setRemark(remark);
activityRecord.setUpdateTime(new Date());
int num = activityRecordMapper.updateById(activityRecord);
if (num > 0) {
return ResponseData.success("审核完毕!");
}
return ResponseData.error("审核失败");
}
@Permission(menuname = "查询积分记录信息", value = "getIntegralList", method = RequestMethod.POST)
public ResponseData<Page<Map<String, Object>>> getIntegralList(@RequestParam("title") String title,
@RequestParam("activityType") String activityType, @RequestParam("subclass") String subclass,
@RequestParam(name = "account", required = false) String account,
@RequestParam(name = "name", required = false) String name,
@RequestParam(name = "createTimeStart", required = false) String createTimeStart,
@RequestParam(name = "createTimeEnd", required = false) String createTimeEnd,
@RequestParam(name = "pageNo", required = false) int pageIndex,
@RequestParam(name = "pageSize", required = false) int pageSize) {
Wrapper<HhrActivity> wrapperActivity = new EntityWrapper<HhrActivity>();
wrapperActivity.like(StringUtils.isNotBlank(title), "title", title, SqlLike.DEFAULT);
wrapperActivity.eq(StringUtils.isNotBlank(activityType), "activity_type", activityType);
wrapperActivity.eq(StringUtils.isNotBlank(subclass), "subclass", subclass);
wrapperActivity.eq("del_flag", 0);
List<HhrActivity> listActivity = activityMapper.selectList(wrapperActivity);
Wrapper<HhrActivityRecord> wrapperRecord = new EntityWrapper<HhrActivityRecord>();
List<HhrActivityRecord> listRecord = activityRecordMapper.selectList(wrapperRecord);
Wrapper<SysUser> wrapperUser = new EntityWrapper<SysUser>();
wrapperUser.like(StringUtils.isNotBlank(name), "name", name, SqlLike.DEFAULT);
wrapperUser.eq(StringUtils.isNotBlank(account), "account", account);
List<SysUser> userList = sysUserMapper.selectList(wrapperUser);
Wrapper<School> wrapperSchool = new EntityWrapper<School>();
List<School> schoolList = schoolMapper.selectList(wrapperSchool);
Map<String, Object> refMap = MapUtil.listToMap(schoolMapper.getSchoolRef(), "user_id", "school_id");
for(SysUser sysUser : userList) {
String userId = sysUser.getId();
if(null != refMap.get(userId)) {
for(School school : schoolList) {
if(refMap.get(userId).toString().equals(school.getId())) {
sysUser.setSubstName(school.getSubName());
sysUser.setSchoolName(school.getSubName());
}
}
}
}
Page<Map<String, Object>> page = new Page<>(pageIndex, pageSize);
List<Map<String, Object>> newList = new ArrayList<Map<String,Object>>();
for(HhrActivityRecord activityRecord : listRecord) {
String activityId = activityRecord.getActivityId();
Map<String, Object> map = new HashMap<String, Object>();
int num = 0;
for(HhrActivity activity : listActivity) {
if(activityId.equals(activity.getId())) {
map.put("title", activity.getTitle());
map.put("desc", activity.getDesc());
map.put("integral", activity.getIntegral());
map.put("activityType", activity.getActivityType());
map.put("subclass", activity.getSubclass());
map.put("id", activityRecord.getId());
map.put("status", activityRecord.getStatus());
map.put("remark", activityRecord.getRemark());
map.put("recordIntegral", activityRecord.getRecordIntegral());
map.put("creator", activityRecord.getCreator());
map.put("message", activityRecord.getMessage());
map.put("createTime", activityRecord.getCreateTime());
num++;
break;
}
}
for(SysUser sysUser : userList) {
if(sysUser.getId().equals(activityRecord.getCreateId())) {
map.put("account", sysUser.getAccount());
map.put("name", sysUser.getName());
map.put("substName", sysUser.getSubstName());
map.put("schoolName", sysUser.getSchoolName());
num++;
break;
}
}
if(num == 2) {
newList.add(map);
}
}
List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
if(newList.size() < pageSize) {
dataList = newList;
}else {
dataList = newList.subList((pageIndex-1)*pageSize, pageIndex*pageSize);
}
page.setRecords(dataList);
page.setTotal(newList.size());
return ResponseData.success(page, "查询完毕!");
}
@Permission(menuname = "导出活动积分记录", value = "exportIntegralRecord", method = RequestMethod.POST)
public void exportIntegralRecord(@RequestParam("title") String title,
@RequestParam("activityType") String activityType, @RequestParam("subclass") String subclass,
@RequestParam(name = "status", required = false) String status,
@RequestParam(name = "creator", required = false) String creator,
@RequestParam(name = "createTimeStart", required = false) String createTimeStart,
@RequestParam(name = "createTimeEnd", required = false) String createTimeEnd
) throws IOException {
Wrapper<HhrActivity> wrapperActivity = new EntityWrapper<HhrActivity>();
wrapperActivity.like(StringUtils.isNotBlank(title), "title", title, SqlLike.DEFAULT);
wrapperActivity.eq(StringUtils.isNotBlank(activityType), "activity_type", activityType);
wrapperActivity.eq(StringUtils.isNotBlank(subclass), "subclass", subclass);
wrapperActivity.eq("del_flag", 0);
List<HhrActivity> listActivity = activityMapper.selectList(wrapperActivity);
Wrapper<HhrActivityRecord> wrapperRecord = new EntityWrapper<HhrActivityRecord>();
wrapperRecord.like(StringUtils.isNotBlank(creator), "creator", creator, SqlLike.DEFAULT);
wrapperRecord.eq(StringUtils.isNotBlank(status), "status", status);
List<HhrActivityRecord> listRecord = activityRecordMapper.selectList(wrapperRecord);
Wrapper<SysUser> wrapperUser = new EntityWrapper<SysUser>();
wrapperUser.like(StringUtils.isNotBlank(creator), "creator", creator, SqlLike.DEFAULT);
wrapperUser.eq(StringUtils.isNotBlank(status), "status", status);
List<SysUser> userList = sysUserMapper.selectList(wrapperUser);
Wrapper<School> wrapperSchool = new EntityWrapper<School>();
wrapperSchool.like(StringUtils.isNotBlank(creator), "creator", creator, SqlLike.DEFAULT);
wrapperSchool.eq(StringUtils.isNotBlank(status), "status", status);
List<School> schoolList = schoolMapper.selectList(wrapperSchool);
Map<String, Object> refMap = MapUtil.listToMap(schoolMapper.getSchoolRef(), "user_id", "school_id");
for(SysUser sysUser : userList) {
String userId = sysUser.getId();
if(null != refMap.get(userId)) {
for(School school : schoolList) {
if(refMap.get(userId).toString().equals(school.getId())) {
sysUser.setSubstName(school.getSubName());
sysUser.setSchoolName(school.getSubName());
}
}
}
}
List<Map<String, Object>> newList = new ArrayList<Map<String,Object>>();
for(HhrActivityRecord activityRecord : listRecord) {
String activityId = activityRecord.getActivityId();
Map<String, Object> map = new HashMap<String, Object>();
int num = 0;
for(HhrActivity activity : listActivity) {
if(activityId.equals(activity.getId())) {
map.put("title", activity.getTitle());
map.put("desc", activity.getDesc());
map.put("integral", activity.getIntegral());
map.put("activityType", activity.getActivityType());
map.put("subclass", activity.getSubclass());
map.put("id", activityRecord.getId());
map.put("status", activityRecord.getStatus());
map.put("remark", activityRecord.getRemark());
map.put("recordIntegral", activityRecord.getRecordIntegral());
map.put("creator", activityRecord.getCreator());
map.put("message", activityRecord.getMessage());
map.put("createTime", activityRecord.getCreateTime());
num++;
}
}
for(SysUser sysUser : userList) {
if(sysUser.getId().equals(activityRecord.getCreateId())) {
map.put("account", sysUser.getAccount());
map.put("name", sysUser.getName());
map.put("substName", sysUser.getSubstName());
map.put("schoolName", sysUser.getSchoolName());
num++;
}
}
if(num == 2) {
newList.add(map);
}
}
List<String> tops = new ArrayList<>();
tops.add("姓名");
tops.add("账号");
tops.add("所得积分");
tops.add("积分类型");
tops.add("积分小类");
tops.add("县分");
tops.add("学校");
tops.add("创建时间");
List<String> columns = new ArrayList<>();
columns.add("name");
columns.add("account");
columns.add("recordIntegral");
columns.add("activityType");
columns.add("subclass");
columns.add("substName");
columns.add("schoolName");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("积分记录清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 6500);
sheet.setColumnWidth(3, 6500);
sheet.setColumnWidth(4, 6500);
sheet.setColumnWidth(5, 7000);
sheet.setColumnWidth(6, 4000);
sheet.setColumnWidth(7, 4000);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps: newList) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
@Permission(menuname = "导出宽带订单", value = "download", method = RequestMethod.POST)
public void downloadOrderView(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime,
@RequestParam("orderseq") String orderseq, @RequestParam("orderUniversityName") String orderUniversityName,
@RequestParam("status") String status, @RequestParam("ordername") String ordername) {
String dateFormat = "YYYY-MM-DD";
if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
startTime = startTime.substring(0, dateFormat.length()) + " 00:00:00";
endTime = endTime.substring(0, dateFormat.length()) + " 23:59:59";
} else {
startTime = null;
endTime = null;
}
String state=null;
if(StringUtils.isNotBlank(status)){
state = OrderStatus.findById(status).getId();
}
Wrapper<OrderView> wrapper = new EntityWrapper();
wrapper.like(StringUtils.isNotBlank(orderseq), "orderSeq", orderseq, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(ordername), "orderName", ordername, SqlLike.DEFAULT);
wrapper.like(StringUtils.isNotBlank(orderUniversityName), "order_university_name", orderUniversityName, SqlLike.DEFAULT);
wrapper.eq(StringUtils.isNotBlank(status), "status",state);
wrapper.ge(StringUtils.isNotBlank(startTime),"orderDate",startTime);
wrapper.le(StringUtils.isNotBlank(endTime),"orderDate",endTime);
List<Map<String, Object>> OrderViews = orderViewMapper.downloadOrderView(wrapper);
List<String> tops = new ArrayList<>();
tops.add("订单id");
tops.add("订单编号");
tops.add("产品名称");
tops.add("产品价格");
tops.add("套餐");
tops.add("学校");
tops.add("区域");
tops.add("客户姓名");
tops.add("联系电话");
tops.add("订单状态");
tops.add("备注");
tops.add("创建时间");
tops.add("支付平台");
tops.add("支付方式");
tops.add("支付时间");
tops.add("穗易付订单号");
tops.add("接入商");
tops.add("支付平台流水号");
tops.add("智能平台订单号");
List<String> columns = new ArrayList<>();
columns.add("order_id");
columns.add("orderSeq");
columns.add("productName");
columns.add("webOrderAmount");
columns.add("order_set_meal");
columns.add("order_university_name");
columns.add("order_region");
columns.add("orderName");
columns.add("orderPhone");
columns.add("status");
columns.add("order_customer_remarks");
columns.add("orderDate");
columns.add("ipay");
columns.add("payType");
columns.add("order_payment_time");
columns.add("orderReqtranSeq");
columns.add("customeRid");
columns.add("uptranseq");
columns.add("orderSeqTHD");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("宽带订单清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 6500);
sheet.setColumnWidth(5, 7000);
sheet.setColumnWidth(8, 4000);
sheet.setColumnWidth(10, 6500);
sheet.setColumnWidth(11, 6500);
sheet.setColumnWidth(14, 6500);
sheet.setColumnWidth(15, 7000);
sheet.setColumnWidth(17, 7500);
sheet.setColumnWidth(18, 600);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps: OrderViews) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
/**
* 保存活动参与记录(微信端)
*
* @return
*/
@ResponseBody
@RequestMapping(value = "addActivityRecord", method = RequestMethod.POST)
public ResponseData<String> getActivityInfo(String id,String message,String imageUrl) {
ShiroUser user = getShiroUser();
HhrActivityRecord activityRecord = new HhrActivityRecord();
activityRecord.setActivityId(id);
activityRecord.setMessage(message);
activityRecord.setImageUrl(imageUrl);
activityRecord.setCreateId(Integer.toString(user.getId()));
activityRecord.setCreator(user.getName());
activityRecord.setCreateTime(new Date());
int num = activityRecordMapper.insert(activityRecord);
if(num > 0) {
return ResponseData.success("提交成功!");
}
return ResponseData.error("提交失败!");
}
}
......@@ -21,7 +21,6 @@ import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.bean.HhrActivity;
import com.winsun.bean.HhrUser;
import com.winsun.bean.Partner;
import com.winsun.bean.School;
......@@ -96,7 +95,7 @@ public class PartnerController extends BaseController {
// wrapperSchool.like(StringUtils.isNotBlank(name), "name", name, SqlLike.DEFAULT);
List<School> schoolList = schoolMapper.selectList(wrapperSchool);
Map<String, Object> refMap = MapUtil.listToMap(partnerMapper.getSchoolRef(), "user_id", "school_id");
Map<String, Object> refMap = MapUtil.listToMap(schoolMapper.getSchoolRef(), "user_id", "school_id");
List<Map<String, Object>> newList = new ArrayList<>();
// List<Map<String, Object>> sysList = new ArrayList<>();
......
package com.winsun.controller;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.auth.core.shiro.ShiroUser;
import com.winsun.auth.core.util.IOUtils;
import com.winsun.bean.SalesOrder;
import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.bean.YrymReport;
import com.winsun.mapper.SalesOrderMapper;
import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.utils.ImportExcel;
import com.winsun.utils.MapUtil;
import lombok.extern.slf4j.Slf4j;
/**
* 销售订单
* @author Warden
*
*/
@Slf4j
@RestController
@RequestMapping("/salesOrder")
public class SalesOrderController extends BaseController{
/**
* 导入
*/
private static final int HEADER_NUM = -1;
private static final int SHEET_INDEX = 0;
/**
* 放号上传模板列名
*/
private static String FH_SORT = "序号";
private static String FH_ORDER_PHONE = "放号号码(必填)";
private static String FH_NAME = "销售员(必填,填合伙人注册姓名)";
private static String FH_ACCOUNT = "销售员账号(必填,系统注册手机号,重要)";
private static String FH_SALES_SCHOOL = "销售学校";
private static String FH_SALES_SUBST = "销售县分";
/**
* 充值审核模板列名
*/
private static String CZ_ORDER_PHONE = "电信激活号码";
private static String CZ_ACTIVATE_TIME = "激活时间";
private static String CZ_NETWORK_CODE = "所属网点编码";
private static String CZ_NETWORK_NAME = "所属网点";
private static String CZ_AMOUNT = "充值金额";
private static SalesOrderMapper salesOrderMapper;
private static SysUserMapper sysUserMapper;
private static SchoolMapper schoolMapper;
private List<Map<String, Object>> exportList = new ArrayList<Map<String,Object>>();
private SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Autowired
public SalesOrderController(SalesOrderMapper salesOrderMapper,SysUserMapper sysUserMapper,SchoolMapper schoolMapper) {
SalesOrderController.salesOrderMapper = salesOrderMapper;
SalesOrderController.sysUserMapper = sysUserMapper;
SalesOrderController.schoolMapper = schoolMapper;
}
@Permission(menuname = "获取销售订单列表", value ="/list", method = RequestMethod.POST)
public ResponseData<Page<SalesOrder>> getList(@RequestParam("orderPhone") String orderPhone,
@RequestParam("name") String name,@RequestParam("account") String account,
@RequestParam("status") String status,@RequestParam("orderType") String orderType,
@RequestParam("createTimeStart") String createTimeStart,@RequestParam("createTimeEnd") String createTimeEnd,
@RequestParam("activateTimeStart") String activateTimeStart,@RequestParam("activateTimeEnd") String activateTimeEnd,
@RequestParam(name = "pageNo", required = false) int pageIndex,
@RequestParam(name = "pageSize", required = false) int pageSize){
Page<SalesOrder> page = new Page<>(pageIndex, pageSize);
Wrapper<SalesOrder> wrapperOrder = new EntityWrapper<SalesOrder>();
wrapperOrder.eq(StringUtils.isNotBlank(orderPhone), "order_phone", orderPhone);
wrapperOrder.eq(StringUtils.isNotBlank(orderType), "order_type", orderType);
wrapperOrder.eq(StringUtils.isNotBlank(status), "status", status);
wrapperOrder.eq(StringUtils.isNotBlank(name), "name", name);
wrapperOrder.eq(StringUtils.isNotBlank(account), "account", account);
wrapperOrder.eq("del_flag", 0);
List<SalesOrder> orderList = salesOrderMapper.selectPage(page, wrapperOrder);
page.setRecords(orderList);
return ResponseData.success(page, "查询完毕!");
}
@Permission(menuname = "删除销售订单", value ="/deleteOrder", method = RequestMethod.POST)
public ResponseData<String> deleteOrder(@RequestParam("id") String id){
SalesOrder salesOrder = salesOrderMapper.selectById(id);
String status = salesOrder.getStatus();
String orderPhone = salesOrder.getOrderPhone();
String salesSchool = salesOrder.getSalesSchool();
salesOrder.setDelFlag("1");
int num = salesOrderMapper.updateById(salesOrder);
if(num > 0) {
if("0".equals(status)) {
// 重复订单删除后,重置对其它重复订单的影响
List<Map<String, Object>> phoneSchoolList = salesOrderMapper.getPhoneSchoolByPhone(orderPhone);
Map<String, Object> phoneSchoolMap = phoneSchoolList.get(0);
String phoneSchool = (String)phoneSchoolMap.get("school");
String remark = "";
if(phoneSchool.indexOf(salesSchool+",") > -1) {
phoneSchool = phoneSchool.replace(salesSchool+",", "");
}else {
phoneSchool = phoneSchool.replace(","+salesSchool, "");
}
if(phoneSchool.split(",").length > 1) {
remark = "放号号码"+ phoneSchool +"学校有重复记录,请后期进行核对";
}else {
status = "1";
}
// 更新号码所属学校
phoneSchoolMap.put("phoneSchool", phoneSchool);
phoneSchoolMap.put("orderPhone", orderPhone);
List<Map<String, Object>> updateSchoolList = new ArrayList<Map<String,Object>>();
updateSchoolList.add(phoneSchoolMap);
updatePhoneSchool(updateSchoolList);
salesOrderMapper.updateRepealOrder(status,remark,orderPhone);
}else {
salesOrderMapper.deletePhoneSchool(orderPhone);
}
return ResponseData.success("删除成功");
}
return ResponseData.error("删除失败");
}
@Permission(menuname = "导出订单清单", value = "exportList", method = RequestMethod.POST)
public void downloadHhrOrder(HttpServletResponse response, @RequestParam("orderPhone") String orderPhone,
@RequestParam("name") String name,@RequestParam("account") String account,
@RequestParam("status") String status,@RequestParam("orderType") String orderType,
@RequestParam("createTimeStart") String createTimeStart,@RequestParam("createTimeEnd") String createTimeEnd,
@RequestParam("activateTimeStart") String activateTimeStart,@RequestParam("activateTimeEnd") String activateTimeEnd
) throws IOException {
//获取数据
/*
* List<YrymReport> reportNum = getReportNum(startTime, endTime);
*
* InputStream in = null; ExcelWriter excelWriter = null; ServletOutputStream
* outputStream = null; try {
* response.setContentType("application/vnd.ms-excel");
* response.setCharacterEncoding("utf-8"); //防止中文乱码 String fileName =
* URLEncoder.encode("销售清单", "UTF-8"); response.setHeader("Content-disposition",
* "attachment;filename=" + fileName + ".xlsx"); in =
* this.getClass().getResourceAsStream("/static/销售清单模板.xlsx"); outputStream =
* response.getOutputStream(); excelWriter =
* EasyExcel.write(outputStream).withTemplate(in).excelType(ExcelTypeEnum.XLSX).
* build(); WriteSheet writeSheet = EasyExcel.writerSheet().build();
* excelWriter.fill(reportNum, writeSheet); Map<String, Object> map = new
* HashMap<String, Object>(); LocalDate nowTime = LocalDate.now();
* map.put("month", nowTime.getMonthValue()); map.put("date",
* nowTime.getDayOfMonth()); excelWriter.fill(map, writeSheet); } catch
* (Exception e) { // 重置response response.reset();
* response.setContentType("application/json");
* response.setCharacterEncoding("utf-8"); Map<String, String> map = new
* HashMap<String, String>(); map.put("status", "failure"); map.put("message",
* "下载文件失败" + e.getMessage());
* response.getWriter().println(JSON.toJSONString(map)); log.error("销售清单下载文件失败",
* e.getMessage()); } finally { //关闭资源 if (excelWriter != null) {
* excelWriter.finish(); } if (outputStream != null) { outputStream.flush(); }
* if (in != null) { in.close(); } }
*/
}
/**
* 根据县分名称获取一人一码发展统计表数据
*
* @param startTime 开始时间
* @param endTime 结束时间
* @return
*/
private List<YrymReport> getReportNum(String startTime, String endTime) {
List<YrymReport> resultList = new ArrayList<>();
return resultList;
}
/**
* 受理订单
*
* @param file 上传的数据文件
* @return
*/
@Permission(menuname = "上传订单数据", value = "importOrder", method = RequestMethod.POST)
public ResponseData<String> importOrder(@RequestParam(name = "file") MultipartFile file) {
StringBuffer info = new StringBuffer();
if (!StringUtils.endsWithAny(file.getOriginalFilename(), "xlsx", "xls")) {
return ResponseData.error("手工上传数据仅支持Excel文件,其他格式不支持!");
}
ShiroUser user = getShiroUser();
// 当前是否有数据权限
boolean hasDataPermission = user.getRoleNames().stream().anyMatch(data -> StringUtils.equalsAny(data, "活动上单员", "数据管理员", "超级管理员"));
if (!hasDataPermission) {
return ResponseData.error("无数据权限!");
}
ImportExcel importExcel = null;
try {
importExcel = new ImportExcel(file, HEADER_NUM, SHEET_INDEX);
} catch (Exception e) {
log.error("受理单导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
List<Map<String, Object>> listMap = importExcel.getDataListMap();
if (listMap.size() == 1) {
return ResponseData.error("文件不能为空");
}
if (!listMap.get(0).get("b").toString().equals(FH_ORDER_PHONE)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("c").toString().equals(FH_NAME)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(FH_ACCOUNT)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("e").toString().equals(FH_SALES_SCHOOL)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("f").toString().equals(FH_SALES_SUBST)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (listMap.get(0).size() != 6) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
//校验数据
try {
//校验数据
for (int i = 1; i < listMap.size(); i++) {
Map<String, Object> temp = listMap.get(i);
if (!temp.containsKey("b")) {
return ResponseData.error("第" + (i + 1) + "行的放号号码不能为空");
}
if (StringUtils.isBlank(temp.get("d").toString())) {
return ResponseData.error("第" + (i + 1) + "行的放号人账号不能为空");
}
}
//检查excel表中是否有重复人员编号
int size = listMap.size();
Set<String> accountSet = new HashSet<>(size);
for (int i = 0; i < size; i++) {
Map<String, Object> temp = listMap.get(i);
accountSet.add((String) temp.get("b"));
}
if (accountSet.size() != size) {
return ResponseData.error("上传清单包含重复号码,请删除重复号码再上传!");
}
} catch (Exception e) {
log.error("放号清单导入异常" + e.getMessage(), e);
return ResponseData.error("导入异常!");
}
// 去掉首行标题
listMap.remove(0);
Map<String, Object> resultMap = dealUploadData(listMap);
int num = (int)resultMap.get("num");
exportList = (List<Map<String, Object>>)resultMap.get("infoList");
info.append("导入" + num+ "条数据!");
if(exportList.size() > 0) {
info.append("返回导入结果清单!");
}
return ResponseData.success(info.toString(), "导入完成");
}
public Map<String,Object> dealUploadData(List<Map<String,Object>> list){
Map<String, Object> resultMap = new HashMap<String, Object>();
// 处理放号清单号码的销售学校清单,用于重复判断
Map<String, Object> phoneSchoolMap = MapUtil.listToMap(salesOrderMapper.getPhoneSchool(), "order_phone", "school");
// 处理用户清单
Wrapper<SysUser> wrapperUser = new EntityWrapper<SysUser>();
wrapperUser.setSqlSelect(" account,id ");
wrapperUser.eq("status", 1);
List<Map<String, Object>> userList = sysUserMapper.selectMaps(wrapperUser);
Map<String, Object> userMaps = MapUtil.listToMap(userList, "account", "id");
List<Map<String, Object>> insertList = new ArrayList<Map<String,Object>>();
List<Map<String, Object>> phoneSchoolList = new ArrayList<Map<String,Object>>();
List<Map<String, Object>> updateList = new ArrayList<Map<String,Object>>();
List<Map<String, Object>> infoList = new ArrayList<Map<String,Object>>();
for(Map<String, Object> map : list) {
String sortNo = (String)map.get("a");
String orderPhone = (String)map.get("b");
String name = (String)map.get("c");
String account = (String)map.get("d");
String salesSchool = (String)map.get("e");
String salesSubst = (String)map.get("f");
Map<String, Object> theMap = new HashMap<String, Object>();
theMap.put("sortNo", sortNo);
theMap.put("orderPhone", orderPhone);
theMap.put("name", name);
theMap.put("account", account);
theMap.put("salesSchool", salesSchool);
theMap.put("salesSubst", salesSubst);
if(null == userMaps.get(account)) {
theMap.put("desc", "账号不存在");
infoList.add(theMap);
continue;
}else {
theMap.put("userId", userMaps.get(account));
}
if(null != phoneSchoolMap.get(orderPhone)) {
String phoneSchool = (String)phoneSchoolMap.get(orderPhone);
if(phoneSchool.indexOf(salesSchool) > -1) {
theMap.put("desc", "放号号码该销售学校有重复记录,请去重后重新上传");
infoList.add(theMap);
}else {
theMap.put("desc", "放号号码"+ phoneSchool +","+salesSchool +"学校有重复记录,请后期进行核对;");
theMap.put("phoneSchool", phoneSchool +","+salesSchool);
updateList.add(theMap);
insertList.add(theMap);
phoneSchoolList.add(theMap);
infoList.add(theMap);
}
}else {
theMap.put("phoneSchool", salesSchool);
insertList.add(theMap);
phoneSchoolList.add(theMap);
}
}
int num = addSalesOrder(insertList);
updatePhoneSchool(phoneSchoolList);
updateRepealOrder(updateList);
resultMap.put("num", num);
resultMap.put("infoList", infoList);
return resultMap;
}
// 插入销售订单表
public int addSalesOrder(List<Map<String, Object>> list) {
int num = 0;
for(Map<String, Object> map : list) {
SalesOrder order = new SalesOrder();
order.setOrderPhone((String)map.get("orderPhone"));
order.setUserId(Integer.toString((int)map.get("userId")));
order.setCreateTime(new Date());
order.setSalesSubst((String)map.get("salesSubst"));
order.setSalesSchool((String)map.get("salesSchool"));
order.setOrderType("1");
num += salesOrderMapper.insert(order);
}
return num;
}
// 更新号码销售学校表
public void updatePhoneSchool(List<Map<String, Object>> list) {
for(Map<String, Object> map : list) {
salesOrderMapper.updatePhoneSchool((String)map.get("orderPhone"), (String)map.get("phoneSchool"));
}
}
// 更新重复订单的备注说明
public void updateRepealOrder(List<Map<String, Object>> list) {
for(Map<String, Object> map : list) {
String orderPhone = (String)map.get("orderPhone");
// 0 重复上传
String status = "0";
String phoneSchool = (String)map.get("phoneSchool");
String remark = "放号号码在"+ phoneSchool + "重复上传";
salesOrderMapper.updateRepealOrder(status,remark,orderPhone);
}
}
/**
* 充值审核
*
* @param file 上传的数据文件
* @return
*/
@Permission(menuname = "充值审核", value = "importRechargeData", method = RequestMethod.POST)
public ResponseData<String> importRechargeData(@RequestParam(name = "file") MultipartFile file) {
StringBuffer info = new StringBuffer();
if (!StringUtils.endsWithAny(file.getOriginalFilename(), "xlsx", "xls")) {
return ResponseData.error("手工上传数据仅支持Excel文件,其他格式不支持!");
}
ShiroUser user = getShiroUser();
// 当前是否有数据权限
boolean hasDataPermission = user.getRoleNames().stream().anyMatch(data -> StringUtils.equalsAny(data, "活动上单员", "数据管理员", "超级管理员"));
if (!hasDataPermission) {
return ResponseData.error("无数据权限!");
}
ImportExcel importExcel = null;
try {
importExcel = new ImportExcel(file, HEADER_NUM, SHEET_INDEX);
} catch (Exception e) {
log.error("充值审核导入异常", e.getMessage());
return ResponseData.error("导入异常!");
}
List<Map<String, Object>> listMap = importExcel.getDataListMap();
if (listMap.size() == 1) {
return ResponseData.error("文件不能为空");
}
if (!listMap.get(0).get("a").toString().equals(CZ_ORDER_PHONE)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("b").toString().equals(CZ_ACTIVATE_TIME)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("c").toString().equals(CZ_NETWORK_CODE)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("d").toString().equals(CZ_NETWORK_NAME)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (!listMap.get(0).get("e").toString().equals(CZ_AMOUNT)) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
if (listMap.get(0).size() != 5) {
return ResponseData.error("模板不对,请选择正确的模板!");
}
//校验数据
try {
//校验数据
for (int i = 1; i < listMap.size(); i++) {
Map<String, Object> temp = listMap.get(i);
if (!temp.containsKey("a")) {
return ResponseData.error("第" + (i + 1) + "行的激活号码不能为空");
}
if (StringUtils.isBlank(temp.get("b").toString())) {
return ResponseData.error("第" + (i + 1) + "行的激活时间不能为空");
}
if (StringUtils.isBlank(temp.get("d").toString())) {
return ResponseData.error("第" + (i + 1) + "行的系统所属网点编码不能为空");
}
if (StringUtils.isBlank(temp.get("c").toString())) {
return ResponseData.error("第" + (i + 1) + "行的系统所属网点名称不能为空");
}
if (StringUtils.isBlank(temp.get("d").toString())) {
return ResponseData.error("第" + (i + 1) + "行的充值金额不能为空");
}
}
} catch (Exception e) {
log.error("充值审核导入异常" + e.getMessage(), e);
return ResponseData.error("导入异常!");
}
// 去掉首行标题
listMap.remove(0);
int num = dealRechargeData(listMap);
return ResponseData.success("审核完成,审核"+ num +"条订单!");
}
// 处理充值审核数据
public int dealRechargeData(List<Map<String,Object>> list){
Map<String, Object> resultMap = new HashMap<String, Object>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -7);
String date = simpleDateFormat.format(calendar.getTime());
// 获取半年上传内的订单
Wrapper<SalesOrder> wrapperOrder = new EntityWrapper<SalesOrder>();
wrapperOrder.ge("create_time", date);
wrapperOrder.eq("order_type", 1);
wrapperOrder.eq("del_flag", 0);
wrapperOrder.eq("send_bonus", 0);
wrapperOrder.ne("status", "0");
List<Map<String, Object>> orderList = salesOrderMapper.selectMaps(wrapperOrder);
Map<String, Object> orderMaps = MapUtil.listToMap(orderList, "orderPhone");
// 获取学校清单比较网点
Wrapper<School> wrapperSchool = new EntityWrapper<School>();
wrapperSchool.setSqlSelect(" school_name as schoolName,network_name as networkName,network_code as networkCode ");
List<Map<String, Object>> schoolList = schoolMapper.selectMaps(wrapperSchool);
Map<String, Object> schoolMaps = MapUtil.listToMap(schoolList, "schoolName");
List<Map<String, Object>> updateList = new ArrayList<Map<String,Object>>();
for(Map<String, Object> map : list) {
String orderPhone = (String)map.get("a");
String activateTime = (String)map.get("b");
String networkCode = (String)map.get("c");
String networkName = (String)map.get("d");
double amount = Double.parseDouble((String)map.get("e"));
boolean isSkip = false;
if(null != orderMaps.get(orderPhone)) {
Map<String, Object> orderMap = (Map<String, Object>)orderMaps.get(orderPhone);
String status = "2";
String remark = "激活号码所属学校与上报学校不一致";
if(null == networkName) {
isSkip = true;
}
Map<String, Object> schoolMap = (Map<String, Object>)schoolMaps.get(orderMap.get("salesSchool"));
if(null != schoolMap.get("networkCode")) {
if(networkCode.equals(schoolMap.get("networkCode"))) {
double bonus = 0;
double allBonus = 0;
double nonSendBonus = 0;
if(amount >= 50 && amount < 100) {
bonus = 20;
}else if(amount >= 100) {
bonus = 40;
}
if("广州美术学院(大学城)".equals(orderMap.get("sales_school")) && bonus >= 20){
bonus = 10;
}
allBonus = bonus;
nonSendBonus = bonus;
if(bonus == 0) {
status = "4";
remark = "充值金额小于50元";
}else {
status = "3";
remark = "";
}
orderMap.put("allBonus", allBonus);
orderMap.put("nonSendBonus", nonSendBonus);
orderMap.put("recentlyAmount", amount);
orderMap.put("recentlyBonus", bonus);
}
}else {
remark = "该学校的网点信息未添加";
}
orderMap.put("status", status);
orderMap.put("remark", remark);
orderMap.put("activateTime", activateTime);
orderMap.put("networkCode", networkCode);
orderMap.put("networkName", networkName);
updateList.add(orderMap);
}
}
int num = updateAuditResult(updateList);
return num;
}
// 更新审核结果到销售订单
public int updateAuditResult(List<Map<String, Object>> list) {
int num = 0;
try {
for(Map<String, Object> map : list) {
SalesOrder order = new SalesOrder();
order.setId((int)map.get("id"));
order.setStatus((String)map.get("status"));
order.setRemark((String)map.get("remark"));
order.setAuditTime(new Date());
if(!"1".equals((String)map.get("status"))) {
order.setAllBonus((double)map.get("allBonus"));
order.setNonSendBonus((double)map.get("nonSendBonus"));
order.setRecentlyAmount((double)map.get("recentlyAmount"));
order.setRecentlyBonus((double)map.get("nonSendBonus"));
order.setActivateTime(sFormat.parse((String)map.get("activateTime")));
order.setNetworkCode((String)map.get("networkCode"));
order.setNetworkName((String)map.get("networkName"));
}
num += salesOrderMapper.updateById(order);
}
}catch (Exception e) {
log.error("更新审核结果到销售订单异常" + e.getMessage(), e);
}
return num;
}
@Permission(menuname = "放号上传模板", method = RequestMethod.POST, value = "downloadTemplateFH")
public ResponseData downloadTemplateFH() {
ArrayList<String> columns = new ArrayList<>();
columns.add(FH_SORT);
columns.add(FH_ORDER_PHONE);
columns.add(FH_NAME);
columns.add(FH_ACCOUNT);
columns.add(FH_SALES_SCHOOL);
columns.add(FH_SALES_SUBST);
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("放号上传清单");
sheet.setColumnWidth(0, 3000);
sheet.setColumnWidth(1, 5000);
sheet.setColumnWidth(2, 5000);
sheet.setColumnWidth(3, 4000);
sheet.setColumnWidth(4, 4000);
sheet.setColumnWidth(5, 4000);
//添加表头
final XSSFRow row = sheet.createRow(0);
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
columns.forEach(val -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(val);
});
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;fileName=data.xlsx");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (IOException e) {
log.error("放号上传清单模板文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
return ResponseData.error("放号上传清单模板出错");
}
@Permission(menuname = "充值审核模板", method = RequestMethod.POST, value = "downloadTemplateCZ")
public ResponseData downloadTemplateCZ() {
ArrayList<String> columns = new ArrayList<>();
columns.add(CZ_ORDER_PHONE);
columns.add(CZ_ACTIVATE_TIME);
columns.add(CZ_NETWORK_CODE);
columns.add(CZ_NETWORK_NAME);
columns.add(CZ_AMOUNT);
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("充值审核清单");
sheet.setColumnWidth(0, 5000);
sheet.setColumnWidth(2, 9000);
sheet.setColumnWidth(1, 4000);
sheet.setColumnWidth(3, 9000);
//添加表头
final XSSFRow row = sheet.createRow(0);
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);
columns.forEach(val -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(val);
});
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;fileName=data.xlsx");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (IOException e) {
log.error("充值审核清单模板文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
return ResponseData.error("充值审核清单模板出错");
}
@Permission(menuname = "导出导入结果", value = "exportResult", method = RequestMethod.POST)
public void exportResult(
) throws IOException {
List<String> tops = new ArrayList<>();
tops.add(FH_SORT);
tops.add(FH_ORDER_PHONE);
tops.add(FH_NAME);
tops.add(FH_ACCOUNT);
tops.add(FH_SALES_SCHOOL);
tops.add(FH_SALES_SUBST);
tops.add("导入结果");
List<String> columns = new ArrayList<>();
columns.add("sortNo");
columns.add("orderPhone");
columns.add("name");
columns.add("account");
columns.add("salesSchool");
columns.add("salesSubst");
columns.add("desc");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("导入结果返回清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 3000);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps: exportList) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
workbook.write(os);
os.flush();
exportList = null;
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
public static String timeStamp2Date(String seconds,String format) {
if(seconds == null || seconds.isEmpty() || seconds.equals("null")){
return "";
}
if(format == null || format.isEmpty()){
format = "yyyy-MM-dd HH:mm:ss";
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(new Date(Long.valueOf(seconds+"000")));
}
@Permission(menuname = "导出销售清单", value = "exportOrderList", method = RequestMethod.POST)
public void exportOrderList(@RequestParam("orderPhone") String orderPhone,
@RequestParam("name") String name,@RequestParam("account") String account,
@RequestParam("status") String status,@RequestParam("orderType") String orderType,
@RequestParam("createTimeStart") String createTimeStart,@RequestParam("createTimeEnd") String createTimeEnd,
@RequestParam("activateTimeStart") String activateTimeStart,@RequestParam("activateTimeEnd") String activateTimeEnd
) throws IOException {
Wrapper<SalesOrder> wrapperOrder = new EntityWrapper<SalesOrder>();
wrapperOrder.eq(StringUtils.isNotBlank(orderPhone), "order_phone", orderPhone);
wrapperOrder.eq(StringUtils.isNotBlank(orderType), "order_type", orderType);
wrapperOrder.eq(StringUtils.isNotBlank(status), "status", status);
wrapperOrder.eq(StringUtils.isNotBlank(name), "name", name);
wrapperOrder.eq(StringUtils.isNotBlank(account), "account", account);
List<Map<String, Object>> orderList = salesOrderMapper.selectMaps(wrapperOrder);
List<String> tops = new ArrayList<>();
tops.add("销售学校");
tops.add("销售县分");
tops.add("激活号码");
tops.add("放号人");
tops.add("放号人账号");
tops.add("创建时间");
List<String> columns = new ArrayList<>();
columns.add("salesSubst");
columns.add("salesSchool");
columns.add("orderPhone");
columns.add("name");
columns.add("account");
columns.add("createTime");
ServletOutputStream os = null;
XSSFWorkbook workbook = new XSSFWorkbook();
try {
//创建工作表
XSSFSheet sheet = workbook.createSheet("积分记录清单");
//添加表头
final XSSFRow row = sheet.createRow(0);
//设置列宽度
sheet.setColumnWidth(1, 6500);
sheet.setColumnWidth(2, 6500);
sheet.setColumnWidth(3, 6500);
sheet.setColumnWidth(4, 6500);
sheet.setColumnWidth(5, 7000);
sheet.setColumnWidth(6, 4000);
//第一行字段名称
tops.forEach(column -> {
XSSFCell cell = row.createCell(Math.max(row.getLastCellNum(), 0));
cell.setCellValue(column);
});
//数据
int rowIndex = row.getRowNum();
for (Map<String, Object> maps: orderList) {
final XSSFRow rowdata = sheet.createRow(++rowIndex);
for (String column : columns) {
XSSFCell cell = rowdata.createCell(Math.max(rowdata.getLastCellNum(), 0));
if (maps.get(column) != null) {
cell.setCellValue(maps.get(column).toString());
}
}
}
HttpServletResponse response = getHttpServletResponse();
response.reset();
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
os = response.getOutputStream();
workbook.write(os);
os.flush();
} catch (Exception e) {
log.error("文件出错!" + e.getMessage(), e);
} finally {
IOUtils.closeQuite(workbook, os);
}
}
}
......@@ -205,6 +205,7 @@ public class SchoolManagementController extends BaseController {
wrapper.eq(StringUtils.isNotBlank(status), "status", status);
Page<Map<String,Object>> page = new Page<>(pageIndex, pageSize);
List<Map<String, Object>> maps = schoolMapper.selectMapsPage(page, wrapper);
//查询县分列表
Wrapper<School> wrapperSubName = new EntityWrapper();
wrapperSubName.setSqlSelect("sub_name as subNameList").groupBy("sub_name");
......
package com.winsun.controller;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class WeixinAuthController {
@RequestMapping("/MP_verify_oYaGTxvtIJXLOkXB.txt")
public void auth(HttpServletResponse response) throws IOException {
response.getWriter().print("oYaGTxvtIJXLOkXB");
}
}
package com.winsun.controller.school;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.winsun.auth.core.annotion.Permission;
import com.winsun.auth.core.base.controller.BaseController;
import com.winsun.auth.core.common.model.ResponseData;
import com.winsun.bean.School;
import com.winsun.bean.SysUser;
import com.winsun.mapper.PackageMapper;
import com.winsun.mapper.ProductMapper;
import com.winsun.mapper.SchoolMapper;
import com.winsun.mapper.SchoolPackageMapper;
import com.winsun.mapper.SysUserMapper;
import com.winsun.utils.MapUtil;
import lombok.extern.slf4j.Slf4j;
/**
* @Author: chancy
* @Date: 2020/2/12 17:25 学校管理
*/
@Slf4j
@RestController
@RequestMapping("/school/schoolAllocation")
public class SchoolAllocationController extends BaseController {
private static SchoolMapper schoolMapper;
private static SysUserMapper sysUserMapper;
@Autowired
public SchoolAllocationController(SchoolMapper schoolMapper, SysUserMapper sysUserMapper) {
SchoolAllocationController.schoolMapper = schoolMapper;
SchoolAllocationController.sysUserMapper = sysUserMapper;
}
@Permission(menuname = "添加学校分配信息", value = "addSchoolAllocation", method = RequestMethod.POST)
public ResponseData<String> insertSchool(@RequestParam("account") String account,@RequestParam("schoolId") String schoolId) {
Wrapper<SysUser> wrapperUser = new EntityWrapper<SysUser>();
wrapperUser.eq("account", account);
//wrapperUser.eq(column, params);
List<SysUser> userList = sysUserMapper.selectList(wrapperUser);
if (userList.size() > 0){
schoolMapper.addSupervisorSchool(userList.get(0).getId(), schoolId);
return ResponseData.success("添加成功!");
}
return ResponseData.error("账号不存在!!");
}
@Permission(menuname = "删除学校分配信息", value = "deleteSchoolAllocation", method = RequestMethod.POST)
public ResponseData<String> deleteSchool(@RequestParam("id") String id) {
int num = schoolMapper.deleteSupervisorSchool(id);
if (num == 1){
return ResponseData.success("删除成功!");
}
return ResponseData.error("删除失败");
}
/**
*
* @param account
* @param name
* @param substName
* @param schoolName
* @param pageIndex
* @param pageSize
* @return
*/
@Permission(menuname = "查询学校分配", value = "findByList", method = RequestMethod.POST)
public ResponseData<Page<Map<String,Object>>> listSchool(@RequestParam("account") String account, @RequestParam("name") String name,
@RequestParam("substName") String substName, @RequestParam("schoolName") String schoolName,
@RequestParam(name = "pageNo", required = false) int pageIndex,
@RequestParam(name = "pageSize", required = false) int pageSize) {
Wrapper<SysUser> wrapperUser = new EntityWrapper();
wrapperUser.like(StringUtils.isNotBlank(name), "name", name, SqlLike.DEFAULT);
wrapperUser.eq(StringUtils.isNotBlank(account), "account", account);
List<SysUser> userList = sysUserMapper.selectList(wrapperUser);
Wrapper<School> wrapperSchool = new EntityWrapper();
wrapperSchool.eq(StringUtils.isNotBlank(schoolName), "school_name", schoolName);
wrapperSchool.like(StringUtils.isNotBlank(substName), "sub_name", substName, SqlLike.DEFAULT);
List<School> schoolList = schoolMapper.selectList(wrapperSchool);
Map<String, Object> schoolMap = MapUtil.listToMap(schoolMapper.getSchoolRef(), "user_id", "school_id");
List<Map<String, Object>> schoolAllocationList = schoolMapper.getSupervisorSchoolRef();
List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>();
for(Map<String, Object> schoolAllocation : schoolAllocationList) {
String theUserId = Integer.toString((Integer)schoolAllocation.get("user_id"));
String theSchoolId = (String)schoolAllocation.get("school");
for(SysUser sysUser : userList) {
if(sysUser.getId().equals(theUserId)) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("account", sysUser.getAccount());
map.put("name", sysUser.getName());
map.put("schoolId", theSchoolId);
map.put("userId", sysUser.getId());
map.put("id", schoolAllocation.get("id"));
dataList.add(map);
}
}
}
for(Map<String, Object> map : dataList) {
int theSchoolId = Integer.parseInt((String)map.get("schoolId"));
for(School school : schoolList) {
if(school.getId() == theSchoolId) {
map.put("substName", school.getSubName());
map.put("schoolName", school.getSchoolName());
}
}
}
Page<Map<String, Object>> page = new Page<>(pageIndex, pageSize);
List<Map<String, Object>> newList = new ArrayList<Map<String,Object>>();
if(pageIndex*pageSize > dataList.size()) {
newList = dataList.subList((pageIndex-1)*pageSize, dataList.size());
}else {
newList = dataList.subList((pageIndex-1)*pageSize, pageIndex*pageSize);
}
page.setRecords(newList);
page.setTotal(dataList.size());
return ResponseData.success(page, "查询完毕!");
}
}
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