提交 df18afb2 作者: panda

作业服务相关接口

上级 fda1043f
package com.mmc.pms.controller;
import com.mmc.pms.common.Page;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.model.group.Create;
import com.mmc.pms.model.group.Update;
import com.mmc.pms.model.qo.ServiceQO;
import com.mmc.pms.model.work.dto.ServiceDTO;
import com.mmc.pms.model.work.dto.WorkServiceDTO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.BackstageTaskService;
......@@ -56,12 +58,18 @@ public class BackstageTaskServiceController extends BaseController {
return backstageTaskService.queryById(id);
}
@ApiOperation(value = "查询工作服务列表")
@ApiOperation(value = "查询服务管理列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ServiceDTO.class)})
@PostMapping("queryServiceManagerList")
public ResultBody queryServiceManagerList(
@Validated(Page.class) @RequestBody ServiceQO param, HttpServletRequest request) {
return ResultBody.success(backstageTaskService.queryServiceManagerList(param, this.getUserLoginInfoFromRedis(request).getUserAccountId()));
}
@ApiOperation(value = "条件查询作业服务列表")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = WorkServiceDTO.class)})
@PostMapping("queryWorkServiceList")
public PageResult queryWorkServiceList(
@Validated(Create.class) @RequestBody ServiceQO param, HttpServletRequest request) {
return backstageTaskService.queryWorkServiceList(
param, this.getUserLoginInfoFromRedis(request).getUserAccountId());
public ResultBody queryWorkServiceList(@Validated(Page.class) @RequestBody ServiceQO param, HttpServletRequest request) {
return ResultBody.success(backstageTaskService.queryWorkServiceList(param,request));
}
}
......@@ -3,6 +3,7 @@ package com.mmc.pms.dao;
import com.mmc.pms.entity.ServiceDO;
import com.mmc.pms.model.qo.ServiceQO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -24,4 +25,8 @@ public interface BackstageTaskServiceDao {
List<ServiceDO> queryAllByLimit(ServiceQO param);
Integer count(ServiceQO param);
int conditionCount(@Param("param") ServiceQO param, @Param("userIds") List<Integer> userIds);
List<ServiceDO> queryPageByLimit(@Param("param") ServiceQO param, @Param("userIds") List<Integer> userIds);
}
package com.mmc.pms.dao;
import com.mmc.pms.entity.InspComtDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* <p>
* 评论表 Mapper 接口
* </p>
*
* @author Pika
* @since 2023-06-09
*/
@Mapper
public interface InspComtDao {
List<InspComtDO> randomGetInspComtList(Integer size);
}
package com.mmc.pms.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
* 评论表
* </p>
*
* @author Pika
* @since 2023-06-09
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class InspComtDO implements Serializable {
private static final long serialVersionUID = 1896389867L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "头像")
private String userImg;
@ApiModelProperty(value = "昵称")
private String nickName;
@ApiModelProperty(value = "评价内容")
private String content;
@ApiModelProperty(value = "评价图片集合 1.jpg,2.jpg 使用逗号隔开")
private String contentImgs;
@ApiModelProperty(value = "评价视频")
private String contentVideo;
@ApiModelProperty(value = "评价星级")
private Integer star;
@ApiModelProperty(value = "关键字集合 深圳市,广州市,长沙市使用逗号隔开")
private String tags;
@ApiModelProperty(value = "是否带图 0:带图 1:不带图")
private Integer isImg;
@ApiModelProperty(value = "评价类型:0:好评 1:差评")
private Integer type;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
......@@ -38,8 +38,8 @@ public class ServiceQO implements Serializable {
@ApiModelProperty(value = "行业", example = "2")
private Integer industryId;
@ApiModelProperty(value = "账号id")
private Integer accountId;
@ApiModelProperty(value = "省份编码", example = "440000")
private Integer provinceCode;
@ApiModelProperty(value = "页码", required = true)
@NotNull(
......
package com.mmc.pms.model.work.dto;
import com.mmc.pms.entity.InspComtDO;
import com.mmc.pms.model.group.Create;
import com.mmc.pms.model.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class WorkServiceDTO implements Serializable {
private static final long serialVersionUID = -15752785758L;
private Integer id;
@ApiModelProperty(value = "服务名称")
private String serviceName;
@ApiModelProperty(value = "服务价格")
private BigDecimal servicePrice;
@ApiModelProperty(value = "封面图")
private String coverPlan;
@ApiModelProperty(value = "分享卡片")
private String shareCard;
@ApiModelProperty(value = "视频")
private String video;
@ApiModelProperty(value = "服务介绍")
private String serviceIntroduction;
@ApiModelProperty(value = "公司名称")
private String companyName;
@ApiModelProperty(value = "评论列表")
private List<InspComtDO> inspComtList;
@ApiModelProperty(value = "评论数量")
private Integer inspComtAmount;
}
......@@ -5,6 +5,8 @@ import com.mmc.pms.model.qo.ServiceQO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.page.PageResult;
import javax.servlet.http.HttpServletRequest;
/**
* @Author LW
*
......@@ -19,5 +21,7 @@ public interface BackstageTaskService {
ResultBody queryById(Integer id);
PageResult queryWorkServiceList(ServiceQO param, Integer userAccountId);
PageResult queryServiceManagerList(ServiceQO param, Integer userAccountId);
PageResult queryWorkServiceList(ServiceQO param, HttpServletRequest request);
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.common.ResultBody;
import com.mmc.pms.common.ResultEnum;
import com.mmc.pms.constant.TokenConstant;
import com.mmc.pms.dao.BackstageTaskServiceDao;
import com.mmc.pms.dao.CategoriesDao;
import com.mmc.pms.entity.Categories;
import com.mmc.pms.entity.InspComtDO;
import com.mmc.pms.entity.ServiceDO;
import com.mmc.pms.feign.UserAppApi;
import com.mmc.pms.model.qo.ServiceQO;
import com.mmc.pms.model.sale.dto.GoodsSpecDTO;
import com.mmc.pms.model.work.dto.ServiceDTO;
import com.mmc.pms.model.work.dto.WorkServiceDTO;
import com.mmc.pms.model.work.vo.ServiceVO;
import com.mmc.pms.page.PageResult;
import com.mmc.pms.service.BackstageTaskService;
import com.mmc.pms.service.InspComtService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
......@@ -23,12 +34,17 @@ import java.util.stream.Collectors;
* @date 2023/6/8 9:59 概要:
*/
@Service
@Slf4j
public class BackstageTaskServiceImpl implements BackstageTaskService {
@Autowired private BackstageTaskServiceDao backstageTaskServiceDao;
@Autowired private CategoriesDao categoriesDao;
@Autowired private UserAppApi userAppApi;
@Autowired private InspComtService inspComtService;
@Override
public ResultBody addWorkService(ServiceVO param, Integer userAccountId) {
ServiceDO serviceDO = new ServiceDO(param, userAccountId);
......@@ -80,7 +96,7 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
}
@Override
public PageResult queryWorkServiceList(ServiceQO param, Integer userAccountId) {
public PageResult queryServiceManagerList(ServiceQO param, Integer userAccountId) {
int count = backstageTaskServiceDao.count(param);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
......@@ -88,6 +104,11 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<ServiceDO> services = backstageTaskServiceDao.queryAllByLimit(param);
List<ServiceDTO> pageList = setApplicationNameAndIndustryName(services);
return PageResult.buildPage(pageNo, param.getPageSize(), count, pageList);
}
private List<ServiceDTO> setApplicationNameAndIndustryName(List<ServiceDO> services) {
List<Integer> list = new ArrayList<>();
for (ServiceDO service : services) {
list.add(service.getApplicationId());
......@@ -104,6 +125,44 @@ public class BackstageTaskServiceImpl implements BackstageTaskService {
return serviceDTO;
})
.collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, pageList);
return pageList;
}
@Override
public PageResult queryWorkServiceList(ServiceQO param, HttpServletRequest request) {
List<Integer> userIds = null;
Integer provinceCode = param.getProvinceCode();
if(provinceCode!=null){
userIds = userAppApi.feignListUserAccountIds(provinceCode, null, null, request.getHeader(TokenConstant.TOKEN));
if(CollectionUtils.isEmpty(userIds)){
log.warn("根据地区信息查询用户id为空");
}
}
int count = backstageTaskServiceDao.conditionCount(param,userIds);
if (count == 0) {
return PageResult.buildPage(param.getPageNo(), param.getPageSize(), count);
}
Integer pageNo = param.getPageNo();
param.buildCurrentPage();
List<ServiceDO> pageList = backstageTaskServiceDao.queryPageByLimit(param,userIds);
// 随机获取50条以上的评论
List<InspComtDO> inspComtRandomList = inspComtService.randomGetInspComtList(RandomUtils.nextInt(50, 9999));
if(inspComtRandomList==null){
inspComtRandomList = Collections.emptyList();
}
// 用户暂时无关联公司数据,先用假数据展示
String companyName = "浙江科比特创新科技有限公司";
List<WorkServiceDTO> workServiceDTOList = new ArrayList<>();
for (ServiceDO item : pageList) {
WorkServiceDTO workServiceDTO = WorkServiceDTO.builder().id(item.getId()).serviceName(item.getServiceName()).companyName(companyName)
.coverPlan(item.getCoverPlan()).serviceIntroduction(item.getServiceIntroduction()).video(item.getVideo()).shareCard(item.getShareCard()).build();
Collections.shuffle(inspComtRandomList);
List<InspComtDO> inspComtList = inspComtRandomList.subList(0, RandomUtils.nextInt(0, inspComtRandomList.size()));
workServiceDTO.setInspComtList(inspComtList);
workServiceDTO.setInspComtAmount(inspComtList.size());
workServiceDTOList.add(workServiceDTO);
}
return PageResult.buildPage(pageNo, param.getPageSize(), count, workServiceDTOList);
}
}
package com.mmc.pms.service.Impl;
import com.mmc.pms.dao.InspComtDao;
import com.mmc.pms.entity.InspComtDO;
import com.mmc.pms.service.InspComtService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 评论表 服务实现类
* </p>
*
* @author Pika
* @since 2023-06-09
*/
@Service
public class InspComtServiceImpl implements InspComtService {
@Autowired
private InspComtDao inspComtDao;
@Override
public List<InspComtDO> randomGetInspComtList(Integer size) {
return inspComtDao.randomGetInspComtList(size);
}
}
package com.mmc.pms.service;
import com.mmc.pms.entity.InspComtDO;
import java.util.List;
/**
* <p>
* 评论表 服务类
* </p>
*
* @author Pika
* @since 2023-06-09
*/
public interface InspComtService {
List<InspComtDO> randomGetInspComtList(Integer size);
}
<?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.pms.dao.InspComtDao">
<resultMap type="com.mmc.pms.entity.InspComtDO" id="InspComtMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="userImg" column="user_img" jdbcType="VARCHAR"/>
<result property="nickName" column="nick_name" jdbcType="VARCHAR"/>
<result property="content" column="content" jdbcType="VARCHAR"/>
<result property="contentImgs" column="content_imgs" jdbcType="VARCHAR"/>
<result property="contentVideo" column="content_video" jdbcType="VARCHAR"/>
<result property="star" column="star" jdbcType="INTEGER"/>
<result property="tags" column="tags" jdbcType="VARCHAR"/>
<result property="isImg" column="is_img" jdbcType="INTEGER"/>
<result property="type" column="type" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="randomGetInspComtList" resultMap="InspComtMap">
SELECT id, user_img, nick_name, content, content_imgs, content_video, star, tags, is_img, `type`, create_time
FROM insp_comt
ORDER BY RAND() LIMIT #{size}
</select>
</mapper>
......@@ -64,6 +64,7 @@
service_introduction, create_time, update_time, account_id
from service
<where>
is_deleted = 0 and display_state = 0
<if test="serviceName != null and serviceName != ''">
and service_name LIKE CONCAT('%',#{serviceName},'%')
</if>
......@@ -76,8 +77,6 @@
<if test="accountId != null">
and account_id = #{accountId}
</if>
and is_deleted = 0
and display_state = 0
</where>
order by create_time desc
limit #{pageNo}, #{pageSize}
......@@ -88,6 +87,7 @@
select count(*)
from service
<where>
is_deleted = 0 and display_state = 0
<if test="serviceName != null and serviceName != ''">
and service_name LIKE CONCAT('%',#{serviceName},'%')
</if>
......@@ -100,8 +100,6 @@
<if test="accountId != null">
and account_id = #{accountId}
</if>
and is_deleted = 0
and display_state = 0
</where>
</select>
......@@ -160,4 +158,46 @@
set is_deleted = 1
where id = #{id}
</update>
<select id="conditionCount" resultType="java.lang.Integer">
select count(*)
from service
<where>
is_deleted = 0 and display_state = 0
<if test="param.applicationId != null">
and application_id = #{param.applicationId}
</if>
<if test="param.industryId != null">
and industry_id = #{param.industryId}
</if>
<if test="userIds !=null">
<foreach collection="userIds" open="and account_id in (" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</where>
</select>
<select id="queryPageByLimit" resultType="com.mmc.pms.entity.ServiceDO">
select
id, service_name, application_id, industry_id, display_state, cover_plan, share_card, video,
service_introduction, create_time, update_time, account_id
from service
<where>
is_deleted = 0 and display_state = 0
<if test="param.applicationId != null">
and application_id = #{param.applicationId}
</if>
<if test="param.industryId != null">
and industry_id = #{param.industryId}
</if>
<if test="userIds !=null">
<foreach collection="userIds" open="and account_id in (" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</where>
order by create_time desc
limit #{param.pageNo}, #{param.pageSize}
</select>
</mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论