zhibing.pu
2024-08-08 b5aba60916c0e815b33b1eb40c85d631eeb2fbc3
新增加管理后台合作商接口
16个文件已修改
10个文件已添加
742 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java
New file
@@ -0,0 +1,29 @@
package com.ruoyi.chargingPile.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 14:03
 */
@Data
@ApiModel
public class PartnerListDTO {
    @ApiModelProperty(value = "数据id")
    private Integer id;
    @ApiModelProperty(value = "合作商名称")
    private String name;
    private Integer roleId;
    @ApiModelProperty(value = "角色名")
    private String roleName;
    @ApiModelProperty(value = "合作商电话1")
    private String phoneOne;
    @ApiModelProperty(value = "注册地址")
    private String address;
    @ApiModelProperty(value = "登录账号")
    private String account;
    @ApiModelProperty(value = "备注")
    private String remark;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java
New file
@@ -0,0 +1,101 @@
package com.ruoyi.chargingPile.api.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BasePojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 13:37
 */
@Data
@ApiModel
@TableName("t_partner")
public class Partner extends BasePojo {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 合作商ID
     */
    @TableField("code")
    @ApiModelProperty(value = "合作商ID", required = true)
    private String code;
    /**
     * 合作商名称
     */
    @TableField("name")
    @ApiModelProperty(value = "合作商名称", required = true)
    private String name;
    /**
     * 角色id
     */
    @TableField("role_id")
    @ApiModelProperty(value = "角色id", required = true)
    private Integer roleId;
    /**
     * 角色名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "角色名称")
    private String roleName;
    /**
     * logo地址
     */
    @TableField("logo_url")
    @ApiModelProperty(value = "logo地址")
    private String logoUrl;
    /**
     * 费率
     */
    @TableField("rate")
    @ApiModelProperty(value = "费率")
    private BigDecimal rate;
    /**
     * 注册地址
     */
    @TableField("address")
    @ApiModelProperty(value = "address")
    private String address;
    /**
     * 合作商电话1
     */
    @TableField("phone_one")
    @ApiModelProperty(value = "合作商电话1", required = true)
    private String phoneOne;
    /**
     * 合作商电话2
     */
    @TableField("phone_two")
    @ApiModelProperty(value = "合作商电话2")
    private String phoneTwo;
    /**
     * 备注
     */
    @TableField("remark")
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * 登录账号
     */
    @TableField("account")
    @ApiModelProperty(value = "登录账号", required = true)
    private String account;
    /**
     * 登录密码
     */
    @TableField("password")
    @ApiModelProperty(value = "登录密码", required = true)
    private String password;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
New file
@@ -0,0 +1,190 @@
package com.ruoyi.chargingPile.api.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.web.domain.BasePojo;
import lombok.Data;
import java.time.LocalDate;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 19:31
 */
@Data
@TableName("t_site")
public class Site extends BasePojo {
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 合作商id
     */
    @TableField("partner_id")
    private Integer partnerId;
    /**
     * 站点编号
     */
    @TableField("code")
    private String code;
    /**
     * 站点名称
     */
    @TableField("name")
    private String name;
    /**
     * 站点类型(0=其他,1=公共,2=个人,3=公交(专业),4=环卫(专用),5=物流(专用),6=出租车(专用))
     */
    @TableField("site_type")
    private Integer siteType;
    /**
     * 经营类型(1=直营,2=非直营)
     */
    @TableField("business_category")
    private Integer businessCategory;
    /**
     * 站点状态(1=正常使用,2=维修中,3=关闭下线)
     */
    @TableField("status")
    private Integer status;
    /**
     * 建设场所(0=其他,1=居民区,2=公共机构,3=企事业单位,4=写字楼,5=工业园区,6=交通枢纽,7=大型文体设施,8=城市绿地,9=大型建筑配建停车场,10=路边停车位,11=城际高速服务区)
     */
    @TableField("construction_site")
    private Integer constructionSite;
    /**
     * 站点环境图
     */
    @TableField("img_url")
    private String imgUrl;
    /**
     * 省名称
     */
    @TableField("province")
    private String province;
    /**
     * 省区划代码
     */
    @TableField("province_code")
    private String provinceCode;
    /**
     * 市名称
     */
    @TableField("city")
    private String city;
    /**
     * 市区划代码
     */
    @TableField("city_code")
    private String cityCode;
    /**
     * 区县名称
     */
    @TableField("districts")
    private String districts;
    /**
     * 区县区划代码
     */
    @TableField("districts_code")
    private String districtsCode;
    /**
     * 经度
     */
    @TableField("lon")
    private String lon;
    /**
     * 纬度
     */
    @TableField("lat")
    private String lat;
    /**
     * 详细地址
     */
    @TableField("address")
    private String address;
    /**
     * 国家代码
     */
    @TableField("country_code")
    private String countryCode;
    /**
     * 站点电话
     */
    @TableField("phone")
    private String phone;
    /**
     * 服务电话
     */
    @TableField("service_phone")
    private String servicePhone;
    /**
     * 站点引导
     */
    @TableField("guide")
    private String guide;
    /**
     * 开始服务时间
     */
    @TableField("start_service_time")
    private String startServiceTime;
    /**
     * 结束服务时间
     */
    @TableField("end_service_time")
    private String endServiceTime;
    /**
     * 站内提供服务
     */
    @TableField("service_description")
    private String serviceDescription;
    /**
     * 车型描述
     */
    @TableField("vehicle_description")
    private String vehicleDescription;
    /**
     * 车位数
     */
    @TableField("parking_space")
    private Integer parkingSpace;
    /**
     * 充电费率描述
     */
    @TableField("rate_description")
    private String rateDescription;
    /**
     * 超时占位费说明
     */
    @TableField("space_charge_explain")
    private String spaceChargeExplain;
    /**
     * 计费策略id
     */
    @TableField("accounting_strategy_id")
    private Integer accountingStrategyId;
    /**
     * 建站时间
     */
    @TableField("establishment_time")
    private LocalDate establishmentTime;
    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;
    /**
     * 备注
     */
    @TableField("remark")
    private String remark;
    /**
     * 评分
     */
    @TableField("mark")
    private Integer mark;
}
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java
New file
@@ -0,0 +1,19 @@
package com.ruoyi.chargingPile.api.query;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 13:54
 */
@Data
@ApiModel
public class GetPartnerList extends BasePage {
    @ApiModelProperty(value = "合作商名称")
    private String name;
    @ApiModelProperty(value = "角色id")
    private Integer roleId;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
@@ -62,6 +62,11 @@
    /** 用户头像 */
    private String avatar;
    /**
     * 登录账号
     */
    @TableField("account")
    private String account;
    /** 密码 */
    @NotBlank(message = "密码不能为空")
@@ -266,6 +271,14 @@
        this.avatar = avatar;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getPassword()
    {
        return password;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -89,6 +89,11 @@
            public R<SysUser> queryUserByUserName(String userName) {
                return R.fail("通过账号查询用户失败:" + cause.getMessage());
            }
            @Override
            public R addSysUser(SysUser user) {
                return R.fail("添加用户失败:" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -87,6 +87,15 @@
    @PostMapping("/user/queryUserByPhone")
    R<SysUser>  queryUserByPhone(@RequestBody String phone);
    /**
     * 根据账号获取用户数据
     * @param account
     * @return
     */
    @PostMapping("/user/queryUserByAccount")
    R<SysUser>  queryUserByAccount(@RequestBody String account);
    /**
     * 通过账号查询用户
     * @param userName
@@ -95,4 +104,19 @@
    @PostMapping("/user/queryUserByUserName")
    R<SysUser>  queryUserByUserName(@RequestBody String userName);
    /**
     * 新增加用户信息
     * @param user
     */
    @PostMapping("/user/addSysUser")
    R addSysUser(SysUser user);
    /**
     * 重置密码
     * @param user
     * @return
     */
    @PostMapping("/user/resetPassword")
    R resetPassword(SysUser user);
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java
@@ -53,8 +53,7 @@
    {
        super.put(CODE_TAG, code);
        super.put(MSG_TAG, msg);
        if (StringUtils.isNotNull(data))
        {
        if (StringUtils.isNotNull(data)) {
            super.put(DATA_TAG, data);
        }
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.security.annotation.EnableCustomConfig;
import com.ruoyi.common.security.annotation.EnableRyFeignClients;
import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
 * 系统模块
@@ -17,6 +18,7 @@
@EnableCustomSwagger2
@EnableRyFeignClients
@SpringBootApplication
@EnableTransactionManagement
public class RuoYiSystemApplication
{
    public static void main(String[] args)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -105,7 +105,7 @@
        user.setRoleType(1);
        int i = userService.insertUser(user);
        SysUserRole sysUserRole = new SysUserRole();
        sysUserRole.setRoleId(1l);
        sysUserRole.setRoleId(user.getRoleId());
        sysUserRole.setUserId(user.getUserId());
        int i1 = userRoleService.insertSysUserRole(sysUserRole);
        return AjaxResult.success(i1);
@@ -356,15 +356,21 @@
    }
    @PostMapping("/updateSysUser")
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public R<Boolean> updateSysUser(@RequestBody SysUser sysUser) {
        try {
            sysUser.setUpdateBy(SecurityUtils.getUsername());
            sysUser.setUpdateTime(new Date());
            userService.updateUser(sysUser);
            userRoleService.deleteSysUserRoleByUserId(sysUser.getUserId());
            SysUserRole sysUserRole = new SysUserRole();
            sysUserRole.setRoleId(sysUser.getRoleId());
            sysUserRole.setUserId(sysUser.getUserId());
            userRoleService.insertSysUserRole(sysUserRole);
            return R.ok(true);
        } catch (Exception e) {
            e.printStackTrace();
            return R.ok();
            return R.fail();
        }
    }
@@ -670,12 +676,26 @@
        return R.ok(user);
    }
    /**
     * 根据账号获取用户数据
     * @param account
     * @return
     */
    @PostMapping("/queryUserByAccount")
    public R<SysUser>  queryUserByAccount(@RequestBody String account){
        SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class)
                .eq(SysUser::getAccount, account)
                .eq(SysUser::getDelFlag, "0"));
        return R.ok(user);
    }
    /**
     * 通过账号查询用户
     * @param userName
     * @return
     */
    @ResponseBody
    @PostMapping("/queryUserByUserName")
    public R<SysUser> queryUserByUserName(@RequestBody String userName){
        SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class)
@@ -684,4 +704,43 @@
        return R.ok(user);
    }
    /**
     * 添加管理员
     * @param user
     */
    @ResponseBody
    @PostMapping("/addSysUser")
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public R addSysUser(@RequestBody SysUser user){
        user.setUserName(user.getPhonenumber());
        if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){
            user.setNickName(user.getPhonenumber());
        }
        if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
            throw new RuntimeException("手机号已开通账号");
        }
        if (StringUtils.isNotEmpty(user.getAccount()) && !userService.checkAccountUnique(user)) {
            throw new RuntimeException("登录账号已存在");
        }
        user.setCreateBy(SecurityUtils.getUsername());
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setRoleType(1);
        userService.insertUser(user);
        SysUserRole sysUserRole = new SysUserRole();
        sysUserRole.setRoleId(user.getRoleId());
        sysUserRole.setUserId(user.getUserId());
        userRoleService.insertSysUserRole(sysUserRole);
        return R.ok();
    }
    @ResponseBody
    @PostMapping("/resetPassword")
    public R resetPassword(@RequestBody SysUser user) {
        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
        user.setUpdateBy(SecurityUtils.getUsername());
        userService.resetPwd(user);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -120,6 +120,15 @@
     * @return 结果
     */
    public SysUser checkPhoneUnique(String phonenumber);
    /**
     * 校验登录账号是否唯一
     * @param account 登录账号
     * @return
     */
    SysUser checkAccountUnique(String account);
    /**
     * 校验email是否唯一
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -85,6 +85,8 @@
     * @return 结果
     */
    public boolean checkPhoneUnique(SysUser user);
    boolean checkAccountUnique(SysUser user);
    /**
     * 校验email是否唯一
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -197,6 +197,17 @@
        return UserConstants.UNIQUE;
    }
    @Override
    public boolean checkAccountUnique(SysUser user) {
        SysUser info = userMapper.checkAccountUnique(user.getAccount());
        if (StringUtils.isNotNull(info) )
        {
            return UserConstants.NOT_UNIQUE;
        }
        return UserConstants.UNIQUE;
    }
    /**
     * 校验email是否唯一
     *
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -13,6 +13,7 @@
        <result property="phonenumber"  column="phonenumber"  />
        <result property="sex"          column="sex"          />
        <result property="avatar"       column="avatar"       />
        <result property="account"      column="account"      />
        <result property="password"     column="password"     />
        <result property="status"       column="status"       />
        <result property="delFlag"      column="del_flag"     />
@@ -120,6 +121,11 @@
        select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
    </select>
    
    <select id="checkAccountUnique" resultMap="SysUserResult">
        select user_id, account from sys_user where account = #{account} and del_flag = '0' limit 1
    </select>
    <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
    </select>
ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -41,6 +41,11 @@
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
        </dependency>
        <!-- SpringBoot Actuator -->
        <dependency>
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
@@ -7,6 +7,7 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
 * 账户模块
@@ -18,6 +19,7 @@
@EnableRyFeignClients
@SpringBootApplication
@EnableScheduling//开启定时任务
@EnableTransactionManagement//开启事务
public class RuoYiChargingPileApplication {
    public static void main(String[] args) {
        SpringApplication.run(RuoYiChargingPileApplication.class, args);
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
@@ -48,11 +48,11 @@
    
    @ResponseBody
    @GetMapping("/getPartner/{id}")
    @ApiOperation(value = "添加合作商", tags = {"管理后台-合作商列表"})
    @ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商列表"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
    })
    public AjaxResult<Partner> getPartner(@PathVariable @RequestParam Integer id){
    public AjaxResult<Partner> getPartner(@PathVariable Integer id){
        Partner partner = partnerService.getPartner(id);
        return AjaxResult.success(partner);
    }
@@ -70,13 +70,12 @@
    
    @ResponseBody
    @DeleteMapping("/delPartner/{id}")
    @ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商列表"})
    @ApiOperation(value = "删除合作商", tags = {"管理后台-合作商列表"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true)
    })
    public AjaxResult delPartner(@PathVariable @RequestParam Integer id){
        partnerService.delPartner(id);
        return AjaxResult.success();
    public AjaxResult delPartner(@PathVariable("id") Integer id){
        return partnerService.delPartner(id);
    }
    
    
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.chargingPile.controller;
import com.ruoyi.chargingPile.service.ISiteService;
import com.ruoyi.common.core.web.domain.AjaxResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 19:56
 */
@RestController
@RequestMapping("/site")
public class SiteController {
    @Resource
    private ISiteService siteService;
    public AjaxResult<> getSiteList(){
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
New file
@@ -0,0 +1,11 @@
package com.ruoyi.chargingPile.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.chargingPile.api.model.Site;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 19:49
 */
public interface SiteMapper extends BaseMapper<Site> {
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
@@ -52,7 +52,7 @@
     * 删除合作商
     * @param id
     */
    void delPartner(Integer id);
    AjaxResult delPartner(Integer id);
    
    /**
     * 重置密码
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
New file
@@ -0,0 +1,11 @@
package com.ruoyi.chargingPile.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.chargingPile.api.model.Site;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 19:54
 */
public interface ISiteService extends IService<Site> {
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
@@ -13,14 +13,17 @@
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysRoleClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.GetSysRoleByIds;
import io.seata.spring.annotation.GlobalTransactional;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -32,6 +35,9 @@
    
    @Resource
    private SysRoleClient sysRoleClient;
    @Resource
    private SysUserClient sysUserClient;
    
    
    
@@ -74,6 +80,7 @@
     * @return
     */
    @Override
    @GlobalTransactional//分布式事务
    public AjaxResult addPartner(Partner partner) {
        //校验参数和重复数据
        AjaxResult ajaxResult = addPartnerParameterCheck(partner);
@@ -97,7 +104,20 @@
        //添加新数据
        this.save(partner);
        //添加登录账户
        SysUser user = new SysUser();
        user.setAccount(partner.getAccount());
        user.setPhonenumber(partner.getPhoneOne());
        user.setUserName(partner.getName());
        user.setNickName(partner.getName());
        user.setAvatar(partner.getLogoUrl());
        user.setPassword(partner.getPassword());
        user.setStatus("0");
        user.setDelFlag("0");
        user.setRoleId(partner.getRoleId().longValue());
        R r = sysUserClient.addSysUser(user);
        if(200 != r.getCode()){
            throw new RuntimeException(r.getMsg());
        }
        return AjaxResult.success();
    }
    
@@ -138,6 +158,9 @@
    @Override
    public Partner getPartner(Integer id) {
        Partner partner = this.getById(id);
        if(null == partner){
            return partner;
        }
        GetSysRoleByIds ids = new GetSysRoleByIds();
        ids.setIds(Arrays.asList(partner.getRoleId()));
        //获取相关的角色id
@@ -159,6 +182,7 @@
     * @return
     */
    @Override
    @GlobalTransactional//分布式事务
    public AjaxResult editPartner(Partner partner) {
        //校验参数和重复数据
        AjaxResult ajaxResult = addPartnerParameterCheck(partner);
@@ -179,10 +203,40 @@
        if(null != one && !one.getId().equals(partner.getId())){
            return AjaxResult.error("登录账号不能重复");
        }
        Partner oldPartner = this.getById(partner.getId());
        SysUser user = sysUserClient.queryUserByAccount(oldPartner.getAccount()).getData();
        //修改数据
        this.updateById(partner);
        //修改登录账户
        if(null == user){
            user = new SysUser();
            user.setStatus("0");
            user.setDelFlag("0");
            user.setAccount(partner.getAccount());
            user.setPhonenumber(partner.getPhoneOne());
            user.setUserName(partner.getName());
            user.setNickName(partner.getName());
            user.setAvatar(partner.getLogoUrl());
            user.setPassword(partner.getPassword());
            user.setRoleId(partner.getRoleId().longValue());
            R r = sysUserClient.addSysUser(user);
            if(200 != r.getCode()){
                throw new RuntimeException(r.getMsg());
            }
        }else{
            user.setAccount(partner.getAccount());
            user.setPhonenumber(partner.getPhoneOne());
            user.setUserName(partner.getName());
            user.setNickName(partner.getName());
            user.setAvatar(partner.getLogoUrl());
            user.setPassword(partner.getPassword());
            user.setRoleId(partner.getRoleId().longValue());
            R r = sysUserClient.updateSysUser(user);
            if(200 != r.getCode()){
                throw new RuntimeException(r.getMsg());
            }
        }
        return AjaxResult.success();
    }
    
@@ -192,15 +246,23 @@
     * @param id 合作商id
     */
    @Override
    public void delPartner(Integer id) {
    @GlobalTransactional//分布式事务
    public AjaxResult delPartner(Integer id) {
        //查询有无关联数据
        //站点
        // todo 代码完善
        //充电桩
        
        Partner partner = this.getById(id);
        if(null == partner){
            return AjaxResult.error("删除失败");
        }
        partner.setDelFlag(true);
        this.updateById(partner);
        SysUser user = sysUserClient.queryUserByAccount(partner.getAccount()).getData();
        user.setDelFlag("2");
        sysUserClient.updateUser(user);
        return AjaxResult.success();
    }
    
    
@@ -209,6 +271,7 @@
     * @param resetPassword
     */
    @Override
    @GlobalTransactional//分布式事务
    public AjaxResult resetPassword(ResetPassword resetPassword) {
        if(null == resetPassword.getId()){
            return AjaxResult.error("合作商id不能为空");
@@ -220,7 +283,9 @@
        partner.setPassword(resetPassword.getPassword());
        this.updateById(partner);
        //修改登录账号的密码
        SysUser user = sysUserClient.queryUserByAccount(partner.getAccount()).getData();
        user.setPassword(partner.getPassword());
        sysUserClient.resetPassword(user);
        return AjaxResult.success();
    }
}
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
New file
@@ -0,0 +1,15 @@
package com.ruoyi.chargingPile.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.mapper.SiteMapper;
import com.ruoyi.chargingPile.service.ISiteService;
import org.springframework.stereotype.Service;
/**
 * @author zhibing.pu
 * @Date 2024/8/7 19:54
 */
@Service
public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {
}
ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
@@ -36,6 +36,24 @@
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
---
seata:
  application-id: seata-chargingPile
  registry:
    type: nacos
    nacos:
      server-addr: 192.168.110.169:8848
      namespace: b5290bc2-e3aa-4988-8a7d-9c07e4e073cb
      group: DEFAULT_GROUP
      application: seata-server #Nacos 中 Seata 名称
      username: nacos
      password: nacos
  tx-service-group: seata_tx_group #事务组(被一个集群管理)
  service:
    vgroup-mapping:
      seata_tx_group: default
  data-source-proxy-mode: AT
---
spring:
  config:
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
New file
@@ -0,0 +1,42 @@
<?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.chargingPile.mapper.PartnerMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.chargingPile.api.model.Partner">
        <id column="id" property="id" />
        <result column="code" property="code" />
        <result column="`name`" property="name" />
        <result column="role_id" property="roleId" />
        <result column="logo_url" property="logoUrl" />
        <result column="rate" property="rate" />
        <result column="address" property="address" />
        <result column="phone_one" property="phoneOne" />
        <result column="phone_two" property="phoneTwo" />
        <result column="remark" property="remark" />
        <result column="account" property="account" />
        <result column="password" property="password" />
        <result column="create_time" property="createTime" />
        <result column="del_flag" property="delFlag" />
    </resultMap>
    <select id="getPartnerList" resultType="com.ruoyi.chargingPile.api.dto.PartnerListDTO">
        select
        id,
        name,
        role_id as roleId,
        phone_one as phoneOne,
        address,
        account,
        remark
        from t_partner where del_flag = 0
        <if test="null != item.name and '' != item.name">
            and `name` like CONCAT('%', #{item.name}, '%')
        </if>
        <if test="null != item.roleId and '' != item.name">
            and role_id =  #{item.roleId}
        </if>
        order by create_time desc limit #{item.pageCurr}, #{item.pageSize}
    </select>
</mapper>
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
New file
@@ -0,0 +1,45 @@
<?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.chargingPile.mapper.SiteMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.chargingPile.api.model.Site">
        <id column="id" property="id" />
        <result column="partner_id" property="partnerId" />
        <result column="`code`" property="code" />
        <result column="name" property="name" />
        <result column="site_type" property="siteType" />
        <result column="business_category" property="businessCategory" />
        <result column="status" property="status" />
        <result column="construction_site" property="constructionSite" />
        <result column="img_url" property="imgUrl" />
        <result column="province" property="province" />
        <result column="province_code" property="provinceCode" />
        <result column="city" property="city" />
        <result column="city_code" property="cityCode" />
        <result column="districts" property="districts" />
        <result column="districts_code" property="districtsCode" />
        <result column="lon" property="lon" />
        <result column="lat" property="lat" />
        <result column="address" property="address" />
        <result column="country_code" property="countryCode" />
        <result column="phone" property="phone" />
        <result column="service_phone" property="servicePhone" />
        <result column="guide" property="guide" />
        <result column="start_service_time" property="startServiceTime" />
        <result column="end_service_time" property="endServiceTime" />
        <result column="service_description" property="serviceDescription" />
        <result column="vehicle_description" property="vehicleDescription" />
        <result column="parking_space" property="parkingSpace" />
        <result column="rate_description" property="rateDescription" />
        <result column="space_charge_explain" property="spaceChargeExplain" />
        <result column="accounting_strategy_id" property="accountingStrategyId" />
        <result column="establishment_time" property="establishmentTime" />
        <result column="sort" property="sort" />
        <result column="remark" property="remark" />
        <result column="mark" property="mark" />
        <result column="create_time" property="createTime" />
        <result column="del_flag" property="delFlag" />
    </resultMap>
</mapper>