提交 b6e35ed0 作者: zhenjie

单位管理

上级 1b9414aa
package com.mmc.iuav.user.model.dto; package com.mmc.iuav.user.model.dto;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
...@@ -26,5 +27,7 @@ public class LoginSuccessDTO implements Serializable { ...@@ -26,5 +27,7 @@ public class LoginSuccessDTO implements Serializable {
private String phoneNum; private String phoneNum;
private String userName; private String userName;
private String nickName; private String nickName;
private CompanyInfoVO companyInfoVO;
// private RoleInfoDTO roleInfo; // private RoleInfoDTO roleInfo;
} }
package com.mmc.iuav.user.model.qo;
import com.mmc.iuav.group.Insert;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.domain.Page;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/7/3 16:28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyInfoQO implements Serializable {
private static final long serialVersionUID = -6148830939232702460L;
@ApiModelProperty(value = "单位名称", example = "科比特")
private String companyName;
@ApiModelProperty(value = "页码", required = true)
@NotNull(message = "页码不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageNo;
@ApiModelProperty(value = "每页显示数", required = true)
@NotNull(message = "每页显示数不能为空", groups = Page.class)
@Min(value = 1, groups = Page.class)
private Integer pageSize;
public void buildCurrentPage() {
this.pageNo = (pageNo - 1) * pageSize;
}
}
...@@ -23,7 +23,7 @@ import java.io.Serializable; ...@@ -23,7 +23,7 @@ import java.io.Serializable;
public class CompanyAuthVO implements Serializable { public class CompanyAuthVO implements Serializable {
private static final long serialVersionUID = 3584743219477515646L; private static final long serialVersionUID = 3584743219477515646L;
@ApiModelProperty(value = "id") @ApiModelProperty(value = "id")
@NotNull(message = "id创建修改不能为空", groups = { Update.class }) @NotNull(message = "id不能为空", groups = { Update.class })
private Integer id; private Integer id;
@ApiModelProperty(value = "用户id", hidden = true) @ApiModelProperty(value = "用户id", hidden = true)
//@NotNull(message = "用户id不能为空", groups = { Insert.class, Update.class}) //@NotNull(message = "用户id不能为空", groups = { Insert.class, Update.class})
......
package com.mmc.iuav.user.model.vo;
import com.mmc.iuav.group.Insert;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/7/3 16:04
*/
@Builder
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompanyInfoVO implements Serializable {
private static final long serialVersionUID = 3247519744829926132L;
@ApiModelProperty(value = "id")
@NotNull(message = "id不能为空", groups = { Update.class })
private Integer id;
@ApiModelProperty(value = "单位类型,0科比特,1加盟公司", example = "0")
@NotNull(message = "单位类型不能为空", groups = { Insert.class })
private Integer companyType;
@ApiModelProperty(value = "单位名称", example = "科比特")
@NotNull(message = "单位名称不能为空", groups = { Insert.class })
private String companyName;
@ApiModelProperty(value = "单位全称", example = "浙江科比特创新科技有限公司")
@NotNull(message = "单位全称不能为空", groups = { Insert.class })
private String fullName;
@ApiModelProperty(value = "省份名称", example = "广东省")
@NotNull(message = "省份名称不能为空", groups = { Insert.class })
private String province;
@ApiModelProperty(value = "城市名称", example = "深圳市")
@NotNull(message = "城市名称不能为空", groups = { Insert.class })
private String city;
@ApiModelProperty(value = "县区名称", example = "南山区")
@NotNull(message = "县区名称不能为空", groups = { Insert.class })
private String district;
@ApiModelProperty(value = "详细地址", example = "西丽街道万科云城国际创新谷6栋")
@NotNull(message = "详细地址不能为空", groups = { Insert.class })
private String address;
@ApiModelProperty(value = "联系人", example = "lx")
private String companyUserName;
@ApiModelProperty(value = "联系电话", example = "13925255742")
private String phoneNum;
@ApiModelProperty(value = "备注")
private String remark;
}
package com.mmc.iuav.user.controller;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.service.CompanyService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author: zj
* @Date: 2023/7/3 15:35
*/
@Api(tags = "单位管理")
@RequestMapping("/company/")
@RestController
public class CompanyController extends BaseController{
@Autowired
private CompanyService companyService;
@ApiOperation(value = "新增")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@PostMapping("add")
public ResultBody add(@RequestBody CompanyInfoVO companyInfo){
return companyService.addCompanyInfo(companyInfo);
}
@ApiOperation(value = "移除")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@GetMapping("remove")
public ResultBody remove(@RequestParam Integer id){
return companyService.removeCompanyInfo(id);
}
@ApiOperation(value = "修改")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = ResultBody.class) })
@PostMapping("update")
public ResultBody update(@RequestBody CompanyInfoVO companyInfo){
return companyService.updateCompanyInfo(companyInfo);
}
@ApiOperation(value = "单位查询")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = CompanyInfoVO.class) })
@GetMapping("getCompanyInfoById")
public ResultBody<CompanyInfoVO> getCompanyInfoById(@RequestParam Integer id){
return companyService.getCompanyInfoById(id);
}
@ApiOperation(value = "单位列表")
@ApiResponses({ @ApiResponse(code = 200, message = "OK", response = CompanyInfoVO.class) })
@PostMapping("listCompanyPage")
public ResultBody<CompanyInfoVO> listCompanyPage(@RequestBody CompanyInfoQO companyInfoQO){
return companyService.listCompanyPage(companyInfoQO);
}
// 登录信息/查询要返回
}
package com.mmc.iuav.user.dao;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author: zj
* @Date: 2023/7/3 15:39
*/
@Mapper
public interface CompanyDao {
/**
* 添加单位
* @param companyInfoDO
*/
void addCompanyInfo(CompanyInfoDO companyInfoDO);
/**
* 移除单位
* @param id
*/
void removeCompanyInfo(Integer id);
/**
* 修改单位
* @param companyInfoDO
*/
void updateCompanyInfo(CompanyInfoDO companyInfoDO);
/**
* 单位查询
* @param id
* @return
*/
CompanyInfoDO getCompanyInfoById(Integer id);
/**
* 单位数量查询
* @param param
* @return
*/
int countListCompanyPage(CompanyInfoQO param);
/**
* 单位列表
* @param param
* @return
*/
List<CompanyInfoDO> listCompanyPage(CompanyInfoQO param);
/**
* 通过用户ID获取单位信息
* @param backUserAccountId
* @return
*/
CompanyInfoDO getCompanyInfoByBackUserAccountId(Integer backUserAccountId);
}
package com.mmc.iuav.user.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/7/3 15:57
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CompanyBackUserDO implements Serializable {
private static final long serialVersionUID = -4532624718082935780L;
private Integer id;
private Integer backUserAccountId;
private Integer companyInfoId;
}
package com.mmc.iuav.user.entity;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.sun.org.apache.regexp.internal.RE;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author: zj
* @Date: 2023/7/3 15:56
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CompanyInfoDO implements Serializable {
private static final long serialVersionUID = -533935402556556571L;
private Integer id;
private Integer companyType;
private String companyName;
private String fullName;
private String province;
private String city;
private String district;
private String address;
private String companyUserName;
private String phoneNum;
private String remark;
public CompanyInfoVO buildCompanyInfoVO() {
return CompanyInfoVO.builder().id(id).companyType(companyType).companyName(companyName).fullName(fullName).province(province)
.city(city).district(district).address(address).companyUserName(companyUserName).phoneNum(phoneNum).remark(remark).build();
}
public CompanyInfoDO(CompanyInfoVO companyInfo) {
this.id = companyInfo.getId();
this.companyType = companyInfo.getCompanyType();
this.companyName = companyInfo.getCompanyName();
this.fullName = companyInfo.getFullName();
this.province = companyInfo.getProvince();
this.city = companyInfo.getCity();
this.district = companyInfo.getDistrict();
this.address = companyInfo.getAddress();
this.companyUserName = companyInfo.getCompanyUserName();
this.phoneNum = companyInfo.getPhoneNum();
this.remark = companyInfo.getRemark();
}
}
package com.mmc.iuav.user.service;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
/**
* @author: zj
* @Date: 2023/7/3 15:39
*/
public interface CompanyService {
/**
* 新增
* @param companyInfo
* @return
*/
ResultBody addCompanyInfo(CompanyInfoVO companyInfo);
/**
* 移除
* @param id
* @return
*/
ResultBody removeCompanyInfo(Integer id);
/**
* 修改
* @param companyInfo
* @return
*/
ResultBody updateCompanyInfo(CompanyInfoVO companyInfo);
/**
* 单位查询
* @param id
* @return
*/
ResultBody getCompanyInfoById(Integer id);
/**
* 单位列表
* @param companyInfoQO
* @return
*/
ResultBody<CompanyInfoVO> listCompanyPage(CompanyInfoQO companyInfoQO);
/**
* 通过用户id获取单位信息
* @param backUserAccountId
* @return
*/
CompanyInfoVO getCompanyInfoByBackUserAccountId(Integer backUserAccountId);
}
...@@ -14,17 +14,16 @@ import com.mmc.iuav.user.constant.WxConstant; ...@@ -14,17 +14,16 @@ import com.mmc.iuav.user.constant.WxConstant;
import com.mmc.iuav.user.dao.CompanyAuthDao; import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.entity.BackUserAccountDO; import com.mmc.iuav.user.entity.BackUserAccountDO;
import com.mmc.iuav.user.entity.CompanyAuthDO; import com.mmc.iuav.user.entity.CompanyAuthDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.entity.UserAccountDO; import com.mmc.iuav.user.entity.UserAccountDO;
import com.mmc.iuav.user.enums.UserAccountStatus; import com.mmc.iuav.user.enums.UserAccountStatus;
import com.mmc.iuav.user.model.dto.LoginSuccessDTO; import com.mmc.iuav.user.model.dto.LoginSuccessDTO;
import com.mmc.iuav.user.model.qo.LoginUserQO; import com.mmc.iuav.user.model.qo.LoginUserQO;
import com.mmc.iuav.user.model.vo.AppUserSucVO; import com.mmc.iuav.user.model.vo.AppUserSucVO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.model.vo.UserAccountVO; import com.mmc.iuav.user.model.vo.UserAccountVO;
import com.mmc.iuav.user.model.vo.WxLoginVO; import com.mmc.iuav.user.model.vo.WxLoginVO;
import com.mmc.iuav.user.service.AuthService; import com.mmc.iuav.user.service.*;
import com.mmc.iuav.user.service.BackUserAccountService;
import com.mmc.iuav.user.service.UserAccountService;
import com.mmc.iuav.user.service.WxService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -61,6 +60,9 @@ public class AuthServiceImpl implements AuthService { ...@@ -61,6 +60,9 @@ public class AuthServiceImpl implements AuthService {
private CompanyAuthDao companyAuthDao; private CompanyAuthDao companyAuthDao;
@Autowired @Autowired
private CompanyService companyService;
@Autowired
private PayClient payClient; private PayClient payClient;
@Transactional @Transactional
...@@ -161,13 +163,16 @@ public class AuthServiceImpl implements AuthService { ...@@ -161,13 +163,16 @@ public class AuthServiceImpl implements AuthService {
return ResultBody.error(ResultEnum.LOGIN_PASSWORD_ERROR); return ResultBody.error(ResultEnum.LOGIN_PASSWORD_ERROR);
} }
// 查询单位信息
CompanyInfoVO companyInfoVO = companyService.getCompanyInfoByBackUserAccountId(user.getId());
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
map.put(JwtConstant.USER_ACCOUNT_ID, user.getId()); map.put(JwtConstant.USER_ACCOUNT_ID, user.getId());
//map.put(JwtConstant.ROLE_ID, 0); //map.put(JwtConstant.ROLE_ID, 0);
map.put(JwtConstant.TOKEN_TYPE, JwtConstant.M_TOKEN); map.put(JwtConstant.TOKEN_TYPE, JwtConstant.M_TOKEN);
String token = JwtUtil.createJwt(map); String token = JwtUtil.createJwt(map);
LoginSuccessDTO loginSuccessDTO = LoginSuccessDTO.builder().token(token).userAccountId(user.getId()).accountNo(user.getAccountNo()).uid(user.getId() +"") LoginSuccessDTO loginSuccessDTO = LoginSuccessDTO.builder().token(token).userAccountId(user.getId()).accountNo(user.getAccountNo()).uid(user.getId() +"")
.userName(user.getUserName()).nickName(user.getUserName()).phoneNum(user.getPhoneNum()).portType(0).build(); .userName(user.getUserName()).nickName(user.getUserName()).phoneNum(user.getPhoneNum()).portType(0).companyInfoVO(companyInfoVO == null ? null : companyInfoVO).build();
stringRedisTemplate.opsForValue().set( stringRedisTemplate.opsForValue().set(
token, JSONObject.toJSONString(loginSuccessDTO), token, JSONObject.toJSONString(loginSuccessDTO),
JwtConstant.EXPIRATION, TimeUnit.MILLISECONDS); JwtConstant.EXPIRATION, TimeUnit.MILLISECONDS);
......
package com.mmc.iuav.user.service.impl;
import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.dao.CompanyAuthDao;
import com.mmc.iuav.user.dao.CompanyDao;
import com.mmc.iuav.user.entity.CompanyAuthDO;
import com.mmc.iuav.user.entity.CompanyInfoDO;
import com.mmc.iuav.user.model.qo.CompanyInfoQO;
import com.mmc.iuav.user.model.vo.CompanyInfoVO;
import com.mmc.iuav.user.service.CompanyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author: zj
* @Date: 2023/7/3 15:39
*/
@Service
public class CompanyServiceImpl implements CompanyService {
@Autowired
private CompanyDao companyDao;
@Override
public ResultBody addCompanyInfo(CompanyInfoVO companyInfo) {
CompanyInfoDO companyInfoDO = new CompanyInfoDO(companyInfo);
companyDao.addCompanyInfo(companyInfoDO);
return ResultBody.success();
}
@Override
public ResultBody removeCompanyInfo(Integer id) {
companyDao.removeCompanyInfo(id);
return ResultBody.success();
}
@Override
public ResultBody updateCompanyInfo(CompanyInfoVO companyInfo) {
CompanyInfoDO companyInfoDO = new CompanyInfoDO(companyInfo);
companyDao.updateCompanyInfo(companyInfoDO);
return ResultBody.success();
}
@Override
public ResultBody getCompanyInfoById(Integer id) {
CompanyInfoDO companyInfoDO = companyDao.getCompanyInfoById(id);
if (companyInfoDO != null){
return ResultBody.success(companyInfoDO.buildCompanyInfoVO());
}
return null;
}
@Override
public ResultBody<CompanyInfoVO> listCompanyPage(CompanyInfoQO param) {
int count = companyDao.countListCompanyPage(param);
if (count == 0){
return ResultBody.success(PageResult.buildPage(param.getPageNo(), param.getPageSize(), count));
}
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<CompanyInfoDO> companyInfoDOS = companyDao.listCompanyPage(param);
List<CompanyInfoVO> companyInfoVOList = companyInfoDOS.stream().map(CompanyInfoDO::buildCompanyInfoVO).collect(Collectors.toList());
return ResultBody.success(PageResult.buildPage(pageNo, param.getPageSize(), count, companyInfoVOList));
}
@Override
public CompanyInfoVO getCompanyInfoByBackUserAccountId(Integer backUserAccountId) {
CompanyInfoDO companyInfoDO = companyDao.getCompanyInfoByBackUserAccountId(backUserAccountId);
if (companyInfoDO != null) {
return companyInfoDO.buildCompanyInfoVO();
}
return null;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mmc.iuav.user.dao.CompanyDao">
<insert id="addCompanyInfo" useGeneratedKeys="true" keyProperty="id" parameterType="com.mmc.iuav.user.entity.CompanyInfoDO">
insert into company_info(company_type,company_name,full_name,province,city,district,address,company_user_name,phone_num,remark,create_time)
values (#{companyType}, #{companyName}, #{fullName}, #{province}, #{city}, #{district}, #{address}, #{companyUserName}, #{phoneNum}, #{remark}, NOW())
</insert>
<update id="removeCompanyInfo">
update company_info set is_deleted = 1 where id = #{id}
</update>
<update id="updateCompanyInfo">
update company_info
<set>
<if test="companyType != null">
company_type = #{companyType},
</if>
<if test="companyName != null">
company_name = #{companyName},
</if>
<if test="fullName != null">
full_name = #{fullName},
</if>
<if test="province != null">
province = #{province},
</if>
<if test="city != null">
city = #{city},
</if>
<if test="district != null">
district = #{district},
</if>
<if test="address != null">
address = #{address},
</if>
<if test="companyUserName != null">
company_user_name = #{companyUserName},
</if>
<if test="phoneNum != null">
phone_num = #{phoneNum},
</if>
<if test="remark != null">
remark = #{remark}
</if>
</set>
where
id = #{id}
</update>
<select id="getCompanyInfoById" resultType="com.mmc.iuav.user.entity.CompanyInfoDO">
select id, company_type, company_name, full_name, province, city, district, address, company_user_name, phone_num, remark, create_time
from company_info
where id = #{id} and is_deleted = 0
</select>
<select id="countListCompanyPage" resultType="java.lang.Integer" parameterType="com.mmc.iuav.user.model.qo.CompanyInfoQO">
select count(*) from company_info
where is_deleted = 0
<if test="companyName != null">
and company_name = #{companyName}
</if>
</select>
<select id="listCompanyPage" resultType="com.mmc.iuav.user.entity.CompanyInfoDO" parameterType="com.mmc.iuav.user.model.qo.CompanyInfoQO">
select id, company_type, company_name, full_name, province, city, district, address, company_user_name, phone_num, remark, create_time
from company_info
where is_deleted = 0
<if test="companyName != null">
and company_name = #{companyName}
</if>
order by create_time desc
limit #{pageNo}, #{pageSize}
</select>
<select id="getCompanyInfoByBackUserAccountId" resultType="com.mmc.iuav.user.entity.CompanyInfoDO">
SELECT ci.id, ci.company_type, ci.company_name, ci.full_name, ci.province, ci.city, ci.district, ci.address, ci.company_user_name,
ci.phone_num, ci.remark, ci.create_time
FROM company_info ci INNER JOIN company_back_user cbu ON ci.id = cbu.company_info_id
WHERE cbu.back_user_account_id = #{backUserAccountId} and ci.is_deleted = 0
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论