diff --git a/hope-winery/src/main/java/com/ruoyi/winery/controller/AppUserAddressController.java b/hope-winery/src/main/java/com/ruoyi/winery/controller/AppUserAddressController.java new file mode 100644 index 000000000..57739d1bc --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/controller/AppUserAddressController.java @@ -0,0 +1,128 @@ +package com.ruoyi.winery.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +import java.util.List; +import java.util.Arrays; + +import com.ruoyi.common.utils.StringUtils; +import lombok.RequiredArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.winery.domain.AppUserAddress; +import com.ruoyi.winery.service.IAppUserAddressService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 用户收货地址Controller + * + * @author ruoyi + * @date 2021-01-16 + */ +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/user/address" ) +public class AppUserAddressController extends BaseController { + + private final IAppUserAddressService iAppUserAddressService; + + /** + * 查询用户收货地址列表 + */ + @PreAuthorize("@ss.hasPermi('user:address:list')") + @GetMapping("/list") + public TableDataInfo list(AppUserAddress appUserAddress) + { + startPage(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(appUserAddress); + if (appUserAddress.getDeptId() != null){ + lqw.eq(AppUserAddress::getDeptId ,appUserAddress.getDeptId()); + } + if (StringUtils.isNotBlank(appUserAddress.getUserId())){ + lqw.eq(AppUserAddress::getUserId ,appUserAddress.getUserId()); + } + if (appUserAddress.getIsDefault() != null){ + lqw.eq(AppUserAddress::getIsDefault ,appUserAddress.getIsDefault()); + } + if (StringUtils.isNotBlank(appUserAddress.getMobile())){ + lqw.eq(AppUserAddress::getMobile ,appUserAddress.getMobile()); + } + if (StringUtils.isNotBlank(appUserAddress.getName())){ + lqw.like(AppUserAddress::getName ,appUserAddress.getName()); + } + if (StringUtils.isNotBlank(appUserAddress.getAddress())){ + lqw.eq(AppUserAddress::getAddress ,appUserAddress.getAddress()); + } + if (StringUtils.isNotBlank(appUserAddress.getRegion())){ + lqw.eq(AppUserAddress::getRegion ,appUserAddress.getRegion()); + } + List list = iAppUserAddressService.list(lqw); + return getDataTable(list); + } + + /** + * 导出用户收货地址列表 + */ + @PreAuthorize("@ss.hasPermi('user:address:export')" ) + @Log(title = "用户收货地址" , businessType = BusinessType.EXPORT) + @GetMapping("/export" ) + public AjaxResult export(AppUserAddress appUserAddress) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper(appUserAddress); + List list = iAppUserAddressService.list(lqw); + ExcelUtil util = new ExcelUtil(AppUserAddress. class); + return util.exportExcel(list, "address" ); + } + + /** + * 获取用户收货地址详细信息 + */ + @PreAuthorize("@ss.hasPermi('user:address:query')" ) + @GetMapping(value = "/{id}" ) + public AjaxResult getInfo(@PathVariable("id" ) String id) { + return AjaxResult.success(iAppUserAddressService.getById(id)); + } + + /** + * 新增用户收货地址 + */ + @PreAuthorize("@ss.hasPermi('user:address:add')" ) + @Log(title = "用户收货地址" , businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody AppUserAddress appUserAddress) { + return toAjax(iAppUserAddressService.save(appUserAddress) ? 1 : 0); + } + + /** + * 修改用户收货地址 + */ + @PreAuthorize("@ss.hasPermi('user:address:edit')" ) + @Log(title = "用户收货地址" , businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody AppUserAddress appUserAddress) { + return toAjax(iAppUserAddressService.updateById(appUserAddress) ? 1 : 0); + } + + /** + * 删除用户收货地址 + */ + @PreAuthorize("@ss.hasPermi('user:address:remove')" ) + @Log(title = "用户收货地址" , businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}" ) + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(iAppUserAddressService.removeByIds(Arrays.asList(ids)) ? 1 : 0); + } +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/domain/AppUserAddress.java b/hope-winery/src/main/java/com/ruoyi/winery/domain/AppUserAddress.java new file mode 100644 index 000000000..f51dfa338 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/domain/AppUserAddress.java @@ -0,0 +1,75 @@ +package com.ruoyi.winery.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.ToString; +import lombok.experimental.Accessors; +import com.ruoyi.common.annotation.Excel; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.IdType; +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 用户收货地址对象 app_user_address + * + * @author ruoyi + * @date 2021-01-16 + */ +@Data +@ToString +@EqualsAndHashCode +@NoArgsConstructor +@Accessors(chain = true) +@TableName("app_user_address") +public class AppUserAddress implements Serializable { + +private static final long serialVersionUID=1L; + + + /** ID */ + @TableId(value = "id") + private String id; + + /** 部门ID */ + @Excel(name = "部门ID") + private Long deptId; + + /** 用户ID */ + @Excel(name = "用户ID") + private String userId; + + /** 是否默认 */ + @Excel(name = "是否默认") + private Integer isDefault; + + /** 手机号 */ + @Excel(name = "手机号") + private String mobile; + + /** 收货人 */ + @Excel(name = "收货人") + private String name; + + /** 省市县地址 */ + @Excel(name = "省市县地址") + private String address; + + /** 省市县地址 */ + @Excel(name = "省市县地址") + private String region; + + /** 删除标志 */ + private String delFlag; + + /** 创建时间 */ + private Date createTime; + + /** 更新时间 */ + private Date updateTime; +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppUserAddressMapper.java b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppUserAddressMapper.java new file mode 100644 index 000000000..6e312ad72 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/mapper/AppUserAddressMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.mapper; + +import com.ruoyi.winery.domain.AppUserAddress; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 用户收货地址Mapper接口 + * + * @author ruoyi + * @date 2021-01-16 + */ +public interface AppUserAddressMapper extends BaseMapper { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/IAppUserAddressService.java b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppUserAddressService.java new file mode 100644 index 000000000..9d1b262ae --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/IAppUserAddressService.java @@ -0,0 +1,14 @@ +package com.ruoyi.winery.service; + +import com.ruoyi.winery.domain.AppUserAddress; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * 用户收货地址Service接口 + * + * @author ruoyi + * @date 2021-01-16 + */ +public interface IAppUserAddressService extends IService { + +} diff --git a/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppUserAddressServiceImpl.java b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppUserAddressServiceImpl.java new file mode 100644 index 000000000..749816bd9 --- /dev/null +++ b/hope-winery/src/main/java/com/ruoyi/winery/service/impl/AppUserAddressServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.winery.service.impl; + +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.winery.mapper.AppUserAddressMapper; +import com.ruoyi.winery.domain.AppUserAddress; +import com.ruoyi.winery.service.IAppUserAddressService; + +/** + * 用户收货地址Service业务层处理 + * + * @author ruoyi + * @date 2021-01-16 + */ +@Service +public class AppUserAddressServiceImpl extends ServiceImpl implements IAppUserAddressService { + +} diff --git a/hope-winery/src/main/resources/mapper/user/AppUserAddressMapper.xml b/hope-winery/src/main/resources/mapper/user/AppUserAddressMapper.xml new file mode 100644 index 000000000..1ddf5ecd8 --- /dev/null +++ b/hope-winery/src/main/resources/mapper/user/AppUserAddressMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index 4b4a3e19a..ea2ff2ec9 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/ruoyi-admin/src/main/resources/application-dev.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://175.24.17.162:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true + url: jdbc:mysql://bj-cdb-ihe0k1z8.sql.tencentcdb.com:61298/wine?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true username: root - password: 26616494 + password: Hopesoft!@#123 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml index 4b4a3e19a..7a3a855d0 100644 --- a/ruoyi-admin/src/main/resources/application-prod.yml +++ b/ruoyi-admin/src/main/resources/application-prod.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://175.24.17.162:3306/ruoyi?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true + url: jdbc:mysql://172.21.0.3:3306/wine?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true username: root - password: 26616494 + password: Hopesoft!@#123 # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index da92c851e..136dfe8bc 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -13,7 +13,7 @@ ruoyi: # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 - captchaType: math + captchaType: char # 开发环境配置 server: diff --git a/ruoyi-ui/src/api/user/address.js b/ruoyi-ui/src/api/user/address.js new file mode 100644 index 000000000..a441ebc56 --- /dev/null +++ b/ruoyi-ui/src/api/user/address.js @@ -0,0 +1,53 @@ +import request from '@/utils/request' + +// 查询用户收货地址列表 +export function listAddress(query) { + return request({ + url: '/user/address/list', + method: 'get', + params: query + }) +} + +// 查询用户收货地址详细 +export function getAddress(id) { + return request({ + url: '/user/address/' + id, + method: 'get' + }) +} + +// 新增用户收货地址 +export function addAddress(data) { + return request({ + url: '/user/address', + method: 'post', + data: data + }) +} + +// 修改用户收货地址 +export function updateAddress(data) { + return request({ + url: '/user/address', + method: 'put', + data: data + }) +} + +// 删除用户收货地址 +export function delAddress(id) { + return request({ + url: '/user/address/' + id, + method: 'delete' + }) +} + +// 导出用户收货地址 +export function exportAddress(query) { + return request({ + url: '/user/address/export', + method: 'get', + params: query + }) +} diff --git a/ruoyi-ui/src/views/user/address/index.vue b/ruoyi-ui/src/views/user/address/index.vue new file mode 100644 index 000000000..af543acaf --- /dev/null +++ b/ruoyi-ui/src/views/user/address/index.vue @@ -0,0 +1,351 @@ + + +