From 6f54cebf07887237f5eb8efdf9d1d0b784dbaa49 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 10 十二月 2024 10:05:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java    |   35 ++++++
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java           |   69 +++++++++++++
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java               |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java       |   50 +++++++--
 ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysDeptMapper.xml                    |    9 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java          |    2 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java       |   23 ++--
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java                 |   13 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java               |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   18 +++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java       |   22 ++--
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/AgreementController.java       |   28 +++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java                 |   14 ++
 13 files changed, 237 insertions(+), 52 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java
index a5df940..129c83f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysDept.java
@@ -47,6 +47,10 @@
 
     /** 删除标志(0代表存在 2代表删除) */
     private String delFlag;
+    /**
+     * 门店id
+     */
+    private Integer shopId;
 
     /** 父部门名称 */
     private String parentName;
@@ -177,7 +181,15 @@
     {
         this.children = children;
     }
-
+    
+    public Integer getShopId() {
+        return shopId;
+    }
+    
+    public void setShopId(Integer shopId) {
+        this.shopId = shopId;
+    }
+    
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
index d52ab5f..98edaea 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java
@@ -46,6 +46,11 @@
     /** 角色状态(0正常 1停用) */
     @Excel(name = "角色状态", readConverterExp = "0=正常,1=停用")
     private String status;
+    /**
+     * 门店id
+     */
+    @TableField("shop_id")
+    private Integer shopId;
 
     /** 删除标志(0代表存在 2代表删除) */
     @TableField("del_flag")
@@ -214,6 +219,14 @@
         this.number = number;
     }
     
+    public Integer getShopId() {
+        return shopId;
+    }
+    
+    public void setShopId(Integer shopId) {
+        this.shopId = shopId;
+    }
+    
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java
index 8c9c9f7..0fd46e6 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysDeptController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
+import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -32,8 +33,8 @@
      * 获取部门列表
      */
     @GetMapping("/list")
