3 Commits f4a98078ee ... 8e02731a32

Author SHA1 Message Date
  joesonshaw 8e02731a32 同步 3 years ago
  joesonshaw 842422dd73 配置可访问 3 years ago
  joesonshaw e809405ef0 添加用户列表 3 years ago

+ 1 - 1
ruoyi-admin/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>
-    <artifactId>ruoyi-admin</artifactId>
+    <artifactId>chick-game</artifactId>
 
     <description>
         web服务入口

+ 1 - 1
ruoyi-admin/src/main/resources/application-druid.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://rm-bp1cbq48ara8ex3309o.mysql.rds.aliyuncs.com:3306/sport-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://rm-bp1cbq48ara8ex3309o.mysql.rds.aliyuncs.com:3306/sport-game?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
                 username: yuedong
                 password: Yuedong2020
             # 从库数据源

+ 3 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -9,7 +9,7 @@ ruoyi:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: D:/ruoyi/uploadPath
+  profile: /usr/jars/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数组计算 char 字符验证
@@ -18,7 +18,7 @@ ruoyi:
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为8080
-  port: 8080
+  port: 8088
   servlet:
     # 应用的访问路径
     context-path: /
@@ -60,6 +60,7 @@ spring:
   redis:
     # 地址
     host: 47.114.141.166
+#    host: 172.16.21.119
     # 端口,默认为6379
     port: 6379
     # 数据库索引

+ 103 - 0
ruoyi-system/src/main/java/com/ruoyi/system/controller/AdminUserController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.system.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.AdminUser;
+import com.ruoyi.system.service.IAdminUserService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 用户列表Controller
+ * 
+ * @author xiaoji
+ * @date 2021-07-01
+ */
+@RestController
+@RequestMapping("/system/GameUserList")
+public class AdminUserController extends BaseController
+{
+    @Autowired
+    private IAdminUserService adminUserService;
+
+    /**
+     * 查询用户列表列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(AdminUser adminUser)
+    {
+        startPage();
+        List<AdminUser> list = adminUserService.selectAdminUserList(adminUser);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用户列表列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:export')")
+    @Log(title = "用户列表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(AdminUser adminUser)
+    {
+        List<AdminUser> list = adminUserService.selectAdminUserList(adminUser);
+        ExcelUtil<AdminUser> util = new ExcelUtil<AdminUser>(AdminUser.class);
+        return util.exportExcel(list, "GameUserList");
+    }
+
+    /**
+     * 获取用户列表详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(adminUserService.selectAdminUserById(id));
+    }
+
+    /**
+     * 新增用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:add')")
+    @Log(title = "用户列表", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody AdminUser adminUser)
+    {
+        return toAjax(adminUserService.insertAdminUser(adminUser));
+    }
+
+    /**
+     * 修改用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:edit')")
+    @Log(title = "用户列表", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody AdminUser adminUser)
+    {
+        return toAjax(adminUserService.updateAdminUser(adminUser));
+    }
+
+    /**
+     * 删除用户列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameUserList:remove')")
+    @Log(title = "用户列表", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(adminUserService.deleteAdminUserByIds(ids));
+    }
+}

+ 103 - 0
ruoyi-system/src/main/java/com/ruoyi/system/controller/MallGoodsController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.system.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.system.domain.MallGoods;
+import com.ruoyi.system.service.IMallGoodsService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 商品列表Controller
+ * 
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@RestController
+@RequestMapping("/system/GameMallGoods")
+public class MallGoodsController extends BaseController
+{
+    @Autowired
+    private IMallGoodsService mallGoodsService;
+
+    /**
+     * 查询商品列表列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(MallGoods mallGoods)
+    {
+        startPage();
+        List<MallGoods> list = mallGoodsService.selectMallGoodsList(mallGoods);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出商品列表列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:export')")
+    @Log(title = "商品列表", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(MallGoods mallGoods)
+    {
+        List<MallGoods> list = mallGoodsService.selectMallGoodsList(mallGoods);
+        ExcelUtil<MallGoods> util = new ExcelUtil<MallGoods>(MallGoods.class);
+        return util.exportExcel(list, "GameMallGoods");
+    }
+
+    /**
+     * 获取商品列表详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Integer id)
+    {
+        return AjaxResult.success(mallGoodsService.selectMallGoodsById(id));
+    }
+
+    /**
+     * 新增商品列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:add')")
+    @Log(title = "商品列表", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody MallGoods mallGoods)
+    {
+        return toAjax(mallGoodsService.insertMallGoods(mallGoods));
+    }
+
+    /**
+     * 修改商品列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:edit')")
+    @Log(title = "商品列表", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody MallGoods mallGoods)
+    {
+        return toAjax(mallGoodsService.updateMallGoods(mallGoods));
+    }
+
+    /**
+     * 删除商品列表
+     */
+    @PreAuthorize("@ss.hasPermi('system:GameMallGoods:remove')")
+    @Log(title = "商品列表", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Integer[] ids)
+    {
+        return toAjax(mallGoodsService.deleteMallGoodsByIds(ids));
+    }
+}

