入参:
@Table(name="UPLUS_ADDRESS")
public class UplusAddress implements Serializable{
@Id
@Column(name="ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name="USER_ID")
private Long userId;
@Column(name="PROVINCE_ID")
private Long provinceId;
@Column(name="CITY_ID")
private Long cityId;
@Column(name="DISTRICT_ID")
private Long districtId;
@Column(name="NAME")
private String name;
@Column(name="TAG")
private String tag;
@Column(name="MOBILE")
private String mobile;
@Column(name="REMARK")
private String remark;
@Column(name="IS_DEFAULT")
private Boolean isDefault;
@Column(name="CREATE_DATE")
private Date createDate;
@Column(name="UPDATE_DATE")
private Date updateDate;
@Column(name="CREATE_USER")
private Long createUser;
}
Controller:
@RestController
@RequestMapping({ "/uplus/phone/address" })
public class PhoneAddressController extends BaseController {
// @CryptoType(CryptoType.Type.CRYPTO)
@PostMapping({ "/save" })
public Result save(UplusAddress uplusAddress) {
UplusUser user = getUser();
if ((isAuthenticated()) && (user != null)) {
if (uplusAddress != null) {
UplusArea ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getProvinceId());
if (ua == null) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
List<UplusArea> cityModels = this.uplusAreaService
.findByPid(Integer.valueOf(uplusAddress.getProvinceId().intValue()));
if (cityModels.size() == 1) {
UplusArea cityModel = (UplusArea) cityModels.get(0);
if ((cityModel.getId() != uplusAddress.getCityId()) && (cityModel.getName().indexOf("市辖区") >= 0)) {
uplusAddress.setCityId(cityModel.getId());
}
}
ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getCityId());
if (ua == null) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getDistrictId());
if (ua == null) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
if (StringUtils.isEmpty(uplusAddress.getName())) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
if (StringUtils.isEmpty(uplusAddress.getRemark())) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
if (StringUtils.isEmpty(uplusAddress.getMobile())) {
return ResultGenerator.genFailResult("地区不存在,请联系管理员");
}
uplusAddress.setCreateDate(getCurrentDate());
uplusAddress.setUserId(user.getId());
uplusAddress.setCreateUser(user.getId());
this.uplusAddressService.save(uplusAddress);
return ResultGenerator.genSuccessResult(uplusAddress);
}
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
return ResultGenerator.unauthorized(this.UNAUTHORIZED_ERROR_MESSAGE);
}
// @CryptoType(CryptoType.Type.CRYPTO)
@PostMapping({ "/delete" })
public Result delete(Long id) {
UplusUser user = getUser();
if ((isAuthenticated()) && (user != null)) {
if (id != null) {
this.uplusAddressService.deleteById(id);
return ResultGenerator.genSuccessResult();
}
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
return ResultGenerator.unauthorized(this.UNAUTHORIZED_ERROR_MESSAGE);
}
// @CryptoType(CryptoType.Type.CRYPTO)
@PostMapping({ "/update" })
public Result update(UplusAddress uplusAddress) {
UplusUser user = getUser();
if ((isAuthenticated()) && (user != null)) {
if ((uplusAddress != null) && (uplusAddress.getId() != null)) {
UplusAddress uplusAddress2 = (UplusAddress) this.uplusAddressService.findById(uplusAddress.getId());
UplusArea ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getProvinceId());
if (ua == null) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
List<UplusArea> cityModels = this.uplusAreaService
.findByPid(Integer.valueOf(uplusAddress.getProvinceId().intValue()));
if (cityModels.size() == 1) {
UplusArea cityModel = (UplusArea) cityModels.get(0);
if ((cityModel.getId() != uplusAddress.getCityId()) && (cityModel.getName().indexOf("市辖区") >= 0)) {
uplusAddress.setCityId(cityModel.getId());
}
}
ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getCityId());
if (ua == null) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
ua = (UplusArea) this.uplusAreaService.findById(uplusAddress.getDistrictId());
if (ua == null) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
if (StringUtils.isEmpty(uplusAddress.getName())) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
if (StringUtils.isEmpty(uplusAddress.getRemark())) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
if (StringUtils.isEmpty(uplusAddress.getMobile())) {
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
uplusAddress2.setUserId(user.getId());
uplusAddress2.setProvinceId(uplusAddress.getProvinceId());
uplusAddress2.setCityId(uplusAddress.getCityId());
uplusAddress2.setDistrictId(uplusAddress.getDistrictId());
uplusAddress2.setName(uplusAddress.getName());
uplusAddress2.setRemark(uplusAddress.getRemark());
uplusAddress2.setMobile(uplusAddress.getMobile());
uplusAddress2.setUpdateDate(getCurrentDate());
this.uplusAddressService.update(uplusAddress2);
return ResultGenerator.genSuccessResult();
}
return ResultGenerator.genFailResult(this.REQUEST_PARAMS_ERROR_MESSAGE);
}
return ResultGenerator.unauthorized(this.UNAUTHORIZED_ERROR_MESSAGE);
}
}
Service:
public abstract interface UplusAreaService extends Service<UplusArea> {
public abstract List<UplusArea> findByPid(Integer paramInteger);
public abstract int updateTest(@Param("list") List<Integer> paramList);
public abstract List<UplusArea> findTest();
public abstract UplusArea findByAreaId(@Param("areaId") Integer paramInteger);
}
public abstract interface UplusAddressService extends Service<UplusAddress> {
public abstract List<AddressModel> findByUserId(@Param("userId") Long paramLong);
public abstract AddressModel findByAddressId(@Param("addressId") Long paramLong);
public abstract int updateDefault(@Param("userId") Long paramLong);
public abstract int copyAddressInOrderById(UplusOrderAddress paramUplusOrderAddress);
public abstract AddressModel findByOrderAddressId(@Param("addressId") Long paramLong);
}
Service impl:
@Service
@Transactional
public class UplusAreaServiceImpl extends AbstractService<UplusArea> implements UplusAreaService {
@Resource
private UplusAreaMapper uplusAreaMapper;
public List<UplusArea> findByPid(Integer pid) {
return this.uplusAreaMapper.findByPid(pid);
}
public int updateTest(List<Integer> list) {
return this.uplusAreaMapper.updateTest(list);
}
public List<UplusArea> findTest() {
return this.uplusAreaMapper.findTest();
}
public UplusArea findByAreaId(Integer areaId) {
return this.uplusAreaMapper.findByAreaId(areaId);
}
}
@Service
@Transactional
public class UplusAddressServiceImpl extends AbstractService<UplusAddress> implements UplusAddressService {
@Resource
private UplusAddressMapper uplusAddressMapper;
public List<AddressModel> findByUserId(Long userId)
{
return this.uplusAddressMapper.findByUserId(userId);
}
public AddressModel findByAddressId(Long addressId)
{
return this.uplusAddressMapper.findByAddressId(addressId);
}
public int updateDefault(Long userId)
{
return this.uplusAddressMapper.updateDefault(userId);
}
public int copyAddressInOrderById(UplusOrderAddress uplusOrderAddress)
{
return this.uplusAddressMapper.copyAddressInOrderById(uplusOrderAddress);
}
public AddressModel findByOrderAddressId(Long addressId)
{
return this.uplusAddressMapper.findByOrderAddressId(addressId);
}
}
mapper:
public abstract interface UplusAddressMapper extends Mapper<UplusAddress>{
public abstract List<AddressModel> findByUserId(@Param("userId") Long paramLong);
public abstract AddressModel findByAddressId(@Param("addressId") Long paramLong);
public abstract int updateDefault(@Param("userId") Long paramLong);
public abstract int copyAddressInOrderById(UplusOrderAddress paramUplusOrderAddress);
public abstract AddressModel findByOrderAddressId(@Param("addressId") Long paramLong);
}
<?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="cn.js.note.uplus.dao.UplusAddressMapper">
<!--加入缓存-->
<cache type="cn.js.note.uplus.cache.MybatisRedisCache"/>
<resultMap id="BaseResultMap" type="cn.js.note.uplus.bean.UplusAddress">
<!--
WARNING - @mbg.generated
-->
<id column="ID" jdbcType="BIGINT" property="id" />
<result column="USER_ID" jdbcType="BIGINT" property="userId" />
<result column="PROVINCE_ID" jdbcType="INTEGER" property="provinceId" />
<result column="CITY_ID" jdbcType="BIGINT" property="cityId" />
<result column="DISTRICT_ID" jdbcType="BIGINT" property="districtId" />
<result column="NAME" jdbcType="VARCHAR" property="name" />
<result column="TAG" jdbcType="CHAR" property="tag" />
<result column="MOBILE" jdbcType="VARCHAR" property="mobile" />
<result column="REMARK" jdbcType="VARCHAR" property="remark" />
<result column="IS_DEFAULT" jdbcType="BIT" property="isDefault" />
<result column="CREATE_DATE" jdbcType="TIMESTAMP" property="createDate" />
<result column="UPDATE_DATE" jdbcType="TIMESTAMP" property="updateDate" />
<result column="CREATE_USER" jdbcType="BIGINT" property="createUser" />
</resultMap>
<resultMap id="useResultMap" type="cn.js.note.uplus.model.AddressModel" extends="BaseResultMap">
<result column="PROVINCE_NAME" jdbcType="VARCHAR" property="provinceName" />
<result column="CITY_NAME" jdbcType="VARCHAR" property="cityName" />
<result column="DISTRICT_NAME" jdbcType="VARCHAR" property="districtName" />
</resultMap>
<select id="findByUserId" parameterType="long" resultMap="useResultMap">
select uad.ID,uad.USER_ID,uad.PROVINCE_ID,uad.CITY_ID,uad.DISTRICT_ID,
uad.`NAME`,uad.TAG,uad.MOBILE,uad.REMARK,uad.IS_DEFAULT,
(select ua1.name from UPLUS_AREA as ua1 where ua1.ID = uad.PROVINCE_ID) as PROVINCE_NAME,
(select ua2.name from UPLUS_AREA as ua2 where ua2.ID = uad.CITY_ID) as CITY_NAME,
(select ua3.name from UPLUS_AREA as ua3 where ua3.ID = uad.DISTRICT_ID) as DISTRICT_NAME
from UPLUS_ADDRESS uad where USER_ID = #{userId}
</select>
<select id="findByAddressId" parameterType="long" resultMap="useResultMap">
select uad.ID,uad.USER_ID,uad.PROVINCE_ID,uad.CITY_ID,uad.DISTRICT_ID,
uad.`NAME`,uad.TAG,uad.MOBILE,uad.REMARK,uad.IS_DEFAULT,
(select ua1.name from UPLUS_AREA as ua1 where ua1.ID = uad.PROVINCE_ID) as PROVINCE_NAME,
(select ua2.name from UPLUS_AREA as ua2 where ua2.ID = uad.CITY_ID) as CITY_NAME,
(select ua3.name from UPLUS_AREA as ua3 where ua3.ID = uad.DISTRICT_ID) as DISTRICT_NAME
from UPLUS_ADDRESS uad where ID = #{addressId}
</select>
<update id="updateDefault">
update UPLUS_ADDRESS set IS_DEFAULT = 0 where USER_ID = #{userId};
</update>
<insert id="copyAddressInOrderById" parameterType="cn.js.note.uplus.bean.UplusOrderAddress" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
INSERT INTO UPLUS_ORDER_ADDRESS (USER_ID,PROVINCE_ID,CITY_ID,DISTRICT_ID, NAME, TAG, MOBILE, REMARK, IS_DEFAULT,CREATE_DATE,UPDATE_DATE ,CREATE_USER)
(SELECT USER_ID,PROVINCE_ID,CITY_ID,DISTRICT_ID, NAME, TAG, MOBILE, REMARK, IS_DEFAULT,CREATE_DATE,UPDATE_DATE ,CREATE_USER FROM UPLUS_ADDRESS WHERE ID = #{tag})
<selectKey resultType="Long" keyProperty="id" order="AFTER">
select LAST_INSERT_ID() AS id
</selectKey>
</insert>
<select id="findByOrderAddressId" parameterType="long" resultMap="useResultMap">
select uad.ID,uad.USER_ID,uad.PROVINCE_ID,uad.CITY_ID,uad.DISTRICT_ID,
uad.`NAME`,uad.TAG,uad.MOBILE,uad.REMARK,uad.IS_DEFAULT,
(select ua1.name from UPLUS_AREA as ua1 where ua1.ID = uad.PROVINCE_ID) as PROVINCE_NAME,
(select ua2.name from UPLUS_AREA as ua2 where ua2.ID = uad.CITY_ID) as CITY_NAME,
(select ua3.name from UPLUS_AREA as ua3 where ua3.ID = uad.DISTRICT_ID) as DISTRICT_NAME
from UPLUS_ORDER_ADDRESS uad where ID = #{addressId}
</select>
</mapper>