Browse Source

feat(marketing): 新增商户项目管理功能

hechunping 5 tháng trước cách đây
mục cha
commit
a84f4d57c8

+ 62 - 0
src/main/java/com/xynet/marketing/entity/MercProject.java

@@ -0,0 +1,62 @@
+package com.xynet.marketing.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
+import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.time.LocalDateTime;
+
+/**
+ * 商户项目表
+ * @author hechunping
+ * @date 2025/1/20
+ */
+@Data
+@Accessors(chain = true)
+@TableName("marketing_merc_project")
+public class MercProject {
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 商户id
+     */
+    private Integer mercId;
+
+    /**
+     * 项目id
+     */
+    private Integer projectId;
+
+    /**
+     * 状态
+     */
+    private Boolean status = true;
+
+    /**
+     * 版本
+     */
+    private String version;
+
+    /**
+     * 创建时间
+     */
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
+    @JsonSerialize(using = LocalDateTimeSerializer.class)
+    @TableField(fill = FieldFill.UPDATE)
+    private LocalDateTime updateTime;
+
+
+}

+ 13 - 0
src/main/java/com/xynet/marketing/mapper/MercProjectMapper.java

@@ -0,0 +1,13 @@
+package com.xynet.marketing.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xynet.marketing.entity.MercProject;
+
+/**
+ * 服务商API配置-Mapper
+ *
+ * @author hechunping
+ * @date 2025/01/20
+ */
+public interface MercProjectMapper extends BaseMapper<MercProject> {
+}

+ 42 - 0
src/main/java/com/xynet/marketing/service/MercProjectService.java

@@ -0,0 +1,42 @@
+package com.xynet.marketing.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xynet.marketing.utils.collections.map.JMap;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商户项目服务
+ * @author hechunping
+ * @date 2025/1/17
+ */
+public interface MercProjectService {
+    /**
+     * 对象查询
+     * @param param
+     * @return
+     */
+    Map<String,Object> obj(JMap<String,Object> param);
+
+    /**
+     * 新增或修改
+     * @param param
+     * @return
+     */
+    void saveOrUpdate(JMap<String, Object> param);
+
+    /**
+     * 列表查询
+     * @param param
+     * @return
+     */
+    List<Map<String,Object>> list(JMap<String,Object> param);
+
+    /**
+     * 分页查询
+     * @param param
+     * @return
+     */
+    Page<Map<String, Object>> page(JMap<String, Object> param);
+}

+ 63 - 0
src/main/java/com/xynet/marketing/service/impl/MercProjectServiceImpl.java

@@ -0,0 +1,63 @@
+package com.xynet.marketing.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+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.xynet.marketing.entity.MercProject;
+import com.xynet.marketing.mapper.MercProjectMapper;
+import com.xynet.marketing.service.MercProjectService;
+import com.xynet.marketing.utils.Emptys;
+import com.xynet.marketing.utils.collections.map.JHashMap;
+import com.xynet.marketing.utils.collections.map.JMap;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商户项目服务
+ * @author hechunping
+ * @date 2025/1/20
+ */
+@Service
+public class MercProjectServiceImpl extends ServiceImpl<MercProjectMapper, MercProject> implements MercProjectService {
+    private LambdaQueryWrapper<MercProject> commonQueryWrapper(JMap<String,Object> param) {
+        LambdaQueryWrapper<MercProject> lqw = new LambdaQueryWrapper<MercProject>()
+                .eq(Emptys.check(param.getInt("id")), MercProject::getId, param.getInt("id"))
+                ;
+        return lqw;
+    }
+
+    @Override
+    public Map<String, Object> obj(JMap<String, Object> param) {
+        LambdaQueryWrapper<MercProject> lqw = commonQueryWrapper(param).last("limit 1");
+        MercProject obj = getOne(lqw);
+        return JHashMap.copy(obj);
+    }
+
+    @Override
+    public void saveOrUpdate(JMap<String, Object> param) {
+        MercProject save = BeanUtil.copyProperties(param, MercProject.class);
+        if(Emptys.check(save.getId())){
+            updateById(save);
+        }else{
+            save(save);
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> list(JMap<String, Object> param) {
+        LambdaQueryWrapper<MercProject> lqw = commonQueryWrapper(param).orderByAsc(MercProject::getId);
+        List<MercProject> list = list(lqw);
+        return JHashMap.copy(list);
+    }
+
+    @Override
+    public Page<Map<String, Object>> page(JMap<String, Object> param) {
+        LambdaQueryWrapper<MercProject> lqw = commonQueryWrapper(param).orderByAsc(MercProject::getId);
+        Page<MercProject> page = new Page<>(param.getInt("pageCurrent"), param.getInt("pageSize"),true);
+        Page<MercProject> list = page(page, lqw);
+        return JHashMap.copy(list);
+    }
+}