From ed561a2796dab30a7c0a0ddbed2d898c3c8ba793 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Wed, 02 Jul 2025 15:45:18 +0800 Subject: [PATCH] 用户地址信息 --- oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java | 5 +- oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml | 12 ++++- oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java | 32 +++++++++++---- oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java | 2 oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java | 4 ++ oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java | 36 +++++++++++++---- oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java | 2 oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java | 2 + oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java | 2 9 files changed, 70 insertions(+), 27 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java b/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java index 91286d0..3460682 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java +++ b/oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java @@ -28,7 +28,6 @@ @ApiModelProperty(value = "主键") private Long addressId; - @NotNull @ApiModelProperty(value = "用户id") private Long userId; @@ -63,8 +62,8 @@ private BigDecimal latitude; @NotNull - @ApiModelProperty(value = "是否默认") - private Integer isDefault; + @ApiModelProperty(value = "是否默认: false") + private Boolean isDefault = false; @NotBlank @ApiModelProperty(value = "标签(家、公司等)") diff --git a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java index 01af304..a65c37f 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java +++ b/oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java @@ -18,10 +18,14 @@ @ApiModelProperty(value = "每页数据量", example = "10") private Integer size = 10; + @ApiModelProperty(value = "手机号") + private String phone; + @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "标签(家、公司等)") private String tag; + private List<Timestamp> createTime; } diff --git a/oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java b/oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java index 7ae40b1..e3e0e37 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java +++ b/oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java @@ -19,4 +19,6 @@ IPage<UserAddress> findAll(@Param("criteria") UserAddressQueryCriteria criteria, Page<Object> page); List<UserAddress> findAll(@Param("criteria") UserAddressQueryCriteria criteria); + + void isDefault(Long userId); } diff --git a/oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java b/oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java index 58f309f..cc70dad 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java +++ b/oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java @@ -1,10 +1,12 @@ package com.oying.modules.sh.rest; import com.oying.annotation.Log; +import com.oying.exception.BadRequestException; import com.oying.modules.sh.domain.UserAddress; import com.oying.modules.sh.service.UserAddressService; import com.oying.modules.sh.domain.dto.UserAddressQueryCriteria; import com.oying.utils.R; +import com.oying.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import java.util.List; @@ -48,28 +50,40 @@ return new ResponseEntity<>(R.success(userAddressService.queryAll(criteria, page)), HttpStatus.OK); } + @GetMapping("mini") + @ApiOperation("小程序:查询用户地址") + public ResponseEntity<Object> miniQueryUserAddress(UserAddressQueryCriteria criteria) { + Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize()); + criteria.setUserId(SecurityUtils.getCurrentUserId()); + return new ResponseEntity<>(R.success(userAddressService.queryAll(criteria, page)), HttpStatus.OK); + } + @PostMapping - @Log("新增用户地址") - @ApiOperation("新增用户地址") - @PreAuthorize("@el.check('userAddress:add')") + @Log("小程序:新增用户地址") + @ApiOperation("小程序:新增用户地址") public ResponseEntity<Object> createUserAddress(@Validated @RequestBody UserAddress resources) { + if (resources.getAddressId() != null) { + throw new BadRequestException("新增用户地址主键必须为空"); + } + resources.setUserId(SecurityUtils.getCurrentUserId()); userAddressService.create(resources); return new ResponseEntity<>(R.success(), HttpStatus.CREATED); } @PutMapping - @Log("修改用户地址") - @ApiOperation("修改用户地址") - @PreAuthorize("@el.check('userAddress:edit')") + @Log("小程序:修改用户地址") + @ApiOperation("小程序:修改用户地址") public ResponseEntity<Object> updateUserAddress(@Validated @RequestBody UserAddress resources) { + if (resources.getAddressId() == null) { + throw new BadRequestException("修改用户地址主键不能为空"); + } userAddressService.update(resources); return new ResponseEntity<>(R.success(), HttpStatus.NO_CONTENT); } @DeleteMapping - @Log("删除用户地址") - @ApiOperation("删除用户地址") - @PreAuthorize("@el.check('userAddress:del')") + @Log("小程序:删除用户地址") + @ApiOperation("小程序:删除用户地址") public ResponseEntity<Object> deleteUserAddress(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) { userAddressService.deleteAll(ids); return new ResponseEntity<>(R.success(), HttpStatus.OK); diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java index 69c7a89..eda7218 100644 --- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java @@ -1,7 +1,9 @@ package com.oying.modules.sh.service.impl; +import com.oying.exception.BadRequestException; import com.oying.modules.sh.domain.UserAddress; import com.oying.utils.FileUtil; +import com.oying.utils.SecurityUtils; import lombok.RequiredArgsConstructor; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,19 +13,21 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.oying.utils.PageUtil; + import java.util.List; import java.util.Map; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.LinkedHashMap; + import com.oying.utils.PageResult; /** -* @description 服务实现 -* @author lixin -* @date 2025-06-11 -**/ + * @author lixin + * @description 服务实现 + * @date 2025-06-11 + **/ @Service @RequiredArgsConstructor public class UserAddressServiceImpl extends ServiceImpl<UserAddressMapper, UserAddress> implements UserAddressService { @@ -31,18 +35,21 @@ private final UserAddressMapper userAddressMapper; @Override - public PageResult<UserAddress> queryAll(UserAddressQueryCriteria criteria, Page<Object> page){ + public PageResult<UserAddress> queryAll(UserAddressQueryCriteria criteria, Page<Object> page) { return PageUtil.toPage(userAddressMapper.findAll(criteria, page)); } @Override - public List<UserAddress> queryAll(UserAddressQueryCriteria criteria){ + public List<UserAddress> queryAll(UserAddressQueryCriteria criteria) { return userAddressMapper.findAll(criteria); } @Override @Transactional(rollbackFor = Exception.class) public void create(UserAddress resources) { + if (resources.getIsDefault()) { + userAddressMapper.isDefault(resources.getUserId()); + } userAddressMapper.insert(resources); } @@ -50,6 +57,12 @@ @Transactional(rollbackFor = Exception.class) public void update(UserAddress resources) { UserAddress userAddress = getById(resources.getAddressId()); + if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) { + throw new BadRequestException("不能修改他人资料"); + } + if (resources.getIsDefault()) { + userAddressMapper.isDefault(resources.getUserId()); + } userAddress.copy(resources); userAddressMapper.updateById(userAddress); } @@ -57,6 +70,12 @@ @Override @Transactional(rollbackFor = Exception.class) public void deleteAll(List<Long> ids) { + for (Long id : ids) { + UserAddress userAddress = getById(id); + if (!userAddress.getUserId().equals(SecurityUtils.getCurrentUserId())) { + throw new BadRequestException("不能删除他人资料"); + } + } userAddressMapper.deleteBatchIds(ids); } @@ -65,7 +84,6 @@ List<Map<String, Object>> list = new ArrayList<>(); for (UserAddress userAddress : all) { Map<String, Object> map = new LinkedHashMap<>(); - map.put("用户id", userAddress.getUserId()); map.put("收货人", userAddress.getReceiverName()); map.put("收货人电话", userAddress.getReceiverPhone()); map.put("省份", userAddress.getProvince()); @@ -75,8 +93,8 @@ map.put("详细地址", userAddress.getDetail()); map.put("经度", userAddress.getLongitude()); map.put("纬度", userAddress.getLatitude()); - map.put("是否默认", userAddress.getIsDefault()); - map.put("标签(家、公司等)", userAddress.getTag()); + map.put("是否默认", userAddress.getIsDefault() ? "是" : "否"); + map.put("标签", userAddress.getTag()); map.put("创建人", userAddress.getCreateBy()); map.put("创建时间", userAddress.getCreateTime()); map.put("修改者", userAddress.getUpdateBy()); diff --git a/oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java b/oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java index 3bcd226..2baefe2 100644 --- a/oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java +++ b/oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java @@ -30,7 +30,7 @@ private Long userId; @NotBlank - @ApiModelProperty(value = "角色类型(OWNER、ADMIN、FINANCE、OPERATOR)") + @ApiModelProperty(value = "角色类型") private String roleType; @ApiModelProperty(value = "权限集(备用)") diff --git a/oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java index 615e94d..54b961c 100644 --- a/oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java +++ b/oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java @@ -21,7 +21,7 @@ @ApiModelProperty(value = "用户id") private Long userId; - @ApiModelProperty(value = "角色类型(OWNER、ADMIN、FINANCE、OPERATOR)") + @ApiModelProperty(value = "角色类型") private String roleType; private List<Timestamp> createTime; } diff --git a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java index 8962e13..ac36637 100644 --- a/oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java +++ b/oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java @@ -65,7 +65,7 @@ List<Map<String, Object>> list = new ArrayList<>(); for (UserMerchant userMerchant : all) { Map<String, Object> map = new LinkedHashMap<>(); - map.put("角色类型(OWNER、ADMIN、FINANCE、OPERATOR)", userMerchant.getRoleType()); + map.put("角色类型", userMerchant.getRoleType()); map.put("权限集(备用)", userMerchant.getPermissions()); map.put("创建者", userMerchant.getCreateBy()); map.put("创建时间", userMerchant.getCreateTime()); diff --git a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml index 52be65d..2719b7d 100644 --- a/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml +++ b/oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml @@ -24,17 +24,23 @@ <sql id="Base_Column_List"> address_id, user_id, receiver_name, receiver_phone, province, city, district, street, detail, longitude, latitude, is_default, tag, create_by, create_time, update_by, update_time </sql> + <update id="isDefault"> + update sh_user_address set is_default = false where user_id = #{userId} + </update> <select id="findAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List"/> from sh_user_address <where> - <if test="criteria.userId != null"> + <if test="criteria.userId != null and criteria.userId != ''"> and user_id = #{criteria.userId} </if> - <if test="criteria.tag != null"> + <if test="criteria.tag != null and criteria.tag != ''"> and tag = #{criteria.tag} + </if> + <if test="criteria.phone != null and criteria.phone != ''"> + and receiver_phone like concat('%',#{criteria.phone},'%') </if> <if test="criteria.createTime != null and criteria.createTime.size() > 0"> AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]} @@ -42,4 +48,4 @@ </where> order by address_id desc </select> -</mapper> \ No newline at end of file +</mapper> -- Gitblit v1.9.3