Ver código fonte

新增收获地址设置为默认地址

赵冬冬 4 anos atrás
pai
commit
20542c0815

+ 11 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/controller/UmsMemberReceiveAddressController.java

@@ -55,6 +55,17 @@ public class UmsMemberReceiveAddressController {
         return CommonResult.failed();
     }
 
+    @ApiOperation("修改收货地址")
+    @RequestMapping(value = "/default/{id}", method = RequestMethod.PUT)
+    @ResponseBody
+    public CommonResult defaultStatus(@PathVariable Long id) {
+        int count = memberReceiveAddressService.defaultStatus(id);
+        if (count > 0) {
+            return CommonResult.success(count);
+        }
+        return CommonResult.failed();
+    }
+
     @ApiOperation("显示所有收货地址")
     @RequestMapping(value = "/list", method = RequestMethod.GET)
     @ResponseBody

+ 2 - 0
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/UmsMemberReceiveAddressService.java

@@ -45,4 +45,6 @@ public interface UmsMemberReceiveAddressService {
      * @param id 地址id
      */
     UmsMemberReceiveAddress getItem(Long id);
+
+    int defaultStatus(Long id);
 }

+ 39 - 1
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/UmsMemberReceiveAddressServiceImpl.java

@@ -8,6 +8,7 @@ import com.hwrj.cloud.portal.service.UmsMemberReceiveAddressService;
 import com.hwrj.cloud.portal.service.UmsMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import java.util.List;
@@ -24,13 +25,19 @@ public class UmsMemberReceiveAddressServiceImpl implements UmsMemberReceiveAddre
     private UmsMemberReceiveAddressMapper addressMapper;
 
     @Override
+    @Transactional
     public int add(UmsMemberReceiveAddress address) {
         UmsMember currentMember = memberService.getCurrentMember();
         address.setMemberId(currentMember.getId());
-        return addressMapper.insert(address);
+        int i = addressMapper.insert(address);
+        if (address.getDefaultStatus() == 1) {
+            defaultStatus(address.getId());
+        }
+        return i;
     }
 
     @Override
+    @Transactional
     public int delete(Long id) {
         UmsMember currentMember = memberService.getCurrentMember();
         UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();
@@ -39,6 +46,7 @@ public class UmsMemberReceiveAddressServiceImpl implements UmsMemberReceiveAddre
     }
 
     @Override
+    @Transactional
     public int update(Long id, UmsMemberReceiveAddress address) {
         address.setId(null);
         UmsMember currentMember = memberService.getCurrentMember();
@@ -65,6 +73,7 @@ public class UmsMemberReceiveAddressServiceImpl implements UmsMemberReceiveAddre
         }
         UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();
         example.createCriteria().andMemberIdEqualTo(currentMember.getId());
+        example.setOrderByClause("default_status desc");
         return addressMapper.selectByExample(example);
     }
 
@@ -79,4 +88,33 @@ public class UmsMemberReceiveAddressServiceImpl implements UmsMemberReceiveAddre
         }
         return null;
     }
+
+    @Override
+    @Transactional
+    public int defaultStatus(Long id) {
+        //更新自身
+        updateLocal(id);
+        //设置其他为不是默认地址
+        int i = updateOther(id);
+        return i;
+    }
+
+    private int updateOther(Long id) {
+        UmsMemberReceiveAddress record = new UmsMemberReceiveAddress();
+        UmsMember currentMember = memberService.getCurrentMember();
+        UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();
+        UmsMemberReceiveAddressExample.Criteria criteria = example.createCriteria();
+        criteria.andIdNotEqualTo(id);
+        criteria.andMemberIdEqualTo(currentMember.getId());
+        record.setDefaultStatus(0);
+        return addressMapper.updateByExampleSelective(record, example);
+    }
+
+    private UmsMemberReceiveAddress updateLocal(Long id) {
+        UmsMemberReceiveAddress record = new UmsMemberReceiveAddress();
+        record.setDefaultStatus(1);
+        record.setId(id);
+        addressMapper.updateByPrimaryKeySelective(record);
+        return record;
+    }
 }