+ 139 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/AdminUser.java

@@ -0,0 +1,139 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 用户列表对象 admin_user
+ * 
+ * @author xiaoji
+ * @date 2021-07-01
+ */
+public class AdminUser extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 租户id */
+    @Excel(name = "租户id")
+    private String appId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private String userId;
+
+    /** 头像 */
+    @Excel(name = "头像")
+    private String avatar;
+
+    /** 用户名 */
+    @Excel(name = "用户名")
+    private String username;
+
+    /** 密码 */
+    @Excel(name = "密码")
+    private String password;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdAt;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedAt;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setAppId(String appId) 
+    {
+        this.appId = appId;
+    }
+
+    public String getAppId() 
+    {
+        return appId;
+    }
+    public void setUserId(String userId) 
+    {
+        this.userId = userId;
+    }
+
+    public String getUserId() 
+    {
+        return userId;
+    }
+    public void setAvatar(String avatar) 
+    {
+        this.avatar = avatar;
+    }
+
+    public String getAvatar() 
+    {
+        return avatar;
+    }
+    public void setUsername(String username) 
+    {
+        this.username = username;
+    }
+
+    public String getUsername() 
+    {
+        return username;
+    }
+    public void setPassword(String password) 
+    {
+        this.password = password;
+    }
+
+    public String getPassword() 
+    {
+        return password;
+    }
+    public void setCreatedAt(Date createdAt) 
+    {
+        this.createdAt = createdAt;
+    }
+
+    public Date getCreatedAt() 
+    {
+        return createdAt;
+    }
+    public void setUpdatedAt(Date updatedAt) 
+    {
+        this.updatedAt = updatedAt;
+    }
+
+    public Date getUpdatedAt() 
+    {
+        return updatedAt;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("appId", getAppId())
+            .append("userId", getUserId())
+            .append("avatar", getAvatar())
+            .append("username", getUsername())
+            .append("password", getPassword())
+            .append("createdAt", getCreatedAt())
+            .append("updatedAt", getUpdatedAt())
+            .toString();
+    }
+}

+ 209 - 0
ruoyi-system/src/main/java/com/ruoyi/system/domain/MallGoods.java

