xinyb
2024-07-18 80430d52f7716e3eb3e517dc96f94c4a6f9657bf
提交 | 用户 | age
a6a76f 1 package com.yc.sdk.shopping.service;
F 2
3
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.Map;
7
8 import org.springframework.context.annotation.Scope;
9 import org.springframework.dao.DataAccessException;
10 import org.springframework.dao.EmptyResultDataAccessException;
11 import org.springframework.stereotype.Service;
12
a92f52 13 import com.yc.action.grid.GridUtils;
a6a76f 14 import com.yc.sdk.shopping.entity.VoucherEntity;
F 15 import com.yc.sdk.shopping.entity.VoucherThemeEntity;
16 import com.yc.service.BaseService;
17
18 @Service("VoucherImpl")
19 @Scope("prototype")
20 public class VoucherImpl extends BaseService implements VoucherIfc {
21
22     @Override
23     public VoucherEntity getVoucher(String code,String shopCcCode) {
24         String sql = " set nocount on ;  \n"
a92f52 25                 + " declare @VoucherCode varchar(50) = "+GridUtils.prossSqlParm(code)+" \n"
J 26                 + " declare @ShopCcCode varchar(50) = "+GridUtils.prossSqlParm(shopCcCode)+" \n"
a6a76f 27                 + " select DocCode,VoucherCode,FromName,FromEmail,ToName,ToEmail, \n"
F 28                 + "    VoucherThemeId,Message,Amount \n"
29                 + " from t710201H  a \n "
30                 + " where VoucherCode = @VoucherCode and isnull(Status,0) = 1  and isnull(SODocCode,'') = '' \n"
31                 + " and (isnull(@ShopCcCode,'') = '' or a.ShopCcCode = @ShopCcCode ) \n" ;
32         
33         Map<String,Object> map = null ;
34         VoucherEntity voucherEntity = null ;
35         try {
a92f52 36             map =  this.jdbcTemplate.queryForMap(sql) ;
a6a76f 37             voucherEntity = this.getVoucherEntity( map);
F 38         }catch(DataAccessException e ) {
39             if (e instanceof EmptyResultDataAccessException){
40                 return null ;
41             }else {
42                 e.printStackTrace();
43                  throw e;
44             }
45         }catch(Exception e){
46             e.printStackTrace();
47             throw e;
48         }
49         
50             
51         return voucherEntity ;    
52     }
53     
54     
55     
56     private VoucherEntity getVoucherEntity( Map<String,Object> map) {
57         VoucherEntity voucherEntity = null ;
58         if (map != null && map.size() > 0) {
59             voucherEntity = new VoucherEntity() ;
60             voucherEntity.setVoucherDocCode(map.get("DocCode") == null ? "": (String)map.get("DocCode"));
61             voucherEntity.setFromName(map.get("FromName") == null ? "": (String)map.get("FromName"));
62             voucherEntity.setVoucherCode(map.get("VoucherCode") == null ? "": (String)map.get("VoucherCode"));
63             voucherEntity.setFromEmail(map.get("FromEmail") == null ? "": (String)map.get("FromEmail"));
64             voucherEntity.setToName(map.get("ToName") == null ? "": (String)map.get("ToName"));
65             voucherEntity.setToEmail(map.get("ToEmail") == null ? "": (String)map.get("ToEmail").toString());
66             voucherEntity.setVoucherThemeId(map.get("VoucherThemeId") == null ? 0: (Integer)map.get("VoucherThemeId"));
67             voucherEntity.setMessage(map.get("Message") == null ? "": (String)map.get("Message") );
68             voucherEntity.setAmount(map.get("Amount") == null ? 0: Double.parseDouble(map.get("Amount").toString()));
69         }
70         return voucherEntity ;
71     }
72
73
74
75     @Override
76     public List<VoucherThemeEntity> getVoucherThemes(String shopCcCode) {
77         List<VoucherThemeEntity> themeList = null ;
78         String sql = " set nocount on ; \n"
a92f52 79                 + " declare @ShopCcCode varchar(50) = "+GridUtils.prossSqlParm(shopCcCode)+" \n"
a6a76f 80                 + " select  VoucherThemeId ,Name "
F 81                 + " from t710204 a \n"
82                 + " where (isnull(@ShopCcCode,'') = '' or a.ShopCcCode = @ShopCcCode ) \n"
83                 + " order by Name \n";
84                 
85         try {
a92f52 86             List<Map<String,Object>> list = this.jdbcTemplate.queryForList(sql) ;
a6a76f 87         
F 88             for (int i = 0 ; list != null && i < list.size();i++) {
89                 if (themeList == null)  themeList = new ArrayList<VoucherThemeEntity>()  ;
90                 Map<String,Object> map = list.get(i) ;
91                 VoucherThemeEntity voucherThemeEntity = new VoucherThemeEntity();
92                 voucherThemeEntity.setVoucherThemeId(map.get("VoucherThemeId") == null?0 : (Integer)map.get("VoucherThemeId"));
93                 voucherThemeEntity.setVoucherThemeName(map.get("Name") == null?"": (String)map.get("Name"));
94                 themeList.add(voucherThemeEntity);
95             }
96         }catch(DataAccessException e ) {
97             if (e instanceof EmptyResultDataAccessException){
98                 return null ;
99             }else {
100                 e.printStackTrace();
101                  throw e;
102             }
103         }catch(Exception e){
104             e.printStackTrace();
105             throw e;
106         }
107         return themeList;
108     }
109
110     @Override
111     public VoucherEntity saveVoucherEntity(VoucherEntity voucherEntity,String userCode,String shopCcCode) {
112         String sql = " set nocount on ; \n"
113                 + " declare @DocCode varchar(20),@DocDate datetime, @VoucherCode varchar(20),@MatCode varchar(50) ; \n"
114                 + " declare @UserCode varchar(20) ,@UserName varchar(50) ; \n"
115                 + " declare @FromName varchar(50) ; \n"
116                 + " declare @FromEmail varchar(50) ,@ToName varchar(50) ,@ToEmail varchar(50)  ; \n"
117                 + " declare @VoucherThemeId int ,@Message varchar(500) ,@Amount money  ; \n"
118                 
a92f52 119                 + " select @UserCode = "+GridUtils.prossSqlParm(userCode)+" , @FromName  = "+GridUtils.prossSqlParm(voucherEntity.getFromName())
J 120                 +", @FromEmail  = "+GridUtils.prossSqlParm(voucherEntity.getFromEmail())+", @ToName = "+GridUtils.prossSqlParm(voucherEntity.getToName())
121                 +",@ToEmail  = "+GridUtils.prossSqlParm(voucherEntity.getToEmail())+",@VoucherThemeId  = "+voucherEntity.getVoucherThemeId()
122                 +",@Message  = "+GridUtils.prossSqlParm(voucherEntity.getMessage())+",@Amount = "+voucherEntity.getAmount()+"; \n"
123                 + " declare @ShopCcCode varchar(50) = "+GridUtils.prossSqlParm(shopCcCode) +" \n"
a6a76f 124                 + " declare @CompanyId varchar(50),@CompanyName varchar(200),@cccode varchar(20),@ccName varchar(50) ;\n"
F 125                 + " declare @formid int = 710201 ;\n"
126                 + " select @MatCode = VoucherMatCode FROM t714001 a ; \n"
127                 + " if (isnull(@MatCode,'') = '' )  \n"
128                 + " begin  \n"
129                 + "    raiserror('请在714001功能号中定义【礼品券物料编号】',16,1) ; \n"
130                 + "    return ;   \n"
131                 + " end \n"
132                 + " if not exists(select 1 from t110503 a where a.MatCode = @MatCode)  \n"
133                 + " begin \n"
134                 + "    raiserror('【礼品券物料编号】【%s】不存在,请在714001功能号中重新定义【礼品券物料编号】',16,1,@MatCode) ;  \n"
135                 + "    return ; \n"
136                 + " end \n"
137                 + " select @CompanyId = CompanyId,@CompanyName = CompanyName ,@cccode=cccode,@ccName = ccname, \n"
138                 + "     @UserName = UserName \n"
139                 + " from _sys_LoginUser \n"
140                 + " where UserCode = @UserCode \n"
141                 + " select @DocDate = convert(datetime,convert(varchar(10),GETDATE(),120) ) ; \n"
142                 + " exec sp_newdoccode @formid,@UserCode,@DocCode output  ; \n"
143                 + " select @VoucherCode = dbo.fn_randompassword(6,6 ) ; \n"
144                 + " insert into t710201H (DocCode,FormID,DocDate,CompanyID,CompanyName, \n"
145                 + "    DocStatus,EnterCode,EnterName,EnterDate,ModifyName,ModifyDate,cccode,ccName, \n"
146                 + "    VoucherCode,FromName,FromEmail,ToName,ToEmail, \n"
147                 + "    VoucherThemeId,Message,Amount ,Status,ShopCcCode) \n"
148                 + " values (@DocCode,@formid,@DocDate ,@CompanyID,@CompanyName, \n"
149                 + "    0,@usercode,@UserName,getdate(),@UserName,getdate(),@cccode,@ccName, \n"
150                 + "    @VoucherCode,@FromName,@FromEmail,@ToName,@ToEmail, \n"
151                 + "    @VoucherThemeId,@Message,@Amount,0 ,@ShopCcCode ) ;  \n"
152                 + " select @DocCode as DocCode,@VoucherCode as VoucherCode,@MatCode as MatCode ;  \n" ;
153         try {
a92f52 154             Map<String,Object> map = this.jdbcTemplate.queryForMap(sql) ;
J 155             
a6a76f 156             voucherEntity.setVoucherDocCode(map.get("DocCode") == null ? "": (String)map.get("DocCode"));
F 157             voucherEntity.setVoucherCode(map.get("VoucherCode") == null ? "": (String)map.get("VoucherCode"));
158             voucherEntity.setMatCode(map.get("MatCode") == null ? "": (String)map.get("MatCode"));
159         }catch(DataAccessException e ) {
160             if (e instanceof EmptyResultDataAccessException){
161                 return null ;
162             }else {
163                 e.printStackTrace();
164                  throw e;
165             }
166         }catch(Exception e){
167             e.printStackTrace();
168             throw e;
169         }
170         return voucherEntity ;
171     }
172 }