From b5aba60916c0e815b33b1eb40c85d631eeb2fbc3 Mon Sep 17 00:00:00 2001
From: zhibing.pu <393733352@qq.com>
Date: 星期四, 08 八月 2024 09:15:51 +0800
Subject: [PATCH] 新增加管理后台合作商接口
---
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java | 2
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java | 190 ++++++++++++++
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java | 15 +
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java | 2
ruoyi-service/ruoyi-chargingPile/pom.xml | 5
ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml | 18 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java | 5
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java | 29 ++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java | 11
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml | 45 +++
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 6
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java | 3
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java | 26 ++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java | 11
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java | 77 +++++
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 2
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java | 101 +++++++
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java | 2
ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java | 19 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java | 26 +
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java | 11
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 65 ++++
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java | 9
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java | 15 +
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 13
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml | 42 +++
26 files changed, 729 insertions(+), 21 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java
new file mode 100644
index 0000000..4cfe522
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/PartnerListDTO.java
@@ -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;
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java
new file mode 100644
index 0000000..481c96c
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Partner.java
@@ -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;
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
new file mode 100644
index 0000000..feedd52
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/model/Site.java
@@ -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;
+
+}
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java
new file mode 100644
index 0000000..7505157
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/query/GetPartnerList.java
@@ -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;
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
index 3d3d0d2..8163aa5 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysUser.java
+++ b/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 = "密码不能为空")
@@ -265,7 +270,15 @@
{
this.avatar = avatar;
}
-
+
+ public String getAccount() {
+ return account;
+ }
+
+ public void setAccount(String account) {
+ this.account = account;
+ }
+
public String getPassword()
{
return password;
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
index 83a7f0c..ba46eb4 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
+++ b/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());
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index c8dcc52..ad41b7f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -86,6 +86,15 @@
*/
@PostMapping("/user/queryUserByPhone")
R<SysUser> queryUserByPhone(@RequestBody String phone);
+
+
+ /**
+ * 根据账号获取用户数据
+ * @param account
+ * @return
+ */
+ @PostMapping("/user/queryUserByAccount")
+ R<SysUser> queryUserByAccount(@RequestBody String account);
/**
* 通过账号查询用户
@@ -94,5 +103,20 @@
*/
@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);
}
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java
index 7778ec2..951d83d 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/web/domain/AjaxResult.java
+++ b/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);
}
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
index 722a87a..537141f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
+++ b/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)
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 87fbfa6..28d1593 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
@@ -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();
}
}
@@ -669,6 +675,19 @@
.last("LIMIT 1"));
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);
+ }
/**
@@ -676,6 +695,7 @@
* @param userName
* @return
*/
+ @ResponseBody
@PostMapping("/queryUserByUserName")
public R<SysUser> queryUserByUserName(@RequestBody String userName){
SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class)
@@ -683,5 +703,44 @@
.last("LIMIT 1"));
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();
+ }
}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 642cede..17dedc0 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/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是否唯一
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index 3f08d28..d4f7f95 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/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是否唯一
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 903350f..5bf158f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -196,7 +196,18 @@
}
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是否唯一
*
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index e7df625..78f62da 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/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>
diff --git a/ruoyi-service/ruoyi-chargingPile/pom.xml b/ruoyi-service/ruoyi-chargingPile/pom.xml
index d6fee25..eeef897 100644
--- a/ruoyi-service/ruoyi-chargingPile/pom.xml
+++ b/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>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
index 733c4f8..25eaf50 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/RuoYiChargingPileApplication.java
+++ b/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);
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
index 4fac393..e94628d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/PartnerController.java
+++ b/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);
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
new file mode 100644
index 0000000..1bf5768
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -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(){
+
+ }
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
new file mode 100644
index 0000000..1a201ee
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/SiteMapper.java
@@ -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> {
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
index cafec26..27f1720 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/IPartnerService.java
+++ b/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);
/**
* 重置密码
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
new file mode 100644
index 0000000..f76d9f8
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -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> {
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
index be37d3e..3e8b420 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/PartnerServiceImpl.java
+++ b/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();
}
}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
new file mode 100644
index 0000000..b22f788
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -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 {
+}
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
index 64b605d..f923f2a 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/bootstrap.yml
+++ b/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:
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
new file mode 100644
index 0000000..ae39a6f
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/PartnerMapper.xml
@@ -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>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
new file mode 100644
index 0000000..1eac92c
--- /dev/null
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -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>
\ No newline at end of file
--
Gitblit v1.7.1