package com.huimv.receive.service.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.api.R; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huimv.receive.common.utils.Print; import com.huimv.receive.common.utils.Result; import com.huimv.receive.common.utils.ResultCode; import com.huimv.receive.entity.*; import com.huimv.receive.entity.vo.UserAccountVo; import com.huimv.receive.entity.vo.UserAgeAndGender; import com.huimv.receive.entity.vo.UserJob; import com.huimv.receive.mapper.BaseLocationMapper; import com.huimv.receive.mapper.FarmMapper; import com.huimv.receive.mapper.SysAccountMultilevelMapper; import com.huimv.receive.mapper.SysUserMapper; import com.huimv.receive.service.IBaseLocationService; import com.huimv.receive.service.IFarmService; import com.huimv.receive.service.ISysUserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.aspectj.weaver.ast.Var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.List; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author author * @since 2023-09-04 */ @Service public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { @Autowired private BaseLocationMapper baseLocationMapper; @Autowired private FarmMapper farmMapper; @Autowired private SysUserMapper userMapper; @Autowired private SysAccountMultilevelMapper sysAccountMultilevelMapper; @Override public Result pageAll(Map map) { int pageNum = (Integer)map.get("pageNum"); int pageSize = (Integer)map.get("pageSize"); String searchStr = (String)map.get("searchStr"); String job = (String)map.get("job"); String workLocation = (String)map.get("workLocation"); String workLocationType =(String) map.get("workLocationType"); String farmId = (String) map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); QueryWrapper wrapper = new QueryWrapper<>(); if (ObjectUtil.isEmpty(pageNum) || pageNum<1) pageNum = 1; if (ObjectUtil.isEmpty(pageSize) || pageSize<1 ) pageNum = 10; wrapper.eq("farm_id",farmId); wrapper.eq(ObjectUtil.isNotEmpty(job),"job",job); wrapper.eq(ObjectUtil.isNotEmpty(workLocation),"work_location",workLocation); wrapper.eq(ObjectUtil.isNotEmpty(workLocationType),"work_location_type",workLocationType); if (StringUtils.isNotBlank(searchStr)) wrapper.and(i -> i.like("user_name",searchStr).or().like("user_phone",searchStr)); wrapper.orderByDesc("id"); IPage page = this.page(new Page<>(pageNum, pageSize), wrapper); return new Result(ResultCode.SUCCESS,page); } @Override public Result listWorkLocation(Map map) { String farmId = (String)map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); return new Result(ResultCode.SUCCESS,baseLocationMapper.selectList(new QueryWrapper().eq("farm_id",farmId).groupBy("location_type").orderByAsc("location_type"))); } @Override public Result pageAccount(Map map) { int pageNum = (Integer)map.get("pageNum"); int pageSize = (Integer)map.get("pageSize"); String searchStr = (String)map.get("searchStr"); String job = (String)map.get("job"); String workLocation = (String)map.get("workLocation"); String workLocationType = (String)map.get("workLocationType"); String farmId = (String) map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); QueryWrapper wrapper = new QueryWrapper<>(); if (ObjectUtil.isEmpty(pageNum) || pageNum<1) pageNum = 1; if (ObjectUtil.isEmpty(pageSize) || pageSize<1 ) pageSize = 10; // wrapper.eq("farm_id",farmId); wrapper.eq(ObjectUtil.isNotEmpty(job),"job",job); wrapper.eq(ObjectUtil.isNotEmpty(workLocation),"work_location",workLocation); wrapper.eq(ObjectUtil.isNotEmpty(workLocationType),"work_location_type",workLocationType); if (StringUtils.isNotBlank(searchStr)) wrapper.and(i -> i.like("user_name",searchStr).or().like("user_id",searchStr)); Page userAccountVoPage = new Page<>(pageNum,pageSize); IPage userAccountVoIPage = userMapper.pageAccount(userAccountVoPage,wrapper,farmId); return new Result(ResultCode.SUCCESS,userAccountVoIPage); } @Override public Result addAccount(Map map) { Integer id = (Integer)map.get("id"); String account = (String)map.get("account"); String password = (String)map.get("password"); SysUser sysUser = this.getById(id); Integer countAccount = sysAccountMultilevelMapper.selectCount(new QueryWrapper().eq("account",account)); if (countAccount >0){ return new Result(10001,"该账号已存在",false); } Integer countUser = sysAccountMultilevelMapper.selectCount(new QueryWrapper().eq("user_id",id)); if (countUser >0){ return new Result(10001,"该用户已绑定账号",false); } SysAccountMultilevel sysAccountMultilevel = new SysAccountMultilevel(); sysAccountMultilevel.setAccount(account); sysAccountMultilevel.setPassword(password); sysAccountMultilevel.setUserName(sysUser.getUserName()); sysAccountMultilevel.setAccountStatus(1); sysAccountMultilevel.setFarmId(Integer.parseInt(sysUser.getFarmId())); sysAccountMultilevel.setFarmIds(sysUser.getFarmId()); sysAccountMultilevel.setType(sysUser.getJob()); sysAccountMultilevel.setWorkLocation(sysUser.getWorkLocation()); sysAccountMultilevel.setWorkLocationType(sysUser.getWorkLocationType()); sysAccountMultilevel.setPhone(sysUser.getUserPhone()); sysAccountMultilevel.setWorkName(sysUser.getDepartment()); sysAccountMultilevel.setPapersCode(sysUser.getCardNum()); sysAccountMultilevel.setPapersType(sysUser.getCardType()); sysAccountMultilevel.setUserId(id); sysAccountMultilevelMapper.insert(sysAccountMultilevel); return new Result(10000,"添加成功",true); } @Override public Result list(Map map) { String farmId = (String)map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); return new Result(ResultCode.SUCCESS,this.list()); } @Override public Result updateAccount(Map map) { Integer id = (Integer)map.get("id"); String account = (String)map.get("account"); String password = (String)map.get("password"); Integer countAccount = sysAccountMultilevelMapper.selectCount(new QueryWrapper().eq("account",account)); if (countAccount >1){ return new Result(10001,"改账号已存在",false); } SysAccountMultilevel sysAccountMultilevel = new SysAccountMultilevel(); sysAccountMultilevel.setAccount(account); sysAccountMultilevel.setPassword(password); sysAccountMultilevelMapper.update(sysAccountMultilevel,new UpdateWrapper().eq("user_id",id)); return new Result(10000,"修改成功",true); } @Override public void printUser(HttpServletResponse httpServletRequest, Map paramsMap) throws Exception { String ids = paramsMap.get("ids"); String[] split = ids.split(","); List list = new ArrayList<>(); for (String s : split) { SysUser admission = userMapper.selectById(s); list.add(admission); } Print.printUser(list); } @Override public Result removeAccount(Map map) { String ids = map.get("ids"); sysAccountMultilevelMapper.delete(new QueryWrapper().eq("user_id",ids.split(","))); return new Result(10000,"删除成功",true); } @Override public Result userAgeAndGender(Map map) { String farmId = map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); List userAgeAndGenders= userMapper.userAgeAndGender(farmId); return new Result(ResultCode.SUCCESS,userAgeAndGenders); } @Override public Result userJob(Map map) { String farmId = map.get("farmId"); if (checkFarm(farmId)) return new Result(10001,"牧场信息为空",false); List userJobs= userMapper.userJob(farmId); return new Result(ResultCode.SUCCESS,userJobs); } private boolean checkFarm(String farmId){ if (StringUtils.isBlank(farmId) ) return true; Farm byId = farmMapper.selectById(farmId); if (ObjectUtil.isEmpty(byId)) return true; return false; } }