yangyb 1 ay önce
ebeveyn
işleme
ecbfc84fee
34 değiştirilmiş dosya ile 1084 ekleme ve 158 silme
  1. 8 1
      mall-api/src/main/java/com/txz/mall/constants/Constants.java
  2. 82 0
      mall-api/src/main/java/com/txz/mall/dto/SystemDictDataDTO.java
  3. 62 0
      mall-api/src/main/java/com/txz/mall/dto/SystemDictTypeDTO.java
  4. 15 6
      mall-api/src/main/java/com/txz/mall/dto/SystemFormTempDTO.java
  5. 2 2
      mall-api/src/main/java/com/txz/mall/vo/CategoryTreeVO.java
  6. 50 0
      mall-api/src/main/java/com/txz/mall/vo/GroupDataFormCheckVO.java
  7. 31 0
      mall-api/src/main/java/com/txz/mall/vo/GroupDataFormItemCheckVO.java
  8. 27 0
      mall-interface/src/main/java/com/txz/mall/service/SystemDictDataServiceClient.java
  9. 27 0
      mall-interface/src/main/java/com/txz/mall/service/SystemDictTypeServiceClient.java
  10. 1 1
      mall-service/src/main/java/com/txz/mall/configurer/SwaggerConfig.java
  11. 3 3
      mall-service/src/main/java/com/txz/mall/controller/CategoryController.java
  12. 6 6
      mall-service/src/main/java/com/txz/mall/controller/StoreProductRuleController.java
  13. 138 0
      mall-service/src/main/java/com/txz/mall/controller/SystemDictDataController.java
  14. 137 0
      mall-service/src/main/java/com/txz/mall/controller/SystemDictTypeController.java
  15. 81 81
      mall-service/src/main/java/com/txz/mall/controller/SystemFormTempController.java
  16. 6 6
      mall-service/src/main/java/com/txz/mall/controller/SystemGroupController.java
  17. 22 6
      mall-service/src/main/java/com/txz/mall/controller/SystemGroupDataController.java
  18. 7 0
      mall-service/src/main/java/com/txz/mall/dao/SystemDictDataMapper.java
  19. 7 0
      mall-service/src/main/java/com/txz/mall/dao/SystemDictTypeMapper.java
  20. 103 0
      mall-service/src/main/java/com/txz/mall/model/SystemDictData.java
  21. 73 0
      mall-service/src/main/java/com/txz/mall/model/SystemDictType.java
  22. 0 1
      mall-service/src/main/java/com/txz/mall/model/SystemFormTemp.java
  23. 2 2
      mall-service/src/main/java/com/txz/mall/service/CategoryService.java
  24. 12 0
      mall-service/src/main/java/com/txz/mall/service/SystemDictDataService.java
  25. 12 0
      mall-service/src/main/java/com/txz/mall/service/SystemDictTypeService.java
  26. 10 0
      mall-service/src/main/java/com/txz/mall/service/SystemGroupDataService.java
  27. 10 11
      mall-service/src/main/java/com/txz/mall/service/impl/CategoryServiceImpl.java
  28. 22 0
      mall-service/src/main/java/com/txz/mall/service/impl/SystemDictDataServiceImpl.java
  29. 22 0
      mall-service/src/main/java/com/txz/mall/service/impl/SystemDictTypeServiceImpl.java
  30. 13 0
      mall-service/src/main/java/com/txz/mall/service/impl/SystemGroupDataServiceImpl.java
  31. 48 30
      mall-service/src/main/java/com/txz/mall/service/impl/UserSignServiceImpl.java
  32. 24 0
      mall-service/src/main/resources/mapper/SystemDictDataMapper.xml
  33. 19 0
      mall-service/src/main/resources/mapper/SystemDictTypeMapper.xml
  34. 2 2
      mall-service/src/main/resources/mapper/SystemFormTempMapper.xml

+ 8 - 1
mall-api/src/main/java/com/txz/mall/constants/Constants.java

