diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index 061f2cba..7e7f78d5 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -364,6 +364,8 @@ public class BmsSupplierController { .collect(Collectors.toList()); BmsSupplier bmsSupplier = new BmsSupplier(); bmsSupplier.setId(param.getSupplierId().toString()); + bmsSupplier.setStopFlagDate(supplier.getStopFlagDate()); + bmsSupplier.setCooperatePauseFlagDate(supplier.getCooperatePauseFlagDate()); bmsSupplier.setOtherUserIds(param.getUserIds()==null?new String[]{}:uids.toArray(new String[uids.size()])); bmsSupplierService.updateById(bmsSupplier); initSupplierOtherInfo(Arrays.asList(supplier.getId())); @@ -433,6 +435,8 @@ public class BmsSupplierController { } BmsSupplier supplier1 = new BmsSupplier(); supplier1.setId(supplier.getId()); + supplier1.setCooperatePauseFlagDate(supplier.getCooperatePauseFlagDate()); + supplier1.setStopFlagDate(supplier.getStopFlagDate()); supplier1.setOtherUserIds(otherUserIds.toArray(new String[otherUserIds.size()])); if(otherUserIds.size()<1){ supplier1.setOtherUserNames(""); @@ -944,6 +948,8 @@ public class BmsSupplierController { param.setOtherUserCodes(""); param.setOtherUserNames(""); } + param.setCooperatePauseFlagDate(supplier.getCooperatePauseFlagDate()); + param.setStopFlagDate(supplier.getStopFlagDate()); updParams.add(param); } } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index 7beb3398..e1e9f9fc 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -161,7 +161,6 @@ public class BmsSupplier implements Serializable { /** 开始户时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") - @TableField(fill = FieldFill.UPDATE) private LocalDateTime openTime; /** 创建时间 */ diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java new file mode 100644 index 00000000..9ab3a9a0 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsFeedbackController.java @@ -0,0 +1,136 @@ +package com.qs.serve.modules.goods.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; +import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo; +import com.qs.serve.modules.sys.service.SysPostUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import com.qs.serve.modules.goods.entity.GoodsFeedback; +import com.qs.serve.modules.goods.service.GoodsFeedbackService; + +import javax.validation.Valid; +import java.util.List; + +/** + * 商品 问题反馈 + * @author YenHex + * @since 2024-10-25 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("goods/feedback") +public class GoodsFeedbackController { + + private GoodsFeedbackService goodsFeedbackService; + private SysPostUserService postUserService; + + /** + * 列表 + * @param param + * @return + */ + //@GetMapping("/list") + public R> getList(GoodsFeedback param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + List list = goodsFeedbackService.list(lqw); + return R.ok(list); + } + + /** + * 翻页(我的) + * @param param + * @return + */ + @GetMapping("/pageMy") + public R> getPageMy(GoodsFeedback param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + lqw.eq(GoodsFeedback::getUserId, AuthContextUtils.getSysUserId()); + List list = goodsFeedbackService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * 翻页(我的和下属的) + * @param param + * @return + */ + @GetMapping("/pageMyAndChild") + public R> getPageMyAndChild(GoodsFeedback param){ + String userId = AuthContextUtils.getSysUserId(); + List userIds = postUserService.listByChildIds(userId); + userIds.add(userId); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + lqw.eq(GoodsFeedback::getUserId, userIds); + List list = goodsFeedbackService.list(lqw); + return R.byPageHelperList(list); + } + + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(GoodsFeedback param){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + PageUtil.startPage(); + List list = goodsFeedbackService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.QUERY) + @PreAuthorize("hasRole('goods:feedback:query')") + public R getById(@PathVariable("id") String id){ + GoodsFeedback goodsFeedback = goodsFeedbackService.getById(id); + return R.ok(goodsFeedback); + } + + /** + * 新增 + * @param param + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.INSERT) + public R save(@RequestBody @Valid GoodsFeedbackBo param){ + goodsFeedbackService.modify(param); + return R.ok(); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.GOODS, title = "问题反馈", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + boolean result = goodsFeedbackService.removeByIds(idsLong); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java b/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java new file mode 100644 index 00000000..b4a3bb4a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/GoodsFeedback.java @@ -0,0 +1,141 @@ +package com.qs.serve.modules.goods.entity; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.NotBlank; + +/** + * 问题反馈 实体类 + * @author YenHex + * @since 2024-10-25 + */ +@Data +@TableName("goods_feedback") +public class GoodsFeedback implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** spuId */ + private Long spuId; + + /** 产品编码 */ + @Length(max = 255,message = "产品编码长度不能超过255字") + private String spuCode; + + /** 产品名称 */ + @Length(max = 255,message = "产品名称长度不能超过255字") + private String spuName; + + /** skuId */ + private Long skuId; + + /** sku编码 */ + @Length(max = 255,message = "sku编码长度不能超过255字") + private String skuCode; + + /** sku名称 */ + @Length(max = 255,message = "sku名称长度不能超过255字") + private String skuName; + + /** 反馈图片 */ + @Length(max = 1024,message = "反馈图片长度不能超过1024字") + private String imgUrls; + + /** 反馈类型 */ + @Length(max = 255,message = "反馈类型长度不能超过255字") + private String feedbackType; + + /** 反馈内容 */ + @Length(max = 255,message = "反馈内容长度不能超过255字") + private String feedbackText; + + /** 反馈人id */ + @Length(max = 64,message = "反馈人id长度不能超过64字") + private String userId; + + /** 反馈人编码 */ + @Length(max = 64,message = "反馈人编码长度不能超过64字") + private String userCode; + + /** 反馈人 */ + @Length(max = 64,message = "反馈人长度不能超过64字") + private String userName; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 最后更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 所属租户 */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 逻辑删除标记(0:显示;1:隐藏) */ + @JsonIgnore + @JsonProperty + private String delFlag; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + + public static GoodsFeedback toNewObject(GoodsFeedback source){ + GoodsFeedback feedback = new GoodsFeedback(); + feedback.setId(source.getId()); + feedback.setSpuId(source.getSpuId()); + feedback.setSpuCode(source.getSpuCode()); + feedback.setSpuName(source.getSpuName()); + feedback.setSkuId(source.getSkuId()); + feedback.setSkuCode(source.getSkuCode()); + feedback.setSkuName(source.getSkuName()); + feedback.setImgUrls(source.getImgUrls()); + feedback.setFeedbackType(source.getFeedbackType()); + feedback.setFeedbackText(source.getFeedbackText()); + feedback.setUserId(source.getUserId()); + feedback.setUserCode(source.getUserCode()); + feedback.setUserName(source.getUserName()); + feedback.setRemark(source.getRemark()); + feedback.setCreateTime(source.getCreateTime()); + feedback.setUpdateTime(source.getUpdateTime()); + feedback.setTenantId(source.getTenantId()); + feedback.setDelFlag(source.getDelFlag()); + feedback.setCreateBy(source.getCreateBy()); + feedback.setUpdateBy(source.getUpdateBy()); + return feedback; + } + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java new file mode 100644 index 00000000..0a7225a9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsFeedbackBo.java @@ -0,0 +1,32 @@ +package com.qs.serve.modules.goods.entity.bo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * @author YenHex + * @since 2024/10/28 + */ +@Data +public class GoodsFeedbackBo { + + /** spuId */ + private Long spuId; + + /** skuId */ + private Long skuId; + + /** 反馈图片 */ + @Length(max = 1024,message = "反馈图片长度不能超过1024字") + private String imgUrls; + + /** 反馈类型 */ + private String feedbackType; + + /** 反馈内容 */ + @Length(max = 255,message = "反馈内容长度不能超过255字") + private String feedbackText; + +} diff --git a/src/main/java/com/qs/serve/modules/goods/mapper/GoodsFeedbackMapper.java b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsFeedbackMapper.java new file mode 100644 index 00000000..a78b6a45 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/mapper/GoodsFeedbackMapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.goods.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.goods.entity.GoodsFeedback; + +/** + * 问题反馈 Mapper + * @author YenHex + * @date 2024-10-25 + */ +public interface GoodsFeedbackMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/service/GoodsFeedbackService.java b/src/main/java/com/qs/serve/modules/goods/service/GoodsFeedbackService.java new file mode 100644 index 00000000..81f34427 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/service/GoodsFeedbackService.java @@ -0,0 +1,21 @@ +package com.qs.serve.modules.goods.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.goods.entity.GoodsFeedback; +import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo; + +/** + * 问题反馈 服务接口 + * @author YenHex + * @date 2024-10-25 + */ +public interface GoodsFeedbackService extends IService { + + /** + * 编辑 + * @param param + */ + void modify(GoodsFeedbackBo param); + +} + diff --git a/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java new file mode 100644 index 00000000..76d867f9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/goods/service/impl/GoodsFeedbackServiceImpl.java @@ -0,0 +1,60 @@ +package com.qs.serve.modules.goods.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.modules.goods.entity.GoodsSku; +import com.qs.serve.modules.goods.entity.GoodsSpu; +import com.qs.serve.modules.goods.entity.bo.GoodsFeedbackBo; +import com.qs.serve.modules.goods.mapper.GoodsSkuMapper; +import com.qs.serve.modules.goods.mapper.GoodsSpuMapper; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysUserMapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import com.qs.serve.modules.goods.entity.GoodsFeedback; +import com.qs.serve.modules.goods.service.GoodsFeedbackService; +import com.qs.serve.modules.goods.mapper.GoodsFeedbackMapper; + +/** + * 问题反馈 服务实现类 + * @author YenHex + * @since 2024-10-25 + */ +@Slf4j +@Service +@AllArgsConstructor +public class GoodsFeedbackServiceImpl extends ServiceImpl implements GoodsFeedbackService { + + private final GoodsSpuMapper goodsSpuMapper; + private final GoodsSkuMapper goodsSkuMapper; + private final SysUserMapper sysUserMapper; + + @Override + public void modify(GoodsFeedbackBo param) { + GoodsFeedback feedback = CopierUtil.copy(param,new GoodsFeedback()); + if(param.getSkuId()!=null){ + GoodsSku goodsSku = goodsSkuMapper.selectById(param.getSkuId()); + GoodsSpu goodsSpu = goodsSpuMapper.selectById(param.getSpuId()); + feedback.setSpuId(goodsSpu.getId()); + feedback.setSpuCode(goodsSpu.getSpuCode()); + feedback.setSpuName(goodsSpu.getName()); + feedback.setSkuId(goodsSku.getId()); + feedback.setSkuCode(goodsSku.getSkuCode()); + feedback.setSkuName(goodsSku.getSkuName()); + }else { + GoodsSpu goodsSpu = goodsSpuMapper.selectById(param.getSpuId()); + feedback.setSpuId(goodsSpu.getId()); + feedback.setSpuCode(goodsSpu.getSpuCode()); + feedback.setSpuName(goodsSpu.getName()); + } + SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId()); + feedback.setUserId(sysUser.getId()); + feedback.setUserCode(sysUser.getCode()); + feedback.setUserName(sysUser.getName()); + super.save(feedback); + } + +} +