feat: 添加功能
This commit is contained in:
parent
4dc5382f9c
commit
7758098974
|
|
@ -27,8 +27,8 @@ import java.util.List;
|
|||
* @author 曹鹏飞
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/account")
|
||||
public class AccountController {
|
||||
@RequestMapping("/adminuser")
|
||||
public class AdminUserController {
|
||||
|
||||
@Resource
|
||||
private IAdminUserService adminUserService;
|
||||
|
|
@ -0,0 +1,157 @@
|
|||
package com.nflg.mobilebroken.admin.controller;
|
||||
|
||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 代理商相关接口
|
||||
*
|
||||
* @author 曹鹏飞
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/appuser")
|
||||
public class AppUserController {
|
||||
|
||||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@Resource
|
||||
private ITBaseCustomerService customerService;
|
||||
|
||||
@Resource
|
||||
private ITBaseAreaService areaService;
|
||||
|
||||
@Resource
|
||||
private IAppUserApplyforService appUserApplyforService;
|
||||
|
||||
/**
|
||||
* 获取公司列表
|
||||
*
|
||||
* @return 部门列表
|
||||
*/
|
||||
@PostMapping("getSimpleCompanys")
|
||||
public ApiResult<List<CompanySimpleVO>> getSimpleCompanys() {
|
||||
return ApiResult.success(customerService.getSimpleCompanys());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取区域列表
|
||||
*
|
||||
* @return 部门列表
|
||||
*/
|
||||
@PostMapping("getSimpleAreas")
|
||||
public ApiResult<List<AreaSimpleVO>> getSimpleAreas() {
|
||||
return ApiResult.success(areaService.getSimpleAreas());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加代理商主账号
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("addPrimaryAppUser")
|
||||
private ApiResult<Void> addPrimaryAppUser(@Valid @RequestBody PrimaryAppUserAddRequest request) {
|
||||
appUserService.addPrimaryAppUser(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新代理商主账号
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("updatePrimaryAppUser")
|
||||
private ApiResult<Void> updatePrimaryAppUser(@Valid @RequestBody PrimaryAppUserUpdateRequest request) {
|
||||
appUserService.updatePrimaryAppUser(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理商子账号审核
|
||||
*
|
||||
* @param id 审批id
|
||||
*/
|
||||
@GetMapping("getAppUserApplyfor")
|
||||
public ApiResult<AppUserApplyforVO> getAppUserApplyfor(@Valid @RequestParam Integer id) {
|
||||
return ApiResult.success(appUserApplyforService.getAppUserApplyfor(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理商子账号审核
|
||||
*
|
||||
* @param request 审批信息
|
||||
*/
|
||||
@PostMapping("approveAppUserApplyfor")
|
||||
public ApiResult<Void> approveAppUserApplyfor(@Valid @RequestBody ApproveAppUserApplyforRequest request) {
|
||||
appUserApplyforService.approveAppUserApplyfor(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理商续期
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("renewalAppUser")
|
||||
public ApiResult<Void> renewalAppUser(@Valid @RequestBody RenewalAppUserRequest request) {
|
||||
//TODO 代理商续期
|
||||
// appUserService.renewal(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 代理商迁移
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("migrateAppUser")
|
||||
public ApiResult<Void> migrateAppUser(@Valid @RequestBody MigrateAppUserRequest request) {
|
||||
appUserService.migrate(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索代理商主账号列表
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("searchAppUserForAdmin")
|
||||
public ApiResult<PageData<AppUserForAdminVO>> searchAppUserForAdmin(@Valid @RequestBody SearchAppUserForAdminRequest request) {
|
||||
return ApiResult.success(appUserService.searchAppUserForAdmin(request));
|
||||
}
|
||||
|
||||
/**
|
||||
* 搜索代理商子账号列表
|
||||
*
|
||||
* @param id 主账号id
|
||||
*/
|
||||
@GetMapping("getChildrenOfAppUser")
|
||||
public ApiResult<List<AppUserForAdminVO>> getChildrenOfAppUser(@Valid @RequestParam Integer id) {
|
||||
return ApiResult.success(appUserService.getChildrenOfAppUser(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用/禁用代理商
|
||||
*
|
||||
* @param request 请求参数
|
||||
*/
|
||||
@PostMapping("enableAppUser")
|
||||
public ApiResult<Void> enableAppUser(@Valid @RequestBody EnableAppUserRequest request) {
|
||||
appUserService.enable(request);
|
||||
return ApiResult.success();
|
||||
}
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.chrono.ChronoLocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
|
||||
|
|
@ -40,7 +41,7 @@ public class AppController {
|
|||
AppUser user=appUserService.getUser(userName,password);
|
||||
VUtils.trueThrow(Objects.isNull(user)).throwMessage(STATE.PassportErr,"用户名或密码错误");
|
||||
VUtils.trueThrow(!user.getEnable()).throwMessage(STATE.PassportErr,"用户未启用,请联系管理员");
|
||||
VUtils.trueThrow(user.getExpireTime().isBefore(LocalDateTime.now())).throwMessage(STATE.PassportErr,"用户已过期,请联系管理员");
|
||||
VUtils.trueThrow(user.getExpireTime().isBefore(ChronoLocalDate.from(LocalDateTime.now()))).throwMessage(STATE.PassportErr, "用户已过期,请联系管理员");
|
||||
SaTokenAppUtil.login(user.getId(), SaLoginConfig
|
||||
.setExtra("name", user.getName())
|
||||
.setExtra("companys", Arrays.asList(1,2))
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@SpringBootTest(classes = {CfsApplication.class})
|
||||
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
|
||||
public class UserTest {
|
||||
|
|
@ -18,4 +20,10 @@ public class UserTest {
|
|||
public void getUserCount(){
|
||||
System.out.println("用户数量: "+userService.list().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test1() {
|
||||
LocalDateTime date = LocalDateTime.of(LocalDateTime.now().getYear(), 1, 1, 0, 0, 0).plusYears(1).minusDays(1);
|
||||
System.out.println(date);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ApproveAppUserApplyforRequest {
|
||||
|
||||
private Integer id;
|
||||
|
||||
// 通过/不通过
|
||||
private Boolean pass;
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class EnableAppUserRequest {
|
||||
|
||||
// 是否启用
|
||||
private Boolean enable;
|
||||
|
||||
// 用户id列表
|
||||
private List<Integer> ids;
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MigrateAppUserRequest {
|
||||
|
||||
// 旧公司id
|
||||
private Integer oldCompanyId;
|
||||
|
||||
// 新公司id
|
||||
private Integer newCompanyId;
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PrimaryAppUserAddRequest {
|
||||
|
||||
//登录名
|
||||
@NotBlank
|
||||
private String loginName;
|
||||
|
||||
//用户名
|
||||
@NotBlank
|
||||
private String userName;
|
||||
|
||||
//公司id列表
|
||||
@NotEmpty
|
||||
private List<Integer> companyIds;
|
||||
|
||||
//销售人员姓名
|
||||
@NotBlank
|
||||
private String salesUserName;
|
||||
|
||||
//邮箱
|
||||
@NotBlank
|
||||
private String email;
|
||||
|
||||
//手机
|
||||
private String phone;
|
||||
|
||||
//区域id
|
||||
@NotNull
|
||||
private Integer areaId;
|
||||
|
||||
//是否启用
|
||||
@NotNull
|
||||
private Boolean enable;
|
||||
|
||||
//头像
|
||||
private String avatar;
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Data
|
||||
public class PrimaryAppUserUpdateRequest extends PrimaryAppUserAddRequest {
|
||||
|
||||
private Integer id;
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RenewalAppUserRequest {
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
package com.nflg.mobilebroken.common.pojo.request;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Data
|
||||
public class SearchAppUserForAdminRequest extends PageRequest {
|
||||
|
||||
// 登录名
|
||||
private String loginName;
|
||||
|
||||
// 姓名
|
||||
private String name;
|
||||
|
||||
//公司名称
|
||||
private String companyName;
|
||||
|
||||
// 是否启用
|
||||
private Boolean enable;
|
||||
|
||||
//状态,0:审核中,1:使用中,2:已过期
|
||||
private Integer state;
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AppUserApplyforInfoVO {
|
||||
|
||||
// 头像
|
||||
private String avatar;
|
||||
|
||||
//申请类型,0:新增账号;1:账号启用,2:账号延期
|
||||
private Integer type;
|
||||
|
||||
//公司名称
|
||||
private String companyName;
|
||||
|
||||
//区域名称
|
||||
private String areaName;
|
||||
|
||||
//邮箱
|
||||
private String email;
|
||||
|
||||
//用户名
|
||||
private String userName;
|
||||
|
||||
//职位
|
||||
private String titleName;
|
||||
|
||||
//手机
|
||||
private String phone;
|
||||
|
||||
//申请原因
|
||||
private String reason;
|
||||
|
||||
//申请时间
|
||||
private LocalDateTime createTime;
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
public class AppUserApplyforVO {
|
||||
|
||||
// 申请信息
|
||||
@Valid
|
||||
@NotNull
|
||||
private AppUserApplyforInfoVO applyfor;
|
||||
|
||||
@Valid
|
||||
@NotNull
|
||||
// 申请人信息
|
||||
private AppUserVO user;
|
||||
}
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AppUserForAdminVO {
|
||||
|
||||
//账号id
|
||||
private Integer id;
|
||||
|
||||
//头像
|
||||
private String avatar;
|
||||
|
||||
//登录名
|
||||
private String loginName;
|
||||
|
||||
//姓名
|
||||
private String userName;
|
||||
|
||||
//公司名称
|
||||
private String companyName;
|
||||
|
||||
//姓名
|
||||
private String name;
|
||||
|
||||
//邮箱
|
||||
private String email;
|
||||
|
||||
//销售人员姓名
|
||||
private String salesUserName;
|
||||
|
||||
//区域名称
|
||||
private String areaName;
|
||||
|
||||
//是否启用
|
||||
private boolean enable;
|
||||
|
||||
//账号过期时间
|
||||
private LocalDate expireTime;
|
||||
|
||||
//状态,0:审核中,1:使用中,2:已过期
|
||||
private Integer state;
|
||||
|
||||
//创建人
|
||||
private String createBy;
|
||||
|
||||
//创建时间
|
||||
private LocalDateTime createTime;
|
||||
|
||||
//最后更新人
|
||||
private String updateBy;
|
||||
|
||||
//最后更新时间
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
//最后登录时间
|
||||
private LocalDateTime lastLoginTime;
|
||||
|
||||
//是否主账号
|
||||
private boolean isPrimary;
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ package com.nflg.mobilebroken.common.pojo.vo;
|
|||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
|
|
@ -46,8 +47,11 @@ public class AppUserVO {
|
|||
private LocalDateTime lastLoginTime;
|
||||
|
||||
//账号过期时间
|
||||
private LocalDateTime expireTime;
|
||||
private LocalDate expireTime;
|
||||
|
||||
//是否主账号
|
||||
private boolean isPrimary;
|
||||
|
||||
//销售人员姓名
|
||||
private String salesUserName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||
public class AreaSimpleVO {
|
||||
|
||||
//区域id
|
||||
private int id;
|
||||
private Long id;
|
||||
|
||||
//区域名称
|
||||
private String name;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package com.nflg.mobilebroken.common.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class CompanySimpleVO {
|
||||
|
||||
// 公司id
|
||||
private Long id;
|
||||
|
||||
// 公司名称
|
||||
private String name;
|
||||
}
|
||||
|
|
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import java.io.Serializable;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author 代码生成器生成
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ package com.nflg.mobilebroken.repository.entity;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户端-用户
|
||||
|
|
@ -29,9 +31,9 @@ public class AppUser implements Serializable {
|
|||
private Integer id;
|
||||
|
||||
/**
|
||||
* 用户编号
|
||||
* 登录名
|
||||
*/
|
||||
private String code;
|
||||
private String loginName;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
|
|
@ -71,13 +73,23 @@ public class AppUser implements Serializable {
|
|||
/**
|
||||
* 公司id
|
||||
*/
|
||||
private Integer companyId;
|
||||
private String companyId;
|
||||
|
||||
/**
|
||||
* 是否是主账号,0:不是;1:是
|
||||
*/
|
||||
private Boolean isPrimary;
|
||||
|
||||
/**
|
||||
* 职位编码
|
||||
*/
|
||||
private String titleCode;
|
||||
|
||||
/**
|
||||
* 所属销售代表
|
||||
*/
|
||||
private String salesUserName;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
|
|
@ -106,5 +118,5 @@ public class AppUser implements Serializable {
|
|||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private LocalDateTime expireTime;
|
||||
private LocalDate expireTime;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,13 @@ package com.nflg.mobilebroken.repository.entity;
|
|||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户端-用户申请
|
||||
|
|
@ -78,11 +79,21 @@ public class AppUserApplyfor implements Serializable {
|
|||
*/
|
||||
private Byte type;
|
||||
|
||||
/**
|
||||
* 职位编码
|
||||
*/
|
||||
private String titleCode;
|
||||
|
||||
/**
|
||||
* 处理状态,0:待审核,1:审核通过,2:审核不通过
|
||||
*/
|
||||
private Byte state;
|
||||
|
||||
/**
|
||||
* 所属销售代表
|
||||
*/
|
||||
private String salesUserName;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -17,4 +17,6 @@ public interface DictionaryItemMapper extends BaseMapper<DictionaryItem> {
|
|||
|
||||
@Select("SELECT di.id FROM dictionary_item di INNER JOIN dictionary d ON di.dictionary_id=d.id WHERE d.`name`=#{dictionaryName} AND di.`name`=#{dictionaryItemName}")
|
||||
Integer getId(@Param("dictionaryName") String dictionaryName, @Param("dictionaryItemName") String dictionaryItemName);
|
||||
|
||||
String getName(String dictionaryCode, String itemCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@ package com.nflg.mobilebroken.repository.service;
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AddUserRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.ApplyForExtensionRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.ApproveAppUserApplyforRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.EnableRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforVO;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUserApplyfor;
|
||||
|
||||
/**
|
||||
|
|
@ -21,4 +23,8 @@ public interface IAppUserApplyforService extends IService<AppUserApplyfor> {
|
|||
void addEnable(EnableRequest request);
|
||||
|
||||
void applyForExtension(ApplyForExtensionRequest request);
|
||||
|
||||
AppUserApplyforVO getAppUserApplyfor(Integer id);
|
||||
|
||||
void approveAppUserApplyfor(ApproveAppUserApplyforRequest request);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,14 @@ package com.nflg.mobilebroken.repository.service;
|
|||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.common.pojo.request.UpdatePasswordRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.UserSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserVO;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 用户端-用户 服务类
|
||||
|
|
@ -28,4 +31,16 @@ public interface IAppUserService extends IService<AppUser> {
|
|||
void updatePassword(UpdatePasswordRequest request);
|
||||
|
||||
AppUserVO getInfo(Integer userId);
|
||||
|
||||
void addPrimaryAppUser(PrimaryAppUserAddRequest request);
|
||||
|
||||
void updatePrimaryAppUser(PrimaryAppUserUpdateRequest request);
|
||||
|
||||
void migrate(MigrateAppUserRequest request);
|
||||
|
||||
PageData<AppUserForAdminVO> searchAppUserForAdmin(SearchAppUserForAdminRequest request);
|
||||
|
||||
void enable(EnableAppUserRequest request);
|
||||
|
||||
List<AppUserForAdminVO> getChildrenOfAppUser(Integer id);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,4 +21,6 @@ public interface IDictionaryItemService extends IService<DictionaryItem> {
|
|||
void save(SaveDictionaryItemRequest request);
|
||||
|
||||
Integer getId(String dictionaryName, String dictionaryItemName);
|
||||
|
||||
String getTitleName(String titleCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
package com.nflg.mobilebroken.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TBaseAreaVO;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseArea;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -24,4 +25,6 @@ public interface ITBaseAreaService extends IService<TBaseArea> {
|
|||
void delByIds(@Param("ids") List<Long> ids, String userNo, String userName);
|
||||
|
||||
Integer getCount();
|
||||
|
||||
List<AreaSimpleVO> getSimpleAreas();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
package com.nflg.mobilebroken.repository.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -22,4 +23,6 @@ public interface ITBaseCustomerService extends IService<TBaseCustomer> {
|
|||
Page<TBaseCustomer> getList(@Param("page")Page<PageBaseQuery> page, @Param("query") PageBaseQuery query);
|
||||
|
||||
void delByIds(@Param("ids") List<Long> ids ,@Param("userNo")String userNo , @Param("userName") String userName);
|
||||
|
||||
List<CompanySimpleVO> getSimpleCompanys();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,16 +5,27 @@ import com.nflg.mobilebroken.common.constant.AppUserApplyForState;
|
|||
import com.nflg.mobilebroken.common.constant.AppUserApplyforType;
|
||||
import com.nflg.mobilebroken.common.pojo.request.AddUserRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.ApplyForExtensionRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.ApproveAppUserApplyforRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.EnableRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforInfoVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserApplyforVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserVO;
|
||||
import com.nflg.mobilebroken.common.util.TokenUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AppArea;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUserApplyfor;
|
||||
import com.nflg.mobilebroken.repository.mapper.AppUserApplyforMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAppAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.IDictionaryItemService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -27,7 +38,14 @@ import java.time.LocalDateTime;
|
|||
@Service
|
||||
public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMapper, AppUserApplyfor> implements IAppUserApplyforService {
|
||||
|
||||
private static final PasswordEncoder PASSWORDENCODER = new BCryptPasswordEncoder();
|
||||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private IDictionaryItemService dictionaryItemService;
|
||||
|
||||
@Resource
|
||||
private IAppUserService appUserService;
|
||||
|
||||
@Override
|
||||
public void add(AddUserRequest request) {
|
||||
|
|
@ -69,4 +87,81 @@ public class AppUserApplyforServiceImpl extends ServiceImpl<AppUserApplyforMappe
|
|||
.setCreateTime(LocalDateTime.now());
|
||||
save(applyfor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AppUserApplyforVO getAppUserApplyfor(Integer id) {
|
||||
AppUserApplyfor applyfor = getById(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(applyfor)).throwMessage("审批信息不存在");
|
||||
AppUserApplyforVO vo = new AppUserApplyforVO();
|
||||
AppArea area = appAreaService.getById(applyfor.getAreaId());
|
||||
String titleName = dictionaryItemService.getTitleName(applyfor.getTitleCode());
|
||||
vo.setApplyfor(new AppUserApplyforInfoVO()
|
||||
.setAreaName(area.getName())
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
.setEmail(applyfor.getUserEmail())
|
||||
.setAvatar(applyfor.getUserAvatar())
|
||||
.setUserName(applyfor.getUserName())
|
||||
.setTitleName(titleName)
|
||||
.setReason(applyfor.getReason())
|
||||
.setCreateTime(applyfor.getCreateTime()));
|
||||
AppUser appUser = appUserService.getById(applyfor.getUserId());
|
||||
area = appAreaService.getById(appUser.getAreaId());
|
||||
vo.setUser(new AppUserVO()
|
||||
.setAreaName(area.getName())
|
||||
.setSalesUserName(appUser.getSalesUserName())
|
||||
.setExpireTime(appUser.getExpireTime())
|
||||
.setEmail(appUser.getEmail())
|
||||
.setName(appUser.getName()));
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void approveAppUserApplyfor(ApproveAppUserApplyforRequest request) {
|
||||
AppUserApplyfor applyfor = getById(request.getId());
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(applyfor)).throwMessage("审批信息不存在");
|
||||
if (request.getPass()) {
|
||||
if (applyfor.getType() == AppUserApplyforType.ADD.getState().byteValue()) {
|
||||
//新增账号
|
||||
AppUser appUser = appUserService.getById(applyfor.getCreateBy());
|
||||
AppUser user = new AppUser()
|
||||
.setName(applyfor.getUserName())
|
||||
.setEmail(applyfor.getUserEmail())
|
||||
.setAvatar(applyfor.getUserAvatar())
|
||||
.setPhone(applyfor.getUserPhone())
|
||||
.setAreaId(applyfor.getAreaId())
|
||||
.setCompanyId(String.valueOf(applyfor.getCompanyId()))
|
||||
.setTitleCode(applyfor.getTitleCode())
|
||||
.setEnable(true)
|
||||
.setCreateBy(applyfor.getCreateBy())
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
.setExpireTime(appUser.getExpireTime())
|
||||
.setSalesUserName(appUser.getSalesUserName());
|
||||
appUserService.save(user);
|
||||
} else if (applyfor.getType() == AppUserApplyforType.ENABLE.getState().byteValue()) {
|
||||
//账号启用
|
||||
AppUser appUser = appUserService.getById(applyfor.getUserId());
|
||||
appUser.setEnable(true)
|
||||
.setUpdateBy(applyfor.getCreateBy())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
appUserService.updateById(appUser);
|
||||
} else if (applyfor.getType() == AppUserApplyforType.EXTENSION.getState().byteValue()) {
|
||||
//账号延期
|
||||
AppUser appUser = appUserService.getById(applyfor.getUserId());
|
||||
appUser.setExpireTime(appUser.getExpireTime())
|
||||
.setUpdateBy(applyfor.getCreateBy())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
appUserService.updateById(appUser);
|
||||
}
|
||||
applyfor.setState(AppUserApplyForState.APPROVED.getState().byteValue())
|
||||
.setUpdateBy(TokenUtil.getUserId())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
updateById(applyfor);
|
||||
} else {
|
||||
applyfor.setState(AppUserApplyForState.REJECT.getState().byteValue())
|
||||
.setUpdateBy(TokenUtil.getUserId())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
updateById(applyfor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,37 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.pojo.request.UpdatePasswordRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.UserSearchRequest;
|
||||
import com.nflg.mobilebroken.common.constant.AppUserApplyForState;
|
||||
import com.nflg.mobilebroken.common.pojo.PageData;
|
||||
import com.nflg.mobilebroken.common.pojo.request.*;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserForAdminVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AppUserVO;
|
||||
import com.nflg.mobilebroken.common.util.PageUtil;
|
||||
import com.nflg.mobilebroken.common.util.TokenUtil;
|
||||
import com.nflg.mobilebroken.common.util.VUtils;
|
||||
import com.nflg.mobilebroken.repository.entity.AppArea;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUser;
|
||||
import com.nflg.mobilebroken.repository.entity.AppUserApplyfor;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.nflg.mobilebroken.repository.mapper.AppUserMapper;
|
||||
import com.nflg.mobilebroken.repository.service.IAppAreaService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserApplyforService;
|
||||
import com.nflg.mobilebroken.repository.service.IAppUserService;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.chrono.ChronoLocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -31,11 +46,20 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
|
||||
private static final PasswordEncoder PASSWORDENCODER = new BCryptPasswordEncoder();
|
||||
|
||||
@Resource
|
||||
private IAppAreaService appAreaService;
|
||||
|
||||
@Resource
|
||||
private IAppUserApplyforService appUserApplyforService;
|
||||
|
||||
@Resource
|
||||
private ITBaseCustomerService customerService;
|
||||
|
||||
@Override
|
||||
public AppUser getUser(String userName, String password) {
|
||||
String encodePassword=PASSWORDENCODER.encode(password);
|
||||
return lambdaQuery()
|
||||
.eq(AppUser::getCode, userName)
|
||||
.eq(AppUser::getLoginName, userName)
|
||||
.eq(AppUser::getPassword, encodePassword)
|
||||
.one();
|
||||
}
|
||||
|
|
@ -78,4 +102,172 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
|
|||
public AppUserVO getInfo(Integer userId) {
|
||||
return baseMapper.getInfo(userId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addPrimaryAppUser(PrimaryAppUserAddRequest request) {
|
||||
VUtils.trueThrowBusinessError(lambdaQuery().eq(AppUser::getLoginName, request.getLoginName()).exists())
|
||||
.throwMessage("登录名已存在");
|
||||
AppUser user = new AppUser()
|
||||
.setLoginName(request.getLoginName())
|
||||
.setName(request.getUserName())
|
||||
.setEmail(request.getEmail())
|
||||
.setPhone(request.getPhone())
|
||||
.setAreaId(request.getAreaId())
|
||||
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
||||
.setIsPrimary(true)
|
||||
.setSalesUserName(request.getSalesUserName())
|
||||
.setCreateBy(TokenUtil.getUserId())
|
||||
.setCreateTime(LocalDateTime.now())
|
||||
.setEnable(request.getEnable())
|
||||
.setExpireTime(LocalDateTime.of(LocalDateTime.now().getYear(), 12, 31, 0, 0, 0).toLocalDate());
|
||||
save(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updatePrimaryAppUser(PrimaryAppUserUpdateRequest request) {
|
||||
VUtils.trueThrowBusinessError(lambdaQuery()
|
||||
.eq(AppUser::getLoginName, request.getLoginName())
|
||||
.ne(AppUser::getId, request.getId())
|
||||
.exists())
|
||||
.throwMessage("登录名已存在");
|
||||
AppUser user = new AppUser()
|
||||
.setId(request.getId())
|
||||
.setLoginName(request.getLoginName())
|
||||
.setName(request.getUserName())
|
||||
.setEmail(request.getEmail())
|
||||
.setPhone(request.getPhone())
|
||||
.setAreaId(request.getAreaId())
|
||||
.setCompanyId(StrUtil.join(",", request.getCompanyIds()))
|
||||
.setIsPrimary(true)
|
||||
.setUpdateBy(TokenUtil.getUserId())
|
||||
.setUpdateTime(LocalDateTime.now())
|
||||
.setEnable(request.getEnable());
|
||||
updateById(user);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void migrate(MigrateAppUserRequest request) {
|
||||
AppUser appUser = lambdaQuery()
|
||||
.eq(AppUser::getCompanyId, "'" + request.getOldCompanyId() + "'")
|
||||
.eq(AppUser::getIsPrimary, true)
|
||||
.one();
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(appUser)).throwMessage("代理商主账号不存在");
|
||||
lambdaUpdate()
|
||||
.set(AppUser::getCompanyId, "'" + request.getNewCompanyId() + "'")
|
||||
.set(AppUser::getExpireTime, appUser.getExpireTime())
|
||||
.set(AppUser::getUpdateBy, TokenUtil.getUserId())
|
||||
.set(AppUser::getUpdateTime, LocalDateTime.now())
|
||||
.eq(AppUser::getCompanyId, request.getOldCompanyId().toString())
|
||||
.eq(AppUser::getIsPrimary, false)
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<AppUserForAdminVO> searchAppUserForAdmin(SearchAppUserForAdminRequest request) {
|
||||
IPage<AppUser> page = lambdaQuery()
|
||||
.eq(AppUser::getIsPrimary, true)
|
||||
.like(StrUtil.isNotBlank(request.getLoginName()), AppUser::getLoginName, request.getLoginName())
|
||||
.like(StrUtil.isNotBlank(request.getName()), AppUser::getName, request.getName())
|
||||
.page(new Page<>(request.getPage(), request.getPageSize()));
|
||||
return PageUtil.convert(page, d -> {
|
||||
AppArea area = appAreaService.getById(d.getAreaId());
|
||||
AppUser appUser = getById(d.getCreateBy());
|
||||
String updateBy = null;
|
||||
if (Objects.nonNull(d.getUpdateBy())) {
|
||||
updateBy = getById(d.getUpdateBy()).getName();
|
||||
}
|
||||
return new AppUserForAdminVO()
|
||||
.setId(d.getId())
|
||||
.setAvatar(d.getAvatar())
|
||||
.setLoginName(d.getLoginName())
|
||||
.setUserName(d.getName())
|
||||
.setCompanyName(d.getCompanyId())
|
||||
.setName(d.getSalesUserName())
|
||||
.setEmail(d.getEmail())
|
||||
.setSalesUserName(d.getSalesUserName())
|
||||
.setAreaName(area.getName())
|
||||
.setEnable(d.getEnable())
|
||||
.setEnable(d.getEnable())
|
||||
.setExpireTime(d.getExpireTime())
|
||||
.setCreateBy(appUser.getName())
|
||||
.setCreateTime(d.getCreateTime())
|
||||
.setUpdateBy(updateBy)
|
||||
.setPrimary(true)
|
||||
.setState(d.getExpireTime().isAfter(ChronoLocalDate.from(LocalDateTime.now())) ? 1 : 2)
|
||||
.setLastLoginTime(d.getLastLoginTime());
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable(EnableAppUserRequest request) {
|
||||
lambdaUpdate()
|
||||
.set(AppUser::getEnable, request.getEnable())
|
||||
.set(AppUser::getUpdateBy, TokenUtil.getUserId())
|
||||
.set(AppUser::getUpdateTime, LocalDateTime.now())
|
||||
.in(AppUser::getId, request.getIds())
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AppUserForAdminVO> getChildrenOfAppUser(Integer id) {
|
||||
AppUser appUser = getById(id);
|
||||
VUtils.trueThrowBusinessError(Objects.isNull(appUser)).throwMessage("主账号不存在");
|
||||
String[] companyIds = appUser.getCompanyId().split(",");
|
||||
LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(AppUser::getIsPrimary, false);
|
||||
queryWrapper.and(wrapper -> {
|
||||
for (String companyId : companyIds) {
|
||||
wrapper.or().eq(AppUser::getCompanyId, "'" + companyId + "'"); // 动态添加 OR 条件
|
||||
}
|
||||
});
|
||||
List<AppUser> datas = baseMapper.selectList(queryWrapper);
|
||||
List<AppUserForAdminVO> vos = datas.stream().map(d -> {
|
||||
AppArea area = appAreaService.getById(d.getAreaId());
|
||||
AppUser createUser = getById(d.getCreateBy());
|
||||
String updateBy = null;
|
||||
if (Objects.nonNull(d.getUpdateBy())) {
|
||||
updateBy = getById(d.getUpdateBy()).getName();
|
||||
}
|
||||
return new AppUserForAdminVO()
|
||||
.setId(d.getId())
|
||||
.setAvatar(d.getAvatar())
|
||||
.setLoginName(d.getLoginName())
|
||||
.setUserName(d.getName())
|
||||
.setCompanyName(d.getCompanyId())
|
||||
.setName(d.getSalesUserName())
|
||||
.setEmail(d.getEmail())
|
||||
.setSalesUserName(d.getSalesUserName())
|
||||
.setAreaName(area.getName())
|
||||
.setEnable(d.getEnable())
|
||||
.setPrimary(false)
|
||||
.setEnable(d.getEnable())
|
||||
.setExpireTime(d.getExpireTime())
|
||||
.setCreateBy(createUser.getName())
|
||||
.setCreateTime(d.getCreateTime())
|
||||
.setUpdateBy(updateBy)
|
||||
.setState(d.getExpireTime().isAfter(ChronoLocalDate.from(LocalDateTime.now())) ? 1 : 2)
|
||||
.setLastLoginTime(d.getLastLoginTime());
|
||||
}).collect(Collectors.toList());
|
||||
List<AppUserApplyfor> applyforList = appUserApplyforService.lambdaQuery()
|
||||
.eq(AppUserApplyfor::getState, AppUserApplyForState.PENDINGAPPROVAL.getState().byteValue())
|
||||
.list();
|
||||
vos.addAll(applyforList.stream().map(d -> {
|
||||
AppArea area = appAreaService.getById(d.getAreaId());
|
||||
TBaseCustomer company = customerService.getById(d.getCompanyId());
|
||||
return new AppUserForAdminVO()
|
||||
.setId(d.getId())
|
||||
.setAvatar(d.getUserAvatar())
|
||||
.setLoginName(d.getUserEmail())
|
||||
.setUserName(d.getUserName())
|
||||
.setCompanyName(company.getAgencyCompanyName())
|
||||
.setName(d.getSalesUserName())
|
||||
.setEmail(d.getUserEmail())
|
||||
.setSalesUserName(d.getSalesUserName())
|
||||
.setAreaName(area.getName())
|
||||
.setEnable(false)
|
||||
.setPrimary(false)
|
||||
.setState(0);
|
||||
}).collect(Collectors.toList()));
|
||||
return vos;
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.constant.Constant;
|
||||
import com.nflg.mobilebroken.common.pojo.request.DictionaryItemSearchRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.SaveDictionaryItemRequest;
|
||||
import com.nflg.mobilebroken.common.pojo.request.TranslateMap;
|
||||
|
|
@ -114,4 +115,9 @@ public class DictionaryItemServiceImpl extends ServiceImpl<DictionaryItemMapper,
|
|||
public Integer getId(String dictionaryName, String dictionaryItemName) {
|
||||
return baseMapper.getId(dictionaryName, dictionaryItemName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTitleName(String titleCode) {
|
||||
return baseMapper.getName(Constant.DICTIONARY_TYPE_TITLE, titleCode);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,18 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.AreaSimpleVO;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.TBaseAreaVO;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseArea;
|
||||
import com.nflg.mobilebroken.repository.mapper.TBaseAreaMapper;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseAreaService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -35,4 +37,18 @@ public class TBaseAreaServiceImpl extends ServiceImpl<TBaseAreaMapper, TBaseArea
|
|||
public Integer getCount(){
|
||||
return this.getBaseMapper().getCount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AreaSimpleVO> getSimpleAreas() {
|
||||
List<TBaseArea> datas = lambdaQuery().eq(TBaseArea::getAreaState, 1).eq(TBaseArea::getParentAreaRowId, 0).list();
|
||||
List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getAreaName())).collect(Collectors.toList());
|
||||
vos.forEach(this::bindChildren);
|
||||
return vos;
|
||||
}
|
||||
|
||||
private void bindChildren(AreaSimpleVO vo) {
|
||||
List<TBaseArea> datas = lambdaQuery().eq(TBaseArea::getParentAreaRowId, vo.getId()).eq(TBaseArea::getAreaState, 1).list();
|
||||
List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getAreaName())).collect(Collectors.toList());
|
||||
vos.forEach(this::bindChildren);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,15 +1,17 @@
|
|||
package com.nflg.mobilebroken.repository.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.nflg.mobilebroken.common.pojo.query.PageBaseQuery;
|
||||
import com.nflg.mobilebroken.common.pojo.vo.CompanySimpleVO;
|
||||
import com.nflg.mobilebroken.repository.entity.TBaseCustomer;
|
||||
import com.nflg.mobilebroken.repository.mapper.TBaseCustomerMapper;
|
||||
import com.nflg.mobilebroken.repository.service.ITBaseCustomerService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -29,4 +31,10 @@ public class TBaseCustomerServiceImpl extends ServiceImpl<TBaseCustomerMapper, T
|
|||
public void delByIds(@Param("ids") List<Long> ids ,@Param("userNo")String userNo , @Param("userName") String userName){
|
||||
this.getBaseMapper().delByIds(ids,userNo,userName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CompanySimpleVO> getSimpleCompanys() {
|
||||
List<TBaseCustomer> datas = lambdaQuery().eq(TBaseCustomer::getEnableState, 1).eq(TBaseCustomer::getDelIs, 0).list();
|
||||
return datas.stream().map(d -> new CompanySimpleVO().setId(d.getId()).setName(d.getAgencyCompanyName())).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@
|
|||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.AppUserMapper">
|
||||
|
||||
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.AppUserVO">
|
||||
SELECT u.id,c.`name` AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
SELECT u.id,c.agency_company_name AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
FROM app_user u
|
||||
INNER JOIN company c ON u.company_id=c.id
|
||||
INNER JOIN t_base_customer c ON u.company_id=c.id
|
||||
INNER JOIN app_area a ON u.area_id=a.id
|
||||
INNER JOIN app_user uc ON u.create_by=uc.id
|
||||
LEFT JOIN app_user uc ON u.create_by=uc.id
|
||||
LEFT JOIN app_user uu ON u.update_by=uu.id
|
||||
WHERE u.company_id = #{request.companyId}
|
||||
<where>
|
||||
|
|
@ -25,11 +25,11 @@
|
|||
</where>
|
||||
</select>
|
||||
<select id="getInfo" resultType="com.nflg.mobilebroken.common.pojo.vo.AppUserVO">
|
||||
SELECT u.id,c.`name` AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
SELECT u.id,c.agency_company_name AS 'companyName',u.`name`,u.email,u.avatar,a.`name` AS 'areaName',u.`enable`,uc.`name` AS 'createBy',u.create_time AS 'createTime',uu.`name` AS 'updateBy',u.update_time AS 'updateTime',u.last_login_time AS 'lastLoginTime',u.expire_time AS 'expireTime',u.is_primary AS 'isPrimary'
|
||||
FROM app_user u
|
||||
INNER JOIN company c ON u.company_id=c.id
|
||||
INNER JOIN t_base_customer c ON u.company_id=c.id
|
||||
INNER JOIN app_area a ON u.area_id=a.id
|
||||
INNER JOIN app_user uc ON u.create_by=uc.id
|
||||
LEFT JOIN app_user uc ON u.create_by=uc.id
|
||||
LEFT JOIN app_user uu ON u.update_by=uu.id
|
||||
WHERE u.id = #{userId}
|
||||
</select>
|
||||
|
|
|
|||
|
|
@ -2,4 +2,10 @@
|
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.DictionaryItemMapper">
|
||||
|
||||
<select id="getName" resultType="java.lang.String">
|
||||
SELECT di.`name`
|
||||
FROM dictionary d
|
||||
INNER JOIN dictionary_item di ON d.id=di.dictionary_id
|
||||
WHERE d.`code`=#{dictionaryCode} AND di.`code`=#{itemCode}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -93,10 +93,10 @@
|
|||
</select>
|
||||
|
||||
<select id="searchFromAdmin">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.`name` AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN company c ON u.company_id=c.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
</select>
|
||||
|
|
@ -120,29 +120,29 @@
|
|||
</select>
|
||||
|
||||
<select id="searchAllFromAdmin" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.`name` AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN company c ON u.company_id=c.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
</select>
|
||||
|
||||
<select id="searchFromAdminAndFollow">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.`name` AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN company c ON u.company_id=c.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId}
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
</select>
|
||||
|
||||
<select id="searchAllFromAdminAndFollow" resultType="com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO">
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.`name` AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
SELECT t.id,t.`no`,t.title,t.state,t.urgency,t.component,t.question,t.solution,a.`name` AS 'areaName',c.agency_company_name AS 'companyName',u.`name` AS 'createUserName',t.device_no AS 'deviceNo',t.use_time AS 'useTime',t.create_time AS 'createTime',t.handle,t.solve_time AS 'solveTime'
|
||||
FROM ticket t
|
||||
LEFT JOIN app_user u ON t.user_id=u.id
|
||||
LEFT JOIN company c ON u.company_id=c.id
|
||||
LEFT JOIN t_base_customer c ON u.company_id=c.id
|
||||
LEFT JOIN app_area a ON u.area_id=a.id
|
||||
INNER JOIN ticket_follow tf ON t.id=tf.ticket_id AND tf.user_id=#{userId}
|
||||
<include refid="adminSearchWhereCondition"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue