diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java index 21c38e685..faa8175ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreController.java @@ -4,10 +4,14 @@ import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.web.controller.xkt.vo.store.StoreUpdateVO; -import com.ruoyi.xkt.dto.store.StoreCreateDTO; -import com.ruoyi.xkt.dto.store.StoreUpdateDTO; +import com.ruoyi.web.controller.xkt.vo.store.*; +import com.ruoyi.web.controller.xkt.vo.storeProd.StoreProdPageVO; +import com.ruoyi.web.controller.xkt.vo.storeProd.StoreProdResVO; +import com.ruoyi.xkt.dto.store.*; +import com.ruoyi.xkt.dto.storeProduct.StoreProdPageDTO; +import com.ruoyi.xkt.dto.storeProduct.StoreProdPageResDTO; import com.ruoyi.xkt.service.IStoreService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -22,7 +26,7 @@ import org.springframework.web.bind.annotation.*; * @author ruoyi * @date 2025-03-26 */ -@Api(tags = "档口") +@Api(tags = "档口功能") @RestController @RequiredArgsConstructor @RequestMapping("/rest/v1/stores") @@ -51,5 +55,59 @@ public class StoreController extends XktBaseController { return R.ok(storeService.updateStore(BeanUtil.toBean(storeUpdateVO, StoreUpdateDTO.class))); } + /** + * 查询档口列表 + */ +// @PreAuthorize("@ss.hasPermi('system:store:list')") + @ApiOperation(value = "查询档口列表 ", httpMethod = "POST", response = R.class) + @PostMapping("/page") + public R> page(@Validated @RequestBody StorePageVO pageVO) { + return R.ok(storeService.page(BeanUtil.toBean(pageVO, StorePageDTO.class))); + } + + /** + * 档口启用/停用 + */ +// @PreAuthorize("@ss.hasPermi('system:store:edit')") + @ApiOperation(value = "档口启用/停用", httpMethod = "PUT", response = R.class) + @Log(title = "档口启用/停用", businessType = BusinessType.UPDATE) + @PutMapping("/del-flag") + public R updateDelFlag(@Validated @RequestBody StoreUpdateDelFlagVO updateDelFlagVO) { + return R.ok(storeService.updateDelFlag(BeanUtil.toBean(updateDelFlagVO, StoreUpdateDelFlagDTO.class))); + } + + /** + * 档口审核 + */ +// @PreAuthorize("@ss.hasPermi('system:store:edit')") + @ApiOperation(value = "档口审核", httpMethod = "PUT", response = R.class) + @Log(title = "档口审核", businessType = BusinessType.UPDATE) + @PutMapping("/approve") + public R approve(@Validated @RequestBody StoreAuditVO auditVO) { + return R.ok(storeService.approve(BeanUtil.toBean(auditVO, StoreAuditDTO.class))); + } + + /** + * 获取档口详细信息 + */ +// @PreAuthorize("@ss.hasPermi('system:product:query')") + @ApiOperation(value = "获取档口详细信息", httpMethod = "GET", response = R.class) + @GetMapping(value = "/{storeId}") + public R getInfo(@PathVariable("storeId") Long storeId) { + return R.ok(BeanUtil.toBean(storeService.getInfo(storeId), StoreBasicResVO.class)); + } + + /** + * 档口审核是获取档口基本信息 + */ +// @PreAuthorize("@ss.hasPermi('system:product:query')") + @ApiOperation(value = "档口审核是获取档口基本信息", httpMethod = "GET", response = R.class) + @GetMapping(value = "/approve/{storeId}") + public R getApproveInfo(@PathVariable("storeId") Long storeId) { + return R.ok(BeanUtil.toBean(storeService.getApproveInfo(storeId), StoreApproveResVO.class)); + } + + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java new file mode 100644 index 000000000..7696821c3 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreApproveResVO.java @@ -0,0 +1,22 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import com.ruoyi.web.controller.xkt.vo.storeCertificate.StoreCertResVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口基本信息") +@Data +public class StoreApproveResVO { + + @ApiModelProperty(value = "档口基本信息") + private StoreBasicResVO basic; + @ApiModelProperty(value = "档口认证信息") + private StoreCertResVO certificate; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreAuditVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreAuditVO.java new file mode 100644 index 000000000..15bc6bc82 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreAuditVO.java @@ -0,0 +1,31 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("更改档口基本信息") +@Data +@Accessors(chain = true) +public class StoreAuditVO { + + @ApiModelProperty(value = "档口ID", required = true) + @NotNull(message = "档口ID不能为空") + private Long storeId; + @NotNull(message = "审核状态不能为空") + @ApiModelProperty(value = "审核状态", required = true) + private Boolean approve; + @ApiModelProperty(value = "拒绝理由") + private String rejectReason; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java new file mode 100644 index 000000000..87a9152a4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreBasicResVO.java @@ -0,0 +1,62 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口基本信息") +@Data +public class StoreBasicResVO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口负责人ID") + private Long userId; + @ApiModelProperty(value = "档口负责人ID") + private String userName; + @ApiModelProperty(value = "品牌名称") + private String brandName; + @ApiModelProperty(value = "联系人") + private String contactName; + @ApiModelProperty(value = "联系电话") + private String contactPhone; + @ApiModelProperty(value = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(value = "微信账号") + private String wechatAccount; + @ApiModelProperty(value = "QQ账号") + private String qqAccount; + @ApiModelProperty(value = "支付宝账号") + private String alipayAccount; + @ApiModelProperty(value = "经营年限") + private Integer operateYears; + @ApiModelProperty(value = "档口地址") + private String storeAddress; + @ApiModelProperty(value = "工厂地址") + private String facAddress; + @ApiModelProperty(value = "生产规模") + private Integer prodScale; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @ApiModelProperty(value = "试用截止时间") + private Date trialEndTime; + @ApiModelProperty(value = "已使用文件大小") + private BigDecimal storageUsage; + @ApiModelProperty(value = "档口状态") + private Integer storeStatus; + @ApiModelProperty(value = "拒绝理由") + private String rejectReason; + @ApiModelProperty(value = "档口模板ID") + private Integer templateNum; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StorePageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StorePageVO.java new file mode 100644 index 000000000..1d5032360 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StorePageVO.java @@ -0,0 +1,24 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import com.ruoyi.web.controller.xkt.vo.BasePageVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("档口分页查询入参") +@Data +public class StorePageVO extends BasePageVO { + + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口状态") + private Integer storeStatus; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreUpdateDelFlagVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreUpdateDelFlagVO.java new file mode 100644 index 000000000..d8b0bea9d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/store/StoreUpdateDelFlagVO.java @@ -0,0 +1,27 @@ +package com.ruoyi.web.controller.xkt.vo.store; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("更改档口基本信息") +@Data +@Accessors(chain = true) +public class StoreUpdateDelFlagVO { + + @ApiModelProperty(value = "档口ID", required = true) + @NotNull(message = "档口ID不能为空") + private Long storeId; + @NotNull(message = "启用状态不能为空") + @ApiModelProperty(value = "启用状态", required = true) + private Boolean delFlag; + +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java index d64dff560..b04f860cb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java @@ -1,5 +1,6 @@ package com.ruoyi.common.core.domain.entity; +import com.baomidou.mybatisplus.annotation.TableId; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel.ColumnType; import com.ruoyi.common.annotation.Excel.Type; @@ -27,6 +28,7 @@ public class SysUser extends BaseEntity { * 用户ID */ @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号") + @TableId(value = "user_id") private Long userId; /** diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java index 8c3b4f6d1..caf29d486 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java @@ -1,5 +1,6 @@ package com.ruoyi.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.common.core.domain.entity.SysUser; import org.apache.ibatis.annotations.Param; @@ -10,7 +11,7 @@ import java.util.List; * * @author ruoyi */ -public interface SysUserMapper { +public interface SysUserMapper extends BaseMapper { /** * 根据条件分页查询用户列表 * diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/Store.java b/xkt/src/main/java/com/ruoyi/xkt/domain/Store.java index 8e33d24ec..16153bbf4 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/Store.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/Store.java @@ -133,6 +133,11 @@ public class Store extends XktBaseEntity { @Excel(name = "档口状态") private Integer storeStatus; + /** + * 拒绝理由 + */ + private String rejectReason; + /** * 档口模板ID */ diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java new file mode 100644 index 000000000..a3460699a --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreApproveResDTO.java @@ -0,0 +1,22 @@ +package com.ruoyi.xkt.dto.store; + +import com.ruoyi.xkt.dto.storeCertificate.StoreCertResDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口基本信息") +@Data +public class StoreApproveResDTO { + + @ApiModelProperty(value = "档口基本信息") + private StoreBasicResDTO basic; + @ApiModelProperty(value = "档口认证信息") + private StoreCertResDTO certificate; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreAuditDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreAuditDTO.java new file mode 100644 index 000000000..b3dee0123 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreAuditDTO.java @@ -0,0 +1,27 @@ +package com.ruoyi.xkt.dto.store; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("更改档口基本信息") +@Data +@Accessors(chain = true) +public class StoreAuditDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "审核状态") + private Boolean approve; + @ApiModelProperty(value = "审核信息") + private String rejectReason; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java new file mode 100644 index 000000000..9fdaa1146 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreBasicResDTO.java @@ -0,0 +1,62 @@ +package com.ruoyi.xkt.dto.store; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口基本信息") +@Data +public class StoreBasicResDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口负责人ID") + private Long userId; + @ApiModelProperty(value = "档口负责人ID") + private String userName; + @ApiModelProperty(value = "品牌名称") + private String brandName; + @ApiModelProperty(value = "联系人") + private String contactName; + @ApiModelProperty(value = "联系电话") + private String contactPhone; + @ApiModelProperty(value = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(value = "微信账号") + private String wechatAccount; + @ApiModelProperty(value = "QQ账号") + private String qqAccount; + @ApiModelProperty(value = "支付宝账号") + private String alipayAccount; + @ApiModelProperty(value = "经营年限") + private Integer operateYears; + @ApiModelProperty(value = "档口地址") + private String storeAddress; + @ApiModelProperty(value = "工厂地址") + private String facAddress; + @ApiModelProperty(value = "生产规模") + private Integer prodScale; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @ApiModelProperty(value = "试用截止时间") + private Date trialEndTime; + @ApiModelProperty(value = "已使用文件大小") + private BigDecimal storageUsage; + @ApiModelProperty(value = "档口状态") + private Integer storeStatus; + @ApiModelProperty(value = "拒绝理由") + private String rejectReason; + @ApiModelProperty(value = "档口模板ID") + private Integer templateNum; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageDTO.java new file mode 100644 index 000000000..9e51945e0 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageDTO.java @@ -0,0 +1,24 @@ +package com.ruoyi.xkt.dto.store; + +import com.ruoyi.xkt.dto.BasePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("档口分页查询入参") +@Data +public class StorePageDTO extends BasePageDTO { + + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口状态") + private Integer storeStatus; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageResDTO.java new file mode 100644 index 000000000..e257cb6ae --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StorePageResDTO.java @@ -0,0 +1,31 @@ +package com.ruoyi.xkt.dto.store; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口分页返回数据") +@Data +public class StorePageResDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "档口名称") + private String storeName; + @ApiModelProperty(value = "档口负责人") + private String userName; + @ApiModelProperty(value = "联系电话") + private String contactPhone; + @ApiModelProperty(value = "备选联系电话") + private String contactBackPhone; + @ApiModelProperty(value = "档口状态") + private Integer storeStatus; + @ApiModelProperty(value = "启用状态") + private String delFlag; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreUpdateDelFlagDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreUpdateDelFlagDTO.java new file mode 100644 index 000000000..d0ead67ef --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/store/StoreUpdateDelFlagDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.xkt.dto.store; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("更改档口基本信息") +@Data +@Accessors(chain = true) +public class StoreUpdateDelFlagDTO { + + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "启用状态") + private Boolean delFlag; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java index d471eb084..bf26ee676 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.Store; +import com.ruoyi.xkt.dto.store.StorePageDTO; +import com.ruoyi.xkt.dto.store.StorePageResDTO; import org.springframework.stereotype.Repository; import java.util.List; @@ -61,4 +63,7 @@ public interface StoreMapper extends BaseMapper { * @return 结果 */ public int deleteStoreByStoreIds(Long[] storeIds); + + List selectStorePage(StorePageDTO pageDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java index 9ef923919..280349733 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreService.java @@ -1,7 +1,7 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.dto.store.StoreCreateDTO; -import com.ruoyi.xkt.dto.store.StoreUpdateDTO; +import com.ruoyi.common.core.page.Page; +import com.ruoyi.xkt.dto.store.*; /** * 档口Service接口 @@ -17,7 +17,7 @@ public interface IStoreService { * @param storeUpdateDTO 更新数据入参 * @return int */ - public int updateStore(StoreUpdateDTO storeUpdateDTO); + int updateStore(StoreUpdateDTO storeUpdateDTO); /** * 注册时新增档口信息 @@ -25,6 +25,46 @@ public interface IStoreService { * @param createDTO 新增DTO * @return int */ - public int create(StoreCreateDTO createDTO); + int create(StoreCreateDTO createDTO); + + /** + * 档口分页数据 + * + * @param pageDTO 查询入参 + * @return + */ + Page page(StorePageDTO pageDTO); + + /** + * 更新档口启用/停用状态 + * + * @param delFlagDTO 入参 + * @return + */ + Integer updateDelFlag(StoreUpdateDelFlagDTO delFlagDTO); + + /** + * 审核档口 + * + * @param auditDTO 审核入参 + * @return Integer + */ + Integer approve(StoreAuditDTO auditDTO); + + /** + * 获取档口基本信息 + * + * @param storeId 档口ID + * @return StoreBasicResDTO + */ + StoreBasicResDTO getInfo(Long storeId); + + /** + * 审核时获取档口信息 + * + * @param storeId 档口ID + * @return StoreApproveResDTO + */ + StoreApproveResDTO getApproveInfo(Long storeId); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java index 87e0aa63b..df7a496d7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreServiceImpl.java @@ -2,14 +2,20 @@ package com.ruoyi.xkt.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.page.Page; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.xkt.domain.Store; -import com.ruoyi.xkt.dto.store.StoreCreateDTO; -import com.ruoyi.xkt.dto.store.StoreUpdateDTO; +import com.ruoyi.xkt.dto.store.*; +import com.ruoyi.xkt.dto.storeCertificate.StoreCertResDTO; import com.ruoyi.xkt.enums.StoreStatus; import com.ruoyi.xkt.mapper.StoreMapper; +import com.ruoyi.xkt.service.IStoreCertificateService; import com.ruoyi.xkt.service.IStoreService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -18,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.time.ZoneId; import java.util.Date; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -32,6 +39,8 @@ import java.util.Optional; public class StoreServiceImpl implements IStoreService { final StoreMapper storeMapper; + final IStoreCertificateService storeCertService; + final SysUserMapper userMapper; /** * 注册时新增档口数据 @@ -53,6 +62,102 @@ public class StoreServiceImpl implements IStoreService { return this.storeMapper.insert(store); } + /** + * 档口分页数据 + * + * @param pageDTO 查询入参 + * @return Page + */ + @Override + @Transactional(readOnly = true) + public Page page(StorePageDTO pageDTO) { + PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize()); + List storeList = this.storeMapper.selectStorePage(pageDTO); + return Page.convert(new PageInfo<>(storeList)); + } + + /** + * 更新档口启用/停用状态 + * + * @param delFlagDTO 入参 + * @return Integer + */ + @Override + @Transactional + public Integer updateDelFlag(StoreUpdateDelFlagDTO delFlagDTO) { + Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() + .eq(Store::getId, delFlagDTO.getStoreId()))) + .orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); + store.setDelFlag(delFlagDTO.getDelFlag() ? Constants.UNDELETED : Constants.DELETED); + return storeMapper.updateById(store); + } + + /** + * 审核档口 + * + * @param auditDTO 审核入参 + * @return Integer + */ + @Override + @Transactional + public Integer approve(StoreAuditDTO auditDTO) { + Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() + .eq(Store::getId, auditDTO.getStoreId()).eq(Store::getDelFlag, Constants.UNDELETED))) + .orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); + if (auditDTO.getApprove()) { + // 如果档口状态不为 待审核 或 审核驳回 则报错 + if (!Objects.equals(store.getStoreStatus(), StoreStatus.UN_AUDITED.getValue()) || + !Objects.equals(store.getStoreStatus(), StoreStatus.AUDIT_REJECTED.getValue())) { + throw new ServiceException("当前状态不为待审核 或 审核驳回,不可审核!", HttpStatus.ERROR); + } + store.setStoreStatus(StoreStatus.TRIAL_PERIOD.getValue()); + } else { + store.setStoreStatus(StoreStatus.AUDIT_REJECTED.getValue()); + store.setRejectReason(auditDTO.getRejectReason()); + } + return this.storeMapper.updateById(store); + } + + /** + * 获取档口基本信息 + * + * @param storeId 档口ID + * @return StoreBasicResDTO + */ + @Override + @Transactional(readOnly = true) + public StoreBasicResDTO getInfo(Long storeId) { + Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() + .eq(Store::getId, storeId))).orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); + StoreBasicResDTO resDTO = BeanUtil.toBean(store, StoreBasicResDTO.class); + resDTO.setStoreId(storeId); + + // TODO 用户名称 + // TODO 用户名称 + // TODO 用户名称 + + // 获取档口绑定的用户 + /*SysUser user = Optional.ofNullable(this.userMapper.selectOne(new LambdaQueryWrapper() + .eq(SysUser::getUserId, store.getUserId()))).orElseThrow(() -> new ServiceException("用户不存在!", HttpStatus.ERROR)); + resDTO.setUserName(user.getUserName());*/ + return resDTO; + } + + /** + * 审核时获取档口信息 + * + * @param storeId 档口ID + * @return StoreApproveResDTO + */ + @Override + @Transactional(readOnly = true) + public StoreApproveResDTO getApproveInfo(Long storeId) { + return new StoreApproveResDTO(){{ + setBasic(getInfo(storeId)); + setCertificate(storeCertService.getInfo(storeId)); + }}; + } + /** * 修改档口基本信息 * diff --git a/xkt/src/main/resources/mapper/StoreMapper.xml b/xkt/src/main/resources/mapper/StoreMapper.xml index 225de4382..3e0eae3fb 100644 --- a/xkt/src/main/resources/mapper/StoreMapper.xml +++ b/xkt/src/main/resources/mapper/StoreMapper.xml @@ -172,4 +172,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + + + + + + + \ No newline at end of file