@@ -0,0 +1,209 @@
+package com.ruoyi.system.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 商品列表对象 mall_goods
+ * 
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+public class MallGoods extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Integer id;
+
+    /** 租户Id */
+    @Excel(name = "租户Id")
+    private String appId;
+
+    /** 商品id */
+    @Excel(name = "商品id")
+    private String goodsId;
+
+    /** 商品封面 */
+    @Excel(name = "商品封面")
+    private String cover;
+
+    /** 商品名称 */
+    @Excel(name = "商品名称")
+    private String name;
+
+    /** 所需积分数 */
+    @Excel(name = "所需积分数")
+    private Long needPoint;
+
+    /** 真实库存数 */
+    @Excel(name = "真实库存数")
+    private Long realStockNum;
+
+    /** 虚拟库存数 */
+    @Excel(name = "虚拟库存数")
+    private Long virtualStockNum;
+
+    /** 已兑换数 */
+    @Excel(name = "已兑换数")
+    private Long exchangeNum;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Integer status;
+
+    /** 是否删除 */
+    @Excel(name = "是否删除")
+    private Integer isDelete;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdAt;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date updatedAt;
+
+    public void setId(Integer id) 
+    {
+        this.id = id;
+    }
+
+    public Integer getId() 
+    {
+        return id;
+    }
+    public void setAppId(String appId) 
+    {
+        this.appId = appId;
+    }
+
+    public String getAppId() 
+    {
+        return appId;
+    }
+    public void setGoodsId(String goodsId) 
+    {
+        this.goodsId = goodsId;
+    }
+
+    public String getGoodsId() 
+    {
+        return goodsId;
+    }
+    public void setCover(String cover) 
+    {
+        this.cover = cover;
+    }
+
+    public String getCover() 
+    {
+        return cover;
+    }
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+    public void setNeedPoint(Long needPoint) 
+    {
+        this.needPoint = needPoint;
+    }
+
+    public Long getNeedPoint() 
+    {
+        return needPoint;
+    }
+    public void setRealStockNum(Long realStockNum) 
+    {
+        this.realStockNum = realStockNum;
+    }
+
+    public Long getRealStockNum() 
+    {
+        return realStockNum;
+    }
+    public void setVirtualStockNum(Long virtualStockNum) 
+    {
+        this.virtualStockNum = virtualStockNum;
+    }
+
+    public Long getVirtualStockNum() 
+    {
+        return virtualStockNum;
+    }
+    public void setExchangeNum(Long exchangeNum) 
+    {
+        this.exchangeNum = exchangeNum;
+    }
+
+    public Long getExchangeNum() 
+    {
+        return exchangeNum;
+    }
+    public void setStatus(Integer status) 
+    {
+        this.status = status;
+    }
+
+    public Integer getStatus() 
+    {
+        return status;
+    }
+    public void setIsDelete(Integer isDelete) 
+    {
+        this.isDelete = isDelete;
+    }
+
+    public Integer getIsDelete() 
+    {
+        return isDelete;
+    }
+    public void setCreatedAt(Date createdAt) 
+    {
+        this.createdAt = createdAt;
+    }
+
+    public Date getCreatedAt() 
+    {
+        return createdAt;
+    }
+    public void setUpdatedAt(Date updatedAt) 
+    {
+        this.updatedAt = updatedAt;
+    }
+
+    public Date getUpdatedAt() 
+    {
+        return updatedAt;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("appId", getAppId())
+            .append("goodsId", getGoodsId())
+            .append("cover", getCover())
+            .append("name", getName())
+            .append("needPoint", getNeedPoint())
+            .append("realStockNum", getRealStockNum())
+            .append("virtualStockNum", getVirtualStockNum())
+            .append("exchangeNum", getExchangeNum())
+            .append("status", getStatus())
+            .append("isDelete", getIsDelete())
+            .append("createdAt", getCreatedAt())
+            .append("updatedAt", getUpdatedAt())
+            .toString();
+    }
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/AdminUserMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.AdminUser;
+
+/**
+ * 用户列表Mapper接口
+ * 
+ * @author xiaoji
+ * @date 2021-07-01
+ */
+public interface AdminUserMapper 
+{
+    /**
+     * 查询用户列表
+     * 
+     * @param id 用户列表ID
+     * @return 用户列表
+     */
+    public AdminUser selectAdminUserById(Long id);
+
+    /**
+     * 查询用户列表列表
+     * 
+     * @param adminUser 用户列表
+     * @return 用户列表集合
+     */
+    public List<AdminUser> selectAdminUserList(AdminUser adminUser);
+
+    /**
+     * 新增用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    public int insertAdminUser(AdminUser adminUser);
+
+    /**
+     * 修改用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    public int updateAdminUser(AdminUser adminUser);
+
+    /**
+     * 删除用户列表
+     * 
+     * @param id 用户列表ID
+     * @return 结果
+     */
+    public int deleteAdminUserById(Long id);
+
+    /**
+     * 批量删除用户列表
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteAdminUserByIds(Long[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/mapper/MallGoodsMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.mapper;
+
+import java.util.List;
+import com.ruoyi.system.domain.MallGoods;
+
+/**
+ * 商品列表Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+public interface MallGoodsMapper 
+{
+    /**
+     * 查询商品列表
+     * 
+     * @param id 商品列表ID
+     * @return 商品列表
+     */
+    public MallGoods selectMallGoodsById(Integer id);
+
+    /**
+     * 查询商品列表列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 商品列表集合
+     */
+    public List<MallGoods> selectMallGoodsList(MallGoods mallGoods);
+
+    /**
+     * 新增商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    public int insertMallGoods(MallGoods mallGoods);
+
+    /**
+     * 修改商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    public int updateMallGoods(MallGoods mallGoods);
+
+    /**
+     * 删除商品列表
+     * 
+     * @param id 商品列表ID
+     * @return 结果
+     */
+    public int deleteMallGoodsById(Integer id);
+
+    /**
+     * 批量删除商品列表
+     * 
+     * @param ids 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteMallGoodsByIds(Integer[] ids);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IAdminUserService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.AdminUser;
+
+/**
+ * 用户列表Service接口
+ * 
+ * @author xiaoji
+ * @date 2021-07-01
+ */
+public interface IAdminUserService 
+{
+    /**
+     * 查询用户列表
+     * 
+     * @param id 用户列表ID
+     * @return 用户列表
+     */
+    public AdminUser selectAdminUserById(Long id);
+
+    /**
+     * 查询用户列表列表
+     * 
+     * @param adminUser 用户列表
+     * @return 用户列表集合
+     */
+    public List<AdminUser> selectAdminUserList(AdminUser adminUser);
+
+    /**
+     * 新增用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    public int insertAdminUser(AdminUser adminUser);
+
+    /**
+     * 修改用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    public int updateAdminUser(AdminUser adminUser);
+
+    /**
+     * 批量删除用户列表
+     * 
+     * @param ids 需要删除的用户列表ID
+     * @return 结果
+     */
+    public int deleteAdminUserByIds(Long[] ids);
+
+    /**
+     * 删除用户列表信息
+     * 
+     * @param id 用户列表ID
+     * @return 结果
+     */
+    public int deleteAdminUserById(Long id);
+}

+ 61 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IMallGoodsService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.system.service;
+
+import java.util.List;
+import com.ruoyi.system.domain.MallGoods;
+
+/**
+ * 商品列表Service接口
+ * 
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+public interface IMallGoodsService 
+{
+    /**
+     * 查询商品列表
+     * 
+     * @param id 商品列表ID
+     * @return 商品列表
+     */
+    public MallGoods selectMallGoodsById(Integer id);
+
+    /**
+     * 查询商品列表列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 商品列表集合
+     */
+    public List<MallGoods> selectMallGoodsList(MallGoods mallGoods);
+
+    /**
+     * 新增商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    public int insertMallGoods(MallGoods mallGoods);
+
+    /**
+     * 修改商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    public int updateMallGoods(MallGoods mallGoods);
+
+    /**
+     * 批量删除商品列表
+     * 
+     * @param ids 需要删除的商品列表ID
+     * @return 结果
+     */
+    public int deleteMallGoodsByIds(Integer[] ids);
+
+    /**
+     * 删除商品列表信息
+     * 
+     * @param id 商品列表ID
+     * @return 结果
+     */
+    public int deleteMallGoodsById(Integer id);
+}

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AdminUserServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.AdminUserMapper;
+import com.ruoyi.system.domain.AdminUser;
+import com.ruoyi.system.service.IAdminUserService;
+
+/**
+ * 用户列表Service业务层处理
+ * 
+ * @author xiaoji
+ * @date 2021-07-01
+ */
+@Service
+public class AdminUserServiceImpl implements IAdminUserService 
+{
+    @Autowired
+    private AdminUserMapper adminUserMapper;
+
+    /**
+     * 查询用户列表
+     * 
+     * @param id 用户列表ID
+     * @return 用户列表
+     */
+    @Override
+    public AdminUser selectAdminUserById(Long id)
+    {
+        return adminUserMapper.selectAdminUserById(id);
+    }
+
+    /**
+     * 查询用户列表列表
+     * 
+     * @param adminUser 用户列表
+     * @return 用户列表
+     */
+    @Override
+    public List<AdminUser> selectAdminUserList(AdminUser adminUser)
+    {
+        return adminUserMapper.selectAdminUserList(adminUser);
+    }
+
+    /**
+     * 新增用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    @Override
+    public int insertAdminUser(AdminUser adminUser)
+    {
+        return adminUserMapper.insertAdminUser(adminUser);
+    }
+
+    /**
+     * 修改用户列表
+     * 
+     * @param adminUser 用户列表
+     * @return 结果
+     */
+    @Override
+    public int updateAdminUser(AdminUser adminUser)
+    {
+        return adminUserMapper.updateAdminUser(adminUser);
+    }
+
+    /**
+     * 批量删除用户列表
+     * 
+     * @param ids 需要删除的用户列表ID
+     * @return 结果
+     */
+    @Override
+    public int deleteAdminUserByIds(Long[] ids)
+    {
+        return adminUserMapper.deleteAdminUserByIds(ids);
+    }
+
+    /**
+     * 删除用户列表信息
+     * 
+     * @param id 用户列表ID
+     * @return 结果
+     */
+    @Override
+    public int deleteAdminUserById(Long id)
+    {
+        return adminUserMapper.deleteAdminUserById(id);
+    }
+}

