Browse Source

商户管理

zhangxin 2 weeks ago
parent
commit
14a250db24
10 changed files with 425 additions and 8 deletions
  1. 106 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/separateAccounts/MerchantController.java
  2. 41 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/AddMerchantRequestDTO.java
  3. 33 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindByMerchantIdResponseDTO.java
  4. 24 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindMerchantRequestDTO.java
  5. 45 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindMerchantResponseDTO.java
  6. 11 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDepartMapper.java
  7. 2 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java
  8. 25 0
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml
  9. 15 2
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDepartService.java
  10. 123 4
      national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

+ 106 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/controller/separateAccounts/MerchantController.java

@@ -0,0 +1,106 @@
+package org.jeecg.modules.system.app.controller.separateAccounts;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.system.app.dto.merchant.AddMerchantRequestDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindByMerchantIdResponseDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindMerchantRequestDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO;
+import org.jeecg.modules.system.service.ISysDepartService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @Description: 商户管理
+ * @Author: zx
+ * @Date:   2025-07-09
+ * @Version: V1.0
+ */
+@Tag(name="商户管理")
+@RestController
+@RequestMapping("/merchant")
+@Slf4j
+public class MerchantController {
+
+    @Autowired
+    ISysDepartService iSysDepartService;
+
+
+    /**
+     * 分页列表查询
+     * 查询商户列表数据
+     * @param findMerchantRequestDTO
+     * @param pageNo
+     * @param pageSize
+     * @param req
+     * @return
+     */
+    @Operation(summary="商户管理-分页列表查询")
+    @GetMapping(value = "/list")
+    public Result<IPage<FindMerchantResponseDTO>> queryPageList(FindMerchantRequestDTO findMerchantRequestDTO,
+                                                                @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+                                                                @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+                                                                HttpServletRequest req) {
+        LoginUser loginUser =(LoginUser)SecurityUtils.getSubject().getPrincipal();
+        IPage<FindMerchantResponseDTO> pageList = iSysDepartService.findMerchantPage(pageNo,pageSize,findMerchantRequestDTO.getMerchantName(),loginUser.getOrgCode());
+        return Result.OK(pageList);
+    }
+
+
+
+    /**
+     * 新增商户
+     * 新增商户
+     * @param addMerchantRequestDTO
+     * @return
+     */
+    @Operation(summary="商户管理-添加")
+    @PostMapping(value = "/add")
+    public Result<String> add(@RequestBody AddMerchantRequestDTO addMerchantRequestDTO) {
+        LoginUser loginUser =(LoginUser)SecurityUtils.getSubject().getPrincipal();
+        return iSysDepartService.addMerchnt(addMerchantRequestDTO,loginUser);
+    }
+
+    /**
+     * 根据id查询商户信息
+     * 根据id查询商户信息
+     * @param id
+     * @return
+     */
+    @Operation(summary="商户管理-根据id查询商户信息")
+    @GetMapping(value = "/findById")
+    public Result<FindByMerchantIdResponseDTO> findById(@RequestParam("id") String id) {
+        return iSysDepartService.findByMerchntId(id);
+    }
+
+    /**
+     * 编辑商户信息
+     * 编辑商户信息
+     * @param addMerchantRequestDTO
+     * @return
+     */
+    @Operation(summary="商户管理-编辑商户信息")
+    @PutMapping(value = "/update")
+    public Result<String> update(@RequestBody AddMerchantRequestDTO addMerchantRequestDTO) {
+        return iSysDepartService.updateMerchntId(addMerchantRequestDTO);
+    }
+
+    /**
+     * 重置密码
+     * 重置密码
+     * @param addMerchantRequestDTO
+     * @return
+     */
+    @Operation(summary="商户管理-重置密码")
+    @GetMapping(value = "/reset")
+    public Result<String> reset(@RequestParam("id") String id) {
+        return iSysDepartService.resetPassword(id);
+    }
+}

+ 41 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/AddMerchantRequestDTO.java

