server/platform/src/main/java/com/doumee/api/business/CompanyController.java
@@ -7,12 +7,15 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest; import com.doumee.service.business.CompanyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; /** * @author AA @@ -30,7 +33,7 @@ @ApiOperation("æ°å»º") @PostMapping("/create") @RequiresPermissions("company:company:create") public ApiResponse create(@RequestBody Company company) { public ApiResponse create(@RequestBody @Valid CompanyCreatOrUpdateRequest company) { return ApiResponse.success(companyService.create(company)); } server/service/src/main/java/com/doumee/dao/business/join/CompanyJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business.join; import com.doumee.dao.business.model.BaseGoods; import com.doumee.dao.business.model.Company; import com.github.yulichang.base.mapper.MPJJoinMapper; import org.springframework.stereotype.Repository; /** * @author T14 */ @Repository public interface CompanyJoinMapper extends MPJJoinMapper<Company> { } server/service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -1,6 +1,7 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; @@ -21,19 +22,19 @@ public class Company { @TableId(type = IdType.AUTO) @ApiModelProperty(value = "主é®", example = "1") @ApiModelProperty(value = "主é®") private Integer id; @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤", example = "1") @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") private Byte deleted; @ApiModelProperty(value = "å建人ç¼ç ", example = "1") @ApiModelProperty(value = "å建人ç¼ç ") private Integer createUser; @ApiModelProperty(value = "å建æ¶é´") private Date createTime; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @ApiModelProperty(value = "æ´æ°äººç¼ç ") private Integer updateUser; @ApiModelProperty(value = "æ´æ°æ¶é´") @@ -48,8 +49,12 @@ @ApiModelProperty(value = "夿³¨") private String remark; @ApiModelProperty(value = "管çåè´¦å·ï¼å ³èsystem_user表)", example = "1") @ApiModelProperty(value = "管çåè´¦å·ï¼å ³èsystem_user表)") private Integer managerId; @ApiModelProperty(value = "管çåè´¦å·") @TableField(exist = false) private String managerUserName; @ApiModelProperty(value = "è系人") private String linkname; @@ -60,17 +65,48 @@ @ApiModelProperty(value = "ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç ï¼ä¸å¯éå¤") private String creditCode; @ApiModelProperty(value = "ä¸»ææ°ééå¶", example = "1") @ApiModelProperty(value = "ä¸»ææ°ééå¶") private Integer userNum; @ApiModelProperty(value = "ç³»ç»ä½¿ç¨æææ") @JsonFormat(pattern = "yyyy-MM-dd") private Date oepnValidDate; @ApiModelProperty(value = "è´¦æ·å¼éç±»å 0è¯ç¨è´¦æ· 1æ£å¼è´¦æ·", example = "1") @ApiModelProperty(value = "è´¦æ·å¼éç±»å 0è¯ç¨è´¦æ· 1æ£å¼è´¦æ·") private Integer oepnType; @ApiModelProperty(value = "éå®äººåç¼ç ï¼å ³èsystem_user表)", example = "1") @ApiModelProperty(value = "éå®äººåç¼ç ï¼å ³èsystem_user表)") private Integer salesmanId; @ApiModelProperty(value = "ç¶æ 0å¯ç¨ 1ç¦ç¨") private Byte status; @ApiModelProperty(value = "éå®äººåå§å") @TableField(exist = false) private String salesmanRealName; @ApiModelProperty(value = "主æäººåæ°é") @TableField(exist = false) private Integer anchorUserNum; @ApiModelProperty(value = "åå·¥äººåæ°é") @TableField(exist = false) private Integer empUserNum; @ApiModelProperty(value = "ååæ°é") @TableField(exist = false) private Integer goodsNum; @ApiModelProperty(value = "ç³»ç»ä½¿ç¨æææèµ·å§") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date oepnValidDateStart; @ApiModelProperty(value = "ç³»ç»ä½¿ç¨æææç»æ¢") @JsonFormat(pattern = "yyyy-MM-dd") @TableField(exist = false) private Date oepnValidDateEnd; } server/service/src/main/java/com/doumee/dao/business/model/dto/CompanyCreatOrUpdateRequest.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,61 @@ package com.doumee.dao.business.model.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.Size; import java.util.Date; /** * @author T14 */ @Data @ApiModel("å建æè ä¿®æ¹å ¬å¸") public class CompanyCreatOrUpdateRequest { @ApiModelProperty(value = "主é®", example = "1") private Integer id; @ApiModelProperty(value = "åç§°") @NotBlank(message = "客æ·åç§°ä¼ä¸å ¨ç§°ä¸å 许为空") @Size(max = 30,message = "客æ·åç§°ä¼ä¸å ¨ç§°ä¸å è®¸è¶ è¿30å") private String name; @ApiModelProperty(value = "ä¼ä¸ç®ç§°") private String shortName; @ApiModelProperty(value = "夿³¨") private String remark; @ApiModelProperty(value = "管çåè´¦å·ï¼å ³èsystem_user表)", example = "1") private Integer managerId; @ApiModelProperty(value = "è系人") private String linkname; @ApiModelProperty(value = "è系人çµè¯") private String linkephone; @ApiModelProperty(value = "ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç ï¼ä¸å¯éå¤") private String creditCode; @ApiModelProperty(value = "ä¸»ææ°ééå¶", example = "1") private Integer userNum; @ApiModelProperty(value = "ç³»ç»ä½¿ç¨æææ") @JsonFormat(pattern = "yyyy-MM-dd") private Date oepnValidDate; @ApiModelProperty(value = "è´¦æ·å¼éç±»å 0è¯ç¨è´¦æ· 1æ£å¼è´¦æ·", example = "1") private Integer oepnType; @ApiModelProperty(value = "éå®äººåç¼ç ï¼å ³èsystem_user表)", example = "1") private Integer salesmanId; } server/service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -4,6 +4,7 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest; import java.util.List; @@ -20,7 +21,7 @@ * @param company å®ä½å¯¹è±¡ * @return Integer */ Integer create(Company company); Integer create(CompanyCreatOrUpdateRequest company); /** * 主é®å é¤ @@ -42,6 +43,15 @@ * @param ids 主é®é */ void deleteByIdInBatch(List<Integer> ids); /** * 䏻鮿´æ° * * @param company å®ä½å¯¹è±¡ */ void updateById(CompanyCreatOrUpdateRequest company); /** * 䏻鮿´æ° @@ -89,6 +99,15 @@ */ PageData<Company> findPage(PageWrap<Company> pageWrap); /** * å页æ¥è¯¢ * * @param pageWrap å页对象 * @return PageData<Company> */ PageData<Company> findPlatformPage(PageWrap<Company> pageWrap); /** * æ¡ä»¶ç»è®¡ * server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -5,17 +5,29 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.join.CompanyJoinMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.dto.CompanyCreatOrUpdateRequest; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.CompanyService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * ç³»ç»-ä¼ä¸ä¿¡æ¯è¡¨Serviceå®ç° @@ -28,9 +40,41 @@ @Autowired private CompanyMapper companyMapper; @Autowired private CompanyJoinMapper companyJoinMapper; @Override public Integer create(Company company) { companyMapper.insert(company); public Integer create(CompanyCreatOrUpdateRequest company) { LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Company insert = new Company(); if (Objects.isNull(company.getManagerId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"ç»å½è´¦å·ä¸å 许为空"); } if (Objects.isNull(company.getOepnValidDate())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æææä¸å 许为空"); } if (Objects.isNull(company.getUserNum())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"主æè´¦å·æ°éä¸å 许为空"); } insert.setDeleted((byte)Constants.ZERO); insert.setCreateUser(userInfo.getId()); insert.setCreateTime(new Date()); insert.setUpdateUser(userInfo.getId()); insert.setUpdateTime(new Date()); insert.setName(company.getName()); insert.setShortName(company.getShortName()); insert.setRemark(company.getRemark()); insert.setManagerId(company.getManagerId()); insert.setLinkname(company.getLinkname()); insert.setLinkephone(company.getLinkephone()); insert.setCreditCode(company.getCreditCode()); insert.setUserNum(company.getUserNum()); insert.setOepnValidDate(company.getOepnValidDate()); insert.setOepnType(company.getOepnType()); insert.setSalesmanId(company.getSalesmanId()); companyMapper.insert(insert); return company.getId(); } @@ -51,6 +95,19 @@ return; } companyMapper.deleteBatchIds(ids); } @Override public void updateById(CompanyCreatOrUpdateRequest company) { UpdateWrapper<Company> wrapper = new UpdateWrapper<>(); wrapper.lambda().eq(Company::getId,company.getId()) .set(Company::getName,company.getName()) .set(Company::getShortName,company.getShortName()) .set(Company::getCreditCode,company.getCreditCode()) .set(Company::getSalesmanId,company.getSalesmanId()) .set(Company::getLinkname,company.getLinkname()) .set(Company::getLinkephone,company.getLinkephone()); companyMapper.update(null,wrapper); } @Override @@ -122,6 +179,28 @@ return PageData.from(companyMapper.selectPage(page, queryWrapper)); } @Override public PageData<Company> findPlatformPage(PageWrap<Company> pageWrap) { IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Company> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,Company::getManagerId); queryWrapper.selectAll(Company.class) .selectAs(SystemUser::getUsername,Company::getManagerUserName); queryWrapper.select( "(select su1.USERNAME from system_user su1 where su1.id = company.MANAGER_ID) as managerUserName," + "(select su2.REALNAME from system_user su2 where su2.id = company.SALESMAN_ID) as salesmanRealName," + "(select count(su3.id) from system_user su3 where su3.COMPANY_ID = company.ID and su3.TYPE = 2) as anchorUserNum," + "(select count(su4.id) from system_user su4 where su4.COMPANY_ID = company.ID and su3.TYPE = 1) as empUserNum," + "(select count(goods.id) from goods where g.COMPANY_ID = company.ID )goodsNum"); queryWrapper.eq(Company::getName,pageWrap.getModel().getName()) .like(SystemUser::getUsername,pageWrap.getModel().getManagerUserName()) .eq(Company::getStatus,pageWrap.getModel().getStatus()) .between(Company::getOepnValidDate,pageWrap.getModel().getOepnValidDateStart(),pageWrap.getModel().getOepnValidDateEnd()); return PageData.from(companyMapper.selectPage(page, queryWrapper)); } @Override public long count(Company company) { QueryWrapper<Company> wrapper = new QueryWrapper<>(company);