当前位置:网站首页>Définir l'adresse de réception par défaut [Centre commercial du projet]
Définir l'adresse de réception par défaut [Centre commercial du projet]
2022-06-11 11:10:00 【Nuage de lune】
Définir l'adresse de réception par défaut【Projets Centre commercial】
Définir l'adresse de réception par défaut

1. Couche persistante
1.1 PlanificationSQLDéclarations
Modifier AddressService | getByUid
//address.setAid(null);
//address.setUid(null);
AddressService–Aid&Uid
1.Détecte si les données que l'utilisateur actuel veut définir à l'adresse par défaut existent.
select * from t_address aid=?
2. Avant de modifier l'adresse par défaut de réception de l'utilisateur , Définissez d'abord toutes les adresses de réception à non par défaut .
update t_address set is_default=0 where uid=?
3. Définissez cet enregistrement actuellement sélectionné par l'utilisateur à l'adresse de réception par défaut .
update t_address set is_default=1 modified_user=?,modified_time=? where aid=?
1.2 Méthode de conception abstraite
InAddressMapper Dans l'interface pour définir et déclarer .
/** * Selonaid Recherche de données d'adresse de réception pour * @param aid Adresse de réceptionid * @return Données de l'adresse de réception ,Si elle n'est pas retournéenull */
Address findByAid(Integer aid);
/** * Selon l'utilisateuruid Valeur pour modifier l'adresse de réception de l'utilisateur définie à non par défaut * @param uid Utilisateursid * @return Nombre de lignes touchées */
Integer updateNonDefault(Integer uid);
Integer updateDefaultByAid(@Param("aid") Integer aid,
@Param("modifiedUser") String modifiedUser,
@Param("modifiedTime") Date modifiedTime);
1.3 ConfigurationSQLCartographie
AddressMapper.xmlConfigurer dans le fichier.
<update id="updateNonDefault">
UPDATE t_address
SEt is_default=0
WHERE uid=#{uid}
</update>
<update id="updateDefaultByAid">
UPDATE t_address
SET is_default=1,
modified_user=#{modifiedUser},
modified_time=#{modifiedTime}
WHERE aid=#{aid}
</update>
<select id="findByAid" resultMap="AddressEntityMap">
SELECT * FROM t_address WHERE aid=#{aid}
</select>
AddressMapper–findByAid
Tests
Effectuer l'essai dans la méthode d'essai unitaire .
@Test
public void findByAid(){
Address address = addressMapper.findByAid(5);
System.out.println(address);
}
@Test
public void updateNonDefault(){
Integer rows = addressMapper.updateNonDefault(8);
System.out.println(rows);
}
@Test
public void updateDefaultByAid(){
Integer rows = addressMapper.updateDefaultByAid(5,"Administrateur",new Date());
System.out.println(rows);
}
AddressMapperTests–updateDefaultByAid
2.Business level
2.1 Planification anormale
1. Produit inconnu lors de la mise à jour UpdateExceptionAnomalie. Créé sans duplication .
2. Les données consultées ne sont pas les données d'adresse de réception de l'utilisateur actuellement connecté ,Accès illégal:AccessDeniedExceptionAnomalie.
3. Il est possible que l'adresse de réception n'existe pas :AddressNotFoundExceptionAnomalie.
Adresse de réception par défaut–ex
2.2 Méthode abstraite
À l'interfaceIAddressService Pour écrire la définition d'une méthode abstraite .
/** * Modifier certaines données d'un utilisateur à l'adresse de réception par défaut * @param aid Adresse de réception id * @param uid Utilisateursid * @param username Indique la personne qui a effectué la modification */
void setDefault(Integer aid,Integer uid,String username);
2.3 Mise en oeuvre de méthodes abstraites
InAddressServiceImpl Développement et conception d'entreprise dans la classe .
@Override
public void setDefault(Integer aid, Integer uid, String username) {
// Selon les paramètresaid,AppelezaddressMapperDansfindByAid() Rechercher les données de l'adresse de réception
Address result = addressMapper.findByAid(aid);
// Déterminer si le résultat de la requête est null
if (result == null) {
// - Oui.:JetezAddressNotFoundException
throw new AddressNotFoundException(" Les données d'adresse de réception auxquelles on a tenté d'accéder n'existent pas ");
}
// Juge dans les résultats de la requête uidEt paramètresuidY a - t - il des incohérences(Utiliserequals()Jugement)
if (!result.getUid().equals(uid)) {
// - Oui.:JetezAccessDeniedException
throw new AccessDeniedException(" Exception pour accès illégal ");
}
// AppelezaddressMapperDeupdateNonDefaultByUid() Définissez toutes les adresses de réception de cet utilisateur à non par défaut , Et obtient le nombre de lignes retournées affectées
Integer rows = addressMapper.updateNonDefault(uid);
// Déterminer si le nombre de lignes touchées est inférieur à 1(Pas plus de0)
if (rows < 1) {
// - Oui.:JetezUpdateException
throw new UpdateException(" Une erreur inconnue s'est produite lors du réglage de l'adresse de réception par défaut [1]");
}
// AppelezaddressMapperDeupdateDefaultByAid()Sera spécifiéaid L'adresse de réception est définie par défaut , Et obtient le nombre de lignes touchées retournées
rows = addressMapper.updateDefaultByAid(aid, username, new Date());
// Déterminer si le nombre de lignes touchées n'est pas 1
if (rows != 1) {
// - Oui.:JetezUpdateException
throw new UpdateException(" Une erreur inconnue s'est produite lors du réglage de l'adresse de réception par défaut [2]");
}
}
AddressService–setDefault
Tests
Test dans la classe Test unitaire .
@Test
public void setDefault(){
addressService.setDefault(4,8,"Administrateur");
}
AddressServiceTests–setDefault
3 Niveau de contrôle
3.1 Gestion des exceptions
InBaseControllerException au traitement intermédiaire.
else if (e instanceof AccessDeniedException){
result.setState(4005);
result.setMessage(" Exception à l'accès illégal aux données de l'adresse de réception ");
}else if (e instanceof InsertException){
result.setState(5000);
result.setMessage(" Une exception inconnue s'est produite lors de l'insertion des données ");
}
BaseController–ex–setDefault
3.2 Demande de conception
/address/{aid}/set_default
@PathVariable("aid") Integer aid,HttpSession session
GET
JsonResult<Void>
3.3 Méthode de demande complète
InAddressController Méthode de traitement des demandes d'écriture en classe .
//RestFul Style request written
@RequestMapping("{aid}/set_default")
public JsonResult<Void> setDefault(@PathVariable("aid") Integer aid,HttpSession session){
addressService.setDefault(
aid,
getuidFromSession(session),
getUsernameFromSession(session));
return new JsonResult<>(OK);
}
AddressController–setDefault
Tests
Ouvrir une connexion au navigateur pour accéder au chemin de demande /address/{aid}/set_default
http://localhost:8080/address/5/set_default
4. Page de première ligne
address.htmlPage cliquer sur“Définir par défaut”Boutons,Pour envoyerajaxDemande.
1. Ajouter un bouton pour définir la réception par défaut onclickPropriétés, Appel à une méthode , Dans cette méthode pour compléter ajaxMéthode demandée.
address.html | showAddressListDans la méthodeModifier
+ '<td><a οnclick="setDefault(#{aid})" class="btn btn-xs add-def btn-default">Par défaut</a></td>'
Terminé.setDefaultDéfinition de la méthode
// <!--setDefault-->
function setDefault(aid) {
$.ajax({
url: "/address/" + aid + "/set_default",
type: "POST",
dataType: "JSON",
success: function(json) {
if (json.state == 200) {
showAddressList();
} else {
alert(" Impossible de définir l'adresse de réception par défaut !" + json.message);
}
},
error: function(xhr) {
alert(" Vos informations de connexion ont expiré ,Veuillez vous connecter à nouveau!HTTPCode de réponse:" + xhr.status);
location.href = "login.html";
}
});
}
// <!--setDefault-->
address.html–setDefault
Tests
Connectez - vous avant d'accéder addAddress.htmlPage à tester.
Modifier le cheminaddress–>addresses
README–Définir l'adresse de réception par défaut
边栏推荐
- [CV basis] Color: rgb/hsv/lab
- 沒有財富就不能自由嗎?
- Wechat cloud development al short video one click face changing applet source code
- 正大期货主账户预4 周三信息汇总
- SQL query statement optimization
- Why does a ddrx power supply design require a VTT power supply
- 5. read the specified pathname -dirname
- Working principle analysis of rxjs fromEvent
- js设置ip屏蔽
- 杰理之BLE SPP 开启 pin_code 功能【篇】
猜你喜欢