-    public AjaxResult list(SysDept dept)
-    {
+    @ApiOperation(value = "获取部门列表", tags = {"管理后台-部门管理", "门店后台-部门管理"})
+    public AjaxResult list(SysDept dept) {
         List<SysDept> depts = deptService.selectDeptList(dept);
         return success(depts);
     }
@@ -53,8 +54,7 @@
      * 根据部门编号获取详细信息
      */
     @GetMapping(value = "/{deptId}")
-    public AjaxResult getInfo(@PathVariable Long deptId)
-    {
+    public AjaxResult getInfo(@PathVariable Long deptId) {
         deptService.checkDeptDataScope(deptId);
         return success(deptService.selectDeptById(deptId));
     }
@@ -63,11 +63,10 @@
      * 新增部门
      */
     @Log(title = "部门管理", businessType = BusinessType.INSERT)
+    @ApiOperation(value = "添加部门", tags = {"管理后台-部门管理", "门店后台-部门管理"})
     @PostMapping
-    public AjaxResult add(@Validated @RequestBody SysDept dept)
-    {
-        if (!deptService.checkDeptNameUnique(dept))
-        {
+    public AjaxResult add(@Validated @RequestBody SysDept dept) {
+        if (!deptService.checkDeptNameUnique(dept)) {
             return error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
         dept.setCreateBy(SecurityUtils.getUsername());
@@ -78,13 +77,12 @@
      * 修改部门
      */
     @Log(title = "部门管理", businessType = BusinessType.UPDATE)
+    @ApiOperation(value = "编辑部门", tags = {"管理后台-部门管理", "门店后台-部门管理"})
     @PutMapping
-    public AjaxResult edit(@Validated @RequestBody SysDept dept)
-    {
+    public AjaxResult edit(@Validated @RequestBody SysDept dept) {
         Long deptId = dept.getDeptId();
         deptService.checkDeptDataScope(deptId);
-        if (!deptService.checkDeptNameUnique(dept))
-        {
+        if (!deptService.checkDeptNameUnique(dept)) {
             return error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
         }
         else if (dept.getParentId().equals(deptId))
@@ -103,6 +101,7 @@
      * 删除部门
      */
     @Log(title = "部门管理", businessType = BusinessType.DELETE)
+    @ApiOperation(value = "删除部门", tags = {"管理后台-部门管理", "门店后台-部门管理"})
     @DeleteMapping("/{deptId}")
     public AjaxResult remove(@PathVariable Long deptId)
     {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
index cf387cb..b841724 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java
@@ -11,6 +11,7 @@
 import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysRole;
@@ -68,25 +69,41 @@
 	@Resource
 	private SysMenuMapper menuMapper;
 	
+	@Resource
+	private TokenService tokenService;
 	
-	@ApiOperation(value = "获取角色列表", tags = {"管理后台-系统用户管理"})
+	@Resource
+	private ISysUserService sysUserService;
+	
+	
+	@ApiOperation(value = "获取角色列表", tags = {"管理后台-账号管理", "门店后台-账号管理"})
 	@GetMapping("/list")
 	public AjaxResult list() {
-		List<SysRole> list = roleService.list(new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0));
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser = sysUserService.getById(userid);
+		LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getDelFlag, 0).eq(SysRole::getStatus, 0);
+		if(sysUser.getRoleType() == 2){
+			wrapper.eq(SysRole::getShopId, sysUser.getObjectId());
+		}
+		List<SysRole> list = roleService.list(wrapper);
 		return AjaxResult.success(list);
 	}
 	
 	
 	@ResponseBody
 	@GetMapping("/listPage")
-	@ApiOperation(value = "获取角色列表", tags = {"管理后台-角色管理"})
+	@ApiOperation(value = "获取角色列表", tags = {"管理后台-权限管理", "门店后台-权限管理"})
 	public AjaxResult listPage(String name, BasePage basePage) {
 		PageInfo<SysRole> pageInfo = new PageInfo<>(basePage.getPageCurr(), basePage.getPageSize());
 		LambdaQueryWrapper<SysRole> wrapper = new LambdaQueryWrapper<SysRole>().eq(SysRole::getStatus, 0).eq(SysRole::getDelFlag, 0);
 		if (StringUtils.isNotEmpty(name)) {
 			wrapper.like(SysRole::getRoleName, name);
 		}
-		
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser = sysUserService.getById(userid);
+		if(sysUser.getRoleType() == 2){
+			wrapper.eq(SysRole::getShopId, sysUser.getObjectId());
+		}
 		PageInfo<SysRole> page = roleService.page(pageInfo, wrapper.orderByDesc(SysRole::getCreateTime));
 		for (SysRole record : page.getRecords()) {
 			long count = sysUserRoleService.count(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getRoleId, record.getRoleId()));
@@ -98,13 +115,19 @@
 	
 	@ResponseBody
 	@PostMapping("/roleAdd")
-	@ApiOperation(value = "添加角色", tags = {"管理后台-角色管理"})
-	@GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+	@ApiOperation(value = "添加角色", tags = {"管理后台-权限管理", "门店后台-权限管理"})
 	public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto) {
 		SysRole role = new SysRole();
 		role.setRoleName(dto.getRoleName());
-		long count = roleService.count(Wrappers.lambdaQuery(SysRole.class)
-				.eq(SysRole::getRoleName, dto.getRoleName()));
+		LambdaQueryWrapper<SysRole> wrapper = Wrappers.lambdaQuery(SysRole.class)
+				.eq(SysRole::getRoleName, dto.getRoleName());
+		Long userid = tokenService.getLoginUser().getUserid();
+		SysUser sysUser = sysUserService.getById(userid);
+		if(sysUser.getRoleType() == 2){
+			wrapper.eq(SysRole::getShopId, sysUser.getObjectId());
+		}
+		
+		long count = roleService.count(wrapper);
 		if (count > 0) {
 			return AjaxResult.error("角色已存在,请重新输入");
 		}
@@ -117,13 +140,17 @@
 		role.setRemark(dto.getRemark());
 		role.setCreateBy(SecurityUtils.getUsername());
 		role.setCreateTime(new Date());
+		
+		if(sysUser.getRoleType() == 2){
+			role.setShopId(sysUser.getObjectId());
+		}
 		roleService.insertRole(role);
 		return AjaxResult.success();
 	}
 	
 	
 	@GetMapping("/roleInfo")
-	@ApiOperation(value = "角色详情", tags = {"管理后台-角色管理"})
+	@ApiOperation(value = "角色详情", tags = {"管理后台-权限管理"})
 	public AjaxResult roleInfo(@RequestParam Long id) {
 		SysRole role = roleService.selectRoleById(id);
 		RoleInfoVo roleInfoVo = new RoleInfoVo();
@@ -159,8 +186,7 @@
 	
 	
 	@PostMapping("/roleUpdate")
-	@ApiOperation(value = "编辑角色", tags = {"管理后台-角色管理"})
-	@GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+	@ApiOperation(value = "编辑角色", tags = {"管理后台-权限管理"})
 	public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) {
 		SysRole role = new SysRole();
 		role.setRoleName(dto.getRoleName());
@@ -206,7 +232,7 @@
 	 */
 	@Log(title = "角色管理", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{roleIds}")
-	@ApiOperation(value = "删除角色", tags = {"管理后台-角色管理"})
+	@ApiOperation(value = "删除角色", tags = {"管理后台-权限管理"})
 	public AjaxResult remove(@PathVariable Long[] roleIds) {
 		return toAjax(roleService.deleteRoleByIds(roleIds));
 	}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index b03f0a2..5651b84 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -77,7 +77,7 @@
      * 获取用户列表
      */
     @GetMapping("/list")
-    @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-系统用户管理", "管理后台-角色管理"})
+    @ApiOperation(value = "获取系统用户列表", tags = {"管理后台-账号管理"})
     public AjaxResult list(GetSysUserList getSysUserList) {
         PageInfo<SysUser> pageInfo = new PageInfo<>(getSysUserList.getPageCurr(), getSysUserList.getPageSize());
         PageInfo<SysUser> page = userService.getList(pageInfo, getSysUserList);
@@ -98,8 +98,7 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.INSERT)
     @PostMapping("/add")
-    @ApiOperation(value = "添加系统用户", tags = {"管理后台-系统用户管理"})
-    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+    @ApiOperation(value = "添加系统用户", tags = {"管理后台-账号管理"})
     public AjaxResult add(@RequestBody SysUser user) {
         user.setUserName(user.getPhonenumber());
         if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
@@ -112,7 +111,7 @@
             return error("登录账号重复");
         }
         user.setCreateBy(SecurityUtils.getUsername());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setPassword(SecurityUtils.encryptPassword("a123456"));
         user.setRoleType(1);
         userService.insertUser(user);
         SysUserRole sysUserRole = new SysUserRole();
@@ -124,7 +123,7 @@
     
     
     @GetMapping("/verifyUserNameRepeat/{username}")
-    @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-系统用户管理"})
+    @ApiOperation(value = "校验账号是否重复", tags = {"管理后台-账号管理"})
     public AjaxResult verifyUserNameRepeat(@PathVariable String username){
         SysUser user = new SysUser();
         user.setUserName(username);
@@ -142,7 +141,7 @@
     /**
      * 根据用户编号获取详细信息
      */
-    @ApiOperation(value = "获取用户详情", tags = {"管理后台-系统用户管理"})
+    @ApiOperation(value = "获取用户详情", tags = {"管理后台-账号管理"})
     @GetMapping("/getInfo/{userId}")
     public AjaxResult getInfo(@PathVariable Long userId) {
         userService.checkUserDataScope(userId);
@@ -165,8 +164,7 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/update")
-    @ApiOperation(value = "编辑系统用户", tags = {"管理后台-系统用户管理"})
-    @GlobalTransactional(rollbackFor = Exception.class)//分布式事务
+    @ApiOperation(value = "编辑系统用户", tags = {"管理后台-账号管理"})
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
         user.setUserName(user.getPhonenumber());
         if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
@@ -216,7 +214,7 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    @ApiOperation(value = "删除系统用户", tags = {"管理后台-系统用户管理"})
+    @ApiOperation(value = "删除系统用户", tags = {"管理后台-账号管理"})
     public AjaxResult remove(@PathVariable Long[] userIds) {
         if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) {
             return error("当前用户不能删除");
@@ -228,7 +226,7 @@
 
 
     @PostMapping("/shopUserStart")
-    @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-系统用户管理"})
+    @ApiOperation(value = "账号管理--禁用/启用", tags = {"管理后台-账号管理"})
     public AjaxResult shopUserStart(@RequestBody ShopUserStart shopUserStart) {
         if (shopUserStart.getUserId() == null) {
             return AjaxResult.error("userId不能为空");
@@ -354,11 +352,11 @@
      */
     @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PutMapping("/resetPwd")
-    @ApiOperation(value = "重置密码", tags = {"管理后台-系统用户管理"})
+    @ApiOperation(value = "重置密码", tags = {"管理后台-账号管理"})
     public AjaxResult resetPwd(@RequestBody SysUser user) {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
-        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setPassword(SecurityUtils.encryptPassword("a123456"));
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.resetPwd(user));
     }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
index 9c86743..6974f34 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/RoleInfoVo.java
@@ -16,8 +16,4 @@
     
     @ApiModelProperty(value = "备注")
     private String remark;
-    @ApiModelProperty("站点id")
-    private List<Integer> siteIds;
-    @ApiModelProperty(value = "站点名称")
-    private List<String> siteNames;
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
index f484336..341d908 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.datascope.annotation.DataScope;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.api.domain.SysRole;
@@ -14,9 +15,11 @@
 import com.ruoyi.system.mapper.SysDeptMapper;
 import com.ruoyi.system.mapper.SysRoleMapper;
 import com.ruoyi.system.service.ISysDeptService;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -35,6 +38,15 @@
 
     @Autowired
     private SysRoleMapper roleMapper;
+    
+    @Resource
+    private TokenService tokenService;
+    
+    @Resource
+    private ISysUserService sysUserService;
+    
+    
+    
 
     /**
      * 查询部门管理数据
@@ -44,8 +56,12 @@
      */
     @Override
     @DataScope(deptAlias = "d")
-    public List<SysDept> selectDeptList(SysDept dept)
-    {
+    public List<SysDept> selectDeptList(SysDept dept) {
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser sysUser = sysUserService.getById(userid);
+        if(sysUser.getRoleType() == 2){
+            dept.setShopId(sysUser.getObjectId());
+        }
         return deptMapper.selectDeptList(dept);
     }
 
@@ -219,6 +235,12 @@
             throw new ServiceException("部门停用,不允许新增");
         }
         dept.setAncestors(info.getAncestors() + "," + dept.getParentId());
+        //判断店铺数据
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser sysUser = sysUserService.getById(userid);
+        if(sysUser.getRoleType() == 2){
+            dept.setShopId(sysUser.getObjectId());
+        }
         return deptMapper.insertDept(dept);
     }
 
@@ -233,13 +255,18 @@
     {
         SysDept newParentDept = deptMapper.selectDeptById(dept.getParentId());
         SysDept oldDept = deptMapper.selectDeptById(dept.getDeptId());
-        if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept))
-        {
+        if (StringUtils.isNotNull(newParentDept) && StringUtils.isNotNull(oldDept)) {
             String newAncestors = newParentDept.getAncestors() + "," + newParentDept.getDeptId();
             String oldAncestors = oldDept.getAncestors();
             dept.setAncestors(newAncestors);
             updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors);
         }
+        //判断店铺数据
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser sysUser = sysUserService.getById(userid);
+        if(sysUser.getRoleType() == 2){
+            dept.setShopId(sysUser.getObjectId());
+        }
         int result = deptMapper.updateDept(dept);
         if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors())
                 && !StringUtils.equals("0", dept.getAncestors()))
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysDeptMapper.xml
index 1e786d4..186c0ba 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysDeptMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysDeptMapper.xml
@@ -20,10 +20,11 @@
 		<result property="createTime" column="create_time" />
 		<result property="updateBy"   column="update_by"   />
 		<result property="updateTime" column="update_time" />
+		<result property="shopId" column="shop_id" />
 	</resultMap>
 	
 	<sql id="selectDeptVo">
-        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time 
+        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time, d.shop_id
         from sys_dept d
     </sql>
     
@@ -41,6 +42,9 @@
 		</if>
 		<if test="status != null and status != ''">
 			AND status = #{status}
+		</if>
+		<if test="shopId != null">
+			AND shop_id = #{shopId}
 		</if>
 		<!-- 数据范围过滤 -->
 		${params.dataScope}
@@ -96,6 +100,7 @@
  			<if test="phone != null and phone != ''">phone,</if>
  			<if test="email != null and email != ''">email,</if>
  			<if test="status != null">status,</if>
+	    	<if test="shopId != null">shop_id,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
  			create_time
  		)values(
@@ -108,6 +113,7 @@
  			<if test="phone != null and phone != ''">#{phone},</if>
  			<if test="email != null and email != ''">#{email},</if>
  			<if test="status != null">#{status},</if>
+	    	<if test="shopId != null">#{shopId},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
  			sysdate()
  		)
@@ -124,6 +130,7 @@
  			<if test="phone != null">phone = #{phone},</if>
  			<if test="email != null">email = #{email},</if>
  			<if test="status != null and status != ''">status = #{status},</if>
+		    <if test="shopId != null">shop_id = #{shopId},</if>
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  			update_time = sysdate()
  		</set>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java
index cda3616..f827055 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/ShoppingCartService.java
@@ -22,7 +22,7 @@
 	 * 添加商品
 	 * @param shoppingCart
 	 */
-	void addGoods(ShoppingCart shoppingCart);
+	Long addGoods(ShoppingCart shoppingCart);
 	
 	
 	/**
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index e8fd731..0665cec 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -327,10 +327,11 @@
 	
 
 	@Override
-	public void addGoods(ShoppingCart shoppingCart) {
+	public Long addGoods(ShoppingCart shoppingCart) {
 		Long userid = tokenService.getLoginUserApplet().getUserid();
 		shoppingCart.setAppUserId(userid);
 		this.save(shoppingCart);
+		return shoppingCart.getId();
 	}
 	
 	
@@ -571,7 +572,22 @@
 	 */
 	@Override
 	public R shoppingCartPayment(ShoppingCartPayment shoppingCartPayment) {
+		Integer position = shoppingCartPayment.getPosition();
 		Long userid = tokenService.getLoginUserApplet().getUserid();
+		//直接购买商品
+		if(2 == position){
+			//先加入购物车
+			String goodsJson = shoppingCartPayment.getGoodsJson();
+			JSONArray objects = JSON.parseArray(goodsJson);
+			Long id = objects.getJSONObject(0).getLong("id");
+			Integer num1 = objects.getJSONObject(0).getInteger("num");
+			ShoppingCart shoppingCart = new ShoppingCart();
+			shoppingCart.setAppUserId(userid);
+			shoppingCart.setGoodsId(id.intValue());
+			shoppingCart.setNumber(num1);
+			Long shoppingCarId = addGoods(shoppingCart);
+			shoppingCartPayment.setGoodsJson("[{\"id\": " + shoppingCarId + ", \"num\": " + num1 + "}]");
+		}
 		AppUser appUser = appUserClient.getAppUserById(userid);
 		Integer shopId = shoppingCartPayment.getShopId();
 		String goodsJson = shoppingCartPayment.getGoodsJson();
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
index 056104b..55ecb37 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/ShoppingCartPayment.java
@@ -11,6 +11,8 @@
 @Data
 @ApiModel
 public class ShoppingCartPayment {
+	@ApiModelProperty(value = "购买方式(1=购物车,2=商品详情)", required = true)
+	private Integer position;
 	@ApiModelProperty(value = "购物车数据id,数量 JSON[{id:1212,num:2}]", required = true)
 	private String goodsJson;
 	@ApiModelProperty(value = "支付方式(1=微信,2=账户余额,3=积分)", required = true)
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/AgreementController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/AgreementController.java
index fd9c1e2..3864d1d 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/AgreementController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/AgreementController.java
@@ -10,6 +10,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.time.LocalDateTime;
 
 /**
  * @author zhibing.pu
@@ -38,4 +39,31 @@
 		Agreement one = agreementService.getOne(new LambdaQueryWrapper<Agreement>().eq(Agreement::getType, type));
 		return R.ok(null == one ? "" : one.getContent());
 	}
+	
+	
+	@ResponseBody
+	@GetMapping("/getAgreementByType/{type}")
+	@ApiOperation(value = "获取协议详情", tags = {"管理后台-协议管理"})
+	@ApiImplicitParams({
+			@ApiImplicitParam(value = "类型(1=用户协议,2=隐私协议,3=技师上门免责声明,4=注销协议,5门店提现免责声明)", name = "type", required = true, dataType = "int"),
+	})
+	public R<Agreement> getAgreementByType(@PathVariable("type") Integer type){
+		Agreement one = agreementService.getOne(new LambdaQueryWrapper<Agreement>().eq(Agreement::getType, type));
+		return R.ok(one);
+	}
+	
+	
+	@ResponseBody
+	@PostMapping("/saveAgreement")
+	@ApiOperation(value = "保存协议", tags = {"管理后台-协议管理"})
+	public R saveAgreement(@RequestBody Agreement agreement){
+		if(null != agreement.getId()){
+			agreementService.updateById(agreement);
+		}else{
+			agreement.setCreateTime(LocalDateTime.now());
+			agreementService.save(agreement);
+		}
+		return R.ok();
+	}
+	
 }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
index 009571b..5a5b73e 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/PhoneController.java
@@ -4,16 +4,16 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.other.api.domain.Phone;
 import com.ruoyi.other.enums.PhoneType;
 import com.ruoyi.other.service.PhoneService;
+import com.ruoyi.system.api.domain.SysUser;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -32,6 +32,15 @@
 public class PhoneController extends BaseController {
     @Resource
     private PhoneService phoneService;
+    
+    @Resource
+    private TokenService tokenService;
+    
+    @Resource
+    private SysUserClient sysUserClient;
+    
+    
+    
 
     /**
      * 查询指定门店手机号
@@ -43,5 +52,57 @@
                 .eq(Phone::getType, PhoneType.SHOP.getCode())
                 .eq(Phone::getShopId, shopId)));
     }
+    
+    
+    
+    @GetMapping("/getSysPhone")
+    @ApiOperation(value = "获取客服电话", tags = {"管理后台-客服电话", "门店后台-客服电话"})
+    public R<Phone> getSysPhone(){
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+        LambdaQueryWrapper<Phone> wrapper = new LambdaQueryWrapper<>();
+        if(sysUser.getRoleType() == 1){
+            wrapper.eq(Phone::getType, 1);
+        }else{
+            wrapper.eq(Phone::getType, 2).eq(Phone::getShopId, sysUser.getObjectId());
+        }
+        Phone one = phoneService.getOne(wrapper);
+        return R.ok(one);
+    }
+    
+    
+    
+    @PostMapping("/savePhone")
+    @ApiOperation(value = "保存客服电话", tags = {"管理后台-客服电话", "门店后台-客服电话"})
+    public R savePhone(@RequestBody Phone phone){
+        Long userid = tokenService.getLoginUser().getUserid();
+        SysUser sysUser = sysUserClient.getSysUser(userid).getData();
+        //平台配置
+        if(sysUser.getRoleType() == 1){
+            Phone one = phoneService.getOne(new LambdaQueryWrapper<Phone>().eq(Phone::getType, 1));
+            if(null != one){
+                one.setPhoneOne(phone.getPhoneOne());
+                one.setPhoneTwo(phone.getPhoneTwo());
+                phoneService.updateById(one);
+            }else{
+                phone.setType(1);
+                phoneService.save(phone);
+            }
+        }else{
+            //门店配置
+            Phone one = phoneService.getOne(new LambdaQueryWrapper<Phone>().eq(Phone::getType, 2).eq(Phone::getShopId, sysUser.getObjectId()));
+            if(null != one){
+                one.setPhoneOne(phone.getPhoneOne());
+                one.setPhoneTwo(phone.getPhoneTwo());
+                phoneService.updateById(one);
+            }else{
+                phone.setType(2);
+                phone.setShopId(sysUser.getObjectId());
+                phoneService.save(phone);
+            }
+        }
+        return R.ok();
+    }
+    
 }
 

--
Gitblit v1.7.1