xin
2025-07-02 ed561a2796dab30a7c0a0ddbed2d898c3c8ba793
用户地址信息
9 files modified
97 ■■■■ changed files
oying-system/src/main/java/com/oying/modules/sh/domain/UserAddress.java 5 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/domain/dto/UserAddressQueryCriteria.java 4 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/mapper/UserAddressMapper.java 2 ●●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/rest/UserAddressController.java 32 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/sh/service/impl/UserAddressServiceImpl.java 36 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/system/domain/UserMerchant.java 2 ●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/system/domain/dto/UserMerchantQueryCriteria.java 2 ●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/system/service/impl/UserMerchantServiceImpl.java 2 ●●● patch | view | raw | blame | history
oying-system/src/main/resources/mapper/sh/UserAddressMapper.xml 12 ●●●● patch | view | raw | blame | history
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 = "标签(家、公司等)")
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;
}
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);
}
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);
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());
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 = "权限集(备用)")
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;
}
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());
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>
</mapper>