Commit 9ee999fe by guojuxing

商户列表查询

parent 0c054990
package com.gic.enterprise.constant;
/**
* @author guojx
* @date 2019/7/18 10:16 AM
*/
public enum EnterpriseListOrderByEnum {
CreateTime_ASC(1, " order by a.create_time "),
CreateTime_DESC(2, " order by a.create_time desc "),
ExpireTime_ASC(3, " order by c.expiration_time "),
ExpireTime_DESC(4, " order by c.expiration_time desc ");
private int code;
private String message;
private EnterpriseListOrderByEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public static String getOrderBy(int code) {
for (EnterpriseListOrderByEnum orderByEnum : values()) {
if (code == orderByEnum.getCode()) {
return orderByEnum.getMessage();
}
}
return null;
}
}
package com.gic.enterprise.constant;
/**
* @author guojx
* @date 2019/7/18 9:00 AM
*/
public enum EnterpriseVersionStatusEnum {
EFFECTIVE(1, "有效"),
INVALID(0, "无效"),
DISABLE(2, "停用"),
OVERDUE(3, "逾期"),
NO_SERVICE(4, "无服务"),
ABOUT_TO_EXPIRE(5, "即将到期");
private int code;
private String message;
private EnterpriseVersionStatusEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package com.gic.enterprise.constant;
/**
* @author guojx
* @date 2019/7/18 10:02 AM
*/
public enum LicenseTypeEnum {
MemberCard(1, "会员卡"),
ServiceNumber(2, "服务号"),
WeChat(3, "小程序"),
Store(4, "门店"),
Goods(5, "商品");
private int code;
private String message;
private LicenseTypeEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package com.gic.enterprise.dto;
import com.gic.enterprise.constant.LicenseTypeEnum;
import java.io.Serializable;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author guojx
* @date 2019/7/18 9:23 AM
*/
public class EnterpriseListDTO implements Serializable{
private static final long serialVersionUID = -4988455509634831625L;
private Integer enterpriseId;
private String enterpriseName;
private String companyName;
private String logo;
private String licenseUpperLimitStr;
/**
* 自左向右显示会员卡、服务号、小程序、门店、商品5大业务对象的license授权额度。
* 受显示宽度限制,区间型license仅显示区间峰值。
* 2 - 1 - 3 - 500 - 5000
*/
private String serviceInfo;
private Date createTime;
/**
* 服务版本;1gic标准版 2gic集团版
*/
private Integer serviceVersion;
/**
* 截止日期
*/
private Date expirationTime;
/**
* 状态值;0无效,1有效,2停用,3逾期 4:无服务 5:即将到期
*/
private Integer serviceStatus;
/**
* 即将到期天数
*/
private Integer aboutToExpireDay;
public Integer getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getLogo() {
return logo;
}
public void setLogo(String logo) {
this.logo = logo;
}
public String getLicenseUpperLimitStr() {
return licenseUpperLimitStr;
}
public void setLicenseUpperLimitStr(String licenseUpperLimitStr) {
this.licenseUpperLimitStr = licenseUpperLimitStr;
}
public Integer getServiceVersion() {
return serviceVersion;
}
public void setServiceVersion(Integer serviceVersion) {
this.serviceVersion = serviceVersion;
}
public Date getExpirationTime() {
return expirationTime;
}
public void setExpirationTime(Date expirationTime) {
this.expirationTime = expirationTime;
}
public Integer getServiceStatus() {
return serviceStatus;
}
public void setServiceStatus(Integer serviceStatus) {
this.serviceStatus = serviceStatus;
}
public Integer getAboutToExpireDay() {
return aboutToExpireDay;
}
public void setAboutToExpireDay(Integer aboutToExpireDay) {
this.aboutToExpireDay = aboutToExpireDay;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getServiceInfo() {
if (licenseUpperLimitStr == null || licenseUpperLimitStr == "") {
return "--";
} else {
String[] licenseArr = licenseUpperLimitStr.split(",");
Map<Integer, Integer> licenseMap = new HashMap<>(16);
for (String str : licenseArr) {
Integer licenseType = Integer.parseInt(str.substring(0, 1));
Integer licenseValue = Integer.parseInt(str.substring(1, str.length() -1));
licenseMap.put(licenseType, licenseValue);
}
StringBuilder serviceInfo = new StringBuilder();
for (LicenseTypeEnum licenseTypeEnum : LicenseTypeEnum.values()) {
serviceInfo.append(licenseMap.get(licenseTypeEnum.getCode())).append("-");
}
return serviceInfo.toString().substring(0, serviceInfo.toString().length() - 2);
}
}
public void setServiceInfo(String serviceInfo) {
this.serviceInfo = serviceInfo;
}
}
package com.gic.enterprise.service;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.auth.dto.UserDTO;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseListDTO;
/**
* @author guojx
......@@ -53,4 +55,8 @@ public interface EnterpriseApiService {
* @return
*/
ServiceResponse enableEnterprise(Integer enterpriseId);
ServiceResponse<Page<EnterpriseListDTO>> listEnterprise(String search, Integer serviceVersion,
Integer status, String orderBy,
Integer pageNum, Integer pageSize);
}
package com.gic.enterprise.dao.mapper;
import com.gic.enterprise.dto.EnterpriseListDTO;
import com.gic.enterprise.entity.TabEnterprise;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TabEnterpriseMapper {
/**
* 根据主键删除
......@@ -60,4 +63,16 @@ public interface TabEnterpriseMapper {
*/
int countByEnterpriseName(@Param("enterpriseName") String enterpriseName,
@Param("enterpriseId") Integer enterpriseId);
/**
* 查询列表
* @param search 商户名称或者公司名称
* @param serviceVersion
* @param serviceStatus
* @return
*/
List<EnterpriseListDTO> listEnterpriseId(@Param("search") String search,
@Param("serviceVersion") Integer serviceVersion,
@Param("serviceStatus") Integer serviceStatus,
@Param("orderBy") String orderBy);
}
\ No newline at end of file
package com.gic.enterprise.service;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseListDTO;
import com.gic.enterprise.entity.TabEnterprise;
import com.github.pagehelper.Page;
/**
* @author guojx
......@@ -43,4 +45,8 @@ public interface EnterpriseService {
* @param status
*/
void changeEnterpriseStatus(Integer enterpriseId, Integer status);
Page<EnterpriseListDTO> listEnterprise(String search, Integer serviceVersion,
Integer status, String orderBy,
Integer pageNum, Integer pageSize);
}
......@@ -3,12 +3,17 @@ package com.gic.enterprise.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.dao.mapper.TabEnterpriseMapper;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseListDTO;
import com.gic.enterprise.entity.TabEnterprise;
import com.gic.enterprise.service.EnterpriseService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author guojx
* @date 2019/7/16 4:32 PM
......@@ -53,4 +58,12 @@ public class EnterpriseServiceImpl implements EnterpriseService{
tabEnterprise.setStatus(status);
tabEnterpriseMapper.updateByPrimaryKeySelective(tabEnterprise);
}
@Override
public Page<EnterpriseListDTO> listEnterprise(String search, Integer serviceVersion, Integer status,
String orderBy, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<EnterpriseListDTO> list = tabEnterpriseMapper.listEnterpriseId(search, serviceVersion, status, orderBy);
return (Page<EnterpriseListDTO>) list;
}
}
package com.gic.enterprise.service.outer;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.UserApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.constant.EnterpriseStatusTypeEnum;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseListDTO;
import com.gic.enterprise.entity.TabEnterprise;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.exception.EnterpriseException;
......@@ -17,6 +20,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
/**
* @author guojx
......@@ -128,4 +132,12 @@ public class EnterpriseApiServiceImpl implements EnterpriseApiService {
enterpriseService.changeEnterpriseStatus(enterpriseId, EnterpriseStatusTypeEnum.EFFECTIVE.getCode());
return ServiceResponse.success();
}
@Override
public ServiceResponse<Page<EnterpriseListDTO>> listEnterprise(String search, Integer serviceVersion, Integer status,
String orderBy, Integer pageNum, Integer pageSize) {
com.github.pagehelper.Page page = enterpriseService.listEnterprise(search, serviceVersion, status, orderBy, pageNum, pageSize);
Page<EnterpriseListDTO> resultPage = PageHelperUtils.changePageHelperToCurrentPage(page);
return ServiceResponse.success(resultPage);
}
}
......@@ -159,4 +159,44 @@
enterprise_id <![CDATA[ <> ]]> #{enterpriseId}
</if>
</select>
<select id="listEnterpriseId" resultType="com.gic.enterprise.dto.EnterpriseListDTO">
SELECT
a.enterprise_id enterpriseId,
a.enterprise_name enterpriseName,
a.logo logo,
a.company_name companyName,
a.create_time createTime,
GROUP_CONCAT(b.license_type, b.upper_limit) licenseUpperLimitStr,
c.service_version serviceVersion,
c.expiration_time expirationTime,
c.`status` serviceStatus,
if(c.expiration_time != null, DATEDIFF(c.expiration_time, now()), 0) aboutToExpireDay
FROM
tab_enterprise a
LEFT JOIN tab_enterprise_license b ON a.enterprise_id = b.enterprise_id
LEFT JOIN tab_enterprise_version c ON a.enterprise_id = c.enterprise_id
where 1=1
<if test="search != null and search != '' ">
and ( a.enterprise_name like concat('%', #{search}, '%') or a.company_name like concat('%', #{search}, '%') )
</if>
<if test="serviceVersion != null">
and c.service_version = #{serviceVersion}
</if>
<if test="serviceStatus != null">
<if test="serviceStatus == 4 ">
and (c.status = 0 or c.service_version is null)
</if>
<if test="serviceStatus == 5 ">
and DATEDIFF(c.expiration_time, now()) <![CDATA[ <= ]]> 100
</if>
<if test="serviceStatus != 5 and serviceStatus != 4">
and c.status = #{serviceStatus}
</if>
</if>
<if test="orderBy != null and orderBy != '' ">
#{orderBy}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -5,10 +5,12 @@ import com.gic.auth.constant.UserConstants;
import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.UserApiService;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.constant.EnterpriseListOrderByEnum;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.operation.web.qo.PageQO;
import com.gic.operation.web.utils.UserPasswordUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -57,6 +59,18 @@ public class EnterpriseController {
}
}
@RequestMapping("/list-enterprise")
public RestResponse listEnterprise(String search, Integer serviceVersion, Integer serviceStatus, Integer orderBy, PageQO pageQO) {
ServiceResponse enterpriseResult = enterpriseApiService.listEnterprise(search, serviceVersion, serviceStatus,
EnterpriseListOrderByEnum.getOrderBy(orderBy), pageQO.getCurrentPage(), pageQO.getPageSize());
if (enterpriseResult.isSuccess()) {
return RestResponse.success();
} else {
return EnterpriseRestResponse.failure(enterpriseResult);
}
}
@RequestMapping("/edit-enterprise")
public RestResponse editEnterprise(@Validated({EnterpriseDTO.EditEnterpriseValid.class, EnterpriseDTO.SaveEnterpriseValid.class})
EnterpriseDTO enterpriseDTO) {
......
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