@@ -244,12 +244,13 @@ public class Constants {
 
 
     //group gid
+    public static final Integer GROUP_DATA_ID_SIGN = 1; //签到配置
+
     public static final Integer GROUP_DATA_ID_INDEX_BEST_BANNER = 37; //中部推荐banner图
     public static final Integer GROUP_DATA_ID_INDEX_BANNER = 48; //首页banner滚动图
     public static final Integer GROUP_DATA_ID_INDEX_RECOMMEND_BANNER = 52; //首页精品推荐Banner图片
     public static final Integer GROUP_DATA_ID_ORDER_STATUS_PIC = 53; //订单详情状态图
     public static final Integer GROUP_DATA_ID_USER_CENTER_MENU = 54; //个人中心菜单
-    public static final Integer GROUP_DATA_ID_SIGN = 55; //签到配置
     public static final Integer GROUP_DATA_ID_HOT_SEARCH = 56; //热门搜索
     public static final Integer GROUP_DATA_ID_INDEX_HOT_BANNER = 57; //热门榜单推荐Banner图片
     public static final Integer GROUP_DATA_ID_INDEX_NEW_BANNER = 58; //首发新品推荐Banner图片
@@ -265,12 +266,18 @@ public class Constants {
     public static final Integer GROUP_DATA_ID_ADMIN_LOGIN_BANNER_IMAGE_LIST = 72; //后台登录页面轮播图
     public static final Integer GROUP_DATA_ID_COMBINATION_LIST_BANNNER = 73; //拼团列表banner
 
+    //group_data status
+    public static final Integer GROUP_DATA_STATUS_DISABLE = 0;
+    public static final Integer GROUP_DATA_STATUS_NORMAL = 1;
 
     //签到
     public static final Integer SIGN_TYPE_INTEGRAL = 1; //积分
     public static final Integer SIGN_TYPE_EXPERIENCE = 2; //经验
+    public static final Integer SIGN_TYPE_GOLD = 3;  //金币
     public static final String SIGN_TYPE_INTEGRAL_TITLE = "签到积分奖励"; //积分
     public static final String SIGN_TYPE_EXPERIENCE_TITLE = "签到经验奖励"; //经验
+    public static final String SIGN_TYPE_DAY_TITLE = "day";
+    public static final String SIGN_TYPE_GOLD_TITLE = "gold";
 
 
     //会员搜索日期类型

+ 82 - 0
mall-api/src/main/java/com/txz/mall/dto/SystemDictDataDTO.java

@@ -0,0 +1,82 @@
+/*
+ *
+ * SystemDictDataDTO.java
+ * Copyright(C) 2017-2020 fendo公司
+ * @date 2025-07-14
+ */
+package com.txz.mall.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class SystemDictDataDTO implements Serializable {
+    /**
+     * m_system_dict_data
+     */
+    private static final long serialVersionUID = 1L;
+    /**
+     * 字典编码
+     */
+    private Long dictCode;
+    /**
+     * 字典排序
+     */
+    private Integer dictSort;
+    /**
+     * 字典标签
+     */
+    private String dictLabel;
+    /**
+     * 字典键值
+     */
+    private String dictValue;
+    /**
+     * 字典类型
+     */
+    private String dictType;
+    /**
+     * 样式属性(其他样式扩展)
+     */
+    private String cssClass;
+    /**
+     * 表格回显样式
+     */
+    private String listClass;
+    /**
+     * 是否默认(Y是 N否)
+     */
+    private String isDefault;
+    /**
+     * 状态(0正常 1停用)
+     */
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人id
+     */
+    private Long createUserId;
+    /**
+     * 更新人id
+     */
+    private Long updateUserId;
+    /**
+     * 是否删除
+     */
+    private Integer isDelete;
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 62 - 0
mall-api/src/main/java/com/txz/mall/dto/SystemDictTypeDTO.java

@@ -0,0 +1,62 @@
+/*
+ *
+ * SystemDictTypeDTO.java
+ * Copyright(C) 2017-2020 fendo公司
+ * @date 2025-07-14
+ */
+package com.txz.mall.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class SystemDictTypeDTO implements Serializable {
+    /**
+     * m_system_dict_type
+     */
+    private static final long serialVersionUID = 1L;
+    /**
+     * 字典主键
+     */
+    private Long dictId;
+    /**
+     * 字典名称
+     */
+    private String dictName;
+    /**
+     * 字典类型(唯一值)
+     */
+    private String dictType;
+    /**
+     * 状态(0正常 1停用)
+     */
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 创建人id
+     */
+    private Long createUserId;
+    /**
+     * 更新人id
+     */
+    private Long updateUserId;
+    /**
+     * 是否删除
+     */
+    private Integer isDelete;
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 15 - 6
mall-api/src/main/java/com/txz/mall/dto/SystemFormTempDTO.java

@@ -13,44 +13,53 @@ import java.util.Date;
 
 @Data
 public class SystemFormTempDTO implements Serializable {
-    /**
-     * m_system_form_temp
-     */
-    private static final long serialVersionUID = 1L;
     /**
      * 表单模板id
      */
     private Long id;
+
     /**
      * 表单名称
      */
     private String name;
+
     /**
      * 表单简介
      */
     private String info;
+
     /**
      * 创建时间
      */
     private Date createTime;
+
     /**
      * 更新时间
      */
     private Date updateTime;
+
     /**
      * 创建人id
      */
     private Long createUserId;
+
     /**
      * 更新人id
      */
     private Long updateUserId;
+
     /**
-     * 是否删除
+     * m_system_form_temp
      */
-    private Byte isDelete;
+    private static final long serialVersionUID = 1L;
+
     /**
      * 表单内容
      */
     private String content;
+    /**
+     * 是否删除
+     */
+    private Integer isDelete;
+
 }

+ 2 - 2
mall-api/src/main/java/com/txz/mall/vo/CategoryTreeVo.java → mall-api/src/main/java/com/txz/mall/vo/CategoryTreeVO.java

@@ -9,7 +9,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 @Data
-public class CategoryTreeVo implements Serializable {
+public class CategoryTreeVO implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -40,5 +40,5 @@ public class CategoryTreeVo implements Serializable {
     private Integer sort;
 
     @JsonInclude(JsonInclude.Include.NON_EMPTY) //属性为 空("")[] 或者为 NULL 都不序列化
-    private List<CategoryTreeVo> child = new ArrayList<>();
+    private List<CategoryTreeVO> child = new ArrayList<>();
 }

+ 50 - 0
mall-api/src/main/java/com/txz/mall/vo/GroupDataFormCheckVO.java

@@ -0,0 +1,50 @@
+package com.txz.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 整体保存表单数据
+ * +----------------------------------------------------------------------
+ * | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
+ * +----------------------------------------------------------------------
+ * | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
+ * +----------------------------------------------------------------------
+ * | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
+ * +----------------------------------------------------------------------
+ * | Author: CRMEB Team <admin@crmeb.com>
+ * +----------------------------------------------------------------------
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "SystemFormCheckRequest对象", description = "整体保存表单数据")
+public class GroupDataFormCheckVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "表单名称", required = true)
+    @Min(value = 0, message = "请选择表单")
+    private Integer id;
+
+    @ApiModelProperty(value = "排序", required = true)
+    private Integer sort;
+
+    @ApiModelProperty(value = "状态(1:开启;0:关闭;)")
+    private Boolean status;
+
+    @ApiModelProperty(value = "字段值列表", required = true)
+    @NotEmpty(message = "fields 至少要有一组数据")
+    @Size(min = 1, message = "fields 至少要有一组数据")
+    private List<GroupDataFormItemCheckVO> fields;
+
+}

+ 31 - 0
mall-api/src/main/java/com/txz/mall/vo/GroupDataFormItemCheckVO.java

@@ -0,0 +1,31 @@
+package com.txz.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@ApiModel(value = "GroupDataFormItemCheckVO对象", description = "表单字段明细")
+public class GroupDataFormItemCheckVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "字段名称", required = true)
+    @NotBlank(message = "请设置 GroupDataFormItemCheckVO 对象的 name 属性")
+    private String name;
+
+    @ApiModelProperty(value = "字段值", required = true)
+    private String value;
+
+    @ApiModelProperty(value = "字段显示文字", required = true)
+    private String title;
+
+}

+ 27 - 0
mall-interface/src/main/java/com/txz/mall/service/SystemDictDataServiceClient.java