+ 93 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/MallGoodsServiceImpl.java

@@ -0,0 +1,93 @@
+package com.ruoyi.system.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.system.mapper.MallGoodsMapper;
+import com.ruoyi.system.domain.MallGoods;
+import com.ruoyi.system.service.IMallGoodsService;
+
+/**
+ * 商品列表Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2021-07-01
+ */
+@Service
+public class MallGoodsServiceImpl implements IMallGoodsService 
+{
+    @Autowired
+    private MallGoodsMapper mallGoodsMapper;
+
+    /**
+     * 查询商品列表
+     * 
+     * @param id 商品列表ID
+     * @return 商品列表
+     */
+    @Override
+    public MallGoods selectMallGoodsById(Integer id)
+    {
+        return mallGoodsMapper.selectMallGoodsById(id);
+    }
+
+    /**
+     * 查询商品列表列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 商品列表
+     */
+    @Override
+    public List<MallGoods> selectMallGoodsList(MallGoods mallGoods)
+    {
+        return mallGoodsMapper.selectMallGoodsList(mallGoods);
+    }
+
+    /**
+     * 新增商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    @Override
+    public int insertMallGoods(MallGoods mallGoods)
+    {
+        return mallGoodsMapper.insertMallGoods(mallGoods);
+    }
+
+    /**
+     * 修改商品列表
+     * 
+     * @param mallGoods 商品列表
+     * @return 结果
+     */
+    @Override
+    public int updateMallGoods(MallGoods mallGoods)
+    {
+        return mallGoodsMapper.updateMallGoods(mallGoods);
+    }
+
+    /**
+     * 批量删除商品列表
+     * 
+     * @param ids 需要删除的商品列表ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMallGoodsByIds(Integer[] ids)
+    {
+        return mallGoodsMapper.deleteMallGoodsByIds(ids);
+    }
+
+    /**
+     * 删除商品列表信息
+     * 
+     * @param id 商品列表ID
+     * @return 结果
+     */
+    @Override
+    public int deleteMallGoodsById(Integer id)
+    {
+        return mallGoodsMapper.deleteMallGoodsById(id);
+    }
+}