@@ -0,0 +1,41 @@
+package org.jeecg.modules.system.app.dto.merchant;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 商户
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="添加商户参数")
+public class AddMerchantRequestDTO {
+
+    /**商户名称*/
+    @Schema(description = "id")
+    private String id;
+    /**商户名称*/
+    @NotNull(message = "商户名称不允许为空")
+    @Schema(description = "商户名称")
+    private String merchantName;
+
+    /**管理员名称*/
+    @NotNull(message = "管理员名称不允许为空")
+    @Schema(description = "管理员名称")
+    private String realName;
+
+    /**管理员手机号*/
+    @NotNull(message = "管理员手机号不允许为空")
+    @Schema(description = "管理员手机号")
+    private String phone;
+
+}

+ 33 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindByMerchantIdResponseDTO.java

@@ -0,0 +1,33 @@
+package org.jeecg.modules.system.app.dto.merchant;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 评价
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="商户返回参数")
+public class FindByMerchantIdResponseDTO {
+    /**id*/
+    @Schema(description = "id")
+    private String id;
+    /**商户名称*/
+    @Schema(description = "商户名称")
+    private String merchantName;
+    /**管理员姓名*/
+    @Schema(description = "管理员姓名")
+    private String realname;
+    /**用户*/
+    @Schema(description = "管理员手机号")
+    private String phone;
+
+}

+ 24 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindMerchantRequestDTO.java

@@ -0,0 +1,24 @@
+package org.jeecg.modules.system.app.dto.merchant;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 商户查询
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="商户返回参数")
+public class FindMerchantRequestDTO {
+    /**商户名称*/
+    @Schema(description = "商户名称")
+    private String merchantName;
+
+}

+ 45 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/app/dto/merchant/FindMerchantResponseDTO.java

@@ -0,0 +1,45 @@
+package org.jeecg.modules.system.app.dto.merchant;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 评价
+ */
+@Data
+@Accessors(chain = true)
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+@NoArgsConstructor
+@Schema(description="商户返回参数")
+public class FindMerchantResponseDTO {
+    /**id*/
+    @Schema(description = "id")
+    private String id;
+    /**商户名称*/
+    @Schema(description = "商户名称")
+    private String merchantName;
+    /**关联部门id*/
+    @Schema(description = "门店数")
+    private Integer storeNum;
+    /**管理员姓名*/
+    @Schema(description = "管理员姓名")
+    private String realname;
+    /**用户*/
+    @Schema(description = "管理员手机号")
+    private String phone;
+    /**创建时间;创建时间*/
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @Schema(description = "创建时间;创建时间")
+    private Date createTime;
+
+}

+ 11 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysDepartMapper.java

@@ -2,13 +2,14 @@ package org.jeecg.modules.system.mapper;
 
 
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.apache.ibatis.annotations.Update;
+import org.jeecg.modules.system.app.dto.merchant.FindByMerchantIdResponseDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO;
 import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.entity.SysUser;
-import org.jeecg.modules.system.model.SysDepartTreeModel;
-import org.jeecg.modules.system.model.TreeModel;
 import org.jeecg.modules.system.vo.SysDepartExportVo;
 import org.jeecg.modules.system.vo.SysDepartExportVo;
 import org.jeecg.modules.system.vo.SysUserDepVo;
 import org.jeecg.modules.system.vo.SysUserDepVo;
 import org.jeecg.modules.system.vo.lowapp.ExportDepartVo;
 import org.jeecg.modules.system.vo.lowapp.ExportDepartVo;
@@ -195,4 +196,12 @@ public interface SysDepartMapper extends BaseMapper<SysDepart> {
      */
      */
     @InterceptorIgnore(tenantLine = "true")
     @InterceptorIgnore(tenantLine = "true")
     List<SysUserDepVo> getUserDepartByUserId(@Param("userList")List<SysUser> userList);
     List<SysUserDepVo> getUserDepartByUserId(@Param("userList")List<SysUser> userList);
+
+	IPage<FindMerchantResponseDTO> findMerchantPage(@Param("page") Page<FindMerchantResponseDTO> page, @Param("merchantName") String merchantName, @Param("orgCode") String orgCode);
+
+	FindMerchantResponseDTO findByMerchantAdmin(@Param("deptId") String deptId);
+
+	Integer findByParentIdCount(@Param("parentId") String parentId);
+
+	FindByMerchantIdResponseDTO findByMerchntId(@Param("id")  String id);
 }
 }