@@ -0,0 +1,27 @@
+package com.txz.mall.service;
+
+
+import com.txz.mall.dto.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
+
+@FeignClient("mall")
+public interface SystemDictDataServiceClient {
+
+	@RequestMapping( value = {"/system/dict/data/add"}, method = {RequestMethod.POST} )
+    public Result add(@RequestBody SystemDictDataDPO systemDictData,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/data/delete"}, method = {RequestMethod.POST} )
+	public Result delete(@RequestParam("id") Integer id,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/data/update"}, method = {RequestMethod.POST} )
+	public Result update(@RequestBody SystemDictDataDPO systemDictData,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/data/detail"}, method = {RequestMethod.POST} )
+	public Result<SystemDictDataDPO> detail(@RequestParam("id") Integer id,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/data/list"}, method = {RequestMethod.POST} )
+	public Result<List<SystemDictDataDPO>> list(@RequestBody SystemDictDataDPO systemDictData, @RequestParam("page") Integer page, @RequestParam("size") Integer size,@RequestParam("userId") Long userId);
+}

+ 27 - 0
mall-interface/src/main/java/com/txz/mall/service/SystemDictTypeServiceClient.java

@@ -0,0 +1,27 @@
+package com.txz.mall.service;
+
+
+import com.txz.mall.dto.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+import java.util.List;
+
+
+@FeignClient("mall")
+public interface SystemDictTypeServiceClient {
+
+	@RequestMapping( value = {"/system/dict/type/add"}, method = {RequestMethod.POST} )
+    public Result add(@RequestBody SystemDictTypeDPO systemDictType,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/type/delete"}, method = {RequestMethod.POST} )
+	public Result delete(@RequestParam("id") Integer id,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/type/update"}, method = {RequestMethod.POST} )
+	public Result update(@RequestBody SystemDictTypeDPO systemDictType,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/type/detail"}, method = {RequestMethod.POST} )
+	public Result<SystemDictTypeDPO> detail(@RequestParam("id") Integer id,@RequestParam("userId") Long userId);
+
+	@RequestMapping( value = {"/system/dict/type/list"}, method = {RequestMethod.POST} )
+	public Result<List<SystemDictTypeDPO>> list(@RequestBody SystemDictTypeDPO systemDictType, @RequestParam("page") Integer page, @RequestParam("size") Integer size,@RequestParam("userId") Long userId);
+}

+ 1 - 1
mall-service/src/main/java/com/txz/mall/configurer/SwaggerConfig.java

@@ -47,7 +47,7 @@ public class SwaggerConfig {
                 .apiInfo(getApiInfo())
                 .select()
                 //设置basePackage会将包下的所有被@Api标记类的所有方法作为api
-                .apis(RequestHandlerSelectors.basePackage("com.txz.project.web"))
+                .apis(RequestHandlerSelectors.basePackage("com.txz.mall.controller"))
                 //只有标记了@ApiOperation的方法才会暴露出给swagger
                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                 .paths(PathSelectors.regex("/api/.*")).build();

+ 3 - 3
mall-service/src/main/java/com/txz/mall/controller/CategoryController.java

@@ -6,7 +6,7 @@ import com.txz.mall.core.Result;
 import com.txz.mall.core.ResultCode;
 import com.txz.mall.model.Category;
 import com.txz.mall.service.CategoryService;
-import com.txz.mall.vo.CategoryTreeVo;
+import com.txz.mall.vo.CategoryTreeVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -143,10 +143,10 @@ public class CategoryController {
             @ApiImplicitParam(name = "status", value = "-1=全部,0=未生效,1=已生效", example = "1"),
             @ApiImplicitParam(name = "name", value = "模糊搜索", example = "电视")
     })
-    public Result<List<CategoryTreeVo>> getListTree(@RequestParam(name = "type") Integer type,
+    public Result<List<CategoryTreeVO>> getListTree(@RequestParam(name = "type") Integer type,
                                                     @RequestParam(name = "status") Integer status,
                                                     @RequestParam(name = "name", required = false) String name) {
-        List<CategoryTreeVo> listTree = categoryService.getListTree(type, status, name);
+        List<CategoryTreeVO> listTree = categoryService.getListTree(type, status, name);
         return Result.success(listTree);
     }
 

+ 6 - 6
mall-service/src/main/java/com/txz/mall/controller/StoreProductRuleController.java

@@ -20,7 +20,7 @@ import java.util.List;
 /**
  * Created by CodeGenerator on 2025/07/11.
  */
-@Api(tags = "[后台]storeProductRule管理")
+@Api(tags = "[后台]商品管理")
 @RestController
 @RequestMapping("/store/product/rule")
 public class StoreProductRuleController {
@@ -31,7 +31,7 @@ public class StoreProductRuleController {
     private StoreProductRuleService storeProductRuleService;
 
     @PostMapping("/add")
-    @ApiOperation(value = "storeProductRule新增", httpMethod = "POST")
+    @ApiOperation(value = "商品规则新增", httpMethod = "POST")
     public Result add(@RequestBody StoreProductRule storeProductRule, Long userId) {
         if (storeProductRule == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -51,7 +51,7 @@ public class StoreProductRuleController {
     }
 
     @PostMapping("/delete")
-    @ApiOperation(value = "storeProductRule删除", httpMethod = "POST")
+    @ApiOperation(value = "商品规则删除", httpMethod = "POST")
     public Result delete(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -72,7 +72,7 @@ public class StoreProductRuleController {
     }
 
     @PostMapping("/update")
-    @ApiOperation(value = "storeProductRule更新", httpMethod = "POST")
+    @ApiOperation(value = "商品规则更新", httpMethod = "POST")
     public Result update(@RequestBody StoreProductRule storeProductRule, Long userId) {
         if (storeProductRule == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -95,7 +95,7 @@ public class StoreProductRuleController {
     }
 
     @PostMapping("/detail")
-    @ApiOperation(value = "storeProductRule获取详情", httpMethod = "POST")
+    @ApiOperation(value = "商品规则获取详情", httpMethod = "POST")
     public Result<StoreProductRule> detail(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -114,7 +114,7 @@ public class StoreProductRuleController {
     }
 
     @PostMapping("/list")
-    @ApiOperation(value = "storeProductRule获取列表", httpMethod = "POST")
+    @ApiOperation(value = "商品规则获取列表", httpMethod = "POST")
     public Result<List<StoreProductRule>> list(@RequestBody StoreProductRule storeProductRule, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
         if (userId == null) {
             return Result.fail(ResultCode.USERID_IS_NULL);

+ 138 - 0
mall-service/src/main/java/com/txz/mall/controller/SystemDictDataController.java

@@ -0,0 +1,138 @@
+package com.txz.mall.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.txz.mall.core.Result;
+import com.txz.mall.core.ResultCode;
+import com.txz.mall.model.SystemDictData;
+import com.txz.mall.service.SystemDictDataService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+import tk.mybatis.mapper.entity.Condition;
+import tk.mybatis.mapper.entity.Example.Criteria;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+@Api(tags = "[后台]字典数据管理")
+@RestController
+@RequestMapping("/system/dict/data")
+public class SystemDictDataController {
+
+    private static Logger log = LoggerFactory.getLogger(SystemDictDataController.class);
+
+    @Resource
+    private SystemDictDataService systemDictDataService;
+
+    @PostMapping("/add")
+    @ApiOperation(value = "字典数据新增", httpMethod = "POST")
+    public Result add(@RequestBody SystemDictData systemDictData, Long userId) {
+        if (systemDictData == null) {
+            return Result.fail(ResultCode.OBJECT_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            systemDictData.setCreateTime(new Date());
+            systemDictData.setCreateUserId(userId);
+            systemDictDataService.save(systemDictData);
+        } catch (Exception e) {
+            log.error("新增对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/delete")
+    @ApiOperation(value = "字典数据删除", httpMethod = "POST")
+    public Result delete(@RequestParam Long id, Long userId) {
+        if (id == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            SystemDictData systemDictData = new SystemDictData();
+            systemDictData.setDictCode(id);
+            systemDictData.setIsDelete(1);
+            systemDictDataService.update(systemDictData);
+        } catch (Exception e) {
+            log.error("删除对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation(value = "字典数据更新", httpMethod = "POST")
+    public Result update(@RequestBody SystemDictData systemDictData, Long userId) {
+        if (systemDictData == null) {
+            return Result.fail(ResultCode.OBJECT_IS_NULL);
+        }
+        if (systemDictData.getDictCode() == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            systemDictData.setUpdateTime(new Date());
+            systemDictData.setUpdateUserId(userId);
+            systemDictDataService.update(systemDictData);
+        } catch (Exception e) {
+            log.error("更新对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/detail")
+    @ApiOperation(value = "字典数据获取详情", httpMethod = "POST")
+    public Result<SystemDictData> detail(@RequestParam Long id, Long userId) {
+        if (id == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        SystemDictData systemDictData = null;
+        try {
+            systemDictData = systemDictDataService.findById(id);
+        } catch (Exception e) {
+            log.error("查询对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success(systemDictData);
+    }
+
+    @PostMapping("/list")
+    @ApiOperation(value = "字典数据获取列表", httpMethod = "POST")
+    public Result<List<SystemDictData>> list(@RequestBody SystemDictData systemDictData, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        PageHelper.startPage(page, size);
+
+        Condition condition = new Condition(systemDictData.getClass());
+        Criteria criteria = condition.createCriteria();
+        criteria.andEqualTo("dictType", systemDictData.getDictType());
+        PageInfo pageInfo = null;
+        try {
+            List<SystemDictData> list = systemDictDataService.findByCondition(condition);
+            pageInfo = new PageInfo(list);
+        } catch (Exception e) {
+            log.error("查询对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success(pageInfo);
+    }
+}

+ 137 - 0
mall-service/src/main/java/com/txz/mall/controller/SystemDictTypeController.java

@@ -0,0 +1,137 @@
+package com.txz.mall.controller;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.txz.mall.core.Result;
+import com.txz.mall.core.ResultCode;
+import com.txz.mall.model.SystemDictType;
+import com.txz.mall.service.SystemDictTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.*;
+import tk.mybatis.mapper.entity.Condition;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+@Api(tags = "[后台]字典类型管理")
+@RestController
+@RequestMapping("/system/dict/type")
+public class SystemDictTypeController {
+
+    private static Logger log = LoggerFactory.getLogger(SystemDictTypeController.class);
+
+    @Resource
+    private SystemDictTypeService systemDictTypeService;
+
+    @PostMapping("/add")
+    @ApiOperation(value = "字典类型新增", httpMethod = "POST")
+    public Result add(@RequestBody SystemDictType systemDictType, Long userId) {
+        if (systemDictType == null) {
+            return Result.fail(ResultCode.OBJECT_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            systemDictType.setCreateTime(new Date());
+            systemDictType.setCreateUserId(userId);
+            systemDictTypeService.save(systemDictType);
+        } catch (Exception e) {
+            log.error("新增对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/delete")
+    @ApiOperation(value = "字典类型删除", httpMethod = "POST")
+    public Result delete(@RequestParam Long id, Long userId) {
+        if (id == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            SystemDictType systemDictType = new SystemDictType();
+            systemDictType.setDictId(id);
+            systemDictType.setIsDelete(1);
+            systemDictTypeService.update(systemDictType);
+        } catch (Exception e) {
+            log.error("删除对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation(value = "字典类型更新", httpMethod = "POST")
+    public Result update(@RequestBody SystemDictType systemDictType, Long userId) {
+        if (systemDictType == null) {
+            return Result.fail(ResultCode.OBJECT_IS_NULL);
+        }
+        if (systemDictType.getDictId() == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        try {
+            systemDictType.setUpdateTime(new Date());
+            systemDictType.setUpdateUserId(userId);
+            systemDictTypeService.update(systemDictType);
+        } catch (Exception e) {
+            log.error("更新对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success();
+    }
+
+    @PostMapping("/detail")
+    @ApiOperation(value = "字典类型获取详情", httpMethod = "POST")
+    public Result<SystemDictType> detail(@RequestParam Long id, Long userId) {
+        if (id == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        SystemDictType systemDictType = null;
+        try {
+            systemDictType = systemDictTypeService.findById(id);
+        } catch (Exception e) {
+            log.error("查询对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success(systemDictType);
+    }
+
+    @PostMapping("/list")
+    @ApiOperation(value = "字典类型获取列表", httpMethod = "POST")
+    public Result<List<SystemDictType>> list(@RequestBody SystemDictType systemDictType, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
+        if (userId == null) {
+            return Result.fail(ResultCode.USERID_IS_NULL);
+        }
+        PageHelper.startPage(page, size);
+
+        Condition condition = new Condition(systemDictType.getClass());
+//        Criteria criteria = condition.createCriteria();
+//        criteria.andEqualTo("name", city.getName());
+        PageInfo pageInfo = null;
+        try {
+            List<SystemDictType> list = systemDictTypeService.findByCondition(condition);
+            pageInfo = new PageInfo(list);
+        } catch (Exception e) {
+            log.error("查询对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success(pageInfo);
+    }
+}

+ 81 - 81
mall-service/src/main/java/com/txz/mall/controller/SystemFormTempController.java

@@ -20,118 +20,118 @@ import java.util.List;
 /**
  * Created by CodeGenerator on 2025/07/11.
  */
-@Api(tags = "[后台]systemFormTemp管理")
+@Api(tags = "[后台]表单管理")
 @RestController
 @RequestMapping("/system/form/temp")
 public class SystemFormTempController {
 
-    private static Logger log = LoggerFactory.getLogger(SystemFormTempController.class);
+	private static Logger log = LoggerFactory.getLogger(SystemFormTempController.class);
 
     @Resource
     private SystemFormTempService systemFormTempService;
 
     @PostMapping("/add")
-    @ApiOperation(value = "systemFormTemp新增", httpMethod = "POST")
-    public Result add(@RequestBody SystemFormTemp systemFormTemp, Long userId) {
-        if (systemFormTemp == null) {
-            return Result.fail(ResultCode.OBJECT_IS_NULL);
-        }
-        if (userId == null) {
-            return Result.fail(ResultCode.USERID_IS_NULL);
-        }
-        try {
-            systemFormTemp.setCreateTime(new Date());
-            systemFormTemp.setCreateUserId(userId);
-            systemFormTempService.save(systemFormTemp);
-        } catch (Exception e) {
-            log.error("新增对象操作异常e:{}", e);
-            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
-        }
+	@ApiOperation(value = "表单新增", httpMethod = "POST")
+	public Result add(@RequestBody SystemFormTemp systemFormTemp, Long userId) {
+		if (systemFormTemp == null) {
+			return Result.fail(ResultCode.OBJECT_IS_NULL);
+		}
+		if (userId == null) {
+			return Result.fail(ResultCode.USERID_IS_NULL);
+		}
+		try {
+			systemFormTemp.setCreateTime(new Date());
+			systemFormTemp.setCreateUserId(userId);
+			systemFormTempService.save(systemFormTemp);
+		} catch (Exception e) {
+			log.error("新增对象操作异常e:{}", e);
+			return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+		}
         return Result.success();
     }
 
     @PostMapping("/delete")
-    @ApiOperation(value = "systemFormTemp删除", httpMethod = "POST")
-    public Result delete(@RequestParam Long id, Long userId) {
-        if (id == null) {
-            return Result.fail(ResultCode.ID_IS_NULL);
-        }
-        if (userId == null) {
-            return Result.fail(ResultCode.USERID_IS_NULL);
-        }
-        try {
+	@ApiOperation(value = "表单删除", httpMethod = "POST")
+	public Result delete(@RequestParam Long id, Long userId) {
+		if (id == null) {
+			return Result.fail(ResultCode.ID_IS_NULL);
+		}
+		if (userId == null) {
+			return Result.fail(ResultCode.USERID_IS_NULL);
+		}
+		try {
             SystemFormTemp systemFormTemp = new SystemFormTemp();
-            systemFormTemp.setId(id);
-            systemFormTemp.setIsDelete(1);
-            systemFormTempService.update(systemFormTemp);
-        } catch (Exception e) {
-            log.error("删除对象操作异常e:{}", e);
-            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
-        }
+			systemFormTemp.setId(id);
+			systemFormTemp.setIsDelete(1);
+			systemFormTempService.update(systemFormTemp);
+		} catch (Exception e) {
+			log.error("删除对象操作异常e:{}", e);
+			return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+		}
         return Result.success();
     }
 
     @PostMapping("/update")
-    @ApiOperation(value = "systemFormTemp更新", httpMethod = "POST")
-    public Result update(@RequestBody SystemFormTemp systemFormTemp, Long userId) {
-        if (systemFormTemp == null) {
-            return Result.fail(ResultCode.OBJECT_IS_NULL);
-        }
-        if (systemFormTemp.getId() == null) {
-            return Result.fail(ResultCode.ID_IS_NULL);
-        }
-        if (userId == null) {
-            return Result.fail(ResultCode.USERID_IS_NULL);
-        }
-        try {
-            systemFormTemp.setUpdateTime(new Date());
-            systemFormTemp.setUpdateUserId(userId);
-            systemFormTempService.update(systemFormTemp);
-        } catch (Exception e) {
-            log.error("更新对象操作异常e:{}", e);
-            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
-        }
+	@ApiOperation(value = "表单更新", httpMethod = "POST")
+	public Result update(@RequestBody SystemFormTemp systemFormTemp, Long userId) {
+		if (systemFormTemp == null) {
+			return Result.fail(ResultCode.OBJECT_IS_NULL);
+		}
+		if (systemFormTemp.getId() == null) {
+			return Result.fail(ResultCode.ID_IS_NULL);
+		}
+		if (userId == null) {
+			return Result.fail(ResultCode.USERID_IS_NULL);
+		}
+		try {
+			systemFormTemp.setUpdateTime(new Date());
+			systemFormTemp.setUpdateUserId(userId);
+			systemFormTempService.update(systemFormTemp);
+		} catch (Exception e) {
+			log.error("更新对象操作异常e:{}", e);
+			return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+		}
         return Result.success();
     }
 
     @PostMapping("/detail")
-    @ApiOperation(value = "systemFormTemp获取详情", httpMethod = "POST")
-    public Result<SystemFormTemp> detail(@RequestParam Long id, Long userId) {
-        if (id == null) {
-            return Result.fail(ResultCode.ID_IS_NULL);
-        }
-        if (userId == null) {
-            return Result.fail(ResultCode.USERID_IS_NULL);
-        }
-        SystemFormTemp systemFormTemp = null;
-        try {
-            systemFormTemp = systemFormTempService.findById(id);
-        } catch (Exception e) {
-            log.error("查询对象操作异常e:{}", e);
-            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
-        }
+	@ApiOperation(value = "表单获取详情", httpMethod = "POST")
+	public Result<SystemFormTemp> detail(@RequestParam Long id, Long userId) {
+		if (id == null) {
+			return Result.fail(ResultCode.ID_IS_NULL);
+		}
+		if (userId == null) {
+			return Result.fail(ResultCode.USERID_IS_NULL);
+		}
+		SystemFormTemp systemFormTemp = null;
+		try {
+			systemFormTemp = systemFormTempService.findById(id);
+		} catch (Exception e) {
+			log.error("查询对象操作异常e:{}", e);
+			return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+		}
         return Result.success(systemFormTemp);
     }
 
     @PostMapping("/list")
-    @ApiOperation(value = "systemFormTemp获取列表", httpMethod = "POST")
-    public Result<List<SystemFormTemp>> list(@RequestBody SystemFormTemp systemFormTemp, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
-        if (userId == null) {
-            return Result.fail(ResultCode.USERID_IS_NULL);
-        }
+	@ApiOperation(value = "表单获取列表", httpMethod = "POST")
+	public Result<List<SystemFormTemp>> list(@RequestBody SystemFormTemp systemFormTemp, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
+		if (userId == null) {
+			return Result.fail(ResultCode.USERID_IS_NULL);
+		}
         PageHelper.startPage(page, size);
 
         Condition condition = new Condition(systemFormTemp.getClass());
 //        Criteria criteria = condition.createCriteria();
 //        criteria.andEqualTo("name", city.getName());
-        PageInfo pageInfo = null;
-        try {
-            List<SystemFormTemp> list = systemFormTempService.findByCondition(condition);
-            pageInfo = new PageInfo(list);
-        } catch (Exception e) {
-            log.error("查询对象操作异常e:{}", e);
-            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
-        }
+		PageInfo pageInfo = null;
+		try {
+			List<SystemFormTemp> list = systemFormTempService.findByCondition(condition);
+			pageInfo = new PageInfo(list);
+		} catch (Exception e) {
+			log.error("查询对象操作异常e:{}", e);
+			return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+		}
         return Result.success(pageInfo);
     }
 }

+ 6 - 6
mall-service/src/main/java/com/txz/mall/controller/SystemGroupController.java

@@ -20,7 +20,7 @@ import java.util.List;
 /**
  * Created by CodeGenerator on 2025/07/11.
  */
-@Api(tags = "[后台]systemGroup管理")
+@Api(tags = "[后台]配置表管理")
 @RestController
 @RequestMapping("/system/group")
 public class SystemGroupController {
@@ -31,7 +31,7 @@ public class SystemGroupController {
     private SystemGroupService systemGroupService;
 
     @PostMapping("/add")
-    @ApiOperation(value = "systemGroup新增", httpMethod = "POST")
+    @ApiOperation(value = "配置表新增", httpMethod = "POST")
     public Result add(@RequestBody SystemGroup systemGroup, Long userId) {
         if (systemGroup == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -51,7 +51,7 @@ public class SystemGroupController {
     }
 
     @PostMapping("/delete")
-    @ApiOperation(value = "systemGroup删除", httpMethod = "POST")
+    @ApiOperation(value = "配置表删除", httpMethod = "POST")
     public Result delete(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -72,7 +72,7 @@ public class SystemGroupController {
     }
 
     @PostMapping("/update")
-    @ApiOperation(value = "systemGroup更新", httpMethod = "POST")
+    @ApiOperation(value = "配置表更新", httpMethod = "POST")
     public Result update(@RequestBody SystemGroup systemGroup, Long userId) {
         if (systemGroup == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -95,7 +95,7 @@ public class SystemGroupController {
     }
 
     @PostMapping("/detail")
-    @ApiOperation(value = "systemGroup获取详情", httpMethod = "POST")
+    @ApiOperation(value = "配置表获取详情", httpMethod = "POST")
     public Result<SystemGroup> detail(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -114,7 +114,7 @@ public class SystemGroupController {
     }
 
     @PostMapping("/list")
-    @ApiOperation(value = "systemGroup获取列表", httpMethod = "POST")
+    @ApiOperation(value = "配置表获取列表", httpMethod = "POST")
     public Result<List<SystemGroup>> list(@RequestBody SystemGroup systemGroup, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
         if (userId == null) {
             return Result.fail(ResultCode.USERID_IS_NULL);

+ 22 - 6
mall-service/src/main/java/com/txz/mall/controller/SystemGroupDataController.java

@@ -20,7 +20,7 @@ import java.util.List;
 /**
  * Created by CodeGenerator on 2025/07/11.
  */
-@Api(tags = "[后台]systemGroupData管理")
+@Api(tags = "[后台]配置详情表管理")
 @RestController
 @RequestMapping("/system/group/data")
 public class SystemGroupDataController {
@@ -31,7 +31,7 @@ public class SystemGroupDataController {
     private SystemGroupDataService systemGroupDataService;
 
     @PostMapping("/add")
-    @ApiOperation(value = "systemGroupData新增", httpMethod = "POST")
+    @ApiOperation(value = "配置详情表新增", httpMethod = "POST")
     public Result add(@RequestBody SystemGroupData systemGroupData, Long userId) {
         if (systemGroupData == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -51,7 +51,7 @@ public class SystemGroupDataController {
     }
 
     @PostMapping("/delete")
-    @ApiOperation(value = "systemGroupData删除", httpMethod = "POST")
+    @ApiOperation(value = "配置详情表删除", httpMethod = "POST")
     public Result delete(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -72,7 +72,7 @@ public class SystemGroupDataController {
     }
 
     @PostMapping("/update")
-    @ApiOperation(value = "systemGroupData更新", httpMethod = "POST")
+    @ApiOperation(value = "配置详情表更新", httpMethod = "POST")
     public Result update(@RequestBody SystemGroupData systemGroupData, Long userId) {
         if (systemGroupData == null) {
             return Result.fail(ResultCode.OBJECT_IS_NULL);
@@ -95,7 +95,7 @@ public class SystemGroupDataController {
     }
 
     @PostMapping("/detail")
-    @ApiOperation(value = "systemGroupData获取详情", httpMethod = "POST")
+    @ApiOperation(value = "配置详情表获取详情", httpMethod = "POST")
     public Result<SystemGroupData> detail(@RequestParam Long id, Long userId) {
         if (id == null) {
             return Result.fail(ResultCode.ID_IS_NULL);
@@ -114,7 +114,7 @@ public class SystemGroupDataController {
     }
 
     @PostMapping("/list")
-    @ApiOperation(value = "systemGroupData获取列表", httpMethod = "POST")
+    @ApiOperation(value = "配置详情表获取列表")
     public Result<List<SystemGroupData>> list(@RequestBody SystemGroupData systemGroupData, @RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size, Long userId) {
         if (userId == null) {
             return Result.fail(ResultCode.USERID_IS_NULL);
@@ -134,4 +134,20 @@ public class SystemGroupDataController {
         }
         return Result.success(pageInfo);
     }
+
+    @PostMapping("/configDetail")
+    @ApiOperation(value = "根据groupId获取配置详情")
+    public Result<List<SystemGroupData>> configDetail(@RequestParam Long groupId, Integer status) {
+        if (groupId == null) {
+            return Result.fail(ResultCode.ID_IS_NULL);
+        }
+        List<SystemGroupData> systemGroupData = null;
+        try {
+            systemGroupData = systemGroupDataService.configDetail(groupId, status);
+        } catch (Exception e) {
+            log.error("查询对象操作异常e:{}", e);
+            return Result.fail(ResultCode.INTERNAL_SERVER_ERROR);
+        }
+        return Result.success(systemGroupData);
+    }
 }

+ 7 - 0
mall-service/src/main/java/com/txz/mall/dao/SystemDictDataMapper.java

@@ -0,0 +1,7 @@
+package com.txz.mall.dao;
+
+import com.txz.mall.core.Mapper;
+import com.txz.mall.model.SystemDictData;
+
+public interface SystemDictDataMapper extends Mapper<SystemDictData> {
+}

+ 7 - 0
mall-service/src/main/java/com/txz/mall/dao/SystemDictTypeMapper.java

@@ -0,0 +1,7 @@
+package com.txz.mall.dao;
+
+import com.txz.mall.core.Mapper;
+import com.txz.mall.model.SystemDictType;
+
+public interface SystemDictTypeMapper extends Mapper<SystemDictType> {
+}

+ 103 - 0
mall-service/src/main/java/com/txz/mall/model/SystemDictData.java

@@ -0,0 +1,103 @@
+package com.txz.mall.model;
+
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+@Data
+@Table(name = "m_system_dict_data")
+public class SystemDictData {
+    /**
+     * 字典编码
+     */
+    @Id
+    @Column(name = "dict_code")
+    private Long dictCode;
+
+    /**
+     * 字典排序
+     */
+    @Column(name = "dict_sort")
+    private Integer dictSort;
+
+    /**
+     * 字典标签
+     */
+    @Column(name = "dict_label")
+    private String dictLabel;
+
+    /**
+     * 字典键值
+     */
+    @Column(name = "dict_value")
+    private String dictValue;
+
+    /**
+     * 字典类型
+     */
+    @Column(name = "dict_type")
+    private String dictType;
+
+    /**
+     * 样式属性(其他样式扩展)
+     */
+    @Column(name = "css_class")
+    private String cssClass;
+
+    /**
+     * 表格回显样式
+     */
+    @Column(name = "list_class")
+    private String listClass;
+
+    /**
+     * 是否默认(Y是 N否)
+     */
+    @Column(name = "is_default")
+    private String isDefault;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @Column(name = "create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @Column(name = "update_time")
+    private Date updateTime;
+
+    /**
+     * 创建人id
+     */
+    @Column(name = "create_user_id")
+    private Long createUserId;
+
+    /**
+     * 更新人id
+     */
+    @Column(name = "update_user_id")
+    private Long updateUserId;
+
+    /**
+     * 是否删除
+     */
+    @Column(name = "is_delete")
+    private Integer isDelete;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 73 - 0
mall-service/src/main/java/com/txz/mall/model/SystemDictType.java

@@ -0,0 +1,73 @@
+package com.txz.mall.model;
+
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+@Data
+@Table(name = "m_system_dict_type")
+public class SystemDictType {
+    /**
+     * 字典主键
+     */
+    @Id
+    @Column(name = "dict_id")
+    private Long dictId;
+
+    /**
+     * 字典名称
+     */
+    @Column(name = "dict_name")
+    private String dictName;
+
+    /**
+     * 字典类型(唯一值)
+     */
+    @Column(name = "dict_type")
+    private String dictType;
+
+    /**
+     * 状态(0正常 1停用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @Column(name = "create_time")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @Column(name = "update_time")
+    private Date updateTime;
+
+    /**
+     * 创建人id
+     */
+    @Column(name = "create_user_id")
+    private Long createUserId;
+
+    /**
+     * 更新人id
+     */
+    @Column(name = "update_user_id")
+    private Long updateUserId;
+
+    /**
+     * 是否删除
+     */
+    @Column(name = "is_delete")
+    private Integer isDelete;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 0 - 1
mall-service/src/main/java/com/txz/mall/model/SystemFormTemp.java

@@ -60,5 +60,4 @@ public class SystemFormTemp {
      */
     private String content;
 
-
 }

+ 2 - 2
mall-service/src/main/java/com/txz/mall/service/CategoryService.java

@@ -2,7 +2,7 @@ package com.txz.mall.service;
 
 import com.txz.mall.core.Service;
 import com.txz.mall.model.Category;
-import com.txz.mall.vo.CategoryTreeVo;
+import com.txz.mall.vo.CategoryTreeVO;
 
 import java.util.List;
 
@@ -20,7 +20,7 @@ public interface CategoryService extends Service<Category> {
      * @param name   名称
      * @return 树结构
      */
-    List<CategoryTreeVo> getListTree(Integer type, Integer status, String name);
+    List<CategoryTreeVO> getListTree(Integer type, Integer status, String name);
 
     /**
      * 更新状态

+ 12 - 0
mall-service/src/main/java/com/txz/mall/service/SystemDictDataService.java

@@ -0,0 +1,12 @@
+package com.txz.mall.service;
+
+import com.txz.mall.core.Service;
+import com.txz.mall.model.SystemDictData;
+
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+public interface SystemDictDataService extends Service<SystemDictData> {
+
+}

+ 12 - 0
mall-service/src/main/java/com/txz/mall/service/SystemDictTypeService.java

@@ -0,0 +1,12 @@
+package com.txz.mall.service;
+
+import com.txz.mall.core.Service;
+import com.txz.mall.model.SystemDictType;
+
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+public interface SystemDictTypeService extends Service<SystemDictType> {
+
+}

+ 10 - 0
mall-service/src/main/java/com/txz/mall/service/SystemGroupDataService.java

@@ -3,10 +3,20 @@ package com.txz.mall.service;
 import com.txz.mall.core.Service;
 import com.txz.mall.model.SystemGroupData;
 
+import java.util.List;
+
 
 /**
  * Created by CodeGenerator on 2025/07/11.
  */
 public interface SystemGroupDataService extends Service<SystemGroupData> {
 
+    /**
+     * 获取配置详情
+     *
+     * @param groupId 配置组id
+     * @param status  状态
+     * @return 配置详情
+     */
+    List<SystemGroupData> configDetail(Long groupId, Integer status);
 }

+ 10 - 11
mall-service/src/main/java/com/txz/mall/service/impl/CategoryServiceImpl.java

@@ -1,7 +1,6 @@
 package com.txz.mall.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.txz.mall.core.AbstractService;
@@ -9,7 +8,7 @@ import com.txz.mall.core.ServiceException;
 import com.txz.mall.dao.CategoryMapper;
 import com.txz.mall.model.Category;
 import com.txz.mall.service.CategoryService;
-import com.txz.mall.vo.CategoryTreeVo;
+import com.txz.mall.vo.CategoryTreeVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -31,7 +30,7 @@ public class CategoryServiceImpl extends AbstractService<Category> implements Ca
     private CategoryMapper categoryMapper;
 
     @Override
-    public List<CategoryTreeVo> getListTree(Integer type, Integer status, String name) {
+    public List<CategoryTreeVO> getListTree(Integer type, Integer status, String name) {
         return getTree(type, status, name, null);
     }
 
@@ -72,9 +71,9 @@ public class CategoryServiceImpl extends AbstractService<Category> implements Ca
         return list.size();
     }
 
-    private List<CategoryTreeVo> getTree(Integer type, Integer status, String name, List<Integer> categoryIdList) {
+    private List<CategoryTreeVO> getTree(Integer type, Integer status, String name, List<Integer> categoryIdList) {
         //循环数据,把数据对象变成带list结构的vo
-        List<CategoryTreeVo> treeList = new ArrayList<>();
+        List<CategoryTreeVO> treeList = new ArrayList<>();
         Condition condition = new Condition(Category.class);
         Example.Criteria criteria = condition.createCriteria();
         criteria.andEqualTo("type", type);
@@ -118,22 +117,22 @@ public class CategoryServiceImpl extends AbstractService<Category> implements Ca
         }
 
         for (Category category : allTree) {
-            CategoryTreeVo categoryTreeVo = new CategoryTreeVo();
+            CategoryTreeVO categoryTreeVo = new CategoryTreeVO();
             BeanUtils.copyProperties(category, categoryTreeVo);
             treeList.add(categoryTreeVo);
         }
 
         //返回
-        Map<Long, CategoryTreeVo> map = new HashMap<>();
+        Map<Long, CategoryTreeVO> map = new HashMap<>();
         //ID 为 key 存储到map 中
-        for (CategoryTreeVo categoryTreeVo1 : treeList) {
+        for (CategoryTreeVO categoryTreeVo1 : treeList) {
             map.put(categoryTreeVo1.getId(), categoryTreeVo1);
         }
 
-        List<CategoryTreeVo> list = new ArrayList<>();
-        for (CategoryTreeVo tree : treeList) {
+        List<CategoryTreeVO> list = new ArrayList<>();
+        for (CategoryTreeVO tree : treeList) {
             //子集ID返回对象,有则添加。
-            CategoryTreeVo tree1 = map.get(tree.getPid());
+            CategoryTreeVO tree1 = map.get(tree.getPid());
             if (tree1 != null) {
                 tree1.getChild().add(tree);
             } else {

+ 22 - 0
mall-service/src/main/java/com/txz/mall/service/impl/SystemDictDataServiceImpl.java

@@ -0,0 +1,22 @@
+package com.txz.mall.service.impl;
+
+import com.txz.mall.core.AbstractService;
+import com.txz.mall.dao.SystemDictDataMapper;
+import com.txz.mall.model.SystemDictData;
+import com.txz.mall.service.SystemDictDataService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+@Service
+@Transactional
+public class SystemDictDataServiceImpl extends AbstractService<SystemDictData> implements SystemDictDataService {
+    @Resource
+    private SystemDictDataMapper mSystemDictDataMapper;
+
+}

+ 22 - 0
mall-service/src/main/java/com/txz/mall/service/impl/SystemDictTypeServiceImpl.java

@@ -0,0 +1,22 @@
+package com.txz.mall.service.impl;
+
+import com.txz.mall.core.AbstractService;
+import com.txz.mall.dao.SystemDictTypeMapper;
+import com.txz.mall.model.SystemDictType;
+import com.txz.mall.service.SystemDictTypeService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+
+/**
+ * Created by CodeGenerator on 2025/07/14.
+ */
+@Service
+@Transactional
+public class SystemDictTypeServiceImpl extends AbstractService<SystemDictType> implements SystemDictTypeService {
+    @Resource
+    private SystemDictTypeMapper mSystemDictTypeMapper;
+
+}

+ 13 - 0
mall-service/src/main/java/com/txz/mall/service/impl/SystemGroupDataServiceImpl.java

@@ -6,8 +6,11 @@ import com.txz.mall.model.SystemGroupData;
 import com.txz.mall.service.SystemGroupDataService;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Condition;
+import tk.mybatis.mapper.entity.Example;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 
 /**
@@ -19,4 +22,14 @@ public class SystemGroupDataServiceImpl extends AbstractService<SystemGroupData>
     @Resource
     private SystemGroupDataMapper systemGroupDataMapper;
 
+    @Override
+    public List<SystemGroupData> configDetail(Long groupId, Integer status) {
+        Condition condition = new Condition(SystemGroupData.class);
+        Example.Criteria criteria = condition.createCriteria();
+        criteria.andEqualTo("gid", groupId);
+        if (status != null) {
+            criteria.andEqualTo("status", status);
+        }
+        return this.findByCondition(condition);
+    }
 }

+ 48 - 30
mall-service/src/main/java/com/txz/mall/service/impl/UserSignServiceImpl.java

@@ -1,9 +1,17 @@
 package com.txz.mall.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.txz.mall.constants.Constants;
 import com.txz.mall.core.AbstractService;
+import com.txz.mall.core.ServiceException;
 import com.txz.mall.dao.UserSignMapper;
+import com.txz.mall.model.SystemGroupData;
 import com.txz.mall.model.UserSign;
+import com.txz.mall.service.SystemGroupDataService;
 import com.txz.mall.service.UserSignService;
+import com.txz.mall.vo.GroupDataFormCheckVO;
+import com.txz.mall.vo.GroupDataFormItemCheckVO;
+import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -12,10 +20,8 @@ import tk.mybatis.mapper.entity.Example;
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -27,6 +33,8 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
     private static final long USER_ID = 1;
     @Resource
     private UserSignMapper userSignMapper;
+    @Resource
+    private SystemGroupDataService systemGroupDataService;
 
     @Override
     public HashMap<String, Object> todayDetail() {
@@ -38,6 +46,21 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
         // 3. 查询用户的连续签到天数
         int continuousDays = getContinuousDays(USER_ID);
         map.put("continuous", continuousDays);
+
+        ArrayList<GroupDataFormItemCheckVO> list = new ArrayList<>();
+        List<SystemGroupData> systemGroupData = groupData();
+        for (SystemGroupData groupData : systemGroupData) {
+            if (StringUtils.isNotBlank(groupData.getValue())) {
+                List<GroupDataFormItemCheckVO> fields = com.alibaba.fastjson.JSONObject.parseObject(groupData.getValue(), GroupDataFormCheckVO.class).getFields();
+                GroupDataFormItemCheckVO vo = new GroupDataFormItemCheckVO();
+                List<String> dayCollect = fields.stream().filter(field -> field.getName().equals(Constants.SIGN_TYPE_DAY_TITLE)).map(GroupDataFormItemCheckVO::getValue).collect(Collectors.toList());
+                Integer gold = fields.stream().filter(field -> field.getName().equals(Constants.SIGN_TYPE_GOLD_TITLE)).map(GroupDataFormItemCheckVO::getValue).map(Integer::valueOf).reduce(0, Integer::sum);
+                vo.setName(dayCollect.get(0));
+                vo.setValue(gold.toString());
+                list.add(vo);
+            }
+        }
+        map.put("fields", list);
         return map;
     }
 
@@ -51,7 +74,7 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
 
         // 3. 获取昨天的签到记录,判断是否连续签到
         UserSign yesterdaySign = getYesterdaySign(USER_ID);
-        int continuousDays = 1; // 默认为1(首次签到或断签后重新开始)
+        int continuousDays = 1;
 
         if (yesterdaySign != null && isContinuous(yesterdaySign.getCreateDay())) {
             continuousDays = yesterdaySign.getContinuousDays() + 1;
@@ -62,6 +85,8 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
 
         //  满7天重置为0
         if (continuousDays == 8) {
+            //注意  是满7天才发放奖励  每日签到不送
+            giveReward(continuousDays);
             continuousDays = 0;
         }
 
@@ -71,9 +96,6 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
         userSign.setCreateDay(new Date());
         userSign.setContinuousDays(continuousDays);
         userSignMapper.insert(userSign);
-
-        // 6. 根据连续签到天数发放奖励
-        giveReward(continuousDays);
     }
 
     // 判断今天是否已经签到
@@ -127,31 +149,27 @@ public class UserSignServiceImpl extends AbstractService<UserSign> implements Us
     // 根据连续签到天数发放奖励
     private void giveReward(int continuousDays) {
         int reward = 0;
-        switch (continuousDays) {
-            case 1:
-                reward = 5;
-                break;
-            case 2:
-                reward = 7;
-                break;
-            case 3:
-                reward = 10;
-                break;
-            case 4:
-                reward = 15;
-                break;
-            case 5:
-                reward = 20;
-                break;
-            case 6:
-                reward = 25;
-                break;
-            case 7:
-                reward = 30;
-                break;
+        List<SystemGroupData> systemGroupData = groupData();
+        for (SystemGroupData groupData : systemGroupData) {
+            if (StringUtils.isNotBlank(groupData.getValue())) {
+                List<GroupDataFormItemCheckVO> fields = com.alibaba.fastjson.JSONObject.parseObject(groupData.getValue(), GroupDataFormCheckVO.class).getFields();
+                reward += fields.stream().filter(field -> field.getName().equals(Constants.SIGN_TYPE_GOLD_TITLE)).map(GroupDataFormItemCheckVO::getValue).map(Integer::valueOf).reduce(0, Integer::sum);
+            }
         }
 
+        // todo 发到个人用户
     }
 
+    private List<SystemGroupData> groupData() {
+        List<SystemGroupData> systemGroupData = systemGroupDataService.configDetail(Constants.GROUP_DATA_ID_SIGN.longValue(), Constants.GROUP_DATA_STATUS_NORMAL);
+        if (CollectionUtils.isEmpty(systemGroupData)) {
+            throw new ServiceException("系统配置异常");
+        }
+        systemGroupData = systemGroupData.stream().filter(d -> StringUtils.isNotBlank(d.getValue())).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(systemGroupData)) {
+            throw new ServiceException("配置内容为空");
+        }
+        return systemGroupData;
+    }
 
 }

+ 24 - 0
mall-service/src/main/resources/mapper/SystemDictDataMapper.xml

@@ -0,0 +1,24 @@
+<?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.txz.mall.dao.SystemDictDataMapper">
+    <resultMap id="BaseResultMap" type="com.txz.mall.model.SystemDictData">
+        <!--
+          WARNING - @mbg.generated
+        -->
+        <id column="dict_code" jdbcType="BIGINT" property="dictCode"/>
+        <result column="dict_sort" jdbcType="INTEGER" property="dictSort"/>
+        <result column="dict_label" jdbcType="VARCHAR" property="dictLabel"/>
+        <result column="dict_value" jdbcType="VARCHAR" property="dictValue"/>
+        <result column="dict_type" jdbcType="VARCHAR" property="dictType"/>
+        <result column="css_class" jdbcType="VARCHAR" property="cssClass"/>
+        <result column="list_class" jdbcType="VARCHAR" property="listClass"/>
+        <result column="is_default" jdbcType="VARCHAR" property="isDefault"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="create_user_id" jdbcType="BIGINT" property="createUserId"/>
+        <result column="update_user_id" jdbcType="BIGINT" property="updateUserId"/>
+        <result column="is_delete" jdbcType="INTEGER" property="isDelete"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+    </resultMap>
+</mapper>

+ 19 - 0
mall-service/src/main/resources/mapper/SystemDictTypeMapper.xml

@@ -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.txz.mall.dao.SystemDictTypeMapper">
+    <resultMap id="BaseResultMap" type="com.txz.mall.model.SystemDictType">
+        <!--
+          WARNING - @mbg.generated
+        -->
+        <id column="dict_id" jdbcType="BIGINT" property="dictId"/>
+        <result column="dict_name" jdbcType="VARCHAR" property="dictName"/>
+        <result column="dict_type" jdbcType="VARCHAR" property="dictType"/>
+        <result column="status" jdbcType="INTEGER" property="status"/>
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
+        <result column="create_user_id" jdbcType="BIGINT" property="createUserId"/>
+        <result column="update_user_id" jdbcType="BIGINT" property="updateUserId"/>
+        <result column="is_delete" jdbcType="INTEGER" property="isDelete"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+    </resultMap>
+</mapper>

+ 2 - 2
mall-service/src/main/resources/mapper/SystemFormTempMapper.xml

@@ -12,7 +12,7 @@
         <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
         <result column="create_user_id" jdbcType="BIGINT" property="createUserId"/>
         <result column="update_user_id" jdbcType="BIGINT" property="updateUserId"/>
-        <result column="is_delete" jdbcType="INTEGER" property="isDelete"/>
-        <result column="content" jdbcType="VARCHAR" property="content"/>
+        <result column="is_delete" jdbcType="TINYINT" property="isDelete"/>
+        <result column="content" jdbcType="LONGVARCHAR" property="content"/>
     </resultMap>
 </mapper>