ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java
@@ -1,10 +1,15 @@ package com.ruoyi.web.controller.system; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.model.TbBanner; import com.ruoyi.system.query.CompanyListQuery; import com.ruoyi.system.service.TbBannerService; import com.ruoyi.system.service.TbCompanyService; import com.ruoyi.system.vo.IndexCompanyListVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -14,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.util.List; @Slf4j @RestController @@ -25,15 +31,28 @@ private TbCompanyService tbCompanyService; @Autowired private TbBannerService bannerService; @Autowired private TokenService tokenService; @ApiOperation(value = "获取banner",tags = {"获取banner"}) @GetMapping("/getBannerList") public R<List<TbBanner>> getBannerList() { List<TbBanner> list = bannerService.list(new LambdaQueryWrapper<TbBanner>().eq(TbBanner::getDelFlag, 0)); return R.ok(list); } @ApiOperation(value = "获取商城首页",tags = {"获取商城首页"}) @GetMapping("/getCompanyList") public R<?> getCompanyList(@Valid CompanyListQuery query) { public R<Page<IndexCompanyListVo>> getCompanyList(@Valid CompanyListQuery query) { LoginUser loginUser = tokenService.getLoginUser(); Long userId = loginUser.getUserId(); return R.ok(); Page<IndexCompanyListVo> page = tbCompanyService.getCompanyList(query,userId); return R.ok(page); } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBannerMapper.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.model.TbBanner; /** * <p> * banner Mapper 接口 * </p> * * @author administrator * @since 2025-05-26 */ public interface TbBannerMapper extends BaseMapper<TbBanner> { } ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbIndustryMapper.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.model.TbIndustry; /** * <p> * 所属行业 Mapper 接口 * </p> * * @author administrator * @since 2025-05-26 */ public interface TbIndustryMapper extends BaseMapper<TbIndustry> { } ruoyi-system/src/main/java/com/ruoyi/system/model/TbBanner.java
New file @@ -0,0 +1,70 @@ package com.ruoyi.system.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.baomidou.mybatisplus.extension.activerecord.Model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> * banner * </p> * * @author administrator * @since 2025-05-26 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("tb_banner") public class TbBanner extends Model<TbBanner> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 名称 */ @ApiModelProperty("名称") private String name; /** * 跳转类型(1=无跳转,2=外部链接) */ @ApiModelProperty("跳转类型(1=无跳转,2=发布首页 3订单首页 4发布页详情)") @TableField("jump_type") private Integer jumpType; @ApiModelProperty("跳转Id") private String content; /** * 图片地址 */ @TableField("image_url") private String imageUrl; /** * 删除标识(0=否,1=是) */ @TableField("del_flag") private Integer delFlag; /** * 添加时间 */ @TableField("create_time") private Date createTime; } ruoyi-system/src/main/java/com/ruoyi/system/model/TbCompany.java
@@ -217,4 +217,6 @@ private Date createTime; private Integer isDelete; } ruoyi-system/src/main/java/com/ruoyi/system/model/TbIndustry.java
New file @@ -0,0 +1,48 @@ package com.ruoyi.system.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.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; /** * <p> * 所属行业 * </p> * * @author administrator * @since 2025-05-26 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("tb_industry") public class TbIndustry extends Model<TbIndustry> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 行业名称 */ private String name; /** * 显示顺序 */ @TableField("order_num") private Integer orderNum; } ruoyi-system/src/main/java/com/ruoyi/system/query/CompanyListQuery.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.query; import com.baomidou.mybatisplus.annotation.TableField; import com.ruoyi.common.core.domain.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -10,7 +11,7 @@ @Data @ApiModel("商城首页查询Query") public class CompanyListQuery { public class CompanyListQuery extends BasePage { @ApiModelProperty("城市code") @NotBlank(message = "城市code不能为空") private String cityCode; @@ -41,5 +42,7 @@ private Integer havePatent; @ApiModelProperty("软著0无1有") private Integer haveSoftWorks; @ApiModelProperty("金额排序 1倒叙 2正序 默认不传") private Integer moneySort; } ruoyi-system/src/main/java/com/ruoyi/system/service/TbBannerService.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.TbBanner; /** * <p> * banner 服务类 * </p> * * @author administrator * @since 2025-05-26 */ public interface TbBannerService extends IService<TbBanner> { } ruoyi-system/src/main/java/com/ruoyi/system/service/TbCompanyService.java
@@ -1,8 +1,13 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.TbCompany; import com.ruoyi.system.query.CompanyListQuery; import com.ruoyi.system.vo.IndexCompanyListVo; import javax.validation.Valid; /** * <p> @@ -14,4 +19,7 @@ */ public interface TbCompanyService extends IService<TbCompany> { Page<IndexCompanyListVo> getCompanyList(CompanyListQuery query, Long userId); } ruoyi-system/src/main/java/com/ruoyi/system/service/TbIndustryService.java
New file @@ -0,0 +1,17 @@ package com.ruoyi.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.model.TbIndustry; /** * <p> * 所属行业 服务类 * </p> * * @author administrator * @since 2025-05-26 */ public interface TbIndustryService extends IService<TbIndustry> { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBannerServiceImpl.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.mapper.TbBannerMapper; import com.ruoyi.system.model.TbBanner; import com.ruoyi.system.service.TbBannerService; import org.springframework.stereotype.Service; /** * <p> * banner 服务实现类 * </p> * * @author administrator * @since 2025-05-26 */ @Service public class TbBannerServiceImpl extends ServiceImpl<TbBannerMapper, TbBanner> implements TbBannerService { } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCompanyServiceImpl.java
@@ -1,11 +1,25 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.mapper.TbCompanyMapper; import com.ruoyi.system.model.TbCompany; import com.ruoyi.system.model.TbIndustry; import com.ruoyi.system.model.TbPermit; import com.ruoyi.system.query.CompanyListQuery; import com.ruoyi.system.service.TbCompanyService; import com.ruoyi.system.service.TbIndustryService; import com.ruoyi.system.service.TbPermitService; import com.ruoyi.system.vo.IndexCompanyListVo; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * <p> @@ -18,4 +32,98 @@ @Service public class TbCompanyServiceImpl extends ServiceImpl<TbCompanyMapper, TbCompany> implements TbCompanyService { @Autowired private TbPermitService permitService; @Autowired private TbIndustryService industryService; @Override public Page<IndexCompanyListVo> getCompanyList(CompanyListQuery query, Long userId) { Page<TbCompany> page = new Page<>(query.getPageNum(), query.getPageSize()); Page<IndexCompanyListVo> page1 = new Page<>(); LambdaQueryWrapper<TbCompany> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(TbCompany::getIsDelete,0); if(query.getCertificateNames()!=null && query.getCertificateNames().size()>0){ List<TbPermit> tbPermits = permitService.list(new LambdaQueryWrapper<TbPermit>().in(TbPermit::getName, query.getCertificateNames())); if(tbPermits.isEmpty()){ return page1; } queryWrapper.in(TbCompany::getId, tbPermits.stream().map(TbPermit::getCompanyId).collect(Collectors.toList())); } queryWrapper.eq(TbCompany::getCityCode,query.getCityCode()); queryWrapper.eq(TbCompany::getAreaCode,query.getAreaCode()); if(query.getCompanyCategorys()!=null && query.getCompanyCategorys().size()>0){ queryWrapper.in(TbCompany::getCompanyCategory, query.getCompanyCategorys()); } if(query.getRegisteredCapitals()!=null && query.getRegisteredCapitals().size()>0){ queryWrapper.in(TbCompany::getRegisteredCapital, query.getRegisteredCapitals()); } if(query.getCompanyIndustryIds()!=null && query.getCompanyIndustryIds().size()>0){ queryWrapper.in(TbCompany::getCompanyIndustryId, query.getCompanyIndustryIds()); } if(query.getTaxpayerTypes()!=null && query.getTaxpayerTypes().size()>0){ queryWrapper.in(TbCompany::getTaxpayerType, query.getTaxpayerTypes()); } if(query.getTaxCredits()!=null && query.getTaxCredits().size()>0){ queryWrapper.in(TbCompany::getTaxCredit, query.getTaxCredits()); } if(query.getHighTechEnterpriseTechnology()!=null){ queryWrapper.eq(TbCompany::getHighTechEnterpriseTechnology, query.getHighTechEnterpriseTechnology()); } if(query.getSocialSecurity()!=null){ queryWrapper.eq(TbCompany::getSocialSecurity, query.getSocialSecurity()); } if(query.getTendering()!=null){ queryWrapper.eq(TbCompany::getTendering, query.getTendering()); } if(query.getHaveTrademark()!=null){ queryWrapper.eq(TbCompany::getHaveTrademark, query.getHaveTrademark()); } if(query.getHavePatent()!=null){ queryWrapper.eq(TbCompany::getHavePatent, query.getHavePatent()); } if(query.getHaveSoftWorks()!=null){ queryWrapper.eq(TbCompany::getHaveSoftWorks, query.getHaveSoftWorks()); } if(query.getMoneySort()!=null && query.getMoneySort()==1){ queryWrapper.orderByDesc(TbCompany::getSaleMoney); }else if(query.getMoneySort()!=null && query.getMoneySort()==2){ queryWrapper.orderByAsc(TbCompany::getSaleMoney); }else { queryWrapper.orderByDesc(TbCompany::getCreateTime); } Page<TbCompany> companyPage = this.baseMapper.selectPage(page, queryWrapper); List<Integer> ids = companyPage.getRecords().stream().map(TbCompany::getCompanyIndustryId).collect(Collectors.toList()); List<TbIndustry> tbIndustries = industryService.list(new LambdaQueryWrapper<TbIndustry>().in(TbIndustry::getId, ids)); ArrayList<IndexCompanyListVo> list = new ArrayList<>(); for (TbCompany record : companyPage.getRecords()) { IndexCompanyListVo indexCompanyListVo = new IndexCompanyListVo(); indexCompanyListVo.setId(record.getId()); indexCompanyListVo.setCompanyName(record.getCompanyName()); TbIndustry tbIndustry = tbIndustries.stream().filter(e -> e.getId().equals(record.getCompanyIndustryId())).findFirst().orElse(null); indexCompanyListVo.setIndustryName(tbIndustry.getName()); indexCompanyListVo.setEstablishTime(record.getEstablishTime()); indexCompanyListVo.setTaxpayerType(record.getTaxpayerType()); indexCompanyListVo.setTaxCredit(record.getTaxCredit()); indexCompanyListVo.setCompanyCategory(record.getCompanyCategory()); indexCompanyListVo.setHighTechEnterpriseTechnology(record.getHighTechEnterpriseTechnology()); indexCompanyListVo.setPaidInFunds(record.getPaidInFunds()); indexCompanyListVo.setRegisteredCapital(record.getRegisteredCapital()); indexCompanyListVo.setSaleMoney(record.getSaleMoney()); if(record.getUserId().equals(userId.toString())){ indexCompanyListVo.setIsMyself(1); } list.add(indexCompanyListVo); } BeanUtils.copyProperties(companyPage,page1); page1.setRecords(list); return page1; } } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbIndustryServiceImpl.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.system.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.system.mapper.TbIndustryMapper; import com.ruoyi.system.model.TbIndustry; import com.ruoyi.system.service.TbIndustryService; import org.springframework.stereotype.Service; /** * <p> * 所属行业 服务实现类 * </p> * * @author administrator * @since 2025-05-26 */ @Service public class TbIndustryServiceImpl extends ServiceImpl<TbIndustryMapper, TbIndustry> implements TbIndustryService { } ruoyi-system/src/main/java/com/ruoyi/system/vo/IndexCompanyListVo.java
New file @@ -0,0 +1,50 @@ package com.ruoyi.system.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; @ApiModel("首页商城公司列表Vo") @Data public class IndexCompanyListVo { @ApiModelProperty("主键id") private String id; @ApiModelProperty("公司名称") private String companyName; @ApiModelProperty("行业名称") private String industryName; @ApiModelProperty("成立时间") private String establishTime; @ApiModelProperty("1一般纳税人 2小规模纳税人 3税务未登记") private Integer taxpayerType; @ApiModelProperty("纳税信用等级") private String taxCredit; @ApiModelProperty("1个体工商户 2有限责任公司 3独资") private Integer companyCategory; @ApiModelProperty("高新技术企业0否1是") private Integer highTechEnterpriseTechnology; @ApiModelProperty("实缴资金") private String paidInFunds; @ApiModelProperty("注册资本") private String registeredCapital; @ApiModelProperty("价格") private BigDecimal saleMoney; @ApiModelProperty("是否自己发布的 1是0否") private Integer isMyself=0; } ruoyi-system/src/main/resources/mapper/system/TbBannerMapper.xml
New file @@ -0,0 +1,19 @@ <?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.ruoyi.system.mapper.TbBannerMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TbBanner"> <id column="id" property="id" /> <result column="position" property="position" /> <result column="name" property="name" /> <result column="jump_type" property="jumpType" /> <result column="content_type" property="contentType" /> <result column="content" property="content" /> <result column="image_url" property="imageUrl" /> <result column="video_url" property="videoUrl" /> <result column="del_flag" property="delFlag" /> <result column="create_time" property="createTime" /> </resultMap> </mapper> ruoyi-system/src/main/resources/mapper/system/TbIndustryMapper.xml
New file @@ -0,0 +1,12 @@ <?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.ruoyi.system.mapper.TbIndustryMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TbIndustry"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="order_num" property="orderNum" /> </resultMap> </mapper>