+ 2 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java

@@ -236,4 +236,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
 
     IPage<FindPageCUserInfoResponseDTO> findPage(@Param("page")Page<FindPageCUserInfoResponseDTO> page, @Param("findPageCUserInfoRequestDTO") FindPageCUserInfoRequestDTO findPageCUserInfoRequestDTO);
     IPage<FindPageCUserInfoResponseDTO> findPage(@Param("page")Page<FindPageCUserInfoResponseDTO> page, @Param("findPageCUserInfoRequestDTO") FindPageCUserInfoRequestDTO findPageCUserInfoRequestDTO);
 
 
+	@Select("select * from sys_user where del_flag=0 and depart_ids =#{departIds}")
+	SysUser findByDepartIds(@Param("departIds") String departIds);
 }
 }

+ 25 - 0
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysDepartMapper.xml

@@ -218,4 +218,29 @@
         </foreach>
         </foreach>
         order by sd.org_code;
         order by sd.org_code;
     </select>
     </select>
+    <select id="findMerchantPage"  resultType="org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO">
+        select sd.id, sd.depart_name as merchantName, su.realname,su.phone,sd.create_time from  sys_depart  sd
+        left join  sys_user su on sd.id = su.depart_ids
+        where sd.del_flag=0 and sd.org_category =1 and su.del_flag=0
+        <if test="orgCode!=null and orgCode!=''">
+            and sd.org_code like CONCAT('',#{orgCode},'%')
+        </if>
+        <if test="merchantName!=null and merchantName!=''">
+            and sd.depart_name like CONCAT('%',#{merchantName},'%')
+        </if>
+        order by  sd.create_time desc
+    </select>
+    <select id="findByMerchantAdmin" resultType="org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO">
+        select u.realname ,u.phone from sys_user_depart ud
+        left join  sys_user u on u.id =ud.id
+        where ud.dep_id = #{deptId} and del_flag =0 and user_identity =2 order by  create_time desc limit 1
+    </select>
+    <select id="findByParentIdCount" resultType="java.lang.Integer">
+        select count(1) from sys_depart where  del_flag=0 and parent_id =#{parentId}
+    </select>
+    <select id="findByMerchntId" resultType="org.jeecg.modules.system.app.dto.merchant.FindByMerchantIdResponseDTO">
+        select sd.id, sd.depart_name as merchant_name,su.realname,su.phone  from sys_depart sd left join  sys_user su on  sd.id = su.depart_ids
+        where sd.del_flag=0 and sd.id= #{id};
+
+    </select>
 </mapper>
 </mapper>

+ 15 - 2
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDepartService.java

@@ -4,14 +4,17 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.system.app.dto.merchant.AddMerchantRequestDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindByMerchantIdResponseDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO;
 import org.jeecg.modules.system.entity.SysDepart;
 import org.jeecg.modules.system.entity.SysDepart;
-import org.jeecg.modules.system.entity.SysUserDepart;
 import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.model.SysDepartTreeModel;
 import org.jeecg.modules.system.model.SysDepartTreeModel;
 import org.jeecg.modules.system.vo.SysDepartExportVo;
 import org.jeecg.modules.system.vo.SysDepartExportVo;
 import org.jeecg.modules.system.vo.lowapp.ExportDepartVo;
 import org.jeecg.modules.system.vo.lowapp.ExportDepartVo;
 
 
-import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -240,4 +243,14 @@ public interface ISysDepartService extends IService<SysDepart>{
      * @param errorMessageList
      * @param errorMessageList
      */
      */
     void importSysDepart(List<SysDepartExportVo> listSysDeparts, List<String> errorMessageList);
     void importSysDepart(List<SysDepartExportVo> listSysDeparts, List<String> errorMessageList);
+
+    IPage<FindMerchantResponseDTO> findMerchantPage(Integer pageNo, Integer pageSize, String merchantName, String orgCode);
+
+    Result<String> addMerchnt(AddMerchantRequestDTO addMerchantRequestDTO, LoginUser loginUser);
+
+    Result<FindByMerchantIdResponseDTO> findByMerchntId(String id);
+
+    Result<String> updateMerchntId(AddMerchantRequestDTO addMerchantRequestDTO);
+
+    Result<String> resetPassword(String id);
 }
 }

+ 123 - 4
national-motion-module-system/national-motion-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java

@@ -11,18 +11,20 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.netty.util.internal.StringUtil;
 import io.netty.util.internal.StringUtil;
+import me.zhyd.oauth.utils.UuidUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.config.TenantContext;
 import org.jeecg.common.config.TenantContext;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.FillRuleConstant;
 import org.jeecg.common.constant.FillRuleConstant;
 import org.jeecg.common.constant.SymbolConstant;
 import org.jeecg.common.constant.SymbolConstant;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.common.util.FillRuleUtil;
-import org.jeecg.common.util.ImportExcelUtil;
-import org.jeecg.common.util.YouBianCodeUtil;
-import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.common.util.*;
 import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
 import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
+import org.jeecg.modules.system.app.dto.merchant.AddMerchantRequestDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindByMerchantIdResponseDTO;
+import org.jeecg.modules.system.app.dto.merchant.FindMerchantResponseDTO;
 import org.jeecg.modules.system.entity.*;
 import org.jeecg.modules.system.entity.*;
 import org.jeecg.modules.system.mapper.*;
 import org.jeecg.modules.system.mapper.*;
 import org.jeecg.modules.system.model.DepartIdModel;
 import org.jeecg.modules.system.model.DepartIdModel;
@@ -50,6 +52,7 @@ import java.util.stream.Collectors;
 @Service
 @Service
 public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart> implements ISysDepartService {
 public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart> implements ISysDepartService {
 
 
+	private String passwordPrefix="qlyd";//创建商户的密码前缀
 	@Autowired
 	@Autowired
 	private SysUserDepartMapper userDepartMapper;
 	private SysUserDepartMapper userDepartMapper;
 	@Autowired
 	@Autowired
@@ -1346,6 +1349,122 @@ public class SysDepartServiceImpl extends ServiceImpl<SysDepartMapper, SysDepart
 		}
 		}
 	}
 	}
 
 