+ 86 - 0
ruoyi-system/src/main/resources/mapper/system/AdminUserMapper.xml

@@ -0,0 +1,86 @@
+<?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.ruoyi.system.mapper.AdminUserMapper">
+    
+    <resultMap type="AdminUser" id="AdminUserResult">
+        <result property="id"    column="id"    />
+        <result property="appId"    column="app_id"    />
+        <result property="userId"    column="user_id"    />
+        <result property="avatar"    column="avatar"    />
+        <result property="username"    column="username"    />
+        <result property="password"    column="password"    />
+        <result property="createdAt"    column="created_at"    />
+        <result property="updatedAt"    column="updated_at"    />
+    </resultMap>
+
+    <sql id="selectAdminUserVo">
+        select id, app_id, user_id, avatar, username, password, created_at, updated_at from admin_user
+    </sql>
+
+    <select id="selectAdminUserList" parameterType="AdminUser" resultMap="AdminUserResult">
+        <include refid="selectAdminUserVo"/>
+        <where>  
+            <if test="appId != null  and appId != ''"> and app_id = #{appId}</if>
+            <if test="userId != null  and userId != ''"> and user_id = #{userId}</if>
+            <if test="avatar != null  and avatar != ''"> and avatar = #{avatar}</if>
+            <if test="username != null  and username != ''"> and username like concat('%', #{username}, '%')</if>
+            <if test="password != null  and password != ''"> and password = #{password}</if>
+            <if test="createdAt != null "> and created_at = #{createdAt}</if>
+            <if test="updatedAt != null "> and updated_at = #{updatedAt}</if>
+        </where>
+    </select>
+    
+    <select id="selectAdminUserById" parameterType="Long" resultMap="AdminUserResult">
+        <include refid="selectAdminUserVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertAdminUser" parameterType="AdminUser" useGeneratedKeys="true" keyProperty="id">
+        insert into admin_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="appId != null and appId != ''">app_id,</if>
+            <if test="userId != null and userId != ''">user_id,</if>
+            <if test="avatar != null and avatar != ''">avatar,</if>
+            <if test="username != null and username != ''">username,</if>
+            <if test="password != null and password != ''">password,</if>
+            <if test="createdAt != null">created_at,</if>
+            <if test="updatedAt != null">updated_at,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="appId != null and appId != ''">#{appId},</if>
+            <if test="userId != null and userId != ''">#{userId},</if>
+            <if test="avatar != null and avatar != ''">#{avatar},</if>
+            <if test="username != null and username != ''">#{username},</if>
+            <if test="password != null and password != ''">#{password},</if>
+            <if test="createdAt != null">#{createdAt},</if>
+            <if test="updatedAt != null">#{updatedAt},</if>
+         </trim>
+    </insert>
+
+    <update id="updateAdminUser" parameterType="AdminUser">
+        update admin_user
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="appId != null and appId != ''">app_id = #{appId},</if>
+            <if test="userId != null and userId != ''">user_id = #{userId},</if>
+            <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
+            <if test="username != null and username != ''">username = #{username},</if>
+            <if test="password != null and password != ''">password = #{password},</if>
+            <if test="createdAt != null">created_at = #{createdAt},</if>
+            <if test="updatedAt != null">updated_at = #{updatedAt},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteAdminUserById" parameterType="Long">
+        delete from admin_user where id = #{id}
+    </delete>
+
+    <delete id="deleteAdminUserByIds" parameterType="String">
+        delete from admin_user where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 111 - 0
ruoyi-system/src/main/resources/mapper/system/MallGoodsMapper.xml

@@ -0,0 +1,111 @@
+<?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.ruoyi.system.mapper.MallGoodsMapper">
+    
+    <resultMap type="MallGoods" id="MallGoodsResult">
+        <result property="id"    column="id"    />
+        <result property="appId"    column="app_id"    />
+        <result property="goodsId"    column="goods_id"    />
+        <result property="cover"    column="cover"    />
+        <result property="name"    column="name"    />
+        <result property="needPoint"    column="need_point"    />
+        <result property="realStockNum"    column="real_stock_num"    />
+        <result property="virtualStockNum"    column="virtual_stock_num"    />
+        <result property="exchangeNum"    column="exchange_num"    />
+        <result property="status"    column="status"    />
+        <result property="isDelete"    column="is_delete"    />
+        <result property="createdAt"    column="created_at"    />
+        <result property="updatedAt"    column="updated_at"    />
+    </resultMap>
+
+    <sql id="selectMallGoodsVo">
+        select id, app_id, goods_id, cover, name, need_point, real_stock_num, virtual_stock_num, exchange_num, status, is_delete, created_at, updated_at from mall_goods
+    </sql>
+
+    <select id="selectMallGoodsList" parameterType="MallGoods" resultMap="MallGoodsResult">
+        <include refid="selectMallGoodsVo"/>
+        <where>  
+            <if test="appId != null  and appId != ''"> and app_id = #{appId}</if>
+            <if test="goodsId != null  and goodsId != ''"> and goods_id = #{goodsId}</if>
+            <if test="cover != null  and cover != ''"> and cover = #{cover}</if>
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="needPoint != null "> and need_point = #{needPoint}</if>
+            <if test="realStockNum != null "> and real_stock_num = #{realStockNum}</if>
+            <if test="virtualStockNum != null "> and virtual_stock_num = #{virtualStockNum}</if>
+            <if test="exchangeNum != null "> and exchange_num = #{exchangeNum}</if>
+            <if test="status != null "> and status = #{status}</if>
+            <if test="isDelete != null "> and is_delete = #{isDelete}</if>
+            <if test="createdAt != null "> and created_at = #{createdAt}</if>
+            <if test="updatedAt != null "> and updated_at = #{updatedAt}</if>
+        </where>
+    </select>
+    
+    <select id="selectMallGoodsById" parameterType="Integer" resultMap="MallGoodsResult">
+        <include refid="selectMallGoodsVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insertMallGoods" parameterType="MallGoods" useGeneratedKeys="true" keyProperty="id">
+        insert into mall_goods
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="appId != null and appId != ''">app_id,</if>
+            <if test="goodsId != null and goodsId != ''">goods_id,</if>
+            <if test="cover != null and cover != ''">cover,</if>
+            <if test="name != null and name != ''">name,</if>
+            <if test="needPoint != null">need_point,</if>
+            <if test="realStockNum != null">real_stock_num,</if>
+            <if test="virtualStockNum != null">virtual_stock_num,</if>
+            <if test="exchangeNum != null">exchange_num,</if>
+            <if test="status != null">status,</if>
+            <if test="isDelete != null">is_delete,</if>
+            <if test="createdAt != null">created_at,</if>
+            <if test="updatedAt != null">updated_at,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="appId != null and appId != ''">#{appId},</if>
+            <if test="goodsId != null and goodsId != ''">#{goodsId},</if>
+            <if test="cover != null and cover != ''">#{cover},</if>
+            <if test="name != null and name != ''">#{name},</if>
+            <if test="needPoint != null">#{needPoint},</if>
+            <if test="realStockNum != null">#{realStockNum},</if>
+            <if test="virtualStockNum != null">#{virtualStockNum},</if>
+            <if test="exchangeNum != null">#{exchangeNum},</if>
+            <if test="status != null">#{status},</if>
+            <if test="isDelete != null">#{isDelete},</if>
+            <if test="createdAt != null">#{createdAt},</if>
+            <if test="updatedAt != null">#{updatedAt},</if>
+         </trim>
+    </insert>
+
+    <update id="updateMallGoods" parameterType="MallGoods">
+        update mall_goods
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="appId != null and appId != ''">app_id = #{appId},</if>
+            <if test="goodsId != null and goodsId != ''">goods_id = #{goodsId},</if>
+            <if test="cover != null and cover != ''">cover = #{cover},</if>
+            <if test="name != null and name != ''">name = #{name},</if>
+            <if test="needPoint != null">need_point = #{needPoint},</if>
+            <if test="realStockNum != null">real_stock_num = #{realStockNum},</if>
+            <if test="virtualStockNum != null">virtual_stock_num = #{virtualStockNum},</if>
+            <if test="exchangeNum != null">exchange_num = #{exchangeNum},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="isDelete != null">is_delete = #{isDelete},</if>
+            <if test="createdAt != null">created_at = #{createdAt},</if>
+            <if test="updatedAt != null">updated_at = #{updatedAt},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteMallGoodsById" parameterType="Integer">
+        delete from mall_goods where id = #{id}
+    </delete>
+
+    <delete id="deleteMallGoodsByIds" parameterType="String">
+        delete from mall_goods where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 107 - 52
ruoyi-ui/src/api/system/GameMallGoods.js

@@ -1,53 +1,108 @@
-import request from '@/utils/request'
-
-// 查询商品列表列表
-export function listGameMallGoods(query) {
-  return request({
-    url: '/system/GameMallGoods/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询商品列表详细
-export function getGameMallGoods(id) {
-  return request({
-    url: '/system/GameMallGoods/' + id,
-    method: 'get'
-  })
-}
-
-// 新增商品列表
-export function addGameMallGoods(data) {
-  return request({
-    url: '/system/GameMallGoods',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改商品列表
-export function updateGameMallGoods(data) {
-  return request({
-    url: '/system/GameMallGoods',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除商品列表
-export function delGameMallGoods(id) {
-  return request({
-    url: '/system/GameMallGoods/' + id,
-    method: 'delete'
-  })
-}
-
-// 导出商品列表
-export function exportGameMallGoods(query) {
-  return request({
-    url: '/system/GameMallGoods/export',
-    method: 'get',
-    params: query
-  })
+<<<<<<< HEAD
+import request from '@/utils/request'
+
+// 查询商品列表列表
+export function listGameMallGoods(query) {
+  return request({
+    url: '/system/GameMallGoods/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询商品列表详细
+export function getGameMallGoods(id) {
+  return request({
+    url: '/system/GameMallGoods/' + id,
+    method: 'get'
+  })
+}
+
+// 新增商品列表
+export function addGameMallGoods(data) {
+  return request({
+    url: '/system/GameMallGoods',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改商品列表
+export function updateGameMallGoods(data) {
+  return request({
+    url: '/system/GameMallGoods',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除商品列表
+export function delGameMallGoods(id) {
+  return request({
+    url: '/system/GameMallGoods/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出商品列表
+export function exportGameMallGoods(query) {
+  return request({
+    url: '/system/GameMallGoods/export',
+    method: 'get',
+    params: query
+  })
+=======
+import request from '@/utils/request'
+
+// 查询商品列表列表
+export function listGameMallGoods(query) {
+  return request({
+    url: '/system/GameMallGoods/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询商品列表详细
+export function getGameMallGoods(id) {
+  return request({
+    url: '/system/GameMallGoods/' + id,
+    method: 'get'
+  })
+}
+
+// 新增商品列表
+export function addGameMallGoods(data) {
+  return request({
+    url: '/system/GameMallGoods',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改商品列表
+export function updateGameMallGoods(data) {
+  return request({
+    url: '/system/GameMallGoods',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除商品列表
+export function delGameMallGoods(id) {
+  return request({
+    url: '/system/GameMallGoods/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出商品列表
+export function exportGameMallGoods(query) {
+  return request({
+    url: '/system/GameMallGoods/export',
+    method: 'get',
+    params: query
+  })
+>>>>>>> f4a98078eeb355e90ccc96195b0a44004de8de39
 }

+ 107 - 52
ruoyi-ui/src/api/system/GameUserList.js

@@ -1,53 +1,108 @@
-import request from '@/utils/request'
-
-// 查询用户列表列表
-export function listGameUserList(query) {
-  return request({
-    url: '/system/GameUserList/list',
-    method: 'get',
-    params: query
-  })
-}
-
-// 查询用户列表详细
-export function getGameUserList(id) {
-  return request({
-    url: '/system/GameUserList/' + id,
-    method: 'get'
-  })
-}
-
-// 新增用户列表
-export function addGameUserList(data) {
-  return request({
-    url: '/system/GameUserList',
-    method: 'post',
-    data: data
-  })
-}
-
-// 修改用户列表
-export function updateGameUserList(data) {
-  return request({
-    url: '/system/GameUserList',
-    method: 'put',
-    data: data
-  })
-}
-
-// 删除用户列表
-export function delGameUserList(id) {
-  return request({
-    url: '/system/GameUserList/' + id,
-    method: 'delete'
-  })
-}
-
-// 导出用户列表
-export function exportGameUserList(query) {
-  return request({
-    url: '/system/GameUserList/export',
-    method: 'get',
-    params: query
-  })
+<<<<<<< HEAD:ruoyi-ui/src/api/system/GameUserList.js
+import request from '@/utils/request'
+
+// 查询用户列表列表
+export function listGameUserList(query) {
+  return request({
+    url: '/system/GameUserList/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询用户列表详细
+export function getGameUserList(id) {
+  return request({
+    url: '/system/GameUserList/' + id,
+    method: 'get'
+  })
+}
+
+// 新增用户列表
+export function addGameUserList(data) {
+  return request({
+    url: '/system/GameUserList',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改用户列表
+export function updateGameUserList(data) {
+  return request({
+    url: '/system/GameUserList',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除用户列表
+export function delGameUserList(id) {
+  return request({
+    url: '/system/GameUserList/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出用户列表
+export function exportGameUserList(query) {
+  return request({
+    url: '/system/GameUserList/export',
+    method: 'get',
+    params: query
+  })
+=======
+import request from '@/utils/request'
+
+// 查询用户列表列表
+export function listGameUserList(query) {
+  return request({
+    url: '/system/GameUserList/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询用户列表详细
+export function getGameUserList(id) {
+  return request({
+    url: '/system/GameUserList/' + id,
+    method: 'get'
+  })
+}
+
+// 新增用户列表
+export function addGameUserList(data) {
+  return request({
+    url: '/system/GameUserList',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改用户列表
+export function updateGameUserList(data) {
+  return request({
+    url: '/system/GameUserList',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除用户列表
+export function delGameUserList(id) {
+  return request({
+    url: '/system/GameUserList/' + id,
+    method: 'delete'
+  })
+}
+
+// 导出用户列表
+export function exportGameUserList(query) {
+  return request({
+    url: '/system/GameUserList/export',
+    method: 'get',
+    params: query
+  })
+>>>>>>> f4a98078eeb355e90ccc96195b0a44004de8de39:ruoyi-ui/src/api/system/LzydUser.js
 }

File diff suppressed because it is too large
+ 955 - 474
ruoyi-ui/src/views/system/GameMallGoods/index.vue


File diff suppressed because it is too large
+ 785 - 391
ruoyi-ui/src/views/system/GameUserList/index.vue


+ 11 - 4
ruoyi-ui/vue.config.js

@@ -1,12 +1,15 @@
 'use strict'
 const path = require('path')
-const defaultSettings = require('./src/settings.js')
 
 function resolve(dir) {
   return path.join(__dirname, dir)
 }
 
+<<<<<<< HEAD
+const name = process.env.VUE_APP_TITLE || '若依管理系统' // 网页标题
+=======
 const name = defaultSettings.title || '荔枝庄园管理系统' // 标题
+>>>>>>> f4a98078eeb355e90ccc96195b0a44004de8de39
 
 const port = process.env.port || process.env.npm_config_port || 80 // 端口
 
@@ -29,13 +32,17 @@ module.exports = {
   // webpack-dev-server 相关配置
   devServer: {
     host: '0.0.0.0',
-    port: 8080,
+    port: port,
     open: true,
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
+<<<<<<< HEAD
+        target: `http://localhost:8080`,
+=======
         // target: `http://192.168.0.103:8080`,
         target: `http://sport-game-backend-api.lizhiyuedong.com/`,
+>>>>>>> f4a98078eeb355e90ccc96195b0a44004de8de39
         changeOrigin: true,
         ws: false,
         pathRewrite: {
@@ -112,9 +119,9 @@ module.exports = {
           config.optimization.runtimeChunk('single'),
           {
              from: path.resolve(__dirname, './public/robots.txt'), //防爬虫文件
-             to: './', //到根目录下
+             to: './' //到根目录下
           }
         }
       )
   }
-}
+}