Distance measurement - Euclidean distance

White screen time, first screen time

封装组件系列-(一)-插槽及动态组件

使用pydub修改wav文件的比特率,报错:C:\ProgramData\Anaconda3\lib\site-packages\pydub\utils.py:170: RuntimeWarning:

Surrounddepth: self supervised multi camera look around depth estimation
![Jerry's ble chip power supply range and anti burn chip measures [chapter]](/img/25/f35ca0366d31a70cd5e487347bb814.png)
Jerry's ble chip power supply range and anti burn chip measures [chapter]

Application of volatile in single chip microcomputer

Interpreting USB3.0 test items

李飞飞:我更像物理学界的科学家,而不是工程师|深度学习崛起十年

杰理之获取 BLE 查看代码异常复位等异常情况原因【篇】
随机推荐
使用国产MCU(国民技术 N32G031F8S7) 实现 PWM+DMA 控制 WS2812
2022年安全月各类活动方案汇报(28页)
Installing redis in CentOS 7 environment
Beginning an excellent emlog theme
使用Yolov5训练好模型调用电脑自带摄像头时出现问题:TypeError: argument of type “int‘ is not iterable的解决方法
(key points of software engineering review) Chapter IV overall design exercises
C language course design topic
34. find the first and last positions of elements in the sorted array ●●
Encrypt and decrypt strings using RSA and Base64
Content-Type: multipart/form-data; boundary=${bound}
Method of converting VOC format data set to Yolo format data set
Implementing declarative rest calls using feign
杰理之获取 BLE 查看代码异常复位等异常情况原因【篇】
Exness: the progress of Russia Ukraine negotiations is limited, and the RBA's decision remains unchanged
js设置ip屏蔽
Don't be a fake worker
After 95, programmers in big factories were sentenced for deleting databases! Dissatisfied with the leaders because the project was taken over
袋鼠云数栈基于CBO在Spark SQL优化上的探索
js中Array.prototype.find() 方法在对象数组上无效果,捉急。。。
距离度量 —— 欧式距离(Euclidean Distance)