+	@Override
+	public IPage<FindMerchantResponseDTO> findMerchantPage(Integer pageNo, Integer pageSize, String merchantName, String orgCode) {
+		Page<FindMerchantResponseDTO> page = new Page<FindMerchantResponseDTO>(pageNo, pageSize);
+		IPage<FindMerchantResponseDTO> findEvaluateResponseDTOIPage= departMapper.findMerchantPage(page, merchantName,orgCode);
+		if (findEvaluateResponseDTOIPage!=null&&findEvaluateResponseDTOIPage.getRecords()!=null){
+			for (FindMerchantResponseDTO record : findEvaluateResponseDTOIPage.getRecords()) {
+				Integer countNum =	departMapper.findByParentIdCount(record.getId());
+				record.setStoreNum(countNum);
+			}
+		}
+		return findEvaluateResponseDTOIPage;
+	}
+
+	/**
+	 * 添加商户
+	 * @param addMerchantRequestDTO
+	 * @param loginUser
+	 * @return
+	 */
+	@Override
+	@Transactional
+	public Result<String> addMerchnt(AddMerchantRequestDTO addMerchantRequestDTO, LoginUser loginUser) {
+		SysUser userByPhone = sysUserMapper.getUserByPhone(addMerchantRequestDTO.getPhone());
+		if (userByPhone!=null){
+			return  Result.error("添加商户信息失败,用户手机号已存在");
+		}
+
+		SysUser sysUser = new SysUser();
+		sysUser.setCreateTime(new Date());//设置创建时间
+		sysUser.setId(UuidUtils.getUUID());
+		String salt = oConvertUtils.randomGen(8);
+		sysUser.setSalt(salt);
+		String password = passwordPrefix+addMerchantRequestDTO.getPhone().substring(7, 11);
+		String passwordEncode = PasswordUtil.encrypt(addMerchantRequestDTO.getPhone(),password , salt);
+		sysUser.setPassword(passwordEncode);
+		sysUser.setPhone(addMerchantRequestDTO.getPhone());
+		sysUser.setStatus(1);
+		sysUser.setUsername(addMerchantRequestDTO.getPhone());
+		sysUser.setRealname(addMerchantRequestDTO.getRealName());
+		sysUser.setWorkNo(addMerchantRequestDTO.getPhone());
+		sysUser.setUserIdentity(CommonConstant.USER_IDENTITY_2);
+		sysUser.setDelFlag(CommonConstant.DEL_FLAG_0);
+		if (sysUserMapper.insert(sysUser)<1){
+			return  Result.error("添加商户信息失败");
+		}
+		SysDepart sysDepart = new SysDepart();
+		String deptId = departMapper.queryDepartIdByOrgCode(loginUser.getOrgCode());
+
+		if (StringUtils.isNotEmpty(deptId)){
+			sysDepart.setParentId(deptId);
+		}
+		sysDepart.setDirectorUserIds(sysUser.getId());
+		sysDepart.setDepartName(addMerchantRequestDTO.getMerchantName());
+		sysDepart.setOrgCategory("1");//创建商户类型
+		this.saveDepartData(sysDepart,addMerchantRequestDTO.getPhone());
+		sysUser.setOrgCode(sysDepart.getOrgCode());
+		if (sysUserMapper.updateById(sysUser)<1){
+			return Result.error("添加商户信息失败");
+		}
+		return Result.ok("添加商户成功");
+	}
+
+	@Override
+	public Result<FindByMerchantIdResponseDTO> findByMerchntId(String id) {
+		return Result.OK(departMapper.findByMerchntId(id));
+	}
+
+	@Override
+	@Transactional
+	public Result<String> updateMerchntId(AddMerchantRequestDTO addMerchantRequestDTO) {
+		if (StringUtils.isEmpty(addMerchantRequestDTO.getId())){
+			return Result.error("修改商户信息失败");
+		}
+		SysDepart sysDepart = departMapper.getDepartById(addMerchantRequestDTO.getId());
+		if (sysDepart==null){
+			return Result.error("修改商户信息失败,未查询到商户信息");
+		}
+		sysDepart.setDepartName(addMerchantRequestDTO.getMerchantName());
+		if (departMapper.updateById(sysDepart)<1){
+			return Result.error("修改商户信息失败,请联系管理员");
+		}
+		SysUser sysUser =sysUserMapper.findByDepartIds(addMerchantRequestDTO.getId());
+		if (sysUser==null){
+			return Result.error("修改商户信息失败,未查询到商户管理员信息");
+		}
+		sysUser.setRealname(addMerchantRequestDTO.getRealName());
+		sysUser.setPhone(addMerchantRequestDTO.getPhone());
+		sysUser.setUsername(addMerchantRequestDTO.getPhone());
+		if (sysUserMapper.updateById(sysUser)<1){
+			return Result.error("修改商户信息失败,请联系管理员");
+		}
+		return Result.ok("修改商户成功");
+	}
+
+	@Override
+	public Result<String> resetPassword(String id) {
+		if (StringUtils.isEmpty(id)){
+			return Result.error("重置密码失败,请选择商户");
+		}
+		SysDepart sysDepart = departMapper.getDepartById(id);
+		if (sysDepart==null){
+			return Result.error("重置密码失败,未查询到商户信息");
+		}
+		SysUser sysUser =sysUserMapper.findByDepartIds(id);
+		if (sysUser==null){
+			return Result.error("重置密码失败,未查询到商户管理员信息");
+		}
+		String password = passwordPrefix+sysUser.getPhone().substring(7, 11);
+		String passwordEncode = PasswordUtil.encrypt(sysUser.getPhone(),password , sysUser.getSalt());
+		sysUser.setPassword(passwordEncode);
+		if (sysUserMapper.updateById(sysUser)<1){
+			return Result.error("重置密码失败,请联系管理员");
+		}
+		return Result.ok("重置密码成功");
+	}
+
 	/**
 	/**
 	 * 寻找部门路径
 	 * 寻找部门路径
 	 *
 	 *