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