diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java new file mode 100644 index 0000000..75332e6 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/Ad.java @@ -0,0 +1,39 @@ +package com.ruoyi.bst.ad.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 广告对象 bst_ad + * + * @author ruoyi + * @date 2025-04-01 + */ +@Data +public class Ad extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + private Long adId; + + @Excel(name = "广告类型 1:活动推广") + @ApiModelProperty("广告类型 1:活动推广") + private String type; + + @Excel(name = "广告图片") + @ApiModelProperty("广告图片") + private String picture; + + @Excel(name = "跳转链接") + @ApiModelProperty("跳转链接") + private String url; + + @Excel(name = "跳转类型,1外链跳转,2站内跳转") + @ApiModelProperty("跳转类型,1外链跳转,2站内跳转") + private String urlType; + +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdQuery.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdQuery.java new file mode 100644 index 0000000..44ec1ad --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdQuery.java @@ -0,0 +1,8 @@ +package com.ruoyi.bst.ad.domain; + +import lombok.Data; + +@Data +public class AdQuery extends Ad{ + +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java new file mode 100644 index 0000000..e0bfabd --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/domain/AdVO.java @@ -0,0 +1,7 @@ +package com.ruoyi.bst.ad.domain; + +import lombok.Data; + +@Data +public class AdVO extends Ad{ +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java new file mode 100644 index 0000000..409132a --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.java @@ -0,0 +1,76 @@ +package com.ruoyi.bst.ad.mapper; + +import java.util.List; +import com.ruoyi.bst.ad.domain.Ad; +import com.ruoyi.bst.ad.domain.AdVO; +import com.ruoyi.bst.ad.domain.AdQuery; +import org.apache.ibatis.annotations.Param; + +/** + * 广告Mapper接口 + * + * @author ruoyi + * @date 2025-04-01 + */ +public interface AdMapper +{ + /** + * 查询广告 + * + * @param adId 广告主键 + * @return 广告 + */ + AdVO selectAdByAdId(Long adId); + + /** + * 查询广告列表 + * + * @param query 广告 + * @return 广告集合 + */ + List selectAdList(@Param("query")AdQuery query); + + /** + * 新增广告 + * + * @param ad 广告 + * @return 结果 + */ + int insertAd(Ad ad); + + /** + * 批量新增广告 + */ + int batchInsert(@Param("list") List list); + + /** + * 批量修改广告 + */ + int batchUpdate(@Param("list") List list); + + /** + * 修改广告 + * + * @param ad 广告 + * @return 结果 + */ + public int updateAd(@Param("data") Ad ad); + + /** + * 删除广告 + * + * @param adId 广告主键 + * @return 结果 + */ + int deleteAdByAdId(Long adId); + + /** + * 批量删除广告 + * + * @param adIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteAdByAdIds(Long[] adIds); + + AdVO selectOne(AdQuery query); +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml new file mode 100644 index 0000000..da74527 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/mapper/AdMapper.xml @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + + + + + + + select + ad_id, + type, + picture, + url, + create_by, + create_time, + update_by, + update_time, + remark, + deleted, + url_type + from bst_ad + + + + and ad_id = #{query.adId} + and type = #{query.type} + and picture = #{query.picture} + and url = #{query.url} + and deleted = #{query.deleted} + and url_type = #{query.urlType} + ${query.params.dataScope} + + + + + + + + + + insert into bst_ad + + type, + picture, + url, + create_by, + create_time, + update_by, + update_time, + remark, + deleted, + url_type, + + + #{type}, + #{picture}, + #{url}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + #{deleted}, + #{urlType}, + + + + + insert into bst_ad + + type, + picture, + url, + create_by, + create_time, + update_by, + update_time, + remark, + deleted, + url_type, + + values + + + #{i.type}, + default, + #{i.picture}, + default, + #{i.url}, + default, + #{i.createBy}, + default, + #{i.createTime}, + default, + #{i.updateBy}, + default, + #{i.updateTime}, + default, + #{i.remark}, + default, + #{i.deleted}, + default, + #{i.urlType}, + default, + + + + + + update bst_ad + + + + + WHEN #{item.ad_id} THEN #{item.type} + + + WHEN #{item.ad_id} THEN `type` + + + + + + + WHEN #{item.ad_id} THEN #{item.picture} + + + WHEN #{item.ad_id} THEN `picture` + + + + + + + WHEN #{item.ad_id} THEN #{item.url} + + + WHEN #{item.ad_id} THEN `url` + + + + + + + WHEN #{item.ad_id} THEN #{item.createBy} + + + WHEN #{item.ad_id} THEN `create_by` + + + + + + + WHEN #{item.ad_id} THEN #{item.createTime} + + + WHEN #{item.ad_id} THEN `create_time` + + + + + + + WHEN #{item.ad_id} THEN #{item.updateBy} + + + WHEN #{item.ad_id} THEN `update_by` + + + + + + + WHEN #{item.ad_id} THEN #{item.updateTime} + + + WHEN #{item.ad_id} THEN `update_time` + + + + + + + WHEN #{item.ad_id} THEN #{item.remark} + + + WHEN #{item.ad_id} THEN `remark` + + + + + + + WHEN #{item.ad_id} THEN #{item.deleted} + + + WHEN #{item.ad_id} THEN `deleted` + + + + + + + WHEN #{item.ad_id} THEN #{item.urlType} + + + WHEN #{item.ad_id} THEN `url_type` + + + + + where ad_id in + + #{item.adId} + + + + + update bst_ad + + + + where ad_id = #{data.adId} + + + + type = #{data.type}, + picture = #{data.picture}, + url = #{data.url}, + create_by = #{data.createBy}, + create_time = #{data.createTime}, + update_by = #{data.updateBy}, + update_time = #{data.updateTime}, + remark = #{data.remark}, + deleted = #{data.deleted}, + url_type = #{data.urlType}, + + + + delete from bst_ad where ad_id = #{adId} + + + + delete from bst_ad where ad_id in + + #{adId} + + + diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java new file mode 100644 index 0000000..c09581d --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/AdService.java @@ -0,0 +1,65 @@ +package com.ruoyi.bst.ad.service; + +import java.util.List; +import com.ruoyi.bst.ad.domain.Ad; +import com.ruoyi.bst.ad.domain.AdVO; +import com.ruoyi.bst.ad.domain.AdQuery; + +/** + * 广告Service接口 + * + * @author ruoyi + * @date 2025-04-01 + */ +public interface AdService +{ + /** + * 查询广告 + * + * @param adId 广告主键 + * @return 广告 + */ + public AdVO selectAdByAdId(Long adId); + + /** + * 查询广告列表 + * + * @param ad 广告 + * @return 广告集合 + */ + public List selectAdList(AdQuery ad); + + /** + * 新增广告 + * + * @param ad 广告 + * @return 结果 + */ + public int insertAd(Ad ad); + + /** + * 修改广告 + * + * @param ad 广告 + * @return 结果 + */ + public int updateAd(Ad ad); + + /** + * 批量删除广告 + * + * @param adIds 需要删除的广告主键集合 + * @return 结果 + */ + public int deleteAdByAdIds(Long[] adIds); + + /** + * 删除广告信息 + * + * @param adId 广告主键 + * @return 结果 + */ + public int deleteAdByAdId(Long adId); + + AdVO selectOne(AdQuery adQuery); +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java new file mode 100644 index 0000000..722c4a0 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/ad/service/impl/AdServiceImpl.java @@ -0,0 +1,103 @@ +package com.ruoyi.bst.ad.service.impl; + +import java.util.List; +import com.ruoyi.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.bst.ad.mapper.AdMapper; +import com.ruoyi.bst.ad.domain.Ad; +import com.ruoyi.bst.ad.domain.AdVO; +import com.ruoyi.bst.ad.domain.AdQuery; +import com.ruoyi.bst.ad.service.AdService; + +/** + * 广告Service业务层处理 + * + * @author ruoyi + * @date 2025-04-01 + */ +@Service +public class AdServiceImpl implements AdService +{ + @Autowired + private AdMapper adMapper; + + /** + * 查询广告 + * + * @param adId 广告主键 + * @return 广告 + */ + @Override + public AdVO selectAdByAdId(Long adId) + { + return adMapper.selectAdByAdId(adId); + } + + /** + * 查询广告列表 + * + * @param ad 广告 + * @return 广告 + */ + @Override + public List selectAdList(AdQuery ad) + { + return adMapper.selectAdList(ad); + } + + /** + * 新增广告 + * + * @param ad 广告 + * @return 结果 + */ + @Override + public int insertAd(Ad ad) + { + ad.setCreateTime(DateUtils.getNowDate()); + return adMapper.insertAd(ad); + } + + /** + * 修改广告 + * + * @param ad 广告 + * @return 结果 + */ + @Override + public int updateAd(Ad ad) + { + ad.setUpdateTime(DateUtils.getNowDate()); + return adMapper.updateAd(ad); + } + + /** + * 批量删除广告 + * + * @param adIds 需要删除的广告主键 + * @return 结果 + */ + @Override + public int deleteAdByAdIds(Long[] adIds) + { + return adMapper.deleteAdByAdIds(adIds); + } + + /** + * 删除广告信息 + * + * @param adId 广告主键 + * @return 结果 + */ + @Override + public int deleteAdByAdId(Long adId) + { + return adMapper.deleteAdByAdId(adId); + } + + @Override + public AdVO selectOne(AdQuery query) { + return adMapper.selectOne(query); + } +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/mapper/FaultMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/mapper/FaultMapper.xml index d25bf27..d1d290b 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/mapper/FaultMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/mapper/FaultMapper.xml @@ -73,6 +73,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" fault_detail, appeal_status, create_time, + order_end_time, user_id, vehicle_num @@ -85,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{faultDetail}, #{appealStatus}, #{createTime}, + #{orderEndTime}, #{userId}, #{vehicleNum} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/FaultConverter.java b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/FaultConverter.java new file mode 100644 index 0000000..b099813 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/FaultConverter.java @@ -0,0 +1,9 @@ +package com.ruoyi.bst.fault.service; + +import com.ruoyi.bst.fault.domain.Fault; +import com.ruoyi.bst.fault.domain.FaultVO; + +public interface FaultConverter { + + Fault toPo(FaultVO fault); +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/AbnormalConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/AbnormalConverterImpl.java new file mode 100644 index 0000000..48045bc --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/fault/service/impl/AbnormalConverterImpl.java @@ -0,0 +1,65 @@ +package com.ruoyi.bst.fault.service.impl; + +import com.ruoyi.bst.device.domain.DeviceVO; +import com.ruoyi.bst.device.service.DeviceService; +import com.ruoyi.bst.fault.domain.Fault; +import com.ruoyi.bst.fault.domain.FaultVO; +import com.ruoyi.bst.fault.domain.enums.FaultStatus; +import com.ruoyi.bst.fault.service.FaultConverter; +import com.ruoyi.bst.fault.service.FaultService; +import com.ruoyi.bst.order.domain.OrderVO; +import com.ruoyi.bst.order.service.OrderService; +import com.ruoyi.common.core.domain.vo.UserVO; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ServiceUtil; +import com.ruoyi.system.user.service.UserService; +import org.checkerframework.checker.units.qual.A; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class AbnormalConverterImpl implements FaultConverter { + + @Autowired + private FaultService faultService; + + @Autowired + private DeviceService deviceService; + + @Autowired + private OrderService orderService; + + @Autowired + private UserService userService; + + @Override + public Fault toPo(FaultVO fault) { + DeviceVO device = deviceService.selectDeviceBySn(fault.getVehicleCode()); + ServiceUtil.assertion(device == null, "设备不存在"); + + Fault po = new Fault(); + po.setFaultSite(fault.getFaultSite()); + po.setVehicleCode(fault.getVehicleCode()); + po.setPicture(fault.getPicture()); + po.setFaultDetail(fault.getFaultDetail()); + po.setCreateBy(fault.getCreateBy()); + po.setAppealStatus(FaultStatus.PENGDING.getCode()); + po.setCreateTime(DateUtils.getNowDate()); + po.setUserName(fault.getCreateBy()); + po.setUserId(fault.getUserId()); + + if (device.getOrderId() != null && fault.getOrderId().equals(device.getOrderId())) { + po.setOrderId(device.getOrderId()); + OrderVO order = orderService.selectOrderById(device.getOrderId()); + if (order.getEndTime() != null) { + po.setOrderEndTime(DateUtils.toDate(order.getEndTime())); + } + } + + String vehicleNum = device.getVehicleNum(); + if (vehicleNum != null) { + po.setVehicleNum(vehicleNum); + } + return po; + } +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/Notice.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/Notice.java index adde689..dccde03 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/Notice.java +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/Notice.java @@ -1,7 +1,10 @@ package com.ruoyi.system.notice.domain; +import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.xss.Xss; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -13,6 +16,7 @@ import javax.validation.constraints.Size; * * @author ruoyi */ +@Data public class Notice extends BaseEntity { private static final long serialVersionUID = 1L; @@ -21,6 +25,9 @@ public class Notice extends BaseEntity private Long noticeId; /** 公告标题 */ + @Xss(message = "公告标题不能包含脚本字符") + @NotBlank(message = "公告标题不能为空") + @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") private String noticeTitle; /** 公告类型(1通知 2公告) */ @@ -32,72 +39,19 @@ public class Notice extends BaseEntity /** 公告状态(0正常 1关闭) */ private String status; - public Long getNoticeId() - { - return noticeId; - } + @Excel(name = "接收方式", readConverterExp = "1=全体用户,2=指定用户") + @ApiModelProperty("接收方式") + private String receiveType; - public void setNoticeId(Long noticeId) - { - this.noticeId = noticeId; - } + @Excel(name = "跳转URL") + @ApiModelProperty("跳转URL") + private String url; - public void setNoticeTitle(String noticeTitle) - { - this.noticeTitle = noticeTitle; - } + @Excel(name = "URL类型", readConverterExp = "1=公告详情,2=小程序内部URL,3=外部URL") + @ApiModelProperty("URL类型") + private String urlType; - @Xss(message = "公告标题不能包含脚本字符") - @NotBlank(message = "公告标题不能为空") - @Size(min = 0, max = 50, message = "公告标题不能超过50个字符") - public String getNoticeTitle() - { - return noticeTitle; - } - - public void setNoticeType(String noticeType) - { - this.noticeType = noticeType; - } - - public String getNoticeType() - { - return noticeType; - } - - public void setNoticeContent(String noticeContent) - { - this.noticeContent = noticeContent; - } - - public String getNoticeContent() - { - return noticeContent; - } - - public void setStatus(String status) - { - this.status = status; - } - - public String getStatus() - { - return status; - } - - @Override - public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("noticeId", getNoticeId()) - .append("noticeTitle", getNoticeTitle()) - .append("noticeType", getNoticeType()) - .append("noticeContent", getNoticeContent()) - .append("status", getStatus()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("remark", getRemark()) - .toString(); - } + @Excel(name = "发送方式", readConverterExp = "1=小程序内部展示,2=短信,3=公众号") + @ApiModelProperty("发送方式") + private String sendType; } diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeQuery.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeQuery.java new file mode 100644 index 0000000..3f9fda8 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeQuery.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.notice.domain; + +import lombok.Data; + +@Data +public class NoticeQuery extends Notice{ +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeVO.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeVO.java new file mode 100644 index 0000000..f5c8de0 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/NoticeVO.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.notice.domain; + +import lombok.Data; + +@Data +public class NoticeVO extends Notice{ +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeStatus.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeStatus.java new file mode 100644 index 0000000..f1ebfb1 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeStatus.java @@ -0,0 +1,15 @@ +package com.ruoyi.system.notice.domain.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum NoticeStatus { + + ENABLED("0", "启用"), + DISABLED("1", "禁用"); + + private final String status; + private final String msg; +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeType.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeType.java new file mode 100644 index 0000000..985b235 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/domain/enums/NoticeType.java @@ -0,0 +1,17 @@ +package com.ruoyi.system.notice.domain.enums; + + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum NoticeType { + + USER("1", "用户公告"), + STORE("2", "商户公告"); + + private final String type; + private final String msg; + +} diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/mapper/NoticeMapper.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/mapper/NoticeMapper.java index f46d525..55950e7 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/notice/mapper/NoticeMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/mapper/NoticeMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.notice.mapper; import com.ruoyi.system.notice.domain.Notice; +import com.ruoyi.system.notice.domain.NoticeQuery; +import com.ruoyi.system.notice.domain.NoticeVO; import java.util.List; @@ -25,7 +27,7 @@ public interface NoticeMapper * @param notice 公告信息 * @return 公告集合 */ - public List selectNoticeList(Notice notice); + public List selectNoticeList(NoticeQuery notice); /** * 新增公告 diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/NoticeService.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/NoticeService.java index fcdeab2..464a245 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/NoticeService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/NoticeService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.notice.service; import com.ruoyi.system.notice.domain.Notice; +import com.ruoyi.system.notice.domain.NoticeQuery; +import com.ruoyi.system.notice.domain.NoticeVO; import java.util.List; @@ -25,7 +27,7 @@ public interface NoticeService * @param notice 公告信息 * @return 公告集合 */ - public List selectNoticeList(Notice notice); + public List selectNoticeList(NoticeQuery notice); /** * 新增公告 @@ -58,4 +60,6 @@ public interface NoticeService * @return 结果 */ public int deleteNoticeByIds(Long[] noticeIds); + + Notice selectOne(NoticeQuery query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/impl/NoticeServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/impl/NoticeServiceImpl.java index 26c4c7a..c12067f 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/impl/NoticeServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/system/notice/service/impl/NoticeServiceImpl.java @@ -1,6 +1,10 @@ package com.ruoyi.system.notice.service.impl; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.system.notice.domain.Notice; +import com.ruoyi.system.notice.domain.NoticeQuery; +import com.ruoyi.system.notice.domain.NoticeVO; import com.ruoyi.system.notice.mapper.NoticeMapper; import com.ruoyi.system.notice.service.NoticeService; import org.springframework.beans.factory.annotation.Autowired; @@ -38,8 +42,7 @@ public class NoticeServiceImpl implements NoticeService * @return 公告集合 */ @Override - public List selectNoticeList(Notice notice) - { + public List selectNoticeList(NoticeQuery notice) { return noticeMapper.selectNoticeList(notice); } @@ -90,4 +93,11 @@ public class NoticeServiceImpl implements NoticeService { return noticeMapper.deleteNoticeByIds(noticeIds); } + + @Override + public Notice selectOne(NoticeQuery query) { + PageHelper.startPage(1, 1); + List notice = this.selectNoticeList(query); + return CollectionUtils.firstElement(notice); + } } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java new file mode 100644 index 0000000..6c0a699 --- /dev/null +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppAdController.java @@ -0,0 +1,28 @@ +package com.ruoyi.web.app; + +import com.ruoyi.bst.ad.domain.AdQuery; +import com.ruoyi.bst.ad.service.AdService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/app/ad") +public class AppAdController extends BaseController { + + @Autowired + private AdService adService; + + @ApiOperation("获取广告") + @GetMapping + public TableDataInfo getAd() { + startPage(); + return getDataTable(adService.selectAdList(new AdQuery())); + } + +} diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppFaultController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppFaultController.java index c0c5167..3cb261a 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppFaultController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppFaultController.java @@ -7,6 +7,7 @@ import com.ruoyi.bst.fault.domain.FaultQuery; import com.ruoyi.bst.fault.domain.FaultVO; import com.ruoyi.bst.fault.domain.enums.FaultHandleStatus; import com.ruoyi.bst.fault.domain.enums.FaultStatus; +import com.ruoyi.bst.fault.service.FaultConverter; import com.ruoyi.bst.fault.service.FaultService; import com.ruoyi.bst.order.domain.OrderVO; import com.ruoyi.bst.order.service.OrderService; @@ -40,56 +41,20 @@ public class AppFaultController extends BaseController { @Autowired private OrderService orderService; + @Autowired + private FaultConverter faultConverter; + /** - * 新增 + * 新增故障申报 * @param fault * @return */ @ApiOperation("故障申报") @PostMapping public AjaxResult add(@RequestBody FaultVO fault) { - DeviceVO device = deviceService.selectDeviceBySn(fault.getVehicleCode()); - - if (device ==null) { - return error("当前车辆不存在"); - } - - if (device.getOrderId() != null) { - OrderVO order = orderService.selectOrderById(device.getOrderId()); - if (order.getEndTime() != null) { - fault.setOrderEndTime(DateUtils.toDate(order.getEndTime())); - } - fault.setOrderId(device.getOrderId()); - } - String vehicleNum = device.getVehicleNum(); - if (vehicleNum != null) { - fault.setVehicleNum(vehicleNum); - } - faultService.insertFault(fault); - return success(); - } - - - /** - * 处理或者驳回申报信息 - * @param fault - * @return - */ - @ApiOperation("处理申报信息") - @PutMapping - public AjaxResult update(@RequestBody Fault fault) { - FaultVO faultVO = faultService.selectFaultById(fault.getId()); - if (faultVO.getAppealStatus().equals(FaultStatus.PENGDING.getCode()) && fault.getHandle().equals(FaultHandleStatus.REJECTED.getCode())) { - faultVO.setAppealStatus(FaultStatus.REJECTED.getCode()); - }else - if (faultVO.getAppealStatus().equals(FaultStatus.PENGDING.getCode()) && fault.getHandle().equals(FaultHandleStatus.DO.getCode())) { - faultVO.setAppealStatus(FaultStatus.REPAIRING.getCode()); - }else - if (faultVO.getAppealStatus().equals(FaultStatus.REPAIRING.getCode()) && fault.getHandle().equals(FaultHandleStatus.DO.getCode())) { - faultVO.setAppealStatus(FaultStatus.COMPLETED.getCode()); - } - faultService.updateFault(faultVO); - return success(); + fault.setUserId(getUserId()); + fault.setCreateBy(getUsername()); + return success(faultService.insertFault(faultConverter.toPo(fault))); } /** diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/app/AppNoticeController.java b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppNoticeController.java new file mode 100644 index 0000000..079555d --- /dev/null +++ b/ruoyi-web/src/main/java/com/ruoyi/web/app/AppNoticeController.java @@ -0,0 +1,42 @@ +package com.ruoyi.web.app; + + +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.annotation.Anonymous; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.notice.domain.NoticeQuery; +import com.ruoyi.system.notice.domain.enums.NoticeStatus; +import com.ruoyi.system.notice.service.NoticeService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +@RequestMapping("/app/notice") +public class AppNoticeController extends BaseController { + + @Autowired + private NoticeService noticeService; + + @ApiOperation("获取最新的公告") + @GetMapping("/new") + @Anonymous + public AjaxResult getNewNotice(NoticeQuery query) { + PageHelper.orderBy("create_time desc"); + query.setStatus(NoticeStatus.ENABLED.getStatus()); + return success(noticeService.selectOne(query)); + } + + @ApiOperation("获取公告详情") + @GetMapping("/{noticeId}") + @Anonymous + public AjaxResult getNotice(@PathVariable Long noticeId) { + return success(noticeService.selectNoticeById(noticeId)); + } + +} diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java new file mode 100644 index 0000000..72d8863 --- /dev/null +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AdController.java @@ -0,0 +1,101 @@ +package com.ruoyi.web.bst; + +import com.ruoyi.bst.ad.domain.Ad; +import com.ruoyi.bst.ad.domain.AdQuery; +import com.ruoyi.bst.ad.domain.AdVO; +import com.ruoyi.bst.ad.service.AdService; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 广告Controller + * + * @author ruoyi + * @date 2025-04-01 + */ +@RestController +@RequestMapping("/bst/ad") +public class AdController extends BaseController +{ + @Autowired + private AdService adService; + + /** + * 查询广告列表 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:list')") + @GetMapping("/list") + public TableDataInfo list(AdQuery query) + { + startPage(); + startOrderBy(); + List list = adService.selectAdList(query); + return getDataTable(list); + } + + /** + * 导出广告列表 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:export')") + @Log(title = "广告", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, AdQuery query) + { + List list = adService.selectAdList(query); + ExcelUtil util = new ExcelUtil(AdVO.class); + util.exportExcel(response, list, "广告数据"); + } + + /** + * 获取广告详细信息 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:query')") + @GetMapping(value = "/{adId}") + public AjaxResult getInfo(@PathVariable("adId") Long adId) + { + return success(adService.selectAdByAdId(adId)); + } + + /** + * 新增广告 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:add')") + @Log(title = "广告", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody Ad ad) + { + return toAjax(adService.insertAd(ad)); + } + + /** + * 修改广告 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:edit')") + @Log(title = "广告", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody Ad ad) + { + return toAjax(adService.updateAd(ad)); + } + + /** + * 删除广告 + */ + @PreAuthorize("@ss.hasPermi('bst:ad:remove')") + @Log(title = "广告", businessType = BusinessType.DELETE) + @DeleteMapping("/{adIds}") + public AjaxResult remove(@PathVariable Long[] adIds) + { + return toAjax(adService.deleteAdByAdIds(adIds)); + } +} diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/FaultController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/FaultController.java index 61aa402..239dcfb 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/FaultController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/FaultController.java @@ -3,6 +3,8 @@ package com.ruoyi.web.bst; import com.ruoyi.bst.fault.domain.Fault; import com.ruoyi.bst.fault.domain.FaultQuery; import com.ruoyi.bst.fault.domain.FaultVO; +import com.ruoyi.bst.fault.domain.enums.FaultHandleStatus; +import com.ruoyi.bst.fault.domain.enums.FaultStatus; import com.ruoyi.bst.fault.service.FaultService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; @@ -10,6 +12,7 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -98,4 +101,31 @@ public class FaultController extends BaseController { return toAjax(faultService.deleteFaultByIds(ids)); } + + + + /** + * 处理或者驳回申报信息 + * @param fault + * @return + */ + @PreAuthorize("@ss.hasPermi('bst:fault:edit')") + @Log(title = "故障", businessType = BusinessType.UPDATE) + @ApiOperation("处理申报信息") + @PutMapping("/handle") + public AjaxResult update(@RequestBody Fault fault) { + FaultVO faultVO = faultService.selectFaultById(fault.getId()); + if (faultVO.getAppealStatus().equals(FaultStatus.PENGDING.getCode()) && fault.getHandle().equals(FaultHandleStatus.REJECTED.getCode())) { + faultVO.setAppealStatus(FaultStatus.REJECTED.getCode()); + }else + if (faultVO.getAppealStatus().equals(FaultStatus.PENGDING.getCode()) && fault.getHandle().equals(FaultHandleStatus.DO.getCode())) { + faultVO.setAppealStatus(FaultStatus.REPAIRING.getCode()); + }else + if (faultVO.getAppealStatus().equals(FaultStatus.REPAIRING.getCode()) && fault.getHandle().equals(FaultHandleStatus.DO.getCode())) { + faultVO.setAppealStatus(FaultStatus.COMPLETED.getCode()); + } + faultService.updateFault(faultVO); + return success(); + } + } diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java index 807faf3..a8976db 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/system/SysNoticeController.java @@ -6,6 +6,8 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.system.notice.domain.Notice; +import com.ruoyi.system.notice.domain.NoticeQuery; +import com.ruoyi.system.notice.domain.NoticeVO; import com.ruoyi.system.notice.service.NoticeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -31,10 +33,10 @@ public class SysNoticeController extends BaseController */ @PreAuthorize("@ss.hasPermi('system:notice:list')") @GetMapping("/list") - public TableDataInfo list(Notice notice) + public TableDataInfo list(NoticeQuery notice) { startPage(); - List list = noticeService.selectNoticeList(notice); + List list = noticeService.selectNoticeList(notice); return getDataTable(list); }